diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml index 472d18e73da78..cba8afbb54f0f 100644 --- a/.github/workflows/libcxx-build-and-test.yaml +++ b/.github/workflows/libcxx-build-and-test.yaml @@ -33,18 +33,6 @@ concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number }} cancel-in-progress: true - -env: - # LLVM POST-BRANCH bump version - # LLVM POST-BRANCH add compiler test for ToT - 1, e.g. "Clang 17" - # LLVM RELEASE bump remove compiler ToT - 3, e.g. "Clang 15" - LLVM_HEAD_VERSION: "19" # Used compiler, update POST-BRANCH. - LLVM_PREVIOUS_VERSION: "18" - LLVM_OLDEST_VERSION: "17" - GCC_STABLE_VERSION: "13" - LLVM_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer-19" - CLANG_CRASH_DIAGNOSTICS_DIR: "crash_diagnostics" - jobs: stage1: if: github.repository_owner == 'llvm' diff --git a/bolt/include/bolt/Core/BinaryFunction.h b/bolt/include/bolt/Core/BinaryFunction.h index 0b3682353f736..9730cca148c72 100644 --- a/bolt/include/bolt/Core/BinaryFunction.h +++ b/bolt/include/bolt/Core/BinaryFunction.h @@ -527,6 +527,11 @@ class BinaryFunction { /// fragment of the function. SmallVector LSDASymbols; + /// Each function fragment may have another fragment containing all landing + /// pads for it. If that's the case, the LP fragment will be stored in the + /// vector below with indexing starting with the main fragment. + SmallVector, 0> LPFragments; + /// Map to discover which CFIs are attached to a given instruction offset. /// Maps an instruction offset into a FrameInstructions offset. /// This is only relevant to the buildCFG phase and is discarded afterwards. @@ -1885,6 +1890,42 @@ class BinaryFunction { return LSDASymbols[F.get()]; } + /// If all landing pads for the function fragment \p F are located in fragment + /// \p LPF, designate \p LPF as a landing-pad fragment for \p F. Passing + /// std::nullopt in LPF, means that landing pads for \p F are located in more + /// than one fragment. + void setLPFragment(const FragmentNum F, std::optional LPF) { + if (F.get() >= LPFragments.size()) + LPFragments.resize(F.get() + 1); + + LPFragments[F.get()] = LPF; + } + + /// If function fragment \p F has a designated landing pad fragment, i.e. a + /// fragment that contains all landing pads for throwers in \p F, then return + /// that landing pad fragment number. If \p F does not need landing pads, + /// return \p F. Return nullptr if landing pads for \p F are scattered among + /// several function fragments. + std::optional getLPFragment(const FragmentNum F) { + if (!isSplit()) { + assert(F == FragmentNum::main() && "Invalid fragment number"); + return FragmentNum::main(); + } + + if (F.get() >= LPFragments.size()) + return std::nullopt; + + return LPFragments[F.get()]; + } + + /// Return a symbol corresponding to a landing pad fragment for fragment \p F. + /// See getLPFragment(). + MCSymbol *getLPStartSymbol(const FragmentNum F) { + if (std::optional LPFragment = getLPFragment(F)) + return getSymbol(*LPFragment); + return nullptr; + } + void setOutputDataAddress(uint64_t Address) { OutputDataOffset = Address; } uint64_t getOutputDataAddress() const { return OutputDataOffset; } diff --git a/bolt/include/bolt/Profile/DataAggregator.h b/bolt/include/bolt/Profile/DataAggregator.h index 2880bfd03be78..320623cfa15af 100644 --- a/bolt/include/bolt/Profile/DataAggregator.h +++ b/bolt/include/bolt/Profile/DataAggregator.h @@ -170,6 +170,9 @@ class DataAggregator : public DataReader { std::string BuildIDBinaryName; /// Memory map info for a single file as recorded in perf.data + /// When a binary has multiple text segments, the Size is computed as the + /// difference of the last address of these segments from the BaseAddress. + /// The base addresses of all text segments must be the same. struct MMapInfo { uint64_t BaseAddress{0}; /// Base address of the mapped binary. uint64_t MMapAddress{0}; /// Address of the executable segment. @@ -493,6 +496,11 @@ class DataAggregator : public DataReader { /// and return a file name matching a given \p FileBuildID. std::optional getFileNameForBuildID(StringRef FileBuildID); + /// Get a constant reference to the parsed binary mmap entries. + const std::unordered_map &getBinaryMMapInfo() { + return BinaryMMapInfo; + } + friend class YAMLProfileWriter; }; } // namespace bolt diff --git a/bolt/lib/Core/BinaryEmitter.cpp b/bolt/lib/Core/BinaryEmitter.cpp index 4b5d8154728cc..f34a94c577921 100644 --- a/bolt/lib/Core/BinaryEmitter.cpp +++ b/bolt/lib/Core/BinaryEmitter.cpp @@ -140,7 +140,7 @@ class BinaryEmitter { void emitCFIInstruction(const MCCFIInstruction &Inst) const; - /// Emit exception handling ranges for the function. + /// Emit exception handling ranges for the function fragment. void emitLSDA(BinaryFunction &BF, const FunctionFragment &FF); /// Emit line number information corresponding to \p NewLoc. \p PrevLoc @@ -915,17 +915,29 @@ void BinaryEmitter::emitLSDA(BinaryFunction &BF, const FunctionFragment &FF) { // Emit the LSDA header. // If LPStart is omitted, then the start of the FDE is used as a base for - // landing pad displacements. Then, if a cold fragment starts with a landing - // pad, this means that the first landing pad offset will be 0. However, C++ - // runtime treats 0 as if there is no landing pad present, thus we *must* emit - // non-zero offsets for all valid LPs. + // landing pad displacements. Then, if a cold fragment starts with + // a landing pad, this means that the first landing pad offset will be 0. + // However, C++ runtime will treat 0 as if there is no landing pad, thus we + // cannot emit LP offset as 0. // // As a solution, for fixed-address binaries we set LPStart to 0, and for - // position-independent binaries we set LP start to FDE start minus one byte - // for FDEs that start with a landing pad. - const bool NeedsLPAdjustment = !FF.empty() && FF.front()->isLandingPad(); + // position-independent binaries we offset LP start by one byte. + bool NeedsLPAdjustment = false; std::function emitLandingPad; - if (BC.HasFixedLoadAddress) { + + // Check if there's a symbol associated with a landing pad fragment. + const MCSymbol *LPStartSymbol = BF.getLPStartSymbol(FF.getFragmentNum()); + if (!LPStartSymbol) { + // Since landing pads are not in the same fragment, we fall back to emitting + // absolute addresses for this FDE. + if (opts::Verbosity >= 2) { + BC.outs() << "BOLT-INFO: falling back to generating absolute-address " + << "exception ranges for " << BF << '\n'; + } + + assert(BC.HasFixedLoadAddress && + "Cannot emit absolute-address landing pads for PIE/DSO"); + Streamer.emitIntValue(dwarf::DW_EH_PE_udata4, 1); // LPStart format Streamer.emitIntValue(0, 4); // LPStart emitLandingPad = [&](const MCSymbol *LPSymbol) { @@ -935,17 +947,23 @@ void BinaryEmitter::emitLSDA(BinaryFunction &BF, const FunctionFragment &FF) { Streamer.emitIntValue(0, 4); }; } else { - if (NeedsLPAdjustment) { - // Use relative LPStart format and emit LPStart as [SymbolStart - 1]. + std::optional LPFN = BF.getLPFragment(FF.getFragmentNum()); + const FunctionFragment &LPFragment = BF.getLayout().getFragment(*LPFN); + NeedsLPAdjustment = + (!LPFragment.empty() && LPFragment.front()->isLandingPad()); + + // Emit LPStart encoding and optionally LPStart. + if (NeedsLPAdjustment || LPStartSymbol != StartSymbol) { Streamer.emitIntValue(dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4, 1); MCSymbol *DotSymbol = BC.Ctx->createTempSymbol("LPBase"); Streamer.emitLabel(DotSymbol); const MCExpr *LPStartExpr = MCBinaryExpr::createSub( - MCSymbolRefExpr::create(StartSymbol, *BC.Ctx), + MCSymbolRefExpr::create(LPStartSymbol, *BC.Ctx), MCSymbolRefExpr::create(DotSymbol, *BC.Ctx), *BC.Ctx); - LPStartExpr = MCBinaryExpr::createSub( - LPStartExpr, MCConstantExpr::create(1, *BC.Ctx), *BC.Ctx); + if (NeedsLPAdjustment) + LPStartExpr = MCBinaryExpr::createSub( + LPStartExpr, MCConstantExpr::create(1, *BC.Ctx), *BC.Ctx); Streamer.emitValue(LPStartExpr, 4); } else { // DW_EH_PE_omit means FDE start (StartSymbol) will be used as LPStart. @@ -955,7 +973,7 @@ void BinaryEmitter::emitLSDA(BinaryFunction &BF, const FunctionFragment &FF) { if (LPSymbol) { const MCExpr *LPOffsetExpr = MCBinaryExpr::createSub( MCSymbolRefExpr::create(LPSymbol, *BC.Ctx), - MCSymbolRefExpr::create(StartSymbol, *BC.Ctx), *BC.Ctx); + MCSymbolRefExpr::create(LPStartSymbol, *BC.Ctx), *BC.Ctx); if (NeedsLPAdjustment) LPOffsetExpr = MCBinaryExpr::createAdd( LPOffsetExpr, MCConstantExpr::create(1, *BC.Ctx), *BC.Ctx); @@ -978,7 +996,7 @@ void BinaryEmitter::emitLSDA(BinaryFunction &BF, const FunctionFragment &FF) { // Emit encoding of entries in the call site table. The format is used for the // call site start, length, and corresponding landing pad. - if (BC.HasFixedLoadAddress) + if (!LPStartSymbol) Streamer.emitIntValue(dwarf::DW_EH_PE_sdata4, 1); else Streamer.emitIntValue(dwarf::DW_EH_PE_uleb128, 1); @@ -998,7 +1016,7 @@ void BinaryEmitter::emitLSDA(BinaryFunction &BF, const FunctionFragment &FF) { // Start of the range is emitted relative to the start of current // function split part. - if (BC.HasFixedLoadAddress) { + if (!LPStartSymbol) { Streamer.emitAbsoluteSymbolDiff(BeginLabel, StartSymbol, 4); Streamer.emitAbsoluteSymbolDiff(EndLabel, BeginLabel, 4); } else { diff --git a/bolt/lib/Passes/SplitFunctions.cpp b/bolt/lib/Passes/SplitFunctions.cpp index bd0b6dea0e065..b21401e069bfa 100644 --- a/bolt/lib/Passes/SplitFunctions.cpp +++ b/bolt/lib/Passes/SplitFunctions.cpp @@ -901,8 +901,47 @@ void SplitFunctions::splitFunction(BinaryFunction &BF, SplitStrategy &S) { // have to be placed in the same fragment. When we split them, create // trampoline landing pads that will redirect the execution to real LPs. TrampolineSetType Trampolines; - if (!BC.HasFixedLoadAddress && BF.hasEHRanges() && BF.isSplit()) - Trampolines = createEHTrampolines(BF); + if (BF.hasEHRanges() && BF.isSplit()) { + // If all landing pads for this fragment are grouped in one (potentially + // different) fragment, we can set LPStart to the start of that fragment + // and avoid trampoline code. + bool NeedsTrampolines = false; + for (FunctionFragment &FF : BF.getLayout().fragments()) { + // Vector of fragments that contain landing pads for this fragment. + SmallVector LandingPadFragments; + for (const BinaryBasicBlock *BB : FF) + for (const BinaryBasicBlock *LPB : BB->landing_pads()) + LandingPadFragments.push_back(LPB->getFragmentNum()); + + // Eliminate duplicate entries from the vector. + llvm::sort(LandingPadFragments); + auto Last = llvm::unique(LandingPadFragments); + LandingPadFragments.erase(Last, LandingPadFragments.end()); + + if (LandingPadFragments.size() == 0) { + // If the fragment has no landing pads, we can safely set itself as its + // landing pad fragment. + BF.setLPFragment(FF.getFragmentNum(), FF.getFragmentNum()); + } else if (LandingPadFragments.size() == 1) { + BF.setLPFragment(FF.getFragmentNum(), LandingPadFragments.front()); + } else { + if (!BC.HasFixedLoadAddress) { + NeedsTrampolines = true; + break; + } else { + BF.setLPFragment(FF.getFragmentNum(), std::nullopt); + } + } + } + + // Trampolines guarantee that all landing pads for any given fragment will + // be contained in the same fragment. + if (NeedsTrampolines) { + for (FunctionFragment &FF : BF.getLayout().fragments()) + BF.setLPFragment(FF.getFragmentNum(), FF.getFragmentNum()); + Trampolines = createEHTrampolines(BF); + } + } // Check the new size to see if it's worth splitting the function. if (BC.isX86() && LayoutUpdated) { @@ -933,6 +972,10 @@ void SplitFunctions::splitFunction(BinaryFunction &BF, SplitStrategy &S) { } } + // Restore LP fragment for the main fragment if the splitting was undone. + if (BF.hasEHRanges() && !BF.isSplit()) + BF.setLPFragment(FragmentNum::main(), FragmentNum::main()); + // Fix branches if the splitting decision of the pass after function // reordering is different from that of the pass before function reordering. if (LayoutUpdated && BC.HasFinalizedFunctionOrder) diff --git a/bolt/lib/Profile/DataAggregator.cpp b/bolt/lib/Profile/DataAggregator.cpp index 697cac9fbcaa0..2b02086e3e0c9 100644 --- a/bolt/lib/Profile/DataAggregator.cpp +++ b/bolt/lib/Profile/DataAggregator.cpp @@ -95,6 +95,12 @@ cl::opt ReadPreAggregated( "pa", cl::desc("skip perf and read data from a pre-aggregated file format"), cl::cat(AggregatorCategory)); +cl::opt + ReadPerfEvents("perf-script-events", + cl::desc("skip perf event collection by supplying a " + "perf-script output in a textual format"), + cl::ReallyHidden, cl::init(""), cl::cat(AggregatorCategory)); + static cl::opt TimeAggregator("time-aggr", cl::desc("time BOLT aggregator"), @@ -167,8 +173,9 @@ void DataAggregator::findPerfExecutable() { void DataAggregator::start() { outs() << "PERF2BOLT: Starting data aggregation job for " << Filename << "\n"; - // Don't launch perf for pre-aggregated files - if (opts::ReadPreAggregated) + // Don't launch perf for pre-aggregated files or when perf input is specified + // by the user. + if (opts::ReadPreAggregated || !opts::ReadPerfEvents.empty()) return; findPerfExecutable(); @@ -464,6 +471,13 @@ void DataAggregator::filterBinaryMMapInfo() { int DataAggregator::prepareToParse(StringRef Name, PerfProcessInfo &Process, PerfProcessErrorCallbackTy Callback) { + if (!opts::ReadPerfEvents.empty()) { + outs() << "PERF2BOLT: using pre-processed perf events for '" << Name + << "' (perf-script-events)\n"; + ParsingBuf = opts::ReadPerfEvents; + return 0; + } + std::string Error; outs() << "PERF2BOLT: waiting for perf " << Name << " collection to finish...\n"; @@ -2056,15 +2070,6 @@ std::error_code DataAggregator::parseMMapEvents() { if (FileMMapInfo.first == "(deleted)") continue; - // Consider only the first mapping of the file for any given PID - auto Range = GlobalMMapInfo.equal_range(FileMMapInfo.first); - bool PIDExists = llvm::any_of(make_range(Range), [&](const auto &MI) { - return MI.second.PID == FileMMapInfo.second.PID; - }); - - if (PIDExists) - continue; - GlobalMMapInfo.insert(FileMMapInfo); } @@ -2116,12 +2121,22 @@ std::error_code DataAggregator::parseMMapEvents() { << " using file offset 0x" << Twine::utohexstr(MMapInfo.Offset) << ". Ignoring profile data for this mapping\n"; continue; - } else { - MMapInfo.BaseAddress = *BaseAddress; } + MMapInfo.BaseAddress = *BaseAddress; } - BinaryMMapInfo.insert(std::make_pair(MMapInfo.PID, MMapInfo)); + // Try to add MMapInfo to the map and update its size. Large binaries may + // span to multiple text segments, so the mapping is inserted only on the + // first occurrence. + if (!BinaryMMapInfo.insert(std::make_pair(MMapInfo.PID, MMapInfo)).second) + assert(MMapInfo.BaseAddress == BinaryMMapInfo[MMapInfo.PID].BaseAddress && + "Base address on multiple segment mappings should match"); + + // Update mapping size. + const uint64_t EndAddress = MMapInfo.MMapAddress + MMapInfo.Size; + const uint64_t Size = EndAddress - BinaryMMapInfo[MMapInfo.PID].BaseAddress; + if (Size > BinaryMMapInfo[MMapInfo.PID].Size) + BinaryMMapInfo[MMapInfo.PID].Size = Size; } if (BinaryMMapInfo.empty()) { diff --git a/bolt/test/X86/exceptions-compact.s b/bolt/test/X86/exceptions-compact.s new file mode 100644 index 0000000000000..2a9e2a21c3d12 --- /dev/null +++ b/bolt/test/X86/exceptions-compact.s @@ -0,0 +1,75 @@ +## Check that llvm-bolt is able to overwrite LSDA in ULEB128 format in-place for +## all types of binaries. + +# REQUIRES: system-linux + +# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-linux %s -o %t.o +# RUN: ld.lld --no-pie %t.o -o %t.exe -q +# RUN: ld.lld --pie %t.o -o %t.pie -q +# RUN: ld.lld --shared %t.o -o %t.so -q +# RUN: llvm-bolt %t.exe -o %t.bolt --strict \ +# RUN: | FileCheck --check-prefix=CHECK-BOLT %s +# RUN: llvm-bolt %t.pie -o %t.pie.bolt --strict \ +# RUN: | FileCheck --check-prefix=CHECK-BOLT %s +# RUN: llvm-bolt %t.so -o %t.so.bolt --strict \ +# RUN: | FileCheck --check-prefix=CHECK-BOLT %s + +# CHECK-BOLT: rewriting .gcc_except_table in-place + +# RUN: llvm-readelf -WS %t.bolt | FileCheck --check-prefix=CHECK-ELF %s +# RUN: llvm-readelf -WS %t.pie.bolt | FileCheck --check-prefix=CHECK-ELF %s +# RUN: llvm-readelf -WS %t.so.bolt | FileCheck --check-prefix=CHECK-ELF %s + +# CHECK-ELF-NOT: .bolt.org.gcc_except_table + + .text + .global foo + .type foo, %function +foo: + .cfi_startproc + ret + .cfi_endproc + .size foo, .-foo + + .globl _start + .type _start, %function +_start: +.Lfunc_begin0: + .cfi_startproc + .cfi_lsda 27, .Lexception0 + call foo +.Ltmp0: + call foo +.Ltmp1: + ret + +## Landing pads. +.LLP1: + ret +.LLP0: + ret + + .cfi_endproc +.Lfunc_end0: + .size _start, .-_start + +## EH table. + .section .gcc_except_table,"a",@progbits + .p2align 2 +GCC_except_table0: +.Lexception0: + .byte 255 # @LPStart Encoding = omit + .byte 255 # @TType Encoding = omit + .byte 1 # Call site Encoding = uleb128 + .uleb128 .Lcst_end0-.Lcst_begin0 +.Lcst_begin0: + .uleb128 .Lfunc_begin0-.Lfunc_begin0 # >> Call Site 1 << + .uleb128 .Ltmp0-.Lfunc_begin0 # Call between .Lfunc_begin0 and .Ltmp0 + .uleb128 .LLP0-.Lfunc_begin0 # jumps to .LLP0 + .byte 0 # On action: cleanup + .uleb128 .Ltmp0-.Lfunc_begin0 # >> Call Site 2 << + .uleb128 .Ltmp1-.Ltmp0 # Call between .Ltmp0 and .Ltmp1 + .uleb128 .LLP1-.Lfunc_begin0 # jumps to .LLP1 + .byte 0 # On action: cleanup +.Lcst_end0: + diff --git a/bolt/test/X86/pie-eh-split-undo.s b/bolt/test/X86/pie-eh-split-undo.s new file mode 100644 index 0000000000000..6192dfa768aff --- /dev/null +++ b/bolt/test/X86/pie-eh-split-undo.s @@ -0,0 +1,86 @@ +# REQUIRES: system-linux + +# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-linux %s -o %t.o +# RUN: link_fdata %s %t.o %t.fdata +# RUN: llvm-strip --strip-unneeded %t.o +# RUN: ld.lld --pie %t.o -o %t.exe -q +# RUN: llvm-bolt %t.exe -o %t.out --data %t.fdata --split-functions --split-eh \ +# RUN: --split-all-cold --print-after-lowering --print-only=_start 2>&1 \ +# RUN: | FileCheck %s + +## _start has two landing pads: one hot and one cold. Hence, BOLT will introduce +## a landing pad trampoline. However, the trampoline code will make the main +## split fragment larger than the whole function before split. Then BOLT will +## undo the splitting and remove the trampoline. + +# CHECK: Binary Function "_start" +# CHECK: IsSplit : +# CHECK-SAME: 0 + +## Check that a landing pad trampoline was created, but contains no instructions +## and falls though to the real landing pad. + +# CHECK: {{^[^[:space:]]+}} (0 instructions +# CHECK-NEXT: Landing Pad{{$}} +# CHECK: Exec Count +# CHECK-SAME: : 0 +# CHECK: Successors: +# CHECK-SAME: [[LP:[^[:space:]]+]] +# CHECK-EMPTY: +# CHECK-NEXT: [[LP]] + + .text + .global foo + .type foo, %function +foo: + .cfi_startproc + ret + .cfi_endproc + .size foo, .-foo + + .globl _start + .type _start, %function +_start: +# FDATA: 0 [unknown] 0 1 _start 0 1 100 +.Lfunc_begin0: + .cfi_startproc + .cfi_lsda 27, .Lexception0 + call foo +.Ltmp0: + call foo +.Ltmp1: + ret + +## Cold landing pad. +.LLP1: + ret + +## Hot landing pad. +LLP0: +# FDATA: 0 [unknown] 0 1 _start #LLP0# 1 100 + ret + + .cfi_endproc +.Lfunc_end0: + .size _start, .-_start + +## EH table. + .section .gcc_except_table,"a",@progbits + .p2align 2 +GCC_except_table0: +.Lexception0: + .byte 255 # @LPStart Encoding = omit + .byte 255 # @TType Encoding = omit + .byte 1 # Call site Encoding = uleb128 + .uleb128 .Lcst_end0-.Lcst_begin0 +.Lcst_begin0: + .uleb128 .Lfunc_begin0-.Lfunc_begin0 # >> Call Site 1 << + .uleb128 .Ltmp0-.Lfunc_begin0 # Call between .Lfunc_begin0 and .Ltmp0 + .uleb128 LLP0-.Lfunc_begin0 # jumps to LLP0 + .byte 0 # On action: cleanup + .uleb128 .Ltmp0-.Lfunc_begin0 # >> Call Site 2 << + .uleb128 .Ltmp1-.Ltmp0 # Call between .Ltmp0 and .Ltmp1 + .uleb128 .LLP1-.Lfunc_begin0 # jumps to .LLP1 + .byte 0 # On action: cleanup +.Lcst_end0: + diff --git a/bolt/test/runtime/X86/Inputs/pie-exceptions-failed-split.s b/bolt/test/runtime/X86/Inputs/pie-exceptions-failed-split.s index 1ead293bb5cf4..5195d298b1bbe 100644 --- a/bolt/test/runtime/X86/Inputs/pie-exceptions-failed-split.s +++ b/bolt/test/runtime/X86/Inputs/pie-exceptions-failed-split.s @@ -1,4 +1,4 @@ -# Assembly generated from building the followingC++ code with the following +# Assembly generated from building the following C++ code with the following # command using trunk clang. Then, basic block at .LBB1_7 was moved before the # landing pad. # diff --git a/bolt/test/runtime/X86/pie-exceptions-failed-split.test b/bolt/test/runtime/X86/pie-exceptions-split.test similarity index 54% rename from bolt/test/runtime/X86/pie-exceptions-failed-split.test rename to bolt/test/runtime/X86/pie-exceptions-split.test index eb46dca6d98e5..550c1ac67e6cc 100644 --- a/bolt/test/runtime/X86/pie-exceptions-failed-split.test +++ b/bolt/test/runtime/X86/pie-exceptions-split.test @@ -11,25 +11,16 @@ RUN: llvm-bolt %t -o %t.bolt --data %t.fdata --reorder-blocks=ext-tsp \ RUN: --split-functions --split-eh --print-after-lowering \ RUN: --print-only=_Z10throw_testiPPc 2>&1 | FileCheck %s -## Hot code in the test case gets larger after splitting because of jump -## instruction relaxation. Check that BOLT reverts the split correctly. +## Check that a landing pad is split from its thrower and does not require a +## trampoline LP. CHECK: Binary Function "_Z10throw_testiPPc" CHECK: IsSplit : -CHECK-SAME: 0 - -## Check that the landing pad trampoline was created, but contains no -## instructions and falls to the real landing pad. -CHECK: {{^[^[:space:]]+}} (0 instructions -CHECK-NEXT: Landing Pad{{$}} -CHECK: Exec Count -CHECK-SAME: : 0 -CHECK: Successors: -CHECK-SAME: [[LP:[^[:space:]]+]] -CHECK-EMPTY: -CHECK-NEXT: [[LP]] -CHECK-DAG: Exec Count -CHECK-NOT: Exec Count -CHECK-DAG: callq __cxa_begin_catch +CHECK-SAME: 1 +CHECK: callq {{.*}} # handler: [[LPAD:.*]]; +CHECK-NOT: Landing Pad{{$}} +CHECK: HOT-COLD SPLIT POINT +CHECK: {{^}}[[LPAD]] +CHECK-NEXT: Landing Pad ## Verify the output still executes correctly when the exception path is being ## taken. diff --git a/bolt/unittests/Core/CMakeLists.txt b/bolt/unittests/Core/CMakeLists.txt index bad7108dad0b7..208cf6ced7358 100644 --- a/bolt/unittests/Core/CMakeLists.txt +++ b/bolt/unittests/Core/CMakeLists.txt @@ -8,6 +8,7 @@ set(LLVM_LINK_COMPONENTS add_bolt_unittest(CoreTests BinaryContext.cpp MCPlusBuilder.cpp + MemoryMaps.cpp DynoStats.cpp DISABLE_LLVM_LINK_LLVM_DYLIB @@ -17,6 +18,8 @@ target_link_libraries(CoreTests PRIVATE LLVMBOLTCore LLVMBOLTRewrite + LLVMBOLTProfile + LLVMTestingSupport ) foreach (tgt ${BOLT_TARGETS_TO_BUILD}) diff --git a/bolt/unittests/Core/MCPlusBuilder.cpp b/bolt/unittests/Core/MCPlusBuilder.cpp index cd6f24c4570a7..c66c2d0c0fb16 100644 --- a/bolt/unittests/Core/MCPlusBuilder.cpp +++ b/bolt/unittests/Core/MCPlusBuilder.cpp @@ -90,15 +90,14 @@ INSTANTIATE_TEST_SUITE_P(AArch64, MCPlusBuilderTester, ::testing::Values(Triple::aarch64)); TEST_P(MCPlusBuilderTester, AliasX0) { - uint64_t AliasesX0[] = {AArch64::W0, AArch64::W0_HI, - AArch64::X0, AArch64::W0_W1, + uint64_t AliasesX0[] = {AArch64::W0, AArch64::X0, AArch64::W0_W1, AArch64::X0_X1, AArch64::X0_X1_X2_X3_X4_X5_X6_X7}; size_t AliasesX0Count = sizeof(AliasesX0) / sizeof(*AliasesX0); testRegAliases(Triple::aarch64, AArch64::X0, AliasesX0, AliasesX0Count); } TEST_P(MCPlusBuilderTester, AliasSmallerX0) { - uint64_t AliasesX0[] = {AArch64::W0, AArch64::W0_HI, AArch64::X0}; + uint64_t AliasesX0[] = {AArch64::W0, AArch64::X0}; size_t AliasesX0Count = sizeof(AliasesX0) / sizeof(*AliasesX0); testRegAliases(Triple::aarch64, AArch64::X0, AliasesX0, AliasesX0Count, true); } diff --git a/bolt/unittests/Core/MemoryMaps.cpp b/bolt/unittests/Core/MemoryMaps.cpp new file mode 100644 index 0000000000000..9b5769d051cb6 --- /dev/null +++ b/bolt/unittests/Core/MemoryMaps.cpp @@ -0,0 +1,142 @@ +//===- bolt/unittest/Core/MemoryMaps.cpp ----------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "bolt/Core/BinaryContext.h" +#include "bolt/Profile/DataAggregator.h" +#include "llvm/BinaryFormat/ELF.h" +#include "llvm/DebugInfo/DWARF/DWARFContext.h" +#include "llvm/Support/CommandLine.h" +#include "llvm/Support/TargetSelect.h" +#include "llvm/Testing/Support/Error.h" +#include "gtest/gtest.h" + +using namespace llvm; +using namespace llvm::object; +using namespace llvm::ELF; +using namespace bolt; + +namespace opts { +extern cl::opt ReadPerfEvents; +} // namespace opts + +namespace { + +/// Perform checks on memory map events normally captured in perf. Tests use +/// the 'opts::ReadPerfEvents' flag to emulate these events, passing a custom +/// 'perf script' output to DataAggregator. +struct MemoryMapsTester : public testing::TestWithParam { + void SetUp() override { + initalizeLLVM(); + prepareElf(); + initializeBOLT(); + } + +protected: + void initalizeLLVM() { + llvm::InitializeAllTargetInfos(); + llvm::InitializeAllTargetMCs(); + llvm::InitializeAllAsmParsers(); + llvm::InitializeAllDisassemblers(); + llvm::InitializeAllTargets(); + llvm::InitializeAllAsmPrinters(); + } + + void prepareElf() { + memcpy(ElfBuf, "\177ELF", 4); + ELF64LE::Ehdr *EHdr = reinterpret_cast(ElfBuf); + EHdr->e_ident[llvm::ELF::EI_CLASS] = llvm::ELF::ELFCLASS64; + EHdr->e_ident[llvm::ELF::EI_DATA] = llvm::ELF::ELFDATA2LSB; + EHdr->e_machine = GetParam() == Triple::aarch64 ? EM_AARCH64 : EM_X86_64; + MemoryBufferRef Source(StringRef(ElfBuf, sizeof(ElfBuf)), "ELF"); + ObjFile = cantFail(ObjectFile::createObjectFile(Source)); + } + + void initializeBOLT() { + Relocation::Arch = ObjFile->makeTriple().getArch(); + BC = cantFail(BinaryContext::createBinaryContext( + ObjFile->makeTriple(), ObjFile->getFileName(), nullptr, true, + DWARFContext::create(*ObjFile.get()), {llvm::outs(), llvm::errs()})); + ASSERT_FALSE(!BC); + } + + char ElfBuf[sizeof(typename ELF64LE::Ehdr)] = {}; + std::unique_ptr ObjFile; + std::unique_ptr BC; +}; +} // namespace + +#ifdef X86_AVAILABLE + +INSTANTIATE_TEST_SUITE_P(X86, MemoryMapsTester, + ::testing::Values(Triple::x86_64)); + +#endif + +#ifdef AARCH64_AVAILABLE + +INSTANTIATE_TEST_SUITE_P(AArch64, MemoryMapsTester, + ::testing::Values(Triple::aarch64)); + +#endif + +/// Check that the correct mmap size is computed when we have multiple text +/// segment mappings. +TEST_P(MemoryMapsTester, ParseMultipleSegments) { + const int Pid = 1234; + StringRef Filename = "BINARY"; + opts::ReadPerfEvents = formatv( + "name 0 [000] 0.000000: PERF_RECORD_MMAP2 {0}/{0}: " + "[0xabc0000000(0x1000000) @ 0x11c0000 103:01 1573523 0]: r-xp {1}\n" + "name 0 [000] 0.000000: PERF_RECORD_MMAP2 {0}/{0}: " + "[0xabc2000000(0x8000000) @ 0x31d0000 103:01 1573523 0]: r-xp {1}\n", + Pid, Filename); + + BC->SegmentMapInfo[0x11da000] = + SegmentInfo{0x11da000, 0x10da000, 0x11ca000, 0x10da000, 0x10000, true}; + BC->SegmentMapInfo[0x31d0000] = + SegmentInfo{0x31d0000, 0x51ac82c, 0x31d0000, 0x3000000, 0x200000, true}; + + DataAggregator DA(""); + BC->setFilename(Filename); + Error Err = DA.preprocessProfile(*BC); + + // Ignore errors from perf2bolt when parsing memory events later on. + ASSERT_THAT_ERROR(std::move(Err), Succeeded()); + + auto &BinaryMMapInfo = DA.getBinaryMMapInfo(); + auto El = BinaryMMapInfo.find(Pid); + // Check that memory mapping is present and has the expected size. + ASSERT_NE(El, BinaryMMapInfo.end()); + ASSERT_EQ(El->second.Size, static_cast(0xb1d0000)); +} + +/// Check that DataAggregator aborts when pre-processing an input binary +/// with multiple text segments that have different base addresses. +TEST_P(MemoryMapsTester, MultipleSegmentsMismatchedBaseAddress) { + const int Pid = 1234; + StringRef Filename = "BINARY"; + opts::ReadPerfEvents = formatv( + "name 0 [000] 0.000000: PERF_RECORD_MMAP2 {0}/{0}: " + "[0xabc0000000(0x1000000) @ 0x11c0000 103:01 1573523 0]: r-xp {1}\n" + "name 0 [000] 0.000000: PERF_RECORD_MMAP2 {0}/{0}: " + "[0xabc2000000(0x8000000) @ 0x31d0000 103:01 1573523 0]: r-xp {1}\n", + Pid, Filename); + + BC->SegmentMapInfo[0x11da000] = + SegmentInfo{0x11da000, 0x10da000, 0x11ca000, 0x10da000, 0x10000, true}; + // Using '0x31d0fff' FileOffset which triggers a different base address + // for this second text segment. + BC->SegmentMapInfo[0x31d0000] = + SegmentInfo{0x31d0000, 0x51ac82c, 0x31d0fff, 0x3000000, 0x200000, true}; + + DataAggregator DA(""); + BC->setFilename(Filename); + ASSERT_DEATH( + { Error Err = DA.preprocessProfile(*BC); }, + "Base address on multiple segment mappings should match"); +} diff --git a/bolt/utils/bughunter.sh b/bolt/utils/bughunter.sh index 49831cddfdbdd..c5dddc41fb41f 100755 --- a/bolt/utils/bughunter.sh +++ b/bolt/utils/bughunter.sh @@ -131,7 +131,7 @@ if [[ $FAIL -eq "0" ]]; then fi else echo "Did it pass? Type the return code [0 = pass, 1 = fail]" - read -n1 PASS + read -n1 FAIL fi if [[ $FAIL -eq "0" ]] ; then echo " Warning: optimized binary passes." @@ -205,7 +205,7 @@ while [[ "$CONTINUE" -ne "0" ]] ; do echo " OPTIMIZED_BINARY failure=$FAIL" else echo "Did it pass? Type the return code [0 = pass, 1 = fail]" - read -n1 PASS + read -n1 FAIL fi else FAIL=1 diff --git a/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp b/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp index 354f35cbadbeb..bba8f8acc77da 100644 --- a/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp +++ b/clang-tools-extra/clang-include-fixer/IncludeFixer.cpp @@ -95,7 +95,8 @@ bool IncludeFixerActionFactory::runInvocation( // Create the compiler's actual diagnostics engine. We want to drop all // diagnostics here. - Compiler.createDiagnostics(new clang::IgnoringDiagConsumer, + Compiler.createDiagnostics(Files->getVirtualFileSystem(), + new clang::IgnoringDiagConsumer, /*ShouldOwnClient=*/true); Compiler.createSourceManager(*Files); diff --git a/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp index e329588290cd4..2b2d80ea9346b 100644 --- a/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp @@ -303,7 +303,7 @@ void InfiniteLoopCheck::check(const MatchFinder::MatchResult &Result) { } } - if (ExprMutationAnalyzer::isUnevaluated(LoopStmt, *LoopStmt, *Result.Context)) + if (ExprMutationAnalyzer::isUnevaluated(LoopStmt, *Result.Context)) return; if (isAtLeastOneCondVarChanged(Func, LoopStmt, Cond, Result.Context)) diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidConstOrRefDataMembersCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidConstOrRefDataMembersCheck.cpp index 6a6e620a4387b..f615976c7edb6 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidConstOrRefDataMembersCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/AvoidConstOrRefDataMembersCheck.cpp @@ -13,79 +13,88 @@ using namespace clang::ast_matchers; namespace clang::tidy::cppcoreguidelines { -namespace { -AST_MATCHER(FieldDecl, isMemberOfLambda) { - return Node.getParent()->isLambda(); +static bool isCopyConstructible(CXXRecordDecl const &Node) { + if (Node.needsOverloadResolutionForCopyConstructor() && + Node.needsImplicitCopyConstructor()) { + // unresolved + for (CXXBaseSpecifier const &BS : Node.bases()) { + CXXRecordDecl const *BRD = BS.getType()->getAsCXXRecordDecl(); + if (BRD != nullptr && !isCopyConstructible(*BRD)) + return false; + } + } + if (Node.hasSimpleCopyConstructor()) + return true; + for (CXXConstructorDecl const *Ctor : Node.ctors()) + if (Ctor->isCopyConstructor()) + return !Ctor->isDeleted(); + return false; } -struct MemberFunctionInfo { - bool Declared{}; - bool Deleted{}; -}; - -struct MemberFunctionPairInfo { - MemberFunctionInfo Copy{}; - MemberFunctionInfo Move{}; -}; - -MemberFunctionPairInfo getConstructorsInfo(CXXRecordDecl const &Node) { - MemberFunctionPairInfo Constructors{}; - - for (CXXConstructorDecl const *Ctor : Node.ctors()) { - if (Ctor->isCopyConstructor()) { - Constructors.Copy.Declared = true; - if (Ctor->isDeleted()) - Constructors.Copy.Deleted = true; - } - if (Ctor->isMoveConstructor()) { - Constructors.Move.Declared = true; - if (Ctor->isDeleted()) - Constructors.Move.Deleted = true; +static bool isMoveConstructible(CXXRecordDecl const &Node) { + if (Node.needsOverloadResolutionForMoveConstructor() && + Node.needsImplicitMoveConstructor()) { + // unresolved + for (CXXBaseSpecifier const &BS : Node.bases()) { + CXXRecordDecl const *BRD = BS.getType()->getAsCXXRecordDecl(); + if (BRD != nullptr && !isMoveConstructible(*BRD)) + return false; } } - - return Constructors; + if (Node.hasSimpleMoveConstructor()) + return true; + for (CXXConstructorDecl const *Ctor : Node.ctors()) + if (Ctor->isMoveConstructor()) + return !Ctor->isDeleted(); + return false; } -MemberFunctionPairInfo getAssignmentsInfo(CXXRecordDecl const &Node) { - MemberFunctionPairInfo Assignments{}; - - for (CXXMethodDecl const *Method : Node.methods()) { - if (Method->isCopyAssignmentOperator()) { - Assignments.Copy.Declared = true; - if (Method->isDeleted()) - Assignments.Copy.Deleted = true; +static bool isCopyAssignable(CXXRecordDecl const &Node) { + if (Node.needsOverloadResolutionForCopyAssignment() && + Node.needsImplicitCopyAssignment()) { + // unresolved + for (CXXBaseSpecifier const &BS : Node.bases()) { + CXXRecordDecl const *BRD = BS.getType()->getAsCXXRecordDecl(); + if (BRD != nullptr && !isCopyAssignable(*BRD)) + return false; } + } + if (Node.hasSimpleCopyAssignment()) + return true; + for (CXXMethodDecl const *Method : Node.methods()) + if (Method->isCopyAssignmentOperator()) + return !Method->isDeleted(); + return false; +} - if (Method->isMoveAssignmentOperator()) { - Assignments.Move.Declared = true; - if (Method->isDeleted()) - Assignments.Move.Deleted = true; +static bool isMoveAssignable(CXXRecordDecl const &Node) { + if (Node.needsOverloadResolutionForMoveAssignment() && + Node.needsImplicitMoveAssignment()) { + // unresolved + for (CXXBaseSpecifier const &BS : Node.bases()) { + CXXRecordDecl const *BRD = BS.getType()->getAsCXXRecordDecl(); + if (BRD != nullptr && !isMoveAssignable(*BRD)) + return false; } } - - return Assignments; + if (Node.hasSimpleMoveAssignment()) + return true; + for (CXXMethodDecl const *Method : Node.methods()) + if (Method->isMoveAssignmentOperator()) + return !Method->isDeleted(); + return false; } -AST_MATCHER(CXXRecordDecl, isCopyableOrMovable) { - MemberFunctionPairInfo Constructors = getConstructorsInfo(Node); - MemberFunctionPairInfo Assignments = getAssignmentsInfo(Node); +namespace { - if (Node.hasSimpleCopyConstructor() || - (Constructors.Copy.Declared && !Constructors.Copy.Deleted)) - return true; - if (Node.hasSimpleMoveConstructor() || - (Constructors.Move.Declared && !Constructors.Move.Deleted)) - return true; - if (Node.hasSimpleCopyAssignment() || - (Assignments.Copy.Declared && !Assignments.Copy.Deleted)) - return true; - if (Node.hasSimpleMoveAssignment() || - (Assignments.Move.Declared && !Assignments.Move.Deleted)) - return true; +AST_MATCHER(FieldDecl, isMemberOfLambda) { + return Node.getParent()->isLambda(); +} - return false; +AST_MATCHER(CXXRecordDecl, isCopyableOrMovable) { + return isCopyConstructible(Node) || isMoveConstructible(Node) || + isCopyAssignable(Node) || isMoveAssignable(Node); } } // namespace diff --git a/clang-tools-extra/clang-tidy/misc/UseInternalLinkageCheck.cpp b/clang-tools-extra/clang-tidy/misc/UseInternalLinkageCheck.cpp index d900978f65a94..71eb2d94cd4f2 100644 --- a/clang-tools-extra/clang-tidy/misc/UseInternalLinkageCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/UseInternalLinkageCheck.cpp @@ -8,14 +8,12 @@ #include "UseInternalLinkageCheck.h" #include "../utils/FileExtensionsUtils.h" -#include "../utils/LexerUtils.h" #include "clang/AST/Decl.h" #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/ASTMatchers/ASTMatchers.h" #include "clang/ASTMatchers/ASTMatchersMacros.h" #include "clang/Basic/SourceLocation.h" #include "clang/Basic/Specifiers.h" -#include "clang/Basic/TokenKinds.h" #include "clang/Lex/Token.h" #include "llvm/ADT/STLExtras.h" @@ -47,6 +45,8 @@ namespace { AST_MATCHER(Decl, isFirstDecl) { return Node.isFirstDecl(); } +AST_MATCHER(FunctionDecl, hasBody) { return Node.hasBody(); } + static bool isInMainFile(SourceLocation L, SourceManager &SM, const FileExtensionsSet &HeaderFileExtensions) { for (;;) { @@ -103,7 +103,7 @@ void UseInternalLinkageCheck::registerMatchers(MatchFinder *Finder) { // 4. friend hasAncestor(friendDecl())))); Finder->addMatcher( - functionDecl(Common, unless(cxxMethodDecl()), unless(isMain())) + functionDecl(Common, hasBody(), unless(cxxMethodDecl()), unless(isMain())) .bind("fn"), this); Finder->addMatcher(varDecl(Common, hasGlobalStorage()).bind("var"), this); diff --git a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp index 9161c0e702a28..4f24098225074 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseStdPrintCheck.cpp @@ -23,7 +23,7 @@ AST_MATCHER(StringLiteral, isOrdinary) { return Node.isOrdinary(); } } // namespace UseStdPrintCheck::UseStdPrintCheck(StringRef Name, ClangTidyContext *Context) - : ClangTidyCheck(Name, Context), + : ClangTidyCheck(Name, Context), PP(nullptr), StrictMode(Options.getLocalOrGlobal("StrictMode", false)), PrintfLikeFunctions(utils::options::parseStringList( Options.get("PrintfLikeFunctions", ""))), @@ -131,6 +131,7 @@ void UseStdPrintCheck::check(const MatchFinder::MatchResult &Result) { utils::FormatStringConverter::Configuration ConverterConfig; ConverterConfig.StrictMode = StrictMode; ConverterConfig.AllowTrailingNewlineRemoval = true; + assert(PP && "Preprocessor should be set by registerPPCallbacks"); utils::FormatStringConverter Converter( Result.Context, Printf, FormatArgOffset, ConverterConfig, getLangOpts(), *Result.SourceManager, *PP); diff --git a/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp b/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp index 68f3ecf6bdaa8..0fea7946a59f9 100644 --- a/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp +++ b/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp @@ -320,6 +320,12 @@ bool isQualificationConvertiblePointer(QualType From, QualType To, } // namespace static bool canThrow(const FunctionDecl *Func) { + // consteval specifies that every call to the function must produce a + // compile-time constant, which cannot evaluate a throw expression without + // producing a compilation error. + if (Func->isConsteval()) + return false; + const auto *FunProto = Func->getType()->getAs(); if (!FunProto) return true; diff --git a/clang-tools-extra/clangd/Compiler.cpp b/clang-tools-extra/clangd/Compiler.cpp index c60ab8e1b8062..161cc9ae0ca36 100644 --- a/clang-tools-extra/clangd/Compiler.cpp +++ b/clang-tools-extra/clangd/Compiler.cpp @@ -110,8 +110,8 @@ buildCompilerInvocation(const ParseInputs &Inputs, clang::DiagnosticConsumer &D, CIOpts.VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory); CIOpts.CC1Args = CC1Args; CIOpts.RecoverOnError = true; - CIOpts.Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions, &D, false); + CIOpts.Diags = CompilerInstance::createDiagnostics( + *CIOpts.VFS, new DiagnosticOptions, &D, false); CIOpts.ProbePrecompiled = false; std::unique_ptr CI = createInvocation(ArgStrs, CIOpts); if (!CI) @@ -148,7 +148,7 @@ prepareCompilerInstance(std::unique_ptr CI, auto Clang = std::make_unique( std::make_shared()); Clang->setInvocation(std::move(CI)); - Clang->createDiagnostics(&DiagsClient, false); + Clang->createDiagnostics(*VFS, &DiagsClient, false); if (auto VFSWithRemapping = createVFSFromCompilerInvocation( Clang->getInvocation(), Clang->getDiagnostics(), VFS)) diff --git a/clang-tools-extra/clangd/InlayHints.cpp b/clang-tools-extra/clangd/InlayHints.cpp index c4053fced81d6..fefffeb4efc1a 100644 --- a/clang-tools-extra/clangd/InlayHints.cpp +++ b/clang-tools-extra/clangd/InlayHints.cpp @@ -626,10 +626,15 @@ class InlayHintVisitor : public RecursiveASTVisitor { bool VisitLambdaExpr(LambdaExpr *E) { FunctionDecl *D = E->getCallOperator(); - if (!E->hasExplicitResultType()) - addReturnTypeHint(D, E->hasExplicitParameters() - ? D->getFunctionTypeLoc().getRParenLoc() - : E->getIntroducerRange().getEnd()); + if (!E->hasExplicitResultType()) { + SourceLocation TypeHintLoc; + if (!E->hasExplicitParameters()) + TypeHintLoc = E->getIntroducerRange().getEnd(); + else if (auto FTL = D->getFunctionTypeLoc()) + TypeHintLoc = FTL.getRParenLoc(); + if (TypeHintLoc.isValid()) + addReturnTypeHint(D, TypeHintLoc); + } return true; } diff --git a/clang-tools-extra/clangd/ModulesBuilder.cpp b/clang-tools-extra/clangd/ModulesBuilder.cpp index 2bce3a2082561..29508901f85bb 100644 --- a/clang-tools-extra/clangd/ModulesBuilder.cpp +++ b/clang-tools-extra/clangd/ModulesBuilder.cpp @@ -188,7 +188,8 @@ bool IsModuleFileUpToDate(PathRef ModuleFilePath, clang::clangd::IgnoreDiagnostics IgnoreDiags; IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions, &IgnoreDiags, + CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions, + &IgnoreDiags, /*ShouldOwnClient=*/false); LangOptions LangOpts; diff --git a/clang-tools-extra/clangd/Preamble.cpp b/clang-tools-extra/clangd/Preamble.cpp index c14c4d1ba103f..ce88ec0eb88c1 100644 --- a/clang-tools-extra/clangd/Preamble.cpp +++ b/clang-tools-extra/clangd/Preamble.cpp @@ -613,8 +613,9 @@ buildPreamble(PathRef FileName, CompilerInvocation CI, for (const auto &L : ASTListeners) L->sawDiagnostic(D, Diag); }); + auto VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory); llvm::IntrusiveRefCntPtr PreambleDiagsEngine = - CompilerInstance::createDiagnostics(&CI.getDiagnosticOpts(), + CompilerInstance::createDiagnostics(*VFS, &CI.getDiagnosticOpts(), &PreambleDiagnostics, /*ShouldOwnClient=*/false); const Config &Cfg = Config::current(); @@ -651,7 +652,6 @@ buildPreamble(PathRef FileName, CompilerInvocation CI, for (const auto &L : ASTListeners) L->beforeExecute(CI); }); - auto VFS = Inputs.TFS->view(Inputs.CompileCommand.Directory); llvm::SmallString<32> AbsFileName(FileName); VFS->makeAbsolute(AbsFileName); auto StatCache = std::make_shared(AbsFileName); diff --git a/clang-tools-extra/clangd/unittests/InlayHintTests.cpp b/clang-tools-extra/clangd/unittests/InlayHintTests.cpp index 73dd273d6c39d..77d78b8777fe3 100644 --- a/clang-tools-extra/clangd/unittests/InlayHintTests.cpp +++ b/clang-tools-extra/clangd/unittests/InlayHintTests.cpp @@ -1576,6 +1576,22 @@ TEST(TypeHints, Aliased) { EXPECT_THAT(hintsOfKind(AST, InlayHintKind::Type), IsEmpty()); } +TEST(TypeHints, CallingConvention) { + // Check that we don't crash for lambdas without a FunctionTypeLoc + // https://github.com/clangd/clangd/issues/2223 + std::string Code = R"cpp( + void test() { + []() __cdecl {}; + } + )cpp"; + TestTU TU = TestTU::withCode(Code); + TU.ExtraArgs.push_back("--target=x86_64-w64-mingw32"); + TU.PredefineMacros = true; // for the __cdecl + auto AST = TU.build(); + + EXPECT_THAT(hintsOfKind(AST, InlayHintKind::Type), IsEmpty()); +} + TEST(TypeHints, Decltype) { assertTypeHints(R"cpp( $a[[decltype(0)]] a; diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index f967dfabd1c94..fec2c20206bc4 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -162,6 +162,10 @@ Changes in existing checks ` check to treat `std::span` as a handle class. +- Improved :doc:`bugprone-exception-escape + ` by fixing false positives + when a consteval function with throw statements. + - Improved :doc:`bugprone-forwarding-reference-overload ` check by fixing a crash when determining if an ``enable_if[_t]`` was found. @@ -203,6 +207,10 @@ Changes in existing checks fix false positive that floating point variable is only used in increment expression. +- Improved :doc:`cppcoreguidelines-avoid-const-or-ref-data-members + ` check to + avoid false positives when detecting a templated class with inheritance. + - Improved :doc:`cppcoreguidelines-init-variables ` check by fixing the insertion location for function pointers. @@ -224,6 +232,11 @@ Changes in existing checks ` check to avoid false positive for C++23 deducing this. +- Improved :doc:`misc-use-internal-linkage + ` check to insert ``static`` + keyword before type qualifiers such as ``const`` and ``volatile`` and fix + false positives for function declaration without body. + - Improved :doc:`modernize-avoid-c-arrays ` check to suggest using ``std::span`` as a replacement for parameters of incomplete C array type in @@ -233,10 +246,6 @@ Changes in existing checks ` check to fix false positive when using loop variable in initializer of lambda capture. -- Improved :doc:`misc-use-internal-linkage - ` check to insert ``static`` keyword - before type qualifiers such as ``const`` and ``volatile``. - - Improved :doc:`modernize-min-max-use-initializer-list ` check by fixing a false positive when only an implicit conversion happened inside an diff --git a/clang-tools-extra/docs/clang-tidy/checks/misc/use-internal-linkage.rst b/clang-tools-extra/docs/clang-tidy/checks/misc/use-internal-linkage.rst index 7147af9a7919b..b8bbcc6270610 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/misc/use-internal-linkage.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/misc/use-internal-linkage.rst @@ -16,7 +16,7 @@ Example: int v1; // can be marked as static - void fn1(); // can be marked as static + void fn1() {} // can be marked as static namespace { // already in anonymous namespace @@ -26,6 +26,9 @@ Example: // already declared as extern extern int v2; + void fn3(); // without function body in all declaration, maybe external linkage + void fn3(); + Options ------- diff --git a/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp b/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp index b5a7b9720903e..b1bbb2eb82414 100644 --- a/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp +++ b/clang-tools-extra/include-cleaner/unittests/RecordTest.cpp @@ -609,15 +609,6 @@ TEST_F(PragmaIncludeTest, ExportInUnnamedBuffer) { )cpp"; Inputs.ExtraFiles["foo.h"] = ""; - auto Clang = std::make_unique( - std::make_shared()); - Clang->createDiagnostics(); - - Clang->setInvocation(std::make_unique()); - ASSERT_TRUE(CompilerInvocation::CreateFromArgs( - Clang->getInvocation(), {Filename.data()}, Clang->getDiagnostics(), - "clang")); - // Create unnamed memory buffers for all the files. auto VFS = llvm::makeIntrusiveRefCnt(); VFS->addFile(Filename, /*ModificationTime=*/0, @@ -626,6 +617,16 @@ TEST_F(PragmaIncludeTest, ExportInUnnamedBuffer) { VFS->addFile(Extra.getKey(), /*ModificationTime=*/0, llvm::MemoryBuffer::getMemBufferCopy(Extra.getValue(), /*BufferName=*/"")); + + auto Clang = std::make_unique( + std::make_shared()); + Clang->createDiagnostics(*VFS); + + Clang->setInvocation(std::make_unique()); + ASSERT_TRUE(CompilerInvocation::CreateFromArgs( + Clang->getInvocation(), {Filename.data()}, Clang->getDiagnostics(), + "clang")); + auto *FM = Clang->createFileManager(VFS); ASSERT_TRUE(Clang->ExecuteAction(*Inputs.MakeAction())); EXPECT_THAT( diff --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-consteval.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-consteval.cpp new file mode 100644 index 0000000000000..6e4298bba8bf1 --- /dev/null +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-consteval.cpp @@ -0,0 +1,14 @@ +// RUN: %check_clang_tidy -std=c++20 %s bugprone-exception-escape %t -- \ +// RUN: -- -fexceptions -Wno-everything + +namespace GH104457 { + +consteval int consteval_fn(int a) { + if (a == 0) + throw 1; + return a; +} + +int test() noexcept { return consteval_fn(1); } + +} // namespace GH104457 diff --git a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp index e3864be134da3..19da88300aec4 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/avoid-const-or-ref-data-members.cpp @@ -285,6 +285,28 @@ struct InheritBothFromNonCopyableAndNonMovable : NonCopyable, NonMovable int& x; // OK, non copyable nor movable }; +template struct TemplateInheritFromNonCopyable : NonCopyable +{ + int& x; + // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: member 'x' of type 'int &' is a reference +}; + +template struct TemplateInheritFromNonMovable : NonMovable +{ + int& x; + // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: member 'x' of type 'int &' is a reference +}; + +template struct TemplateInheritFromNonCopyableNonMovable : NonCopyableNonMovable +{ + int& x; // OK, non copyable nor movable +}; + +template struct TemplateInheritBothFromNonCopyableAndNonMovable : NonCopyable, NonMovable +{ + int& x; // OK, non copyable nor movable +}; + // Test composition struct ContainsNonCopyable { diff --git a/clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-func.cpp b/clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-func.cpp index 8dc739da3a273..bf0d2c2513e56 100644 --- a/clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-func.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/misc/use-internal-linkage-func.cpp @@ -13,59 +13,59 @@ void func_template() {} // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: function 'func_template' // CHECK-FIXES: static void func_template() {} -void func_cpp_inc(); +void func_cpp_inc() {} // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: function 'func_cpp_inc' -// CHECK-FIXES: static void func_cpp_inc(); +// CHECK-FIXES: static void func_cpp_inc() {} -int* func_cpp_inc_return_ptr(); +int* func_cpp_inc_return_ptr() {} // CHECK-MESSAGES: :[[@LINE-1]]:6: warning: function 'func_cpp_inc_return_ptr' -// CHECK-FIXES: static int* func_cpp_inc_return_ptr(); +// CHECK-FIXES: static int* func_cpp_inc_return_ptr() {} -const int* func_cpp_inc_return_const_ptr(); +const int* func_cpp_inc_return_const_ptr() {} // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: function 'func_cpp_inc_return_const_ptr' -// CHECK-FIXES: static const int* func_cpp_inc_return_const_ptr(); +// CHECK-FIXES: static const int* func_cpp_inc_return_const_ptr() {} -int const* func_cpp_inc_return_ptr_const(); +int const* func_cpp_inc_return_ptr_const() {} // CHECK-MESSAGES: :[[@LINE-1]]:12: warning: function 'func_cpp_inc_return_ptr_const' -// CHECK-FIXES: static int const* func_cpp_inc_return_ptr_const(); +// CHECK-FIXES: static int const* func_cpp_inc_return_ptr_const() {} -int * const func_cpp_inc_return_const(); +int * const func_cpp_inc_return_const() {} // CHECK-MESSAGES: :[[@LINE-1]]:13: warning: function 'func_cpp_inc_return_const' -// CHECK-FIXES: static int * const func_cpp_inc_return_const(); +// CHECK-FIXES: static int * const func_cpp_inc_return_const() {} -volatile const int* func_cpp_inc_return_volatile_const_ptr(); +volatile const int* func_cpp_inc_return_volatile_const_ptr() {} // CHECK-MESSAGES: :[[@LINE-1]]:21: warning: function 'func_cpp_inc_return_volatile_const_ptr' -// CHECK-FIXES: static volatile const int* func_cpp_inc_return_volatile_const_ptr(); +// CHECK-FIXES: static volatile const int* func_cpp_inc_return_volatile_const_ptr() {} -[[nodiscard]] void func_nodiscard(); +[[nodiscard]] void func_nodiscard() {} // CHECK-MESSAGES: :[[@LINE-1]]:20: warning: function 'func_nodiscard' -// CHECK-FIXES: {{\[\[nodiscard\]\]}} static void func_nodiscard(); +// CHECK-FIXES: {{\[\[nodiscard\]\]}} static void func_nodiscard() {} #define NDS [[nodiscard]] #define NNDS -NDS void func_nds(); +NDS void func_nds() {} // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: function 'func_nds' -// CHECK-FIXES: NDS static void func_nds(); +// CHECK-FIXES: NDS static void func_nds() {} -NNDS void func_nnds(); +NNDS void func_nnds() {} // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: function 'func_nnds' -// CHECK-FIXES: NNDS static void func_nnds(); +// CHECK-FIXES: NNDS static void func_nnds() {} #include "func_cpp.inc" -void func_h_inc(); +void func_h_inc() {} struct S { void method(); }; void S::method() {} -void func_header(); -extern void func_extern(); -static void func_static(); +void func_header() {} +extern void func_extern() {} +static void func_static() {} namespace { -void func_anonymous_ns(); +void func_anonymous_ns() {} } // namespace int main(int argc, const char*argv[]) {} @@ -75,3 +75,13 @@ void func_extern_c_1() {} } extern "C" void func_extern_c_2() {} + +namespace gh117488 { +void func_with_body(); +// CHECK-MESSAGES: :[[@LINE-1]]:6: warning: function 'func_with_body' +// CHECK-FIXES: static void func_with_body(); +void func_with_body() {} + +void func_without_body(); +void func_without_body(); +} diff --git a/clang/Maintainers.rst b/clang/Maintainers.rst index b601f4da0b3a9..7396211715a80 100644 --- a/clang/Maintainers.rst +++ b/clang/Maintainers.rst @@ -176,6 +176,15 @@ Thread Safety Analysis | aaron.puchert\@sap.com (email), aaronpuchert (GitHub), aaronpuchert (Discourse) +Function Effect Analysis +~~~~~~~~~~~~~~~~~~~~~~~~ +| Doug Wyatt +| dwyatt\@apple.com (email), dougsonos (GitHub), dougsonos (Discourse) + +| Sirraide +| aeternalmail\@gmail.com (email), Sirraide (GitHub), Ætérnal (Discord), Sirraide (Discourse) + + Tools ----- These maintainers are responsible for user-facing tools under the Clang diff --git a/clang/cmake/caches/Fuchsia-stage2.cmake b/clang/cmake/caches/Fuchsia-stage2.cmake index 747d997482898..304e7833699a7 100644 --- a/clang/cmake/caches/Fuchsia-stage2.cmake +++ b/clang/cmake/caches/Fuchsia-stage2.cmake @@ -332,7 +332,7 @@ foreach(target armv6m-none-eabi;armv7m-none-eabi;armv8m.main-none-eabi;armv8.1m. foreach(lang C;CXX;ASM) # TODO: The preprocessor defines workaround various issues in libc and libc++ integration. # These should be addressed and removed over time. - set(RUNTIMES_${target}_CMAKE_${lang}_local_flags "--target=${target} -mthumb -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dtimeval=struct timeval{int tv_sec; int tv_usec;}\" \"-Dgettimeofday(tv, tz)\" -D_LIBCPP_PRINT=1") + set(RUNTIMES_${target}_CMAKE_${lang}_local_flags "--target=${target} -mthumb -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dgettimeofday(tv, tz)\" -D_LIBCPP_PRINT=1") if(${target} STREQUAL "armv8m.main-none-eabi") set(RUNTIMES_${target}_CMAKE_${lang}_local_flags "${RUNTIMES_${target}_CMAKE_${lang}_local_flags} -mfloat-abi=softfp -march=armv8m.main+fp+dsp -mcpu=cortex-m33" CACHE STRING "") endif() @@ -346,7 +346,6 @@ foreach(target armv6m-none-eabi;armv7m-none-eabi;armv8m.main-none-eabi;armv8.1m. endforeach() set(RUNTIMES_${target}_LLVM_LIBC_FULL_BUILD ON CACHE BOOL "") set(RUNTIMES_${target}_LIBC_ENABLE_USE_BY_CLANG ON CACHE BOOL "") - set(RUNTIMES_${target}_LIBC_USE_NEW_HEADER_GEN OFF CACHE BOOL "") set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "") set(RUNTIMES_${target}_LIBCXX_CXX_ABI none CACHE STRING "") set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") @@ -391,14 +390,13 @@ foreach(target riscv32-unknown-elf) foreach(lang C;CXX;ASM) # TODO: The preprocessor defines workaround various issues in libc and libc++ integration. # These should be addressed and removed over time. - set(RUNTIMES_${target}_CMAKE_${lang}_FLAGS "--target=${target} -march=rv32imafc -mabi=ilp32f -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dtimeval=struct timeval{int tv_sec; int tv_usec;}\" \"-Dgettimeofday(tv, tz)\" -D_LIBCPP_PRINT=1" CACHE STRING "") + set(RUNTIMES_${target}_CMAKE_${lang}_FLAGS "--target=${target} -march=rv32imafc -mabi=ilp32f -Wno-atomic-alignment \"-Dvfprintf(stream, format, vlist)=vprintf(format, vlist)\" \"-Dfprintf(stream, format, ...)=printf(format)\" \"-Dgettimeofday(tv, tz)\" -D_LIBCPP_PRINT=1" CACHE STRING "") endforeach() foreach(type SHARED;MODULE;EXE) set(RUNTIMES_${target}_CMAKE_${type}_LINKER_FLAGS "-fuse-ld=lld" CACHE STRING "") endforeach() set(RUNTIMES_${target}_LLVM_LIBC_FULL_BUILD ON CACHE BOOL "") set(RUNTIMES_${target}_LIBC_ENABLE_USE_BY_CLANG ON CACHE BOOL "") - set(RUNTIMES_${target}_LIBC_USE_NEW_HEADER_GEN OFF CACHE BOOL "") set(RUNTIMES_${target}_LIBCXX_ABI_VERSION 2 CACHE STRING "") set(RUNTIMES_${target}_LIBCXX_CXX_ABI none CACHE STRING "") set(RUNTIMES_${target}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") diff --git a/clang/docs/ClangFormat.rst b/clang/docs/ClangFormat.rst index 7afad5b15b2d5..e17d741b0a00e 100644 --- a/clang/docs/ClangFormat.rst +++ b/clang/docs/ClangFormat.rst @@ -33,7 +33,7 @@ to format C/C++/Java/JavaScript/JSON/Objective-C/Protobuf/C# code. Clang-format options: --Werror - If set, changes formatting warnings to errors - --Wno-error= - If set don't error out on the specified warning type. + --Wno-error= - If set, don't error out on the specified warning type. =unknown - If set, unknown format options are only warned about. This can be used to enable formatting, even if the configuration contains unknown (newer) options. diff --git a/clang/docs/LanguageExtensions.rst b/clang/docs/LanguageExtensions.rst index ff8e841ee53a2..3c9078bcdf811 100644 --- a/clang/docs/LanguageExtensions.rst +++ b/clang/docs/LanguageExtensions.rst @@ -732,6 +732,10 @@ at the end to the next power of 2. These reductions support both fixed-sized and scalable vector types. +The integer reduction intrinsics, including ``__builtin_reduce_add``, +``__builtin_reduce_mul``, ``__builtin_reduce_and``, ``__builtin_reduce_or``, +and ``__builtin_reduce_xor``, can be called in a ``constexpr`` context. + Example: .. code-block:: c++ diff --git a/clang/docs/OpenMPSupport.rst b/clang/docs/OpenMPSupport.rst index 3f996ceaff156..481362dba3f51 100644 --- a/clang/docs/OpenMPSupport.rst +++ b/clang/docs/OpenMPSupport.rst @@ -290,7 +290,7 @@ implementation. +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | memory management | changes to omp_alloctrait_key enum | :none:`unclaimed` | | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ -| memory model | seq_cst clause on flush construct | :none:`unclaimed` | | +| memory model | seq_cst clause on flush construct | :good:`done` | https://github.com/llvm/llvm-project/pull/114072 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ | misc | 'omp_all_memory' keyword and use in 'depend' clause | :good:`done` | D125828, D126321 | +------------------------------+--------------------------------------------------------------+--------------------------+-----------------------------------------------------------------------+ diff --git a/clang/docs/RealtimeSanitizer.rst b/clang/docs/RealtimeSanitizer.rst index 193f5217c1a1a..233a91f668416 100644 --- a/clang/docs/RealtimeSanitizer.rst +++ b/clang/docs/RealtimeSanitizer.rst @@ -167,7 +167,11 @@ A **partial** list of flags RealtimeSanitizer respects: * - ``halt_on_error`` - ``true`` - boolean - - Exit after first reported error. If false (continue after a detected error), deduplicates error stacks so errors appear only once. + - Exit after first reported error. + * - ``suppress_equal_stacks`` + - ``true`` + - boolean + - If true, suppress duplicate reports (i.e. only print each unique error once). Only particularly useful when ``halt_on_error=false``. * - ``print_stats_on_exit`` - ``false`` - boolean @@ -203,6 +207,44 @@ Some issues with flags can be debugged using the ``verbosity=$NUM`` flag: misspelled_flag ... +Additional customization +------------------------ + +In addition to ``__rtsan_default_options`` outlined above, you can provide definitions of other functions that affect how RTSan operates. + +To be notified on every error reported by RTsan, provide a definition of ``__sanitizer_report_error_summary``. + +.. code-block:: c + + extern "C" void __sanitizer_report_error_summary(const char *error_summary) { + fprintf(stderr, "%s %s\n", "In custom handler! ", error_summary); + /* do other custom things */ + } + +The error summary will be of the form: + +.. code-block:: console + + SUMMARY: RealtimeSanitizer: unsafe-library-call main.cpp:8 in process(std::__1::vector>&) + +To register a callback which will be invoked before a RTSan kills the process: + +.. code-block:: c + + extern "C" void __sanitizer_set_death_callback(void (*callback)(void)); + + void custom_on_die_callback() { + fprintf(stderr, "In custom handler!") + /* do other custom things */ + } + + int main() + { + __sanitizer_set_death_callback(custom_on_die_callback); + ... + } + + Disabling and suppressing ------------------------- diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 999c88455b64a..954fe61f3d1d6 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -148,6 +148,17 @@ C++ Specific Potentially Breaking Changes // Now diagnoses with an error. void f(int& i [[clang::lifetimebound]]); +- Clang now rejects all field accesses on null pointers in constant expressions. The following code + used to work but will now be rejected: + + .. code-block:: c++ + + struct S { int a; int b; }; + constexpr const int *p = &((S*)nullptr)->b; + + Previously, this code was erroneously accepted. + + ABI Changes in This Version --------------------------- @@ -321,6 +332,8 @@ C23 Feature Support - Clang now supports `N3029 `_ Improved Normal Enumerations. - Clang now officially supports `N3030 `_ Enhancements to Enumerations. Clang already supported it as an extension, so there were no changes to compiler behavior. +- Fixed the value of ``BOOL_WIDTH`` in ```` to return ``1`` + explicitly, as mandated by the standard. Fixes #GH117348 Non-comprehensive list of changes in this release ------------------------------------------------- @@ -358,6 +371,7 @@ Non-comprehensive list of changes in this release - ``__builtin_reduce_add`` function can now be used in constant expressions. - ``__builtin_reduce_mul`` function can now be used in constant expressions. - ``__builtin_reduce_and`` function can now be used in constant expressions. +- ``__builtin_reduce_or`` and ``__builtin_reduce_xor`` functions can now be used in constant expressions. New Compiler Flags ------------------ @@ -459,6 +473,8 @@ Attribute Changes in Clang - Clang now supports ``[[clang::lifetime_capture_by(X)]]``. Similar to lifetimebound, this can be used to specify when a reference to a function parameter is captured by another capturing entity ``X``. +- The ``target_version`` attribute is now only supported for AArch64 and RISC-V architectures. + Improvements to Clang's diagnostics ----------------------------------- @@ -561,6 +577,16 @@ Improvements to Clang's diagnostics - Clang now diagnoses missing return value in functions containing ``if consteval`` (#GH116485). +- Clang now correctly recognises code after a call to a ``[[noreturn]]`` constructor + as unreachable (#GH63009). + +- Clang now omits shadowing warnings for parameter names in explicit object member functions (#GH95707). + +- Improved error recovery for function call arguments with trailing commas (#GH100921). + +- For an rvalue reference bound to a temporary struct with an integer member, Clang will detect constant integer overflow + in the initializer for the integer member (#GH46755). + Improvements to Clang's time-trace ---------------------------------- @@ -692,6 +718,7 @@ Bug Fixes to C++ Support assumption if they also occur inside of a dependent lambda. (#GH114787) - Clang now uses valid deduced type locations when diagnosing functions with trailing return type missing placeholder return type. (#GH78694) +- Fixed a bug where bounds of partially expanded pack indexing expressions were checked too early. (#GH116105) Bug Fixes to AST Handling ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -830,6 +857,7 @@ RISC-V Support ^^^^^^^^^^^^^^ - The option ``-mcmodel=large`` for the large code model is supported. +- Bump RVV intrinsic to version 1.0, the spec: https://github.com/riscv-non-isa/rvv-intrinsic-doc/releases/tag/v1.0.0-rc4 CUDA/HIP Language Changes ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang/docs/SanitizerCoverage.rst b/clang/docs/SanitizerCoverage.rst index 45ad03cb43774..6ea1d14829005 100644 --- a/clang/docs/SanitizerCoverage.rst +++ b/clang/docs/SanitizerCoverage.rst @@ -385,6 +385,20 @@ Users need to implement a single function to capture the CF table at startup: // the collected control flow. } +Gated Trace Callbacks +===================== + +Gate the invocation of the tracing callbacks with +``-sanitizer-coverage-gated-trace-callbacks``. + +When this option is enabled, the instrumentation will not call into the +runtime-provided callbacks for tracing, thus only incurring in a trivial +branch without going through a function call. + +It is up to the runtime to toggle the value of the global variable in order to +enable tracing. + +This option is only supported for trace-pc-guard and trace-cmp. Disabling instrumentation with ``__attribute__((no_sanitize("coverage")))`` =========================================================================== diff --git a/clang/include/clang/AST/ExprCXX.h b/clang/include/clang/AST/ExprCXX.h index 696a574833dad..1a24b8857674c 100644 --- a/clang/include/clang/AST/ExprCXX.h +++ b/clang/include/clang/AST/ExprCXX.h @@ -4390,17 +4390,17 @@ class PackIndexingExpr final unsigned TransformedExpressions : 31; LLVM_PREFERRED_TYPE(bool) - unsigned ExpandedToEmptyPack : 1; + unsigned FullySubstituted : 1; PackIndexingExpr(QualType Type, SourceLocation EllipsisLoc, SourceLocation RSquareLoc, Expr *PackIdExpr, Expr *IndexExpr, ArrayRef SubstitutedExprs = {}, - bool ExpandedToEmptyPack = false) + bool FullySubstituted = false) : Expr(PackIndexingExprClass, Type, VK_LValue, OK_Ordinary), EllipsisLoc(EllipsisLoc), RSquareLoc(RSquareLoc), SubExprs{PackIdExpr, IndexExpr}, TransformedExpressions(SubstitutedExprs.size()), - ExpandedToEmptyPack(ExpandedToEmptyPack) { + FullySubstituted(FullySubstituted) { auto *Exprs = getTrailingObjects(); std::uninitialized_copy(SubstitutedExprs.begin(), SubstitutedExprs.end(), @@ -4424,12 +4424,16 @@ class PackIndexingExpr final SourceLocation RSquareLoc, Expr *PackIdExpr, Expr *IndexExpr, std::optional Index, ArrayRef SubstitutedExprs = {}, - bool ExpandedToEmptyPack = false); + bool FullySubstituted = false); static PackIndexingExpr *CreateDeserialized(ASTContext &Context, unsigned NumTransformedExprs); + bool isFullySubstituted() const { return FullySubstituted; } + /// Determine if the expression was expanded to empty. - bool expandsToEmptyPack() const { return ExpandedToEmptyPack; } + bool expandsToEmptyPack() const { + return isFullySubstituted() && TransformedExpressions == 0; + } /// Determine the location of the 'sizeof' keyword. SourceLocation getEllipsisLoc() const { return EllipsisLoc; } diff --git a/clang/include/clang/AST/OpenMPClause.h b/clang/include/clang/AST/OpenMPClause.h index 00c87e71bde31..d2f5267e4da5e 100644 --- a/clang/include/clang/AST/OpenMPClause.h +++ b/clang/include/clang/AST/OpenMPClause.h @@ -2670,8 +2670,8 @@ class OMPCompareClause final : public OMPClause { } }; -/// This represents 'seq_cst' clause in the '#pragma omp atomic' -/// directive. +/// This represents 'seq_cst' clause in the '#pragma omp atomic|flush' +/// directives. /// /// \code /// #pragma omp atomic seq_cst diff --git a/clang/include/clang/AST/Type.h b/clang/include/clang/AST/Type.h index 1ed5c22361ca6..90a52b1dcbf62 100644 --- a/clang/include/clang/AST/Type.h +++ b/clang/include/clang/AST/Type.h @@ -5922,12 +5922,12 @@ class PackIndexingType final unsigned Size : 31; LLVM_PREFERRED_TYPE(bool) - unsigned ExpandsToEmptyPack : 1; + unsigned FullySubstituted : 1; protected: friend class ASTContext; // ASTContext creates these. PackIndexingType(const ASTContext &Context, QualType Canonical, - QualType Pattern, Expr *IndexExpr, bool ExpandsToEmptyPack, + QualType Pattern, Expr *IndexExpr, bool FullySubstituted, ArrayRef Expansions = {}); public: @@ -5951,7 +5951,9 @@ class PackIndexingType final bool hasSelectedType() const { return getSelectedIndex() != std::nullopt; } - bool expandsToEmptyPack() const { return ExpandsToEmptyPack; } + bool isFullySubstituted() const { return FullySubstituted; } + + bool expandsToEmptyPack() const { return isFullySubstituted() && Size == 0; } ArrayRef getExpansions() const { return {getExpansionsPtr(), Size}; @@ -5965,10 +5967,10 @@ class PackIndexingType final if (hasSelectedType()) getSelectedType().Profile(ID); else - Profile(ID, Context, getPattern(), getIndexExpr(), expandsToEmptyPack()); + Profile(ID, Context, getPattern(), getIndexExpr(), isFullySubstituted()); } static void Profile(llvm::FoldingSetNodeID &ID, const ASTContext &Context, - QualType Pattern, Expr *E, bool ExpandsToEmptyPack); + QualType Pattern, Expr *E, bool FullySubstituted); private: const QualType *getExpansionsPtr() const { diff --git a/clang/include/clang/AST/TypeProperties.td b/clang/include/clang/AST/TypeProperties.td index a8b9c920b617c..6f1a76bd18fb5 100644 --- a/clang/include/clang/AST/TypeProperties.td +++ b/clang/include/clang/AST/TypeProperties.td @@ -473,12 +473,12 @@ let Class = PackIndexingType in { def : Property<"indexExpression", ExprRef> { let Read = [{ node->getIndexExpr() }]; } - def : Property<"expandsToEmptyPack", Bool> { - let Read = [{ node->expandsToEmptyPack() }]; + def : Property<"isFullySubstituted", Bool> { + let Read = [{ node->isFullySubstituted() }]; } def : Creator<[{ - return ctx.getPackIndexingType(pattern, indexExpression, expandsToEmptyPack); + return ctx.getPackIndexingType(pattern, indexExpression, isFullySubstituted); }]>; } diff --git a/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h b/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h index c7a5b016c949d..7442f4aad531b 100644 --- a/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h +++ b/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h @@ -47,8 +47,6 @@ class ExprMutationAnalyzer { const Stmt *findPointeeMutation(const Expr *Exp); const Stmt *findPointeeMutation(const Decl *Dec); - static bool isUnevaluated(const Stmt *Smt, const Stmt &Stm, - ASTContext &Context); private: using MutationFinder = const Stmt *(Analyzer::*)(const Expr *); @@ -58,8 +56,6 @@ class ExprMutationAnalyzer { Memoized::ResultMap &MemoizedResults); const Stmt *tryEachDeclRef(const Decl *Dec, MutationFinder Finder); - bool isUnevaluated(const Expr *Exp); - const Stmt *findExprMutation(ArrayRef Matches); const Stmt *findDeclMutation(ArrayRef Matches); const Stmt * @@ -83,6 +79,10 @@ class ExprMutationAnalyzer { ExprMutationAnalyzer(const Stmt &Stm, ASTContext &Context) : Memorized(), A(Stm, Context, Memorized) {} + /// check whether stmt is unevaluated. mutation analyzer will ignore the + /// content in unevaluated stmt. + static bool isUnevaluated(const Stmt *Stm, ASTContext &Context); + bool isMutated(const Expr *Exp) { return findMutation(Exp) != nullptr; } bool isMutated(const Decl *Dec) { return findMutation(Dec) != nullptr; } const Stmt *findMutation(const Expr *Exp) { return A.findMutation(Exp); } @@ -101,11 +101,6 @@ class ExprMutationAnalyzer { return A.findPointeeMutation(Dec); } - static bool isUnevaluated(const Stmt *Smt, const Stmt &Stm, - ASTContext &Context) { - return Analyzer::isUnevaluated(Smt, Stm, Context); - } - private: Memoized Memorized; Analyzer A; diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td index 634253d003256..14009826f2c55 100644 --- a/clang/include/clang/Basic/Attr.td +++ b/clang/include/clang/Basic/Attr.td @@ -3297,7 +3297,7 @@ def Target : InheritableAttr { }]; } -def TargetVersion : InheritableAttr { +def TargetVersion : InheritableAttr, TargetSpecificAttr> { let Spellings = [GCC<"target_version">]; let Args = [StringArgument<"NamesStr">]; let Subjects = SubjectList<[Function], ErrorDiag>; diff --git a/clang/include/clang/Basic/Builtins.td b/clang/include/clang/Basic/Builtins.td index aa65f94e68f9c..eaff744924805 100644 --- a/clang/include/clang/Basic/Builtins.td +++ b/clang/include/clang/Basic/Builtins.td @@ -1486,13 +1486,13 @@ def ReduceMinimum : Builtin { def ReduceXor : Builtin { let Spellings = ["__builtin_reduce_xor"]; - let Attributes = [NoThrow, Const, CustomTypeChecking]; + let Attributes = [NoThrow, Const, CustomTypeChecking, Constexpr]; let Prototype = "void(...)"; } def ReduceOr : Builtin { let Spellings = ["__builtin_reduce_or"]; - let Attributes = [NoThrow, Const, CustomTypeChecking]; + let Attributes = [NoThrow, Const, CustomTypeChecking, Constexpr]; let Prototype = "void(...)"; } @@ -4750,6 +4750,18 @@ def HLSLAny : LangBuiltin<"HLSL_LANG"> { let Prototype = "bool(...)"; } +def HLSLAsDouble : LangBuiltin<"HLSL_LANG"> { + let Spellings = ["__builtin_hlsl_asdouble"]; + let Attributes = [NoThrow, Const]; + let Prototype = "void(...)"; +} + +def HLSLWaveActiveAnyTrue : LangBuiltin<"HLSL_LANG"> { + let Spellings = ["__builtin_hlsl_wave_active_any_true"]; + let Attributes = [NoThrow, Const]; + let Prototype = "bool(bool)"; +} + def HLSLWaveActiveCountBits : LangBuiltin<"HLSL_LANG"> { let Spellings = ["__builtin_hlsl_wave_active_count_bits"]; let Attributes = [NoThrow, Const]; @@ -4870,7 +4882,6 @@ def HLSLSaturate : LangBuiltin<"HLSL_LANG"> { let Prototype = "void(...)"; } - def HLSLSelect : LangBuiltin<"HLSL_LANG"> { let Spellings = ["__builtin_hlsl_select"]; let Attributes = [NoThrow, Const]; @@ -4895,6 +4906,12 @@ def HLSLRadians : LangBuiltin<"HLSL_LANG"> { let Prototype = "void(...)"; } +def HLSLBufferUpdateCounter : LangBuiltin<"HLSL_LANG"> { + let Spellings = ["__builtin_hlsl_buffer_update_counter"]; + let Attributes = [NoThrow]; + let Prototype = "uint32_t(...)"; +} + def HLSLSplitDouble: LangBuiltin<"HLSL_LANG"> { let Spellings = ["__builtin_hlsl_elementwise_splitdouble"]; let Attributes = [NoThrow, Const]; diff --git a/clang/include/clang/Basic/BuiltinsAMDGPU.def b/clang/include/clang/Basic/BuiltinsAMDGPU.def index 7ce8f2c1669d6..49304d12d6d70 100644 --- a/clang/include/clang/Basic/BuiltinsAMDGPU.def +++ b/clang/include/clang/Basic/BuiltinsAMDGPU.def @@ -263,7 +263,7 @@ TARGET_BUILTIN(__builtin_amdgcn_global_load_lds, "vv*1v*3IUiIiIUi", "t", "gfx940 TARGET_BUILTIN(__builtin_amdgcn_fdot2, "fV2hV2hfIb", "nc", "dot10-insts") TARGET_BUILTIN(__builtin_amdgcn_fdot2_f16_f16, "hV2hV2hh", "nc", "dot9-insts") TARGET_BUILTIN(__builtin_amdgcn_fdot2_bf16_bf16, "sV2sV2ss", "nc", "dot9-insts") -TARGET_BUILTIN(__builtin_amdgcn_fdot2_f32_bf16, "fV2sV2sfIb", "nc", "dot9-insts") +TARGET_BUILTIN(__builtin_amdgcn_fdot2_f32_bf16, "fV2sV2sfIb", "nc", "dot12-insts") TARGET_BUILTIN(__builtin_amdgcn_sdot2, "SiV2SsV2SsSiIb", "nc", "dot2-insts") TARGET_BUILTIN(__builtin_amdgcn_udot2, "UiV2UsV2UsUiIb", "nc", "dot2-insts") TARGET_BUILTIN(__builtin_amdgcn_sdot4, "SiSiSiSiIb", "nc", "dot1-insts") @@ -276,6 +276,7 @@ TARGET_BUILTIN(__builtin_amdgcn_dot4_f32_fp8_bf8, "fUiUif", "nc", "dot11-insts") TARGET_BUILTIN(__builtin_amdgcn_dot4_f32_bf8_fp8, "fUiUif", "nc", "dot11-insts") TARGET_BUILTIN(__builtin_amdgcn_dot4_f32_fp8_fp8, "fUiUif", "nc", "dot11-insts") TARGET_BUILTIN(__builtin_amdgcn_dot4_f32_bf8_bf8, "fUiUif", "nc", "dot11-insts") +TARGET_BUILTIN(__builtin_amdgcn_fdot2c_f32_bf16, "fV2yV2yfIb", "nc", "dot13-insts") //===----------------------------------------------------------------------===// // GFX10+ only builtins. @@ -434,10 +435,44 @@ TARGET_BUILTIN(__builtin_amdgcn_cvt_sr_fp8_f32, "ifiiIi", "nc", "fp8-conversion- //===----------------------------------------------------------------------===// // GFX950 only builtins. //===----------------------------------------------------------------------===// +TARGET_BUILTIN(__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4, "V4fV8ZiV8ZiV4fIiIiIiiIii", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4, "V16fV8ZiV8ZiV16fIiIiIiiIii", "nc", "gfx950-insts") + TARGET_BUILTIN(__builtin_amdgcn_mfma_f32_16x16x32_f16, "V4fV8hV8hV4fIiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_mfma_f32_16x16x32_bf16, "V4fV8yV8yV4fIiIiIi", "nc", "gfx950-insts") TARGET_BUILTIN(__builtin_amdgcn_mfma_f32_32x32x16_f16, "V16fV8hV8hV16fIiIiIi", "nc", "gfx950-insts") - TARGET_BUILTIN(__builtin_amdgcn_mfma_f32_32x32x16_bf16, "V16fV8yV8yV16fIiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_mfma_i32_16x16x64_i8, "V4iV4iV4iV4iIiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_mfma_i32_32x32x32_i8, "V16iV4iV4iV16iIiIiIi", "nc", "gfx950-insts") + +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_16x16x64_f16, "V4fV8hV16hV4fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_32x32x32_f16, "V16fV8hV16hV16fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_16x16x64_bf16, "V4fV8yV16yV4fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_32x32x32_bf16, "V16fV8yV16yV16fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_i32_16x16x128_i8, "V4iV4iV8iV4iiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_i32_32x32x64_i8, "V16iV4iV8iV16iiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_16x16x128_bf8_bf8, "V4fV4iV8iV4fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_16x16x128_bf8_fp8, "V4fV4iV8iV4fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_16x16x128_fp8_bf8, "V4fV4iV8iV4fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_16x16x128_fp8_fp8, "V4fV4iV8iV4fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_32x32x64_bf8_bf8, "V16fV4iV8iV16fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_32x32x64_bf8_fp8, "V16fV4iV8iV16fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_32x32x64_fp8_bf8, "V16fV4iV8iV16fiIiIi", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_smfmac_f32_32x32x64_fp8_fp8, "V16fV4iV8iV16fiIiIi", "nc", "gfx950-insts") + +TARGET_BUILTIN(__builtin_amdgcn_permlane16_swap, "V2UiUiUiIbIb", "nc", "permlane16-swap") +TARGET_BUILTIN(__builtin_amdgcn_permlane32_swap, "V2UiUiUiIbIb", "nc", "permlane32-swap") + +TARGET_BUILTIN(__builtin_amdgcn_ds_read_tr4_b64_v2i32, "V2iV2i*3", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_ds_read_tr6_b96_v3i32, "V3iV3i*3", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_ds_read_tr8_b64_v2i32, "V2iV2i*3", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_ds_read_tr16_b64_v4i16, "V4sV4s*3", "nc", "gfx950-insts") + +TARGET_BUILTIN(__builtin_amdgcn_ashr_pk_i8_i32, "UsUiUiUi", "nc", "ashr-pk-insts") +TARGET_BUILTIN(__builtin_amdgcn_ashr_pk_u8_i32, "UsUiUiUi", "nc", "ashr-pk-insts") + +TARGET_BUILTIN(__builtin_amdgcn_cvt_scalef32_2xpk16_fp6_f32, "V6UiV16fV16ff", "nc", "gfx950-insts") +TARGET_BUILTIN(__builtin_amdgcn_cvt_scalef32_2xpk16_bf6_f32, "V6UiV16fV16ff", "nc", "gfx950-insts") //===----------------------------------------------------------------------===// // GFX12+ only builtins. @@ -531,6 +566,10 @@ TARGET_BUILTIN(__builtin_amdgcn_swmmac_f32_16x16x32_bf8_fp8_w64, "V4fiV2iV4fs", TARGET_BUILTIN(__builtin_amdgcn_swmmac_f32_16x16x32_bf8_bf8_w64, "V4fiV2iV4fs", "nc", "gfx12-insts,wavefrontsize64") TARGET_BUILTIN(__builtin_amdgcn_prng_b32, "UiUi", "nc", "prng-inst") +TARGET_BUILTIN(__builtin_amdgcn_cvt_scalef32_pk32_fp6_f16, "V6UiV32hf", "nc", "f16bf16-to-fp6bf6-cvt-scale-insts") +TARGET_BUILTIN(__builtin_amdgcn_cvt_scalef32_pk32_bf6_f16, "V6UiV32hf", "nc", "f16bf16-to-fp6bf6-cvt-scale-insts") +TARGET_BUILTIN(__builtin_amdgcn_cvt_scalef32_pk32_fp6_bf16, "V6UiV32yf", "nc", "f16bf16-to-fp6bf6-cvt-scale-insts") +TARGET_BUILTIN(__builtin_amdgcn_cvt_scalef32_pk32_bf6_bf16, "V6UiV32yf", "nc", "f16bf16-to-fp6bf6-cvt-scale-insts") #undef BUILTIN #undef TARGET_BUILTIN diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 157d77b38b354..834e588c18e37 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -1728,9 +1728,9 @@ def err_introducing_special_friend : Error< def err_tagless_friend_type_template : Error< "friend type templates must use an elaborated type">; def err_no_matching_local_friend : Error< - "no matching function found in local scope">; + "cannot define friend function in a local class definition">; def err_no_matching_local_friend_suggest : Error< - "no matching function %0 found in local scope; did you mean %3?">; + "cannot define friend function %0 in a local class definition; did you mean %3?">; def err_partial_specialization_friend : Error< "partial specialization cannot be declared as a friend">; def err_qualified_friend_def : Error< @@ -7287,6 +7287,8 @@ def err_typecheck_illegal_increment_decrement : Error< "cannot %select{decrement|increment}1 value of type %0">; def err_typecheck_expect_int : Error< "used type %0 where integer is required">; +def err_typecheck_expect_hlsl_resource : Error< + "used type %0 where __hlsl_resource_t is required">; def err_typecheck_arithmetic_incomplete_or_sizeless_type : Error< "arithmetic on a pointer to %select{an incomplete|sizeless}0 type %1">; def err_typecheck_pointer_arith_function_type : Error< @@ -11396,7 +11398,7 @@ def err_omp_atomic_weak_no_equality : Error<"expected '==' operator for 'weak' c def err_omp_atomic_several_clauses : Error< "directive '#pragma omp atomic' cannot contain more than one 'read', 'write', 'update', 'capture', or 'compare' clause">; def err_omp_several_mem_order_clauses : Error< - "directive '#pragma omp %0' cannot contain more than one %select{'seq_cst', 'relaxed', |}1'acq_rel', 'acquire' or 'release' clause">; + "directive '#pragma omp %0' cannot contain more than one 'seq_cst',%select{ 'relaxed',|}1 'acq_rel', 'acquire' or 'release' clause">; def err_omp_atomic_incompatible_mem_order_clause : Error< "directive '#pragma omp atomic%select{ %0|}1' cannot be used with '%2' clause">; def note_omp_previous_mem_order_clause : Note< @@ -12528,6 +12530,10 @@ def warn_attr_min_eq_max: Warning< def err_hlsl_attribute_number_arguments_insufficient_shader_model: Error< "attribute %0 with %1 arguments requires shader model %2 or greater">; +def err_hlsl_expect_arg_const_int_one_or_neg_one: Error< + "argument %0 must be constant integer 1 or -1">; +def err_invalid_hlsl_resource_type: Error< + "invalid __hlsl_resource_t type attributes">; // Layout randomization diagnostics. def err_non_designated_init_used : Error< diff --git a/clang/include/clang/Basic/arm_neon.td b/clang/include/clang/Basic/arm_neon.td index ec829f566ef5f..ef89fa4358dfe 100644 --- a/clang/include/clang/Basic/arm_neon.td +++ b/clang/include/clang/Basic/arm_neon.td @@ -252,7 +252,7 @@ def OP_BFMLALT_LN def OP_VCVT_F32_BF16 : Op<(bitcast "R", - (call "vshll_n", (bitcast "int16x4_t", $p0), + (call "vshll_n", (bitcast "uint16x4_t", $p0), (literal "int32_t", "16")))>; def OP_VCVT_F32_BF16_LO : Op<(call "vcvt_f32_bf16", (call "vget_low", $p0))>; @@ -275,8 +275,8 @@ def OP_VCVT_BF16_F32_HI_A32 (call "vget_low", $p0))>; def OP_CVT_F32_BF16 - : Op<(bitcast "R", (op "<<", (cast "int32_t", (bitcast "int16_t", $p0)), - (literal "int32_t", "16")))>; + : Op<(bitcast "R", (op "<<", (cast "uint32_t", (bitcast "uint16_t", $p0)), + (literal "uint32_t", "16")))>; //===----------------------------------------------------------------------===// // Auxiliary Instructions diff --git a/clang/include/clang/Basic/arm_neon_incl.td b/clang/include/clang/Basic/arm_neon_incl.td index b088e0794cdea..fd800e5a6278e 100644 --- a/clang/include/clang/Basic/arm_neon_incl.td +++ b/clang/include/clang/Basic/arm_neon_incl.td @@ -218,6 +218,7 @@ def OP_UNAVAILABLE : Operation { // h: half-float // d: double // b: bfloat16 +// m: mfloat8 // // Typespec modifiers // ------------------ diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 5167c3c39e315..40fd48761928b 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -4405,7 +4405,7 @@ def fcoverage_prefix_map_EQ HelpText<"remap file source paths to in coverage mapping. If there are multiple options, prefix replacement is applied in reverse order starting from the last one">; def ffile_prefix_map_EQ : Joined<["-"], "ffile-prefix-map=">, Group, - HelpText<"remap file source paths in debug info, predefined preprocessor " + HelpText<"remap file source paths in debug info, coverage mapping, predefined preprocessor " "macros and __builtin_FILE(). Implies -ffile-reproducible.">; def fmacro_prefix_map_EQ : Joined<["-"], "fmacro-prefix-map=">, Group, @@ -5413,6 +5413,10 @@ def mlam_bh : Flag<["-"], "mlam-bh">, Group, HelpText<"Enable amswap[_db].{b/h} and amadd[_db].{b/h}">; def mno_lam_bh : Flag<["-"], "mno-lam-bh">, Group, HelpText<"Disable amswap[_db].{b/h} and amadd[_db].{b/h}">; +def mld_seq_sa : Flag<["-"], "mld-seq-sa">, Group, + HelpText<"Do not generate load-load barrier instructions (dbar 0x700)">; +def mno_ld_seq_sa : Flag<["-"], "mno-ld-seq-sa">, Group, + HelpText<"Generate load-load barrier instructions (dbar 0x700)">; def mannotate_tablejump : Flag<["-"], "mannotate-tablejump">, Group, HelpText<"Enable annotate table jump instruction to correlate it with the jump table.">; def mno_annotate_tablejump : Flag<["-"], "mno-annotate-tablejump">, Group, @@ -5884,12 +5888,24 @@ def target : Joined<["--"], "target=">, Flags<[NoXarchOption]>, def darwin_target_variant : Separate<["-"], "darwin-target-variant">, Flags<[NoXarchOption]>, Visibility<[ClangOption, CLOption]>, HelpText<"Generate code for an additional runtime variant of the deployment target">; + +//===----------------------------------------------------------------------===// +// Print CPU info options (clang, clang-cl, flang) +//===----------------------------------------------------------------------===// + +let Visibility = [ClangOption, CC1Option, CLOption, FlangOption, FC1Option] in { + def print_supported_cpus : Flag<["-", "--"], "print-supported-cpus">, Group, - Visibility<[ClangOption, CC1Option, CLOption]>, - HelpText<"Print supported cpu models for the given target (if target is not specified," - " it will print the supported cpus for the default target)">, + HelpText<"Print supported cpu models for the given target (if target is not " + "specified,it will print the supported cpus for the default target)">, MarshallingInfoFlag>; + +def : Flag<["-"], "mcpu=help">, Alias; +def : Flag<["-"], "mtune=help">, Alias; + +} // let Visibility = [ClangOption, CC1Option, CLOption, FlangOption, FC1Option] + def print_supported_extensions : Flag<["-", "--"], "print-supported-extensions">, Visibility<[ClangOption, CC1Option, CLOption]>, HelpText<"Print supported -march extensions (RISC-V, AArch64 and ARM only)">, @@ -5899,8 +5915,6 @@ def print_enabled_extensions : Flag<["-", "--"], "print-enabled-extensions">, HelpText<"Print the extensions enabled by the given target and -march/-mcpu options." " (AArch64 and RISC-V only)">, MarshallingInfoFlag>; -def : Flag<["-"], "mcpu=help">, Alias; -def : Flag<["-"], "mtune=help">, Alias; def time : Flag<["-"], "time">, HelpText<"Time individual commands">; def traditional_cpp : Flag<["-", "--"], "traditional-cpp">, diff --git a/clang/include/clang/Format/Format.h b/clang/include/clang/Format/Format.h index ea6b414618c1d..056fad2cc0ff8 100644 --- a/clang/include/clang/Format/Format.h +++ b/clang/include/clang/Format/Format.h @@ -4970,12 +4970,11 @@ struct FormatStyle { /// \version 12 std::vector StatementAttributeLikeMacros; - /// A vector of macros that should be interpreted as complete - /// statements. + /// A vector of macros that should be interpreted as complete statements. /// - /// Typical macros are expressions, and require a semi-colon to be - /// added; sometimes this is not the case, and this allows to make - /// clang-format aware of such cases. + /// Typical macros are expressions and require a semicolon to be added. + /// Sometimes this is not the case, and this allows to make clang-format aware + /// of such cases. /// /// For example: Q_UNUSED /// \version 8 diff --git a/clang/include/clang/Frontend/CompilerInstance.h b/clang/include/clang/Frontend/CompilerInstance.h index 338eb3c6bd028..1220a4e29471d 100644 --- a/clang/include/clang/Frontend/CompilerInstance.h +++ b/clang/include/clang/Frontend/CompilerInstance.h @@ -675,13 +675,17 @@ class CompilerInstance : public ModuleLoader { /// Note that this routine also replaces the diagnostic client, /// allocating one if one is not provided. /// + /// \param VFS is used for any IO needed when creating DiagnosticsEngine. It + /// doesn't replace VFS in the CompilerInstance (if any). + /// /// \param Client If non-NULL, a diagnostic client that will be /// attached to (and, then, owned by) the DiagnosticsEngine inside this AST /// unit. /// /// \param ShouldOwnClient If Client is non-NULL, specifies whether /// the diagnostic object should take ownership of the client. - void createDiagnostics(DiagnosticConsumer *Client = nullptr, + void createDiagnostics(llvm::vfs::FileSystem &VFS, + DiagnosticConsumer *Client = nullptr, bool ShouldOwnClient = true); /// Create a DiagnosticsEngine object with a the TextDiagnosticPrinter. @@ -702,10 +706,11 @@ class CompilerInstance : public ModuleLoader { /// used by some diagnostics printers (for logging purposes only). /// /// \return The new object on success, or null on failure. - static IntrusiveRefCntPtr createDiagnostics( - DiagnosticOptions *Opts, DiagnosticConsumer *Client = nullptr, - bool ShouldOwnClient = true, const CodeGenOptions *CodeGenOpts = nullptr, - IntrusiveRefCntPtr VFS = nullptr); + static IntrusiveRefCntPtr + createDiagnostics(llvm::vfs::FileSystem &VFS, DiagnosticOptions *Opts, + DiagnosticConsumer *Client = nullptr, + bool ShouldOwnClient = true, + const CodeGenOptions *CodeGenOpts = nullptr); /// Create the file manager and replace any existing one with it. /// diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h index 045ee754a242b..d3838a4cc8418 100644 --- a/clang/include/clang/Parse/Parser.h +++ b/clang/include/clang/Parse/Parser.h @@ -1934,7 +1934,8 @@ class Parser : public CodeCompletionHandler { llvm::function_ref ExpressionStarts = llvm::function_ref(), bool FailImmediatelyOnInvalidExpr = false, - bool EarlyTypoCorrection = false); + bool EarlyTypoCorrection = false, + bool *HasTrailingComma = nullptr); /// ParseSimpleExpressionList - A simple comma-separated list of expressions, /// used for misc language extensions. diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index 6ea6c67447b6f..24abd5d95dd84 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -1757,6 +1757,9 @@ class Sema final : public SemaBase { /// Add [[clang:::lifetimebound]] attr for std:: functions and methods. void inferLifetimeBoundAttribute(FunctionDecl *FD); + /// Add [[clang:::lifetime_capture_by(this)]] to STL container methods. + void inferLifetimeCaptureByAttribute(FunctionDecl *FD); + /// Add [[gsl::Pointer]] attributes for std:: types. void inferGslPointerAttribute(TypedefNameDecl *TD); @@ -14254,7 +14257,7 @@ class Sema final : public SemaBase { SourceLocation EllipsisLoc, Expr *IndexExpr, SourceLocation RSquareLoc, ArrayRef ExpandedExprs = {}, - bool EmptyPack = false); + bool FullySubstituted = false); /// Handle a C++1z fold-expression: ( expr op ... op expr ). ExprResult ActOnCXXFoldExpr(Scope *S, SourceLocation LParenLoc, Expr *LHS, diff --git a/clang/lib/AST/APValue.cpp b/clang/lib/AST/APValue.cpp index 4f5d14cbd59bb..f9e08b70d6ab0 100644 --- a/clang/lib/AST/APValue.cpp +++ b/clang/lib/AST/APValue.cpp @@ -1087,10 +1087,6 @@ void APValue::MakeArray(unsigned InitElts, unsigned Size) { Kind = Array; } -MutableArrayRef -setLValueUninit(APValue::LValueBase B, const CharUnits &O, unsigned Size, - bool OnePastTheEnd, bool IsNullPtr); - MutableArrayRef APValue::setMemberPointerUninit(const ValueDecl *Member, bool IsDerivedMember, unsigned Size) { diff --git a/clang/lib/AST/ASTConcept.cpp b/clang/lib/AST/ASTConcept.cpp index bdc713ca3e791..f7ee0fb3ee92d 100644 --- a/clang/lib/AST/ASTConcept.cpp +++ b/clang/lib/AST/ASTConcept.cpp @@ -22,11 +22,11 @@ static void CreateUnsatisfiedConstraintRecord(const ASTContext &C, const UnsatisfiedConstraintRecord &Detail, UnsatisfiedConstraintRecord *TrailingObject) { - if (Detail.is()) - new (TrailingObject) UnsatisfiedConstraintRecord(Detail.get()); + if (auto *E = dyn_cast(Detail)) + new (TrailingObject) UnsatisfiedConstraintRecord(E); else { auto &SubstitutionDiagnostic = - *Detail.get *>(); + *cast *>(Detail); StringRef Message = C.backupStr(SubstitutionDiagnostic.second); auto *NewSubstDiag = new (C) std::pair( SubstitutionDiagnostic.first, Message); diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 14fbadbc35ae5..80e8c5b9df58e 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -374,10 +374,10 @@ static const Decl &adjustDeclToTemplate(const Decl &D) { llvm::PointerUnion PU = CTSD->getSpecializedTemplateOrPartial(); - return PU.is() - ? *static_cast(PU.get()) + return isa(PU) + ? *static_cast(cast(PU)) : *static_cast( - PU.get()); + cast(PU)); } // Class is instantiated from a member definition of a class template? @@ -3558,7 +3558,7 @@ ASTContext::adjustType(QualType Orig, llvm::function_ref Adjust) const { switch (Orig->getTypeClass()) { case Type::Attributed: { - const auto *AT = dyn_cast(Orig); + const auto *AT = cast(Orig); return getAttributedType(AT->getAttrKind(), adjustType(AT->getModifiedType(), Adjust), adjustType(AT->getEquivalentType(), Adjust), @@ -6223,13 +6223,11 @@ QualType ASTContext::getPackIndexingType(QualType Pattern, Expr *IndexExpr, ArrayRef Expansions, int Index) const { QualType Canonical; - bool ExpandsToEmptyPack = FullySubstituted && Expansions.empty(); if (FullySubstituted && Index != -1) { Canonical = getCanonicalType(Expansions[Index]); } else { llvm::FoldingSetNodeID ID; - PackIndexingType::Profile(ID, *this, Pattern, IndexExpr, - ExpandsToEmptyPack); + PackIndexingType::Profile(ID, *this, Pattern, IndexExpr, FullySubstituted); void *InsertPos = nullptr; PackIndexingType *Canon = DependentPackIndexingTypes.FindNodeOrInsertPos(ID, InsertPos); @@ -6238,7 +6236,7 @@ QualType ASTContext::getPackIndexingType(QualType Pattern, Expr *IndexExpr, PackIndexingType::totalSizeToAlloc(Expansions.size()), TypeAlignment); Canon = new (Mem) PackIndexingType(*this, QualType(), Pattern, IndexExpr, - ExpandsToEmptyPack, Expansions); + FullySubstituted, Expansions); DependentPackIndexingTypes.InsertNode(Canon, InsertPos); } Canonical = QualType(Canon, 0); @@ -6248,7 +6246,7 @@ QualType ASTContext::getPackIndexingType(QualType Pattern, Expr *IndexExpr, Allocate(PackIndexingType::totalSizeToAlloc(Expansions.size()), TypeAlignment); auto *T = new (Mem) PackIndexingType(*this, Canonical, Pattern, IndexExpr, - ExpandsToEmptyPack, Expansions); + FullySubstituted, Expansions); Types.push_back(T); return QualType(T, 0); } diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp index baed141663543..a0cd57e2e5ee0 100644 --- a/clang/lib/AST/ASTImporter.cpp +++ b/clang/lib/AST/ASTImporter.cpp @@ -104,8 +104,8 @@ namespace clang { char ASTImportError::ID; template - SmallVector - getCanonicalForwardRedeclChain(Redeclarable* D) { + static SmallVector + getCanonicalForwardRedeclChain(Redeclarable *D) { SmallVector Redecls; for (auto *R : D->getFirstDecl()->redecls()) { if (R != D->getFirstDecl()) @@ -126,7 +126,7 @@ namespace clang { llvm_unreachable("Bad declaration kind"); } - void updateFlags(const Decl *From, Decl *To) { + static void updateFlags(const Decl *From, Decl *To) { // Check if some flags or attrs are new in 'From' and copy into 'To'. // FIXME: Other flags or attrs? if (From->isUsed(false) && !To->isUsed(false)) diff --git a/clang/lib/AST/ByteCode/Compiler.cpp b/clang/lib/AST/ByteCode/Compiler.cpp index 7cf2519d6a71f..f4cc284dfb6ab 100644 --- a/clang/lib/AST/ByteCode/Compiler.cpp +++ b/clang/lib/AST/ByteCode/Compiler.cpp @@ -448,6 +448,10 @@ bool Compiler::VisitCastExpr(const CastExpr *CE) { QualType SubExprTy = SubExpr->getType(); std::optional FromT = classify(SubExprTy); + // Casts from integer to vectors in C. + if (FromT && CE->getType()->isVectorType()) + return this->emitBuiltinBitCast(CE); + std::optional ToT = classify(CE->getType()); if (!FromT || !ToT) return false; @@ -1642,22 +1646,8 @@ bool Compiler::VisitImplicitValueInitExpr( if (QT->isIncompleteArrayType()) return true; - if (QT->isArrayType()) { - const ArrayType *AT = QT->getAsArrayTypeUnsafe(); - assert(AT); - const auto *CAT = cast(AT); - size_t NumElems = CAT->getZExtSize(); - PrimType ElemT = classifyPrim(CAT->getElementType()); - - for (size_t I = 0; I != NumElems; ++I) { - if (!this->visitZeroInitializer(ElemT, CAT->getElementType(), E)) - return false; - if (!this->emitInitElem(ElemT, I, E)) - return false; - } - - return true; - } + if (QT->isArrayType()) + return this->visitZeroArrayInitializer(QT, E); if (const auto *ComplexTy = E->getType()->getAs()) { assert(Initializing); @@ -3916,18 +3906,9 @@ bool Compiler::visitZeroRecordInitializer(const Record *R, return false; } } else if (D->isCompositeArray()) { - const Record *ElemRecord = D->ElemDesc->ElemRecord; - assert(D->ElemDesc->ElemRecord); - for (uint32_t I = 0, N = D->getNumElems(); I != N; ++I) { - if (!this->emitConstUint32(I, E)) - return false; - if (!this->emitArrayElemPtr(PT_Uint32, E)) - return false; - if (!this->visitZeroRecordInitializer(ElemRecord, E)) - return false; - if (!this->emitPopPtr(E)) - return false; - } + // Can't be a vector or complex field. + if (!this->visitZeroArrayInitializer(D->getType(), E)) + return false; } else if (D->isRecord()) { if (!this->visitZeroRecordInitializer(D->ElemRecord, E)) return false; @@ -3958,6 +3939,52 @@ bool Compiler::visitZeroRecordInitializer(const Record *R, return true; } +template +bool Compiler::visitZeroArrayInitializer(QualType T, const Expr *E) { + assert(T->isArrayType() || T->isAnyComplexType() || T->isVectorType()); + const ArrayType *AT = T->getAsArrayTypeUnsafe(); + QualType ElemType = AT->getElementType(); + size_t NumElems = cast(AT)->getZExtSize(); + + if (std::optional ElemT = classify(ElemType)) { + for (size_t I = 0; I != NumElems; ++I) { + if (!this->visitZeroInitializer(*ElemT, ElemType, E)) + return false; + if (!this->emitInitElem(*ElemT, I, E)) + return false; + } + return true; + } else if (ElemType->isRecordType()) { + const Record *R = getRecord(ElemType); + + for (size_t I = 0; I != NumElems; ++I) { + if (!this->emitConstUint32(I, E)) + return false; + if (!this->emitArrayElemPtr(PT_Uint32, E)) + return false; + if (!this->visitZeroRecordInitializer(R, E)) + return false; + if (!this->emitPopPtr(E)) + return false; + } + return true; + } else if (ElemType->isArrayType()) { + for (size_t I = 0; I != NumElems; ++I) { + if (!this->emitConstUint32(I, E)) + return false; + if (!this->emitArrayElemPtr(PT_Uint32, E)) + return false; + if (!this->visitZeroArrayInitializer(ElemType, E)) + return false; + if (!this->emitPopPtr(E)) + return false; + } + return true; + } + + return false; +} + template template bool Compiler::emitConst(T Value, PrimType Ty, const Expr *E) { @@ -4033,7 +4060,7 @@ unsigned Compiler::allocateLocalPrimitive(DeclTy &&Src, PrimType Ty, // (int){12} in C. Consider using Expr::isTemporaryObject() instead // or isa(). Descriptor *D = P.createDescriptor(Src, Ty, Descriptor::InlineDescMD, IsConst, - Src.is()); + isa(Src)); Scope::Local Local = this->createLocal(D); if (auto *VD = dyn_cast_if_present(Src.dyn_cast())) Locals.insert({VD, Local}); @@ -6471,8 +6498,23 @@ bool Compiler::emitBuiltinBitCast(const CastExpr *E) { } // Get a pointer to the value-to-cast on the stack. - if (!this->visit(SubExpr)) - return false; + // For CK_LValueToRValueBitCast, this is always an lvalue and + // we later assume it to be one (i.e. a PT_Ptr). However, + // we call this function for other utility methods where + // a bitcast might be useful, so convert it to a PT_Ptr in that case. + if (SubExpr->isGLValue()) { + if (!this->visit(SubExpr)) + return false; + } else if (std::optional FromT = classify(SubExpr)) { + unsigned TempOffset = allocateLocalPrimitive( + SubExpr, *FromT, /*IsConst=*/true, /*IsExtended=*/false); + if (!this->visit(SubExpr)) + return false; + if (!this->emitSetLocal(*FromT, TempOffset, E)) + return false; + if (!this->emitGetPtrLocal(TempOffset, E)) + return false; + } if (!ToT || ToT == PT_Ptr) { if (!this->emitBitCastPtr(E)) diff --git a/clang/lib/AST/ByteCode/Compiler.h b/clang/lib/AST/ByteCode/Compiler.h index d1b624daba6b9..2a94f5ec76b6c 100644 --- a/clang/lib/AST/ByteCode/Compiler.h +++ b/clang/lib/AST/ByteCode/Compiler.h @@ -325,6 +325,7 @@ class Compiler : public ConstStmtVisitor, bool>, /// Emits a zero initializer. bool visitZeroInitializer(PrimType T, QualType QT, const Expr *E); bool visitZeroRecordInitializer(const Record *R, const Expr *E); + bool visitZeroArrayInitializer(QualType T, const Expr *E); /// Emits an APSInt constant. bool emitConst(const llvm::APSInt &Value, PrimType Ty, const Expr *E); diff --git a/clang/lib/AST/ByteCode/Disasm.cpp b/clang/lib/AST/ByteCode/Disasm.cpp index 85522ffd32dcc..496c1dcef59b5 100644 --- a/clang/lib/AST/ByteCode/Disasm.cpp +++ b/clang/lib/AST/ByteCode/Disasm.cpp @@ -33,7 +33,7 @@ using namespace clang; using namespace clang::interp; -template inline T ReadArg(Program &P, CodePtr &OpPC) { +template inline static T ReadArg(Program &P, CodePtr &OpPC) { if constexpr (std::is_pointer_v) { uint32_t ID = OpPC.read(); return reinterpret_cast(P.getNativePointer(ID)); diff --git a/clang/lib/AST/ByteCode/Interp.cpp b/clang/lib/AST/ByteCode/Interp.cpp index 339af0c873a8e..329f1584be34b 100644 --- a/clang/lib/AST/ByteCode/Interp.cpp +++ b/clang/lib/AST/ByteCode/Interp.cpp @@ -1370,9 +1370,15 @@ bool CallBI(InterpState &S, CodePtr OpPC, const Function *Func, S.Current = NewFrame.get(); if (InterpretBuiltin(S, OpPC, Func, CE, BuiltinID)) { - NewFrame.release(); + // Release ownership of NewFrame to prevent it from being deleted. + NewFrame.release(); // Frame was deleted already. + // Ensure that S.Current is correctly reset to the previous frame. + assert(S.Current == FrameBefore); return true; } + + // Interpreting the function failed somehow. Reset to + // previous state. S.Current = FrameBefore; return false; } @@ -1475,11 +1481,12 @@ bool CheckNewTypeMismatch(InterpState &S, CodePtr OpPC, const Expr *E, bool InvalidNewDeleteExpr(InterpState &S, CodePtr OpPC, const Expr *E) { assert(E); - const auto &Loc = S.Current->getSource(OpPC); if (S.getLangOpts().CPlusPlus26) return true; + const auto &Loc = S.Current->getSource(OpPC); + if (const auto *NewExpr = dyn_cast(E)) { const FunctionDecl *OperatorNew = NewExpr->getOperatorNew(); @@ -1588,7 +1595,7 @@ bool CheckBitCast(InterpState &S, CodePtr OpPC, bool HasIndeterminateBits, } // https://github.com/llvm/llvm-project/issues/102513 -#if defined(_WIN32) && !defined(__clang__) && !defined(NDEBUG) +#if defined(_MSC_VER) && !defined(__clang__) && !defined(NDEBUG) #pragma optimize("", off) #endif bool Interpret(InterpState &S, APValue &Result) { @@ -1616,7 +1623,7 @@ bool Interpret(InterpState &S, APValue &Result) { } } // https://github.com/llvm/llvm-project/issues/102513 -#if defined(_WIN32) && !defined(__clang__) && !defined(NDEBUG) +#if defined(_MSC_VER) && !defined(__clang__) && !defined(NDEBUG) #pragma optimize("", on) #endif diff --git a/clang/lib/AST/ByteCode/Interp.h b/clang/lib/AST/ByteCode/Interp.h index 1f3134e1cd155..47dcfca79f735 100644 --- a/clang/lib/AST/ByteCode/Interp.h +++ b/clang/lib/AST/ByteCode/Interp.h @@ -3084,6 +3084,9 @@ inline bool BitCastPtr(InterpState &S, CodePtr OpPC) { const Pointer &FromPtr = S.Stk.pop(); Pointer &ToPtr = S.Stk.peek(); + if (!CheckLoad(S, OpPC, FromPtr)) + return false; + if (!DoBitCastPtr(S, OpPC, FromPtr, ToPtr)) return false; diff --git a/clang/lib/AST/ByteCode/InterpBuiltin.cpp b/clang/lib/AST/ByteCode/InterpBuiltin.cpp index 144f2291651cc..b450d8263c30b 100644 --- a/clang/lib/AST/ByteCode/InterpBuiltin.cpp +++ b/clang/lib/AST/ByteCode/InterpBuiltin.cpp @@ -47,7 +47,7 @@ static APSInt getAPSIntParam(const InterpFrame *Frame, unsigned Index) { return R; } -PrimType getIntPrimType(const InterpState &S) { +static PrimType getIntPrimType(const InterpState &S) { const TargetInfo &TI = S.getASTContext().getTargetInfo(); unsigned IntWidth = TI.getIntWidth(); @@ -58,7 +58,7 @@ PrimType getIntPrimType(const InterpState &S) { llvm_unreachable("Int isn't 16 or 32 bit?"); } -PrimType getLongPrimType(const InterpState &S) { +static PrimType getLongPrimType(const InterpState &S) { const TargetInfo &TI = S.getASTContext().getTargetInfo(); unsigned LongWidth = TI.getLongWidth(); diff --git a/clang/lib/AST/ByteCode/InterpBuiltinBitCast.cpp b/clang/lib/AST/ByteCode/InterpBuiltinBitCast.cpp index 7e8853d346931..b1230f92ddf1d 100644 --- a/clang/lib/AST/ByteCode/InterpBuiltinBitCast.cpp +++ b/clang/lib/AST/ByteCode/InterpBuiltinBitCast.cpp @@ -254,7 +254,7 @@ static bool CheckBitcastType(InterpState &S, CodePtr OpPC, QualType T, }; auto note = [&](int Construct, QualType NoteType, SourceRange NoteRange) { S.Note(NoteRange.getBegin(), diag::note_constexpr_bit_cast_invalid_subtype) - << NoteType << Construct << T << NoteRange; + << NoteType << Construct << T.getUnqualifiedType() << NoteRange; return false; }; @@ -388,11 +388,10 @@ bool clang::interp::DoBitCastPtr(InterpState &S, CodePtr OpPC, QualType FromType = FromPtr.getType(); QualType ToType = ToPtr.getType(); - if (!CheckBitcastType(S, OpPC, FromType, /*IsToType=*/false)) - return false; - if (!CheckBitcastType(S, OpPC, ToType, /*IsToType=*/true)) return false; + if (!CheckBitcastType(S, OpPC, FromType, /*IsToType=*/false)) + return false; BitcastBuffer Buffer; readPointerToBuffer(S.getContext(), FromPtr, Buffer, diff --git a/clang/lib/AST/ByteCode/InterpFrame.cpp b/clang/lib/AST/ByteCode/InterpFrame.cpp index 7f02464a1c0f1..20f67d9b1fd42 100644 --- a/clang/lib/AST/ByteCode/InterpFrame.cpp +++ b/clang/lib/AST/ByteCode/InterpFrame.cpp @@ -234,7 +234,12 @@ SourceInfo InterpFrame::getSource(CodePtr PC) const { if (Func && !funcHasUsableBody(Func) && Caller) return Caller->getSource(RetPC); - return S.getSource(Func, PC); + // Similarly, if the resulting source location is invalid anyway, + // point to the caller instead. + SourceInfo Result = S.getSource(Func, PC); + if (Result.getLoc().isInvalid() && Caller) + return Caller->getSource(RetPC); + return Result; } const Expr *InterpFrame::getExpr(CodePtr PC) const { diff --git a/clang/lib/AST/ByteCode/Program.cpp b/clang/lib/AST/ByteCode/Program.cpp index 590ee19de6d2f..c98a3506b0a90 100644 --- a/clang/lib/AST/ByteCode/Program.cpp +++ b/clang/lib/AST/ByteCode/Program.cpp @@ -158,7 +158,7 @@ unsigned Program::getOrCreateDummy(const DeclTy &D) { if (const auto *E = D.dyn_cast()) { QT = E->getType(); } else { - const ValueDecl *VD = cast(D.get()); + const ValueDecl *VD = cast(cast(D)); IsWeak = VD->isWeak(); QT = VD->getType(); if (const auto *RT = QT->getAs()) diff --git a/clang/lib/AST/ComputeDependence.cpp b/clang/lib/AST/ComputeDependence.cpp index e37ebec085195..07c4419e3cf40 100644 --- a/clang/lib/AST/ComputeDependence.cpp +++ b/clang/lib/AST/ComputeDependence.cpp @@ -388,9 +388,8 @@ ExprDependence clang::computeDependence(PackIndexingExpr *E) { ExprDependence::Instantiation; ArrayRef Exprs = E->getExpressions(); - if (Exprs.empty()) + if (Exprs.empty() || !E->isFullySubstituted()) D |= PatternDep | ExprDependence::Instantiation; - else if (!E->getIndexExpr()->isInstantiationDependent()) { std::optional Index = E->getSelectedIndex(); assert(Index && *Index < Exprs.size() && "pack index out of bound"); diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index bfeb4827f7958..741e908cf9bc5 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -1991,7 +1991,7 @@ void DeclaratorDecl::setQualifierInfo(NestedNameSpecifierLoc QualifierLoc) { // Make sure the extended decl info is allocated. if (!hasExtInfo()) { // Save (non-extended) type source info pointer. - auto *savedTInfo = DeclInfo.get(); + auto *savedTInfo = cast(DeclInfo); // Allocate external info struct. DeclInfo = new (getASTContext()) ExtInfo; // Restore savedTInfo into (extended) decl info. @@ -2010,7 +2010,7 @@ void DeclaratorDecl::setTrailingRequiresClause(Expr *TrailingRequiresClause) { // Make sure the extended decl info is allocated. if (!hasExtInfo()) { // Save (non-extended) type source info pointer. - auto *savedTInfo = DeclInfo.get(); + auto *savedTInfo = cast(DeclInfo); // Allocate external info struct. DeclInfo = new (getASTContext()) ExtInfo; // Restore savedTInfo into (extended) decl info. @@ -2026,7 +2026,7 @@ void DeclaratorDecl::setTemplateParameterListsInfo( // Make sure the extended decl info is allocated. if (!hasExtInfo()) { // Save (non-extended) type source info pointer. - auto *savedTInfo = DeclInfo.get(); + auto *savedTInfo = cast(DeclInfo); // Allocate external info struct. DeclInfo = new (getASTContext()) ExtInfo; // Restore savedTInfo into (extended) decl info. @@ -2534,7 +2534,7 @@ EvaluatedStmt *VarDecl::ensureEvaluatedStmt() const { // work to avoid leaking those, but we do so in VarDecl::evaluateValue // where we can detect whether there's anything to clean up or not. Eval = new (getASTContext()) EvaluatedStmt; - Eval->Value = Init.get(); + Eval->Value = cast(Init); Init = Eval; } return Eval; @@ -3017,7 +3017,7 @@ void ParmVarDecl::setUninstantiatedDefaultArg(Expr *arg) { Expr *ParmVarDecl::getUninstantiatedDefaultArg() { assert(hasUninstantiatedDefaultArg() && "Wrong kind of initialization expression!"); - return cast_if_present(Init.get()); + return cast_if_present(cast(Init)); } bool ParmVarDecl::hasDefaultArg() const { @@ -4010,12 +4010,12 @@ FunctionDecl::TemplatedKind FunctionDecl::getTemplatedKind() const { "No other valid types in NamedDecl"); return TK_FunctionTemplate; } - if (TemplateOrSpecialization.is()) + if (isa(TemplateOrSpecialization)) return TK_MemberSpecialization; - if (TemplateOrSpecialization.is()) + if (isa(TemplateOrSpecialization)) return TK_FunctionTemplateSpecialization; - if (TemplateOrSpecialization.is - ()) + if (isa( + TemplateOrSpecialization)) return TK_DependentFunctionTemplateSpecialization; llvm_unreachable("Did we miss a TemplateOrSpecialization type?"); @@ -4062,9 +4062,9 @@ void FunctionDecl::setDescribedFunctionTemplate( } bool FunctionDecl::isFunctionTemplateSpecialization() const { - return TemplateOrSpecialization.is() || - TemplateOrSpecialization - .is(); + return isa(TemplateOrSpecialization) || + isa( + TemplateOrSpecialization); } void FunctionDecl::setInstantiatedFromDecl(FunctionDecl *FD) { @@ -4216,7 +4216,7 @@ void FunctionDecl::setFunctionTemplateSpecialization( const TemplateArgumentListInfo *TemplateArgsAsWritten, SourceLocation PointOfInstantiation) { assert((TemplateOrSpecialization.isNull() || - TemplateOrSpecialization.is()) && + isa(TemplateOrSpecialization)) && "Member function is already a specialization"); assert(TSK != TSK_Undeclared && "Must specify the type of function template specialization"); @@ -4287,8 +4287,8 @@ TemplateSpecializationKind FunctionDecl::getTemplateSpecializationKind() const { // A dependent function template specialization is an explicit specialization, // except when it's a friend declaration. - if (TemplateOrSpecialization - .is() && + if (isa( + TemplateOrSpecialization) && getFriendObjectKind() == FOK_None) return TSK_ExplicitSpecialization; @@ -4331,8 +4331,8 @@ FunctionDecl::getTemplateSpecializationKindForInstantiation() const { TemplateOrSpecialization.dyn_cast()) return MSInfo->getTemplateSpecializationKind(); - if (TemplateOrSpecialization - .is() && + if (isa( + TemplateOrSpecialization) && getFriendObjectKind() == FOK_None) return TSK_ExplicitSpecialization; diff --git a/clang/lib/AST/DeclBase.cpp b/clang/lib/AST/DeclBase.cpp index 96638b85c452b..fb701f76231bc 100644 --- a/clang/lib/AST/DeclBase.cpp +++ b/clang/lib/AST/DeclBase.cpp @@ -1500,7 +1500,8 @@ DeclContext *DeclContext::getPrimaryContext() { } template -void collectAllContextsImpl(T *Self, SmallVectorImpl &Contexts) { +static void collectAllContextsImpl(T *Self, + SmallVectorImpl &Contexts) { for (T *D = Self->getMostRecentDecl(); D; D = D->getPreviousDecl()) Contexts.push_back(D); diff --git a/clang/lib/AST/DeclCXX.cpp b/clang/lib/AST/DeclCXX.cpp index 39c548e9c2253..25560faae8672 100644 --- a/clang/lib/AST/DeclCXX.cpp +++ b/clang/lib/AST/DeclCXX.cpp @@ -2733,14 +2733,14 @@ int64_t CXXCtorInitializer::getID(const ASTContext &Context) const { TypeLoc CXXCtorInitializer::getBaseClassLoc() const { if (isBaseInitializer()) - return Initializee.get()->getTypeLoc(); + return cast(Initializee)->getTypeLoc(); else return {}; } const Type *CXXCtorInitializer::getBaseClass() const { if (isBaseInitializer()) - return Initializee.get()->getType().getTypePtr(); + return cast(Initializee)->getType().getTypePtr(); else return nullptr; } @@ -2752,7 +2752,7 @@ SourceLocation CXXCtorInitializer::getSourceLocation() const { if (isAnyMemberInitializer()) return getMemberLocation(); - if (const auto *TSInfo = Initializee.get()) + if (const auto *TSInfo = cast(Initializee)) return TSInfo->getTypeLoc().getBeginLoc(); return {}; diff --git a/clang/lib/AST/DeclFriend.cpp b/clang/lib/AST/DeclFriend.cpp index d003842bfb7c7..6bfc2eb62b284 100644 --- a/clang/lib/AST/DeclFriend.cpp +++ b/clang/lib/AST/DeclFriend.cpp @@ -36,8 +36,7 @@ FriendDecl::Create(ASTContext &C, DeclContext *DC, SourceLocation L, SourceLocation EllipsisLoc, ArrayRef FriendTypeTPLists) { #ifndef NDEBUG - if (Friend.is()) { - const auto *D = Friend.get(); + if (const auto *D = dyn_cast(Friend)) { assert(isa(D) || isa(D) || isa(D) || diff --git a/clang/lib/AST/DeclTemplate.cpp b/clang/lib/AST/DeclTemplate.cpp index f487032a37ab7..1da3f26bf23cd 100644 --- a/clang/lib/AST/DeclTemplate.cpp +++ b/clang/lib/AST/DeclTemplate.cpp @@ -992,7 +992,7 @@ ClassTemplateSpecializationDecl::getSpecializedTemplate() const { if (const auto *PartialSpec = SpecializedTemplate.dyn_cast()) return PartialSpec->PartialSpecialization->getSpecializedTemplate(); - return SpecializedTemplate.get(); + return cast(SpecializedTemplate); } SourceRange @@ -1008,7 +1008,7 @@ ClassTemplateSpecializationDecl::getSourceRange() const { if (const auto *CTPSD = Pattern.dyn_cast()) return CTPSD->getSourceRange(); - return Pattern.get()->getSourceRange(); + return cast(Pattern)->getSourceRange(); } case TSK_ExplicitSpecialization: { SourceRange Range = CXXRecordDecl::getSourceRange(); @@ -1404,7 +1404,7 @@ VarTemplateDecl *VarTemplateSpecializationDecl::getSpecializedTemplate() const { if (const auto *PartialSpec = SpecializedTemplate.dyn_cast()) return PartialSpec->PartialSpecialization->getSpecializedTemplate(); - return SpecializedTemplate.get(); + return cast(SpecializedTemplate); } SourceRange VarTemplateSpecializationDecl::getSourceRange() const { @@ -1419,7 +1419,7 @@ SourceRange VarTemplateSpecializationDecl::getSourceRange() const { if (const auto *VTPSD = Pattern.dyn_cast()) return VTPSD->getSourceRange(); - VarTemplateDecl *VTD = Pattern.get(); + VarTemplateDecl *VTD = cast(Pattern); if (hasInit()) { if (VarTemplateDecl *Definition = VTD->getDefinition()) return Definition->getSourceRange(); diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp index 0ce129de85f03..fc09d24fc30cb 100644 --- a/clang/lib/AST/ExprCXX.cpp +++ b/clang/lib/AST/ExprCXX.cpp @@ -162,7 +162,7 @@ QualType CXXTypeidExpr::getTypeOperand(const ASTContext &Context) const { assert(isTypeOperand() && "Cannot call getTypeOperand for typeid(expr)"); Qualifiers Quals; return Context.getUnqualifiedArrayType( - Operand.get()->getType().getNonReferenceType(), Quals); + cast(Operand)->getType().getNonReferenceType(), Quals); } static bool isGLValueFromPointerDeref(const Expr *E) { @@ -216,7 +216,7 @@ QualType CXXUuidofExpr::getTypeOperand(ASTContext &Context) const { assert(isTypeOperand() && "Cannot call getTypeOperand for __uuidof(expr)"); Qualifiers Quals; return Context.getUnqualifiedArrayType( - Operand.get()->getType().getNonReferenceType(), Quals); + cast(Operand)->getType().getNonReferenceType(), Quals); } // CXXScalarValueInitExpr @@ -1717,9 +1717,9 @@ NonTypeTemplateParmDecl *SubstNonTypeTemplateParmExpr::getParameter() const { PackIndexingExpr *PackIndexingExpr::Create( ASTContext &Context, SourceLocation EllipsisLoc, SourceLocation RSquareLoc, Expr *PackIdExpr, Expr *IndexExpr, std::optional Index, - ArrayRef SubstitutedExprs, bool ExpandedToEmptyPack) { + ArrayRef SubstitutedExprs, bool FullySubstituted) { QualType Type; - if (Index && !SubstitutedExprs.empty()) + if (Index && FullySubstituted && !SubstitutedExprs.empty()) Type = SubstitutedExprs[*Index]->getType(); else Type = Context.DependentTy; @@ -1728,7 +1728,7 @@ PackIndexingExpr *PackIndexingExpr::Create( Context.Allocate(totalSizeToAlloc(SubstitutedExprs.size())); return new (Storage) PackIndexingExpr(Type, EllipsisLoc, RSquareLoc, PackIdExpr, IndexExpr, - SubstitutedExprs, ExpandedToEmptyPack); + SubstitutedExprs, FullySubstituted); } NamedDecl *PackIndexingExpr::getPackDecl() const { @@ -1829,11 +1829,11 @@ void MaterializeTemporaryExpr::setExtendingDecl(ValueDecl *ExtendedBy, // We may need to allocate extra storage for the mangling number and the // extended-by ValueDecl. - if (!State.is()) + if (!isa(State)) State = LifetimeExtendedTemporaryDecl::Create( - cast(State.get()), ExtendedBy, ManglingNumber); + cast(cast(State)), ExtendedBy, ManglingNumber); - auto ES = State.get(); + auto ES = cast(State); ES->ExtendingDecl = ExtendedBy; ES->ManglingNumber = ManglingNumber; } diff --git a/clang/lib/AST/ExprConcepts.cpp b/clang/lib/AST/ExprConcepts.cpp index 6efe73ea085a7..e6afcdd5dc3e8 100644 --- a/clang/lib/AST/ExprConcepts.cpp +++ b/clang/lib/AST/ExprConcepts.cpp @@ -94,8 +94,7 @@ ConceptSpecializationExpr::Create(const ASTContext &C, ConceptReference *Loc, const TypeConstraint * concepts::ExprRequirement::ReturnTypeRequirement::getTypeConstraint() const { assert(isTypeConstraint()); - auto TPL = - TypeConstraintInfo.getPointer().get(); + auto TPL = cast(TypeConstraintInfo.getPointer()); return cast(TPL->getParam(0)) ->getTypeConstraint(); } diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index 33206f5cda202..c6d003073966f 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -3261,8 +3261,8 @@ static bool HandleLValueDirectBase(EvalInfo &Info, const Expr *E, LValue &Obj, RL = &Info.Ctx.getASTRecordLayout(Derived); } - Obj.getLValueOffset() += RL->getBaseClassOffset(Base); Obj.addDecl(Info, E, Base, /*Virtual*/ false); + Obj.getLValueOffset() += RL->getBaseClassOffset(Base); return true; } @@ -3286,8 +3286,8 @@ static bool HandleLValueBase(EvalInfo &Info, const Expr *E, LValue &Obj, // Find the virtual base class. if (DerivedDecl->isInvalidDecl()) return false; const ASTRecordLayout &Layout = Info.Ctx.getASTRecordLayout(DerivedDecl); - Obj.getLValueOffset() += Layout.getVBaseClassOffset(BaseDecl); Obj.addDecl(Info, E, BaseDecl, /*Virtual*/ true); + Obj.getLValueOffset() += Layout.getVBaseClassOffset(BaseDecl); return true; } @@ -3330,8 +3330,8 @@ static bool HandleLValueMember(EvalInfo &Info, const Expr *E, LValue &LVal, } unsigned I = FD->getFieldIndex(); - LVal.adjustOffset(Info.Ctx.toCharUnitsFromBits(RL->getFieldOffset(I))); LVal.addDecl(Info, E, FD); + LVal.adjustOffset(Info.Ctx.toCharUnitsFromBits(RL->getFieldOffset(I))); return true; } @@ -3824,8 +3824,8 @@ static QualType getSubobjectType(QualType ObjType, QualType SubobjType, } /// Find the designated sub-object of an rvalue. -template -typename SubobjectHandler::result_type +template +static typename SubobjectHandler::result_type findSubobject(EvalInfo &Info, const Expr *E, const CompleteObject &Obj, const SubobjectDesignator &Sub, SubobjectHandler &handler) { if (Sub.Invalid) @@ -7106,7 +7106,7 @@ static std::optional CheckDeleteKind(EvalInfo &Info, const Expr *E, } // Perform a call to 'operator delete' or '__builtin_operator_delete'. -bool HandleOperatorDeleteCall(EvalInfo &Info, const CallExpr *E) { +static bool HandleOperatorDeleteCall(EvalInfo &Info, const CallExpr *E) { if (Info.checkingPotentialConstantExpression() || Info.SpeculativeEvaluationDepth) return false; @@ -13529,7 +13529,9 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const CallExpr *E, case Builtin::BI__builtin_reduce_add: case Builtin::BI__builtin_reduce_mul: - case Builtin::BI__builtin_reduce_and: { + case Builtin::BI__builtin_reduce_and: + case Builtin::BI__builtin_reduce_or: + case Builtin::BI__builtin_reduce_xor: { APValue Source; if (!EvaluateAsRValue(Info, E->getArg(0), Source)) return false; @@ -13558,6 +13560,14 @@ bool IntExprEvaluator::VisitBuiltinCallExpr(const CallExpr *E, Reduced &= Source.getVectorElt(EltNum).getInt(); break; } + case Builtin::BI__builtin_reduce_or: { + Reduced |= Source.getVectorElt(EltNum).getInt(); + break; + } + case Builtin::BI__builtin_reduce_xor: { + Reduced ^= Source.getVectorElt(EltNum).getInt(); + break; + } } } diff --git a/clang/lib/AST/ItaniumCXXABI.cpp b/clang/lib/AST/ItaniumCXXABI.cpp index bf152ca35431c..a1b2551419f5e 100644 --- a/clang/lib/AST/ItaniumCXXABI.cpp +++ b/clang/lib/AST/ItaniumCXXABI.cpp @@ -75,17 +75,17 @@ struct DecompositionDeclName { } namespace llvm { -template bool isDenseMapKeyEmpty(T V) { +template static bool isDenseMapKeyEmpty(T V) { return llvm::DenseMapInfo::isEqual( V, llvm::DenseMapInfo::getEmptyKey()); } -template bool isDenseMapKeyTombstone(T V) { +template static bool isDenseMapKeyTombstone(T V) { return llvm::DenseMapInfo::isEqual( V, llvm::DenseMapInfo::getTombstoneKey()); } template -std::optional areDenseMapKeysEqualSpecialValues(T LHS, T RHS) { +static std::optional areDenseMapKeysEqualSpecialValues(T LHS, T RHS) { bool LHSEmpty = isDenseMapKeyEmpty(LHS); bool RHSEmpty = isDenseMapKeyEmpty(RHS); if (LHSEmpty || RHSEmpty) diff --git a/clang/lib/AST/ParentMapContext.cpp b/clang/lib/AST/ParentMapContext.cpp index 9723c0cfa83bb..af7d9fcdc638b 100644 --- a/clang/lib/AST/ParentMapContext.cpp +++ b/clang/lib/AST/ParentMapContext.cpp @@ -50,7 +50,7 @@ DynTypedNode ParentMapContext::traverseIgnored(const DynTypedNode &N) const { } template -std::tuple +static std::tuple matchParents(const DynTypedNodeList &NodeList, ParentMapContext::ParentMap *ParentMap); @@ -107,7 +107,7 @@ class ParentMapContext::ParentMap { return DynTypedNode::create(*D); if (const auto *S = U.dyn_cast()) return DynTypedNode::create(*S); - return *U.get(); + return *cast(U); } template @@ -127,17 +127,17 @@ class ParentMapContext::ParentMap { ParentMap(ASTContext &Ctx); ~ParentMap() { for (const auto &Entry : PointerParents) { - if (Entry.second.is()) { - delete Entry.second.get(); - } else if (Entry.second.is()) { - delete Entry.second.get(); + if (auto *DTN = dyn_cast(Entry.second)) { + delete DTN; + } else if (auto *PV = dyn_cast(Entry.second)) { + delete PV; } } for (const auto &Entry : OtherParents) { - if (Entry.second.is()) { - delete Entry.second.get(); - } else if (Entry.second.is()) { - delete Entry.second.get(); + if (auto *DTN = dyn_cast(Entry.second)) { + delete DTN; + } else if (auto *PV = dyn_cast(Entry.second)) { + delete PV; } } } @@ -392,14 +392,14 @@ class ParentMapContext::ParentMap::ASTVisitor else NodeOrVector = new DynTypedNode(ParentStack.back()); } else { - if (!NodeOrVector.template is()) { + if (!isa(NodeOrVector)) { auto *Vector = new ParentVector( 1, getSingleDynTypedNodeFromParentMap(NodeOrVector)); delete NodeOrVector.template dyn_cast(); NodeOrVector = Vector; } - auto *Vector = NodeOrVector.template get(); + auto *Vector = cast(NodeOrVector); // Skip duplicates for types that have memoization data. // We must check that the type has memoization data before calling // llvm::is_contained() because DynTypedNode::operator== can't compare all diff --git a/clang/lib/AST/TemplateName.cpp b/clang/lib/AST/TemplateName.cpp index c500507fecdf5..7d6275caedc4f 100644 --- a/clang/lib/AST/TemplateName.cpp +++ b/clang/lib/AST/TemplateName.cpp @@ -151,13 +151,13 @@ TemplateName::NameKind TemplateName::getKind() const { return Template; } - if (Storage.is()) + if (isa(Storage)) return DependentTemplate; - if (Storage.is()) + if (isa(Storage)) return QualifiedTemplate; - UncommonTemplateNameStorage *uncommon - = Storage.get(); + UncommonTemplateNameStorage *uncommon = + cast(Storage); if (uncommon->getAsOverloadedStorage()) return OverloadedTemplate; if (uncommon->getAsAssumedTemplateName()) diff --git a/clang/lib/AST/Type.cpp b/clang/lib/AST/Type.cpp index b70f86ef31442..edf20944f0b3e 100644 --- a/clang/lib/AST/Type.cpp +++ b/clang/lib/AST/Type.cpp @@ -4031,12 +4031,12 @@ void DependentDecltypeType::Profile(llvm::FoldingSetNodeID &ID, PackIndexingType::PackIndexingType(const ASTContext &Context, QualType Canonical, QualType Pattern, - Expr *IndexExpr, bool ExpandsToEmptyPack, + Expr *IndexExpr, bool FullySubstituted, ArrayRef Expansions) : Type(PackIndexing, Canonical, computeDependence(Pattern, IndexExpr, Expansions)), Context(Context), Pattern(Pattern), IndexExpr(IndexExpr), - Size(Expansions.size()), ExpandsToEmptyPack(ExpandsToEmptyPack) { + Size(Expansions.size()), FullySubstituted(FullySubstituted) { std::uninitialized_copy(Expansions.begin(), Expansions.end(), getTrailingObjects()); @@ -4081,10 +4081,10 @@ PackIndexingType::computeDependence(QualType Pattern, Expr *IndexExpr, void PackIndexingType::Profile(llvm::FoldingSetNodeID &ID, const ASTContext &Context, QualType Pattern, - Expr *E, bool ExpandsToEmptyPack) { + Expr *E, bool FullySubstituted) { Pattern.Profile(ID); E->Profile(ID, Context, true); - ID.AddBoolean(ExpandsToEmptyPack); + ID.AddBoolean(FullySubstituted); } UnaryTransformType::UnaryTransformType(QualType BaseType, diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp index 7a6bd8b6f8d07..304bbb2b422c6 100644 --- a/clang/lib/Analysis/CFG.cpp +++ b/clang/lib/Analysis/CFG.cpp @@ -760,6 +760,7 @@ class CFGBuilder { void cleanupConstructionContext(Expr *E); void autoCreateBlock() { if (!Block) Block = createBlock(); } + CFGBlock *createBlock(bool add_successor = true); CFGBlock *createNoReturnBlock(); @@ -818,15 +819,21 @@ class CFGBuilder { B->appendStmt(const_cast(S), cfg->getBumpVectorContext()); } - void appendConstructor(CFGBlock *B, CXXConstructExpr *CE) { + void appendConstructor(CXXConstructExpr *CE) { + CXXConstructorDecl *C = CE->getConstructor(); + if (C && C->isNoReturn()) + Block = createNoReturnBlock(); + else + autoCreateBlock(); + if (const ConstructionContext *CC = retrieveAndCleanupConstructionContext(CE)) { - B->appendConstructor(CE, CC, cfg->getBumpVectorContext()); + Block->appendConstructor(CE, CC, cfg->getBumpVectorContext()); return; } // No valid construction context found. Fall back to statement. - B->appendStmt(CE, cfg->getBumpVectorContext()); + Block->appendStmt(CE, cfg->getBumpVectorContext()); } void appendCall(CFGBlock *B, CallExpr *CE) { @@ -4832,9 +4839,7 @@ CFGBlock *CFGBuilder::VisitCXXConstructExpr(CXXConstructExpr *C, // construct these objects. Construction contexts we find here aren't for the // constructor C, they're for its arguments only. findConstructionContextsForArguments(C); - - autoCreateBlock(); - appendConstructor(Block, C); + appendConstructor(C); return VisitChildren(C); } @@ -4892,16 +4897,15 @@ CFGBlock *CFGBuilder::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *E, return Visit(E->getSubExpr(), asc); } -CFGBlock *CFGBuilder::VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *C, +CFGBlock *CFGBuilder::VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *E, AddStmtChoice asc) { // If the constructor takes objects as arguments by value, we need to properly // construct these objects. Construction contexts we find here aren't for the // constructor C, they're for its arguments only. - findConstructionContextsForArguments(C); + findConstructionContextsForArguments(E); + appendConstructor(E); - autoCreateBlock(); - appendConstructor(Block, C); - return VisitChildren(C); + return VisitChildren(E); } CFGBlock *CFGBuilder::VisitImplicitCastExpr(ImplicitCastExpr *E, diff --git a/clang/lib/Analysis/ExprMutationAnalyzer.cpp b/clang/lib/Analysis/ExprMutationAnalyzer.cpp index 5a95ef36d0502..be0e8aa5743dd 100644 --- a/clang/lib/Analysis/ExprMutationAnalyzer.cpp +++ b/clang/lib/Analysis/ExprMutationAnalyzer.cpp @@ -231,12 +231,12 @@ ExprMutationAnalyzer::Analyzer::findPointeeMutation(const Decl *Dec) { const Stmt *ExprMutationAnalyzer::Analyzer::findMutationMemoized( const Expr *Exp, llvm::ArrayRef Finders, Memoized::ResultMap &MemoizedResults) { + // Assume Exp is not mutated before analyzing Exp. auto [Memoized, Inserted] = MemoizedResults.try_emplace(Exp); if (!Inserted) return Memoized->second; - // Assume Exp is not mutated before analyzing Exp. - if (isUnevaluated(Exp)) + if (ExprMutationAnalyzer::isUnevaluated(Exp, Context)) return nullptr; for (const auto &Finder : Finders) { @@ -268,41 +268,29 @@ ExprMutationAnalyzer::Analyzer::tryEachDeclRef(const Decl *Dec, return nullptr; } -bool ExprMutationAnalyzer::Analyzer::isUnevaluated(const Stmt *Exp, - const Stmt &Stm, - ASTContext &Context) { - return selectFirst( - NodeID::value, - match( - findFirst( - stmt(canResolveToExpr(Exp), - anyOf( - // `Exp` is part of the underlying expression of - // decltype/typeof if it has an ancestor of - // typeLoc. - hasAncestor(typeLoc(unless( - hasAncestor(unaryExprOrTypeTraitExpr())))), - hasAncestor(expr(anyOf( - // `UnaryExprOrTypeTraitExpr` is unevaluated - // unless it's sizeof on VLA. - unaryExprOrTypeTraitExpr(unless(sizeOfExpr( - hasArgumentOfType(variableArrayType())))), - // `CXXTypeidExpr` is unevaluated unless it's - // applied to an expression of glvalue of - // polymorphic class type. - cxxTypeidExpr( - unless(isPotentiallyEvaluated())), - // The controlling expression of - // `GenericSelectionExpr` is unevaluated. - genericSelectionExpr(hasControllingExpr( - hasDescendant(equalsNode(Exp)))), - cxxNoexceptExpr()))))) - .bind(NodeID::value)), - Stm, Context)) != nullptr; -} - -bool ExprMutationAnalyzer::Analyzer::isUnevaluated(const Expr *Exp) { - return isUnevaluated(Exp, Stm, Context); +bool ExprMutationAnalyzer::isUnevaluated(const Stmt *Stm, ASTContext &Context) { + return !match(stmt(anyOf( + // `Exp` is part of the underlying expression of + // decltype/typeof if it has an ancestor of + // typeLoc. + hasAncestor(typeLoc( + unless(hasAncestor(unaryExprOrTypeTraitExpr())))), + hasAncestor(expr(anyOf( + // `UnaryExprOrTypeTraitExpr` is unevaluated + // unless it's sizeof on VLA. + unaryExprOrTypeTraitExpr(unless(sizeOfExpr( + hasArgumentOfType(variableArrayType())))), + // `CXXTypeidExpr` is unevaluated unless it's + // applied to an expression of glvalue of + // polymorphic class type. + cxxTypeidExpr(unless(isPotentiallyEvaluated())), + // The controlling expression of + // `GenericSelectionExpr` is unevaluated. + genericSelectionExpr( + hasControllingExpr(hasDescendant(equalsNode(Stm)))), + cxxNoexceptExpr()))))), + *Stm, Context) + .empty(); } const Stmt * diff --git a/clang/lib/Basic/Attributes.cpp b/clang/lib/Basic/Attributes.cpp index 6904bce3ac51e..fa26cc584b724 100644 --- a/clang/lib/Basic/Attributes.cpp +++ b/clang/lib/Basic/Attributes.cpp @@ -156,7 +156,7 @@ std::string AttributeCommonInfo::getNormalizedFullName() const { normalizeName(getAttrName(), getScopeName(), getSyntax())); } -AttributeCommonInfo::Scope +static AttributeCommonInfo::Scope getScopeFromNormalizedScopeName(StringRef ScopeName) { return llvm::StringSwitch(ScopeName) .Case("", AttributeCommonInfo::Scope::NONE) diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index 9b983cefbcf4c..6e588ce63d813 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -665,7 +665,7 @@ SourceManager::createExpansionLocImpl(const ExpansionInfo &Info, LocalSLocEntryTable.push_back(SLocEntry::get(NextLocalOffset, Info)); if (NextLocalOffset + Length + 1 <= NextLocalOffset || NextLocalOffset + Length + 1 > CurrentLoadedOffset) { - Diag.Report(SourceLocation(), diag::err_sloc_space_too_large); + Diag.Report(diag::err_sloc_space_too_large); // FIXME: call `noteSLocAddressSpaceUsage` to report details to users and // use a source location from `Info` to point at an error. // Currently, both cause Clang to run indefinitely, this needs to be fixed. @@ -2295,7 +2295,7 @@ void SourceManager::noteSLocAddressSpaceUsage( uint64_t LoadedUsage = MaxLoadedOffset - CurrentLoadedOffset; int UsagePercent = static_cast(100.0 * double(LocalUsage + LoadedUsage) / MaxLoadedOffset); - Diag.Report(SourceLocation(), diag::note_total_sloc_usage) + Diag.Report(diag::note_total_sloc_usage) << LocalUsage << LoadedUsage << (LocalUsage + LoadedUsage) << UsagePercent; @@ -2311,7 +2311,7 @@ void SourceManager::noteSLocAddressSpaceUsage( // Describe any remaining usage not reported in the per-file usage. if (ReportedSize != CountedSize) { - Diag.Report(SourceLocation(), diag::note_file_misc_sloc_usage) + Diag.Report(diag::note_file_misc_sloc_usage) << (SortedUsage.end() - SortedEnd) << CountedSize - ReportedSize; } } diff --git a/clang/lib/Basic/Targets/AMDGPU.h b/clang/lib/Basic/Targets/AMDGPU.h index db7a095ba2a4f..ea4189cdea47d 100644 --- a/clang/lib/Basic/Targets/AMDGPU.h +++ b/clang/lib/Basic/Targets/AMDGPU.h @@ -120,7 +120,8 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo { toTargetAddressSpace(A) == llvm::AMDGPUAS::FLAT_ADDRESS)) && isTargetAddressSpace(B) && toTargetAddressSpace(B) >= llvm::AMDGPUAS::FLAT_ADDRESS && - toTargetAddressSpace(B) <= llvm::AMDGPUAS::PRIVATE_ADDRESS); + toTargetAddressSpace(B) <= llvm::AMDGPUAS::PRIVATE_ADDRESS && + toTargetAddressSpace(B) != llvm::AMDGPUAS::REGION_ADDRESS); } uint64_t getMaxPointerWidth() const override { diff --git a/clang/lib/Basic/Targets/LoongArch.cpp b/clang/lib/Basic/Targets/LoongArch.cpp index 07b22b35f603c..3f2d7317532aa 100644 --- a/clang/lib/Basic/Targets/LoongArch.cpp +++ b/clang/lib/Basic/Targets/LoongArch.cpp @@ -205,7 +205,7 @@ void LoongArchTargetInfo::getTargetDefines(const LangOptions &Opts, // TODO: As more features of the V1.1 ISA are supported, a unified "v1.1" // arch feature set will be used to include all sub-features belonging to // the V1.1 ISA version. - if (HasFeatureFrecipe && HasFeatureLAM_BH) + if (HasFeatureFrecipe && HasFeatureLAM_BH && HasFeatureLD_SEQ_SA) Builder.defineMacro("__loongarch_arch", Twine('"') + "la64v1.1" + Twine('"')); else @@ -239,6 +239,9 @@ void LoongArchTargetInfo::getTargetDefines(const LangOptions &Opts, if (HasFeatureLAM_BH) Builder.defineMacro("__loongarch_lam_bh", Twine(1)); + if (HasFeatureLD_SEQ_SA) + Builder.defineMacro("__loongarch_ld_seq_sa", Twine(1)); + StringRef ABI = getABI(); if (ABI == "lp64d" || ABI == "lp64f" || ABI == "lp64s") Builder.defineMacro("__loongarch_lp64"); @@ -317,6 +320,8 @@ bool LoongArchTargetInfo::handleTargetFeatures( HasFeatureFrecipe = true; else if (Feature == "+lam-bh") HasFeatureLAM_BH = true; + else if (Feature == "+ld-seq-sa") + HasFeatureLD_SEQ_SA = true; } return true; } diff --git a/clang/lib/Basic/Targets/LoongArch.h b/clang/lib/Basic/Targets/LoongArch.h index 3585e9f7968b4..e5eae7a8fcf67 100644 --- a/clang/lib/Basic/Targets/LoongArch.h +++ b/clang/lib/Basic/Targets/LoongArch.h @@ -31,6 +31,7 @@ class LLVM_LIBRARY_VISIBILITY LoongArchTargetInfo : public TargetInfo { bool HasFeatureLASX; bool HasFeatureFrecipe; bool HasFeatureLAM_BH; + bool HasFeatureLD_SEQ_SA; public: LoongArchTargetInfo(const llvm::Triple &Triple, const TargetOptions &) @@ -41,6 +42,7 @@ class LLVM_LIBRARY_VISIBILITY LoongArchTargetInfo : public TargetInfo { HasFeatureLASX = false; HasFeatureFrecipe = false; HasFeatureLAM_BH = false; + HasFeatureLD_SEQ_SA = false; LongDoubleWidth = 128; LongDoubleAlign = 128; LongDoubleFormat = &llvm::APFloat::IEEEquad(); diff --git a/clang/lib/Basic/Targets/RISCV.cpp b/clang/lib/Basic/Targets/RISCV.cpp index c61ee7ee20392..f0623070319e1 100644 --- a/clang/lib/Basic/Targets/RISCV.cpp +++ b/clang/lib/Basic/Targets/RISCV.cpp @@ -218,8 +218,8 @@ void RISCVTargetInfo::getTargetDefines(const LangOptions &Opts, if (ISAInfo->hasExtension("zve32x")) { Builder.defineMacro("__riscv_vector"); - // Currently we support the v0.12 RISC-V V intrinsics. - Builder.defineMacro("__riscv_v_intrinsic", Twine(getVersionValue(0, 12))); + // Currently we support the v1.0 RISC-V V intrinsics. + Builder.defineMacro("__riscv_v_intrinsic", Twine(getVersionValue(1, 0))); } auto VScale = getVScaleRange(Opts); @@ -512,3 +512,10 @@ bool RISCVTargetInfo::validateGlobalRegisterVariable( } return false; } + +bool RISCVTargetInfo::validateCpuIs(StringRef CPUName) const { + assert(getTriple().isOSLinux() && + "__builtin_cpu_is() is only supported for Linux."); + + return llvm::RISCV::hasValidCPUModel(CPUName); +} diff --git a/clang/lib/Basic/Targets/RISCV.h b/clang/lib/Basic/Targets/RISCV.h index 3b418585ab4a3..3544ea64cb5e7 100644 --- a/clang/lib/Basic/Targets/RISCV.h +++ b/clang/lib/Basic/Targets/RISCV.h @@ -128,8 +128,10 @@ class RISCVTargetInfo : public TargetInfo { } bool supportsCpuSupports() const override { return getTriple().isOSLinux(); } + bool supportsCpuIs() const override { return getTriple().isOSLinux(); } bool supportsCpuInit() const override { return getTriple().isOSLinux(); } bool validateCpuSupports(StringRef Feature) const override; + bool validateCpuIs(StringRef CPUName) const override; bool isValidFeatureName(StringRef Name) const override; bool validateGlobalRegisterVariable(StringRef RegName, unsigned RegSize, diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 0916e14f182dd..f32d5a2f43559 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -66,6 +66,7 @@ #include "llvm/Support/ScopedPrinter.h" #include "llvm/TargetParser/AArch64TargetParser.h" #include "llvm/TargetParser/RISCVISAInfo.h" +#include "llvm/TargetParser/RISCVTargetParser.h" #include "llvm/TargetParser/X86TargetParser.h" #include #include @@ -208,6 +209,41 @@ static Value *handleHlslSplitdouble(const CallExpr *E, CodeGenFunction *CGF) { return LastInst; } +static Value *handleAsDoubleBuiltin(CodeGenFunction &CGF, const CallExpr *E) { + assert((E->getArg(0)->getType()->hasUnsignedIntegerRepresentation() && + E->getArg(1)->getType()->hasUnsignedIntegerRepresentation()) && + "asdouble operands types mismatch"); + Value *OpLowBits = CGF.EmitScalarExpr(E->getArg(0)); + Value *OpHighBits = CGF.EmitScalarExpr(E->getArg(1)); + + llvm::Type *ResultType = CGF.DoubleTy; + int N = 1; + if (auto *VTy = E->getArg(0)->getType()->getAs()) { + N = VTy->getNumElements(); + ResultType = llvm::FixedVectorType::get(CGF.DoubleTy, N); + } + + if (CGF.CGM.getTarget().getTriple().isDXIL()) + return CGF.Builder.CreateIntrinsic( + /*ReturnType=*/ResultType, Intrinsic::dx_asdouble, + ArrayRef{OpLowBits, OpHighBits}, nullptr, "hlsl.asdouble"); + + if (!E->getArg(0)->getType()->isVectorType()) { + OpLowBits = CGF.Builder.CreateVectorSplat(1, OpLowBits); + OpHighBits = CGF.Builder.CreateVectorSplat(1, OpHighBits); + } + + llvm::SmallVector Mask; + for (int i = 0; i < N; i++) { + Mask.push_back(i); + Mask.push_back(i + N); + } + + Value *BitVec = CGF.Builder.CreateShuffleVector(OpLowBits, OpHighBits, Mask); + + return CGF.Builder.CreateBitCast(BitVec, ResultType); +} + /// getBuiltinLibFunction - Given a builtin id for a function like /// "__builtin_fabsf", return a Function* for "fabsf". llvm::Constant *CodeGenModule::getBuiltinLibFunction(const FunctionDecl *FD, @@ -18992,7 +19028,7 @@ static Intrinsic::ID getDotProductIntrinsic(CGHLSLRuntime &RT, QualType QT) { return RT.getUDotIntrinsic(); } -Intrinsic::ID getFirstBitHighIntrinsic(CGHLSLRuntime &RT, QualType QT) { +static Intrinsic::ID getFirstBitHighIntrinsic(CGHLSLRuntime &RT, QualType QT) { if (QT->hasSignedIntegerRepresentation()) { return RT.getFirstBitSHighIntrinsic(); } @@ -19022,6 +19058,8 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID, CGM.getHLSLRuntime().getAnyIntrinsic(), ArrayRef{Op0}, nullptr, "hlsl.any"); } + case Builtin::BI__builtin_hlsl_asdouble: + return handleAsDoubleBuiltin(*this, E); case Builtin::BI__builtin_hlsl_elementwise_clamp: { Value *OpX = EmitScalarExpr(E->getArg(0)); Value *OpMin = EmitScalarExpr(E->getArg(1)); @@ -19052,8 +19090,8 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID, "cross operands must have a float representation"); // make sure each vector has exactly 3 elements assert( - E->getArg(0)->getType()->getAs()->getNumElements() == 3 && - E->getArg(1)->getType()->getAs()->getNumElements() == 3 && + E->getArg(0)->getType()->castAs()->getNumElements() == 3 && + E->getArg(1)->getType()->castAs()->getNumElements() == 3 && "input vectors must have 3 elements each"); return Builder.CreateIntrinsic( /*ReturnType=*/Op0->getType(), CGM.getHLSLRuntime().getCrossIntrinsic(), @@ -19282,6 +19320,15 @@ case Builtin::BI__builtin_hlsl_elementwise_isinf: { /*ReturnType=*/Op0->getType(), CGM.getHLSLRuntime().getStepIntrinsic(), ArrayRef{Op0, Op1}, nullptr, "hlsl.step"); } + case Builtin::BI__builtin_hlsl_wave_active_any_true: { + Value *Op = EmitScalarExpr(E->getArg(0)); + assert(Op->getType()->isIntegerTy(1) && + "Intrinsic WaveActiveAnyTrue operand must be a bool"); + + Intrinsic::ID ID = CGM.getHLSLRuntime().getWaveActiveAnyTrueIntrinsic(); + return EmitRuntimeCall( + Intrinsic::getOrInsertDeclaration(&CGM.getModule(), ID), {Op}); + } case Builtin::BI__builtin_hlsl_wave_active_count_bits: { Value *OpExpr = EmitScalarExpr(E->getArg(0)); Intrinsic::ID ID = CGM.getHLSLRuntime().getWaveActiveCountBitsIntrinsic(); @@ -19362,6 +19409,15 @@ case Builtin::BI__builtin_hlsl_elementwise_isinf: { CGM.getHLSLRuntime().getRadiansIntrinsic(), ArrayRef{Op0}, nullptr, "hlsl.radians"); } + case Builtin::BI__builtin_hlsl_buffer_update_counter: { + Value *ResHandle = EmitScalarExpr(E->getArg(0)); + Value *Offset = EmitScalarExpr(E->getArg(1)); + Value *OffsetI8 = Builder.CreateIntCast(Offset, Int8Ty, true); + return Builder.CreateIntrinsic( + /*ReturnType=*/Offset->getType(), + CGM.getHLSLRuntime().getBufferUpdateCounterIntrinsic(), + ArrayRef{ResHandle, OffsetI8}, nullptr); + } case Builtin::BI__builtin_hlsl_elementwise_splitdouble: { assert((E->getArg(0)->getType()->hasFloatingRepresentation() && @@ -19650,8 +19706,11 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v4bf16: case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8i16: case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8f16: - case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8bf16: { - + case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8bf16: + case AMDGPU::BI__builtin_amdgcn_ds_read_tr4_b64_v2i32: + case AMDGPU::BI__builtin_amdgcn_ds_read_tr8_b64_v2i32: + case AMDGPU::BI__builtin_amdgcn_ds_read_tr6_b96_v3i32: + case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4i16: { Intrinsic::ID IID; switch (BuiltinID) { case AMDGPU::BI__builtin_amdgcn_global_load_tr_b64_i32: @@ -19666,6 +19725,18 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, case AMDGPU::BI__builtin_amdgcn_global_load_tr_b128_v8bf16: IID = Intrinsic::amdgcn_global_load_tr_b128; break; + case AMDGPU::BI__builtin_amdgcn_ds_read_tr4_b64_v2i32: + IID = Intrinsic::amdgcn_ds_read_tr4_b64; + break; + case AMDGPU::BI__builtin_amdgcn_ds_read_tr8_b64_v2i32: + IID = Intrinsic::amdgcn_ds_read_tr8_b64; + break; + case AMDGPU::BI__builtin_amdgcn_ds_read_tr6_b96_v3i32: + IID = Intrinsic::amdgcn_ds_read_tr6_b96; + break; + case AMDGPU::BI__builtin_amdgcn_ds_read_tr16_b64_v4i16: + IID = Intrinsic::amdgcn_ds_read_tr16_b64; + break; } llvm::Type *LoadTy = ConvertType(E->getType()); llvm::Value *Addr = EmitScalarExpr(E->getArg(0)); @@ -19729,7 +19800,20 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, (uint64_t)0); return Builder.CreateInsertElement(I0, A, 1); } - + case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4: + case AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4: { + llvm::FixedVectorType *VT = FixedVectorType::get(Builder.getInt32Ty(), 8); + Function *F = CGM.getIntrinsic( + BuiltinID == AMDGPU::BI__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4 + ? Intrinsic::amdgcn_mfma_scale_f32_32x32x64_f8f6f4 + : Intrinsic::amdgcn_mfma_scale_f32_16x16x128_f8f6f4, + {VT, VT}); + + SmallVector Args; + for (unsigned I = 0, N = E->getNumArgs(); I != N; ++I) + Args.push_back(EmitScalarExpr(E->getArg(I))); + return Builder.CreateCall(F, Args); + } case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w32: case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_tied_w32: case AMDGPU::BI__builtin_amdgcn_wmma_bf16_16x16x16_bf16_w64: @@ -20140,6 +20224,32 @@ Value *CodeGenFunction::EmitAMDGPUBuiltinExpr(unsigned BuiltinID, CGM.getIntrinsic(Intrinsic::amdgcn_s_sendmsg_rtn, {ResultType}); return Builder.CreateCall(F, {Arg}); } + case AMDGPU::BI__builtin_amdgcn_permlane16_swap: + case AMDGPU::BI__builtin_amdgcn_permlane32_swap: { + // Because builtin types are limited, and the intrinsic uses a struct/pair + // output, marshal the pair-of-i32 to <2 x i32>. + Value *VDstOld = EmitScalarExpr(E->getArg(0)); + Value *VSrcOld = EmitScalarExpr(E->getArg(1)); + Value *FI = EmitScalarExpr(E->getArg(2)); + Value *BoundCtrl = EmitScalarExpr(E->getArg(3)); + Function *F = + CGM.getIntrinsic(BuiltinID == AMDGPU::BI__builtin_amdgcn_permlane16_swap + ? Intrinsic::amdgcn_permlane16_swap + : Intrinsic::amdgcn_permlane32_swap); + llvm::CallInst *Call = + Builder.CreateCall(F, {VDstOld, VSrcOld, FI, BoundCtrl}); + + llvm::Value *Elt0 = Builder.CreateExtractValue(Call, 0); + llvm::Value *Elt1 = Builder.CreateExtractValue(Call, 1); + + llvm::Type *ResultType = ConvertType(E->getType()); + + llvm::Value *Insert0 = Builder.CreateInsertElement( + llvm::PoisonValue::get(ResultType), Elt0, UINT64_C(0)); + llvm::Value *AsVector = + Builder.CreateInsertElement(Insert0, Elt1, UINT64_C(1)); + return AsVector; + } case AMDGPU::BI__builtin_amdgcn_make_buffer_rsrc: return emitBuiltinWithOneOverloadedType<4>( *this, E, Intrinsic::amdgcn_make_buffer_rsrc); @@ -22671,6 +22781,47 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID, return nullptr; } +Value *CodeGenFunction::EmitRISCVCpuIs(const CallExpr *E) { + const Expr *CPUExpr = E->getArg(0)->IgnoreParenCasts(); + StringRef CPUStr = cast(CPUExpr)->getString(); + return EmitRISCVCpuIs(CPUStr); +} + +Value *CodeGenFunction::EmitRISCVCpuIs(StringRef CPUStr) { + llvm::Type *Int32Ty = Builder.getInt32Ty(); + llvm::Type *Int64Ty = Builder.getInt64Ty(); + llvm::StructType *StructTy = llvm::StructType::get(Int32Ty, Int64Ty, Int64Ty); + llvm::Constant *RISCVCPUModel = + CGM.CreateRuntimeVariable(StructTy, "__riscv_cpu_model"); + cast(RISCVCPUModel)->setDSOLocal(true); + + auto loadRISCVCPUID = [&](unsigned Index) { + Value *Ptr = Builder.CreateStructGEP(StructTy, RISCVCPUModel, Index); + Value *CPUID = Builder.CreateAlignedLoad(StructTy->getTypeAtIndex(Index), + Ptr, llvm::MaybeAlign()); + return CPUID; + }; + + const llvm::RISCV::CPUModel Model = llvm::RISCV::getCPUModel(CPUStr); + + // Compare mvendorid. + Value *VendorID = loadRISCVCPUID(0); + Value *Result = + Builder.CreateICmpEQ(VendorID, Builder.getInt32(Model.MVendorID)); + + // Compare marchid. + Value *ArchID = loadRISCVCPUID(1); + Result = Builder.CreateAnd( + Result, Builder.CreateICmpEQ(ArchID, Builder.getInt64(Model.MArchID))); + + // Compare mimpid. + Value *ImpID = loadRISCVCPUID(2); + Result = Builder.CreateAnd( + Result, Builder.CreateICmpEQ(ImpID, Builder.getInt64(Model.MImpID))); + + return Result; +} + Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID, const CallExpr *E, ReturnValueSlot ReturnValue) { @@ -22679,6 +22830,8 @@ Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID, return EmitRISCVCpuSupports(E); if (BuiltinID == Builtin::BI__builtin_cpu_init) return EmitRISCVCpuInit(); + if (BuiltinID == Builtin::BI__builtin_cpu_is) + return EmitRISCVCpuIs(E); SmallVector Ops; llvm::Type *ResultType = ConvertType(E->getType()); diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index 232cac22d1bfc..d3f470d401b3d 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -4370,7 +4370,7 @@ LValue CodeGenFunction::EmitArraySubscriptExpr(const ArraySubscriptExpr *E, ME && ME->isFlexibleArrayMemberLike(getContext(), StrictFlexArraysLevel) && ME->getMemberDecl()->getType()->isCountAttributedType()) { - const FieldDecl *FAMDecl = dyn_cast(ME->getMemberDecl()); + const FieldDecl *FAMDecl = cast(ME->getMemberDecl()); if (const FieldDecl *CountFD = FAMDecl->findCountedByField()) { if (std::optional Diff = getOffsetDifferenceInBits(*this, CountFD, FAMDecl)) { diff --git a/clang/lib/CodeGen/CGHLSLRuntime.h b/clang/lib/CodeGen/CGHLSLRuntime.h index 381a5959ec098..854214d6bc067 100644 --- a/clang/lib/CodeGen/CGHLSLRuntime.h +++ b/clang/lib/CodeGen/CGHLSLRuntime.h @@ -91,6 +91,7 @@ class CGHLSLRuntime { GENERATE_HLSL_INTRINSIC_FUNCTION(UDot, udot) GENERATE_HLSL_INTRINSIC_FUNCTION(Dot4AddI8Packed, dot4add_i8packed) GENERATE_HLSL_INTRINSIC_FUNCTION(Dot4AddU8Packed, dot4add_u8packed) + GENERATE_HLSL_INTRINSIC_FUNCTION(WaveActiveAnyTrue, wave_any) GENERATE_HLSL_INTRINSIC_FUNCTION(WaveActiveCountBits, wave_active_countbits) GENERATE_HLSL_INTRINSIC_FUNCTION(WaveIsFirstLane, wave_is_first_lane) GENERATE_HLSL_INTRINSIC_FUNCTION(WaveReadLaneAt, wave_readlane) @@ -101,6 +102,7 @@ class CGHLSLRuntime { GENERATE_HLSL_INTRINSIC_FUNCTION(UClamp, uclamp) GENERATE_HLSL_INTRINSIC_FUNCTION(CreateHandleFromBinding, handle_fromBinding) + GENERATE_HLSL_INTRINSIC_FUNCTION(BufferUpdateCounter, bufferUpdateCounter) //===----------------------------------------------------------------------===// // End of reserved area for HLSL intrinsic getters. diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index fcc1013d7361e..5c4d76c2267a7 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -4730,6 +4730,8 @@ class CodeGenFunction : public CodeGenTypeCache { llvm::Value *EmitRISCVCpuSupports(const CallExpr *E); llvm::Value *EmitRISCVCpuSupports(ArrayRef FeaturesStrs); llvm::Value *EmitRISCVCpuInit(); + llvm::Value *EmitRISCVCpuIs(const CallExpr *E); + llvm::Value *EmitRISCVCpuIs(StringRef CPUStr); void AddAMDGPUFenceAddressSpaceMMRA(llvm::Instruction *Inst, const CallExpr *E); diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index b854eeb62a80c..716c43431667c 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -2047,6 +2047,15 @@ StringRef CodeGenModule::getMangledName(GlobalDecl GD) { GD.getWithKernelReferenceKind(KernelReferenceKind::Kernel), ND)); + // This invariant should hold true in the future. + // Prior work: + // https://discourse.llvm.org/t/rfc-clang-diagnostic-for-demangling-failures/82835/8 + // https://github.com/llvm/llvm-project/issues/111345 + // assert((MangledName.startswith("_Z") || MangledName.startswith("?")) && + // !GD->hasAttr() && + // llvm::demangle(MangledName) != MangledName && + // "LLVM demangler must demangle clang-generated names"); + auto Result = Manglings.insert(std::make_pair(MangledName, GD)); return MangledDeclNames[CanonicalGD] = Result.first->first(); } @@ -4553,6 +4562,9 @@ llvm::Constant *CodeGenModule::GetOrCreateMultiVersionResolver(GlobalDecl GD) { ResolverName += ".resolver"; } + bool ShouldReturnIFunc = + getTarget().supportsIFunc() && !FD->isCPUSpecificMultiVersion(); + // If the resolver has already been created, just return it. This lookup may // yield a function declaration instead of a resolver on AArch64. That is // because we didn't know whether a resolver will be generated when we first @@ -4560,8 +4572,7 @@ llvm::Constant *CodeGenModule::GetOrCreateMultiVersionResolver(GlobalDecl GD) { // targets which support ifuncs should not return here unless we actually // found an ifunc. llvm::GlobalValue *ResolverGV = GetGlobalValue(ResolverName); - if (ResolverGV && - (isa(ResolverGV) || !getTarget().supportsIFunc())) + if (ResolverGV && (isa(ResolverGV) || !ShouldReturnIFunc)) return ResolverGV; const CGFunctionInfo &FI = getTypes().arrangeGlobalDeclaration(GD); @@ -4574,7 +4585,7 @@ llvm::Constant *CodeGenModule::GetOrCreateMultiVersionResolver(GlobalDecl GD) { // For cpu_specific, don't create an ifunc yet because we don't know if the // cpu_dispatch will be emitted in this translation unit. - if (getTarget().supportsIFunc() && !FD->isCPUSpecificMultiVersion()) { + if (ShouldReturnIFunc) { unsigned AS = getTypes().getTargetAddressSpace(FD->getType()); llvm::Type *ResolverType = llvm::FunctionType::get(llvm::PointerType::get(DeclTy, AS), false); @@ -4593,11 +4604,9 @@ llvm::Constant *CodeGenModule::GetOrCreateMultiVersionResolver(GlobalDecl GD) { llvm::Constant *Resolver = GetOrCreateLLVMFunction( ResolverName, DeclTy, GlobalDecl{}, /*ForVTable=*/false); - assert(isa(Resolver) && + assert(isa(Resolver) && !ResolverGV && "Resolver should be created for the first time"); SetCommonAttributes(FD, cast(Resolver)); - if (ResolverGV) - replaceDeclarationWith(ResolverGV, Resolver); return Resolver; } diff --git a/clang/lib/CodeGen/CodeGenTBAA.cpp b/clang/lib/CodeGen/CodeGenTBAA.cpp index c31579e832317..6eed8e1d2b671 100644 --- a/clang/lib/CodeGen/CodeGenTBAA.cpp +++ b/clang/lib/CodeGen/CodeGenTBAA.cpp @@ -205,14 +205,27 @@ llvm::MDNode *CodeGenTBAA::getTypeInfoHelper(const Type *Ty) { llvm::MDNode *AnyPtr = createScalarTypeNode("any pointer", getChar(), Size); if (!CodeGenOpts.PointerTBAA) return AnyPtr; - // Compute the depth of the pointer and generate a tag of the form "p - // ". + // C++ [basic.lval]p11 permits objects to accessed through an l-value of + // similar type. Two types are similar under C++ [conv.qual]p2 if the + // decomposition of the types into pointers, member pointers, and arrays has + // the same structure when ignoring cv-qualifiers at each level of the + // decomposition. Meanwhile, C makes T(*)[] and T(*)[N] compatible, which + // would really complicate any attempt to distinguish pointers to arrays by + // their bounds. It's simpler, and much easier to explain to users, to + // simply treat all pointers to arrays as pointers to their element type for + // aliasing purposes. So when creating a TBAA tag for a pointer type, we + // recursively ignore both qualifiers and array types when decomposing the + // pointee type. The only meaningful remaining structure is the number of + // pointer types we encountered along the way, so we just produce the tag + // "p ". If we do find a member pointer type, for now + // we just conservatively bail out with AnyPtr (below) rather than trying to + // create a tag that honors the similar-type rules while still + // distinguishing different kinds of member pointer. unsigned PtrDepth = 0; do { PtrDepth++; - Ty = Ty->getPointeeType().getTypePtr(); + Ty = Ty->getPointeeType()->getBaseElementTypeUnsafe(); } while (Ty->isPointerType()); - Ty = Context.getBaseElementType(QualType(Ty, 0)).getTypePtr(); assert(!isa(Ty)); // When the underlying type is a builtin type, we compute the pointee type // string recursively, which is implicitly more forgiving than the standards @@ -230,6 +243,27 @@ llvm::MDNode *CodeGenTBAA::getTypeInfoHelper(const Type *Ty) { ->getString(); TyName = Name; } else { + // Be conservative if the type isn't a RecordType. We are specifically + // required to do this for member pointers until we implement the + // similar-types rule. + const auto *RT = Ty->getAs(); + if (!RT) + return AnyPtr; + + // For unnamed structs or unions C's compatible types rule applies. Two + // compatible types in different compilation units can have different + // mangled names, meaning the metadata emitted below would incorrectly + // mark them as no-alias. Use AnyPtr for such types in both C and C++, as + // C and C++ types may be visible when doing LTO. + // + // Note that using AnyPtr is overly conservative. We could summarize the + // members of the type, as per the C compatibility rule in the future. + // This also covers anonymous structs and unions, which have a different + // compatibility rule, but it doesn't matter because you can never have a + // pointer to an anonymous struct or union. + if (!RT->getDecl()->getDeclName()) + return AnyPtr; + // For non-builtin types use the mangled name of the canonical type. llvm::raw_svector_ostream TyOut(TyName); MangleCtx->mangleCanonicalTypeName(QualType(Ty, 0), TyOut); diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index a0f4329e36136..ad14b5c9b6dc8 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -4417,7 +4417,8 @@ void Driver::BuildActions(Compilation &C, DerivedArgList &Args, // Use the -mcpu=? flag as the dummy input to cc1. Actions.clear(); - Action *InputAc = C.MakeAction(*A, types::TY_C); + Action *InputAc = C.MakeAction( + *A, IsFlangMode() ? types::TY_Fortran : types::TY_C); Actions.push_back( C.MakeAction(InputAc, types::TY_Nothing)); for (auto &I : Inputs) @@ -6621,8 +6622,8 @@ bool Driver::ShouldUseFlangCompiler(const JobAction &JA) const { return false; // And say "no" if this is not a kind of action flang understands. - if (!isa(JA) && !isa(JA) && - !isa(JA)) + if (!isa(JA) && !isa(JA) && + !isa(JA) && !isa(JA)) return false; return true; diff --git a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp index 987db4638fca8..67b71a3ec623e 100644 --- a/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp +++ b/clang/lib/Driver/ToolChains/Arch/LoongArch.cpp @@ -274,6 +274,15 @@ void loongarch::getLoongArchTargetFeatures(const Driver &D, else Features.push_back("-lam-bh"); } + + // Select ld-seq-sa feature determined by -m[no-]ld-seq-sa. + if (const Arg *A = Args.getLastArg(options::OPT_mld_seq_sa, + options::OPT_mno_ld_seq_sa)) { + if (A->getOption().matches(options::OPT_mld_seq_sa)) + Features.push_back("+ld-seq-sa"); + else + Features.push_back("-ld-seq-sa"); + } } std::string loongarch::postProcessTargetCPUString(const std::string &CPU, diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp index ddd5ea248ca0c..102794829795d 100644 --- a/clang/lib/Driver/ToolChains/Cuda.cpp +++ b/clang/lib/Driver/ToolChains/Cuda.cpp @@ -856,8 +856,9 @@ void CudaToolChain::addClangTargetOptions( DeviceOffloadingKind == Action::OFK_Cuda) && "Only OpenMP or CUDA offloading kinds are supported for NVIDIA GPUs."); - CC1Args.append( - {"-fcuda-is-device", "-mllvm", "-enable-memcpyopt-without-libcalls"}); + CC1Args.append({"-fcuda-is-device", "-mllvm", + "-enable-memcpyopt-without-libcalls", + "-fno-threadsafe-statics"}); // Unsized function arguments used for variadics were introduced in CUDA-9.0 // We still do not support generating code that actually uses variadic diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index 11070c23c75f4..a57e1524a0b85 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -747,6 +747,9 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA, } } else if (isa(JA)) { CmdArgs.push_back("-emit-obj"); + } else if (isa(JA)) { + // The precompile job action is only needed for options such as -mcpu=help. + // Those will already have been handled by the fc1 driver. } else { assert(false && "Unexpected action class for Flang tool."); } @@ -911,8 +914,6 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(Output.getFilename()); } - assert(Input.isFilename() && "Invalid input."); - if (Args.getLastArg(options::OPT_save_temps_EQ)) Args.AddLastArg(CmdArgs, options::OPT_save_temps_EQ); @@ -932,7 +933,18 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA, } } - CmdArgs.push_back(Input.getFilename()); + // The input could be Ty_Nothing when "querying" options such as -mcpu=help + // are used. + ArrayRef FrontendInputs = Input; + if (Input.isNothing()) + FrontendInputs = {}; + + for (const InputInfo &Input : FrontendInputs) { + if (Input.isFilename()) + CmdArgs.push_back(Input.getFilename()); + else + Input.getInputArg().renderAsInput(Args, CmdArgs); + } const char *Exec = Args.MakeArgString(D.GetProgramPath("flang", TC)); C.addCommand(std::make_unique(JA, *this, diff --git a/clang/lib/Driver/ToolChains/HIPAMD.cpp b/clang/lib/Driver/ToolChains/HIPAMD.cpp index 4eb8c4f58923f..42c48f6c9b774 100644 --- a/clang/lib/Driver/ToolChains/HIPAMD.cpp +++ b/clang/lib/Driver/ToolChains/HIPAMD.cpp @@ -238,7 +238,7 @@ void HIPAMDToolChain::addClangTargetOptions( assert(DeviceOffloadingKind == Action::OFK_HIP && "Only HIP offloading kinds are supported for GPUs."); - CC1Args.push_back("-fcuda-is-device"); + CC1Args.append({"-fcuda-is-device", "-fno-threadsafe-statics"}); if (!DriverArgs.hasFlag(options::OPT_fgpu_rdc, options::OPT_fno_gpu_rdc, false)) diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp index 29781399cbab4..383dc8387e75e 100644 --- a/clang/lib/Driver/ToolChains/Hexagon.cpp +++ b/clang/lib/Driver/ToolChains/Hexagon.cpp @@ -378,9 +378,9 @@ constructHexagonLinkArgs(Compilation &C, const JobAction &JA, if (NeedsXRayDeps) linkXRayRuntimeDeps(HTC, Args, CmdArgs); - CmdArgs.push_back("-lclang_rt.builtins-hexagon"); if (!Args.hasArg(options::OPT_nolibc)) CmdArgs.push_back("-lc"); + CmdArgs.push_back("-lclang_rt.builtins-hexagon"); } if (D.CCCIsCXX()) { if (HTC.ShouldLinkCXXStdlib(Args)) diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index fd53969e4b3b3..aed86c1fb9955 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -693,17 +693,14 @@ void ContinuationIndenter::addTokenOnCurrentLine(LineState &State, bool DryRun, bool DisallowLineBreaksOnThisLine = Style.LambdaBodyIndentation == FormatStyle::LBI_Signature && - Style.isCpp() && [&Current] { - // Deal with lambda arguments in C++. The aim here is to ensure that we - // don't over-indent lambda function bodies when lambdas are passed as - // arguments to function calls. We do this by ensuring that either all - // arguments (including any lambdas) go on the same line as the function - // call, or we break before the first argument. - const auto *Prev = Current.Previous; - if (!Prev) - return false; + // Deal with lambda arguments in C++. The aim here is to ensure that we + // don't over-indent lambda function bodies when lambdas are passed as + // arguments to function calls. We do this by ensuring that either all + // arguments (including any lambdas) go on the same line as the function + // call, or we break before the first argument. + Style.isCpp() && [&] { // For example, `/*Newline=*/false`. - if (Prev->is(TT_BlockComment) && Current.SpacesRequiredBefore == 0) + if (Previous.is(TT_BlockComment) && Current.SpacesRequiredBefore == 0) return false; const auto *PrevNonComment = Current.getPreviousNonComment(); if (!PrevNonComment || PrevNonComment->isNot(tok::l_paren)) diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 0cf4cdbeab31f..ee52972ce66f4 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -2179,7 +2179,8 @@ class ParensRemover : public TokenAnalyzer { tooling::Replacements &Result) { const auto &SourceMgr = Env.getSourceManager(); for (auto *Line : Lines) { - removeParens(Line->Children, Result); + if (!Line->Children.empty()) + removeParens(Line->Children, Result); if (!Line->Affected) continue; for (const auto *Token = Line->First; Token && !Token->Finalized; @@ -2224,7 +2225,8 @@ class BracesInserter : public TokenAnalyzer { const auto &SourceMgr = Env.getSourceManager(); int OpeningBraceSurplus = 0; for (AnnotatedLine *Line : Lines) { - insertBraces(Line->Children, Result); + if (!Line->Children.empty()) + insertBraces(Line->Children, Result); if (!Line->Affected && OpeningBraceSurplus == 0) continue; for (FormatToken *Token = Line->First; Token && !Token->Finalized; @@ -2275,20 +2277,21 @@ class BracesRemover : public TokenAnalyzer { void removeBraces(SmallVectorImpl &Lines, tooling::Replacements &Result) { const auto &SourceMgr = Env.getSourceManager(); - const auto End = Lines.end(); - for (auto I = Lines.begin(); I != End; ++I) { - const auto Line = *I; - removeBraces(Line->Children, Result); + const auto *End = Lines.end(); + for (const auto *I = Lines.begin(); I != End; ++I) { + const auto &Line = *I; + if (!Line->Children.empty()) + removeBraces(Line->Children, Result); if (!Line->Affected) continue; - const auto NextLine = I + 1 == End ? nullptr : I[1]; - for (auto Token = Line->First; Token && !Token->Finalized; + const auto *NextLine = I + 1 == End ? nullptr : I[1]; + for (const auto *Token = Line->First; Token && !Token->Finalized; Token = Token->Next) { if (!Token->Optional) continue; if (!Token->isOneOf(tok::l_brace, tok::r_brace)) continue; - auto Next = Token->Next; + auto *Next = Token->Next; assert(Next || Token == Line->Last); if (!Next && NextLine) Next = NextLine->First; @@ -2299,7 +2302,7 @@ class BracesRemover : public TokenAnalyzer { } else { Start = Token->WhitespaceRange.getBegin(); } - const auto Range = + const auto &Range = CharSourceRange::getCharRange(Start, Token->Tok.getEndLoc()); cantFail(Result.add(tooling::Replacement(SourceMgr, Range, ""))); } @@ -2334,21 +2337,22 @@ class SemiRemover : public TokenAnalyzer { return LBrace && LBrace->is(TT_FunctionLBrace); }; const auto &SourceMgr = Env.getSourceManager(); - const auto End = Lines.end(); - for (auto I = Lines.begin(); I != End; ++I) { - const auto Line = *I; - removeSemi(Annotator, Line->Children, Result); + const auto *End = Lines.end(); + for (const auto *I = Lines.begin(); I != End; ++I) { + const auto &Line = *I; + if (!Line->Children.empty()) + removeSemi(Annotator, Line->Children, Result); if (!Line->Affected) continue; Annotator.calculateFormattingInformation(*Line); - const auto NextLine = I + 1 == End ? nullptr : I[1]; - for (auto Token = Line->First; Token && !Token->Finalized; + const auto *NextLine = I + 1 == End ? nullptr : I[1]; + for (const auto *Token = Line->First; Token && !Token->Finalized; Token = Token->Next) { if (Token->isNot(tok::semi) || (!Token->Optional && !PrecededByFunctionRBrace(*Token))) { continue; } - auto Next = Token->Next; + auto *Next = Token->Next; assert(Next || Token == Line->Last); if (!Next && NextLine) Next = NextLine->First; @@ -2359,7 +2363,7 @@ class SemiRemover : public TokenAnalyzer { } else { Start = Token->WhitespaceRange.getBegin(); } - const auto Range = + const auto &Range = CharSourceRange::getCharRange(Start, Token->Tok.getEndLoc()); cantFail(Result.add(tooling::Replacement(SourceMgr, Range, ""))); } diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index ecc6782c7cb4f..fbfc305ca06a0 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -332,23 +332,20 @@ static void SetupSerializedDiagnostics(DiagnosticOptions *DiagOpts, } } -void CompilerInstance::createDiagnostics(DiagnosticConsumer *Client, +void CompilerInstance::createDiagnostics(llvm::vfs::FileSystem &VFS, + DiagnosticConsumer *Client, bool ShouldOwnClient) { - Diagnostics = createDiagnostics( - &getDiagnosticOpts(), Client, ShouldOwnClient, &getCodeGenOpts(), - FileMgr ? FileMgr->getVirtualFileSystemPtr() : nullptr); + Diagnostics = createDiagnostics(VFS, &getDiagnosticOpts(), Client, + ShouldOwnClient, &getCodeGenOpts()); } IntrusiveRefCntPtr CompilerInstance::createDiagnostics( - DiagnosticOptions *Opts, DiagnosticConsumer *Client, bool ShouldOwnClient, - const CodeGenOptions *CodeGenOpts, - llvm::IntrusiveRefCntPtr VFS) { + llvm::vfs::FileSystem &VFS, DiagnosticOptions *Opts, + DiagnosticConsumer *Client, bool ShouldOwnClient, + const CodeGenOptions *CodeGenOpts) { IntrusiveRefCntPtr DiagID(new DiagnosticIDs()); - IntrusiveRefCntPtr - Diags(new DiagnosticsEngine(DiagID, Opts)); - - if (!VFS) - VFS = llvm::vfs::getRealFileSystem(); + IntrusiveRefCntPtr Diags( + new DiagnosticsEngine(DiagID, Opts)); // Create the diagnostic client for reporting errors or for // implementing -verify. @@ -372,7 +369,7 @@ IntrusiveRefCntPtr CompilerInstance::createDiagnostics( Opts->DiagnosticSerializationFile); // Configure our handling of diagnostics. - ProcessWarningOptions(*Diags, *Opts, *VFS); + ProcessWarningOptions(*Diags, *Opts, VFS); return Diags; } @@ -1240,9 +1237,10 @@ compileModuleImpl(CompilerInstance &ImportingInstance, SourceLocation ImportLoc, auto &Inv = *Invocation; Instance.setInvocation(std::move(Invocation)); - Instance.createDiagnostics(new ForwardingDiagnosticConsumer( - ImportingInstance.getDiagnosticClient()), - /*ShouldOwnClient=*/true); + Instance.createDiagnostics( + ImportingInstance.getVirtualFileSystem(), + new ForwardingDiagnosticConsumer(ImportingInstance.getDiagnosticClient()), + /*ShouldOwnClient=*/true); if (llvm::is_contained(DiagOpts.SystemHeaderWarningsModules, ModuleName)) Instance.getDiagnostics().setSuppressSystemWarnings(false); diff --git a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp index 638757a245024..d0b855fff2534 100644 --- a/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp +++ b/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp @@ -22,6 +22,7 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringRef.h" #include "llvm/Option/ArgList.h" +#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" using namespace clang; using namespace llvm::opt; @@ -32,7 +33,9 @@ clang::createInvocation(ArrayRef ArgList, assert(!ArgList.empty()); auto Diags = Opts.Diags ? std::move(Opts.Diags) - : CompilerInstance::createDiagnostics(new DiagnosticOptions); + : CompilerInstance::createDiagnostics( + Opts.VFS ? *Opts.VFS : *llvm::vfs::getRealFileSystem(), + new DiagnosticOptions); SmallVector Args(ArgList); diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp index 9a0fdb175ff29..9b611bfcc9e63 100644 --- a/clang/lib/Frontend/InitPreprocessor.cpp +++ b/clang/lib/Frontend/InitPreprocessor.cpp @@ -1103,7 +1103,15 @@ static void InitializePredefinedMacros(const TargetInfo &TI, assert(TI.getCharWidth() == 8 && "Only support 8-bit char so far"); Builder.defineMacro("__CHAR_BIT__", Twine(TI.getCharWidth())); - Builder.defineMacro("__BOOL_WIDTH__", Twine(TI.getBoolWidth())); + // The macro is specifying the number of bits in the width, not the number of + // bits the object requires for its in-memory representation, which is what + // getBoolWidth() will return. The bool/_Bool data type is only ever one bit + // wide. See C23 6.2.6.2p2 for the rules in C. Note that + // C++23 [basic.fundamental]p10 allows an implementation-defined value + // representation for bool; when lowering to LLVM, Clang represents bool as an + // i8 in memory but as an i1 when the value is needed, so '1' is also correct + // for C++. + Builder.defineMacro("__BOOL_WIDTH__", "1"); Builder.defineMacro("__SHRT_WIDTH__", Twine(TI.getShortWidth())); Builder.defineMacro("__INT_WIDTH__", Twine(TI.getIntWidth())); Builder.defineMacro("__LONG_WIDTH__", Twine(TI.getLongWidth())); diff --git a/clang/lib/Frontend/Rewrite/FrontendActions.cpp b/clang/lib/Frontend/Rewrite/FrontendActions.cpp index 6e1f949f543a5..5d2e1d7877095 100644 --- a/clang/lib/Frontend/Rewrite/FrontendActions.cpp +++ b/clang/lib/Frontend/Rewrite/FrontendActions.cpp @@ -247,6 +247,7 @@ class RewriteIncludesAction::RewriteImportsListener : public ASTReaderListener { Instance.setInvocation( std::make_shared(CI.getInvocation())); Instance.createDiagnostics( + CI.getVirtualFileSystem(), new ForwardingDiagnosticConsumer(CI.getDiagnosticClient()), /*ShouldOwnClient=*/true); Instance.getFrontendOpts().DisableFree = false; diff --git a/clang/lib/Headers/hlsl/hlsl_intrinsics.h b/clang/lib/Headers/hlsl/hlsl_intrinsics.h index f84f48fc1c122..a3e0b5c65a6f5 100644 --- a/clang/lib/Headers/hlsl/hlsl_intrinsics.h +++ b/clang/lib/Headers/hlsl/hlsl_intrinsics.h @@ -361,6 +361,24 @@ bool any(double3); _HLSL_BUILTIN_ALIAS(__builtin_hlsl_any) bool any(double4); +//===----------------------------------------------------------------------===// +// asdouble builtins +//===----------------------------------------------------------------------===// + +/// \fn double asdouble(uint LowBits, uint HighBits) +/// \brief Reinterprets a cast value (two 32-bit values) into a double. +/// \param LowBits The low 32-bit pattern of the input value. +/// \param HighBits The high 32-bit pattern of the input value. + +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble) +double asdouble(uint, uint); +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble) +double2 asdouble(uint2, uint2); +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble) +double3 asdouble(uint3, uint3); +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_asdouble) +double4 asdouble(uint4, uint4); + //===----------------------------------------------------------------------===// // asfloat builtins //===----------------------------------------------------------------------===// @@ -2223,6 +2241,15 @@ float4 trunc(float4); // Wave* builtins //===----------------------------------------------------------------------===// +/// \brief Returns true if the expression is true in any active lane in the +/// current wave. +/// +/// \param Val The boolean expression to evaluate. +/// \return True if the expression is true in any lane. +_HLSL_AVAILABILITY(shadermodel, 6.0) +_HLSL_BUILTIN_ALIAS(__builtin_hlsl_wave_active_any_true) +__attribute__((convergent)) bool WaveActiveAnyTrue(bool Val); + /// \brief Counts the number of boolean variables which evaluate to true across /// all active lanes in the current wave. /// diff --git a/clang/lib/Headers/larchintrin.h b/clang/lib/Headers/larchintrin.h index f4218295919a0..a1247d12e21f8 100644 --- a/clang/lib/Headers/larchintrin.h +++ b/clang/lib/Headers/larchintrin.h @@ -228,17 +228,31 @@ extern __inline void ((void)__builtin_loongarch_ldpte_d((long int)(_1), (_2))) #endif -#define __frecipe_s(/*float*/ _1) \ - (float)__builtin_loongarch_frecipe_s((float)_1) +#ifdef __loongarch_frecipe +extern __inline float + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) + __frecipe_s(float _1) { + return __builtin_loongarch_frecipe_s(_1); +} -#define __frecipe_d(/*double*/ _1) \ - (double)__builtin_loongarch_frecipe_d((double)_1) +extern __inline double + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) + __frecipe_d(double _1) { + return __builtin_loongarch_frecipe_d(_1); +} -#define __frsqrte_s(/*float*/ _1) \ - (float)__builtin_loongarch_frsqrte_s((float)_1) +extern __inline float + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) + __frsqrte_s(float _1) { + return __builtin_loongarch_frsqrte_s(_1); +} -#define __frsqrte_d(/*double*/ _1) \ - (double)__builtin_loongarch_frsqrte_d((double)_1) +extern __inline double + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) + __frsqrte_d(double _1) { + return __builtin_loongarch_frsqrte_d(_1); +} +#endif #ifdef __cplusplus } diff --git a/clang/lib/Headers/lasxintrin.h b/clang/lib/Headers/lasxintrin.h index c065ea92a2dd5..85020d82829e2 100644 --- a/clang/lib/Headers/lasxintrin.h +++ b/clang/lib/Headers/lasxintrin.h @@ -1726,18 +1726,6 @@ extern __inline return (__m256d)__builtin_lasx_xvfrecip_d((v4f64)_1); } -extern __inline - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256 - __lasx_xvfrecipe_s(__m256 _1) { - return (__m256)__builtin_lasx_xvfrecipe_s((v8f32)_1); -} - -extern __inline - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d - __lasx_xvfrecipe_d(__m256d _1) { - return (__m256d)__builtin_lasx_xvfrecipe_d((v4f64)_1); -} - extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256 __lasx_xvfrint_s(__m256 _1) { @@ -1762,18 +1750,6 @@ extern __inline return (__m256d)__builtin_lasx_xvfrsqrt_d((v4f64)_1); } -extern __inline - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256 - __lasx_xvfrsqrte_s(__m256 _1) { - return (__m256)__builtin_lasx_xvfrsqrte_s((v8f32)_1); -} - -extern __inline - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d - __lasx_xvfrsqrte_d(__m256d _1) { - return (__m256d)__builtin_lasx_xvfrsqrte_d((v4f64)_1); -} - extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256 __lasx_xvflogb_s(__m256 _1) { @@ -3866,6 +3842,32 @@ extern __inline return (__m256i)__builtin_lasx_xvfcmp_sun_s((v8f32)_1, (v8f32)_2); } +#if defined(__loongarch_frecipe) +extern __inline + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256 + __lasx_xvfrecipe_s(__m256 _1) { + return (__m256)__builtin_lasx_xvfrecipe_s((v8f32)_1); +} + +extern __inline + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d + __lasx_xvfrecipe_d(__m256d _1) { + return (__m256d)__builtin_lasx_xvfrecipe_d((v4f64)_1); +} + +extern __inline + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256 + __lasx_xvfrsqrte_s(__m256 _1) { + return (__m256)__builtin_lasx_xvfrsqrte_s((v8f32)_1); +} + +extern __inline + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d + __lasx_xvfrsqrte_d(__m256d _1) { + return (__m256d)__builtin_lasx_xvfrsqrte_d((v4f64)_1); +} +#endif + #define __lasx_xvpickve_d_f(/*__m256d*/ _1, /*ui2*/ _2) \ ((__m256d)__builtin_lasx_xvpickve_d_f((v4f64)(_1), (_2))) diff --git a/clang/lib/Headers/lsxintrin.h b/clang/lib/Headers/lsxintrin.h index f020b0c18f0d2..a9b19223fc4be 100644 --- a/clang/lib/Headers/lsxintrin.h +++ b/clang/lib/Headers/lsxintrin.h @@ -1776,18 +1776,6 @@ extern __inline return (__m128d)__builtin_lsx_vfrecip_d((v2f64)_1); } -extern __inline - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128 - __lsx_vfrecipe_s(__m128 _1) { - return (__m128)__builtin_lsx_vfrecipe_s((v4f32)_1); -} - -extern __inline - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d - __lsx_vfrecipe_d(__m128d _1) { - return (__m128d)__builtin_lsx_vfrecipe_d((v2f64)_1); -} - extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128 __lsx_vfrint_s(__m128 _1) { @@ -1812,18 +1800,6 @@ extern __inline return (__m128d)__builtin_lsx_vfrsqrt_d((v2f64)_1); } -extern __inline - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128 - __lsx_vfrsqrte_s(__m128 _1) { - return (__m128)__builtin_lsx_vfrsqrte_s((v4f32)_1); -} - -extern __inline - __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d - __lsx_vfrsqrte_d(__m128d _1) { - return (__m128d)__builtin_lsx_vfrsqrte_d((v2f64)_1); -} - extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128 __lsx_vflogb_s(__m128 _1) { @@ -3738,6 +3714,32 @@ extern __inline return (__m128i)__builtin_lsx_vfcmp_sun_s((v4f32)_1, (v4f32)_2); } +#if defined(__loongarch_frecipe) +extern __inline + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128 + __lsx_vfrecipe_s(__m128 _1) { + return (__m128)__builtin_lsx_vfrecipe_s((v4f32)_1); +} + +extern __inline + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d + __lsx_vfrecipe_d(__m128d _1) { + return (__m128d)__builtin_lsx_vfrecipe_d((v2f64)_1); +} + +extern __inline + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128 + __lsx_vfrsqrte_s(__m128 _1) { + return (__m128)__builtin_lsx_vfrsqrte_s((v4f32)_1); +} + +extern __inline + __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d + __lsx_vfrsqrte_d(__m128d _1) { + return (__m128d)__builtin_lsx_vfrsqrte_d((v2f64)_1); +} +#endif + #define __lsx_vrepli_b(/*si10*/ _1) ((__m128i)__builtin_lsx_vrepli_b((_1))) #define __lsx_vrepli_d(/*si10*/ _1) ((__m128i)__builtin_lsx_vrepli_d((_1))) diff --git a/clang/lib/Interpreter/Interpreter.cpp b/clang/lib/Interpreter/Interpreter.cpp index 94f0156ec151f..5dc67f6375098 100644 --- a/clang/lib/Interpreter/Interpreter.cpp +++ b/clang/lib/Interpreter/Interpreter.cpp @@ -15,6 +15,7 @@ #include "IncrementalExecutor.h" #include "IncrementalParser.h" #include "InterpreterUtils.h" +#include "llvm/Support/VirtualFileSystem.h" #ifdef __EMSCRIPTEN__ #include "Wasm.h" #endif // __EMSCRIPTEN__ @@ -106,7 +107,7 @@ CreateCI(const llvm::opt::ArgStringList &Argv) { CompilerInvocation::GetResourcesPath(Argv[0], nullptr); // Create the actual diagnostics engine. - Clang->createDiagnostics(); + Clang->createDiagnostics(*llvm::vfs::getRealFileSystem()); if (!Clang->hasDiagnostics()) return llvm::createStringError(llvm::errc::not_supported, "Initialization failed. " diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp index 4570a18bc0d5e..736484ded8383 100644 --- a/clang/lib/Parse/ParseExpr.cpp +++ b/clang/lib/Parse/ParseExpr.cpp @@ -2199,10 +2199,17 @@ Parser::ParsePostfixExpressionSuffix(ExprResult LHS) { }; if (OpKind == tok::l_paren || !LHS.isInvalid()) { if (Tok.isNot(tok::r_paren)) { - if (ParseExpressionList(ArgExprs, [&] { + bool HasTrailingComma = false; + bool HasError = ParseExpressionList( + ArgExprs, + [&] { PreferredType.enterFunctionArgument(Tok.getLocation(), RunSignatureHelp); - })) { + }, + /*FailImmediatelyOnInvalidExpr*/ false, + /*EarlyTypoCorrection*/ false, &HasTrailingComma); + + if (HasError && !HasTrailingComma) { (void)Actions.CorrectDelayedTyposInExpr(LHS); // If we got an error when parsing expression list, we don't call // the CodeCompleteCall handler inside the parser. So call it here @@ -3662,7 +3669,8 @@ void Parser::injectEmbedTokens() { bool Parser::ParseExpressionList(SmallVectorImpl &Exprs, llvm::function_ref ExpressionStarts, bool FailImmediatelyOnInvalidExpr, - bool EarlyTypoCorrection) { + bool EarlyTypoCorrection, + bool *HasTrailingComma) { bool SawError = false; while (true) { if (ExpressionStarts) @@ -3705,6 +3713,12 @@ bool Parser::ParseExpressionList(SmallVectorImpl &Exprs, Token Comma = Tok; ConsumeToken(); checkPotentialAngleBracketDelimiter(Comma); + + if (Tok.is(tok::r_paren)) { + if (HasTrailingComma) + *HasTrailingComma = true; + break; + } } if (SawError) { // Ensure typos get diagnosed when errors were encountered while parsing the diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp index f6d787a0c8831..cd4504630f871 100644 --- a/clang/lib/Parse/ParseStmt.cpp +++ b/clang/lib/Parse/ParseStmt.cpp @@ -799,7 +799,7 @@ StmtResult Parser::ParseLabeledStatement(ParsedAttributes &Attrs, } // If we've not parsed a statement yet, parse one now. - if (!SubStmt.isInvalid() && !SubStmt.isUsable()) + if (SubStmt.isUnset()) SubStmt = ParseStatement(nullptr, StmtCtx); // Broken substmt shouldn't prevent the label from being added to the AST. diff --git a/clang/lib/Sema/AnalysisBasedWarnings.cpp b/clang/lib/Sema/AnalysisBasedWarnings.cpp index 075c0df3f5496..37d966a5a0463 100644 --- a/clang/lib/Sema/AnalysisBasedWarnings.cpp +++ b/clang/lib/Sema/AnalysisBasedWarnings.cpp @@ -2257,7 +2257,7 @@ class UnsafeBufferUsageReporter : public UnsafeBufferUsageHandler { } else if (isa(Operation)) { // note_unsafe_buffer_operation doesn't have this mode yet. assert(!IsRelatedToDecl && "Not implemented yet!"); - auto ME = dyn_cast(Operation); + auto *ME = cast(Operation); D = ME->getMemberDecl(); MsgParam = 5; } else if (const auto *ECE = dyn_cast(Operation)) { diff --git a/clang/lib/Sema/CheckExprLifetime.cpp b/clang/lib/Sema/CheckExprLifetime.cpp index 8886e5e307ddf..6cdd4dc629e50 100644 --- a/clang/lib/Sema/CheckExprLifetime.cpp +++ b/clang/lib/Sema/CheckExprLifetime.cpp @@ -490,7 +490,7 @@ static bool isNormalAssignmentOperator(const FunctionDecl *FD) { if (MD && MD->isCXXInstanceMember()) LHST = Ctx.getLValueReferenceType(MD->getFunctionObjectParameterType()); else - LHST = MD->getParamDecl(0)->getType(); + LHST = FD->getParamDecl(0)->getType(); if (Ctx.hasSameType(RetT, LHST)) return true; } @@ -498,7 +498,7 @@ static bool isNormalAssignmentOperator(const FunctionDecl *FD) { return false; } -static bool implicitObjectParamIsLifetimeBound(const FunctionDecl *FD) { +bool implicitObjectParamIsLifetimeBound(const FunctionDecl *FD) { const TypeSourceInfo *TSI = FD->getTypeSourceInfo(); if (!TSI) return false; diff --git a/clang/lib/Sema/CheckExprLifetime.h b/clang/lib/Sema/CheckExprLifetime.h index 38b7061988dc7..b10c84363527a 100644 --- a/clang/lib/Sema/CheckExprLifetime.h +++ b/clang/lib/Sema/CheckExprLifetime.h @@ -57,6 +57,8 @@ void checkCaptureByLifetime(Sema &SemaRef, const CapturingEntity &Entity, void checkExprLifetimeMustTailArg(Sema &SemaRef, const InitializedEntity &Entity, Expr *Init); +bool implicitObjectParamIsLifetimeBound(const FunctionDecl *FD); + } // namespace clang::sema #endif // LLVM_CLANG_SEMA_CHECK_EXPR_LIFETIME_H diff --git a/clang/lib/Sema/HLSLExternalSemaSource.cpp b/clang/lib/Sema/HLSLExternalSemaSource.cpp index a14e7d50a6043..886a4c098580a 100644 --- a/clang/lib/Sema/HLSLExternalSemaSource.cpp +++ b/clang/lib/Sema/HLSLExternalSemaSource.cpp @@ -12,7 +12,9 @@ #include "clang/Sema/HLSLExternalSemaSource.h" #include "clang/AST/ASTContext.h" #include "clang/AST/Attr.h" +#include "clang/AST/Decl.h" #include "clang/AST/DeclCXX.h" +#include "clang/AST/Expr.h" #include "clang/AST/Type.h" #include "clang/Basic/SourceLocation.h" #include "clang/Sema/Lookup.h" @@ -20,36 +22,43 @@ #include "clang/Sema/SemaHLSL.h" #include "llvm/ADT/SmallVector.h" #include "llvm/Frontend/HLSL/HLSLResource.h" +#include "llvm/Support/ErrorHandling.h" #include using namespace clang; using namespace llvm::hlsl; +static FunctionDecl *lookupBuiltinFunction(Sema &S, StringRef Name); + namespace { struct TemplateParameterListBuilder; struct BuiltinTypeDeclBuilder { + Sema &SemaRef; CXXRecordDecl *Record = nullptr; ClassTemplateDecl *Template = nullptr; ClassTemplateDecl *PrevTemplate = nullptr; NamespaceDecl *HLSLNamespace = nullptr; llvm::StringMap Fields; - BuiltinTypeDeclBuilder(CXXRecordDecl *R) : Record(R) { + BuiltinTypeDeclBuilder(Sema &SemaRef, CXXRecordDecl *R) + : SemaRef(SemaRef), Record(R) { Record->startDefinition(); Template = Record->getDescribedClassTemplate(); } - BuiltinTypeDeclBuilder(Sema &S, NamespaceDecl *Namespace, StringRef Name) - : HLSLNamespace(Namespace) { - ASTContext &AST = S.getASTContext(); + BuiltinTypeDeclBuilder(Sema &SemaRef, NamespaceDecl *Namespace, + StringRef Name) + : SemaRef(SemaRef), HLSLNamespace(Namespace) { + ASTContext &AST = SemaRef.getASTContext(); IdentifierInfo &II = AST.Idents.get(Name, tok::TokenKind::identifier); - LookupResult Result(S, &II, SourceLocation(), Sema::LookupTagName); + LookupResult Result(SemaRef, &II, SourceLocation(), Sema::LookupTagName); CXXRecordDecl *PrevDecl = nullptr; - if (S.LookupQualifiedName(Result, HLSLNamespace)) { + if (SemaRef.LookupQualifiedName(Result, HLSLNamespace)) { + // Declaration already exists (from precompiled headers) NamedDecl *Found = Result.getFoundDecl(); if (auto *TD = dyn_cast(Found)) { PrevDecl = TD->getTemplatedDecl(); @@ -61,6 +70,7 @@ struct BuiltinTypeDeclBuilder { if (PrevDecl && PrevDecl->isCompleteDefinition()) { Record = PrevDecl; + Template = PrevTemplate; return; } @@ -84,8 +94,7 @@ struct BuiltinTypeDeclBuilder { BuiltinTypeDeclBuilder & addMemberVariable(StringRef Name, QualType Type, llvm::ArrayRef Attrs, AccessSpecifier Access = AccessSpecifier::AS_private) { - if (Record->isCompleteDefinition()) - return *this; + assert(!Record->isCompleteDefinition() && "record is already complete"); assert(Record->isBeingDefined() && "Definition must be started before adding members!"); ASTContext &AST = Record->getASTContext(); @@ -109,22 +118,16 @@ struct BuiltinTypeDeclBuilder { } BuiltinTypeDeclBuilder & - addHandleMember(Sema &S, ResourceClass RC, ResourceKind RK, bool IsROV, - bool RawBuffer, + addHandleMember(ResourceClass RC, ResourceKind RK, bool IsROV, bool RawBuffer, AccessSpecifier Access = AccessSpecifier::AS_private) { - if (Record->isCompleteDefinition()) - return *this; + assert(!Record->isCompleteDefinition() && "record is already complete"); - ASTContext &Ctx = S.getASTContext(); + ASTContext &Ctx = SemaRef.getASTContext(); TypeSourceInfo *ElementTypeInfo = nullptr; QualType ElemTy = Ctx.Char8Ty; - if (Template) { - if (const auto *TTD = dyn_cast( - Template->getTemplateParameters()->getParam(0))) { - ElemTy = QualType(TTD->getTypeForDecl(), 0); - } - } + if (Template) + ElemTy = getFirstTemplateTypeParam(); ElementTypeInfo = Ctx.getTrivialTypeSourceInfo(ElemTy, SourceLocation()); // add handle member with resource type attributes @@ -137,32 +140,13 @@ struct BuiltinTypeDeclBuilder { ? HLSLContainedTypeAttr::CreateImplicit(Ctx, ElementTypeInfo) : nullptr}; Attr *ResourceAttr = HLSLResourceAttr::CreateImplicit(Ctx, RK); - if (CreateHLSLAttributedResourceType(S, Ctx.HLSLResourceTy, Attrs, + if (CreateHLSLAttributedResourceType(SemaRef, Ctx.HLSLResourceTy, Attrs, AttributedResTy)) addMemberVariable("__handle", AttributedResTy, {ResourceAttr}, Access); return *this; } - static DeclRefExpr *lookupBuiltinFunction(ASTContext &AST, Sema &S, - StringRef Name) { - IdentifierInfo &II = AST.Idents.get(Name, tok::TokenKind::identifier); - DeclarationNameInfo NameInfo = - DeclarationNameInfo(DeclarationName(&II), SourceLocation()); - LookupResult R(S, NameInfo, Sema::LookupOrdinaryName); - // AllowBuiltinCreation is false but LookupDirect will create - // the builtin when searching the global scope anyways... - S.LookupName(R, S.getCurScope()); - // FIXME: If the builtin function was user-declared in global scope, - // this assert *will* fail. Should this call LookupBuiltin instead? - assert(R.isSingleResult() && - "Since this is a builtin it should always resolve!"); - auto *VD = cast(R.getFoundDecl()); - QualType Ty = VD->getType(); - return DeclRefExpr::Create(AST, NestedNameSpecifierLoc(), SourceLocation(), - VD, false, NameInfo, Ty, VK_PRValue); - } - - BuiltinTypeDeclBuilder &addDefaultHandleConstructor(Sema &S) { + BuiltinTypeDeclBuilder &addDefaultHandleConstructor() { if (Record->isCompleteDefinition()) return *this; ASTContext &AST = Record->getASTContext(); @@ -187,25 +171,18 @@ struct BuiltinTypeDeclBuilder { } BuiltinTypeDeclBuilder &addArraySubscriptOperators() { - if (Record->isCompleteDefinition()) - return *this; addArraySubscriptOperator(true); addArraySubscriptOperator(false); return *this; } BuiltinTypeDeclBuilder &addArraySubscriptOperator(bool IsConst) { - if (Record->isCompleteDefinition()) - return *this; + assert(!Record->isCompleteDefinition() && "record is already complete"); ASTContext &AST = Record->getASTContext(); QualType ElemTy = AST.Char8Ty; - if (Template) { - if (const auto *TTD = dyn_cast( - Template->getTemplateParameters()->getParam(0))) { - ElemTy = QualType(TTD->getTypeForDecl(), 0); - } - } + if (Template) + ElemTy = getFirstTemplateTypeParam(); QualType ReturnTy = ElemTy; FunctionProtoType::ExtProtoInfo ExtInfo; @@ -271,16 +248,31 @@ struct BuiltinTypeDeclBuilder { return *this; } + FieldDecl *getResourceHandleField() { + auto I = Fields.find("__handle"); + assert(I != Fields.end() && + I->second->getType()->isHLSLAttributedResourceType() && + "record does not have resource handle field"); + return I->second; + } + + QualType getFirstTemplateTypeParam() { + assert(Template && "record it not a template"); + if (const auto *TTD = dyn_cast( + Template->getTemplateParameters()->getParam(0))) { + return QualType(TTD->getTypeForDecl(), 0); + } + return QualType(); + } + BuiltinTypeDeclBuilder &startDefinition() { - if (Record->isCompleteDefinition()) - return *this; + assert(!Record->isCompleteDefinition() && "record is already complete"); Record->startDefinition(); return *this; } BuiltinTypeDeclBuilder &completeDefinition() { - if (Record->isCompleteDefinition()) - return *this; + assert(!Record->isCompleteDefinition() && "record is already complete"); assert(Record->isBeingDefined() && "Definition must be started before completing it."); @@ -288,54 +280,163 @@ struct BuiltinTypeDeclBuilder { return *this; } - TemplateParameterListBuilder addTemplateArgumentList(Sema &S); - BuiltinTypeDeclBuilder &addSimpleTemplateParams(Sema &S, - ArrayRef Names); + Expr *getConstantIntExpr(int value) { + ASTContext &AST = SemaRef.getASTContext(); + return IntegerLiteral::Create( + AST, llvm::APInt(AST.getTypeSize(AST.IntTy), value, true), AST.IntTy, + SourceLocation()); + } + + TemplateParameterListBuilder addTemplateArgumentList(); + BuiltinTypeDeclBuilder &addSimpleTemplateParams(ArrayRef Names, + ConceptDecl *CD); + + // Builtin types methods + BuiltinTypeDeclBuilder &addIncrementCounterMethod(); + BuiltinTypeDeclBuilder &addDecrementCounterMethod(); }; struct TemplateParameterListBuilder { BuiltinTypeDeclBuilder &Builder; - Sema &S; llvm::SmallVector Params; - TemplateParameterListBuilder(Sema &S, BuiltinTypeDeclBuilder &RB) - : Builder(RB), S(S) {} + TemplateParameterListBuilder(BuiltinTypeDeclBuilder &RB) : Builder(RB) {} ~TemplateParameterListBuilder() { finalizeTemplateArgs(); } TemplateParameterListBuilder & addTypeParameter(StringRef Name, QualType DefaultValue = QualType()) { - if (Builder.Record->isCompleteDefinition()) - return *this; + assert(!Builder.Record->isCompleteDefinition() && + "record is already complete"); + ASTContext &AST = Builder.SemaRef.getASTContext(); unsigned Position = static_cast(Params.size()); auto *Decl = TemplateTypeParmDecl::Create( - S.Context, Builder.Record->getDeclContext(), SourceLocation(), + AST, Builder.Record->getDeclContext(), SourceLocation(), SourceLocation(), /* TemplateDepth */ 0, Position, - &S.Context.Idents.get(Name, tok::TokenKind::identifier), - /* Typename */ false, - /* ParameterPack */ false); + &AST.Idents.get(Name, tok::TokenKind::identifier), + /* Typename */ true, + /* ParameterPack */ false, + /* HasTypeConstraint*/ false); if (!DefaultValue.isNull()) - Decl->setDefaultArgument( - S.Context, S.getTrivialTemplateArgumentLoc(DefaultValue, QualType(), - SourceLocation())); + Decl->setDefaultArgument(AST, + Builder.SemaRef.getTrivialTemplateArgumentLoc( + DefaultValue, QualType(), SourceLocation())); Params.emplace_back(Decl); return *this; } - BuiltinTypeDeclBuilder &finalizeTemplateArgs() { + // The concept specialization expression (CSE) constructed in + // constructConceptSpecializationExpr is constructed so that it + // matches the CSE that is constructed when parsing the below C++ code: + // + // template + // concept is_typed_resource_element_compatible = + // __builtin_hlsl_typed_resource_element_compatible + // + // template requires + // is_typed_resource_element_compatible + // struct RWBuffer { + // element_type Val; + // }; + // + // int fn() { + // RWBuffer Buf; + // } + // + // When dumping the AST and filtering for "RWBuffer", the resulting AST + // structure is what we're trying to construct below, specifically the + // CSE portion. + ConceptSpecializationExpr * + constructConceptSpecializationExpr(Sema &S, ConceptDecl *CD) { + ASTContext &Context = S.getASTContext(); + SourceLocation Loc = Builder.Record->getBeginLoc(); + DeclarationNameInfo DNI(CD->getDeclName(), Loc); + NestedNameSpecifierLoc NNSLoc; + DeclContext *DC = Builder.Record->getDeclContext(); + TemplateArgumentListInfo TALI(Loc, Loc); + + // Assume that the concept decl has just one template parameter + // This parameter should have been added when CD was constructed + // in getTypedBufferConceptDecl + assert(CD->getTemplateParameters()->size() == 1 && + "unexpected concept decl parameter count"); + TemplateTypeParmDecl *ConceptTTPD = dyn_cast( + CD->getTemplateParameters()->getParam(0)); + + // this TemplateTypeParmDecl is the template for the resource, and is + // used to construct a template argumentthat will be used + // to construct the ImplicitConceptSpecializationDecl + TemplateTypeParmDecl *T = TemplateTypeParmDecl::Create( + Context, // AST context + Builder.Record->getDeclContext(), // DeclContext + SourceLocation(), SourceLocation(), + /*depth=*/0, // Depth in the template parameter list + /*position=*/0, // Position in the template parameter list + /*id=*/nullptr, // Identifier for 'T' + /*Typename=*/true, // Indicates this is a 'typename' or 'class' + /*ParameterPack=*/false, // Not a parameter pack + /*HasTypeConstraint=*/false // Has no type constraint + ); + + T->setDeclContext(DC); + + QualType ConceptTType = Context.getTypeDeclType(ConceptTTPD); + + // this is the 2nd template argument node, on which + // the concept constraint is actually being applied: 'element_type' + TemplateArgument ConceptTA = TemplateArgument(ConceptTType); + + QualType CSETType = Context.getTypeDeclType(T); + + // this is the 1st template argument node, which represents + // the abstract type that a concept would refer to: 'T' + TemplateArgument CSETA = TemplateArgument(CSETType); + + ImplicitConceptSpecializationDecl *ImplicitCSEDecl = + ImplicitConceptSpecializationDecl::Create( + Context, Builder.Record->getDeclContext(), Loc, {CSETA}); + + // Constraint satisfaction is used to construct the + // ConceptSpecailizationExpr, and represents the 2nd Template Argument, + // located at the bottom of the sample AST above. + const ConstraintSatisfaction CS(CD, {ConceptTA}); + TemplateArgumentLoc TAL = S.getTrivialTemplateArgumentLoc( + ConceptTA, QualType(), SourceLocation()); + + TALI.addArgument(TAL); + const ASTTemplateArgumentListInfo *ATALI = + ASTTemplateArgumentListInfo::Create(Context, TALI); + + // In the concept reference, ATALI is what adds the extra + // TemplateArgument node underneath CSE + ConceptReference *CR = + ConceptReference::Create(Context, NNSLoc, Loc, DNI, CD, CD, ATALI); + + ConceptSpecializationExpr *CSE = + ConceptSpecializationExpr::Create(Context, CR, ImplicitCSEDecl, &CS); + + return CSE; + } + + BuiltinTypeDeclBuilder &finalizeTemplateArgs(ConceptDecl *CD = nullptr) { if (Params.empty()) return Builder; - auto *ParamList = TemplateParameterList::Create(S.Context, SourceLocation(), - SourceLocation(), Params, - SourceLocation(), nullptr); + + ASTContext &AST = Builder.SemaRef.Context; + ConceptSpecializationExpr *CSE = + CD ? constructConceptSpecializationExpr(Builder.SemaRef, CD) : nullptr; + auto *ParamList = TemplateParameterList::Create( + AST, SourceLocation(), SourceLocation(), Params, SourceLocation(), CSE); Builder.Template = ClassTemplateDecl::Create( - S.Context, Builder.Record->getDeclContext(), SourceLocation(), + AST, Builder.Record->getDeclContext(), SourceLocation(), DeclarationName(Builder.Record->getIdentifier()), ParamList, Builder.Record); + Builder.Record->setDescribedClassTemplate(Builder.Template); Builder.Template->setImplicit(true); Builder.Template->setLexicalDeclContext(Builder.Record->getDeclContext()); + // NOTE: setPreviousDecl before addDecl so new decl replace old decl when // make visible. Builder.Template->setPreviousDecl(Builder.PrevTemplate); @@ -343,25 +444,231 @@ struct TemplateParameterListBuilder { Params.clear(); QualType T = Builder.Template->getInjectedClassNameSpecialization(); - T = S.Context.getInjectedClassNameType(Builder.Record, T); + T = AST.getInjectedClassNameType(Builder.Record, T); return Builder; } }; + +// Builder for methods of builtin types. Allows adding methods to builtin types +// using the builder pattern like this: +// +// BuiltinTypeMethodBuilder(Sema, RecordBuilder, "MethodName", ReturnType) +// .addParam("param_name", Type, InOutModifier) +// .callBuiltin("buildin_name", { BuiltinParams }) +// .finalizeMethod(); +// +// The builder needs to have all of the method parameters before it can create +// a CXXMethodDecl. It collects them in addParam calls and when a first +// method that builds the body is called or when access to 'this` is needed it +// creates the CXXMethodDecl and ParmVarDecls instances. These can then be +// referenced from the body building methods. Destructor or an explicit call to +// finalizeMethod() will complete the method definition. +// +// The callBuiltin helper method passes in the resource handle as the first +// argument of the builtin call. If this is not desired it takes a bool flag to +// disable this. +// +// If the method that is being built has a non-void return type the +// finalizeMethod will create a return statent with the value of the last +// statement (unless the last statement is already a ReturnStmt). +struct BuiltinTypeMethodBuilder { + struct MethodParam { + const IdentifierInfo &NameII; + QualType Ty; + HLSLParamModifierAttr::Spelling Modifier; + MethodParam(const IdentifierInfo &NameII, QualType Ty, + HLSLParamModifierAttr::Spelling Modifier) + : NameII(NameII), Ty(Ty), Modifier(Modifier) {} + }; + + BuiltinTypeDeclBuilder &DeclBuilder; + DeclarationNameInfo NameInfo; + QualType ReturnTy; + CXXMethodDecl *Method; + llvm::SmallVector Params; + llvm::SmallVector StmtsList; + +public: + BuiltinTypeMethodBuilder(Sema &S, BuiltinTypeDeclBuilder &DB, StringRef Name, + QualType ReturnTy) + : DeclBuilder(DB), ReturnTy(ReturnTy), Method(nullptr) { + const IdentifierInfo &II = + S.getASTContext().Idents.get(Name, tok::TokenKind::identifier); + NameInfo = DeclarationNameInfo(DeclarationName(&II), SourceLocation()); + } + + BuiltinTypeMethodBuilder &addParam(StringRef Name, QualType Ty, + HLSLParamModifierAttr::Spelling Modifier = + HLSLParamModifierAttr::Keyword_in) { + assert(Method == nullptr && "Cannot add param, method already created"); + llvm_unreachable("not yet implemented"); + } + +private: + void createMethodDecl() { + assert(Method == nullptr && "Method already created"); + + // create method type + ASTContext &AST = DeclBuilder.SemaRef.getASTContext(); + SmallVector ParamTypes; + for (MethodParam &MP : Params) + ParamTypes.emplace_back(MP.Ty); + QualType MethodTy = AST.getFunctionType(ReturnTy, ParamTypes, + FunctionProtoType::ExtProtoInfo()); + + // create method decl + auto *TSInfo = AST.getTrivialTypeSourceInfo(MethodTy, SourceLocation()); + Method = + CXXMethodDecl::Create(AST, DeclBuilder.Record, SourceLocation(), + NameInfo, MethodTy, TSInfo, SC_None, false, false, + ConstexprSpecKind::Unspecified, SourceLocation()); + + // create params & set them to the function prototype + SmallVector ParmDecls; + auto FnProtoLoc = + Method->getTypeSourceInfo()->getTypeLoc().getAs(); + for (int I = 0, E = Params.size(); I != E; I++) { + MethodParam &MP = Params[I]; + ParmVarDecl *Parm = ParmVarDecl::Create( + AST, Method->getDeclContext(), SourceLocation(), SourceLocation(), + &MP.NameII, MP.Ty, + AST.getTrivialTypeSourceInfo(MP.Ty, SourceLocation()), SC_None, + nullptr); + if (MP.Modifier != HLSLParamModifierAttr::Keyword_in) { + auto *Mod = + HLSLParamModifierAttr::Create(AST, SourceRange(), MP.Modifier); + Parm->addAttr(Mod); + } + ParmDecls.push_back(Parm); + FnProtoLoc.setParam(I, Parm); + } + Method->setParams({ParmDecls}); + } + +public: + ~BuiltinTypeMethodBuilder() { finalizeMethod(); } + + Expr *getResourceHandleExpr() { + // The first statement added to a method or access to 'this' creates the + // declaration. + if (!Method) + createMethodDecl(); + + ASTContext &AST = DeclBuilder.SemaRef.getASTContext(); + CXXThisExpr *This = CXXThisExpr::Create( + AST, SourceLocation(), Method->getFunctionObjectParameterType(), true); + FieldDecl *HandleField = DeclBuilder.getResourceHandleField(); + return MemberExpr::CreateImplicit(AST, This, false, HandleField, + HandleField->getType(), VK_LValue, + OK_Ordinary); + } + + BuiltinTypeMethodBuilder & + callBuiltin(StringRef BuiltinName, ArrayRef CallParms, + bool AddResourceHandleAsFirstArg = true) { + + // The first statement added to a method or access to 'this` creates the + // declaration. + if (!Method) + createMethodDecl(); + + ASTContext &AST = DeclBuilder.SemaRef.getASTContext(); + FunctionDecl *FD = lookupBuiltinFunction(DeclBuilder.SemaRef, BuiltinName); + DeclRefExpr *DRE = DeclRefExpr::Create( + AST, NestedNameSpecifierLoc(), SourceLocation(), FD, false, + FD->getNameInfo(), FD->getType(), VK_PRValue); + + SmallVector NewCallParms; + if (AddResourceHandleAsFirstArg) { + NewCallParms.push_back(getResourceHandleExpr()); + for (auto *P : CallParms) + NewCallParms.push_back(P); + } + + Expr *Call = CallExpr::Create( + AST, DRE, AddResourceHandleAsFirstArg ? NewCallParms : CallParms, + FD->getReturnType(), VK_PRValue, SourceLocation(), FPOptionsOverride()); + StmtsList.push_back(Call); + return *this; + } + + BuiltinTypeDeclBuilder &finalizeMethod() { + assert(!DeclBuilder.Record->isCompleteDefinition() && + "record is already complete"); + assert( + Method != nullptr && + "method decl not created; are you missing a call to build the body?"); + + if (!Method->hasBody()) { + ASTContext &AST = DeclBuilder.SemaRef.getASTContext(); + assert((ReturnTy == AST.VoidTy || !StmtsList.empty()) && + "nothing to return from non-void method"); + if (ReturnTy != AST.VoidTy) { + if (Expr *LastExpr = dyn_cast(StmtsList.back())) { + assert(AST.hasSameUnqualifiedType( + isa(LastExpr) + ? cast(LastExpr)->getCallReturnType(AST) + : LastExpr->getType(), + ReturnTy) && + "Return type of the last statement must match the return type " + "of the method"); + if (!isa(LastExpr)) { + StmtsList.pop_back(); + StmtsList.push_back( + ReturnStmt::Create(AST, SourceLocation(), LastExpr, nullptr)); + } + } + } + + Method->setBody(CompoundStmt::Create(AST, StmtsList, FPOptionsOverride(), + SourceLocation(), SourceLocation())); + Method->setLexicalDeclContext(DeclBuilder.Record); + Method->setAccess(AccessSpecifier::AS_public); + Method->addAttr(AlwaysInlineAttr::CreateImplicit( + AST, SourceRange(), AlwaysInlineAttr::CXX11_clang_always_inline)); + DeclBuilder.Record->addDecl(Method); + } + return DeclBuilder; + } +}; + } // namespace -TemplateParameterListBuilder -BuiltinTypeDeclBuilder::addTemplateArgumentList(Sema &S) { - return TemplateParameterListBuilder(S, *this); +TemplateParameterListBuilder BuiltinTypeDeclBuilder::addTemplateArgumentList() { + return TemplateParameterListBuilder(*this); } BuiltinTypeDeclBuilder & -BuiltinTypeDeclBuilder::addSimpleTemplateParams(Sema &S, - ArrayRef Names) { - TemplateParameterListBuilder Builder = this->addTemplateArgumentList(S); +BuiltinTypeDeclBuilder::addSimpleTemplateParams(ArrayRef Names, + ConceptDecl *CD = nullptr) { + if (Record->isCompleteDefinition()) { + assert(Template && "existing record it not a template"); + assert(Template->getTemplateParameters()->size() == Names.size() && + "template param count mismatch"); + return *this; + } + + TemplateParameterListBuilder Builder = this->addTemplateArgumentList(); for (StringRef Name : Names) Builder.addTypeParameter(Name); - return Builder.finalizeTemplateArgs(); + return Builder.finalizeTemplateArgs(CD); +} + +BuiltinTypeDeclBuilder &BuiltinTypeDeclBuilder::addIncrementCounterMethod() { + return BuiltinTypeMethodBuilder(SemaRef, *this, "IncrementCounter", + SemaRef.getASTContext().UnsignedIntTy) + .callBuiltin("__builtin_hlsl_buffer_update_counter", + {getConstantIntExpr(1)}) + .finalizeMethod(); +} + +BuiltinTypeDeclBuilder &BuiltinTypeDeclBuilder::addDecrementCounterMethod() { + return BuiltinTypeMethodBuilder(SemaRef, *this, "DecrementCounter", + SemaRef.getASTContext().UnsignedIntTy) + .callBuiltin("__builtin_hlsl_buffer_update_counter", + {getConstantIntExpr(-1)}) + .finalizeMethod(); } HLSLExternalSemaSource::~HLSLExternalSemaSource() {} @@ -467,15 +774,78 @@ void HLSLExternalSemaSource::defineTrivialHLSLTypes() { static BuiltinTypeDeclBuilder setupBufferType(CXXRecordDecl *Decl, Sema &S, ResourceClass RC, ResourceKind RK, bool IsROV, bool RawBuffer) { - return BuiltinTypeDeclBuilder(Decl) - .addHandleMember(S, RC, RK, IsROV, RawBuffer) - .addDefaultHandleConstructor(S); + return BuiltinTypeDeclBuilder(S, Decl) + .addHandleMember(RC, RK, IsROV, RawBuffer) + .addDefaultHandleConstructor(); +} + +static Expr *constructTypedBufferConstraintExpr(Sema &S, SourceLocation NameLoc, + TemplateTypeParmDecl *T) { + ASTContext &Context = S.getASTContext(); + + // Obtain the QualType for 'unsigned long' + QualType BoolTy = Context.BoolTy; + + // Create a QualType that points to this TemplateTypeParmDecl + QualType TType = Context.getTypeDeclType(T); + + // Create a TypeSourceInfo for the template type parameter 'T' + TypeSourceInfo *TTypeSourceInfo = + Context.getTrivialTypeSourceInfo(TType, NameLoc); + + TypeTraitExpr *TypedResExpr = TypeTraitExpr::Create( + Context, BoolTy, NameLoc, UTT_IsTypedResourceElementCompatible, + {TTypeSourceInfo}, NameLoc, true); + + return TypedResExpr; +} + +static ConceptDecl *constructTypedBufferConceptDecl(Sema &S, + NamespaceDecl *NSD) { + ASTContext &Context = S.getASTContext(); + DeclContext *DC = NSD->getDeclContext(); + SourceLocation DeclLoc = SourceLocation(); + + IdentifierInfo &ElementTypeII = Context.Idents.get("element_type"); + TemplateTypeParmDecl *T = TemplateTypeParmDecl::Create( + Context, NSD->getDeclContext(), DeclLoc, DeclLoc, + /*depth=*/0, + /*position=*/0, + /*id=*/&ElementTypeII, + /*Typename=*/true, + /*ParameterPack=*/false); + + T->setDeclContext(DC); + T->setReferenced(); + + // Create and Attach Template Parameter List to ConceptDecl + TemplateParameterList *ConceptParams = TemplateParameterList::Create( + Context, DeclLoc, DeclLoc, {T}, DeclLoc, nullptr); + + DeclarationName DeclName = DeclarationName( + &Context.Idents.get("__is_typed_resource_element_compatible")); + Expr *ConstraintExpr = constructTypedBufferConstraintExpr(S, DeclLoc, T); + + // Create a ConceptDecl + ConceptDecl *CD = + ConceptDecl::Create(Context, NSD->getDeclContext(), DeclLoc, DeclName, + ConceptParams, ConstraintExpr); + + // Attach the template parameter list to the ConceptDecl + CD->setTemplateParameters(ConceptParams); + + // Add the concept declaration to the Translation Unit Decl + NSD->getDeclContext()->addDecl(CD); + + return CD; } void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() { CXXRecordDecl *Decl; + ConceptDecl *TypedBufferConcept = + constructTypedBufferConceptDecl(*SemaPtr, HLSLNamespace); Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RWBuffer") - .addSimpleTemplateParams(*SemaPtr, {"element_type"}) + .addSimpleTemplateParams({"element_type"}, TypedBufferConcept) .Record; onCompletion(Decl, [this](CXXRecordDecl *Decl) { @@ -488,7 +858,7 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() { Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RasterizerOrderedBuffer") - .addSimpleTemplateParams(*SemaPtr, {"element_type"}) + .addSimpleTemplateParams({"element_type"}) .Record; onCompletion(Decl, [this](CXXRecordDecl *Decl) { setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, @@ -499,7 +869,7 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() { }); Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "StructuredBuffer") - .addSimpleTemplateParams(*SemaPtr, {"element_type"}) + .addSimpleTemplateParams({"element_type"}) .Record; onCompletion(Decl, [this](CXXRecordDecl *Decl) { setupBufferType(Decl, *SemaPtr, ResourceClass::SRV, ResourceKind::RawBuffer, @@ -509,18 +879,20 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() { }); Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RWStructuredBuffer") - .addSimpleTemplateParams(*SemaPtr, {"element_type"}) + .addSimpleTemplateParams({"element_type"}) .Record; onCompletion(Decl, [this](CXXRecordDecl *Decl) { setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer, /*IsROV=*/false, /*RawBuffer=*/true) .addArraySubscriptOperators() + .addIncrementCounterMethod() + .addDecrementCounterMethod() .completeDefinition(); }); Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "AppendStructuredBuffer") - .addSimpleTemplateParams(*SemaPtr, {"element_type"}) + .addSimpleTemplateParams({"element_type"}) .Record; onCompletion(Decl, [this](CXXRecordDecl *Decl) { setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer, @@ -530,7 +902,7 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() { Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "ConsumeStructuredBuffer") - .addSimpleTemplateParams(*SemaPtr, {"element_type"}) + .addSimpleTemplateParams({"element_type"}) .Record; onCompletion(Decl, [this](CXXRecordDecl *Decl) { setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer, @@ -540,19 +912,22 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() { Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "RasterizerOrderedStructuredBuffer") - .addSimpleTemplateParams(*SemaPtr, {"element_type"}) + .addSimpleTemplateParams({"element_type"}) .Record; onCompletion(Decl, [this](CXXRecordDecl *Decl) { setupBufferType(Decl, *SemaPtr, ResourceClass::UAV, ResourceKind::RawBuffer, /*IsROV=*/true, /*RawBuffer=*/true) .addArraySubscriptOperators() + .addIncrementCounterMethod() + .addDecrementCounterMethod() .completeDefinition(); }); } void HLSLExternalSemaSource::onCompletion(CXXRecordDecl *Record, CompletionFunction Fn) { - Completions.insert(std::make_pair(Record->getCanonicalDecl(), Fn)); + if (!Record->isCompleteDefinition()) + Completions.insert(std::make_pair(Record->getCanonicalDecl(), Fn)); } void HLSLExternalSemaSource::CompleteType(TagDecl *Tag) { @@ -570,3 +945,19 @@ void HLSLExternalSemaSource::CompleteType(TagDecl *Tag) { return; It->second(Record); } + +static FunctionDecl *lookupBuiltinFunction(Sema &S, StringRef Name) { + IdentifierInfo &II = + S.getASTContext().Idents.get(Name, tok::TokenKind::identifier); + DeclarationNameInfo NameInfo = + DeclarationNameInfo(DeclarationName(&II), SourceLocation()); + LookupResult R(S, NameInfo, Sema::LookupOrdinaryName); + // AllowBuiltinCreation is false but LookupDirect will create + // the builtin when searching the global scope anyways... + S.LookupName(R, S.getCurScope()); + // FIXME: If the builtin function was user-declared in global scope, + // this assert *will* fail. Should this call LookupBuiltin instead? + assert(R.isSingleResult() && + "Since this is a builtin it should always resolve!"); + return cast(R.getFoundDecl()); +} diff --git a/clang/lib/Sema/SemaAPINotes.cpp b/clang/lib/Sema/SemaAPINotes.cpp index cbc092195ad30..028bf82f3e804 100644 --- a/clang/lib/Sema/SemaAPINotes.cpp +++ b/clang/lib/Sema/SemaAPINotes.cpp @@ -10,6 +10,7 @@ // //===----------------------------------------------------------------------===// +#include "CheckExprLifetime.h" #include "TypeLocBuilder.h" #include "clang/APINotes/APINotesReader.h" #include "clang/AST/Decl.h" @@ -568,7 +569,8 @@ static void ProcessAPINotes(Sema &S, FunctionOrMethod AnyFunc, static void ProcessAPINotes(Sema &S, CXXMethodDecl *Method, const api_notes::CXXMethodInfo &Info, VersionedInfoMetadata Metadata) { - if (Info.This && Info.This->isLifetimebound()) { + if (Info.This && Info.This->isLifetimebound() && + !sema::implicitObjectParamIsLifetimeBound(Method)) { auto MethodType = Method->getType(); auto *attr = ::new (S.Context) LifetimeBoundAttr(S.Context, getPlaceholderAttrInfo()); diff --git a/clang/lib/Sema/SemaAttr.cpp b/clang/lib/Sema/SemaAttr.cpp index 9fbad7ed67ccb..716d8ed1fae4f 100644 --- a/clang/lib/Sema/SemaAttr.cpp +++ b/clang/lib/Sema/SemaAttr.cpp @@ -11,6 +11,7 @@ // //===----------------------------------------------------------------------===// +#include "CheckExprLifetime.h" #include "clang/AST/ASTConsumer.h" #include "clang/AST/Attr.h" #include "clang/AST/Expr.h" @@ -268,6 +269,44 @@ void Sema::inferLifetimeBoundAttribute(FunctionDecl *FD) { } } +static bool isPointerLikeType(QualType QT) { + QT = QT.getNonReferenceType(); + if (QT->isPointerType()) + return true; + auto *RD = QT->getAsCXXRecordDecl(); + if (!RD) + return false; + if (auto *CTSD = dyn_cast(RD)) + RD = CTSD->getSpecializedTemplate()->getTemplatedDecl(); + return RD->hasAttr(); +} + +void Sema::inferLifetimeCaptureByAttribute(FunctionDecl *FD) { + if (!FD) + return; + auto *MD = dyn_cast(FD); + if (!MD || !MD->getIdentifier() || !MD->getParent()->isInStdNamespace()) + return; + // FIXME: Infer for operator[] for map-like containers. For example: + // std::map m; + // m[ReturnString(..)] = ...; + static const llvm::StringSet<> CapturingMethods{"insert", "push", + "push_front", "push_back"}; + if (!CapturingMethods.contains(MD->getName())) + return; + // Do not infer if any parameter is explicitly annotated. + for (ParmVarDecl *PVD : MD->parameters()) + if (PVD->hasAttr()) + return; + for (ParmVarDecl *PVD : MD->parameters()) { + if (isPointerLikeType(PVD->getType())) { + int CaptureByThis[] = {LifetimeCaptureByAttr::THIS}; + PVD->addAttr( + LifetimeCaptureByAttr::CreateImplicit(Context, CaptureByThis, 1)); + } + } +} + void Sema::inferNullableClassAttribute(CXXRecordDecl *CRD) { static const llvm::StringSet<> Nullable{ "auto_ptr", "shared_ptr", "unique_ptr", "exception_ptr", diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 2fd990750ed21..a49605e486765 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -12048,7 +12048,8 @@ void Sema::CheckForIntOverflow (const Expr *E) { New && New->isArray()) { if (auto ArraySize = New->getArraySize()) Exprs.push_back(*ArraySize); - } + } else if (const auto *MTE = dyn_cast(OriginalE)) + Exprs.push_back(MTE->getSubExpr()); } while (!Exprs.empty()); } diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index be570f3a1829d..74b0e5ad23bd4 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -8264,11 +8264,14 @@ void Sema::CheckShadow(NamedDecl *D, NamedDecl *ShadowedDecl, DeclContext *NewDC = D->getDeclContext(); if (FieldDecl *FD = dyn_cast(ShadowedDecl)) { - // Fields are not shadowed by variables in C++ static methods. - if (CXXMethodDecl *MD = dyn_cast(NewDC)) + if (CXXMethodDecl *MD = dyn_cast(NewDC)) { + // Fields are not shadowed by variables in C++ static methods. if (MD->isStatic()) return; + if (!MD->getParent()->isLambda() && MD->isExplicitObjectMemberFunction()) + return; + } // Fields shadowed by constructor parameters are a special case. Usually // the constructor initializes the field with the parameter. if (isa(NewDC)) @@ -11913,6 +11916,7 @@ bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD, NamedDecl *OldDecl = nullptr; bool MayNeedOverloadableChecks = false; + inferLifetimeCaptureByAttribute(NewFD); // Merge or overload the declaration with an existing declaration of // the same name, if appropriate. if (!Previous.empty()) { @@ -16716,6 +16720,7 @@ void Sema::AddKnownFunctionAttributes(FunctionDecl *FD) { LazyProcessLifetimeCaptureByParams(FD); inferLifetimeBoundAttribute(FD); + inferLifetimeCaptureByAttribute(FD); AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(FD); // If C++ exceptions are enabled but we are told extern "C" functions cannot diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 6c7472ce92703..c9d7444d5865a 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -983,6 +983,9 @@ Sema::VarArgKind Sema::isValidVarArgType(const QualType &Ty) { if (getLangOpts().MSVCCompat) return VAK_MSVCUndefined; + if (getLangOpts().HLSL && Ty->getAs()) + return VAK_Valid; + // FIXME: In C++11, these cases are conditionally-supported, meaning we're // permitted to reject them. We should consider doing so. return VAK_Undefined; diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 616481d62de88..d85819b21c826 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -5720,8 +5720,7 @@ static bool EvaluateUnaryTypeTrait(Sema &Self, TypeTrait UTT, case UTT_IsTypedResourceElementCompatible: assert(Self.getLangOpts().HLSL && "typed resource element compatible types are an HLSL-only feature"); - if (Self.RequireCompleteType(TInfo->getTypeLoc().getBeginLoc(), T, - diag::err_incomplete_type)) + if (T->isIncompleteType()) return false; return Self.HLSL().IsTypedResourceElementCompatible(T); diff --git a/clang/lib/Sema/SemaExprMember.cpp b/clang/lib/Sema/SemaExprMember.cpp index c32df60769281..434768b99d631 100644 --- a/clang/lib/Sema/SemaExprMember.cpp +++ b/clang/lib/Sema/SemaExprMember.cpp @@ -377,7 +377,7 @@ CheckExtVectorComponent(Sema &S, QualType baseType, ExprValueKind &VK, // // FIXME: This logic can be greatly simplified by splitting it along // halving/not halving and reworking the component checking. - const ExtVectorType *vecType = baseType->getAs(); + const ExtVectorType *vecType = baseType->castAs(); // The vector accessor can't exceed the number of elements. const char *compStr = CompName->getNameStart(); diff --git a/clang/lib/Sema/SemaFunctionEffects.cpp b/clang/lib/Sema/SemaFunctionEffects.cpp index 6fe4d2353a228..c5c1e3fb41a2f 100644 --- a/clang/lib/Sema/SemaFunctionEffects.cpp +++ b/clang/lib/Sema/SemaFunctionEffects.cpp @@ -627,7 +627,7 @@ class Analyzer { IsNoexcept = isNoexcept(FD); } else if (auto *BD = dyn_cast(D)) { if (auto *TSI = BD->getSignatureAsWritten()) { - auto *FPT = TSI->getType()->getAs(); + auto *FPT = TSI->getType()->castAs(); IsNoexcept = FPT->isNothrow() || BD->hasAttr(); } } diff --git a/clang/lib/Sema/SemaHLSL.cpp b/clang/lib/Sema/SemaHLSL.cpp index f4fc0f2ddc27a..8109c3a2cc0f1 100644 --- a/clang/lib/Sema/SemaHLSL.cpp +++ b/clang/lib/Sema/SemaHLSL.cpp @@ -1696,7 +1696,17 @@ static bool CheckVectorElementCallArgs(Sema *S, CallExpr *TheCall) { return true; } -bool CheckArgTypeIsCorrect( +static bool CheckArgTypeMatches(Sema *S, Expr *Arg, QualType ExpectedType) { + QualType ArgType = Arg->getType(); + if (!S->getASTContext().hasSameUnqualifiedType(ArgType, ExpectedType)) { + S->Diag(Arg->getBeginLoc(), diag::err_typecheck_convert_incompatible) + << ArgType << ExpectedType << 1 << 0 << 0; + return true; + } + return false; +} + +static bool CheckArgTypeIsCorrect( Sema *S, Expr *Arg, QualType ExpectedType, llvm::function_ref Check) { QualType PassedType = Arg->getType(); @@ -1711,7 +1721,7 @@ bool CheckArgTypeIsCorrect( return false; } -bool CheckAllArgTypesAreCorrect( +static bool CheckAllArgTypesAreCorrect( Sema *S, CallExpr *TheCall, QualType ExpectedType, llvm::function_ref Check) { for (unsigned i = 0; i < TheCall->getNumArgs(); ++i) { @@ -1878,6 +1888,29 @@ static bool CheckVectorSelect(Sema *S, CallExpr *TheCall) { return false; } +static bool CheckResourceHandle( + Sema *S, CallExpr *TheCall, unsigned ArgIndex, + llvm::function_ref Check = + nullptr) { + assert(TheCall->getNumArgs() >= ArgIndex); + QualType ArgType = TheCall->getArg(ArgIndex)->getType(); + const HLSLAttributedResourceType *ResTy = + ArgType.getTypePtr()->getAs(); + if (!ResTy) { + S->Diag(TheCall->getArg(0)->getBeginLoc(), + diag::err_typecheck_expect_hlsl_resource) + << ArgType; + return true; + } + if (Check && Check(ResTy)) { + S->Diag(TheCall->getArg(ArgIndex)->getExprLoc(), + diag::err_invalid_hlsl_resource_type) + << ArgType; + return true; + } + return false; +} + // Note: returning true in this case results in CheckBuiltinFunctionCall // returning an ExprError bool SemaHLSL::CheckBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) { @@ -1888,6 +1921,15 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) { return true; break; } + case Builtin::BI__builtin_hlsl_asdouble: { + if (SemaRef.checkArgCount(TheCall, 2)) + return true; + if (CheckUnsignedIntRepresentation(&SemaRef, TheCall)) + return true; + + SetElementTypeAsReturnType(&SemaRef, TheCall, getASTContext().DoubleTy); + break; + } case Builtin::BI__builtin_hlsl_elementwise_clamp: { if (SemaRef.checkArgCount(TheCall, 3)) return true; @@ -1908,9 +1950,9 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) { return true; // ensure both args have 3 elements int NumElementsArg1 = - TheCall->getArg(0)->getType()->getAs()->getNumElements(); + TheCall->getArg(0)->getType()->castAs()->getNumElements(); int NumElementsArg2 = - TheCall->getArg(1)->getType()->getAs()->getNumElements(); + TheCall->getArg(1)->getType()->castAs()->getNumElements(); if (NumElementsArg1 != 3) { int LessOrMore = NumElementsArg1 > 3 ? 1 : 0; @@ -2167,6 +2209,27 @@ bool SemaHLSL::CheckBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) { return true; break; } + case Builtin::BI__builtin_hlsl_buffer_update_counter: { + auto checkResTy = [](const HLSLAttributedResourceType *ResTy) -> bool { + return !(ResTy->getAttrs().ResourceClass == ResourceClass::UAV && + ResTy->getAttrs().RawBuffer && ResTy->hasContainedType()); + }; + if (SemaRef.checkArgCount(TheCall, 2) || + CheckResourceHandle(&SemaRef, TheCall, 0, checkResTy) || + CheckArgTypeMatches(&SemaRef, TheCall->getArg(1), + SemaRef.getASTContext().IntTy)) + return true; + Expr *OffsetExpr = TheCall->getArg(1); + std::optional Offset = + OffsetExpr->getIntegerConstantExpr(SemaRef.getASTContext()); + if (!Offset.has_value() || std::abs(Offset->getExtValue()) != 1) { + SemaRef.Diag(TheCall->getArg(1)->getBeginLoc(), + diag::err_hlsl_expect_arg_const_int_one_or_neg_one) + << 1; + return true; + } + break; + } } return false; } diff --git a/clang/lib/Sema/SemaOpenMP.cpp b/clang/lib/Sema/SemaOpenMP.cpp index 5d6b835e6da82..976d48e124913 100644 --- a/clang/lib/Sema/SemaOpenMP.cpp +++ b/clang/lib/Sema/SemaOpenMP.cpp @@ -11102,7 +11102,8 @@ StmtResult SemaOpenMP::ActOnOpenMPFlushDirective(ArrayRef Clauses, for (const OMPClause *C : Clauses) { if (C->getClauseKind() == OMPC_acq_rel || C->getClauseKind() == OMPC_acquire || - C->getClauseKind() == OMPC_release) { + C->getClauseKind() == OMPC_release || + C->getClauseKind() == OMPC_seq_cst /*OpenMP 5.1*/) { if (MemOrderKind != OMPC_unknown) { Diag(C->getBeginLoc(), diag::err_omp_several_mem_order_clauses) << getOpenMPDirectiveName(OMPD_flush) << 1 diff --git a/clang/lib/Sema/SemaTemplateVariadic.cpp b/clang/lib/Sema/SemaTemplateVariadic.cpp index 2ea2a368dd24c..86d15f6324f4f 100644 --- a/clang/lib/Sema/SemaTemplateVariadic.cpp +++ b/clang/lib/Sema/SemaTemplateVariadic.cpp @@ -1157,10 +1157,12 @@ ExprResult Sema::ActOnPackIndexingExpr(Scope *S, Expr *PackExpression, return Res; } -ExprResult -Sema::BuildPackIndexingExpr(Expr *PackExpression, SourceLocation EllipsisLoc, - Expr *IndexExpr, SourceLocation RSquareLoc, - ArrayRef ExpandedExprs, bool EmptyPack) { +ExprResult Sema::BuildPackIndexingExpr(Expr *PackExpression, + SourceLocation EllipsisLoc, + Expr *IndexExpr, + SourceLocation RSquareLoc, + ArrayRef ExpandedExprs, + bool FullySubstituted) { std::optional Index; if (!IndexExpr->isInstantiationDependent()) { @@ -1174,8 +1176,8 @@ Sema::BuildPackIndexingExpr(Expr *PackExpression, SourceLocation EllipsisLoc, IndexExpr = Res.get(); } - if (Index && (!ExpandedExprs.empty() || EmptyPack)) { - if (*Index < 0 || EmptyPack || *Index >= int64_t(ExpandedExprs.size())) { + if (Index && FullySubstituted) { + if (*Index < 0 || *Index >= int64_t(ExpandedExprs.size())) { Diag(PackExpression->getBeginLoc(), diag::err_pack_index_out_of_bound) << *Index << PackExpression << ExpandedExprs.size(); return ExprError(); @@ -1184,7 +1186,7 @@ Sema::BuildPackIndexingExpr(Expr *PackExpression, SourceLocation EllipsisLoc, return PackIndexingExpr::Create(getASTContext(), EllipsisLoc, RSquareLoc, PackExpression, IndexExpr, Index, - ExpandedExprs, EmptyPack); + ExpandedExprs, FullySubstituted); } TemplateArgumentLoc Sema::getTemplateArgumentPackExpansionPattern( diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 1465bba87724b..9cf1b2d073a90 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -3670,10 +3670,10 @@ class TreeTransform { SourceLocation RSquareLoc, Expr *PackIdExpression, Expr *IndexExpr, ArrayRef ExpandedExprs, - bool EmptyPack = false) { + bool FullySubstituted = false) { return getSema().BuildPackIndexingExpr(PackIdExpression, EllipsisLoc, IndexExpr, RSquareLoc, ExpandedExprs, - EmptyPack); + FullySubstituted); } /// Build a new expression representing a call to a source location @@ -6769,6 +6769,7 @@ TreeTransform::TransformPackIndexingType(TypeLocBuilder &TLB, if (Out.isNull()) return QualType(); SubtitutedTypes.push_back(Out); + FullySubstituted &= !Out->containsUnexpandedParameterPack(); } // If we're supposed to retain a pack expansion, do so by temporarily // forgetting the partially-substituted parameter pack. @@ -15581,6 +15582,7 @@ TreeTransform::TransformPackIndexingExpr(PackIndexingExpr *E) { } SmallVector ExpandedExprs; + bool FullySubstituted = true; if (!E->expandsToEmptyPack() && E->getExpressions().empty()) { Expr *Pattern = E->getPackIdExpression(); SmallVector Unexpanded; @@ -15605,7 +15607,7 @@ TreeTransform::TransformPackIndexingExpr(PackIndexingExpr *E) { return ExprError(); return getDerived().RebuildPackIndexingExpr( E->getEllipsisLoc(), E->getRSquareLoc(), Pack.get(), IndexExpr.get(), - {}); + {}, /*FullySubstituted=*/false); } for (unsigned I = 0; I != *NumExpansions; ++I) { Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), I); @@ -15617,6 +15619,7 @@ TreeTransform::TransformPackIndexingExpr(PackIndexingExpr *E) { OrigNumExpansions); if (Out.isInvalid()) return true; + FullySubstituted = false; } ExpandedExprs.push_back(Out.get()); } @@ -15633,6 +15636,7 @@ TreeTransform::TransformPackIndexingExpr(PackIndexingExpr *E) { OrigNumExpansions); if (Out.isInvalid()) return true; + FullySubstituted = false; ExpandedExprs.push_back(Out.get()); } } else if (!E->expandsToEmptyPack()) { @@ -15644,8 +15648,7 @@ TreeTransform::TransformPackIndexingExpr(PackIndexingExpr *E) { return getDerived().RebuildPackIndexingExpr( E->getEllipsisLoc(), E->getRSquareLoc(), E->getPackIdExpression(), - IndexExpr.get(), ExpandedExprs, - /*EmptyPack=*/ExpandedExprs.size() == 0); + IndexExpr.get(), ExpandedExprs, FullySubstituted); } template diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index c39a1950a6cf2..731ad0b64dc85 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -2191,7 +2191,7 @@ void ASTStmtReader::VisitSizeOfPackExpr(SizeOfPackExpr *E) { void ASTStmtReader::VisitPackIndexingExpr(PackIndexingExpr *E) { VisitExpr(E); E->TransformedExpressions = Record.readInt(); - E->ExpandedToEmptyPack = Record.readInt(); + E->FullySubstituted = Record.readInt(); E->EllipsisLoc = readSourceLocation(); E->RSquareLoc = readSourceLocation(); E->SubExprs[0] = Record.readStmt(); diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp index e7f567ff59a8a..4994047d9fe10 100644 --- a/clang/lib/Serialization/ASTWriterStmt.cpp +++ b/clang/lib/Serialization/ASTWriterStmt.cpp @@ -2191,7 +2191,7 @@ void ASTStmtWriter::VisitSizeOfPackExpr(SizeOfPackExpr *E) { void ASTStmtWriter::VisitPackIndexingExpr(PackIndexingExpr *E) { VisitExpr(E); Record.push_back(E->TransformedExpressions); - Record.push_back(E->ExpandedToEmptyPack); + Record.push_back(E->FullySubstituted); Record.AddSourceLocation(E->getEllipsisLoc()); Record.AddSourceLocation(E->getRSquareLoc()); Record.AddStmt(E->getPackIdExpression()); diff --git a/clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLambdaCapturesChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLambdaCapturesChecker.cpp index 3fb763e72e680..599c2179db0f0 100644 --- a/clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLambdaCapturesChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/WebKit/UncountedLambdaCapturesChecker.cpp @@ -51,7 +51,8 @@ class UncountedLambdaCapturesChecker bool TraverseCXXMethodDecl(CXXMethodDecl *CXXMD) override { llvm::SaveAndRestore SavedDecl(ClsType); - ClsType = CXXMD->getThisType(); + if (CXXMD && CXXMD->isInstance()) + ClsType = CXXMD->getThisType(); return DynamicRecursiveASTVisitor::TraverseCXXMethodDecl(CXXMD); } @@ -113,7 +114,7 @@ class UncountedLambdaCapturesChecker if (!DRE) return; auto *MD = dyn_cast_or_null(DRE->getDecl()); - if (!MD || CE->getNumArgs() != 1) + if (!MD || CE->getNumArgs() < 1) return; auto *Arg = CE->getArg(0)->IgnoreParenCasts(); auto *ArgRef = dyn_cast(Arg); diff --git a/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp b/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp index ae11fbbe32b76..168c73df393ff 100644 --- a/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp +++ b/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp @@ -78,6 +78,7 @@ void ModelInjector::onBodySynthesis(const NamedDecl *D) { CompilerInstance Instance(CI.getPCHContainerOperations()); Instance.setInvocation(std::move(Invocation)); Instance.createDiagnostics( + CI.getVirtualFileSystem(), new ForwardingDiagnosticConsumer(CI.getDiagnosticClient()), /*ShouldOwnClient=*/true); diff --git a/clang/lib/Testing/TestAST.cpp b/clang/lib/Testing/TestAST.cpp index fe8b93851613d..f7348aa068c51 100644 --- a/clang/lib/Testing/TestAST.cpp +++ b/clang/lib/Testing/TestAST.cpp @@ -55,7 +55,7 @@ class StoreDiagnostics : public DiagnosticConsumer { // Provides "empty" ASTContext etc if we fail before parsing gets started. void createMissingComponents(CompilerInstance &Clang) { if (!Clang.hasDiagnostics()) - Clang.createDiagnostics(); + Clang.createDiagnostics(*llvm::vfs::getRealFileSystem()); if (!Clang.hasFileManager()) Clang.createFileManager(); if (!Clang.hasSourceManager()) @@ -82,9 +82,24 @@ TestAST::TestAST(const TestInputs &In) { auto RecoverFromEarlyExit = llvm::make_scope_exit([&] { createMissingComponents(*Clang); }); + std::string Filename = In.FileName; + if (Filename.empty()) + Filename = getFilenameForTesting(In.Language).str(); + + // Set up a VFS with only the virtual file visible. + auto VFS = llvm::makeIntrusiveRefCnt(); + if (auto Err = VFS->setCurrentWorkingDirectory(In.WorkingDir)) + ADD_FAILURE() << "Failed to setWD: " << Err.message(); + VFS->addFile(Filename, /*ModificationTime=*/0, + llvm::MemoryBuffer::getMemBufferCopy(In.Code, Filename)); + for (const auto &Extra : In.ExtraFiles) + VFS->addFile( + Extra.getKey(), /*ModificationTime=*/0, + llvm::MemoryBuffer::getMemBufferCopy(Extra.getValue(), Extra.getKey())); + // Extra error conditions are reported through diagnostics, set that up first. bool ErrorOK = In.ErrorOK || llvm::StringRef(In.Code).contains("error-ok"); - Clang->createDiagnostics(new StoreDiagnostics(Diagnostics, !ErrorOK)); + Clang->createDiagnostics(*VFS, new StoreDiagnostics(Diagnostics, !ErrorOK)); // Parse cc1 argv, (typically [-std=c++20 input.cc]) into CompilerInvocation. std::vector Argv; @@ -93,9 +108,6 @@ TestAST::TestAST(const TestInputs &In) { Argv.push_back(S.c_str()); for (const auto &S : In.ExtraArgs) Argv.push_back(S.c_str()); - std::string Filename = In.FileName; - if (Filename.empty()) - Filename = getFilenameForTesting(In.Language).str(); Argv.push_back(Filename.c_str()); Clang->setInvocation(std::make_unique()); if (!CompilerInvocation::CreateFromArgs(Clang->getInvocation(), Argv, @@ -105,16 +117,6 @@ TestAST::TestAST(const TestInputs &In) { } assert(!Clang->getInvocation().getFrontendOpts().DisableFree); - // Set up a VFS with only the virtual file visible. - auto VFS = llvm::makeIntrusiveRefCnt(); - if (auto Err = VFS->setCurrentWorkingDirectory(In.WorkingDir)) - ADD_FAILURE() << "Failed to setWD: " << Err.message(); - VFS->addFile(Filename, /*ModificationTime=*/0, - llvm::MemoryBuffer::getMemBufferCopy(In.Code, Filename)); - for (const auto &Extra : In.ExtraFiles) - VFS->addFile( - Extra.getKey(), /*ModificationTime=*/0, - llvm::MemoryBuffer::getMemBufferCopy(Extra.getValue(), Extra.getKey())); Clang->createFileManager(VFS); // Running the FrontendAction creates the other components: SourceManager, diff --git a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp index fd1b7af0600da..5a648df05e4fd 100644 --- a/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp +++ b/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp @@ -322,7 +322,8 @@ class DependencyScanningAction : public tooling::ToolAction { // Create the compiler's actual diagnostics engine. sanitizeDiagOpts(ScanInstance.getDiagnosticOpts()); - ScanInstance.createDiagnostics(DiagConsumer, /*ShouldOwnClient=*/false); + ScanInstance.createDiagnostics(DriverFileMgr->getVirtualFileSystem(), + DiagConsumer, /*ShouldOwnClient=*/false); if (!ScanInstance.hasDiagnostics()) return false; @@ -650,7 +651,7 @@ bool DependencyScanningWorker::computeDependencies( auto DiagOpts = CreateAndPopulateDiagOpts(FinalCCommandLine); sanitizeDiagOpts(*DiagOpts); IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(DiagOpts.release(), &DC, + CompilerInstance::createDiagnostics(*FinalFS, DiagOpts.release(), &DC, /*ShouldOwnClient=*/false); // Although `Diagnostics` are used only for command-line parsing, the diff --git a/clang/lib/Tooling/Tooling.cpp b/clang/lib/Tooling/Tooling.cpp index ffacf9cf1f782..88b7349ce8fed 100644 --- a/clang/lib/Tooling/Tooling.cpp +++ b/clang/lib/Tooling/Tooling.cpp @@ -387,7 +387,8 @@ bool ToolInvocation::run() { TextDiagnosticPrinter DiagnosticPrinter(llvm::errs(), DiagOpts); IntrusiveRefCntPtr Diagnostics = CompilerInstance::createDiagnostics( - &*DiagOpts, DiagConsumer ? DiagConsumer : &DiagnosticPrinter, false); + Files->getVirtualFileSystem(), &*DiagOpts, + DiagConsumer ? DiagConsumer : &DiagnosticPrinter, false); // Although `Diagnostics` are used only for command-line parsing, the custom // `DiagConsumer` might expect a `SourceManager` to be present. SourceManager SrcMgr(*Diagnostics, *Files); @@ -456,7 +457,8 @@ bool FrontendActionFactory::runInvocation( std::unique_ptr ScopedToolAction(create()); // Create the compiler's actual diagnostics engine. - Compiler.createDiagnostics(DiagConsumer, /*ShouldOwnClient=*/false); + Compiler.createDiagnostics(Files->getVirtualFileSystem(), DiagConsumer, + /*ShouldOwnClient=*/false); if (!Compiler.hasDiagnostics()) return false; @@ -652,7 +654,8 @@ class ASTBuilderAction : public ToolAction { DiagnosticConsumer *DiagConsumer) override { std::unique_ptr AST = ASTUnit::LoadFromCompilerInvocation( Invocation, std::move(PCHContainerOps), - CompilerInstance::createDiagnostics(&Invocation->getDiagnosticOpts(), + CompilerInstance::createDiagnostics(Files->getVirtualFileSystem(), + &Invocation->getDiagnosticOpts(), DiagConsumer, /*ShouldOwnClient=*/false), Files); diff --git a/clang/test/APINotes/Inputs/Headers/Lifetimebound.apinotes b/clang/test/APINotes/Inputs/Headers/Lifetimebound.apinotes index 4bd5fbb42bf04..0cdd855c0a053 100644 --- a/clang/test/APINotes/Inputs/Headers/Lifetimebound.apinotes +++ b/clang/test/APINotes/Inputs/Headers/Lifetimebound.apinotes @@ -12,6 +12,10 @@ Tags: Parameters: - Position: -1 Lifetimebound: true + - Name: annotateThis2 + Parameters: + - Position: -1 + Lifetimebound: true - Name: methodToAnnotate Parameters: - Position: 0 diff --git a/clang/test/APINotes/Inputs/Headers/Lifetimebound.h b/clang/test/APINotes/Inputs/Headers/Lifetimebound.h index be0ed14945008..b8097c202d8dd 100644 --- a/clang/test/APINotes/Inputs/Headers/Lifetimebound.h +++ b/clang/test/APINotes/Inputs/Headers/Lifetimebound.h @@ -3,5 +3,6 @@ int *funcToAnnotate(int *p); struct MyClass { MyClass(int*); int *annotateThis(); + int *annotateThis2() [[clang::lifetimebound]]; int *methodToAnnotate(int *p); }; diff --git a/clang/test/APINotes/lifetimebound.cpp b/clang/test/APINotes/lifetimebound.cpp index 3cdba0136a528..f6fdb8535b181 100644 --- a/clang/test/APINotes/lifetimebound.cpp +++ b/clang/test/APINotes/lifetimebound.cpp @@ -14,3 +14,4 @@ // CHECK-METHOD-NEXT: LifetimeBoundAttr // CHECK-METHOD-THIS: CXXMethodDecl {{.+}} annotateThis 'int *() {{\[\[}}clang::lifetimebound{{\]\]}}' +// CHECK-METHOD-THIS: CXXMethodDecl {{.+}} annotateThis2 'int *() {{\[\[}}clang::lifetimebound{{\]\]}}' diff --git a/clang/test/AST/ByteCode/builtin-bit-cast.cpp b/clang/test/AST/ByteCode/builtin-bit-cast.cpp index 60e8c3a615c5e..0fecde59cd57c 100644 --- a/clang/test/AST/ByteCode/builtin-bit-cast.cpp +++ b/clang/test/AST/ByteCode/builtin-bit-cast.cpp @@ -145,6 +145,28 @@ namespace Fail { // both-note {{initializer of 'a' is not a constant expression}} } +namespace ToPtr { + struct S { + const int *p = nullptr; + }; + struct P { + const int *p; // both-note {{invalid type 'const int *' is a member of 'ToPtr::P'}} + }; + constexpr P p = __builtin_bit_cast(P, S{}); // both-error {{must be initialized by a constant expression}} \ + // both-note {{bit_cast to a pointer type is not allowed in a constant expression}} +} + +namespace Invalid { + struct S { + int a; + }; + constexpr S s = S{1/0}; // both-error {{must be initialized by a constant expression}} \ + // both-note {{division by zero}} \ + // both-note {{declared here}} + constexpr S s2 = __builtin_bit_cast(S, s); // both-error {{must be initialized by a constant expression}} \ + // both-note {{initializer of 's' is not a constant expression}} +} + namespace NullPtr { constexpr nullptr_t N = __builtin_bit_cast(nullptr_t, (intptr_t)1u); static_assert(N == nullptr); diff --git a/clang/test/AST/ByteCode/c23.c b/clang/test/AST/ByteCode/c23.c index f9157e40610cc..5154d57f6cb9e 100644 --- a/clang/test/AST/ByteCode/c23.c +++ b/clang/test/AST/ByteCode/c23.c @@ -1,5 +1,8 @@ // RUN: %clang_cc1 -std=c23 -fexperimental-new-constant-interpreter -verify=expected,both %s // RUN: %clang_cc1 -std=c23 -verify=ref,both %s +// RUN: %clang_cc1 -std=c23 -triple=aarch64_be-linux-gnu -fexperimental-new-constant-interpreter -verify=expected,both %s +// RUN: %clang_cc1 -std=c23 -triple=aarch64_be-linux-gnu -verify=ref,both %s + typedef typeof(nullptr) nullptr_t; @@ -23,5 +26,26 @@ char bar() { return ((struct S *)buffer)->c; } - static_assert((nullptr_t){} == 0); + +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +# define LITTLE_END 1 +#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +# define LITTLE_END 0 +#else +# error "huh?" +#endif + +typedef unsigned char u8x4_t __attribute__((vector_size(4))); +constexpr u8x4_t arg1 = (u8x4_t)0xCAFEBABE; // okay +#if LITTLE_END +static_assert(arg1[0] == 190); +static_assert(arg1[1] == 186); +static_assert(arg1[2] == 254); +static_assert(arg1[3] == 202); +#else +static_assert(arg1[0] == 202); +static_assert(arg1[1] == 254); +static_assert(arg1[2] == 186); +static_assert(arg1[3] == 190); +#endif diff --git a/clang/test/AST/ByteCode/placement-new.cpp b/clang/test/AST/ByteCode/placement-new.cpp index 56f54ff168f3e..7a4fc89a27dac 100644 --- a/clang/test/AST/ByteCode/placement-new.cpp +++ b/clang/test/AST/ByteCode/placement-new.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -std=c++2c -fcxx-exceptions -fexperimental-new-constant-interpreter -verify=expected,both %s +// RUN: %clang_cc1 -std=c++2c -fcxx-exceptions -fexperimental-new-constant-interpreter -verify=expected,both %s -DBYTECODE // RUN: %clang_cc1 -std=c++2c -fcxx-exceptions -verify=ref,both %s namespace std { @@ -338,3 +338,17 @@ namespace PR48606 { } static_assert(f()); } + +#ifdef BYTECODE +constexpr int N = [] // expected-error {{must be initialized by a constant expression}} \ + // expected-note {{assignment to dereferenced one-past-the-end pointer is not allowed in a constant expression}} \ + // expected-note {{in call to}} +{ + struct S { + int a[1]; + }; + S s; + ::new (s.a) int[1][2][3][4](); + return s.a[0]; +}(); +#endif diff --git a/clang/test/AST/HLSL/AppendStructuredBuffer-AST.hlsl b/clang/test/AST/HLSL/AppendStructuredBuffer-AST.hlsl index 8c951e9829211..291a3804ee8e3 100644 --- a/clang/test/AST/HLSL/AppendStructuredBuffer-AST.hlsl +++ b/clang/test/AST/HLSL/AppendStructuredBuffer-AST.hlsl @@ -12,7 +12,7 @@ // instantiated specialization. // EMPTY: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit AppendStructuredBuffer -// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // EMPTY-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class AppendStructuredBuffer // EMPTY-NEXT: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final @@ -26,7 +26,7 @@ AppendStructuredBuffer Buffer; #endif // CHECK: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit AppendStructuredBuffer -// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // CHECK-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class AppendStructuredBuffer definition // CHECK: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final diff --git a/clang/test/AST/HLSL/ConsumeStructuredBuffer-AST.hlsl b/clang/test/AST/HLSL/ConsumeStructuredBuffer-AST.hlsl index 86e3d387883dc..aa09fa78c660f 100644 --- a/clang/test/AST/HLSL/ConsumeStructuredBuffer-AST.hlsl +++ b/clang/test/AST/HLSL/ConsumeStructuredBuffer-AST.hlsl @@ -12,7 +12,7 @@ // instantiated specialization. // EMPTY: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit ConsumeStructuredBuffer -// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // EMPTY-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class ConsumeStructuredBuffer // EMPTY-NEXT: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final @@ -26,7 +26,7 @@ ConsumeStructuredBuffer Buffer; #endif // CHECK: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit ConsumeStructuredBuffer -// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // CHECK-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class ConsumeStructuredBuffer definition // CHECK: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final diff --git a/clang/test/AST/HLSL/RWBuffer-AST.hlsl b/clang/test/AST/HLSL/RWBuffer-AST.hlsl index f2eba75481fd5..4cee0bb4b421a 100644 --- a/clang/test/AST/HLSL/RWBuffer-AST.hlsl +++ b/clang/test/AST/HLSL/RWBuffer-AST.hlsl @@ -11,7 +11,15 @@ // instantiated specialization. // EMPTY: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit RWBuffer -// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type +// EMPTY-NEXT: ConceptSpecializationExpr 0x{{[0-9A-Fa-f]+}} <> 'bool' Concept 0x{{[0-9A-Fa-f]+}} '__is_typed_resource_element_compatible' +// EMPTY-NEXT: ImplicitConceptSpecializationDecl 0x{{[0-9A-Fa-f]+}} <> +// EMPTY-NEXT: TemplateArgument type 'type-parameter-0-0' +// EMPTY-NEXT: TemplateTypeParmType 0x{{[0-9A-Fa-f]+}} 'type-parameter-0-0' dependent depth 0 index 0 +// EMPTY-NEXT: TemplateTypeParm 0x{{[0-9A-Fa-f]+}} '' +// EMPTY-NEXT: TemplateArgument type 'element_type':'type-parameter-0-0' +// EMPTY-NEXT: TemplateTypeParmType 0x{{[0-9A-Fa-f]+}} 'element_type' dependent depth 0 index 0 +// EMPTY-NEXT: TemplateTypeParm 0x{{[0-9A-Fa-f]+}} 'element_type' // EMPTY-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class RWBuffer // EMPTY-NEXT: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final @@ -25,7 +33,15 @@ RWBuffer Buffer; #endif // CHECK: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit RWBuffer -// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type +// CHECK-NEXT: ConceptSpecializationExpr 0x{{[0-9A-Fa-f]+}} <> 'bool' Concept 0x{{[0-9A-Fa-f]+}} '__is_typed_resource_element_compatible' +// CHECK-NEXT: ImplicitConceptSpecializationDecl 0x{{[0-9A-Fa-f]+}} <> +// CHECK-NEXT: TemplateArgument type 'type-parameter-0-0' +// CHECK-NEXT: TemplateTypeParmType 0x{{[0-9A-Fa-f]+}} 'type-parameter-0-0' dependent depth 0 index 0 +// CHECK-NEXT: TemplateTypeParm 0x{{[0-9A-Fa-f]+}} '' +// CHECK-NEXT: TemplateArgument type 'element_type':'type-parameter-0-0' +// CHECK-NEXT: TemplateTypeParmType 0x{{[0-9A-Fa-f]+}} 'element_type' dependent depth 0 index 0 +// CHECK-NEXT: TemplateTypeParm 0x{{[0-9A-Fa-f]+}} 'element_type' // CHECK-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class RWBuffer definition // CHECK: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final diff --git a/clang/test/AST/HLSL/RWStructuredBuffer-AST.hlsl b/clang/test/AST/HLSL/RWStructuredBuffer-AST.hlsl index cc10b41b7c2b0..a1af001e2cad6 100644 --- a/clang/test/AST/HLSL/RWStructuredBuffer-AST.hlsl +++ b/clang/test/AST/HLSL/RWStructuredBuffer-AST.hlsl @@ -12,7 +12,7 @@ // instantiated specialization. // EMPTY: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit RWStructuredBuffer -// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // EMPTY-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class RWStructuredBuffer // EMPTY-NEXT: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final @@ -26,7 +26,7 @@ RWStructuredBuffer Buffer; #endif // CHECK: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit RWStructuredBuffer -// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // CHECK-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class RWStructuredBuffer definition // CHECK: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final @@ -52,6 +52,32 @@ RWStructuredBuffer Buffer; // CHECK-NEXT: CXXThisExpr 0x{{[0-9A-Fa-f]+}} <> 'RWStructuredBuffer' lvalue implicit this // CHECK-NEXT: AlwaysInlineAttr 0x{{[0-9A-Fa-f]+}} <> Implicit always_inline +// CHECK-NEXT: CXXMethodDecl 0x{{[0-9A-Fa-f]+}} <> IncrementCounter 'unsigned int ()' +// CHECK-NEXT: CompoundStmt 0x{{[0-9A-Fa-f]+}} <> +// CHECK-NEXT: ReturnStmt 0x{{[0-9A-Fa-f]+}} <> +// CHECK-NEXT: CallExpr 0x{{[0-9A-Fa-f]+}} <> 'unsigned int' +// CHECK-NEXT: DeclRefExpr 0x{{[0-9A-Fa-f]+}} <> 'unsigned int (...) noexcept' Function 0x{{[0-9A-Fa-f]+}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' +// CHECK-NEXT: MemberExpr 0x{{[0-9A-Fa-f]+}} <> '__hlsl_resource_t +// CHECK-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] +// CHECK-SAME{LITERAL}: [[hlsl::raw_buffer]] +// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]' lvalue .__handle +// CHECK-NEXT: CXXThisExpr 0x{{[0-9A-Fa-f]+}} <> 'RWStructuredBuffer' lvalue implicit this +// CHECK-NEXT: IntegerLiteral 0x{{[0-9A-Fa-f]+}} <> 'int' 1 +// CHECK-NEXT: AlwaysInlineAttr 0x{{[0-9A-Fa-f]+}} <> Implicit always_inline + +// CHECK-NEXT: CXXMethodDecl 0x{{[0-9A-Fa-f]+}} <> DecrementCounter 'unsigned int ()' +// CHECK-NEXT: CompoundStmt 0x{{[0-9A-Fa-f]+}} <> +// CHECK-NEXT: ReturnStmt 0x{{[0-9A-Fa-f]+}} <> +// CHECK-NEXT: CallExpr 0x{{[0-9A-Fa-f]+}} <> 'unsigned int' +// CHECK-NEXT: DeclRefExpr 0x{{[0-9A-Fa-f]+}} <> 'unsigned int (...) noexcept' Function 0x{{[0-9A-Fa-f]+}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' +// CHECK-NEXT: MemberExpr 0x{{[0-9A-Fa-f]+}} <> '__hlsl_resource_t +// CHECK-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] +// CHECK-SAME{LITERAL}: [[hlsl::raw_buffer]] +// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]' lvalue .__handle +// CHECK-NEXT: CXXThisExpr 0x{{[0-9A-Fa-f]+}} <> 'RWStructuredBuffer' lvalue implicit this +// CHECK-NEXT: IntegerLiteral 0x{{[0-9A-Fa-f]+}} <> 'int' -1 +// CHECK-NEXT: AlwaysInlineAttr 0x{{[0-9A-Fa-f]+}} <> Implicit always_inline + // CHECK: ClassTemplateSpecializationDecl 0x{{[0-9A-Fa-f]+}} <> class RWStructuredBuffer definition // CHECK: TemplateArgument type 'int' diff --git a/clang/test/AST/HLSL/RasterizerOrderedStructuredBuffer-AST.hlsl b/clang/test/AST/HLSL/RasterizerOrderedStructuredBuffer-AST.hlsl index 1aac67b5ced5b..3a808710e16f3 100644 --- a/clang/test/AST/HLSL/RasterizerOrderedStructuredBuffer-AST.hlsl +++ b/clang/test/AST/HLSL/RasterizerOrderedStructuredBuffer-AST.hlsl @@ -12,7 +12,7 @@ // instantiated specialization. // EMPTY: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit RasterizerOrderedStructuredBuffer -// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // EMPTY-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class RasterizerOrderedStructuredBuffer // EMPTY-NEXT: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final @@ -26,7 +26,7 @@ RasterizerOrderedStructuredBuffer Buffer; #endif // CHECK: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit RasterizerOrderedStructuredBuffer -// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // CHECK-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class RasterizerOrderedStructuredBuffer definition // CHECK: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final diff --git a/clang/test/AST/HLSL/StructuredBuffer-AST.hlsl b/clang/test/AST/HLSL/StructuredBuffer-AST.hlsl index 95ae20ead32bf..60f2f403f84c7 100644 --- a/clang/test/AST/HLSL/StructuredBuffer-AST.hlsl +++ b/clang/test/AST/HLSL/StructuredBuffer-AST.hlsl @@ -12,7 +12,7 @@ // instantiated specialization. // EMPTY: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit StructuredBuffer -// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// EMPTY-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // EMPTY-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class StructuredBuffer // EMPTY-NEXT: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final @@ -26,7 +26,7 @@ StructuredBuffer Buffer; #endif // CHECK: ClassTemplateDecl 0x{{[0-9A-Fa-f]+}} <> implicit StructuredBuffer -// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> class depth 0 index 0 element_type +// CHECK-NEXT: TemplateTypeParmDecl 0x{{[0-9A-Fa-f]+}} <> typename depth 0 index 0 element_type // CHECK-NEXT: CXXRecordDecl 0x{{[0-9A-Fa-f]+}} <> implicit class StructuredBuffer definition // CHECK: FinalAttr 0x{{[0-9A-Fa-f]+}} <> Implicit final diff --git a/clang/test/AST/HLSL/is_typed_resource_element_compatible_concept.hlsl b/clang/test/AST/HLSL/is_typed_resource_element_compatible_concept.hlsl new file mode 100644 index 0000000000000..68aa3a32e7d11 --- /dev/null +++ b/clang/test/AST/HLSL/is_typed_resource_element_compatible_concept.hlsl @@ -0,0 +1,9 @@ +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump -ast-dump-filter=__is_typed_resource_element_compatible %s | FileCheck %s + +// CHECK: ConceptDecl 0x{{[0-9a-f]+}} <> __is_typed_resource_element_compatible +// CHECK: |-TemplateTypeParmDecl 0x{{[0-9a-f]+}} <> referenced typename depth 0 index 0 element_type +// CHECK: `-TypeTraitExpr 0x{{[0-9a-f]+}} <> 'bool' __builtin_hlsl_is_typed_resource_element_compatible +// CHECK: `-TemplateTypeParmType 0x{{[0-9a-f]+}} 'element_type' dependent depth 0 index 0 +// CHECK: `-TemplateTypeParm 0x{{[0-9a-f]+}} 'element_type' + +RWBuffer Buffer; diff --git a/clang/test/AST/ast-dump-recovery.cpp b/clang/test/AST/ast-dump-recovery.cpp index a88dff471d9f0..4388462224026 100644 --- a/clang/test/AST/ast-dump-recovery.cpp +++ b/clang/test/AST/ast-dump-recovery.cpp @@ -9,7 +9,7 @@ int some_func(int *); // CHECK-NEXT: `-IntegerLiteral {{.*}} 123 // DISABLED-NOT: -RecoveryExpr {{.*}} contains-errors int invalid_call = some_func(123); -void test_invalid_call(int s) { +void test_invalid_call_1(int s) { // CHECK: CallExpr {{.*}} '' contains-errors // CHECK-NEXT: |-UnresolvedLookupExpr {{.*}} 'some_func' // CHECK-NEXT: |-RecoveryExpr {{.*}} @@ -32,6 +32,26 @@ void test_invalid_call(int s) { int var = some_func(undef1); } +int some_func2(int a, int b); +void test_invalid_call_2() { + // CHECK: -RecoveryExpr {{.*}} 'int' contains-errors + // CHECK-NEXT: `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'some_func2' + some_func2(,); + + // CHECK: -RecoveryExpr {{.*}} 'int' contains-errors + // CHECK-NEXT: `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'some_func2' + some_func2(,,); + + // CHECK: `-RecoveryExpr {{.*}} 'int' contains-errors + // CHECK-NEXT: |-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'some_func2' + // CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 1 + some_func2(1,); + + // FIXME: Handle invalid argument with recovery + // CHECK-NOT: `-RecoveryExpr + some_func2(,1); +} + int ambig_func(double); int ambig_func(float); diff --git a/clang/test/AST/attr-lifetime-capture-by.cpp b/clang/test/AST/attr-lifetime-capture-by.cpp index da2eb0cf3d592..c3afe267301ad 100644 --- a/clang/test/AST/attr-lifetime-capture-by.cpp +++ b/clang/test/AST/attr-lifetime-capture-by.cpp @@ -7,3 +7,109 @@ struct S { }; // CHECK: CXXMethodDecl {{.*}}clang::lifetime_capture_by(a, b, global) + +// **************************************************************************** +// Infer annotation for STL container methods. +// **************************************************************************** +namespace __gnu_cxx { +template +struct basic_iterator {}; +} + +namespace std { +template class allocator {}; +template > +struct vector { + typedef __gnu_cxx::basic_iterator iterator; + iterator begin(); + + vector(); + + void push_back(const T&); + void push_back(T&&); + + void insert(iterator, T&&); +}; +} // namespace std + +// CHECK-NOT: LifetimeCaptureByAttr + +struct [[gsl::Pointer()]] View {}; +std::vector views; +// CHECK: ClassTemplateSpecializationDecl {{.*}} struct vector definition implicit_instantiation +// CHECK: TemplateArgument type 'View' +// CHECK-NOT: LifetimeCaptureByAttr + +// CHECK: CXXMethodDecl {{.*}} push_back 'void (const View &)' +// CHECK: ParmVarDecl {{.*}} 'const View &' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK-NOT: LifetimeCaptureByAttr + +// CHECK: CXXMethodDecl {{.*}} push_back 'void (View &&)' +// CHECK: ParmVarDecl {{.*}} 'View &&' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit + +// CHECK: CXXMethodDecl {{.*}} insert 'void (iterator, View &&)' +// CHECK: ParmVarDecl {{.*}} 'iterator' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK: ParmVarDecl {{.*}} 'View &&' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK-NOT: LifetimeCaptureByAttr + +template struct [[gsl::Pointer()]] ViewTemplate {}; +std::vector> templated_views; +// CHECK: ClassTemplateSpecializationDecl {{.*}} struct vector definition implicit_instantiation +// CHECK: TemplateArgument type 'ViewTemplate' +// CHECK-NOT: LifetimeCaptureByAttr + +// CHECK: CXXMethodDecl {{.*}} push_back 'void (const ViewTemplate &)' +// CHECK: ParmVarDecl {{.*}} 'const ViewTemplate &' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK-NOT: LifetimeCaptureByAttr + +// CHECK: CXXMethodDecl {{.*}} push_back 'void (ViewTemplate &&)' +// CHECK: ParmVarDecl {{.*}} 'ViewTemplate &&' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit + +// CHECK: CXXMethodDecl {{.*}} insert 'void (iterator, ViewTemplate &&)' +// CHECK: ParmVarDecl {{.*}} 'iterator' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK: ParmVarDecl {{.*}} 'ViewTemplate &&' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK-NOT: LifetimeCaptureByAttr + +std::vector pointers; +// CHECK: ClassTemplateSpecializationDecl {{.*}} struct vector definition implicit_instantiation +// CHECK: TemplateArgument type 'int *' +// CHECK-NOT: LifetimeCaptureByAttr + +// CHECK: CXXMethodDecl {{.*}} push_back 'void (int *const &)' +// CHECK: ParmVarDecl {{.*}} 'int *const &' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK-NOT: LifetimeCaptureByAttr + +// CHECK: CXXMethodDecl {{.*}} push_back 'void (int *&&)' +// CHECK: ParmVarDecl {{.*}} 'int *&&' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit + +// CHECK: CXXMethodDecl {{.*}} insert 'void (iterator, int *&&)' +// CHECK: ParmVarDecl {{.*}} 'iterator' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK: ParmVarDecl {{.*}} 'int *&&' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK-NOT: LifetimeCaptureByAttr + +std::vector ints; +// CHECK: ClassTemplateSpecializationDecl {{.*}} struct vector definition implicit_instantiation +// CHECK: TemplateArgument type 'int' + +// CHECK: CXXMethodDecl {{.*}} push_back 'void (const int &)' +// CHECK-NOT: LifetimeCaptureByAttr + +// CHECK: CXXMethodDecl {{.*}} push_back 'void (int &&)' +// CHECK-NOT: LifetimeCaptureByAttr + +// CHECK: CXXMethodDecl {{.*}} insert 'void (iterator, int &&)' +// CHECK: ParmVarDecl {{.*}} 'iterator' +// CHECK: LifetimeCaptureByAttr {{.*}} Implicit +// CHECK-NOT: LifetimeCaptureByAttr diff --git a/clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp b/clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp index 9bfcdea04755d..65eee9d49106d 100644 --- a/clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp +++ b/clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures.cpp @@ -1,5 +1,9 @@ // RUN: %clang_analyze_cc1 -analyzer-checker=webkit.UncountedLambdaCapturesChecker -verify %s +struct A { + static void b(); +}; + struct RefCountable { void ref() {} void deref() {} @@ -121,7 +125,7 @@ void noescape_lambda() { } void lambda_capture_param(RefCountable* obj) { - auto someLambda = [&] { + auto someLambda = [&]() { obj->method(); }; someLambda(); @@ -174,3 +178,10 @@ void trivial_lambda() { }; trivial_lambda(); } + +void lambda_with_args(RefCountable* obj) { + auto trivial_lambda = [&](int v) { + obj->method(); + }; + trivial_lambda(1); +} diff --git a/clang/test/C/C23/n2412.c b/clang/test/C/C23/n2412.c new file mode 100644 index 0000000000000..7d4f32ae68a73 --- /dev/null +++ b/clang/test/C/C23/n2412.c @@ -0,0 +1,27 @@ +// RUN: %clang_cc1 -verify -std=c23 -ffreestanding %s + +/* WG14 N2412: Clang 14 + * Two's complement sign representation + */ +// expected-no-diagnostics + +#include + +// GH117348 -- BOOL_WIDTH was accidentally expanding to the number of bits in +// the object representation (8) rather than the number of bits in the value +// representation (1). +static_assert(BOOL_WIDTH == 1); + +// Validate the other macro requirements. +static_assert(CHAR_WIDTH == SCHAR_WIDTH); +static_assert(CHAR_WIDTH == UCHAR_WIDTH); +static_assert(CHAR_WIDTH == CHAR_BIT); + +static_assert(USHRT_WIDTH >= 16); +static_assert(UINT_WIDTH >= 16); +static_assert(ULONG_WIDTH >= 32); +static_assert(ULLONG_WIDTH >= 64); +static_assert(BITINT_MAXWIDTH >= ULLONG_WIDTH); + +static_assert(MB_LEN_MAX >= 1); + diff --git a/clang/test/CXX/class.access/class.friend/p11.cpp b/clang/test/CXX/class.access/class.friend/p11.cpp index 71f11bdf9e073..bc2bc073f51a7 100644 --- a/clang/test/CXX/class.access/class.friend/p11.cpp +++ b/clang/test/CXX/class.access/class.friend/p11.cpp @@ -12,7 +12,7 @@ namespace test0 { namespace test1 { void foo() { class A { - friend void bar(); // expected-error {{no matching function found in local scope}} + friend void bar(); // expected-error {{cannot define friend function in a local class definition}} }; } } @@ -22,7 +22,7 @@ namespace test2 { void foo() { // expected-note 2{{'::test2::foo' declared here}} struct S1 { - friend void foo(); // expected-error {{no matching function 'foo' found in local scope; did you mean '::test2::foo'?}} + friend void foo(); // expected-error {{cannot define friend function 'foo' in a local class definition; did you mean '::test2::foo'?}} }; void foo(); // expected-note {{local declaration nearly matches}} @@ -32,24 +32,24 @@ namespace test2 { { struct S2 { - friend void foo(); // expected-error {{no matching function found in local scope}} + friend void foo(); // expected-error {{cannot define friend function in a local class definition}} }; } { int foo; struct S3 { - friend void foo(); // expected-error {{no matching function 'foo' found in local scope; did you mean '::test2::foo'?}} + friend void foo(); // expected-error {{cannot define friend function 'foo' in a local class definition; did you mean '::test2::foo'?}} }; } struct S4 { - friend void bar(); // expected-error {{no matching function 'bar' found in local scope; did you mean '::test2::bar'?}} + friend void bar(); // expected-error {{cannot define friend function 'bar' in a local class definition; did you mean '::test2::bar'?}} }; { void bar(); } struct S5 { - friend void bar(); // expected-error {{no matching function 'bar' found in local scope; did you mean '::test2::bar'?}} + friend void bar(); // expected-error {{cannot define friend function 'bar' in a local class definition; did you mean '::test2::bar'?}} }; { @@ -76,7 +76,7 @@ namespace test2 { struct S9 { struct Inner { - friend void baz(); // expected-error {{no matching function 'baz' found in local scope; did you mean 'bar'?}} + friend void baz(); // expected-error {{cannot define friend function 'baz' in a local class definition; did you mean 'bar'?}} }; }; @@ -84,8 +84,8 @@ namespace test2 { void quux() {} void foo() { struct Inner1 { - friend void bar(); // expected-error {{no matching function 'bar' found in local scope; did you mean '::test2::bar'?}} - friend void quux(); // expected-error {{no matching function found in local scope}} + friend void bar(); // expected-error {{cannot define friend function 'bar' in a local class definition; did you mean '::test2::bar'?}} + friend void quux(); // expected-error {{cannot define friend function in a local class definition}} }; void bar(); diff --git a/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.noreturn/p1.cpp b/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.noreturn/p1.cpp index 56920ea8e8cf2..afcb133e48a1a 100644 --- a/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.noreturn/p1.cpp +++ b/clang/test/CXX/dcl.dcl/dcl.attr/dcl.attr.noreturn/p1.cpp @@ -49,3 +49,20 @@ void check() { test_type(g); test_type(h); // expected-note {{instantiation}} } + +namespace GH63009 { +struct S1 { + [[noreturn]] S1() { throw int {}; } +}; +struct S2 { + [[noreturn]] ~S2() { throw int {}; } +}; + +int test_no_return_constructor() { S1(); } // ok +int test_no_return_destructor() { S2(); } // ok + +int main() { + test_no_return_constructor(); + test_no_return_destructor(); +} +} diff --git a/clang/test/CXX/drs/cwg158.cpp b/clang/test/CXX/drs/cwg158.cpp index 9301c790297e9..2a74438264777 100644 --- a/clang/test/CXX/drs/cwg158.cpp +++ b/clang/test/CXX/drs/cwg158.cpp @@ -1,12 +1,14 @@ -// RUN: %clang_cc1 -triple x86_64-linux -std=c++98 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck %s -// RUN: %clang_cc1 -triple x86_64-linux -std=c++11 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck %s -// RUN: %clang_cc1 -triple x86_64-linux -std=c++14 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck %s -// RUN: %clang_cc1 -triple x86_64-linux -std=c++1z %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-linux -std=c++98 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck --check-prefixes=CHECK %s +// RUN: %clang_cc1 -triple x86_64-linux -std=c++11 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck --check-prefixes=CHECK %s +// RUN: %clang_cc1 -triple x86_64-linux -std=c++14 %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck --check-prefixes=CHECK %s +// RUN: %clang_cc1 -triple x86_64-linux -std=c++1z %s -O3 -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck --check-prefixes=CHECK %s +// RUN: %clang_cc1 -triple x86_64-linux -std=c++1z %s -O3 -pointer-tbaa -disable-llvm-passes -pedantic-errors -emit-llvm -o - | FileCheck --check-prefixes=CHECK,POINTER-TBAA %s // cwg158: yes // CHECK-LABEL: define {{.*}} @_Z1f const int *f(const int * const *p, int **q) { + // CHECK: load ptr, ptr %p.addr // CHECK: load ptr, {{.*}}, !tbaa ![[INTPTR_TBAA:[^,]*]] const int *x = *p; // CHECK: store ptr null, {{.*}}, !tbaa ![[INTPTR_TBAA]] @@ -18,6 +20,7 @@ struct A {}; // CHECK-LABEL: define {{.*}} @_Z1g const int *(A::*const *g(const int *(A::* const **p)[3], int *(A::***q)[3]))[3] { + // CHECK: load ptr, ptr %p.addr // CHECK: load ptr, {{.*}}, !tbaa ![[MEMPTR_TBAA:[^,]*]] const int *(A::*const *x)[3] = *p; // CHECK: store ptr null, {{.*}}, !tbaa ![[MEMPTR_TBAA]] @@ -25,3 +28,16 @@ const int *(A::*const *g(const int *(A::* const **p)[3], int *(A::***q)[3]))[3] return x; } +// CHECK-LABEL: define {{.*}} @_Z1h +const int * h(const int * (*p)[10], int *(*q)[9]) { + // CHECK: load ptr, ptr %p.addr, align 8, !tbaa [[PTRARRAY_TBAA:!.+]] + const int * x = *p[0]; + + // CHECK: load ptr, ptr %q.addr, align 8, !tbaa [[PTRARRAY_TBAA]] + *q[0] = 0; + return x; +} + +// POINTER-TBAA: [[PTRARRAY_TBAA]] = !{[[PTRARRAY_TY:!.+]], [[PTRARRAY_TY]], i64 0} +// POINTER-TBAA: [[PTRARRAY_TY]] = !{!"p2 int", [[ANYPTR:!.+]], i64 0} +// POINTER-TBAA: [[ANYPTR]] = !{!"any pointer" diff --git a/clang/test/CXX/expr/expr.const/p2-0x.cpp b/clang/test/CXX/expr/expr.const/p2-0x.cpp index 767eee1c74f05..67160ba571f33 100644 --- a/clang/test/CXX/expr/expr.const/p2-0x.cpp +++ b/clang/test/CXX/expr/expr.const/p2-0x.cpp @@ -188,7 +188,7 @@ namespace UndefinedBehavior { namespace Ptr { struct A {}; - struct B : A { int n; }; + struct B : A { int n; int m; }; B a[3][3]; constexpr B *p = a[0] + 4; // expected-error {{constant expression}} expected-note {{element 4 of array of 3 elements}} B b = {}; @@ -204,6 +204,7 @@ namespace UndefinedBehavior { static_assert((A*)nb == 0, ""); static_assert((B*)na == 0, ""); constexpr const int &nf = nb->n; // expected-error {{constant expression}} expected-note {{cannot access field of null pointer}} + constexpr const int &mf = nb->m; // expected-error {{constant expression}} expected-note {{cannot access field of null pointer}} constexpr const int *np1 = (int*)nullptr + 0; // ok constexpr const int *np2 = &(*(int(*)[4])nullptr)[0]; // ok constexpr const int *np3 = &(*(int(*)[4])nullptr)[2]; // expected-error {{constant expression}} expected-note {{cannot perform pointer arithmetic on null pointer}} diff --git a/clang/test/CodeGen/AArch64/pure-scalable-args.c b/clang/test/CodeGen/AArch64/pure-scalable-args.c index 53d5ce4e8c9d9..5c74447100aa8 100644 --- a/clang/test/CodeGen/AArch64/pure-scalable-args.c +++ b/clang/test/CodeGen/AArch64/pure-scalable-args.c @@ -292,7 +292,7 @@ PST test_return(PST *p) { return *p; } // CHECK-AAPCS: define dso_local <{ , , , , , }> @test_return(ptr -// CHECK-DARWIN: define void @test_return(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.PST) align 16 %agg.result, ptr nocapture noundef readonly %p) +// CHECK-DARWIN: define void @test_return(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.PST) align 16 initializes((0, 96)) %agg.result, ptr nocapture noundef readonly %p) // Corner case of 1-element aggregate // p->x -> q0 @@ -308,8 +308,8 @@ SmallPST test_return_small_pst(SmallPST *p) { BigPST test_return_big_pst(BigPST *p) { return *p; } -// CHECK-AAPCS: define dso_local void @test_return_big_pst(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.BigPST) align 16 %agg.result, ptr nocapture noundef readonly %p) -// CHECK-DARWIN: define void @test_return_big_pst(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.BigPST) align 16 %agg.result, ptr nocapture noundef readonly %p) +// CHECK-AAPCS: define dso_local void @test_return_big_pst(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.BigPST) align 16 initializes((0, 176)) %agg.result, ptr nocapture noundef readonly %p) +// CHECK-DARWIN: define void @test_return_big_pst(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.BigPST) align 16 initializes((0, 176)) %agg.result, ptr nocapture noundef readonly %p) // Variadic arguments are unnamed, PST passed indirectly. // (Passing SVE types to a variadic function currently unsupported by diff --git a/clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.c b/clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.c index 55e1ed393d848..54e90223a31de 100644 --- a/clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.c +++ b/clang/test/CodeGen/AArch64/sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.c @@ -59,7 +59,7 @@ typedef int8_t vec_int8 __attribute__((vector_size(N / 8))); // CHECK128-NEXT: ret <16 x i8> [[CASTFIXEDSVE]] // CHECK-LABEL: define{{.*}} void @f2( -// CHECK-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret(<[[#div(VBITS,8)]] x i8>) align 16 %agg.result, ptr nocapture noundef readonly %0) +// CHECK-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret(<[[#div(VBITS,8)]] x i8>) align 16 initializes((0, [[#div(VBITS,8)]])) %agg.result, ptr nocapture noundef readonly %0) // CHECK-NEXT: entry: // CHECK-NEXT: [[X:%.*]] = load <[[#div(VBITS,8)]] x i8>, ptr [[TMP0:%.*]], align 16, [[TBAA6:!tbaa !.*]] // CHECK-NEXT: [[TMP1:%.*]] = tail call @llvm.aarch64.sve.ptrue.nxv16i1(i32 31) diff --git a/clang/test/CodeGen/AArch64/sve-vector-bitwise-ops.c b/clang/test/CodeGen/AArch64/sve-vector-bitwise-ops.c index 5b97ce44e8736..291d72de42c06 100644 --- a/clang/test/CodeGen/AArch64/sve-vector-bitwise-ops.c +++ b/clang/test/CodeGen/AArch64/sve-vector-bitwise-ops.c @@ -260,8 +260,8 @@ svuint64_t xor_u64(svuint64_t a, svuint64_t b) { // CHECK-LABEL: @neg_bool( // CHECK-NEXT: entry: -// CHECK-NEXT: [[NEG:%.*]] = xor [[A:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) -// CHECK-NEXT: ret [[NEG]] +// CHECK-NEXT: [[NOT:%.*]] = xor [[A:%.*]], splat (i1 true) +// CHECK-NEXT: ret [[NOT]] // svbool_t neg_bool(svbool_t a) { return ~a; @@ -269,8 +269,8 @@ svbool_t neg_bool(svbool_t a) { // CHECK-LABEL: @neg_i8( // CHECK-NEXT: entry: -// CHECK-NEXT: [[NEG:%.*]] = xor [[A:%.*]], shufflevector ( insertelement ( poison, i8 -1, i64 0), poison, zeroinitializer) -// CHECK-NEXT: ret [[NEG]] +// CHECK-NEXT: [[NOT:%.*]] = xor [[A:%.*]], splat (i8 -1) +// CHECK-NEXT: ret [[NOT]] // svint8_t neg_i8(svint8_t a) { return ~a; @@ -278,8 +278,8 @@ svint8_t neg_i8(svint8_t a) { // CHECK-LABEL: @neg_i16( // CHECK-NEXT: entry: -// CHECK-NEXT: [[NEG:%.*]] = xor [[A:%.*]], shufflevector ( insertelement ( poison, i16 -1, i64 0), poison, zeroinitializer) -// CHECK-NEXT: ret [[NEG]] +// CHECK-NEXT: [[NOT:%.*]] = xor [[A:%.*]], splat (i16 -1) +// CHECK-NEXT: ret [[NOT]] // svint16_t neg_i16(svint16_t a) { return ~a; @@ -287,8 +287,8 @@ svint16_t neg_i16(svint16_t a) { // CHECK-LABEL: @neg_i32( // CHECK-NEXT: entry: -// CHECK-NEXT: [[NEG:%.*]] = xor [[A:%.*]], shufflevector ( insertelement ( poison, i32 -1, i64 0), poison, zeroinitializer) -// CHECK-NEXT: ret [[NEG]] +// CHECK-NEXT: [[NOT:%.*]] = xor [[A:%.*]], splat (i32 -1) +// CHECK-NEXT: ret [[NOT]] // svint32_t neg_i32(svint32_t a) { return ~a; @@ -296,8 +296,8 @@ svint32_t neg_i32(svint32_t a) { // CHECK-LABEL: @neg_i64( // CHECK-NEXT: entry: -// CHECK-NEXT: [[NEG:%.*]] = xor [[A:%.*]], shufflevector ( insertelement ( poison, i64 -1, i64 0), poison, zeroinitializer) -// CHECK-NEXT: ret [[NEG]] +// CHECK-NEXT: [[NOT:%.*]] = xor [[A:%.*]], splat (i64 -1) +// CHECK-NEXT: ret [[NOT]] // svint64_t neg_i64(svint64_t a) { return ~a; @@ -305,8 +305,8 @@ svint64_t neg_i64(svint64_t a) { // CHECK-LABEL: @neg_u8( // CHECK-NEXT: entry: -// CHECK-NEXT: [[NEG:%.*]] = xor [[A:%.*]], shufflevector ( insertelement ( poison, i8 -1, i64 0), poison, zeroinitializer) -// CHECK-NEXT: ret [[NEG]] +// CHECK-NEXT: [[NOT:%.*]] = xor [[A:%.*]], splat (i8 -1) +// CHECK-NEXT: ret [[NOT]] // svuint8_t neg_u8(svuint8_t a) { return ~a; @@ -314,8 +314,8 @@ svuint8_t neg_u8(svuint8_t a) { // CHECK-LABEL: @neg_u16( // CHECK-NEXT: entry: -// CHECK-NEXT: [[NEG:%.*]] = xor [[A:%.*]], shufflevector ( insertelement ( poison, i16 -1, i64 0), poison, zeroinitializer) -// CHECK-NEXT: ret [[NEG]] +// CHECK-NEXT: [[NOT:%.*]] = xor [[A:%.*]], splat (i16 -1) +// CHECK-NEXT: ret [[NOT]] // svuint16_t neg_u16(svuint16_t a) { return ~a; @@ -323,8 +323,8 @@ svuint16_t neg_u16(svuint16_t a) { // CHECK-LABEL: @neg_u32( // CHECK-NEXT: entry: -// CHECK-NEXT: [[NEG:%.*]] = xor [[A:%.*]], shufflevector ( insertelement ( poison, i32 -1, i64 0), poison, zeroinitializer) -// CHECK-NEXT: ret [[NEG]] +// CHECK-NEXT: [[NOT:%.*]] = xor [[A:%.*]], splat (i32 -1) +// CHECK-NEXT: ret [[NOT]] // svuint32_t neg_u32(svuint32_t a) { return ~a; @@ -332,8 +332,8 @@ svuint32_t neg_u32(svuint32_t a) { // CHECK-LABEL: @neg_u64( // CHECK-NEXT: entry: -// CHECK-NEXT: [[NEG:%.*]] = xor [[A:%.*]], shufflevector ( insertelement ( poison, i64 -1, i64 0), poison, zeroinitializer) -// CHECK-NEXT: ret [[NEG]] +// CHECK-NEXT: [[NOT:%.*]] = xor [[A:%.*]], splat (i64 -1) +// CHECK-NEXT: ret [[NOT]] // svuint64_t neg_u64(svuint64_t a) { return ~a; diff --git a/clang/test/CodeGen/RISCV/builtin-cpu-is-error.c b/clang/test/CodeGen/RISCV/builtin-cpu-is-error.c new file mode 100644 index 0000000000000..ce5e1420f7f45 --- /dev/null +++ b/clang/test/CodeGen/RISCV/builtin-cpu-is-error.c @@ -0,0 +1,7 @@ +// RUN: not %clang_cc1 -triple riscv64-unknown-linux-gnu -emit-llvm %s -o - 2>&1 \ +// RUN: | FileCheck %s + +// CHECK: error: invalid cpu name for builtin +int test_cpu_is_invalid_cpu() { + return __builtin_cpu_is("generic-rv64"); +} diff --git a/clang/test/CodeGen/RISCV/builtin-cpu-is.c b/clang/test/CodeGen/RISCV/builtin-cpu-is.c new file mode 100644 index 0000000000000..3cb3558a751ae --- /dev/null +++ b/clang/test/CodeGen/RISCV/builtin-cpu-is.c @@ -0,0 +1,39 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 5 +// RUN: %clang_cc1 -triple riscv64-unknown-linux-gnu -disable-O0-optnone -emit-llvm %s -o - \ +// RUN: | opt -S -passes=mem2reg | FileCheck %s --check-prefix=CHECK-RV64 + +// CHECK-RV64-LABEL: define dso_local signext i32 @test_cpu_is_veyron_v1( +// CHECK-RV64-SAME: ) #[[ATTR0:[0-9]+]] { +// CHECK-RV64-NEXT: [[ENTRY:.*:]] +// CHECK-RV64-NEXT: [[TMP0:%.*]] = load i32, ptr @__riscv_cpu_model, align 4 +// CHECK-RV64-NEXT: [[TMP1:%.*]] = icmp eq i32 [[TMP0]], 1567 +// CHECK-RV64-NEXT: [[TMP2:%.*]] = load i64, ptr getelementptr inbounds nuw ({ i32, i64, i64 }, ptr @__riscv_cpu_model, i32 0, i32 1), align 8 +// CHECK-RV64-NEXT: [[TMP3:%.*]] = icmp eq i64 [[TMP2]], -9223372036854710272 +// CHECK-RV64-NEXT: [[TMP4:%.*]] = and i1 [[TMP1]], [[TMP3]] +// CHECK-RV64-NEXT: [[TMP5:%.*]] = load i64, ptr getelementptr inbounds nuw ({ i32, i64, i64 }, ptr @__riscv_cpu_model, i32 0, i32 2), align 8 +// CHECK-RV64-NEXT: [[TMP6:%.*]] = icmp eq i64 [[TMP5]], 273 +// CHECK-RV64-NEXT: [[TMP7:%.*]] = and i1 [[TMP4]], [[TMP6]] +// CHECK-RV64-NEXT: [[CONV:%.*]] = zext i1 [[TMP7]] to i32 +// CHECK-RV64-NEXT: ret i32 [[CONV]] +// +int test_cpu_is_veyron_v1() { + return __builtin_cpu_is("veyron-v1"); +} + +// CHECK-RV64-LABEL: define dso_local signext i32 @test_cpu_is_spacemit_x60( +// CHECK-RV64-SAME: ) #[[ATTR0]] { +// CHECK-RV64-NEXT: [[ENTRY:.*:]] +// CHECK-RV64-NEXT: [[TMP0:%.*]] = load i32, ptr @__riscv_cpu_model, align 4 +// CHECK-RV64-NEXT: [[TMP1:%.*]] = icmp eq i32 [[TMP0]], 1808 +// CHECK-RV64-NEXT: [[TMP2:%.*]] = load i64, ptr getelementptr inbounds nuw ({ i32, i64, i64 }, ptr @__riscv_cpu_model, i32 0, i32 1), align 8 +// CHECK-RV64-NEXT: [[TMP3:%.*]] = icmp eq i64 [[TMP2]], -9223372035378380799 +// CHECK-RV64-NEXT: [[TMP4:%.*]] = and i1 [[TMP1]], [[TMP3]] +// CHECK-RV64-NEXT: [[TMP5:%.*]] = load i64, ptr getelementptr inbounds nuw ({ i32, i64, i64 }, ptr @__riscv_cpu_model, i32 0, i32 2), align 8 +// CHECK-RV64-NEXT: [[TMP6:%.*]] = icmp eq i64 [[TMP5]], 1152921505839391232 +// CHECK-RV64-NEXT: [[TMP7:%.*]] = and i1 [[TMP4]], [[TMP6]] +// CHECK-RV64-NEXT: [[CONV:%.*]] = zext i1 [[TMP7]] to i32 +// CHECK-RV64-NEXT: ret i32 [[CONV]] +// +int test_cpu_is_spacemit_x60() { + return __builtin_cpu_is("spacemit-x60"); +} diff --git a/clang/test/CodeGen/RISCV/riscv-func-attr-target.c b/clang/test/CodeGen/RISCV/riscv-func-attr-target.c index aeddbc4ebf689..3e9c1d9229a66 100644 --- a/clang/test/CodeGen/RISCV/riscv-func-attr-target.c +++ b/clang/test/CodeGen/RISCV/riscv-func-attr-target.c @@ -66,16 +66,16 @@ void test_rvv_f64_type_w_zve64d() { } //. -// CHECK: attributes #0 = { {{.*}}"target-features"="+64bit,+a,+m,+save-restore,+zifencei,+zmmul,-relax,-zbb,-zfa" } -// CHECK: attributes #1 = { {{.*}}"target-cpu"="rocket-rv64" "target-features"="+64bit,+a,+d,+f,+m,+save-restore,+v,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl128b,+zvl32b,+zvl64b,-relax,-zbb,-zfa" "tune-cpu"="generic-rv64" } -// CHECK: attributes #2 = { {{.*}}"target-features"="+64bit,+a,+m,+save-restore,+zbb,+zifencei,+zmmul,-relax,-zfa" } -// CHECK: attributes #3 = { {{.*}}"target-features"="+64bit,+a,+d,+f,+m,+save-restore,+v,+zbb,+zicond,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl128b,+zvl32b,+zvl64b,-relax,-zfa" } +// CHECK: attributes #0 = { {{.*}}"target-features"="+64bit,+a,+m,+save-restore,+zaamo,+zalrsc,+zifencei,+zmmul,-relax,-zbb,-zfa" } +// CHECK: attributes #1 = { {{.*}}"target-cpu"="rocket-rv64" "target-features"="+64bit,+a,+d,+f,+m,+save-restore,+v,+zaamo,+zalrsc,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl128b,+zvl32b,+zvl64b,-relax,-zbb,-zfa" "tune-cpu"="generic-rv64" } +// CHECK: attributes #2 = { {{.*}}"target-features"="+64bit,+a,+m,+save-restore,+zaamo,+zalrsc,+zbb,+zifencei,+zmmul,-relax,-zfa" } +// CHECK: attributes #3 = { {{.*}}"target-features"="+64bit,+a,+d,+f,+m,+save-restore,+v,+zaamo,+zalrsc,+zbb,+zicond,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl128b,+zvl32b,+zvl64b,-relax,-zfa" } // Make sure we append negative features if we override the arch -// CHECK: attributes #4 = { {{.*}}"target-features"="+64bit,+a,+c,+d,+f,+m,+save-restore,+zbb,+zicsr,+zifencei,+zmmul,{{(-[[:alnum:]-]+)(,-[[:alnum:]-]+)*}}" } +// CHECK: attributes #4 = { {{.*}}"target-features"="+64bit,+a,+c,+d,+f,+m,+save-restore,+zaamo,+zalrsc,+zbb,+zicsr,+zifencei,+zmmul,{{(-[[:alnum:]-]+)(,-[[:alnum:]-]+)*}}" } // CHECK: attributes #5 = { {{.*}}"target-features"="+64bit,+m,+save-restore,+zmmul,{{(-[[:alnum:]-]+)(,-[[:alnum:]-]+)*}}" } -// CHECK: attributes #6 = { {{.*}}"target-cpu"="sifive-u54" "target-features"="+64bit,+a,+m,+save-restore,+zbb,+zifencei,+zmmul,-relax,-zfa" } +// CHECK: attributes #6 = { {{.*}}"target-cpu"="sifive-u54" "target-features"="+64bit,+a,+m,+save-restore,+zaamo,+zalrsc,+zbb,+zifencei,+zmmul,-relax,-zfa" } // CHECK: attributes #7 = { {{.*}}"target-cpu"="sifive-u54" "target-features"="+64bit,+m,+save-restore,+zmmul,{{(-[[:alnum:]-]+)(,-[[:alnum:]-]+)*}}" } -// CHECK: attributes #8 = { {{.*}}"target-cpu"="sifive-u54" "target-features"="+64bit,+a,+c,+d,+f,+m,+save-restore,+zicsr,+zifencei,+zmmul,{{(-[[:alnum:]-]+)(,-[[:alnum:]-]+)*}}" } -// CHECK: attributes #9 = { {{.*}}"target-features"="+64bit,+a,+m,+save-restore,+zicsr,+zifencei,+zmmul,+zve32x,+zvl32b,-relax,-zbb,-zfa" } -// CHECK: attributes #11 = { {{.*}}"target-features"="+64bit,+a,+f,+m,+save-restore,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zvl32b,-relax,-zbb,-zfa" } -// CHECK: attributes #12 = { {{.*}}"target-features"="+64bit,+a,+d,+f,+m,+save-restore,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl32b,+zvl64b,-relax,-zbb,-zfa" } +// CHECK: attributes #8 = { {{.*}}"target-cpu"="sifive-u54" "target-features"="+64bit,+a,+c,+d,+f,+m,+save-restore,+zaamo,+zalrsc,+zicsr,+zifencei,+zmmul,{{(-[[:alnum:]-]+)(,-[[:alnum:]-]+)*}}" } +// CHECK: attributes #9 = { {{.*}}"target-features"="+64bit,+a,+m,+save-restore,+zaamo,+zalrsc,+zicsr,+zifencei,+zmmul,+zve32x,+zvl32b,-relax,-zbb,-zfa" } +// CHECK: attributes #11 = { {{.*}}"target-features"="+64bit,+a,+f,+m,+save-restore,+zaamo,+zalrsc,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zvl32b,-relax,-zbb,-zfa" } +// CHECK: attributes #12 = { {{.*}}"target-features"="+64bit,+a,+d,+f,+m,+save-restore,+zaamo,+zalrsc,+zicsr,+zifencei,+zmmul,+zve32f,+zve32x,+zve64d,+zve64f,+zve64x,+zvl32b,+zvl64b,-relax,-zbb,-zfa" } diff --git a/clang/test/CodeGen/SystemZ/systemz-inline-asm.c b/clang/test/CodeGen/SystemZ/systemz-inline-asm.c index e38d37cd345e2..2a9d6a5f87454 100644 --- a/clang/test/CodeGen/SystemZ/systemz-inline-asm.c +++ b/clang/test/CodeGen/SystemZ/systemz-inline-asm.c @@ -123,7 +123,7 @@ double test_f64(double f, double g) { long double test_f128(long double f, long double g) { asm("axbr %0, %2" : "=f" (f) : "0" (f), "f" (g)); return f; -// CHECK: define{{.*}} void @test_f128(ptr dead_on_unwind noalias nocapture writable writeonly sret(fp128) align 8 [[DEST:%.*]], ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1) +// CHECK: define{{.*}} void @test_f128(ptr dead_on_unwind noalias nocapture writable writeonly sret(fp128) align 8 initializes((0, 16)) [[DEST:%.*]], ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1) // CHECK: %f = load fp128, ptr %0 // CHECK: %g = load fp128, ptr %1 // CHECK: [[RESULT:%.*]] = tail call fp128 asm "axbr $0, $2", "=f,0,f"(fp128 %f, fp128 %g) diff --git a/clang/test/CodeGen/SystemZ/zos-mixed-ptr-sizes.c b/clang/test/CodeGen/SystemZ/zos-mixed-ptr-sizes.c index 6194c9b1804fb..82bb7a52d05d1 100644 --- a/clang/test/CodeGen/SystemZ/zos-mixed-ptr-sizes.c +++ b/clang/test/CodeGen/SystemZ/zos-mixed-ptr-sizes.c @@ -12,42 +12,42 @@ struct Foo { void use_foo(struct Foo *f); void ptr32_to_ptr(struct Foo *f, int * __ptr32 i) { - // X64-LABEL: define void @ptr32_to_ptr(ptr noundef %f, ptr addrspace(1) noundef %i) + // X64-LABEL: define void @ptr32_to_ptr(ptr noundef initializes((8, 16)) %f, ptr addrspace(1) noundef %i) // X64: %{{.+}} = addrspacecast ptr addrspace(1) %i to ptr f->p64= i; use_foo(f); } void ptr_to_ptr32(struct Foo *f, int *i) { - // X64-LABEL: define void @ptr_to_ptr32(ptr noundef %f, ptr noundef %i) + // X64-LABEL: define void @ptr_to_ptr32(ptr noundef initializes((0, 4)) %f, ptr noundef %i) // X64: %{{.+}} = addrspacecast ptr %i to ptr addrspace(1) f->p32 = i; use_foo(f); } void ptr32_to_ptr32(struct Foo *f, int * __ptr32 i) { - // X64-LABEL: define void @ptr32_to_ptr32(ptr noundef %f, ptr addrspace(1) noundef %i) + // X64-LABEL: define void @ptr32_to_ptr32(ptr noundef initializes((0, 4)) %f, ptr addrspace(1) noundef %i) // X64-NOT: addrspacecast f->p32 = i; use_foo(f); } void ptr_to_ptr32_explicit_cast(struct Foo *f, int *i) { - // X64-LABEL: define void @ptr_to_ptr32_explicit_cast(ptr noundef %f, ptr noundef %i) + // X64-LABEL: define void @ptr_to_ptr32_explicit_cast(ptr noundef initializes((0, 4)) %f, ptr noundef %i) // X64: %{{.+}} = addrspacecast ptr %i to ptr addrspace(1) f->p32 = (int * __ptr32)i; use_foo(f); } void test_indexing(struct Foo *f) { - // X64-LABEL: define void @test_indexing(ptr noundef %f) + // X64-LABEL: define void @test_indexing(ptr noundef initializes((16, 24)) %f) // X64: addrspacecast ptr addrspace(1) {{%[0-9]}} to ptr f->cp64 = ((char * __ptr32 *)1028)[1]; use_foo(f); } void test_indexing_2(struct Foo *f) { - // X64-LABEL: define void @test_indexing_2(ptr noundef %f) + // X64-LABEL: define void @test_indexing_2(ptr noundef initializes((16, 24)) %f) // X64: getelementptr inbounds i8, ptr addrspace(1) {{%[0-9]}}, i32 16 // X64: getelementptr inbounds i8, ptr {{%[0-9]}}, i64 24 f->cp64 = ((char *** __ptr32 *)1028)[1][2][3]; @@ -108,7 +108,7 @@ int test_misc_4() { } void test_misc_5(struct Foo *f) { - // X64-LABEL: define void @test_misc_5(ptr noundef %f) + // X64-LABEL: define void @test_misc_5(ptr noundef initializes((16, 24)) %f) // X64: addrspacecast ptr addrspace(1) %0 to ptr f->cp64 = *(char* __ptr32 *)(PSA_PTR + PSAAOLD); use_foo(f); diff --git a/clang/test/CodeGen/X86/ms-x86-intrinsics.c b/clang/test/CodeGen/X86/ms-x86-intrinsics.c index b90e2679e26d2..94a1b372974b3 100644 --- a/clang/test/CodeGen/X86/ms-x86-intrinsics.c +++ b/clang/test/CodeGen/X86/ms-x86-intrinsics.c @@ -171,7 +171,7 @@ __int64 test_mul128(__int64 Multiplier, __int64 *HighProduct) { return _mul128(Multiplier, Multiplicand, HighProduct); } -// CHECK-X64-LABEL: define dso_local i64 @test_mul128(i64 noundef %Multiplier, i64 noundef %Multiplicand, ptr{{[a-z_ ]*}}%HighProduct) +// CHECK-X64-LABEL: define dso_local i64 @test_mul128(i64 noundef %Multiplier, i64 noundef %Multiplicand, ptr{{[a-z_ ]*}} initializes((0, 8)) %HighProduct) // CHECK-X64: = sext i64 %Multiplier to i128 // CHECK-X64: = sext i64 %Multiplicand to i128 // CHECK-X64: = mul nsw i128 % @@ -183,7 +183,7 @@ unsigned __int64 test_umul128(unsigned __int64 Multiplier, unsigned __int64 *HighProduct) { return _umul128(Multiplier, Multiplicand, HighProduct); } -// CHECK-X64-LABEL: define dso_local i64 @test_umul128(i64 noundef %Multiplier, i64 noundef %Multiplicand, ptr{{[a-z_ ]*}}%HighProduct) +// CHECK-X64-LABEL: define dso_local i64 @test_umul128(i64 noundef %Multiplier, i64 noundef %Multiplicand, ptr{{[a-z_ ]*}} initializes((0, 8)) %HighProduct) // CHECK-X64: = zext i64 %Multiplier to i128 // CHECK-X64: = zext i64 %Multiplicand to i128 // CHECK-X64: = mul nuw i128 % diff --git a/clang/test/CodeGen/amdgpu-barrier-type-debug-info.c b/clang/test/CodeGen/amdgpu-barrier-type-debug-info.c index f595f1b222c4f..4eafbba0ad9a0 100644 --- a/clang/test/CodeGen/amdgpu-barrier-type-debug-info.c +++ b/clang/test/CodeGen/amdgpu-barrier-type-debug-info.c @@ -4,5 +4,5 @@ // CHECK: name: "__amdgpu_named_workgroup_barrier_t",{{.*}}baseType: ![[BT:[0-9]+]] // CHECK: [[BT]] = !DIBasicType(name: "__amdgpu_named_workgroup_barrier_t", size: 128, encoding: DW_ATE_unsigned) void test_locals(void) { - __amdgpu_named_workgroup_barrier_t k0; + __amdgpu_named_workgroup_barrier_t *k0; } diff --git a/clang/test/CodeGen/arm-bf16-convert-intrinsics.c b/clang/test/CodeGen/arm-bf16-convert-intrinsics.c index e2be98c086853..51aa5aa758f0c 100644 --- a/clang/test/CodeGen/arm-bf16-convert-intrinsics.c +++ b/clang/test/CodeGen/arm-bf16-convert-intrinsics.c @@ -24,50 +24,50 @@ // CHECK-A64-LABEL: @test_vcvt_f32_bf16( // CHECK-A64-NEXT: entry: -// CHECK-A64-NEXT: [[__REINT_836_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A64-NEXT: [[__REINT1_836_I:%.*]] = alloca <4 x i32>, align 16 -// CHECK-A64-NEXT: store <4 x bfloat> [[A:%.*]], ptr [[__REINT_836_I]], align 8 -// CHECK-A64-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_836_I]], align 8 +// CHECK-A64-NEXT: [[__REINT_808_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A64-NEXT: [[__REINT1_808_I:%.*]] = alloca <4 x i32>, align 16 +// CHECK-A64-NEXT: store <4 x bfloat> [[A:%.*]], ptr [[__REINT_808_I]], align 8 +// CHECK-A64-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_808_I]], align 8 // CHECK-A64-NEXT: [[TMP1:%.*]] = bitcast <4 x i16> [[TMP0]] to <8 x i8> -// CHECK-A64-NEXT: [[TMP2:%.*]] = sext <4 x i16> [[TMP0]] to <4 x i32> +// CHECK-A64-NEXT: [[TMP2:%.*]] = zext <4 x i16> [[TMP0]] to <4 x i32> // CHECK-A64-NEXT: [[VSHLL_N_I:%.*]] = shl <4 x i32> [[TMP2]], splat (i32 16) -// CHECK-A64-NEXT: store <4 x i32> [[VSHLL_N_I]], ptr [[__REINT1_836_I]], align 16 -// CHECK-A64-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_836_I]], align 16 +// CHECK-A64-NEXT: store <4 x i32> [[VSHLL_N_I]], ptr [[__REINT1_808_I]], align 16 +// CHECK-A64-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_808_I]], align 16 // CHECK-A64-NEXT: ret <4 x float> [[TMP3]] // // CHECK-A32-HARDFP-LABEL: @test_vcvt_f32_bf16( // CHECK-A32-HARDFP-NEXT: entry: -// CHECK-A32-HARDFP-NEXT: [[__REINT_836_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A32-HARDFP-NEXT: [[__REINT1_836_I:%.*]] = alloca <4 x i32>, align 8 -// CHECK-A32-HARDFP-NEXT: store <4 x bfloat> [[A:%.*]], ptr [[__REINT_836_I]], align 8 -// CHECK-A32-HARDFP-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_836_I]], align 8 +// CHECK-A32-HARDFP-NEXT: [[__REINT_808_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A32-HARDFP-NEXT: [[__REINT1_808_I:%.*]] = alloca <4 x i32>, align 8 +// CHECK-A32-HARDFP-NEXT: store <4 x bfloat> [[A:%.*]], ptr [[__REINT_808_I]], align 8 +// CHECK-A32-HARDFP-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_808_I]], align 8 // CHECK-A32-HARDFP-NEXT: [[TMP1:%.*]] = bitcast <4 x i16> [[TMP0]] to <8 x i8> -// CHECK-A32-HARDFP-NEXT: [[TMP2:%.*]] = sext <4 x i16> [[TMP0]] to <4 x i32> +// CHECK-A32-HARDFP-NEXT: [[TMP2:%.*]] = zext <4 x i16> [[TMP0]] to <4 x i32> // CHECK-A32-HARDFP-NEXT: [[VSHLL_N_I:%.*]] = shl <4 x i32> [[TMP2]], splat (i32 16) -// CHECK-A32-HARDFP-NEXT: store <4 x i32> [[VSHLL_N_I]], ptr [[__REINT1_836_I]], align 8 -// CHECK-A32-HARDFP-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_836_I]], align 8 +// CHECK-A32-HARDFP-NEXT: store <4 x i32> [[VSHLL_N_I]], ptr [[__REINT1_808_I]], align 8 +// CHECK-A32-HARDFP-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_808_I]], align 8 // CHECK-A32-HARDFP-NEXT: ret <4 x float> [[TMP3]] // // CHECK-A32-SOFTFP-LABEL: @test_vcvt_f32_bf16( // CHECK-A32-SOFTFP-NEXT: entry: -// CHECK-A32-SOFTFP-NEXT: [[__P0_836_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A32-SOFTFP-NEXT: [[__REINT_836_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A32-SOFTFP-NEXT: [[__REINT1_836_I:%.*]] = alloca <4 x i32>, align 8 +// CHECK-A32-SOFTFP-NEXT: [[__P0_808_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A32-SOFTFP-NEXT: [[__REINT_808_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A32-SOFTFP-NEXT: [[__REINT1_808_I:%.*]] = alloca <4 x i32>, align 8 // CHECK-A32-SOFTFP-NEXT: [[A:%.*]] = alloca <4 x bfloat>, align 8 // CHECK-A32-SOFTFP-NEXT: [[COERCE:%.*]] = alloca <4 x bfloat>, align 8 // CHECK-A32-SOFTFP-NEXT: store <2 x i32> [[A_COERCE:%.*]], ptr [[A]], align 8 // CHECK-A32-SOFTFP-NEXT: [[A1:%.*]] = load <4 x bfloat>, ptr [[A]], align 8 // CHECK-A32-SOFTFP-NEXT: store <4 x bfloat> [[A1]], ptr [[COERCE]], align 8 // CHECK-A32-SOFTFP-NEXT: [[TMP0:%.*]] = load <2 x i32>, ptr [[COERCE]], align 8 -// CHECK-A32-SOFTFP-NEXT: store <2 x i32> [[TMP0]], ptr [[__P0_836_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: [[__P0_8361_I:%.*]] = load <4 x bfloat>, ptr [[__P0_836_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: store <4 x bfloat> [[__P0_8361_I]], ptr [[__REINT_836_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: [[TMP1:%.*]] = load <4 x i16>, ptr [[__REINT_836_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: store <2 x i32> [[TMP0]], ptr [[__P0_808_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: [[__P0_8081_I:%.*]] = load <4 x bfloat>, ptr [[__P0_808_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: store <4 x bfloat> [[__P0_8081_I]], ptr [[__REINT_808_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: [[TMP1:%.*]] = load <4 x i16>, ptr [[__REINT_808_I]], align 8 // CHECK-A32-SOFTFP-NEXT: [[TMP2:%.*]] = bitcast <4 x i16> [[TMP1]] to <8 x i8> -// CHECK-A32-SOFTFP-NEXT: [[TMP3:%.*]] = sext <4 x i16> [[TMP1]] to <4 x i32> +// CHECK-A32-SOFTFP-NEXT: [[TMP3:%.*]] = zext <4 x i16> [[TMP1]] to <4 x i32> // CHECK-A32-SOFTFP-NEXT: [[VSHLL_N_I:%.*]] = shl <4 x i32> [[TMP3]], splat (i32 16) -// CHECK-A32-SOFTFP-NEXT: store <4 x i32> [[VSHLL_N_I]], ptr [[__REINT1_836_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: [[TMP4:%.*]] = load <4 x float>, ptr [[__REINT1_836_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: store <4 x i32> [[VSHLL_N_I]], ptr [[__REINT1_808_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: [[TMP4:%.*]] = load <4 x float>, ptr [[__REINT1_808_I]], align 8 // CHECK-A32-SOFTFP-NEXT: ret <4 x float> [[TMP4]] // float32x4_t test_vcvt_f32_bf16(bfloat16x4_t a) { @@ -76,39 +76,39 @@ float32x4_t test_vcvt_f32_bf16(bfloat16x4_t a) { // CHECK-A64-LABEL: @test_vcvtq_low_f32_bf16( // CHECK-A64-NEXT: entry: -// CHECK-A64-NEXT: [[__REINT_836_I_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A64-NEXT: [[__REINT1_836_I_I:%.*]] = alloca <4 x i32>, align 16 +// CHECK-A64-NEXT: [[__REINT_808_I_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A64-NEXT: [[__REINT1_808_I_I:%.*]] = alloca <4 x i32>, align 16 // CHECK-A64-NEXT: [[SHUFFLE_I:%.*]] = shufflevector <8 x bfloat> [[A:%.*]], <8 x bfloat> [[A]], <4 x i32> -// CHECK-A64-NEXT: store <4 x bfloat> [[SHUFFLE_I]], ptr [[__REINT_836_I_I]], align 8 -// CHECK-A64-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_836_I_I]], align 8 +// CHECK-A64-NEXT: store <4 x bfloat> [[SHUFFLE_I]], ptr [[__REINT_808_I_I]], align 8 +// CHECK-A64-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_808_I_I]], align 8 // CHECK-A64-NEXT: [[TMP1:%.*]] = bitcast <4 x i16> [[TMP0]] to <8 x i8> -// CHECK-A64-NEXT: [[TMP2:%.*]] = sext <4 x i16> [[TMP0]] to <4 x i32> +// CHECK-A64-NEXT: [[TMP2:%.*]] = zext <4 x i16> [[TMP0]] to <4 x i32> // CHECK-A64-NEXT: [[VSHLL_N_I_I:%.*]] = shl <4 x i32> [[TMP2]], splat (i32 16) -// CHECK-A64-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_836_I_I]], align 16 -// CHECK-A64-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_836_I_I]], align 16 +// CHECK-A64-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_808_I_I]], align 16 +// CHECK-A64-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_808_I_I]], align 16 // CHECK-A64-NEXT: ret <4 x float> [[TMP3]] // // CHECK-A32-HARDFP-LABEL: @test_vcvtq_low_f32_bf16( // CHECK-A32-HARDFP-NEXT: entry: -// CHECK-A32-HARDFP-NEXT: [[__REINT_836_I_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A32-HARDFP-NEXT: [[__REINT1_836_I_I:%.*]] = alloca <4 x i32>, align 8 +// CHECK-A32-HARDFP-NEXT: [[__REINT_808_I_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A32-HARDFP-NEXT: [[__REINT1_808_I_I:%.*]] = alloca <4 x i32>, align 8 // CHECK-A32-HARDFP-NEXT: [[SHUFFLE_I:%.*]] = shufflevector <8 x bfloat> [[A:%.*]], <8 x bfloat> [[A]], <4 x i32> -// CHECK-A32-HARDFP-NEXT: store <4 x bfloat> [[SHUFFLE_I]], ptr [[__REINT_836_I_I]], align 8 -// CHECK-A32-HARDFP-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_836_I_I]], align 8 +// CHECK-A32-HARDFP-NEXT: store <4 x bfloat> [[SHUFFLE_I]], ptr [[__REINT_808_I_I]], align 8 +// CHECK-A32-HARDFP-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_808_I_I]], align 8 // CHECK-A32-HARDFP-NEXT: [[TMP1:%.*]] = bitcast <4 x i16> [[TMP0]] to <8 x i8> -// CHECK-A32-HARDFP-NEXT: [[TMP2:%.*]] = sext <4 x i16> [[TMP0]] to <4 x i32> +// CHECK-A32-HARDFP-NEXT: [[TMP2:%.*]] = zext <4 x i16> [[TMP0]] to <4 x i32> // CHECK-A32-HARDFP-NEXT: [[VSHLL_N_I_I:%.*]] = shl <4 x i32> [[TMP2]], splat (i32 16) -// CHECK-A32-HARDFP-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_836_I_I]], align 8 -// CHECK-A32-HARDFP-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_836_I_I]], align 8 +// CHECK-A32-HARDFP-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_808_I_I]], align 8 +// CHECK-A32-HARDFP-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_808_I_I]], align 8 // CHECK-A32-HARDFP-NEXT: ret <4 x float> [[TMP3]] // // CHECK-A32-SOFTFP-LABEL: @test_vcvtq_low_f32_bf16( // CHECK-A32-SOFTFP-NEXT: entry: // CHECK-A32-SOFTFP-NEXT: [[RETVAL_I:%.*]] = alloca <4 x bfloat>, align 8 // CHECK-A32-SOFTFP-NEXT: [[__P0_I2:%.*]] = alloca <8 x bfloat>, align 8 -// CHECK-A32-SOFTFP-NEXT: [[__P0_836_I_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A32-SOFTFP-NEXT: [[__REINT_836_I_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A32-SOFTFP-NEXT: [[__REINT1_836_I_I:%.*]] = alloca <4 x i32>, align 8 +// CHECK-A32-SOFTFP-NEXT: [[__P0_808_I_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A32-SOFTFP-NEXT: [[__REINT_808_I_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A32-SOFTFP-NEXT: [[__REINT1_808_I_I:%.*]] = alloca <4 x i32>, align 8 // CHECK-A32-SOFTFP-NEXT: [[__P0_I:%.*]] = alloca <8 x bfloat>, align 8 // CHECK-A32-SOFTFP-NEXT: [[COERCE_I:%.*]] = alloca <8 x bfloat>, align 8 // CHECK-A32-SOFTFP-NEXT: [[COERCE2_I:%.*]] = alloca <4 x bfloat>, align 8 @@ -132,15 +132,15 @@ float32x4_t test_vcvt_f32_bf16(bfloat16x4_t a) { // CHECK-A32-SOFTFP-NEXT: [[TMP3:%.*]] = load <4 x bfloat>, ptr [[COERCE2_I]], align 8 // CHECK-A32-SOFTFP-NEXT: store <4 x bfloat> [[TMP3]], ptr [[COERCE3_I]], align 8 // CHECK-A32-SOFTFP-NEXT: [[TMP4:%.*]] = load <2 x i32>, ptr [[COERCE3_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: store <2 x i32> [[TMP4]], ptr [[__P0_836_I_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: [[__P0_8361_I_I:%.*]] = load <4 x bfloat>, ptr [[__P0_836_I_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: store <4 x bfloat> [[__P0_8361_I_I]], ptr [[__REINT_836_I_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: [[TMP5:%.*]] = load <4 x i16>, ptr [[__REINT_836_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: store <2 x i32> [[TMP4]], ptr [[__P0_808_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: [[__P0_8081_I_I:%.*]] = load <4 x bfloat>, ptr [[__P0_808_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: store <4 x bfloat> [[__P0_8081_I_I]], ptr [[__REINT_808_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: [[TMP5:%.*]] = load <4 x i16>, ptr [[__REINT_808_I_I]], align 8 // CHECK-A32-SOFTFP-NEXT: [[TMP6:%.*]] = bitcast <4 x i16> [[TMP5]] to <8 x i8> -// CHECK-A32-SOFTFP-NEXT: [[TMP7:%.*]] = sext <4 x i16> [[TMP5]] to <4 x i32> +// CHECK-A32-SOFTFP-NEXT: [[TMP7:%.*]] = zext <4 x i16> [[TMP5]] to <4 x i32> // CHECK-A32-SOFTFP-NEXT: [[VSHLL_N_I_I:%.*]] = shl <4 x i32> [[TMP7]], splat (i32 16) -// CHECK-A32-SOFTFP-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_836_I_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: [[TMP8:%.*]] = load <4 x float>, ptr [[__REINT1_836_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_808_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: [[TMP8:%.*]] = load <4 x float>, ptr [[__REINT1_808_I_I]], align 8 // CHECK-A32-SOFTFP-NEXT: ret <4 x float> [[TMP8]] // float32x4_t test_vcvtq_low_f32_bf16(bfloat16x8_t a) { @@ -149,39 +149,39 @@ float32x4_t test_vcvtq_low_f32_bf16(bfloat16x8_t a) { // CHECK-A64-LABEL: @test_vcvtq_high_f32_bf16( // CHECK-A64-NEXT: entry: -// CHECK-A64-NEXT: [[__REINT_836_I_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A64-NEXT: [[__REINT1_836_I_I:%.*]] = alloca <4 x i32>, align 16 +// CHECK-A64-NEXT: [[__REINT_808_I_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A64-NEXT: [[__REINT1_808_I_I:%.*]] = alloca <4 x i32>, align 16 // CHECK-A64-NEXT: [[SHUFFLE_I:%.*]] = shufflevector <8 x bfloat> [[A:%.*]], <8 x bfloat> [[A]], <4 x i32> -// CHECK-A64-NEXT: store <4 x bfloat> [[SHUFFLE_I]], ptr [[__REINT_836_I_I]], align 8 -// CHECK-A64-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_836_I_I]], align 8 +// CHECK-A64-NEXT: store <4 x bfloat> [[SHUFFLE_I]], ptr [[__REINT_808_I_I]], align 8 +// CHECK-A64-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_808_I_I]], align 8 // CHECK-A64-NEXT: [[TMP1:%.*]] = bitcast <4 x i16> [[TMP0]] to <8 x i8> -// CHECK-A64-NEXT: [[TMP2:%.*]] = sext <4 x i16> [[TMP0]] to <4 x i32> +// CHECK-A64-NEXT: [[TMP2:%.*]] = zext <4 x i16> [[TMP0]] to <4 x i32> // CHECK-A64-NEXT: [[VSHLL_N_I_I:%.*]] = shl <4 x i32> [[TMP2]], splat (i32 16) -// CHECK-A64-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_836_I_I]], align 16 -// CHECK-A64-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_836_I_I]], align 16 +// CHECK-A64-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_808_I_I]], align 16 +// CHECK-A64-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_808_I_I]], align 16 // CHECK-A64-NEXT: ret <4 x float> [[TMP3]] // // CHECK-A32-HARDFP-LABEL: @test_vcvtq_high_f32_bf16( // CHECK-A32-HARDFP-NEXT: entry: -// CHECK-A32-HARDFP-NEXT: [[__REINT_836_I_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A32-HARDFP-NEXT: [[__REINT1_836_I_I:%.*]] = alloca <4 x i32>, align 8 +// CHECK-A32-HARDFP-NEXT: [[__REINT_808_I_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A32-HARDFP-NEXT: [[__REINT1_808_I_I:%.*]] = alloca <4 x i32>, align 8 // CHECK-A32-HARDFP-NEXT: [[SHUFFLE_I:%.*]] = shufflevector <8 x bfloat> [[A:%.*]], <8 x bfloat> [[A]], <4 x i32> -// CHECK-A32-HARDFP-NEXT: store <4 x bfloat> [[SHUFFLE_I]], ptr [[__REINT_836_I_I]], align 8 -// CHECK-A32-HARDFP-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_836_I_I]], align 8 +// CHECK-A32-HARDFP-NEXT: store <4 x bfloat> [[SHUFFLE_I]], ptr [[__REINT_808_I_I]], align 8 +// CHECK-A32-HARDFP-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[__REINT_808_I_I]], align 8 // CHECK-A32-HARDFP-NEXT: [[TMP1:%.*]] = bitcast <4 x i16> [[TMP0]] to <8 x i8> -// CHECK-A32-HARDFP-NEXT: [[TMP2:%.*]] = sext <4 x i16> [[TMP0]] to <4 x i32> +// CHECK-A32-HARDFP-NEXT: [[TMP2:%.*]] = zext <4 x i16> [[TMP0]] to <4 x i32> // CHECK-A32-HARDFP-NEXT: [[VSHLL_N_I_I:%.*]] = shl <4 x i32> [[TMP2]], splat (i32 16) -// CHECK-A32-HARDFP-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_836_I_I]], align 8 -// CHECK-A32-HARDFP-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_836_I_I]], align 8 +// CHECK-A32-HARDFP-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_808_I_I]], align 8 +// CHECK-A32-HARDFP-NEXT: [[TMP3:%.*]] = load <4 x float>, ptr [[__REINT1_808_I_I]], align 8 // CHECK-A32-HARDFP-NEXT: ret <4 x float> [[TMP3]] // // CHECK-A32-SOFTFP-LABEL: @test_vcvtq_high_f32_bf16( // CHECK-A32-SOFTFP-NEXT: entry: // CHECK-A32-SOFTFP-NEXT: [[RETVAL_I:%.*]] = alloca <4 x bfloat>, align 8 // CHECK-A32-SOFTFP-NEXT: [[__P0_I2:%.*]] = alloca <8 x bfloat>, align 8 -// CHECK-A32-SOFTFP-NEXT: [[__P0_836_I_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A32-SOFTFP-NEXT: [[__REINT_836_I_I:%.*]] = alloca <4 x bfloat>, align 8 -// CHECK-A32-SOFTFP-NEXT: [[__REINT1_836_I_I:%.*]] = alloca <4 x i32>, align 8 +// CHECK-A32-SOFTFP-NEXT: [[__P0_808_I_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A32-SOFTFP-NEXT: [[__REINT_808_I_I:%.*]] = alloca <4 x bfloat>, align 8 +// CHECK-A32-SOFTFP-NEXT: [[__REINT1_808_I_I:%.*]] = alloca <4 x i32>, align 8 // CHECK-A32-SOFTFP-NEXT: [[__P0_I:%.*]] = alloca <8 x bfloat>, align 8 // CHECK-A32-SOFTFP-NEXT: [[COERCE_I:%.*]] = alloca <8 x bfloat>, align 8 // CHECK-A32-SOFTFP-NEXT: [[COERCE2_I:%.*]] = alloca <4 x bfloat>, align 8 @@ -205,15 +205,15 @@ float32x4_t test_vcvtq_low_f32_bf16(bfloat16x8_t a) { // CHECK-A32-SOFTFP-NEXT: [[TMP3:%.*]] = load <4 x bfloat>, ptr [[COERCE2_I]], align 8 // CHECK-A32-SOFTFP-NEXT: store <4 x bfloat> [[TMP3]], ptr [[COERCE3_I]], align 8 // CHECK-A32-SOFTFP-NEXT: [[TMP4:%.*]] = load <2 x i32>, ptr [[COERCE3_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: store <2 x i32> [[TMP4]], ptr [[__P0_836_I_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: [[__P0_8361_I_I:%.*]] = load <4 x bfloat>, ptr [[__P0_836_I_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: store <4 x bfloat> [[__P0_8361_I_I]], ptr [[__REINT_836_I_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: [[TMP5:%.*]] = load <4 x i16>, ptr [[__REINT_836_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: store <2 x i32> [[TMP4]], ptr [[__P0_808_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: [[__P0_8081_I_I:%.*]] = load <4 x bfloat>, ptr [[__P0_808_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: store <4 x bfloat> [[__P0_8081_I_I]], ptr [[__REINT_808_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: [[TMP5:%.*]] = load <4 x i16>, ptr [[__REINT_808_I_I]], align 8 // CHECK-A32-SOFTFP-NEXT: [[TMP6:%.*]] = bitcast <4 x i16> [[TMP5]] to <8 x i8> -// CHECK-A32-SOFTFP-NEXT: [[TMP7:%.*]] = sext <4 x i16> [[TMP5]] to <4 x i32> +// CHECK-A32-SOFTFP-NEXT: [[TMP7:%.*]] = zext <4 x i16> [[TMP5]] to <4 x i32> // CHECK-A32-SOFTFP-NEXT: [[VSHLL_N_I_I:%.*]] = shl <4 x i32> [[TMP7]], splat (i32 16) -// CHECK-A32-SOFTFP-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_836_I_I]], align 8 -// CHECK-A32-SOFTFP-NEXT: [[TMP8:%.*]] = load <4 x float>, ptr [[__REINT1_836_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: store <4 x i32> [[VSHLL_N_I_I]], ptr [[__REINT1_808_I_I]], align 8 +// CHECK-A32-SOFTFP-NEXT: [[TMP8:%.*]] = load <4 x float>, ptr [[__REINT1_808_I_I]], align 8 // CHECK-A32-SOFTFP-NEXT: ret <4 x float> [[TMP8]] // float32x4_t test_vcvtq_high_f32_bf16(bfloat16x8_t a) { @@ -427,7 +427,7 @@ bfloat16_t test_vcvth_bf16_f32(float32_t a) { // CHECK-NEXT: [[__REINT1_I:%.*]] = alloca i32, align 4 // CHECK-NEXT: store bfloat [[A:%.*]], ptr [[__REINT_I]], align 2 // CHECK-NEXT: [[TMP0:%.*]] = load i16, ptr [[__REINT_I]], align 2 -// CHECK-NEXT: [[CONV_I:%.*]] = sext i16 [[TMP0]] to i32 +// CHECK-NEXT: [[CONV_I:%.*]] = zext i16 [[TMP0]] to i32 // CHECK-NEXT: [[SHL_I:%.*]] = shl i32 [[CONV_I]], 16 // CHECK-NEXT: store i32 [[SHL_I]], ptr [[__REINT1_I]], align 4 // CHECK-NEXT: [[TMP1:%.*]] = load float, ptr [[__REINT1_I]], align 4 diff --git a/clang/test/CodeGen/arm-vfp16-arguments.c b/clang/test/CodeGen/arm-vfp16-arguments.c index da034626024f8..3c6691df4747a 100644 --- a/clang/test/CodeGen/arm-vfp16-arguments.c +++ b/clang/test/CodeGen/arm-vfp16-arguments.c @@ -71,6 +71,6 @@ void test_hfa(hfa_t a) {} hfa_t ghfa; hfa_t test_ret_hfa(void) { return ghfa; } -// CHECK-SOFT: define{{.*}} void @test_ret_hfa(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.hfa_t) align 8 %agg.result) +// CHECK-SOFT: define{{.*}} void @test_ret_hfa(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.hfa_t) align 8 initializes((0, 16)) %agg.result) // CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @test_ret_hfa() // CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.hfa_t @test_ret_hfa() diff --git a/clang/test/CodeGen/arm-vfp16-arguments2.cpp b/clang/test/CodeGen/arm-vfp16-arguments2.cpp index b7c6852c47b7f..b810cfd0a6648 100644 --- a/clang/test/CodeGen/arm-vfp16-arguments2.cpp +++ b/clang/test/CodeGen/arm-vfp16-arguments2.cpp @@ -37,27 +37,27 @@ struct S5 : B1 { B1 M[1]; }; -// CHECK-SOFT: define{{.*}} void @_Z2f12S1(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S1) align 8 %agg.result, [2 x i64] %s1.coerce) +// CHECK-SOFT: define{{.*}} void @_Z2f12S1(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S1) align 8 initializes((0, 16)) %agg.result, [2 x i64] %s1.coerce) // CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @_Z2f12S1([2 x <2 x i32>] returned %s1.coerce) // CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S1 @_Z2f12S1(%struct.S1 returned %s1.coerce) struct S1 f1(struct S1 s1) { return s1; } -// CHECK-SOFT: define{{.*}} void @_Z2f22S2(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S2) align 8 %agg.result, [4 x i32] %s2.coerce) +// CHECK-SOFT: define{{.*}} void @_Z2f22S2(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S2) align 8 initializes((0, 16)) %agg.result, [4 x i32] %s2.coerce) // CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @_Z2f22S2([2 x <2 x i32>] returned %s2.coerce) // CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S2 @_Z2f22S2(%struct.S2 %s2.coerce) struct S2 f2(struct S2 s2) { return s2; } -// CHECK-SOFT: define{{.*}} void @_Z2f32S3(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S3) align 8 %agg.result, [2 x i64] %s3.coerce) +// CHECK-SOFT: define{{.*}} void @_Z2f32S3(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S3) align 8 initializes((0, 16)) %agg.result, [2 x i64] %s3.coerce) // CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @_Z2f32S3([2 x <2 x i32>] returned %s3.coerce) // CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S3 @_Z2f32S3(%struct.S3 %s3.coerce) struct S3 f3(struct S3 s3) { return s3; } -// CHECK-SOFT: define{{.*}} void @_Z2f42S4(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S4) align 8 %agg.result, [2 x i64] %s4.coerce) +// CHECK-SOFT: define{{.*}} void @_Z2f42S4(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S4) align 8 initializes((0, 16)) %agg.result, [2 x i64] %s4.coerce) // CHECK-HARD: define{{.*}} arm_aapcs_vfpcc [2 x <2 x i32>] @_Z2f42S4([2 x <2 x i32>] returned %s4.coerce) // CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S4 @_Z2f42S4(%struct.S4 %s4.coerce) struct S4 f4(struct S4 s4) { return s4; } -// CHECK-SOFT: define{{.*}} void @_Z2f52S5(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S5) align 8 %agg.result, [2 x i64] %s5.coerce) +// CHECK-SOFT: define{{.*}} void @_Z2f52S5(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.S5) align 8 initializes((0, 16)) %agg.result, [2 x i64] %s5.coerce) // CHECK-HARD: define{{.*}} arm_aapcs_vfpcc %struct.S5 @_Z2f52S5(%struct.S5 %s5.coerce) // CHECK-FULL: define{{.*}} arm_aapcs_vfpcc %struct.S5 @_Z2f52S5(%struct.S5 %s5.coerce) struct S5 f5(struct S5 s5) { return s5; } diff --git a/clang/test/CodeGen/attr-cpuspecific.c b/clang/test/CodeGen/attr-cpuspecific.c index 628892d5809b4..6eb2fb2758738 100644 --- a/clang/test/CodeGen/attr-cpuspecific.c +++ b/clang/test/CodeGen/attr-cpuspecific.c @@ -154,6 +154,12 @@ void usages(void) { CpuSpecificNoDispatch(); // LINUX: @CpuSpecificNoDispatch.ifunc() // WINDOWS: @CpuSpecificNoDispatch() + // + // Adding another use of CpuSpecificNoDispatch reproduces the + // crash in https://github.com/llvm/llvm-project/issues/115299 + CpuSpecificNoDispatch(); + // LINUX: @CpuSpecificNoDispatch.ifunc() + // WINDOWS: @CpuSpecificNoDispatch() OrderDispatchUsageSpecific(); // LINUX: @OrderDispatchUsageSpecific.ifunc() // WINDOWS: @OrderDispatchUsageSpecific() diff --git a/clang/test/CodeGen/isfpclass.c b/clang/test/CodeGen/isfpclass.c index a0e04eaad5929..1bf60b8fbca17 100644 --- a/clang/test/CodeGen/isfpclass.c +++ b/clang/test/CodeGen/isfpclass.c @@ -160,7 +160,7 @@ int4 check_isfpclass_nan_strict_v4f32(float4 x) { } // CHECK-LABEL: define dso_local void @check_isfpclass_nan_v4f64 -// CHECK-SAME: (ptr dead_on_unwind noalias nocapture writable writeonly sret(<4 x i64>) align 16 [[AGG_RESULT:%.*]], ptr nocapture noundef readonly [[TMP0:%.*]]) local_unnamed_addr #[[ATTR3:[0-9]+]] { +// CHECK-SAME: (ptr dead_on_unwind noalias nocapture writable writeonly sret(<4 x i64>) align 16 initializes((0, 32)) [[AGG_RESULT:%.*]], ptr nocapture noundef readonly [[TMP0:%.*]]) local_unnamed_addr #[[ATTR3:[0-9]+]] { // CHECK-NEXT: entry: // CHECK-NEXT: [[X:%.*]] = load <4 x double>, ptr [[TMP0]], align 16, !tbaa [[TBAA2:![0-9]+]] // CHECK-NEXT: [[TMP1:%.*]] = fcmp uno <4 x double> [[X]], zeroinitializer diff --git a/clang/test/CodeGen/math-libcalls-tbaa-indirect-args.c b/clang/test/CodeGen/math-libcalls-tbaa-indirect-args.c index 8e5f015647e41..440db83fef5da 100644 --- a/clang/test/CodeGen/math-libcalls-tbaa-indirect-args.c +++ b/clang/test/CodeGen/math-libcalls-tbaa-indirect-args.c @@ -53,7 +53,7 @@ long double powl(long double a, long double b); // CHECK-SPIR: [[CALL:%.*]] = tail call spir_func double @powl(double noundef [[A]], double noundef [[B]]) #[[ATTR3:[0-9]+]], !tbaa [[TBAA2:![0-9]+]] // // CHECK-MINGW32-LABEL: define dso_local void @test_powl( -// CHECK-MINGW32-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret(x86_fp80) align 16 [[AGG_RESULT:%.*]], ptr nocapture noundef readonly [[TMP0:%.*]], ptr nocapture noundef readonly [[TMP1:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { +// CHECK-MINGW32-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret(x86_fp80) align 16 initializes((0, 10)) [[AGG_RESULT:%.*]], ptr nocapture noundef readonly [[TMP0:%.*]], ptr nocapture noundef readonly [[TMP1:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { // CHECK-MINGW32: [[A:%.*]] = load x86_fp80, ptr [[TMP0]], align 16, !tbaa [[TBAA3:![0-9]+]] // CHECK-MINGW32: [[B:%.*]] = load x86_fp80, ptr [[TMP1]], align 16, !tbaa [[TBAA3]] // CHECK-MINGW32: store x86_fp80 [[A]], ptr [[BYVAL_TEMP:%.*]], align 16, !tbaa [[TBAA3]] @@ -83,7 +83,7 @@ long double test_powl(long double a, long double b) { // CHECK-WIN64: [[CALL:%.*]] = tail call x86_fp80 @cargl(ptr noundef nonnull byval({ x86_fp80, x86_fp80 }) align 16 [[BYVAL_TEMP]]) #[[ATTR5]] // // CHECK-I686-LABEL: define dso_local void @test_cargl( -// CHECK-I686-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ x86_fp80, x86_fp80 }) align 4 [[AGG_RESULT:%.*]], ptr nocapture noundef readonly byval({ x86_fp80, x86_fp80 }) align 4 [[CLD:%.*]]) local_unnamed_addr #[[ATTR2:[0-9]+]] { +// CHECK-I686-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ x86_fp80, x86_fp80 }) align 4 initializes((0, 10), (12, 22)) [[AGG_RESULT:%.*]], ptr nocapture noundef readonly byval({ x86_fp80, x86_fp80 }) align 4 [[CLD:%.*]]) local_unnamed_addr #[[ATTR2:[0-9]+]] { // CHECK-I686: [[CLD_REAL:%.*]] = load x86_fp80, ptr [[CLD]], align 4 // CHECK-I686: [[CLD_IMAG:%.*]] = load x86_fp80, ptr [[CLD_IMAGP:%.*]], align 4 // CHECK-I686: store x86_fp80 [[CLD_REAL]], ptr [[BYVAL_TEMP:%.*]], align 4 @@ -93,7 +93,7 @@ long double test_powl(long double a, long double b) { // CHECK-I686: store x86_fp80 [[MUL_IR:%.*]], ptr [[AGG_RESULT_IMAGP:%.*]], align 4 // // CHECK-PPC-LABEL: define dso_local void @test_cargl( -// CHECK-PPC-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ ppc_fp128, ppc_fp128 }) align 16 [[AGG_RESULT:%.*]], ptr nocapture noundef readonly byval({ ppc_fp128, ppc_fp128 }) align 16 [[CLD:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] { +// CHECK-PPC-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ ppc_fp128, ppc_fp128 }) align 16 initializes((0, 32)) [[AGG_RESULT:%.*]], ptr nocapture noundef readonly byval({ ppc_fp128, ppc_fp128 }) align 16 [[CLD:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] { // CHECK-PPC: [[CLD_REAL:%.*]] = load ppc_fp128, ptr [[CLD]], align 16 // CHECK-PPC: [[CLD_IMAG:%.*]] = load ppc_fp128, ptr [[CLD_IMAGP:%.*]], align 16 // CHECK-PPC: store ppc_fp128 [[CLD_REAL]], ptr [[BYVAL_TEMP:%.*]], align 16 @@ -103,7 +103,7 @@ long double test_powl(long double a, long double b) { // CHECK-PPC: store ppc_fp128 [[MUL_IR:%.*]], ptr [[AGG_RESULT_IMAGP:%.*]], align 16 // // CHECK-ARM-LABEL: define dso_local void @test_cargl( -// CHECK-ARM-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ double, double }) align 8 [[AGG_RESULT:%.*]], [2 x i64] noundef [[CLD_COERCE:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] { +// CHECK-ARM-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ double, double }) align 8 initializes((0, 16)) [[AGG_RESULT:%.*]], [2 x i64] noundef [[CLD_COERCE:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] { // CHECK-ARM: [[CALL:%.*]] = tail call double @cargl([2 x i64] noundef [[CLD_COERCE]]) #[[ATTR2]], !tbaa [[TBAA3]] // CHECK-ARM: store double [[MUL_RL:%.*]], ptr [[AGG_RESULT]], align 8 // CHECK-ARM: store double [[MUL_IR:%.*]], ptr [[AGG_RESULT_IMAGP:%.*]], align 8 @@ -121,7 +121,7 @@ long double test_powl(long double a, long double b) { // CHECK-AARCH: [[CALL:%.*]] = tail call fp128 @cargl([2 x fp128] noundef alignstack(16) [[CLD_COERCE]]) #[[ATTR2]], !tbaa [[TBAA2]] // // CHECK-SPIR-LABEL: define dso_local spir_func void @test_cargl( -// CHECK-SPIR-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ double, double }) align 8 [[AGG_RESULT:%.*]], ptr nocapture noundef readonly byval({ double, double }) align 8 [[CLD:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] { +// CHECK-SPIR-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ double, double }) align 8 initializes((0, 16)) [[AGG_RESULT:%.*]], ptr nocapture noundef readonly byval({ double, double }) align 8 [[CLD:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] { // CHECK-SPIR: [[CLD_REAL:%.*]] = load double, ptr [[CLD]], align 8 // CHECK-SPIR: [[CLD_IMAG:%.*]] = load double, ptr [[CLD_IMAGP:%.*]], align 8 // CHECK-SPIR: store double [[CLD_REAL]], ptr [[BYVAL_TEMP:%.*]], align 8 @@ -131,7 +131,7 @@ long double test_powl(long double a, long double b) { // CHECK-SPIR: store double [[MUL_IR:%.*]], ptr [[AGG_RESULT_IMAGP:%.*]], align 8 // // CHECK-MINGW32-LABEL: define dso_local void @test_cargl( -// CHECK-MINGW32-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ x86_fp80, x86_fp80 }) align 16 [[AGG_RESULT:%.*]], ptr nocapture noundef readonly [[CLD:%.*]]) local_unnamed_addr #[[ATTR0]] { +// CHECK-MINGW32-SAME: ptr dead_on_unwind noalias nocapture writable writeonly sret({ x86_fp80, x86_fp80 }) align 16 initializes((0, 10), (16, 26)) [[AGG_RESULT:%.*]], ptr nocapture noundef readonly [[CLD:%.*]]) local_unnamed_addr #[[ATTR0]] { // CHECK-MINGW32: [[CLD_REAL:%.*]] = load x86_fp80, ptr [[CLD]], align 16 // CHECK-MINGW32: [[CLD_IMAG:%.*]] = load x86_fp80, ptr [[CLD_IMAGP:%.*]], align 16 // CHECK-MINGW32: store x86_fp80 [[CLD_REAL]], ptr [[BYVAL_TEMP:%.*]], align 16 diff --git a/clang/test/CodeGen/ms-mixed-ptr-sizes.c b/clang/test/CodeGen/ms-mixed-ptr-sizes.c index f99c6196557e1..6ba315e165d3f 100644 --- a/clang/test/CodeGen/ms-mixed-ptr-sizes.c +++ b/clang/test/CodeGen/ms-mixed-ptr-sizes.c @@ -9,7 +9,7 @@ struct Foo { void use_foo(struct Foo *f); void test_sign_ext(struct Foo *f, int * __ptr32 __sptr i) { // X64-LABEL: define dso_local void @test_sign_ext({{.*}}ptr addrspace(270) noundef %i) -// X86-LABEL: define dso_local void @test_sign_ext(ptr noundef %f, ptr noundef %i) +// X86-LABEL: define dso_local void @test_sign_ext(ptr noundef initializes((8, 16)) %f, ptr noundef %i) // AARCH64-LABEL: define dso_local void @test_sign_ext({{.*}}ptr addrspace(270) noundef %i) local_unnamed_addr #0 // X64: %{{.+}} = addrspacecast ptr addrspace(270) %i to ptr // X86: %{{.+}} = addrspacecast ptr %i to ptr addrspace(272) @@ -18,9 +18,9 @@ void test_sign_ext(struct Foo *f, int * __ptr32 __sptr i) { use_foo(f); } void test_zero_ext(struct Foo *f, int * __ptr32 __uptr i) { -// X64-LABEL: define dso_local void @test_zero_ext({{.*}}ptr addrspace(271) noundef %i) +// X64-LABEL: define dso_local void @test_zero_ext(ptr noundef initializes((8, 16)) %f, ptr addrspace(271) noundef %i) // X86-LABEL: define dso_local void @test_zero_ext({{.*}}ptr addrspace(271) noundef %i) -// AARCH64-LABEL: define dso_local void @test_zero_ext({{.*}}ptr addrspace(271) noundef %i) local_unnamed_addr #0 +// AARCH64-LABEL: define dso_local void @test_zero_ext(ptr noundef initializes((8, 16)) %f, ptr addrspace(271) noundef %i) local_unnamed_addr #0 // X64: %{{.+}} = addrspacecast ptr addrspace(271) %i to ptr // X86: %{{.+}} = addrspacecast ptr addrspace(271) %i to ptr addrspace(272) // AARCH64: %{{.+}} = addrspacecast ptr addrspace(271) %i to ptr @@ -28,9 +28,9 @@ void test_zero_ext(struct Foo *f, int * __ptr32 __uptr i) { use_foo(f); } void test_trunc(struct Foo *f, int * __ptr64 i) { -// X64-LABEL: define dso_local void @test_trunc(ptr noundef %f, ptr noundef %i) +// X64-LABEL: define dso_local void @test_trunc(ptr noundef initializes((0, 4)) %f, ptr noundef %i) // X86-LABEL: define dso_local void @test_trunc({{.*}}ptr addrspace(272) noundef %i) -// AARCH64-LABEL: define dso_local void @test_trunc(ptr noundef %f, ptr noundef %i) local_unnamed_addr #0 +// AARCH64-LABEL: define dso_local void @test_trunc(ptr noundef initializes((0, 4)) %f, ptr noundef %i) local_unnamed_addr #0 // X64: %{{.+}} = addrspacecast ptr %i to ptr addrspace(270) // X86: %{{.+}} = addrspacecast ptr addrspace(272) %i to ptr // AARCH64: %{{.+}} = addrspacecast ptr %i to ptr addrspace(270) diff --git a/clang/test/CodeGen/sanitize-coverage-gated-callbacks.c b/clang/test/CodeGen/sanitize-coverage-gated-callbacks.c index 9a00d91d5ad08..e226591d80d07 100644 --- a/clang/test/CodeGen/sanitize-coverage-gated-callbacks.c +++ b/clang/test/CodeGen/sanitize-coverage-gated-callbacks.c @@ -1,5 +1,7 @@ // RUN: %clang %s -target arm64-apple-darwin -emit-llvm -S -fsanitize-coverage=trace-pc-guard -mllvm -sanitizer-coverage-gated-trace-callbacks=1 -o - | FileCheck %s --check-prefixes=CHECK,GATED // RUN: %clang %s -target arm64-apple-darwin -emit-llvm -S -fsanitize-coverage=trace-pc-guard -mllvm -sanitizer-coverage-gated-trace-callbacks=0 -o - | FileCheck %s --check-prefixes=CHECK,PLAIN +// RUN: %clang %s -target arm64-apple-darwin -emit-llvm -S -fsanitize-coverage=trace-pc-guard,trace-cmp -mllvm -sanitizer-coverage-gated-trace-callbacks=1 -o - | FileCheck %s --check-prefixes=CHECK,GATED,GATEDCMP +// RUN: %clang %s -target arm64-apple-darwin -emit-llvm -S -fsanitize-coverage=trace-pc-guard,trace-cmp -mllvm -sanitizer-coverage-gated-trace-callbacks=0 -o - | FileCheck %s --check-prefixes=CHECK,PLAIN,PLAINCMP // RUN: not %clang %s -target arm64-apple-darwin -emit-llvm -S -fsanitize-coverage=trace-pc -mllvm -sanitizer-coverage-gated-trace-callbacks=1 -o /dev/null 2>&1 | FileCheck %s --check-prefixes=INCOMPATIBLE // RUN: not %clang %s -target arm64-apple-darwin -emit-llvm -S -fsanitize-coverage=inline-8bit-counters -mllvm -sanitizer-coverage-gated-trace-callbacks=1 -o /dev/null 2>&1 | FileCheck %s --check-prefixes=INCOMPATIBLE // RUN: not %clang %s -target arm64-apple-darwin -emit-llvm -S -fsanitize-coverage=inline-bool-flag -mllvm -sanitizer-coverage-gated-trace-callbacks=1 -o /dev/null 2>&1 | FileCheck %s --check-prefixes=INCOMPATIBLE @@ -9,7 +11,7 @@ // PLAIN-NOT: section "__DATA,__sancov_gate" // Produce an error for all incompatible sanitizer coverage modes. -// INCOMPATIBLE: error: 'sanitizer-coverage-gated-trace-callbacks' is only supported with trace-pc-guard +// INCOMPATIBLE: error: 'sanitizer-coverage-gated-trace-callbacks' is only supported with trace-pc-guard or trace-cmp int x[10]; @@ -23,6 +25,11 @@ void foo(int n, int m) { // GATED-NEXT: br i1 [[CMP]], label %[[L_TRUE:.*]], label %[[L_FALSE:.*]], !prof [[WEIGHTS:!.+]] // GATED: [[L_TRUE]]: // GATED-NEXT: call void @__sanitizer_cov_trace_pc_guard + // COM: Check the trace-cmp instrumentation of the if (n) branch + // GATEDCMP: [[OPERAND:%.*]] = load i32, {{.*}} + // GATEDCMP-NEXT: br i1 [[CMP]], label %[[L_TRUE_1:.*]], label %[[L_FALSE_1:.*]] + // GATEDCMP: [[L_TRUE_1]]: + // GATEDCMP-NEXT: call void @__sanitizer_cov_trace_const_cmp4(i32 0, i32 [[OPERAND]]) // GATED: br i1 [[CMP]], label %[[L_TRUE_2:.*]], label %[[L_FALSE_2:.*]] // GATED: [[L_TRUE_2]]: // GATED-NEXT: call void @__sanitizer_cov_trace_pc_guard @@ -33,10 +40,12 @@ void foo(int n, int m) { // PLAIN-NOT: __sancov_should_track // But we should still be emitting the calls to the callback. // PLAIN: call void @__sanitizer_cov_trace_pc_guard + // PLAINCMP: [[OPERAND:%.*]] = load i32, {{.*}} + // PLAINCMP-NEXT: call void @__sanitizer_cov_trace_const_cmp4(i32 0, i32 [[OPERAND]]) if (n) { x[n] = 42; if (m) { x[m] = 41; } } -} +} \ No newline at end of file diff --git a/clang/test/CodeGen/tbaa-pointers.c b/clang/test/CodeGen/tbaa-pointers.c index 9417a0e2f09e8..068459f4dce11 100644 --- a/clang/test/CodeGen/tbaa-pointers.c +++ b/clang/test/CodeGen/tbaa-pointers.c @@ -190,8 +190,6 @@ typedef struct { int i1; } TypedefS; -// FIXME: The !tbaa tag for unnamed structs doesn't account for compatible -// types in C. void unamed_struct_typedef(TypedefS *ptr) { // COMMON-LABEL: define void @unamed_struct_typedef( // COMMON-SAME: ptr noundef [[PTRA:%.+]]) @@ -238,5 +236,4 @@ void unamed_struct_typedef(TypedefS *ptr) { // DEFAULT: [[S2_TY]] = !{!"S2", [[ANY_POINTER]], i64 0} // COMMON: [[INT_TAG]] = !{[[INT_TY:!.+]], [[INT_TY]], i64 0} // COMMON: [[INT_TY]] = !{!"int", [[CHAR]], i64 0} -// ENABLED: [[P1TYPEDEF]] = !{[[P1TYPEDEF_TY:!.+]], [[P1TYPEDEF_TY]], i64 0} -// ENABLED: [[P1TYPEDEF_TY]] = !{!"p1 _ZTS8TypedefS", [[ANY_POINTER]], i64 0} +// ENABLED: [[P1TYPEDEF]] = !{[[ANY_POINTER]], [[ANY_POINTER]], i64 0} diff --git a/clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp b/clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp index e8bb46982537b..7173b6e8fbe2a 100644 --- a/clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp +++ b/clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp @@ -16,7 +16,7 @@ struct NamedBitfields { }; // CHECK-LABEL: _Z4copyP14NamedBitfieldsS0_ -// CHECK-SAME: ptr nocapture noundef writeonly [[A1:%.*]], ptr nocapture noundef readonly [[A2:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { +// CHECK-SAME: ptr nocapture noundef writeonly initializes((0, 16)) [[A1:%.*]], ptr nocapture noundef readonly [[A2:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { // CHECK-NEXT: entry: // CHECK-NEXT: tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) [[A1]], ptr noundef nonnull align 8 dereferenceable(16) [[A2]], i64 16, i1 false), !tbaa.struct [[TBAA_STRUCT2:![0-9]+]] // CHECK-NEXT: ret void diff --git a/clang/test/CodeGen/union-tbaa1.c b/clang/test/CodeGen/union-tbaa1.c index a5faa8269aed6..5263b1714c8c6 100644 --- a/clang/test/CodeGen/union-tbaa1.c +++ b/clang/test/CodeGen/union-tbaa1.c @@ -8,7 +8,7 @@ typedef union __attribute__((aligned(4))) { void bar(vect32 p[][2]); // CHECK-LABEL: define dso_local void @fred -// CHECK-SAME: (i32 noundef [[NUM:%.*]], ptr nocapture noundef writeonly [[VEC:%.*]], ptr nocapture noundef readonly [[INDEX:%.*]], ptr nocapture noundef readonly [[ARR:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { +// CHECK-SAME: (i32 noundef [[NUM:%.*]], ptr nocapture noundef writeonly initializes((0, 8)) [[VEC:%.*]], ptr nocapture noundef readonly [[INDEX:%.*]], ptr nocapture noundef readonly [[ARR:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { // CHECK-NEXT: entry: // CHECK-NEXT: [[TMP:%.*]] = alloca [4 x [2 x %union.vect32]], align 8 // CHECK-NEXT: call void @llvm.lifetime.start.p0(i64 32, ptr nonnull [[TMP]]) #[[ATTR3:[0-9]+]] diff --git a/clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu b/clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu index b295bbbdaaf95..838bdda825728 100644 --- a/clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu +++ b/clang/test/CodeGenCUDA/amdgpu-kernel-arg-pointer-type.cu @@ -188,14 +188,14 @@ __global__ void kernel2(int &x) { // CHECK-SPIRV-NEXT: ret void // // OPT-LABEL: define dso_local amdgpu_kernel void @_Z7kernel3PU3AS2iPU3AS1i( -// OPT-SAME: ptr addrspace(2) nocapture noundef readonly [[X:%.*]], ptr addrspace(1) nocapture noundef writeonly [[Y:%.*]]) local_unnamed_addr #[[ATTR0]] { +// OPT-SAME: ptr addrspace(2) nocapture noundef readonly [[X:%.*]], ptr addrspace(1) nocapture noundef writeonly initializes((0, 4)) [[Y:%.*]]) local_unnamed_addr #[[ATTR0]] { // OPT-NEXT: [[ENTRY:.*:]] // OPT-NEXT: [[TMP0:%.*]] = load i32, ptr addrspace(2) [[X]], align 4 // OPT-NEXT: store i32 [[TMP0]], ptr addrspace(1) [[Y]], align 4 // OPT-NEXT: ret void // // OPT-SPIRV-LABEL: define spir_kernel void @_Z7kernel3PU3AS2iPU3AS1i( -// OPT-SPIRV-SAME: ptr addrspace(2) nocapture noundef readonly [[X:%.*]], ptr addrspace(1) nocapture noundef writeonly [[Y:%.*]]) local_unnamed_addr addrspace(4) #[[ATTR1:[0-9]+]] { +// OPT-SPIRV-SAME: ptr addrspace(2) nocapture noundef readonly [[X:%.*]], ptr addrspace(1) nocapture noundef writeonly initializes((0, 4)) [[Y:%.*]]) local_unnamed_addr addrspace(4) #[[ATTR1:[0-9]+]] { // OPT-SPIRV-NEXT: [[ENTRY:.*:]] // OPT-SPIRV-NEXT: [[TMP0:%.*]] = load i32, ptr addrspace(2) [[X]], align 4 // OPT-SPIRV-NEXT: store i32 [[TMP0]], ptr addrspace(1) [[Y]], align 4 diff --git a/clang/test/CodeGenCXX/aarch64-sve-vector-conditional-op.cpp b/clang/test/CodeGenCXX/aarch64-sve-vector-conditional-op.cpp index 7e7eff3e02dca..d6fa26bd34099 100644 --- a/clang/test/CodeGenCXX/aarch64-sve-vector-conditional-op.cpp +++ b/clang/test/CodeGenCXX/aarch64-sve-vector-conditional-op.cpp @@ -164,10 +164,10 @@ svint32_t cond_i32_splat(svint32_t a) { // CHECK-LABEL: @_Z14cond_u32_splatu12__SVUint32_t( // CHECK-NEXT: entry: -// CHECK-NEXT: [[CMP:%.*]] = icmp ult [[A:%.*]], shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer) +// CHECK-NEXT: [[CMP:%.*]] = icmp ult [[A:%.*]], splat (i32 1) // CHECK-NEXT: [[CONV:%.*]] = zext [[CMP]] to // CHECK-NEXT: [[VECTOR_COND:%.*]] = icmp ne [[CONV]], zeroinitializer -// CHECK-NEXT: [[VECTOR_SELECT:%.*]] = select [[VECTOR_COND]], [[A]], shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer) +// CHECK-NEXT: [[VECTOR_SELECT:%.*]] = select [[VECTOR_COND]], [[A]], splat (i32 1) // CHECK-NEXT: ret [[VECTOR_SELECT]] // svuint32_t cond_u32_splat(svuint32_t a) { @@ -188,10 +188,10 @@ svint64_t cond_i64_splat(svint64_t a) { // CHECK-LABEL: @_Z14cond_u64_splatu12__SVUint64_t( // CHECK-NEXT: entry: -// CHECK-NEXT: [[CMP:%.*]] = icmp ult [[A:%.*]], shufflevector ( insertelement ( poison, i64 1, i64 0), poison, zeroinitializer) +// CHECK-NEXT: [[CMP:%.*]] = icmp ult [[A:%.*]], splat (i64 1) // CHECK-NEXT: [[CONV:%.*]] = zext [[CMP]] to // CHECK-NEXT: [[VECTOR_COND:%.*]] = icmp ne [[CONV]], zeroinitializer -// CHECK-NEXT: [[VECTOR_SELECT:%.*]] = select [[VECTOR_COND]], [[A]], shufflevector ( insertelement ( poison, i64 1, i64 0), poison, zeroinitializer) +// CHECK-NEXT: [[VECTOR_SELECT:%.*]] = select [[VECTOR_COND]], [[A]], splat (i64 1) // CHECK-NEXT: ret [[VECTOR_SELECT]] // svuint64_t cond_u64_splat(svuint64_t a) { diff --git a/clang/test/CodeGenCXX/inline-then-fold-variadics.cpp b/clang/test/CodeGenCXX/inline-then-fold-variadics.cpp index a0673b96626d1..4aa79a28dd7d3 100644 --- a/clang/test/CodeGenCXX/inline-then-fold-variadics.cpp +++ b/clang/test/CodeGenCXX/inline-then-fold-variadics.cpp @@ -108,7 +108,7 @@ typedef uint64_t ulong2 __attribute__((__vector_size__(16), __aligned__(16))); int first_i32_ulong2(int x, ulong2 *y) { return first(x, *y); } // CHECK-LABEL: define {{[^@]+}}@second_i32_ulong2 -// CHECK-SAME: (i32 noundef [[X:%.*]], ptr nocapture noundef readonly [[Y:%.*]], ptr nocapture noundef writeonly [[R:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] { +// CHECK-SAME: (i32 noundef [[X:%.*]], ptr nocapture noundef readonly [[Y:%.*]], ptr nocapture noundef writeonly initializes((0, 16)) [[R:%.*]]) local_unnamed_addr #[[ATTR1:[0-9]+]] { // CHECK-NEXT: entry: // CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, ptr [[Y]], align 16, !tbaa [[TBAA2:![0-9]+]] // CHECK-NEXT: store <2 x i64> [[TMP0]], ptr [[R]], align 16, !tbaa [[TBAA2]] @@ -119,7 +119,7 @@ void second_i32_ulong2(int x, ulong2 *y, ulong2 *r) { } // CHECK-LABEL: define {{[^@]+}}@first_ulong2_i32 -// CHECK-SAME: (ptr nocapture noundef readonly [[X:%.*]], i32 noundef [[Y:%.*]], ptr nocapture noundef writeonly [[R:%.*]]) local_unnamed_addr #[[ATTR1]] { +// CHECK-SAME: (ptr nocapture noundef readonly [[X:%.*]], i32 noundef [[Y:%.*]], ptr nocapture noundef writeonly initializes((0, 16)) [[R:%.*]]) local_unnamed_addr #[[ATTR1]] { // CHECK-NEXT: entry: // CHECK-NEXT: [[TMP0:%.*]] = load <2 x i64>, ptr [[X]], align 16, !tbaa [[TBAA2]] // CHECK-NEXT: store <2 x i64> [[TMP0]], ptr [[R]], align 16, !tbaa [[TBAA2]] @@ -157,7 +157,7 @@ extern "C" { int first_i32_asc(int x, asc *y) { return first(x, *y); } // CHECK-LABEL: define {{[^@]+}}@second_i32_asc -// CHECK-SAME: (i32 noundef [[X:%.*]], ptr nocapture noundef readonly [[Y:%.*]], ptr nocapture noundef writeonly [[R:%.*]]) local_unnamed_addr #[[ATTR1]] { +// CHECK-SAME: (i32 noundef [[X:%.*]], ptr nocapture noundef readonly [[Y:%.*]], ptr nocapture noundef writeonly initializes((0, 24)) [[R:%.*]]) local_unnamed_addr #[[ATTR1]] { // CHECK-NEXT: entry: // CHECK-NEXT: tail call void @llvm.memmove.p0.p0.i32(ptr noundef nonnull align 8 dereferenceable(24) [[R]], ptr noundef nonnull align 1 dereferenceable(24) [[Y]], i32 24, i1 false) // CHECK-NEXT: ret void @@ -165,7 +165,7 @@ int first_i32_asc(int x, asc *y) { return first(x, *y); } void second_i32_asc(int x, asc *y, asc *r) { *r = second(x, *y); } // CHECK-LABEL: define {{[^@]+}}@first_asc_i32 -// CHECK-SAME: (ptr nocapture noundef readonly [[X:%.*]], i32 noundef [[Y:%.*]], ptr nocapture noundef writeonly [[R:%.*]]) local_unnamed_addr #[[ATTR1]] { +// CHECK-SAME: (ptr nocapture noundef readonly [[X:%.*]], i32 noundef [[Y:%.*]], ptr nocapture noundef writeonly initializes((0, 24)) [[R:%.*]]) local_unnamed_addr #[[ATTR1]] { // CHECK-NEXT: entry: // CHECK-NEXT: tail call void @llvm.memmove.p0.p0.i32(ptr noundef nonnull align 8 dereferenceable(24) [[R]], ptr noundef nonnull align 1 dereferenceable(24) [[X]], i32 24, i1 false) // CHECK-NEXT: ret void diff --git a/clang/test/CodeGenCXX/wasm-args-returns.cpp b/clang/test/CodeGenCXX/wasm-args-returns.cpp index e80dfefedece1..b57896b0e0ffe 100644 --- a/clang/test/CodeGenCXX/wasm-args-returns.cpp +++ b/clang/test/CodeGenCXX/wasm-args-returns.cpp @@ -30,7 +30,7 @@ struct two_fields { double d, e; }; test(two_fields); -// CHECK: define void @_Z7forward10two_fields(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.two_fields) align 8 %{{.*}}, ptr nocapture readonly byval(%struct.two_fields) align 8 %{{.*}}) +// CHECK: define void @_Z7forward10two_fields(ptr dead_on_unwind noalias nocapture writable writeonly sret(%struct.two_fields) align 8 initializes((0, 16)) %{{.*}}, ptr nocapture readonly byval(%struct.two_fields) align 8 %{{.*}}) // // CHECK: define void @_Z15test_two_fieldsv() // CHECK: %[[tmp:.*]] = alloca %struct.two_fields, align 8 diff --git a/clang/test/CodeGenHLSL/builtins/StructuredBuffers-methods-lib.hlsl b/clang/test/CodeGenHLSL/builtins/StructuredBuffers-methods-lib.hlsl new file mode 100644 index 0000000000000..128fff9b90a22 --- /dev/null +++ b/clang/test/CodeGenHLSL/builtins/StructuredBuffers-methods-lib.hlsl @@ -0,0 +1,25 @@ +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-DXIL +// RUN-DISABLED: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV + +// NOTE: SPIRV codegen for resource methods is not yet implemented + +RWStructuredBuffer RWSB1 : register(u0); +RWStructuredBuffer RWSB2 : register(u1); + +// CHECK: %"class.hlsl::RWStructuredBuffer" = type { target("dx.RawBuffer", float, 1, 0), float } + +export void TestIncrementCounter() { + RWSB1.IncrementCounter(); +} + +// CHECK: define void @_Z20TestIncrementCounterv() +// CHECK-DXIL: call i32 @llvm.dx.bufferUpdateCounter.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0) %{{[0-9]+}}, i8 1) + +export void TestDecrementCounter() { + RWSB2.DecrementCounter(); +} + +// CHECK: define void @_Z20TestDecrementCounterv() +// CHECK-DXIL: call i32 @llvm.dx.bufferUpdateCounter.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0) %{{[0-9]+}}, i8 -1) + +// CHECK: declare i32 @llvm.dx.bufferUpdateCounter.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0), i8) diff --git a/clang/test/CodeGenHLSL/builtins/StructuredBuffers-methods-ps.hlsl b/clang/test/CodeGenHLSL/builtins/StructuredBuffers-methods-ps.hlsl new file mode 100644 index 0000000000000..e895d30b54007 --- /dev/null +++ b/clang/test/CodeGenHLSL/builtins/StructuredBuffers-methods-ps.hlsl @@ -0,0 +1,28 @@ +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-pixel -x hlsl -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-DXIL +// RUN-DISABLED: %clang_cc1 -triple spirv-vulkan-pixel -x hlsl -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV + +// NOTE: SPIRV codegen for resource methods is not yet implemented + +RWStructuredBuffer RWSB1, RWSB2; +RasterizerOrderedStructuredBuffer ROSB1, ROSB2; + +// CHECK: %"class.hlsl::RWStructuredBuffer" = type { target("dx.RawBuffer", float, 1, 0), float } + +export void TestIncrementCounter() { +// CHECK: define void @_Z20TestIncrementCounterv() +// CHECK-DXIL: call i32 @llvm.dx.bufferUpdateCounter.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0) %{{[0-9]+}}, i8 1) +// CHECK-DXIL: call i32 @llvm.dx.bufferUpdateCounter.tdx.RawBuffer_f32_1_1t(target("dx.RawBuffer", float, 1, 1) %{{[0-9]+}}, i8 1) + RWSB1.IncrementCounter(); + ROSB1.IncrementCounter(); +} + +export void TestDecrementCounter() { +// CHECK: define void @_Z20TestDecrementCounterv() +// CHECK-DXIL: call i32 @llvm.dx.bufferUpdateCounter.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0) %{{[0-9]+}}, i8 -1) +// CHECK-DXIL: call i32 @llvm.dx.bufferUpdateCounter.tdx.RawBuffer_f32_1_1t(target("dx.RawBuffer", float, 1, 1) %{{[0-9]+}}, i8 -1) + RWSB2.DecrementCounter(); + ROSB2.DecrementCounter(); +} + +// CHECK: declare i32 @llvm.dx.bufferUpdateCounter.tdx.RawBuffer_f32_1_0t(target("dx.RawBuffer", float, 1, 0), i8) +// CHECK: declare i32 @llvm.dx.bufferUpdateCounter.tdx.RawBuffer_f32_1_1t(target("dx.RawBuffer", float, 1, 1), i8) diff --git a/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl b/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl new file mode 100644 index 0000000000000..87bb1dee01905 --- /dev/null +++ b/clang/test/CodeGenHLSL/builtins/WaveActiveAnyTrue.hlsl @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -finclude-default-header -fnative-half-type -triple \ +// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: FileCheck %s --check-prefixes=CHECK,CHECK-DXIL +// RUN: %clang_cc1 -finclude-default-header -fnative-half-type -triple \ +// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: FileCheck %s --check-prefixes=CHECK,CHECK-SPIRV + +// Test basic lowering to runtime function call for int values. + +// CHECK-LABEL: define {{.*}}test +bool test(bool p1) { + // CHECK-SPIRV: %[[#entry_tok0:]] = call token @llvm.experimental.convergence.entry() + // CHECK-SPIRV: %[[RET:.*]] = call spir_func i1 @llvm.spv.wave.any(i1 %{{[a-zA-Z0-9]+}}) [ "convergencectrl"(token %[[#entry_tok0]]) ] + // CHECK-DXIL: %[[RET:.*]] = call i1 @llvm.dx.wave.any(i1 %{{[a-zA-Z0-9]+}}) + // CHECK: ret i1 %[[RET]] + return WaveActiveAnyTrue(p1); +} diff --git a/clang/test/CodeGenHLSL/builtins/asdouble.hlsl b/clang/test/CodeGenHLSL/builtins/asdouble.hlsl new file mode 100644 index 0000000000000..f1c31107cdcad --- /dev/null +++ b/clang/test/CodeGenHLSL/builtins/asdouble.hlsl @@ -0,0 +1,37 @@ +// RUN: %clang_cc1 -finclude-default-header -triple \ +// RUN: dxil-pc-shadermodel6.3-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: FileCheck %s --check-prefixes=CHECK,CHECK-DXIL +// RUN: %clang_cc1 -finclude-default-header -triple \ +// RUN: spirv-pc-vulkan-compute %s -emit-llvm -disable-llvm-passes -o - | \ +// RUN: FileCheck %s --check-prefixes=CHECK,CHECK-SPV + +// Test lowering of asdouble expansion to shuffle/bitcast and splat when required + +// CHECK-LABEL: test_uint +double test_uint(uint low, uint high) { + // CHECK-SPV: %[[LOW_INSERT:.*]] = insertelement <1 x i32> + // CHECK-SPV: %[[LOW_SHUFFLE:.*]] = shufflevector <1 x i32> %[[LOW_INSERT]], {{.*}} zeroinitializer + // CHECK-SPV: %[[HIGH_INSERT:.*]] = insertelement <1 x i32> + // CHECK-SPV: %[[HIGH_SHUFFLE:.*]] = shufflevector <1 x i32> %[[HIGH_INSERT]], {{.*}} zeroinitializer + + // CHECK-SPV: %[[SHUFFLE0:.*]] = shufflevector <1 x i32> %[[LOW_SHUFFLE]], <1 x i32> %[[HIGH_SHUFFLE]], + // CHECK-SPV-SAME: {{.*}} + // CHECK-SPV: bitcast <2 x i32> %[[SHUFFLE0]] to double + + // CHECK-DXIL: call double @llvm.dx.asdouble.i32 + return asdouble(low, high); +} + +// CHECK-DXIL: declare double @llvm.dx.asdouble.i32 + +// CHECK-LABEL: test_vuint +double3 test_vuint(uint3 low, uint3 high) { + // CHECK-SPV: %[[SHUFFLE1:.*]] = shufflevector + // CHECK-SPV-SAME: {{.*}} + // CHECK-SPV: bitcast <6 x i32> %[[SHUFFLE1]] to <3 x double> + + // CHECK-DXIL: call <3 x double> @llvm.dx.asdouble.v3i32 + return asdouble(low, high); +} + +// CHECK-DXIL: declare <3 x double> @llvm.dx.asdouble.v3i32 diff --git a/clang/test/CodeGenHLSL/resource-bindings.hlsl b/clang/test/CodeGenHLSL/resource-bindings.hlsl new file mode 100644 index 0000000000000..bfec90e1871f8 --- /dev/null +++ b/clang/test/CodeGenHLSL/resource-bindings.hlsl @@ -0,0 +1,19 @@ +// RUN: %clang_cc1 -triple dxil--shadermodel6.6-compute -x hlsl -finclude-default-header -emit-llvm -o - %s | FileCheck %s + +// CHECK: define internal void @_init_resource_bindings() { + +// CHECK: %U0S0_h = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_1_0_0t(i32 0, i32 0, i32 1, i32 0, i1 false) +RWBuffer U0S0 : register(u0); + +// CHECK: %U5S3_h = call target("dx.TypedBuffer", float, 1, 0, 0) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_f32_1_0_0t(i32 3, i32 5, i32 1, i32 0, i1 false) +RWBuffer U5S3 : register(u5, space3); + +// CHECK: %T2S2_h = call target("dx.RawBuffer", i32, 0, 0) @llvm.dx.handle.fromBinding.tdx.RawBuffer_i32_0_0t(i32 2, i32 2, i32 1, i32 0, i1 false) +StructuredBuffer T2S2 : register(t2, space2); +struct S { + float4 f; + int i; +}; + +// CHECK: %T3S0_h = call target("dx.RawBuffer", %struct.S = type { <4 x float>, i32, [12 x i8] }, 0, 0) @llvm.dx.handle.fromBinding.tdx.RawBuffer_s_struct.Ss_0_0t(i32 0, i32 3, i32 1, i32 0, i1 false) +StructuredBuffer T3S0 : register(t3); diff --git a/clang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl b/clang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl index 5cb8af6fc6df9..35a08a90d8cf9 100644 --- a/clang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl +++ b/clang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl @@ -402,14 +402,14 @@ struct_arr16 func_ret_struct_arr16() return s; } -// CHECK: define{{.*}} void @func_ret_struct_arr32(ptr addrspace(5) dead_on_unwind noalias nocapture writable writeonly sret(%struct.struct_arr32) align 4 %agg.result) +// CHECK: define{{.*}} void @func_ret_struct_arr32(ptr addrspace(5) dead_on_unwind noalias nocapture writable writeonly sret(%struct.struct_arr32) align 4 initializes((0, 128)) %agg.result) struct_arr32 func_ret_struct_arr32() { struct_arr32 s = { 0 }; return s; } -// CHECK: define{{.*}} void @func_ret_struct_arr33(ptr addrspace(5) dead_on_unwind noalias nocapture writable writeonly sret(%struct.struct_arr33) align 4 %agg.result) +// CHECK: define{{.*}} void @func_ret_struct_arr33(ptr addrspace(5) dead_on_unwind noalias nocapture writable writeonly sret(%struct.struct_arr33) align 4 initializes((0, 132)) %agg.result) struct_arr33 func_ret_struct_arr33() { struct_arr33 s = { 0 }; @@ -438,7 +438,7 @@ different_size_type_pair func_different_size_type_pair_ret() return s; } -// CHECK: define{{.*}} void @func_flexible_array_ret(ptr addrspace(5) dead_on_unwind noalias nocapture writable writeonly sret(%struct.flexible_array) align 4 %agg.result) +// CHECK: define{{.*}} void @func_flexible_array_ret(ptr addrspace(5) dead_on_unwind noalias nocapture writable writeonly sret(%struct.flexible_array) align 4 initializes((0, 4)) %agg.result) flexible_array func_flexible_array_ret() { flexible_array s = { 0 }; @@ -467,7 +467,7 @@ double_nested_struct func_double_nested_struct_ret(int4 arg0, int arg1) { // CHECK: define{{.*}} void @func_large_struct_padding_arg_direct(i8 %arg.coerce0, i32 %arg.coerce1, i8 %arg.coerce2, i32 %arg.coerce3, i8 %arg.coerce4, i8 %arg.coerce5, i16 %arg.coerce6, i16 %arg.coerce7, [3 x i8] %arg.coerce8, i64 %arg.coerce9, i32 %arg.coerce10, i8 %arg.coerce11, i32 %arg.coerce12, i16 %arg.coerce13, i8 %arg.coerce14) void func_large_struct_padding_arg_direct(large_struct_padding arg) { } -// CHECK: define{{.*}} void @func_large_struct_padding_arg_store(ptr addrspace(1) nocapture noundef writeonly %out, ptr addrspace(5) nocapture noundef readonly byref(%struct.large_struct_padding) align 8 %{{.*}}) +// CHECK: define{{.*}} void @func_large_struct_padding_arg_store(ptr addrspace(1) nocapture noundef writeonly initializes((0, 56)) %out, ptr addrspace(5) nocapture noundef readonly byref(%struct.large_struct_padding) align 8 %{{.*}}) void func_large_struct_padding_arg_store(global large_struct_padding* out, large_struct_padding arg) { *out = arg; } diff --git a/clang/test/CodeGenOpenCL/amdgpu-call-kernel.cl b/clang/test/CodeGenOpenCL/amdgpu-call-kernel.cl index e4678abf33500..dfca09d034cdb 100755 --- a/clang/test/CodeGenOpenCL/amdgpu-call-kernel.cl +++ b/clang/test/CodeGenOpenCL/amdgpu-call-kernel.cl @@ -1,6 +1,6 @@ // REQUIRES: amdgpu-registered-target // RUN: %clang_cc1 -triple amdgcn-unknown-unknown -emit-llvm -o - %s | FileCheck %s -// CHECK: define{{.*}} amdgpu_kernel void @test_call_kernel(ptr addrspace(1) nocapture noundef writeonly align 4 %out) +// CHECK: define{{.*}} amdgpu_kernel void @test_call_kernel(ptr addrspace(1) nocapture noundef writeonly align 4 initializes((0, 4)) %out) // CHECK: store i32 4, ptr addrspace(1) %out, align 4 kernel void test_kernel(global int *out) diff --git a/clang/test/CodeGenOpenCL/amdgpu-features.cl b/clang/test/CodeGenOpenCL/amdgpu-features.cl index 61cbf5e65d0d2..f739872685e78 100644 --- a/clang/test/CodeGenOpenCL/amdgpu-features.cl +++ b/clang/test/CodeGenOpenCL/amdgpu-features.cl @@ -89,7 +89,7 @@ // GFX941: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot3-insts,+dot4-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+fp8-conversion-insts,+fp8-insts,+gfx8-insts,+gfx9-insts,+gfx90a-insts,+gfx940-insts,+mai-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize64,+xf32-insts" // GFX942: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot3-insts,+dot4-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+fp8-conversion-insts,+fp8-insts,+gfx8-insts,+gfx9-insts,+gfx90a-insts,+gfx940-insts,+mai-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize64,+xf32-insts" // GFX9_4_Generic: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot3-insts,+dot4-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+gfx8-insts,+gfx9-insts,+gfx90a-insts,+gfx940-insts,+mai-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize64" -// GFX950: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot3-insts,+dot4-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+fp8-conversion-insts,+fp8-insts,+gfx8-insts,+gfx9-insts,+gfx90a-insts,+gfx940-insts,+gfx950-insts,+mai-insts,+prng-inst,+s-memrealtime,+s-memtime-inst,+wavefrontsize64" +// GFX950: "target-features"="+16-bit-insts,+ashr-pk-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-buffer-pk-add-bf16-inst,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot12-insts,+dot13-insts,+dot2-insts,+dot3-insts,+dot4-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+f16bf16-to-fp6bf6-cvt-scale-insts,+fp8-conversion-insts,+fp8-insts,+gfx8-insts,+gfx9-insts,+gfx90a-insts,+gfx940-insts,+gfx950-insts,+mai-insts,+permlane16-swap,+permlane32-swap,+prng-inst,+s-memrealtime,+s-memtime-inst,+wavefrontsize64" // GFX1010: "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dpp,+gfx10-insts,+gfx8-insts,+gfx9-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize32" // GFX1011: "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+gfx10-insts,+gfx8-insts,+gfx9-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize32" // GFX1012: "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+gfx10-insts,+gfx8-insts,+gfx9-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize32" @@ -101,17 +101,17 @@ // GFX1034: "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx8-insts,+gfx9-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize32" // GFX1035: "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx8-insts,+gfx9-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize32" // GFX1036: "target-features"="+16-bit-insts,+ci-insts,+dl-insts,+dot1-insts,+dot10-insts,+dot2-insts,+dot5-insts,+dot6-insts,+dot7-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx8-insts,+gfx9-insts,+s-memrealtime,+s-memtime-inst,+wavefrontsize32" -// GFX1100: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" -// GFX1101: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" -// GFX1102: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" -// GFX1103: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" -// GFX1150: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" -// GFX1151: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" -// GFX1152: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" -// GFX1153: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" -// GFX1200: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot10-insts,+dot11-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+fp8-conversion-insts,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx12-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" -// GFX1201: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot10-insts,+dot11-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+fp8-conversion-insts,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx12-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1100: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1101: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1102: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1103: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1150: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1151: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1152: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1153: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1200: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-buffer-pk-add-bf16-inst,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot10-insts,+dot11-insts,+dot12-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+fp8-conversion-insts,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx12-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" +// GFX1201: "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-buffer-pk-add-bf16-inst,+atomic-ds-pk-add-16-insts,+atomic-fadd-rtn-insts,+atomic-flat-pk-add-16-insts,+atomic-global-pk-add-bf16-inst,+ci-insts,+dl-insts,+dot10-insts,+dot11-insts,+dot12-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+fp8-conversion-insts,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx12-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize32" "uniform-work-group-size"="true" -// GFX1103-W64: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize64" +// GFX1103-W64: "target-features"="+16-bit-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot10-insts,+dot12-insts,+dot5-insts,+dot7-insts,+dot8-insts,+dot9-insts,+dpp,+gfx10-3-insts,+gfx10-insts,+gfx11-insts,+gfx8-insts,+gfx9-insts,+wavefrontsize64" kernel void test() {} diff --git a/clang/test/CodeGenOpenCL/builtins-amdgcn-dl-insts-err.cl b/clang/test/CodeGenOpenCL/builtins-amdgcn-dl-insts-err.cl index 5db280f339e71..b8c46039dac53 100644 --- a/clang/test/CodeGenOpenCL/builtins-amdgcn-dl-insts-err.cl +++ b/clang/test/CodeGenOpenCL/builtins-amdgcn-dl-insts-err.cl @@ -7,12 +7,14 @@ typedef unsigned int uint; typedef half __attribute__((ext_vector_type(2))) half2; typedef short __attribute__((ext_vector_type(2))) short2; typedef unsigned short __attribute__((ext_vector_type(2))) ushort2; +typedef __bf16 __attribute__((ext_vector_type(2))) bfloat2; #pragma OPENCL EXTENSION cl_khr_fp16 : enable kernel void builtins_amdgcn_dl_insts_err( global float *fOut, global int *siOut, global uint *uiOut, global short *sOut, global int *iOut, global half *hOut, half2 v2hA, half2 v2hB, float fC, half hC, + bfloat2 v2bfbfA, bfloat2 v2bfbfB, short2 v2ssA, short2 v2ssB, short sC, int siA, int siB, int siC, ushort2 v2usA, ushort2 v2usB, uint uiA, uint uiB, uint uiC, int A, int B, int C) { @@ -23,8 +25,11 @@ kernel void builtins_amdgcn_dl_insts_err( sOut[0] = __builtin_amdgcn_fdot2_bf16_bf16(v2ssA, v2ssB, sC); // expected-error {{'__builtin_amdgcn_fdot2_bf16_bf16' needs target feature dot9-insts}} - fOut[3] = __builtin_amdgcn_fdot2_f32_bf16(v2ssA, v2ssB, fC, false); // expected-error {{'__builtin_amdgcn_fdot2_f32_bf16' needs target feature dot9-insts}} - fOut[4] = __builtin_amdgcn_fdot2_f32_bf16(v2ssA, v2ssB, fC, true); // expected-error {{'__builtin_amdgcn_fdot2_f32_bf16' needs target feature dot9-insts}} + fOut[3] = __builtin_amdgcn_fdot2_f32_bf16(v2ssA, v2ssB, fC, false); // expected-error {{'__builtin_amdgcn_fdot2_f32_bf16' needs target feature dot12-insts}} + fOut[4] = __builtin_amdgcn_fdot2_f32_bf16(v2ssA, v2ssB, fC, true); // expected-error {{'__builtin_amdgcn_fdot2_f32_bf16' needs target feature dot12-insts}} + + fOut[3] = __builtin_amdgcn_fdot2c_f32_bf16(v2bfbfA, v2bfbfB, fC, false); // expected-error {{'__builtin_amdgcn_fdot2c_f32_bf16' needs target feature dot13-insts}} + fOut[4] = __builtin_amdgcn_fdot2c_f32_bf16(v2bfbfA, v2bfbfB, fC, true); // expected-error {{'__builtin_amdgcn_fdot2c_f32_bf16' needs target feature dot13-insts}} siOut[0] = __builtin_amdgcn_sdot2(v2ssA, v2ssB, siC, false); // expected-error {{'__builtin_amdgcn_sdot2' needs target feature dot2-insts}} siOut[1] = __builtin_amdgcn_sdot2(v2ssA, v2ssB, siC, true); // expected-error {{'__builtin_amdgcn_sdot2' needs target feature dot2-insts}} diff --git a/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-err.cl b/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-err.cl index 86f4f73c81c0f..5b75ee417e545 100644 --- a/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-err.cl +++ b/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-err.cl @@ -11,6 +11,10 @@ // REQUIRES: amdgpu-registered-target typedef unsigned int uint; -void test_prng_b32(global uint* out, uint a) { +typedef unsigned int uint2 __attribute__((ext_vector_type(2))); + +void test(global uint* out, global uint2* out_v2u32, uint a, uint b) { *out = __builtin_amdgcn_prng_b32(a); // expected-error{{'__builtin_amdgcn_prng_b32' needs target feature prng-inst}} + *out_v2u32 = __builtin_amdgcn_permlane16_swap(a, b, false, false); // expected-error{{'__builtin_amdgcn_permlane16_swap' needs target feature permlane16-swap}} + *out_v2u32 = __builtin_amdgcn_permlane32_swap(a, b, false, false); // expected-error{{'__builtin_amdgcn_permlane32_swap' needs target feature permlane32-swap}} } diff --git a/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-read-tr.cl b/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-read-tr.cl new file mode 100644 index 0000000000000..39fa46d5845f4 --- /dev/null +++ b/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950-read-tr.cl @@ -0,0 +1,50 @@ +// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 4 +// RUN: %clang_cc1 -triple amdgcn-unknown-unknown -target-cpu gfx950 -emit-llvm -o - %s | FileCheck --check-prefix=GFX950 %s + +typedef int v2i __attribute__((ext_vector_type(2))); +typedef int v3i __attribute__((ext_vector_type(3))); +typedef short v4s __attribute__((ext_vector_type(4))); + +// GFX950-LABEL: define dso_local <2 x i32> @test_amdgcn_ds_read_b64_tr_b4_v2i32( +// GFX950-SAME: ptr addrspace(3) nocapture noundef readonly [[INPTR:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { +// GFX950-NEXT: entry: +// GFX950-NEXT: [[TMP0:%.*]] = tail call <2 x i32> @llvm.amdgcn.ds.read.tr4.b64.v2i32(ptr addrspace(3) [[INPTR]]) +// GFX950-NEXT: ret <2 x i32> [[TMP0]] +// +v2i test_amdgcn_ds_read_b64_tr_b4_v2i32(local v2i* inptr) +{ + return __builtin_amdgcn_ds_read_tr4_b64_v2i32(inptr); +} + +// GFX950-LABEL: define dso_local <3 x i32> @test_amdgcn_ds_read_b96_tr_b6_v3i32( +// GFX950-SAME: ptr addrspace(3) nocapture noundef readonly [[INPTR:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { +// GFX950-NEXT: entry: +// GFX950-NEXT: [[TMP0:%.*]] = tail call <3 x i32> @llvm.amdgcn.ds.read.tr6.b96.v3i32(ptr addrspace(3) [[INPTR]]) +// GFX950-NEXT: ret <3 x i32> [[TMP0]] +// +v3i test_amdgcn_ds_read_b96_tr_b6_v3i32(local v3i* inptr) +{ + return __builtin_amdgcn_ds_read_tr6_b96_v3i32(inptr); +} + +// GFX950-LABEL: define dso_local <2 x i32> @test_amdgcn_ds_read_b64_tr_b8_v2i32( +// GFX950-SAME: ptr addrspace(3) nocapture noundef readonly [[INPTR:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { +// GFX950-NEXT: entry: +// GFX950-NEXT: [[TMP0:%.*]] = tail call <2 x i32> @llvm.amdgcn.ds.read.tr8.b64.v2i32(ptr addrspace(3) [[INPTR]]) +// GFX950-NEXT: ret <2 x i32> [[TMP0]] +// +v2i test_amdgcn_ds_read_b64_tr_b8_v2i32(local v2i* inptr) +{ + return __builtin_amdgcn_ds_read_tr8_b64_v2i32(inptr); +} + +// GFX950-LABEL: define dso_local <4 x i16> @test_amdgcn_ds_read_b64_tr_b16_v2i16( +// GFX950-SAME: ptr addrspace(3) nocapture noundef readonly [[INPTR:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { +// GFX950-NEXT: entry: +// GFX950-NEXT: [[TMP0:%.*]] = tail call <4 x i16> @llvm.amdgcn.ds.read.tr16.b64.v4i16(ptr addrspace(3) [[INPTR]]) +// GFX950-NEXT: ret <4 x i16> [[TMP0]] +// +v4s test_amdgcn_ds_read_b64_tr_b16_v2i16(local v4s* inptr) +{ + return __builtin_amdgcn_ds_read_tr16_b64_v4i16(inptr); +} diff --git a/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950.cl b/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950.cl index f31ba85a52a7a..d2125e90bc2c8 100644 --- a/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950.cl +++ b/clang/test/CodeGenOpenCL/builtins-amdgcn-gfx950.cl @@ -3,6 +3,13 @@ // REQUIRES: amdgpu-registered-target typedef unsigned int uint; +typedef unsigned int __attribute__((ext_vector_type(2))) uint2; +typedef unsigned int __attribute__((ext_vector_type(6))) uint6; +typedef __bf16 __attribute__((ext_vector_type(32))) bfloat32; +typedef half __attribute__((ext_vector_type(32))) half32; +typedef short __attribute__((ext_vector_type(2))) short2; +typedef __bf16 __attribute__((ext_vector_type(2))) bfloat2; +typedef float __attribute__((ext_vector_type(16))) float16; // CHECK-LABEL: @test_prng_b32( // CHECK-NEXT: entry: @@ -19,3 +26,239 @@ typedef unsigned int uint; void test_prng_b32(global uint* out, uint a) { *out = __builtin_amdgcn_prng_b32(a); } + +// CHECK-LABEL: @test_permlane16_swap( +// CHECK-NEXT: entry: +// CHECK-NEXT: [[OUT_ADDR:%.*]] = alloca ptr addrspace(1), align 8, addrspace(5) +// CHECK-NEXT: [[OLD_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: [[SRC_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: store ptr addrspace(1) [[OUT:%.*]], ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store i32 [[OLD:%.*]], ptr addrspace(5) [[OLD_ADDR]], align 4 +// CHECK-NEXT: store i32 [[SRC:%.*]], ptr addrspace(5) [[SRC_ADDR]], align 4 +// CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr addrspace(5) [[OLD_ADDR]], align 4 +// CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr addrspace(5) [[SRC_ADDR]], align 4 +// CHECK-NEXT: [[TMP2:%.*]] = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 [[TMP0]], i32 [[TMP1]], i1 false, i1 false) +// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { i32, i32 } [[TMP2]], 0 +// CHECK-NEXT: [[TMP4:%.*]] = extractvalue { i32, i32 } [[TMP2]], 1 +// CHECK-NEXT: [[TMP5:%.*]] = insertelement <2 x i32> poison, i32 [[TMP3]], i64 0 +// CHECK-NEXT: [[TMP6:%.*]] = insertelement <2 x i32> [[TMP5]], i32 [[TMP4]], i64 1 +// CHECK-NEXT: [[TMP7:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store <2 x i32> [[TMP6]], ptr addrspace(1) [[TMP7]], align 8 +// CHECK-NEXT: [[TMP8:%.*]] = load i32, ptr addrspace(5) [[OLD_ADDR]], align 4 +// CHECK-NEXT: [[TMP9:%.*]] = load i32, ptr addrspace(5) [[SRC_ADDR]], align 4 +// CHECK-NEXT: [[TMP10:%.*]] = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 [[TMP8]], i32 [[TMP9]], i1 true, i1 false) +// CHECK-NEXT: [[TMP11:%.*]] = extractvalue { i32, i32 } [[TMP10]], 0 +// CHECK-NEXT: [[TMP12:%.*]] = extractvalue { i32, i32 } [[TMP10]], 1 +// CHECK-NEXT: [[TMP13:%.*]] = insertelement <2 x i32> poison, i32 [[TMP11]], i64 0 +// CHECK-NEXT: [[TMP14:%.*]] = insertelement <2 x i32> [[TMP13]], i32 [[TMP12]], i64 1 +// CHECK-NEXT: [[TMP15:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store <2 x i32> [[TMP14]], ptr addrspace(1) [[TMP15]], align 8 +// CHECK-NEXT: [[TMP16:%.*]] = load i32, ptr addrspace(5) [[OLD_ADDR]], align 4 +// CHECK-NEXT: [[TMP17:%.*]] = load i32, ptr addrspace(5) [[SRC_ADDR]], align 4 +// CHECK-NEXT: [[TMP18:%.*]] = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 [[TMP16]], i32 [[TMP17]], i1 false, i1 true) +// CHECK-NEXT: [[TMP19:%.*]] = extractvalue { i32, i32 } [[TMP18]], 0 +// CHECK-NEXT: [[TMP20:%.*]] = extractvalue { i32, i32 } [[TMP18]], 1 +// CHECK-NEXT: [[TMP21:%.*]] = insertelement <2 x i32> poison, i32 [[TMP19]], i64 0 +// CHECK-NEXT: [[TMP22:%.*]] = insertelement <2 x i32> [[TMP21]], i32 [[TMP20]], i64 1 +// CHECK-NEXT: [[TMP23:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store <2 x i32> [[TMP22]], ptr addrspace(1) [[TMP23]], align 8 +// CHECK-NEXT: ret void +// +void test_permlane16_swap(global uint2* out, uint old, uint src) { + *out = __builtin_amdgcn_permlane16_swap(old, src, false, false); + *out = __builtin_amdgcn_permlane16_swap(old, src, true, false); + *out = __builtin_amdgcn_permlane16_swap(old, src, false, true); +} + +// CHECK-LABEL: @test_permlane32_swap( +// CHECK-NEXT: entry: +// CHECK-NEXT: [[OUT_ADDR:%.*]] = alloca ptr addrspace(1), align 8, addrspace(5) +// CHECK-NEXT: [[OLD_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: [[SRC_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: store ptr addrspace(1) [[OUT:%.*]], ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store i32 [[OLD:%.*]], ptr addrspace(5) [[OLD_ADDR]], align 4 +// CHECK-NEXT: store i32 [[SRC:%.*]], ptr addrspace(5) [[SRC_ADDR]], align 4 +// CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr addrspace(5) [[OLD_ADDR]], align 4 +// CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr addrspace(5) [[SRC_ADDR]], align 4 +// CHECK-NEXT: [[TMP2:%.*]] = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 [[TMP0]], i32 [[TMP1]], i1 false, i1 false) +// CHECK-NEXT: [[TMP3:%.*]] = extractvalue { i32, i32 } [[TMP2]], 0 +// CHECK-NEXT: [[TMP4:%.*]] = extractvalue { i32, i32 } [[TMP2]], 1 +// CHECK-NEXT: [[TMP5:%.*]] = insertelement <2 x i32> poison, i32 [[TMP3]], i64 0 +// CHECK-NEXT: [[TMP6:%.*]] = insertelement <2 x i32> [[TMP5]], i32 [[TMP4]], i64 1 +// CHECK-NEXT: [[TMP7:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store <2 x i32> [[TMP6]], ptr addrspace(1) [[TMP7]], align 8 +// CHECK-NEXT: [[TMP8:%.*]] = load i32, ptr addrspace(5) [[OLD_ADDR]], align 4 +// CHECK-NEXT: [[TMP9:%.*]] = load i32, ptr addrspace(5) [[SRC_ADDR]], align 4 +// CHECK-NEXT: [[TMP10:%.*]] = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 [[TMP8]], i32 [[TMP9]], i1 true, i1 false) +// CHECK-NEXT: [[TMP11:%.*]] = extractvalue { i32, i32 } [[TMP10]], 0 +// CHECK-NEXT: [[TMP12:%.*]] = extractvalue { i32, i32 } [[TMP10]], 1 +// CHECK-NEXT: [[TMP13:%.*]] = insertelement <2 x i32> poison, i32 [[TMP11]], i64 0 +// CHECK-NEXT: [[TMP14:%.*]] = insertelement <2 x i32> [[TMP13]], i32 [[TMP12]], i64 1 +// CHECK-NEXT: [[TMP15:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store <2 x i32> [[TMP14]], ptr addrspace(1) [[TMP15]], align 8 +// CHECK-NEXT: [[TMP16:%.*]] = load i32, ptr addrspace(5) [[OLD_ADDR]], align 4 +// CHECK-NEXT: [[TMP17:%.*]] = load i32, ptr addrspace(5) [[SRC_ADDR]], align 4 +// CHECK-NEXT: [[TMP18:%.*]] = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 [[TMP16]], i32 [[TMP17]], i1 false, i1 true) +// CHECK-NEXT: [[TMP19:%.*]] = extractvalue { i32, i32 } [[TMP18]], 0 +// CHECK-NEXT: [[TMP20:%.*]] = extractvalue { i32, i32 } [[TMP18]], 1 +// CHECK-NEXT: [[TMP21:%.*]] = insertelement <2 x i32> poison, i32 [[TMP19]], i64 0 +// CHECK-NEXT: [[TMP22:%.*]] = insertelement <2 x i32> [[TMP21]], i32 [[TMP20]], i64 1 +// CHECK-NEXT: [[TMP23:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store <2 x i32> [[TMP22]], ptr addrspace(1) [[TMP23]], align 8 +// CHECK-NEXT: ret void +// +void test_permlane32_swap(global uint2* out, uint old, uint src) { + *out = __builtin_amdgcn_permlane32_swap(old, src, false, false); + *out = __builtin_amdgcn_permlane32_swap(old, src, true, false); + *out = __builtin_amdgcn_permlane32_swap(old, src, false, true); +} + +// CHECK-LABEL: @test_cvt_scalef32_pk( +// CHECK-NEXT: entry: +// CHECK-NEXT: [[OUT6_ADDR:%.*]] = alloca ptr addrspace(1), align 8, addrspace(5) +// CHECK-NEXT: [[SRCBF32_ADDR:%.*]] = alloca <32 x bfloat>, align 64, addrspace(5) +// CHECK-NEXT: [[SRCH32_ADDR:%.*]] = alloca <32 x half>, align 64, addrspace(5) +// CHECK-NEXT: [[SRC0F32_ADDR:%.*]] = alloca <16 x float>, align 64, addrspace(5) +// CHECK-NEXT: [[SRC1F32_ADDR:%.*]] = alloca <16 x float>, align 64, addrspace(5) +// CHECK-NEXT: [[SCALE_ADDR:%.*]] = alloca float, align 4, addrspace(5) +// CHECK-NEXT: store ptr addrspace(1) [[OUT6:%.*]], ptr addrspace(5) [[OUT6_ADDR]], align 8 +// CHECK-NEXT: store <32 x bfloat> [[SRCBF32:%.*]], ptr addrspace(5) [[SRCBF32_ADDR]], align 64 +// CHECK-NEXT: store <32 x half> [[SRCH32:%.*]], ptr addrspace(5) [[SRCH32_ADDR]], align 64 +// CHECK-NEXT: store <16 x float> [[SRC0F32:%.*]], ptr addrspace(5) [[SRC0F32_ADDR]], align 64 +// CHECK-NEXT: store <16 x float> [[SRC1F32:%.*]], ptr addrspace(5) [[SRC1F32_ADDR]], align 64 +// CHECK-NEXT: store float [[SCALE:%.*]], ptr addrspace(5) [[SCALE_ADDR]], align 4 +// CHECK-NEXT: [[TMP0:%.*]] = load <32 x bfloat>, ptr addrspace(5) [[SRCBF32_ADDR]], align 64 +// CHECK-NEXT: [[TMP1:%.*]] = load float, ptr addrspace(5) [[SCALE_ADDR]], align 4 +// CHECK-NEXT: [[TMP2:%.*]] = call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.bf6.bf16(<32 x bfloat> [[TMP0]], float [[TMP1]]) +// CHECK-NEXT: [[TMP3:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT6_ADDR]], align 8 +// CHECK-NEXT: store <6 x i32> [[TMP2]], ptr addrspace(1) [[TMP3]], align 32 +// CHECK-NEXT: [[TMP4:%.*]] = load <32 x half>, ptr addrspace(5) [[SRCH32_ADDR]], align 64 +// CHECK-NEXT: [[TMP5:%.*]] = load float, ptr addrspace(5) [[SCALE_ADDR]], align 4 +// CHECK-NEXT: [[TMP6:%.*]] = call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.bf6.f16(<32 x half> [[TMP4]], float [[TMP5]]) +// CHECK-NEXT: [[TMP7:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT6_ADDR]], align 8 +// CHECK-NEXT: store <6 x i32> [[TMP6]], ptr addrspace(1) [[TMP7]], align 32 +// CHECK-NEXT: [[TMP8:%.*]] = load <32 x bfloat>, ptr addrspace(5) [[SRCBF32_ADDR]], align 64 +// CHECK-NEXT: [[TMP9:%.*]] = load float, ptr addrspace(5) [[SCALE_ADDR]], align 4 +// CHECK-NEXT: [[TMP10:%.*]] = call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.fp6.bf16(<32 x bfloat> [[TMP8]], float [[TMP9]]) +// CHECK-NEXT: [[TMP11:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT6_ADDR]], align 8 +// CHECK-NEXT: store <6 x i32> [[TMP10]], ptr addrspace(1) [[TMP11]], align 32 +// CHECK-NEXT: [[TMP12:%.*]] = load <32 x half>, ptr addrspace(5) [[SRCH32_ADDR]], align 64 +// CHECK-NEXT: [[TMP13:%.*]] = load float, ptr addrspace(5) [[SCALE_ADDR]], align 4 +// CHECK-NEXT: [[TMP14:%.*]] = call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.fp6.f16(<32 x half> [[TMP12]], float [[TMP13]]) +// CHECK-NEXT: [[TMP15:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT6_ADDR]], align 8 +// CHECK-NEXT: store <6 x i32> [[TMP14]], ptr addrspace(1) [[TMP15]], align 32 +// CHECK-NEXT: [[TMP16:%.*]] = load <16 x float>, ptr addrspace(5) [[SRC0F32_ADDR]], align 64 +// CHECK-NEXT: [[TMP17:%.*]] = load <16 x float>, ptr addrspace(5) [[SRC1F32_ADDR]], align 64 +// CHECK-NEXT: [[TMP18:%.*]] = load float, ptr addrspace(5) [[SCALE_ADDR]], align 4 +// CHECK-NEXT: [[TMP19:%.*]] = call <6 x i32> @llvm.amdgcn.cvt.scalef32.2xpk16.bf6.f32(<16 x float> [[TMP16]], <16 x float> [[TMP17]], float [[TMP18]]) +// CHECK-NEXT: [[TMP20:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT6_ADDR]], align 8 +// CHECK-NEXT: store <6 x i32> [[TMP19]], ptr addrspace(1) [[TMP20]], align 32 +// CHECK-NEXT: [[TMP21:%.*]] = load <16 x float>, ptr addrspace(5) [[SRC0F32_ADDR]], align 64 +// CHECK-NEXT: [[TMP22:%.*]] = load <16 x float>, ptr addrspace(5) [[SRC1F32_ADDR]], align 64 +// CHECK-NEXT: [[TMP23:%.*]] = load float, ptr addrspace(5) [[SCALE_ADDR]], align 4 +// CHECK-NEXT: [[TMP24:%.*]] = call <6 x i32> @llvm.amdgcn.cvt.scalef32.2xpk16.fp6.f32(<16 x float> [[TMP21]], <16 x float> [[TMP22]], float [[TMP23]]) +// CHECK-NEXT: [[TMP25:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT6_ADDR]], align 8 +// CHECK-NEXT: store <6 x i32> [[TMP24]], ptr addrspace(1) [[TMP25]], align 32 +// CHECK-NEXT: ret void +// +void test_cvt_scalef32_pk(global uint6 *out6, bfloat32 srcbf32, half32 srch32, float16 src0f32, float16 src1f32, float scale) +{ + *out6 = __builtin_amdgcn_cvt_scalef32_pk32_bf6_bf16(srcbf32, scale); + *out6 = __builtin_amdgcn_cvt_scalef32_pk32_bf6_f16(srch32, scale); + *out6 = __builtin_amdgcn_cvt_scalef32_pk32_fp6_bf16(srcbf32, scale); + *out6 = __builtin_amdgcn_cvt_scalef32_pk32_fp6_f16(srch32, scale); + *out6 = __builtin_amdgcn_cvt_scalef32_2xpk16_bf6_f32(src0f32, src1f32, scale); + *out6 = __builtin_amdgcn_cvt_scalef32_2xpk16_fp6_f32(src0f32, src1f32, scale); +} + +// CHECK-LABEL: @test_ashr_pk_i8_i32( +// CHECK-NEXT: entry: +// CHECK-NEXT: [[OUT_ADDR:%.*]] = alloca ptr addrspace(1), align 8, addrspace(5) +// CHECK-NEXT: [[SRC0_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: [[SRC1_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: [[SRC2_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: store ptr addrspace(1) [[OUT:%.*]], ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store i32 [[SRC0:%.*]], ptr addrspace(5) [[SRC0_ADDR]], align 4 +// CHECK-NEXT: store i32 [[SRC1:%.*]], ptr addrspace(5) [[SRC1_ADDR]], align 4 +// CHECK-NEXT: store i32 [[SRC2:%.*]], ptr addrspace(5) [[SRC2_ADDR]], align 4 +// CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr addrspace(5) [[SRC0_ADDR]], align 4 +// CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr addrspace(5) [[SRC1_ADDR]], align 4 +// CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(5) [[SRC2_ADDR]], align 4 +// CHECK-NEXT: [[TMP3:%.*]] = call i16 @llvm.amdgcn.ashr.pk.i8.i32(i32 [[TMP0]], i32 [[TMP1]], i32 [[TMP2]]) +// CHECK-NEXT: [[CONV:%.*]] = zext i16 [[TMP3]] to i32 +// CHECK-NEXT: [[TMP4:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store i32 [[CONV]], ptr addrspace(1) [[TMP4]], align 4 +// CHECK-NEXT: ret void +// +void test_ashr_pk_i8_i32(global int* out, uint src0, uint src1, uint src2) { + *out = __builtin_amdgcn_ashr_pk_i8_i32(src0, src1, src2); +} + +// CHECK-LABEL: @test_ashr_pk_u8_i32( +// CHECK-NEXT: entry: +// CHECK-NEXT: [[OUT_ADDR:%.*]] = alloca ptr addrspace(1), align 8, addrspace(5) +// CHECK-NEXT: [[SRC0_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: [[SRC1_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: [[SRC2_ADDR:%.*]] = alloca i32, align 4, addrspace(5) +// CHECK-NEXT: store ptr addrspace(1) [[OUT:%.*]], ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store i32 [[SRC0:%.*]], ptr addrspace(5) [[SRC0_ADDR]], align 4 +// CHECK-NEXT: store i32 [[SRC1:%.*]], ptr addrspace(5) [[SRC1_ADDR]], align 4 +// CHECK-NEXT: store i32 [[SRC2:%.*]], ptr addrspace(5) [[SRC2_ADDR]], align 4 +// CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr addrspace(5) [[SRC0_ADDR]], align 4 +// CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr addrspace(5) [[SRC1_ADDR]], align 4 +// CHECK-NEXT: [[TMP2:%.*]] = load i32, ptr addrspace(5) [[SRC2_ADDR]], align 4 +// CHECK-NEXT: [[TMP3:%.*]] = call i16 @llvm.amdgcn.ashr.pk.u8.i32(i32 [[TMP0]], i32 [[TMP1]], i32 [[TMP2]]) +// CHECK-NEXT: [[CONV:%.*]] = zext i16 [[TMP3]] to i32 +// CHECK-NEXT: [[TMP4:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store i32 [[CONV]], ptr addrspace(1) [[TMP4]], align 4 +// CHECK-NEXT: ret void +// +void test_ashr_pk_u8_i32(global int* out, uint src0, uint src1, uint src2) { + *out = __builtin_amdgcn_ashr_pk_u8_i32(src0, src1, src2); +} + +// CHECK-LABEL: @builtins_amdgcn_dl_insts( +// CHECK-NEXT: entry: +// CHECK-NEXT: [[OUT_ADDR:%.*]] = alloca ptr addrspace(1), align 8, addrspace(5) +// CHECK-NEXT: [[FC_ADDR:%.*]] = alloca float, align 4, addrspace(5) +// CHECK-NEXT: [[V2SSA_ADDR:%.*]] = alloca <2 x i16>, align 4, addrspace(5) +// CHECK-NEXT: [[V2SSB_ADDR:%.*]] = alloca <2 x i16>, align 4, addrspace(5) +// CHECK-NEXT: store ptr addrspace(1) [[OUT:%.*]], ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store float [[FC:%.*]], ptr addrspace(5) [[FC_ADDR]], align 4 +// CHECK-NEXT: store <2 x i16> [[V2SSA:%.*]], ptr addrspace(5) [[V2SSA_ADDR]], align 4 +// CHECK-NEXT: store <2 x i16> [[V2SSB:%.*]], ptr addrspace(5) [[V2SSB_ADDR]], align 4 +// CHECK-NEXT: [[TMP0:%.*]] = load <2 x i16>, ptr addrspace(5) [[V2SSA_ADDR]], align 4 +// CHECK-NEXT: [[TMP1:%.*]] = bitcast <2 x i16> [[TMP0]] to <2 x bfloat> +// CHECK-NEXT: [[TMP2:%.*]] = load <2 x i16>, ptr addrspace(5) [[V2SSB_ADDR]], align 4 +// CHECK-NEXT: [[TMP3:%.*]] = bitcast <2 x i16> [[TMP2]] to <2 x bfloat> +// CHECK-NEXT: [[TMP4:%.*]] = load float, ptr addrspace(5) [[FC_ADDR]], align 4 +// CHECK-NEXT: [[TMP5:%.*]] = call float @llvm.amdgcn.fdot2.f32.bf16(<2 x bfloat> [[TMP1]], <2 x bfloat> [[TMP3]], float [[TMP4]], i1 false) +// CHECK-NEXT: [[TMP6:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store float [[TMP5]], ptr addrspace(1) [[TMP6]], align 4 +// CHECK-NEXT: ret void +// +void builtins_amdgcn_dl_insts(global float *out, float fC, short2 v2ssA, short2 v2ssB) { + *out = __builtin_amdgcn_fdot2_f32_bf16(v2ssA, v2ssB, fC, false); +} + +// CHECK-LABEL: @builtins_amdgcn_dl_dot2c( +// CHECK-NEXT: entry: +// CHECK-NEXT: [[OUT_ADDR:%.*]] = alloca ptr addrspace(1), align 8, addrspace(5) +// CHECK-NEXT: [[FC_ADDR:%.*]] = alloca float, align 4, addrspace(5) +// CHECK-NEXT: [[V2SSA_ADDR:%.*]] = alloca <2 x bfloat>, align 4, addrspace(5) +// CHECK-NEXT: [[V2SSB_ADDR:%.*]] = alloca <2 x bfloat>, align 4, addrspace(5) +// CHECK-NEXT: store ptr addrspace(1) [[OUT:%.*]], ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store float [[FC:%.*]], ptr addrspace(5) [[FC_ADDR]], align 4 +// CHECK-NEXT: store <2 x bfloat> [[V2SSA:%.*]], ptr addrspace(5) [[V2SSA_ADDR]], align 4 +// CHECK-NEXT: store <2 x bfloat> [[V2SSB:%.*]], ptr addrspace(5) [[V2SSB_ADDR]], align 4 +// CHECK-NEXT: [[TMP0:%.*]] = load <2 x bfloat>, ptr addrspace(5) [[V2SSA_ADDR]], align 4 +// CHECK-NEXT: [[TMP1:%.*]] = load <2 x bfloat>, ptr addrspace(5) [[V2SSB_ADDR]], align 4 +// CHECK-NEXT: [[TMP2:%.*]] = load float, ptr addrspace(5) [[FC_ADDR]], align 4 +// CHECK-NEXT: [[TMP3:%.*]] = call float @llvm.amdgcn.fdot2c.f32.bf16(<2 x bfloat> [[TMP0]], <2 x bfloat> [[TMP1]], float [[TMP2]], i1 false) +// CHECK-NEXT: [[TMP4:%.*]] = load ptr addrspace(1), ptr addrspace(5) [[OUT_ADDR]], align 8 +// CHECK-NEXT: store float [[TMP3]], ptr addrspace(1) [[TMP4]], align 4 +// CHECK-NEXT: ret void +// +void builtins_amdgcn_dl_dot2c(global float *out, float fC, bfloat2 v2ssA, bfloat2 v2ssB) { + *out = __builtin_amdgcn_fdot2c_f32_bf16(v2ssA, v2ssB, fC, false); +} diff --git a/clang/test/CodeGenOpenCL/builtins-amdgcn-mfma.cl b/clang/test/CodeGenOpenCL/builtins-amdgcn-mfma.cl index 841d8fcad0fee..00346baa6ff84 100644 --- a/clang/test/CodeGenOpenCL/builtins-amdgcn-mfma.cl +++ b/clang/test/CodeGenOpenCL/builtins-amdgcn-mfma.cl @@ -16,6 +16,7 @@ typedef half v16h __attribute__((ext_vector_type(16))); typedef half v32h __attribute__((ext_vector_type(32))); typedef int v2i __attribute__((ext_vector_type(2))); typedef int v4i __attribute__((ext_vector_type(4))); +typedef int v8i __attribute__((ext_vector_type(8))); typedef int v16i __attribute__((ext_vector_type(16))); typedef int v32i __attribute__((ext_vector_type(32))); typedef short v2s __attribute__((ext_vector_type(2))); @@ -25,6 +26,7 @@ typedef short v16s __attribute__((ext_vector_type(16))); typedef short v32s __attribute__((ext_vector_type(32))); typedef double v4d __attribute__((ext_vector_type(4))); typedef __bf16 v8bf16 __attribute__((ext_vector_type(8))); +typedef __bf16 v16bf16 __attribute__((ext_vector_type(16))); #ifdef MFMA_GFX908_TESTS @@ -431,4 +433,137 @@ v16f test_mfma_f32_32x32x16_bf16(v8bf16 a, v8bf16 b, v16f c) { return __builtin_amdgcn_mfma_f32_32x32x16_bf16(a, b, c, 1, 2, 3); } +// CHECK-GFX950-LABEL: @test_mfma_scale_f32_16x16x128_f8f6f4 +// CHECK-GFX950: [[EXTRACT_A:%.+]] = shufflevector <8 x i32> %a, <8 x i32> poison, <6 x i32> +// CHECK-GFX950: call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> [[EXTRACT_A]], <8 x i32> %b, <4 x float> %c, i32 3, i32 1, i32 2, i32 %scale_a, i32 3, i32 %scale_b) +void test_mfma_scale_f32_16x16x128_f8f6f4(global v4f* out, v8i a, v8i b, v4f c, int scale_a, int scale_b) +{ + *out = __builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4(a, b, c, 3, 1, 2, scale_a, 3, scale_b); +} + +// CHECK-GFX950-LABEL: @test_mfma_scale_f32_32x32x64_f8f6f4 +// CHECK-GFX950: [[EXTRACT_A:%.+]] = shufflevector <8 x i32> %a, <8 x i32> poison, <6 x i32> +// CHECK-GFX950: call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> [[EXTRACT_A]], <8 x i32> %b, <16 x float> %c, i32 3, i32 1, i32 2, i32 %scale_a, i32 3, i32 %scale_b) +void test_mfma_scale_f32_32x32x64_f8f6f4(global v16f* out, v8i a, v8i b, v16f c, int scale_a, int scale_b) +{ + *out = __builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4(a, b, c, 3, 1, 2, scale_a, 3, scale_b); +} + +// CHECK-GFX950-LABEL: @test_mfma_i32_16x16x64_i8( +// CHECK-GFX950: tail call <4 x i32> @llvm.amdgcn.mfma.i32.16x16x64.i8(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c, i32 1, i32 2, i32 3) +v4i test_mfma_i32_16x16x64_i8(v4i a, v4i b, v4i c) { + return __builtin_amdgcn_mfma_i32_16x16x64_i8(a, b, c, 1, 2, 3); +} + +// CHECK-GFX950-LABEL: @test_mfma_i32_32x32x32_i8( +// CHECK-GFX950: tail call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %a, <4 x i32> %b, <16 x i32> %c, i32 1, i32 2, i32 3) +v16i test_mfma_i32_32x32x32_i8(v4i a, v4i b, v16i c) { + return __builtin_amdgcn_mfma_i32_32x32x32_i8(a, b, c, 1, 2, 3); +} + +// CHECK-GFX950-LABEL: @test_mfma_f32_16x16x32_bf16( +// CHECK-GFX950: tail call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.bf16(<8 x bfloat> %a, <8 x bfloat> %b, <4 x float> %c, i32 1, i32 2, i32 3) +v4f test_mfma_f32_16x16x32_bf16(v8bf16 a, v8bf16 b, v4f c) +{ + return __builtin_amdgcn_mfma_f32_16x16x32_bf16(a, b, c, 1, 2, 3); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_16x16x64_f16 +// CHECK-GFX950: call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.f16(<8 x half> %a, <16 x half> %b, <4 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_16x16x64_f16(global v4f* out, v8h a, v16h b, v4f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x64_f16(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_32x32x32_f16 +// CHECK-GFX950: call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half> %a, <16 x half> %b, <16 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_32x32x32_f16(global v16f* out, v8h a, v16h b, v16f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x32_f16(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_16x16x64_bf16 +// CHECK-GFX950: call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.bf16(<8 x bfloat> %a, <16 x bfloat> %b, <4 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_16x16x64_bf16(global v4f* out, v8bf16 a, v16bf16 b, v4f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x64_bf16(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_32x32x32_bf16 +// CHECK-GFX950: call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.bf16(<8 x bfloat> %a, <16 x bfloat> %b, <16 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_32x32x32_bf16(global v16f* out, v8bf16 a, v16bf16 b, v16f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x32_bf16(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_i32_16x16x128_i8 +// CHECK-GFX950: call <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32> %a, <8 x i32> %b, <4 x i32> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_i32_16x16x128_i8(global v4i* out, v4i a, v8i b, v4i c, int idx) +{ + *out = __builtin_amdgcn_smfmac_i32_16x16x128_i8(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_i32_32x32x64_i8 +// CHECK-GFX950: call <16 x i32> @llvm.amdgcn.smfmac.i32.32x32x64.i8(<4 x i32> %a, <8 x i32> %b, <16 x i32> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_i32_32x32x64_i8(global v16i* out, v4i a, v8i b, v16i c, int idx) +{ + *out = __builtin_amdgcn_smfmac_i32_32x32x64_i8(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_16x16x128_bf8_bf8 +// CHECK-GFX950: call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32> %a, <8 x i32> %b, <4 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_16x16x128_bf8_bf8(global v4f* out, v4i a, v8i b, v4f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x128_bf8_bf8(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_16x16x128_bf8_fp8 +// CHECK-GFX950: call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32> %a, <8 x i32> %b, <4 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_16x16x128_bf8_fp8(global v4f* out, v4i a, v8i b, v4f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x128_bf8_fp8(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_16x16x128_fp8_bf8 +// CHECK-GFX950: call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32> %a, <8 x i32> %b, <4 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_16x16x128_fp8_bf8(global v4f* out, v4i a, v8i b, v4f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x128_fp8_bf8(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_16x16x128_fp8_fp8 +// CHECK-GFX950: call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32> %a, <8 x i32> %b, <4 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_16x16x128_fp8_fp8(global v4f* out, v4i a, v8i b, v4f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x128_fp8_fp8(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_32x32x64_bf8_bf8 +// CHECK-GFX950: call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32> %a, <8 x i32> %b, <16 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_32x32x64_bf8_bf8(global v16f* out, v4i a, v8i b, v16f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x64_bf8_bf8(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_32x32x64_bf8_fp8 +// CHECK-GFX950: call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32> %a, <8 x i32> %b, <16 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_32x32x64_bf8_fp8(global v16f* out, v4i a, v8i b, v16f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x64_bf8_fp8(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_32x32x64_fp8_bf8 +// CHECK-GFX950: call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32> %a, <8 x i32> %b, <16 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_32x32x64_fp8_bf8(global v16f* out, v4i a, v8i b, v16f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x64_fp8_bf8(a, b, c, idx, 0, 0); +} + +// CHECK-GFX950-LABEL: @test_smfmac_f32_32x32x64_fp8_fp8 +// CHECK-GFX950: call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32> %a, <8 x i32> %b, <16 x float> %c, i32 %idx, i32 0, i32 0) +void test_smfmac_f32_32x32x64_fp8_fp8(global v16f* out, v4i a, v8i b, v16f c, int idx) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x64_fp8_fp8(a, b, c, idx, 0, 0); +} + #endif diff --git a/clang/test/CodeGenOpenCL/builtins-amdgcn.cl b/clang/test/CodeGenOpenCL/builtins-amdgcn.cl index 3bc6107b7fd40..c22a43146a8c8 100644 --- a/clang/test/CodeGenOpenCL/builtins-amdgcn.cl +++ b/clang/test/CodeGenOpenCL/builtins-amdgcn.cl @@ -1,6 +1,6 @@ // REQUIRES: amdgpu-registered-target // RUN: %clang_cc1 -cl-std=CL2.0 -triple amdgcn-unknown-unknown -target-cpu tahiti -emit-llvm -o - %s | FileCheck -enable-var-scope --check-prefixes=CHECK-AMDGCN,CHECK %s -// RUN: %clang_cc1 -cl-std=CL2.0 -triple spirv64-amd-amdhsa -emit-llvm -o - %s | FileCheck -enable-var-scope --check-prefix=CHECK %s +// RUN: %clang_cc1 -cl-std=CL2.0 -triple spirv64-amd-amdhsa -emit-llvm -o - %s | FileCheck -enable-var-scope --check-prefixes=CHECK,CHECK-SPIRV %s #pragma OPENCL EXTENSION cl_khr_fp64 : enable @@ -866,7 +866,8 @@ void test_atomic_inc_dec(__attribute__((address_space(3))) uint *lptr, __attribu // CHECK-LABEL test_wavefrontsize( unsigned test_wavefrontsize() { - // CHECK: {{.*}}call{{.*}} i32 @llvm.amdgcn.wavefrontsize() + // CHECK-AMDGCN: ret i32 {{[0-9]+}} + // CHECK-SPIRV: {{.*}}call{{.*}} i32 @llvm.amdgcn.wavefrontsize() return __builtin_amdgcn_wavefrontsize(); } diff --git a/clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl b/clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl index f39589ada0a70..2aeeb637795a9 100644 --- a/clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl +++ b/clang/test/CodeGenOpenCL/kernels-have-spir-cc-by-default.cl @@ -28,7 +28,7 @@ kernel void test_single(int_single input, global int* output) { // CHECK: spir_kernel // AMDGCN: define{{.*}} amdgpu_kernel void @test_single // CHECK: ptr nocapture {{.*}} byval(%struct.int_single) -// CHECK: ptr nocapture noundef writeonly align 4 %output +// CHECK: ptr nocapture noundef writeonly align 4 initializes((0, 4)) %output output[0] = input.a; } @@ -36,7 +36,7 @@ kernel void test_pair(int_pair input, global int* output) { // CHECK: spir_kernel // AMDGCN: define{{.*}} amdgpu_kernel void @test_pair // CHECK: ptr nocapture {{.*}} byval(%struct.int_pair) -// CHECK: ptr nocapture noundef writeonly align 4 %output +// CHECK: ptr nocapture noundef writeonly align 4 initializes((0, 8)) %output output[0] = (int)input.a; output[1] = (int)input.b; } @@ -45,7 +45,7 @@ kernel void test_kernel(test_struct input, global int* output) { // CHECK: spir_kernel // AMDGCN: define{{.*}} amdgpu_kernel void @test_kernel // CHECK: ptr nocapture {{.*}} byval(%struct.test_struct) -// CHECK: ptr nocapture noundef writeonly align 4 %output +// CHECK: ptr nocapture noundef writeonly align 4 initializes((0, 32)) %output output[0] = input.elementA; output[1] = input.elementB; output[2] = (int)input.elementC; @@ -59,7 +59,7 @@ kernel void test_kernel(test_struct input, global int* output) { void test_function(int_pair input, global int* output) { // CHECK-NOT: spir_kernel // AMDGCN-NOT: define{{.*}} amdgpu_kernel void @test_function -// CHECK: i64 %input.coerce0, i64 %input.coerce1, ptr nocapture noundef writeonly %output +// CHECK: i64 %input.coerce0, i64 %input.coerce1, ptr nocapture noundef writeonly initializes((0, 8)) %output output[0] = (int)input.a; output[1] = (int)input.b; } diff --git a/clang/test/CodeGenOpenCLCXX/array-type-infinite-loop.clcpp b/clang/test/CodeGenOpenCLCXX/array-type-infinite-loop.clcpp index db9d7eb3281fc..86f21ee556ce8 100644 --- a/clang/test/CodeGenOpenCLCXX/array-type-infinite-loop.clcpp +++ b/clang/test/CodeGenOpenCLCXX/array-type-infinite-loop.clcpp @@ -2,7 +2,7 @@ //RUN: %clang_cc1 %s -triple spir -emit-llvm -O1 -o - | FileCheck %s // CHECK-LABEL: define dso_local spir_kernel void @test( -// CHECK-SAME: ptr addrspace(1) nocapture noundef readonly align 8 [[IN:%.*]], ptr addrspace(1) nocapture noundef writeonly align 8 [[OUT:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] !kernel_arg_addr_space [[META3:![0-9]+]] !kernel_arg_access_qual [[META4:![0-9]+]] !kernel_arg_type [[META5:![0-9]+]] !kernel_arg_base_type [[META5]] !kernel_arg_type_qual [[META6:![0-9]+]] { +// CHECK-SAME: ptr addrspace(1) nocapture noundef readonly align 8 [[IN:%.*]], ptr addrspace(1) nocapture noundef writeonly align 8 initializes((0, 8)) [[OUT:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] !kernel_arg_addr_space [[META3:![0-9]+]] !kernel_arg_access_qual [[META4:![0-9]+]] !kernel_arg_type [[META5:![0-9]+]] !kernel_arg_base_type [[META5]] !kernel_arg_type_qual [[META6:![0-9]+]] { // CHECK-NEXT: entry: // CHECK-NEXT: [[ARRAYIDX1:%.*]] = getelementptr inbounds i8, ptr addrspace(1) [[IN]], i32 8 // CHECK-NEXT: [[TMP0:%.*]] = load i64, ptr addrspace(1) [[ARRAYIDX1]], align 8, !tbaa [[TBAA7:![0-9]+]] diff --git a/clang/test/Driver/cuda-no-threadsafe-statics.cu b/clang/test/Driver/cuda-no-threadsafe-statics.cu new file mode 100644 index 0000000000000..8730605f18828 --- /dev/null +++ b/clang/test/Driver/cuda-no-threadsafe-statics.cu @@ -0,0 +1,14 @@ +// Check that -fno-thread-safe-statics get passed down to device-side +// compilation only. +// +// RUN: %clang -### -x cuda --target=x86_64-linux-gnu -c --cuda-gpu-arch=sm_20 %s \ +// RUN: -nocudainc -nocudalib --cuda-path=%S/Inputs/CUDA_80/usr/local/cuda \ +// RUN: 2>&1 | FileCheck %s + +// RUN: %clang -### -x hip --target=x86_64-linux-gnu -c --cuda-gpu-arch=gfx1010 %s \ +// RUN: -nocudainc -nocudalib 2>&1 | FileCheck %s +// +// CHECK: "-fcuda-is-device" +// CHECK-SAME: "-fno-threadsafe-statics" +// CHECK: "-triple" "x86_64-unknown-linux-gnu" +// CHECK-NOT: "-fno-threadsafe-statics" diff --git a/clang/test/Driver/hexagon-toolchain-linux.c b/clang/test/Driver/hexagon-toolchain-linux.c index 86cc9a30e932c..6f7f3b20f9141 100644 --- a/clang/test/Driver/hexagon-toolchain-linux.c +++ b/clang/test/Driver/hexagon-toolchain-linux.c @@ -11,7 +11,7 @@ // CHECK000-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o // CHECK000: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" // CHECK000: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o" -// CHECK000: "-lclang_rt.builtins-hexagon" "-lc" +// CHECK000: "-lc" "-lclang_rt.builtins-hexagon" // ----------------------------------------------------------------------------- // Passing --musl --shared // ----------------------------------------------------------------------------- @@ -21,7 +21,7 @@ // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -shared %s 2>&1 | FileCheck -check-prefix=CHECK001 %s // CHECK001-NOT: -dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1 // CHECK001: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o" -// CHECK001: "-lclang_rt.builtins-hexagon" "-lc" +// CHECK001: "-lc" "-lclang_rt.builtins-hexagon" // CHECK001-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o // ----------------------------------------------------------------------------- // Passing --musl -nostdlib @@ -33,8 +33,8 @@ // CHECK002: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" // CHECK002-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crti.o // CHECK002-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o -// CHECK002-NOT: "-lclang_rt.builtins-hexagon" // CHECK002-NOT: "-lc" +// CHECK002-NOT: "-lclang_rt.builtins-hexagon" // ----------------------------------------------------------------------------- // Passing --musl -nostartfiles // ----------------------------------------------------------------------------- @@ -45,7 +45,7 @@ // CHECK003: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" // CHECK003-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}Scrt1.o // CHECK003-NOT: {{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o -// CHECK003: "-lclang_rt.builtins-hexagon" "-lc" +// CHECK003: "-lc" "-lclang_rt.builtins-hexagon" // ----------------------------------------------------------------------------- // Passing --musl -nodefaultlibs // ----------------------------------------------------------------------------- @@ -55,8 +55,8 @@ // RUN: --sysroot=%S/Inputs/basic_linux_libcxx_tree -nodefaultlibs %s 2>&1 | FileCheck -check-prefix=CHECK004 %s // CHECK004: "-dynamic-linker={{/|\\\\}}lib{{/|\\\\}}ld-musl-hexagon.so.1" // CHECK004: "{{.*}}basic_linux_libcxx_tree{{/|\\\\}}usr{{/|\\\\}}lib{{/|\\\\}}crt1.o" -// CHECK004-NOT: "-lclang_rt.builtins-hexagon" // CHECK004-NOT: "-lc" +// CHECK004-NOT: "-lclang_rt.builtins-hexagon" // ----------------------------------------------------------------------------- // Passing --musl -nolibc // ----------------------------------------------------------------------------- diff --git a/clang/test/Driver/hip-rdc-device-only.hip b/clang/test/Driver/hip-rdc-device-only.hip index 72933c9611d89..cbb2433f2a6a2 100644 --- a/clang/test/Driver/hip-rdc-device-only.hip +++ b/clang/test/Driver/hip-rdc-device-only.hip @@ -66,7 +66,7 @@ // EMITBC-SAME: "-emit-llvm-bc" // EMITLL-SAME: "-emit-llvm" // COMMON-SAME: {{.*}} "-main-file-name" "a.cu" -// COMMON-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" +// COMMON-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // COMMON-SAME: "-fapply-global-visibility-to-externs" // COMMON-SAME: "-target-cpu" "gfx803" // COMMON-SAME: "-fgpu-rdc" @@ -79,7 +79,7 @@ // EMITBC-SAME: "-emit-llvm-bc" // EMITLL-SAME: "-emit-llvm" // COMMON-SAME: {{.*}} "-main-file-name" "a.cu" -// COMMON-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" +// COMMON-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // COMMON-SAME: "-fapply-global-visibility-to-externs" // COMMON-SAME: "-target-cpu" "gfx900" // COMMON-SAME: "-fgpu-rdc" @@ -96,7 +96,7 @@ // EMITBC-SAME: "-emit-llvm-bc" // EMITLL-SAME: "-emit-llvm" // COMMON-SAME: {{.*}} "-main-file-name" "b.hip" -// COMMON-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" +// COMMON-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // COMMON-SAME: "-fapply-global-visibility-to-externs" // COMMON-SAME: "-target-cpu" "gfx803" // COMMON-SAME: "-fgpu-rdc" @@ -109,7 +109,7 @@ // EMITBC-SAME: "-emit-llvm-bc" // EMITLL-SAME: "-emit-llvm" // COMMON-SAME: {{.*}} "-main-file-name" "b.hip" -// COMMON-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" +// COMMON-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // COMMON-SAME: "-fapply-global-visibility-to-externs" // COMMON-SAME: "-target-cpu" "gfx900" // COMMON-SAME: "-fgpu-rdc" diff --git a/clang/test/Driver/hip-toolchain-no-rdc.hip b/clang/test/Driver/hip-toolchain-no-rdc.hip index 4a91c9dbe7570..054db261d8e57 100644 --- a/clang/test/Driver/hip-toolchain-no-rdc.hip +++ b/clang/test/Driver/hip-toolchain-no-rdc.hip @@ -49,7 +49,7 @@ // CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" // CHECK-SAME: "-emit-obj" // CHECK-SAME: {{.*}} "-main-file-name" "a.cu" -// CHECK-SAME: "-fcuda-is-device" "-mllvm" "-amdgpu-internalize-symbols" +// CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-mllvm" "-amdgpu-internalize-symbols" // CHECK-SAME: "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // CHECK-SAME: "-fapply-global-visibility-to-externs" // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc" @@ -72,7 +72,7 @@ // CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" // CHECK-SAME: "-emit-obj" // CHECK-SAME: {{.*}} "-main-file-name" "a.cu" -// CHECK-SAME: "-fcuda-is-device" "-mllvm" "-amdgpu-internalize-symbols" +// CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-mllvm" "-amdgpu-internalize-symbols" // CHECK-SAME: "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // CHECK-SAME: "-fapply-global-visibility-to-externs" // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc" @@ -112,7 +112,7 @@ // CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" // CHECK-SAME: "-emit-obj" // CHECK-SAME: {{.*}} "-main-file-name" "b.hip" -// CHECK-SAME: "-fcuda-is-device" "-mllvm" "-amdgpu-internalize-symbols" +// CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-mllvm" "-amdgpu-internalize-symbols" // CHECK-SAME: "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // CHECK-SAME: "-fapply-global-visibility-to-externs" // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc" @@ -135,7 +135,7 @@ // CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" // CHECK-SAME: "-emit-obj" // CHECK-SAME: {{.*}} "-main-file-name" "b.hip" -// CHECK-SAME: "-fcuda-is-device" "-mllvm" "-amdgpu-internalize-symbols" +// CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-mllvm" "-amdgpu-internalize-symbols" // CHECK-SAME: "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // CHECK-SAME: "-fapply-global-visibility-to-externs" // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc" diff --git a/clang/test/Driver/hip-toolchain-rdc-separate.hip b/clang/test/Driver/hip-toolchain-rdc-separate.hip index 0ce5ea5174e1b..80f325c5d7373 100644 --- a/clang/test/Driver/hip-toolchain-rdc-separate.hip +++ b/clang/test/Driver/hip-toolchain-rdc-separate.hip @@ -13,7 +13,7 @@ // CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" // CHECK-SAME: "-emit-llvm-bc" // CHECK-SAME: {{.*}} "-main-file-name" "a.cu" -// CHECK-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" +// CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // CHECK-SAME: "-fapply-global-visibility-to-externs" // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc" // CHECK-SAME: "-target-cpu" "gfx803" @@ -48,7 +48,7 @@ // CHECK-SAME: "-aux-triple" "x86_64-unknown-linux-gnu" // CHECK-SAME: "-emit-llvm-bc" // CHECK-SAME: {{.*}} "-main-file-name" "b.hip" -// CHECK-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" +// CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // CHECK-SAME: "-fapply-global-visibility-to-externs" // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc" // CHECK-SAME: "-target-cpu" "gfx803" diff --git a/clang/test/Driver/hip-toolchain-rdc.hip b/clang/test/Driver/hip-toolchain-rdc.hip index 6d3f46f8a9467..96da423144c1c 100644 --- a/clang/test/Driver/hip-toolchain-rdc.hip +++ b/clang/test/Driver/hip-toolchain-rdc.hip @@ -93,7 +93,7 @@ // CHECK-SAME: "-aux-triple" [[HOST:"x86_64-[^"]+"]] // CHECK-SAME: "-emit-llvm-bc" // CHECK-SAME: {{.*}} "-main-file-name" "a.cu" -// CHECK-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" +// CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // CHECK-SAME: "-fapply-global-visibility-to-externs" // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc" // CHECK-SAME: "-target-cpu" "gfx803" @@ -105,7 +105,7 @@ // CHECK-SAME: "-aux-triple" [[HOST]] // CHECK-SAME: "-emit-llvm-bc" // CHECK-SAME: {{.*}} "-main-file-name" "b.hip" -// CHECK-SAME: "-fcuda-is-device" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" +// CHECK-SAME: "-fcuda-is-device" "-fno-threadsafe-statics" "-fcuda-allow-variadic-functions" "-fvisibility=hidden" // CHECK-SAME: "-fapply-global-visibility-to-externs" // CHECK-SAME: "{{.*}}lib1.bc" "{{.*}}lib2.bc" // CHECK-SAME: "-target-cpu" "gfx803" diff --git a/clang/test/Driver/loongarch-march.c b/clang/test/Driver/loongarch-march.c index d4cd5b07ae905..c7091336f3bc8 100644 --- a/clang/test/Driver/loongarch-march.c +++ b/clang/test/Driver/loongarch-march.c @@ -39,21 +39,21 @@ // CC1-LA64V1P1: "-target-cpu" "loongarch64" // CC1-LA64V1P1-NOT: "-target-feature" -// CC1-LA64V1P1: "-target-feature" "+64bit" "-target-feature" "+d" "-target-feature" "+lsx" "-target-feature" "+ual" "-target-feature" "+frecipe" "-target-feature" "+lam-bh" +// CC1-LA64V1P1: "-target-feature" "+64bit" "-target-feature" "+d" "-target-feature" "+lsx" "-target-feature" "+ual" "-target-feature" "+frecipe" "-target-feature" "+lam-bh" "-target-feature" "+ld-seq-sa" // CC1-LA64V1P1-NOT: "-target-feature" // CC1-LA64V1P1: "-target-abi" "lp64d" // CC1-LA664: "-target-cpu" "la664" // CC1-LA664-NOT: "-target-feature" -// CC1-LA664: "-target-feature" "+64bit" "-target-feature" "+f" "-target-feature" "+d" "-target-feature" "+lsx" "-target-feature" "+lasx" "-target-feature" "+ual" "-target-feature" "+frecipe" "-target-feature" "+lam-bh" +// CC1-LA664: "-target-feature" "+64bit" "-target-feature" "+f" "-target-feature" "+d" "-target-feature" "+lsx" "-target-feature" "+lasx" "-target-feature" "+ual" "-target-feature" "+frecipe" "-target-feature" "+lam-bh" "-target-feature" "+ld-seq-sa" // CC1-LA664-NOT: "-target-feature" // CC1-LA664: "-target-abi" "lp64d" // IR-LOONGARCH64: attributes #[[#]] ={{.*}}"target-cpu"="loongarch64" {{.*}}"target-features"="+64bit,+d,+f,+ual" // IR-LA464: attributes #[[#]] ={{.*}}"target-cpu"="la464" {{.*}}"target-features"="+64bit,+d,+f,+lasx,+lsx,+ual" // IR-LA64V1P0: attributes #[[#]] ={{.*}}"target-cpu"="loongarch64" {{.*}}"target-features"="+64bit,+d,+lsx,+ual" -// IR-LA64V1P1: attributes #[[#]] ={{.*}}"target-cpu"="loongarch64" {{.*}}"target-features"="+64bit,+d,+frecipe,+lam-bh,+lsx,+ual" -// IR-LA664: attributes #[[#]] ={{.*}}"target-cpu"="la664" {{.*}}"target-features"="+64bit,+d,+f,+frecipe,+lam-bh,+lasx,+lsx,+ual" +// IR-LA64V1P1: attributes #[[#]] ={{.*}}"target-cpu"="loongarch64" {{.*}}"target-features"="+64bit,+d,+frecipe,+lam-bh,+ld-seq-sa,+lsx,+ual" +// IR-LA664: attributes #[[#]] ={{.*}}"target-cpu"="la664" {{.*}}"target-features"="+64bit,+d,+f,+frecipe,+lam-bh,+lasx,+ld-seq-sa,+lsx,+ual" int foo(void) { return 3; diff --git a/clang/test/Driver/loongarch-mld-seq-sa.c b/clang/test/Driver/loongarch-mld-seq-sa.c new file mode 100644 index 0000000000000..3d1d90d3f9cf7 --- /dev/null +++ b/clang/test/Driver/loongarch-mld-seq-sa.c @@ -0,0 +1,30 @@ +/// Test -m[no]ld-seq-sa options. + +// RUN: %clang --target=loongarch64 -mld-seq-sa -fsyntax-only %s -### 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CC1-ld-seq-sa +// RUN: %clang --target=loongarch64 -mno-ld-seq-sa -fsyntax-only %s -### 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CC1-NO-ld-seq-sa +// RUN: %clang --target=loongarch64 -mno-ld-seq-sa -mld-seq-sa -fsyntax-only %s -### 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CC1-ld-seq-sa +// RUN: %clang --target=loongarch64 -mld-seq-sa -mno-ld-seq-sa -fsyntax-only %s -### 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CC1-NO-ld-seq-sa + +// RUN: %clang --target=loongarch64 -mld-seq-sa -S -emit-llvm %s -o - | \ +// RUN: FileCheck %s --check-prefix=IR-ld-seq-sa +// RUN: %clang --target=loongarch64 -mno-ld-seq-sa -S -emit-llvm %s -o - | \ +// RUN: FileCheck %s --check-prefix=IR-NO-ld-seq-sa +// RUN: %clang --target=loongarch64 -mno-ld-seq-sa -mld-seq-sa -S -emit-llvm %s -o - | \ +// RUN: FileCheck %s --check-prefix=IR-ld-seq-sa +// RUN: %clang --target=loongarch64 -mld-seq-sa -mno-ld-seq-sa -S -emit-llvm %s -o - | \ +// RUN: FileCheck %s --check-prefix=IR-NO-ld-seq-sa + + +// CC1-ld-seq-sa: "-target-feature" "+ld-seq-sa" +// CC1-NO-ld-seq-sa: "-target-feature" "-ld-seq-sa" + +// IR-ld-seq-sa: attributes #[[#]] ={{.*}}"target-features"="{{(.*,)?}}+ld-seq-sa{{(,.*)?}}" +// IR-NO-ld-seq-sa: attributes #[[#]] ={{.*}}"target-features"="{{(.*,)?}}-ld-seq-sa{{(,.*)?}}" + +int foo(void) { + return 42; +} diff --git a/clang/test/OpenMP/flush_ast_print.cpp b/clang/test/OpenMP/flush_ast_print.cpp index 9578ada020227..768282422032f 100644 --- a/clang/test/OpenMP/flush_ast_print.cpp +++ b/clang/test/OpenMP/flush_ast_print.cpp @@ -1,10 +1,10 @@ -// RUN: %clang_cc1 -verify -fopenmp -ast-print %s | FileCheck %s -// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -emit-pch -o %t %s -// RUN: %clang_cc1 -fopenmp -std=c++11 -include-pch %t -verify %s -ast-print | FileCheck %s +// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=51 -ast-print %s | FileCheck %s +// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -x c++ -std=c++11 -emit-pch -o %t %s +// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -std=c++11 -include-pch %t -verify %s -ast-print | FileCheck %s -// RUN: %clang_cc1 -verify -fopenmp-simd -ast-print %s | FileCheck %s -// RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++11 -emit-pch -o %t %s -// RUN: %clang_cc1 -fopenmp-simd -std=c++11 -include-pch %t -verify %s -ast-print | FileCheck %s +// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=51 -ast-print %s | FileCheck %s +// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=51 -x c++ -std=c++11 -emit-pch -o %t %s +// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=51 -std=c++11 -include-pch %t -verify %s -ast-print | FileCheck %s // expected-no-diagnostics #ifndef HEADER @@ -19,6 +19,7 @@ T tmain(T argc) { #pragma omp flush acq_rel #pragma omp flush acquire #pragma omp flush release +#pragma omp flush seq_cst #pragma omp flush(a) return a + argc; } @@ -27,18 +28,21 @@ T tmain(T argc) { // CHECK-NEXT: #pragma omp flush acq_rel{{$}} // CHECK-NEXT: #pragma omp flush acquire{{$}} // CHECK-NEXT: #pragma omp flush release{{$}} +// CHECK-NEXT: #pragma omp flush seq_cst{{$}} // CHECK-NEXT: #pragma omp flush (a) // CHECK: static int a; // CHECK-NEXT: #pragma omp flush // CHECK-NEXT: #pragma omp flush acq_rel{{$}} // CHECK-NEXT: #pragma omp flush acquire{{$}} // CHECK-NEXT: #pragma omp flush release{{$}} +// CHECK-NEXT: #pragma omp flush seq_cst{{$}} // CHECK-NEXT: #pragma omp flush (a) // CHECK: static char a; // CHECK-NEXT: #pragma omp flush // CHECK-NEXT: #pragma omp flush acq_rel{{$}} // CHECK-NEXT: #pragma omp flush acquire{{$}} // CHECK-NEXT: #pragma omp flush release{{$}} +// CHECK-NEXT: #pragma omp flush seq_cst{{$}} // CHECK-NEXT: #pragma omp flush (a) int main(int argc, char **argv) { @@ -48,11 +52,13 @@ int main(int argc, char **argv) { #pragma omp flush acq_rel #pragma omp flush acquire #pragma omp flush release +#pragma omp flush seq_cst #pragma omp flush(a) // CHECK-NEXT: #pragma omp flush // CHECK-NEXT: #pragma omp flush acq_rel // CHECK-NEXT: #pragma omp flush acquire{{$}} // CHECK-NEXT: #pragma omp flush release +// CHECK-NEXT: #pragma omp flush seq_cst // CHECK-NEXT: #pragma omp flush (a) return tmain(argc) + tmain(argv[0][0]) + a; } diff --git a/clang/test/OpenMP/flush_codegen.cpp b/clang/test/OpenMP/flush_codegen.cpp index c7dd88ef9ac31..fa2586d9fe258 100644 --- a/clang/test/OpenMP/flush_codegen.cpp +++ b/clang/test/OpenMP/flush_codegen.cpp @@ -1,13 +1,13 @@ -// RUN: %clang_cc1 -verify -fopenmp -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s -// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s -// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -debug-info-kind=limited -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s -// RUN: %clang_cc1 -verify -fopenmp -fopenmp-enable-irbuilder -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s -// RUN: %clang_cc1 -fopenmp -fopenmp-enable-irbuilder -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s -// RUN: %clang_cc1 -fopenmp -fopenmp-enable-irbuilder -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -debug-info-kind=limited -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=51 -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s +// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s +// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -debug-info-kind=limited -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 -verify -fopenmp -fopenmp-version=51 -fopenmp-enable-irbuilder -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck %s +// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -fopenmp-enable-irbuilder -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s +// RUN: %clang_cc1 -fopenmp -fopenmp-version=51 -fopenmp-enable-irbuilder -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -debug-info-kind=limited -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s -// RUN: %clang_cc1 -verify -fopenmp-simd -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck --check-prefix SIMD-ONLY0 %s -// RUN: %clang_cc1 -fopenmp-simd -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s -// RUN: %clang_cc1 -fopenmp-simd -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -debug-info-kind=limited -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck --check-prefix SIMD-ONLY0 %s +// RUN: %clang_cc1 -verify -fopenmp-simd -fopenmp-version=51 -x c++ -emit-llvm %s -fexceptions -fcxx-exceptions -o - | FileCheck --check-prefix SIMD-ONLY0 %s +// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=51 -x c++ -std=c++11 -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -emit-pch -o %t %s +// RUN: %clang_cc1 -fopenmp-simd -fopenmp-version=51 -x c++ -triple x86_64-unknown-unknown -fexceptions -fcxx-exceptions -debug-info-kind=limited -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck --check-prefix SIMD-ONLY0 %s // SIMD-ONLY0-NOT: {{__kmpc|__tgt}} // expected-no-diagnostics #ifndef HEADER @@ -17,6 +17,7 @@ template T tmain(T argc) { static T a; #pragma omp flush +#pragma omp flush seq_cst #pragma omp flush acq_rel #pragma omp flush acquire #pragma omp flush release @@ -28,6 +29,7 @@ T tmain(T argc) { int main() { static int a; #pragma omp flush +#pragma omp flush seq_cst #pragma omp flush acq_rel #pragma omp flush acquire #pragma omp flush release @@ -37,6 +39,7 @@ int main() { // CHECK: call {{.*}}void @__kmpc_flush(ptr {{(@|%).+}}) // CHECK: call {{.*}}void @__kmpc_flush(ptr {{(@|%).+}}) // CHECK: call {{.*}}void @__kmpc_flush(ptr {{(@|%).+}}) + // CHECK: call {{.*}}void @__kmpc_flush(ptr {{(@|%).+}}) return tmain(a); // CHECK: call {{.*}} [[TMAIN:@.+]]( // CHECK: ret @@ -48,6 +51,7 @@ int main() { // CHECK: call {{.*}}void @__kmpc_flush(ptr {{(@|%).+}}) // CHECK: call {{.*}}void @__kmpc_flush(ptr {{(@|%).+}}) // CHECK: call {{.*}}void @__kmpc_flush(ptr {{(@|%).+}}) +// CHECK: call {{.*}}void @__kmpc_flush(ptr {{(@|%).+}}) // CHECK: ret // CHECK-NOT: line: 0, diff --git a/clang/test/OpenMP/flush_messages.cpp b/clang/test/OpenMP/flush_messages.cpp index ad4830b5bf94f..e78949bc924e1 100644 --- a/clang/test/OpenMP/flush_messages.cpp +++ b/clang/test/OpenMP/flush_messages.cpp @@ -134,14 +134,12 @@ label1 : { #pragma omp flush(argc) flush(argc) // expected-warning {{extra tokens at the end of '#pragma omp flush' are ignored}} #pragma omp parallel flush(argc) // expected-warning {{extra tokens at the end of '#pragma omp parallel' are ignored}} ; -#pragma omp flush seq_cst // expected-error {{unexpected OpenMP clause 'seq_cst' in directive '#pragma omp flush'}} #pragma omp flush acq_rel // omp45-error {{unexpected OpenMP clause 'acq_rel' in directive '#pragma omp flush'}} #pragma omp flush acquire // omp45-error {{unexpected OpenMP clause 'acquire' in directive '#pragma omp flush'}} #pragma omp flush release // omp45-error {{unexpected OpenMP clause 'release' in directive '#pragma omp flush'}} #pragma omp flush relaxed // expected-error {{unexpected OpenMP clause 'relaxed' in directive '#pragma omp flush'}} -#pragma omp flush seq_cst // expected-error {{unexpected OpenMP clause 'seq_cst' in directive '#pragma omp flush'}} -#pragma omp flush acq_rel acquire // omp45-error {{unexpected OpenMP clause 'acq_rel' in directive '#pragma omp flush'}} omp45-error {{unexpected OpenMP clause 'acquire' in directive '#pragma omp flush'}} omp51-error {{directive '#pragma omp flush' cannot contain more than one 'acq_rel', 'acquire' or 'release' clause}} omp51-note {{'acq_rel' clause used here}} -#pragma omp flush release acquire // omp45-error {{unexpected OpenMP clause 'release' in directive '#pragma omp flush'}} omp45-error {{unexpected OpenMP clause 'acquire' in directive '#pragma omp flush'}} omp51-error {{directive '#pragma omp flush' cannot contain more than one 'acq_rel', 'acquire' or 'release' clause}} omp51-note {{'release' clause used here}} +#pragma omp flush acq_rel acquire // omp45-error {{unexpected OpenMP clause 'acq_rel' in directive '#pragma omp flush'}} omp45-error {{unexpected OpenMP clause 'acquire' in directive '#pragma omp flush'}} omp51-error {{directive '#pragma omp flush' cannot contain more than one 'seq_cst', 'acq_rel', 'acquire' or 'release' clause}} omp51-note {{'acq_rel' clause used here}} +#pragma omp flush release acquire // omp45-error {{unexpected OpenMP clause 'release' in directive '#pragma omp flush'}} omp45-error {{unexpected OpenMP clause 'acquire' in directive '#pragma omp flush'}} omp51-error {{directive '#pragma omp flush' cannot contain more than one 'seq_cst', 'acq_rel', 'acquire' or 'release' clause}} omp51-note {{'release' clause used here}} #pragma omp flush acq_rel (argc) // omp45-error {{unexpected OpenMP clause 'acq_rel' in directive '#pragma omp flush'}} expected-warning {{extra tokens at the end of '#pragma omp flush' are ignored}} #pragma omp flush(argc) acq_rel // omp45-error {{unexpected OpenMP clause 'acq_rel' in directive '#pragma omp flush'}} omp51-error {{'flush' directive with memory order clause 'acq_rel' cannot have the list}} omp51-note {{memory order clause 'acq_rel' is specified here}} return tmain(argc); diff --git a/clang/test/Preprocessor/has_builtin_cpuid.c b/clang/test/Preprocessor/has_builtin_cpuid.c index e69f912ce688d..86cbc6d378a07 100644 --- a/clang/test/Preprocessor/has_builtin_cpuid.c +++ b/clang/test/Preprocessor/has_builtin_cpuid.c @@ -8,8 +8,8 @@ // RUN: -verify %s // expected-no-diagnostics #if __has_builtin(__builtin_cpu_is) -# if defined(ARM) || defined(RISCV) -# error "ARM/RISCV shouldn't have __builtin_cpu_is" +# if defined(ARM) +# error "ARM shouldn't have __builtin_cpu_is" # endif #endif diff --git a/clang/test/Preprocessor/init-aarch64.c b/clang/test/Preprocessor/init-aarch64.c index c52c49a94e016..8ee6c6ba60af4 100644 --- a/clang/test/Preprocessor/init-aarch64.c +++ b/clang/test/Preprocessor/init-aarch64.c @@ -44,7 +44,7 @@ // AARCH64: #define __BIGGEST_ALIGNMENT__ 16 // AARCH64_BE-NEXT: #define __BIG_ENDIAN__ 1 // AARCH64-NEXT: #define __BITINT_MAXWIDTH__ 128 -// AARCH64-NEXT: #define __BOOL_WIDTH__ 8 +// AARCH64-NEXT: #define __BOOL_WIDTH__ 1 // AARCH64_BE-NEXT: #define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__ // AARCH64_LE-NEXT: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // AARCH64-NEXT: #define __CHAR16_TYPE__ unsigned short @@ -785,7 +785,7 @@ // ARM64EC-MSVC: #define __ATOMIC_SEQ_CST 5 // ARM64EC-MSVC: #define __BIGGEST_ALIGNMENT__ 16 // ARM64EC-MSVC: #define __BITINT_MAXWIDTH__ 128 -// ARM64EC-MSVC: #define __BOOL_WIDTH__ 8 +// ARM64EC-MSVC: #define __BOOL_WIDTH__ 1 // ARM64EC-MSVC: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // ARM64EC-MSVC: #define __CHAR16_TYPE__ unsigned short // ARM64EC-MSVC: #define __CHAR32_TYPE__ unsigned int diff --git a/clang/test/Preprocessor/init-loongarch.c b/clang/test/Preprocessor/init-loongarch.c index 8019292e0f10e..0e3320f01b328 100644 --- a/clang/test/Preprocessor/init-loongarch.c +++ b/clang/test/Preprocessor/init-loongarch.c @@ -25,7 +25,7 @@ // LA32-NEXT: #define __ATOMIC_SEQ_CST 5 // LA32: #define __BIGGEST_ALIGNMENT__ 16 // LA32: #define __BITINT_MAXWIDTH__ 128 -// LA32: #define __BOOL_WIDTH__ 8 +// LA32: #define __BOOL_WIDTH__ 1 // LA32: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // LA32: #define __CHAR16_TYPE__ unsigned short // LA32: #define __CHAR32_TYPE__ unsigned int @@ -346,7 +346,7 @@ // LA64-NEXT: #define __ATOMIC_SEQ_CST 5 // LA64: #define __BIGGEST_ALIGNMENT__ 16 // LA64: #define __BITINT_MAXWIDTH__ 128 -// LA64: #define __BOOL_WIDTH__ 8 +// LA64: #define __BOOL_WIDTH__ 1 // LA64: #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // LA64: #define __CHAR16_TYPE__ unsigned short // LA64: #define __CHAR32_TYPE__ unsigned int @@ -798,7 +798,7 @@ // LA64-FPU0-LP64S-NOT: #define __loongarch_single_float // LA64-FPU0-LP64S: #define __loongarch_soft_float 1 -/// Check __loongarch_arch{_tune/_frecipe/_lam_bh}. +/// Check __loongarch_arch{_tune/_frecipe/_lam_bh/_ld_seq_sa}. // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - | \ // RUN: FileCheck --match-full-lines --check-prefix=ARCH-TUNE -DARCH=la64v1.0 -DTUNE=loongarch64 %s @@ -823,11 +823,11 @@ // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=loongarch64 -Xclang -target-feature -Xclang +lsx | \ // RUN: FileCheck --match-full-lines --check-prefix=ARCH-TUNE -DARCH=la64v1.0 -DTUNE=loongarch64 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la64v1.1 | \ -// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LAM-BH -DARCH=la64v1.1 -DTUNE=loongarch64 %s +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LAM-BH,LD-SEQ-SA -DARCH=la64v1.1 -DTUNE=loongarch64 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la64v1.1 -Xclang -target-feature -Xclang -frecipe | \ -// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,LAM-BH -DARCH=la64v1.0 -DTUNE=loongarch64 %s +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,LAM-BH,LD-SEQ-SA -DARCH=la64v1.0 -DTUNE=loongarch64 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la64v1.1 -Xclang -target-feature -Xclang -lsx | \ -// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LAM-BH -DARCH=loongarch64 -DTUNE=loongarch64 %s +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LAM-BH,LD-SEQ-SA -DARCH=loongarch64 -DTUNE=loongarch64 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=loongarch64 -Xclang -target-feature -Xclang +frecipe | \ // RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE -DARCH=loongarch64 -DTUNE=loongarch64 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=loongarch64 -Xclang -target-feature -Xclang +lsx -Xclang -target-feature -Xclang +frecipe | \ @@ -835,25 +835,34 @@ // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la64v1.0 -Xclang -target-feature -Xclang +lam-bh | \ // RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,LAM-BH -DARCH=la64v1.0 -DTUNE=loongarch64 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la64v1.1 -Xclang -target-feature -Xclang -lam-bh | \ -// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE -DARCH=la64v1.0 -DTUNE=loongarch64 %s +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LD-SEQ-SA -DARCH=la64v1.0 -DTUNE=loongarch64 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=loongarch64 -Xclang -target-feature -Xclang +lam-bh | \ // RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,LAM-BH -DARCH=loongarch64 -DTUNE=loongarch64 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=loongarch64 -Xclang -target-feature -Xclang +lsx -Xclang -target-feature -Xclang +lam-bh | \ // RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,LAM-BH -DARCH=la64v1.0 -DTUNE=loongarch64 %s -// RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la64v1.0 -Xclang -target-feature -Xclang +frecipe -Xclang -target-feature -Xclang +lam-bh | \ +// RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la64v1.0 -Xclang -target-feature -Xclang +ld-seq-sa | \ +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,LD-SEQ-SA -DARCH=la64v1.0 -DTUNE=loongarch64 %s +// RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la64v1.1 -Xclang -target-feature -Xclang -ld-seq-sa | \ +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LAM-BH -DARCH=la64v1.0 -DTUNE=loongarch64 %s +// RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=loongarch64 -Xclang -target-feature -Xclang +ld-seq-sa | \ +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,LD-SEQ-SA -DARCH=loongarch64 -DTUNE=loongarch64 %s +// RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=loongarch64 -Xclang -target-feature -Xclang +lsx -Xclang -target-feature -Xclang +ld-seq-sa | \ +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,LD-SEQ-SA -DARCH=la64v1.0 -DTUNE=loongarch64 %s +// RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la64v1.0 -Xclang -target-feature -Xclang +frecipe -Xclang -target-feature -Xclang +lam-bh -Xclang -target-feature -Xclang +ld-seq-sa | \ // RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE -DARCH=la64v1.1 -DTUNE=loongarch64 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la664 | \ -// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LAM-BH -DARCH=la664 -DTUNE=la664 %s +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LAM-BH,LD-SEQ-SA -DARCH=la664 -DTUNE=la664 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -mtune=la664 | \ // RUN: FileCheck --match-full-lines --check-prefix=ARCH-TUNE -DARCH=la64v1.0 -DTUNE=la664 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=loongarch64 -mtune=la664 | \ // RUN: FileCheck --match-full-lines --check-prefix=ARCH-TUNE -DARCH=loongarch64 -DTUNE=la664 %s // RUN: %clang --target=loongarch64 -x c -E -dM %s -o - -march=la664 -mtune=loongarch64 | \ -// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LAM-BH -DARCH=la664 -DTUNE=loongarch64 %s +// RUN: FileCheck --match-full-lines --check-prefixes=ARCH-TUNE,FRECIPE,LAM-BH,LD-SEQ-SA -DARCH=la664 -DTUNE=loongarch64 %s // ARCH-TUNE: #define __loongarch_arch "[[ARCH]]" // FRECIPE: #define __loongarch_frecipe 1 // LAM-BH: #define __loongarch_lam_bh 1 +// LD-SEQ-SA: #define __loongarch_ld_seq_sa 1 // ARCH-TUNE: #define __loongarch_tune "[[TUNE]]" // RUN: %clang --target=loongarch64 -mlsx -x c -E -dM %s -o - \ diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index c177975114332..05225c120b13d 100644 --- a/clang/test/Preprocessor/init.c +++ b/clang/test/Preprocessor/init.c @@ -1617,7 +1617,7 @@ // WEBASSEMBLY-NEXT:#define __ATOMIC_SEQ_CST 5 // WEBASSEMBLY-NEXT:#define __BIGGEST_ALIGNMENT__ 16 // WEBASSEMBLY-NEXT:#define __BITINT_MAXWIDTH__ 128 -// WEBASSEMBLY-NEXT:#define __BOOL_WIDTH__ 8 +// WEBASSEMBLY-NEXT:#define __BOOL_WIDTH__ 1 // WEBASSEMBLY-NEXT:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__ // WEBASSEMBLY-NEXT:#define __CHAR16_TYPE__ unsigned short // WEBASSEMBLY-NEXT:#define __CHAR32_TYPE__ unsigned int diff --git a/clang/test/Preprocessor/riscv-target-features.c b/clang/test/Preprocessor/riscv-target-features.c index 7e8d1fa2448b8..13125d749c5fa 100644 --- a/clang/test/Preprocessor/riscv-target-features.c +++ b/clang/test/Preprocessor/riscv-target-features.c @@ -536,7 +536,7 @@ // CHECK-V-EXT: __riscv_v 1000000{{$}} // CHECK-V-EXT: __riscv_v_elen 64 // CHECK-V-EXT: __riscv_v_elen_fp 64 -// CHECK-V-EXT: __riscv_v_intrinsic 12000{{$}} +// CHECK-V-EXT: __riscv_v_intrinsic 1000000{{$}} // CHECK-V-EXT: __riscv_v_min_vlen 128 // CHECK-V-EXT: __riscv_vector 1 @@ -1244,7 +1244,7 @@ // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32F-EXT %s // CHECK-ZVE32F-EXT: __riscv_v_elen 32 // CHECK-ZVE32F-EXT: __riscv_v_elen_fp 32 -// CHECK-ZVE32F-EXT: __riscv_v_intrinsic 12000{{$}} +// CHECK-ZVE32F-EXT: __riscv_v_intrinsic 1000000{{$}} // CHECK-ZVE32F-EXT: __riscv_v_min_vlen 32 // CHECK-ZVE32F-EXT: __riscv_vector 1 // CHECK-ZVE32F-EXT: __riscv_zve32f 1000000{{$}} @@ -1258,7 +1258,7 @@ // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE32X-EXT %s // CHECK-ZVE32X-EXT: __riscv_v_elen 32 // CHECK-ZVE32X-EXT: __riscv_v_elen_fp 0 -// CHECK-ZVE32X-EXT: __riscv_v_intrinsic 12000{{$}} +// CHECK-ZVE32X-EXT: __riscv_v_intrinsic 1000000{{$}} // CHECK-ZVE32X-EXT: __riscv_v_min_vlen 32 // CHECK-ZVE32X-EXT: __riscv_vector 1 // CHECK-ZVE32X-EXT: __riscv_zve32x 1000000{{$}} @@ -1271,7 +1271,7 @@ // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64D-EXT %s // CHECK-ZVE64D-EXT: __riscv_v_elen 64 // CHECK-ZVE64D-EXT: __riscv_v_elen_fp 64 -// CHECK-ZVE64D-EXT: __riscv_v_intrinsic 12000{{$}} +// CHECK-ZVE64D-EXT: __riscv_v_intrinsic 1000000{{$}} // CHECK-ZVE64D-EXT: __riscv_v_min_vlen 64 // CHECK-ZVE64D-EXT: __riscv_vector 1 // CHECK-ZVE64D-EXT: __riscv_zve32f 1000000{{$}} @@ -1288,7 +1288,7 @@ // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64F-EXT %s // CHECK-ZVE64F-EXT: __riscv_v_elen 64 // CHECK-ZVE64F-EXT: __riscv_v_elen_fp 32 -// CHECK-ZVE64F-EXT: __riscv_v_intrinsic 12000{{$}} +// CHECK-ZVE64F-EXT: __riscv_v_intrinsic 1000000{{$}} // CHECK-ZVE64F-EXT: __riscv_v_min_vlen 64 // CHECK-ZVE64F-EXT: __riscv_vector 1 // CHECK-ZVE64F-EXT: __riscv_zve32f 1000000{{$}} @@ -1304,7 +1304,7 @@ // RUN: -o - | FileCheck --check-prefix=CHECK-ZVE64X-EXT %s // CHECK-ZVE64X-EXT: __riscv_v_elen 64 // CHECK-ZVE64X-EXT: __riscv_v_elen_fp 0 -// CHECK-ZVE64X-EXT: __riscv_v_intrinsic 12000{{$}} +// CHECK-ZVE64X-EXT: __riscv_v_intrinsic 1000000{{$}} // CHECK-ZVE64X-EXT: __riscv_v_min_vlen 64 // CHECK-ZVE64X-EXT: __riscv_vector 1 // CHECK-ZVE64X-EXT: __riscv_zve32x 1000000{{$}} diff --git a/clang/test/Sema/Inputs/lifetime-analysis.h b/clang/test/Sema/Inputs/lifetime-analysis.h index 41d1e2f074cc8..5c151385b1fe5 100644 --- a/clang/test/Sema/Inputs/lifetime-analysis.h +++ b/clang/test/Sema/Inputs/lifetime-analysis.h @@ -49,6 +49,11 @@ struct vector { vector(InputIterator first, InputIterator __last); T &at(int n); + + void push_back(const T&); + void push_back(T&&); + + void insert(iterator, T&&); }; template diff --git a/clang/test/Sema/amdgcn-address-spaces.c b/clang/test/Sema/amdgcn-address-spaces.c index 50c12993ac69b..70545db920c80 100644 --- a/clang/test/Sema/amdgcn-address-spaces.c +++ b/clang/test/Sema/amdgcn-address-spaces.c @@ -9,7 +9,7 @@ #define _AS999 __attribute__((address_space(999))) void *p1(void _AS1 *p) { return p; } -void *p2(void _AS2 *p) { return p; } +void *p2(void _AS2 *p) { return p; } // expected-error {{returning '_AS2 void *' from a function with result type 'void *' changes address space of pointer}} void *p3(void _AS3 *p) { return p; } void *p4(void _AS4 *p) { return p; } void *p5(void _AS5 *p) { return p; } diff --git a/clang/test/Sema/attr-target-version-unsupported.c b/clang/test/Sema/attr-target-version-unsupported.c new file mode 100644 index 0000000000000..7cf8172f5272e --- /dev/null +++ b/clang/test/Sema/attr-target-version-unsupported.c @@ -0,0 +1,4 @@ +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only -verify %s + +//expected-warning@+1 {{unknown attribute 'target_version' ignored}} +int __attribute__((target_version("aes"))) foo(void) { return 3; } diff --git a/clang/test/Sema/constant_builtins_vector.cpp b/clang/test/Sema/constant_builtins_vector.cpp index 7063c290479f6..e84d09b24672b 100644 --- a/clang/test/Sema/constant_builtins_vector.cpp +++ b/clang/test/Sema/constant_builtins_vector.cpp @@ -777,3 +777,23 @@ static_assert(__builtin_reduce_and((vector4int){(int)~0x11111111, (int)~0x222222 static_assert(__builtin_reduce_and((vector4long){(long long)~0x1111111111111111L, (long long)~0x2222222222222222L, (long long)~0x4444444444444444L, (long long)-1}) == 0x8888888888888888L); static_assert(__builtin_reduce_and((vector4uint){0x11111111U, 0x22222222U, 0x44444444U, 0x88888888U}) == 0U); static_assert(__builtin_reduce_and((vector4ulong){0x1111111111111111UL, 0x2222222222222222UL, 0x4444444444444444UL, 0x8888888888888888UL}) == 0L); + +static_assert(__builtin_reduce_or((vector4char){}) == 0); +static_assert(__builtin_reduce_or((vector4char){(char)0x11, (char)0x22, (char)0x44, (char)0x88}) == (char)0xFF); +static_assert(__builtin_reduce_or((vector4short){(short)0x1111, (short)0x2222, (short)0x4444, (short)0x8888}) == (short)0xFFFF); +static_assert(__builtin_reduce_or((vector4int){(int)0x11111111, (int)0x22222222, (int)0x44444444, (int)0x88888888}) == (int)0xFFFFFFFF); +static_assert(__builtin_reduce_or((vector4long){(long long)0x1111111111111111L, (long long)0x2222222222222222L, (long long)0x4444444444444444L, (long long)0x8888888888888888L}) == (long long)0xFFFFFFFFFFFFFFFFL); +static_assert(__builtin_reduce_or((vector4char){(char)0, (char)0x22, (char)0x44, (char)0x88}) == ~0x11); +static_assert(__builtin_reduce_or((vector4short){(short)0x1111, (short)0, (short)0x4444, (short)0x8888}) == ~0x2222); +static_assert(__builtin_reduce_or((vector4int){(int)0x11111111, (int)0x22222222, (int)0, (int)0x88888888}) == ~0x44444444); +static_assert(__builtin_reduce_or((vector4long){(long long)0x1111111111111111L, (long long)0x2222222222222222L, (long long)0x4444444444444444L, (long long)0}) == ~0x8888888888888888L); +static_assert(__builtin_reduce_or((vector4uint){0x11111111U, 0x22222222U, 0x44444444U, 0x88888888U}) == 0xFFFFFFFFU); +static_assert(__builtin_reduce_or((vector4ulong){0x1111111111111111UL, 0x2222222222222222UL, 0x4444444444444444UL, 0x8888888888888888UL}) == 0xFFFFFFFFFFFFFFFFL); + +static_assert(__builtin_reduce_xor((vector4char){}) == 0); +static_assert(__builtin_reduce_xor((vector4char){(char)0x11, (char)0x22, (char)0x44, (char)0x88}) == (char)0xFF); +static_assert(__builtin_reduce_xor((vector4short){(short)0x1111, (short)0x2222, (short)0x4444, (short)0x8888}) == (short)0xFFFF); +static_assert(__builtin_reduce_xor((vector4int){(int)0x11111111, (int)0x22222222, (int)0x44444444, (int)0x88888888}) == (int)0xFFFFFFFF); +static_assert(__builtin_reduce_xor((vector4long){(long long)0x1111111111111111L, (long long)0x2222222222222222L, (long long)0x4444444444444444L, (long long)0x8888888888888888L}) == (long long)0xFFFFFFFFFFFFFFFFL); +static_assert(__builtin_reduce_xor((vector4uint){0x11111111U, 0x22222222U, 0x44444444U, 0x88888888U}) == 0xFFFFFFFFU); +static_assert(__builtin_reduce_xor((vector4ulong){0x1111111111111111UL, 0x2222222222222222UL, 0x4444444444444444UL, 0x8888888888888888UL}) == 0xFFFFFFFFFFFFFFFFUL); diff --git a/clang/test/Sema/warn-lifetime-analysis-capture-by.cpp b/clang/test/Sema/warn-lifetime-analysis-capture-by.cpp index b3fde386b8616..4d562bac1e305 100644 --- a/clang/test/Sema/warn-lifetime-analysis-capture-by.cpp +++ b/clang/test/Sema/warn-lifetime-analysis-capture-by.cpp @@ -366,3 +366,48 @@ void use() { capture3(std::string(), x3); // expected-warning {{object whose reference is captured by 'x3' will be destroyed at the end of the full-expression}} } } // namespace temporary_views + +// **************************************************************************** +// Inferring annotation for STL containers +// **************************************************************************** +namespace inferred_capture_by { +const std::string* getLifetimeBoundPointer(const std::string &s [[clang::lifetimebound]]); +const std::string* getNotLifetimeBoundPointer(const std::string &s); + +std::string_view getLifetimeBoundView(const std::string& s [[clang::lifetimebound]]); +std::string_view getNotLifetimeBoundView(const std::string& s); +void use() { + std::string local; + std::vector views; + views.push_back(std::string()); // expected-warning {{object whose reference is captured by 'views' will be destroyed at the end of the full-expression}} + views.insert(views.begin(), + std::string()); // expected-warning {{object whose reference is captured by 'views' will be destroyed at the end of the full-expression}} + views.push_back(getLifetimeBoundView(std::string())); // expected-warning {{object whose reference is captured by 'views' will be destroyed at the end of the full-expression}} + views.push_back(getNotLifetimeBoundView(std::string())); + views.push_back(local); + views.insert(views.end(), local); + + std::vector strings; + strings.push_back(std::string()); + strings.insert(strings.begin(), std::string()); + + std::vector pointers; + pointers.push_back(getLifetimeBoundPointer(std::string())); // expected-warning {{object whose reference is captured by 'pointers' will be destroyed at the end of the full-expression}} + pointers.push_back(&local); +} + +namespace with_span { +// Templated view types. +template +struct [[gsl::Pointer]] Span { + Span(const std::vector &V); +}; + +void use() { + std::vector> spans; + spans.push_back(std::vector{1, 2, 3}); // expected-warning {{object whose reference is captured by 'spans' will be destroyed at the end of the full-expression}} + std::vector local; + spans.push_back(local); +} +} // namespace with_span +} // namespace inferred_capture_by diff --git a/clang/test/SemaCXX/cxx2b-warn-shadow.cpp b/clang/test/SemaCXX/cxx2b-warn-shadow.cpp new file mode 100644 index 0000000000000..76866c4269474 --- /dev/null +++ b/clang/test/SemaCXX/cxx2b-warn-shadow.cpp @@ -0,0 +1,13 @@ +// RUN: %clang_cc1 -verify -fsyntax-only -std=c++2b -Wshadow-all %s + +namespace GH95707 { +struct Foo { + int a; // expected-note 2 {{previous declaration is here}} + + void f1(this auto &self, int a) { self.a = a; } + void f2(int a) { } // expected-warning {{declaration shadows a field of 'GH95707::Foo'}} + void f3() { + (void)[&](this auto &self, int a) { }; // expected-warning {{declaration shadows a field of 'GH95707::Foo'}} + } +}; +} // namespace GH95707 diff --git a/clang/test/SemaCXX/cxx2c-pack-indexing.cpp b/clang/test/SemaCXX/cxx2c-pack-indexing.cpp index 962dbb8137f28..cb679a6c3ad87 100644 --- a/clang/test/SemaCXX/cxx2c-pack-indexing.cpp +++ b/clang/test/SemaCXX/cxx2c-pack-indexing.cpp @@ -271,3 +271,37 @@ void f() { } } // namespace GH105903 + +namespace GH116105 { + +template using pack_type = Ts...[Np]; + +template using pack_expr = decltype(Ts...[Np]); + +template struct types; + +template struct indices; + +template struct repack; + +template struct repack> { + template + using pack_type_alias = types...>; + + template + using pack_expr_alias = types...>; +}; + +template struct mdispatch_ { + using Idx = __make_integer_seq; + + static_assert(__is_same( + typename repack::template pack_type_alias, types)); + + static_assert(__is_same( + typename repack::template pack_expr_alias, types)); +}; + +mdispatch_ d; + +} // namespace GH116105 diff --git a/clang/test/SemaCXX/function-redecl.cpp b/clang/test/SemaCXX/function-redecl.cpp index 8c0e9a880d070..90490a4c1b700 100644 --- a/clang/test/SemaCXX/function-redecl.cpp +++ b/clang/test/SemaCXX/function-redecl.cpp @@ -46,7 +46,7 @@ namespace test0 { void dummy() { void Bar(); // expected-note {{'Bar' declared here}} class A { - friend void bar(); // expected-error {{no matching function 'bar' found in local scope; did you mean 'Bar'}} + friend void bar(); // expected-error {{cannot define friend function 'bar' in a local class definition; did you mean 'Bar'}} }; } } diff --git a/clang/test/SemaCXX/integer-overflow.cpp b/clang/test/SemaCXX/integer-overflow.cpp index d1cc8bee566f6..73a4e88ee6c09 100644 --- a/clang/test/SemaCXX/integer-overflow.cpp +++ b/clang/test/SemaCXX/integer-overflow.cpp @@ -246,4 +246,10 @@ int m() { return 0; } } + +namespace GH46755 { +void f() { + struct { int v; } &&r = {512 * 1024 * 1024 * 1024}; // expected-warning {{overflow in expression; result is 0 with type 'int'}} +} +} #endif diff --git a/clang/test/SemaCXX/warn-missing-noreturn.cpp b/clang/test/SemaCXX/warn-missing-noreturn.cpp index 400b471600e02..32b49e0a325f2 100644 --- a/clang/test/SemaCXX/warn-missing-noreturn.cpp +++ b/clang/test/SemaCXX/warn-missing-noreturn.cpp @@ -122,3 +122,25 @@ namespace PR10801 { thingy(b); } } + +namespace GH63009 { +struct S1 { + [[noreturn]] S1(); +}; + +struct S2 { + [[noreturn]] ~S2(); +}; + +int foo(); + +int test_1() { + S1 s1; + foo(); +} + +int test_2() { + S2 s2; + foo(); +} +} diff --git a/clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl b/clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl index 3c2ea557b1982..941e0a975d5f4 100644 --- a/clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl +++ b/clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl @@ -1,17 +1,112 @@ // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-compute -x hlsl -fsyntax-only -verify %s typedef vector float3; +typedef vector double2; +typedef vector double3; -RWBuffer Buffer; -// expected-error@+2 {{class template 'RWBuffer' requires template arguments}} -// expected-note@*:* {{template declaration from hidden source: template class RWBuffer}} +// expected-error@+1 {{class template 'RWBuffer' requires template arguments}} RWBuffer BufferErr1; -// expected-error@+2 {{too few template arguments for class template 'RWBuffer'}} -// expected-note@*:* {{template declaration from hidden source: template class RWBuffer}} +// expected-error@+1 {{too few template arguments for class template 'RWBuffer'}} RWBuffer<> BufferErr2; +// test implicit RWBuffer concept +RWBuffer r1; +RWBuffer r2; +RWBuffer Buffer; +RWBuffer r4; + +// expected-error@+4 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{template declaration from hidden source: template requires __is_typed_resource_element_compatible class RWBuffer}} +// expected-note@*:* {{because 'hlsl::RWBuffer' does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(hlsl::RWBuffer)' evaluated to false}} +RWBuffer > r5; + +struct s { + int x; +}; + +struct Empty {}; + +template struct TemplatedBuffer { + T a; +}; + +template struct TemplatedVector { + vector v; +}; + +// structs not allowed +// expected-error@+4 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{template declaration from hidden source: template requires __is_typed_resource_element_compatible class RWBuffer}} +// expected-note@*:* {{because 's' does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(s)' evaluated to false}} +RWBuffer r6; +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'Empty' does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(Empty)' evaluated to false}} +RWBuffer r7; + +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'TemplatedBuffer' does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(TemplatedBuffer)' evaluated to false}} +RWBuffer > r8; +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'TemplatedVector' does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(TemplatedVector)' evaluated to false}} +RWBuffer > r9; + +// arrays not allowed +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'half[4]' does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(__fp16[4])' evaluated to false}} +RWBuffer r10; + +typedef vector int8; +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'vector' (vector of 8 'int' values) does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(int __attribute__((ext_vector_type(8))))' evaluated to false}} +RWBuffer r11; + +typedef int MyInt; +RWBuffer r12; + +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'bool' does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(_Bool)' evaluated to false}} +RWBuffer r13; + +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'vector' (vector of 2 'bool' values) does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(_Bool __attribute__((ext_vector_type(2))))' evaluated to false}} +RWBuffer> r14; + +enum numbers { one, two, three }; + +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'numbers' does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(numbers)' evaluated to false}} +RWBuffer r15; + +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'vector' (vector of 3 'double' values) does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(double __attribute__((ext_vector_type(3))))' evaluated to false}} +RWBuffer r16; + + +struct threeDoubles { + double a; + double b; + double c; +}; + +// expected-error@+3 {{constraints not satisfied for class template 'RWBuffer'}} +// expected-note@*:* {{because 'threeDoubles' does not satisfy '__is_typed_resource_element_compatible'}} +// expected-note@*:* {{because '__builtin_hlsl_is_typed_resource_element_compatible(threeDoubles)' evaluated to false}} +RWBuffer BufferErr3; + + [numthreads(1,1,1)] void main() { (void)Buffer.__handle; // expected-error {{'__handle' is a private member of 'hlsl::RWBuffer>'}} diff --git a/clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl b/clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl index b0cf9453cecfc..edfc1b48037c9 100644 --- a/clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl +++ b/clang/test/SemaHLSL/BuiltIns/StructuredBuffers.hlsl @@ -5,11 +5,11 @@ typedef vector float3; StructuredBuffer Buffer; // expected-error@+2 {{class template 'StructuredBuffer' requires template arguments}} -// expected-note@*:* {{template declaration from hidden source: template class StructuredBuffer}} +// expected-note@*:* {{template declaration from hidden source: template class StructuredBuffer {}}} StructuredBuffer BufferErr1; // expected-error@+2 {{too few template arguments for class template 'StructuredBuffer'}} -// expected-note@*:* {{template declaration from hidden source: template class StructuredBuffer}} +// expected-note@*:* {{template declaration from hidden source: template class StructuredBuffer {}}} StructuredBuffer<> BufferErr2; [numthreads(1,1,1)] diff --git a/clang/test/SemaHLSL/BuiltIns/WaveActiveAnyTrue-errors.hlsl b/clang/test/SemaHLSL/BuiltIns/WaveActiveAnyTrue-errors.hlsl new file mode 100644 index 0000000000000..875aae0651702 --- /dev/null +++ b/clang/test/SemaHLSL/BuiltIns/WaveActiveAnyTrue-errors.hlsl @@ -0,0 +1,21 @@ +// RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.6-library %s -emit-llvm-only -disable-llvm-passes -verify + +bool test_too_few_arg() { + return __builtin_hlsl_wave_active_any_true(); + // expected-error@-1 {{too few arguments to function call, expected 1, have 0}} +} + +bool test_too_many_arg(bool p0) { + return __builtin_hlsl_wave_active_any_true(p0, p0); + // expected-error@-1 {{too many arguments to function call, expected 1, have 2}} +} + +struct Foo +{ + int a; +}; + +bool test_type_check(Foo p0) { + return __builtin_hlsl_wave_active_any_true(p0); + // expected-error@-1 {{no viable conversion from 'Foo' to 'bool'}} +} diff --git a/clang/test/SemaHLSL/BuiltIns/asdouble-errors.hlsl b/clang/test/SemaHLSL/BuiltIns/asdouble-errors.hlsl new file mode 100644 index 0000000000000..c6b57c76a1e2b --- /dev/null +++ b/clang/test/SemaHLSL/BuiltIns/asdouble-errors.hlsl @@ -0,0 +1,16 @@ +// RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.6-library %s -emit-llvm-only -disable-llvm-passes -verify + +double test_too_few_arg() { + return __builtin_hlsl_asdouble(); + // expected-error@-1 {{too few arguments to function call, expected 2, have 0}} +} + +double test_too_few_arg_1(uint p0) { + return __builtin_hlsl_asdouble(p0); + // expected-error@-1 {{too few arguments to function call, expected 2, have 1}} +} + +double test_too_many_arg(uint p0) { + return __builtin_hlsl_asdouble(p0, p0, p0); + // expected-error@-1 {{too many arguments to function call, expected 2, have 3}} +} diff --git a/clang/test/SemaHLSL/BuiltIns/buffer_update_counter-errors.hlsl b/clang/test/SemaHLSL/BuiltIns/buffer_update_counter-errors.hlsl new file mode 100644 index 0000000000000..4aa3ac183d3b1 --- /dev/null +++ b/clang/test/SemaHLSL/BuiltIns/buffer_update_counter-errors.hlsl @@ -0,0 +1,48 @@ +// RUN: %clang_cc1 -finclude-default-header -triple dxil-pc-shadermodel6.6-library %s -emit-llvm-only -disable-llvm-passes -verify + +// RWStructuredBuffer +using handle_t = __hlsl_resource_t [[hlsl::resource_class(UAV)]] [[hlsl::contained_type(int)]] [[hlsl::raw_buffer]]; +// RWBuffer +using bad_handle_not_raw_t = __hlsl_resource_t [[hlsl::resource_class(UAV)]] [[hlsl::contained_type(int)]]; +// RWByteAddressBuffer +using bad_handle_no_type_t = __hlsl_resource_t [[hlsl::resource_class(UAV)]] [[hlsl::raw_buffer]]; +// StructuredBuffer +using bad_handle_not_uav_t = __hlsl_resource_t [[hlsl::resource_class(SRV)]] [[hlsl::contained_type(int)]] [[hlsl::raw_buffer]]; + +void test_args(int x, bool b) { + // expected-error@+1 {{too few arguments to function call, expected 2, have 1}} + __builtin_hlsl_buffer_update_counter(x); + + // expected-error@+1 {{too many arguments to function call, expected 2, have 3}} + __builtin_hlsl_buffer_update_counter(x, x, x); + + // expected-error@+1 {{used type 'int' where __hlsl_resource_t is required}} + __builtin_hlsl_buffer_update_counter(x, x); + + bad_handle_not_raw_t bad1; + bad_handle_no_type_t bad2; + bad_handle_not_uav_t bad3; + + // expected-error@+1 {{invalid __hlsl_resource_t type attributes}} + __builtin_hlsl_buffer_update_counter(bad1, 1); + + // expected-error@+1 {{invalid __hlsl_resource_t type attributes}} + __builtin_hlsl_buffer_update_counter(bad2, 1); + + // expected-error@+1 {{invalid __hlsl_resource_t type attributes}} + __builtin_hlsl_buffer_update_counter(bad3, 1); + + handle_t res; + + // expected-error@+1 {{argument 1 must be constant integer 1 or -1}} + __builtin_hlsl_buffer_update_counter(res, x); + + // expected-error@+1 {{passing 'const char *' to parameter of incompatible type 'int'}} + __builtin_hlsl_buffer_update_counter(res, "1"); + + // expected-error@+1 {{argument 1 must be constant integer 1 or -1}} + __builtin_hlsl_buffer_update_counter(res, 10); + + // no error + __builtin_hlsl_buffer_update_counter(res, 1); +} diff --git a/clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatible.hlsl b/clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatible.hlsl index 0467844e1cab8..abe022af73cc6 100644 --- a/clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatible.hlsl +++ b/clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatible.hlsl @@ -7,7 +7,13 @@ _Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(float), ""); _Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(float4), ""); _Static_assert(__builtin_hlsl_is_typed_resource_element_compatible(double2), ""); +// types must be complete _Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(RWBuffer), ""); +_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(__hlsl_resource_t), ""); + +struct notComplete; +_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(notComplete), ""); + struct s { int x; diff --git a/clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatibleErrors.hlsl b/clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatibleErrors.hlsl deleted file mode 100644 index d3d79aa0499e5..0000000000000 --- a/clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatibleErrors.hlsl +++ /dev/null @@ -1,9 +0,0 @@ -// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.6-library -finclude-default-header -fnative-half-type -verify %s - -// types must be complete -_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(__hlsl_resource_t), ""); - -// expected-note@+1{{forward declaration of 'notComplete'}} -struct notComplete; -// expected-error@+1{{incomplete type 'notComplete' where a complete type is required}} -_Static_assert(!__builtin_hlsl_is_typed_resource_element_compatible(notComplete), ""); diff --git a/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950-param.cl b/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950-param.cl index 4af67763c40dd..2f1d312da7786 100644 --- a/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950-param.cl +++ b/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950-param.cl @@ -4,7 +4,12 @@ typedef float float4 __attribute__((ext_vector_type(4))); typedef float float16 __attribute__((ext_vector_type(16))); typedef half half8 __attribute__((ext_vector_type(8))); +typedef half half16 __attribute__((ext_vector_type(16))); typedef __bf16 bfloat8 __attribute__((ext_vector_type(8))); +typedef __bf16 bfloat16 __attribute__((ext_vector_type(16))); +typedef int int4 __attribute__((ext_vector_type(4))); +typedef int int8 __attribute__((ext_vector_type(8))); +typedef int int16 __attribute__((ext_vector_type(16))); void test_mfma_f32_16x16x32_f16(__global float4* out, half8 a, half8 b, float4 c, int X) { @@ -26,3 +31,130 @@ void test_mfma_f32_32x32x16_bf16(__global float16* out, bfloat8 a, bfloat8 b, fl *out = __builtin_amdgcn_mfma_f32_32x32x16_bf16(a, b, c, 0, X, 0); // expected-error{{argument to '__builtin_amdgcn_mfma_f32_32x32x16_bf16' must be a constant integer}} *out = __builtin_amdgcn_mfma_f32_32x32x16_bf16(a, b, c, 0, 0, X); // expected-error{{argument to '__builtin_amdgcn_mfma_f32_32x32x16_bf16' must be a constant integer}} } + +void test_mfma_scale_f32_16x16x128_f8f6f4(__global float4* out, int8 a, int8 b, float4 c, int X, int Y) { + *out = __builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4(a, b, c, X, 0, 1, Y, 2, Y); // expected-error{{argument to '__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4' must be a constant integer}} + *out = __builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4(a, b, c, 0, X, 1, Y, 2, Y); // expected-error{{argument to '__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4' must be a constant integer}} + *out = __builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4(a, b, c, 0, 0, X, Y, 2, Y); // expected-error{{argument to '__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4' must be a constant integer}} + *out = __builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4(a, b, c, 0, 0, 0, Y, X, Y); // expected-error{{argument to '__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4' must be a constant integer}} +} + +void test_mfma_scale_f32_32x32x64_f8f6f4(__global float16* out, int8 a, int8 b, float16 c, int X, int Y) { + *out = __builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4(a, b, c, X, 0, 1, Y, 2, Y); // expected-error{{argument to '__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4' must be a constant integer}} + *out = __builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4(a, b, c, 0, X, 1, Y, 2, Y); // expected-error{{argument to '__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4' must be a constant integer}} + *out = __builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4(a, b, c, 0, 0, X, Y, 2, Y); // expected-error{{argument to '__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4' must be a constant integer}} + *out = __builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4(a, b, c, 0, 0, 0, Y, X, Y); // expected-error{{argument to '__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4' must be a constant integer}} +} + +void test_mfma_i32_16x16x64_i8(__global int4* out, int4 a, int4 b, int4 c, int X) { + *out = __builtin_amdgcn_mfma_i32_16x16x64_i8(a, b, c, X, 0, 0); // expected-error{{argument to '__builtin_amdgcn_mfma_i32_16x16x64_i8' must be a constant integer}} + *out = __builtin_amdgcn_mfma_i32_16x16x64_i8(a, b, c, 0, X, 0); // expected-error{{argument to '__builtin_amdgcn_mfma_i32_16x16x64_i8' must be a constant integer}} + *out = __builtin_amdgcn_mfma_i32_16x16x64_i8(a, b, c, 0, 0, X); // expected-error{{argument to '__builtin_amdgcn_mfma_i32_16x16x64_i8' must be a constant integer}} +} + +void test_mfma_i32_32x32x32_i8(__global int16* out, int4 a, int4 b, int16 c, int X) { + *out = __builtin_amdgcn_mfma_i32_32x32x32_i8(a, b, c, X, 0, 0); // expected-error{{argument to '__builtin_amdgcn_mfma_i32_32x32x32_i8' must be a constant integer}} + *out = __builtin_amdgcn_mfma_i32_32x32x32_i8(a, b, c, 0, X, 0); // expected-error{{argument to '__builtin_amdgcn_mfma_i32_32x32x32_i8' must be a constant integer}} + *out = __builtin_amdgcn_mfma_i32_32x32x32_i8(a, b, c, 0, 0, X); // expected-error{{argument to '__builtin_amdgcn_mfma_i32_32x32x32_i8' must be a constant integer}} +} + +void test_mfma_f32_16x16x32_bf16(__global float4* out, bfloat8 a, bfloat8 b, float4 c, int X) { + + *out = __builtin_amdgcn_mfma_f32_16x16x32_bf16(a, b, c, X, 0, 0); // expected-error{{argument to '__builtin_amdgcn_mfma_f32_16x16x32_bf16' must be a constant integer}} + *out = __builtin_amdgcn_mfma_f32_16x16x32_bf16(a, b, c, 0, X, 0); // expected-error{{argument to '__builtin_amdgcn_mfma_f32_16x16x32_bf16' must be a constant integer}} + *out = __builtin_amdgcn_mfma_f32_16x16x32_bf16(a, b, c, 0, 0, X); // expected-error{{argument to '__builtin_amdgcn_mfma_f32_16x16x32_bf16' must be a constant integer}} +} + +void test_smfmac_f32_16x16x64_f16(global float4* out, half8 a, half16 b, float4 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x64_f16(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x64_f16' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_16x16x64_f16(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x64_f16' must be a constant integer}} +} + +void test_smfmac_f32_32x32x32_f16(global float16* out, half8 a, half16 b, float16 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x32_f16(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x32_f16' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_32x32x32_f16(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x32_f16' must be a constant integer}} +} + +void test_smfmac_f32_16x16x64_bf16(global float4* out, bfloat8 a, bfloat16 b, float4 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x64_bf16(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x64_bf16' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_16x16x64_bf16(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x64_bf16' must be a constant integer}} +} + +void test_smfmac_f32_32x32x32_bf16(global float16* out, bfloat8 a, bfloat16 b, float16 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x32_bf16(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x32_bf16' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_32x32x32_bf16(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x32_bf16' must be a constant integer}} +} + +void test_smfmac_i32_16x16x128_i8(global int4* out, int4 a, int8 b, int4 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_i32_16x16x128_i8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_i32_16x16x128_i8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_i32_16x16x128_i8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_i32_16x16x128_i8' must be a constant integer}} +} + +void test_smfmac_i32_32x32x64_i8(global int16* out, int4 a, int8 b, int16 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_i32_32x32x64_i8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_i32_32x32x64_i8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_i32_32x32x64_i8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_i32_32x32x64_i8' must be a constant integer}} +} + +void test_smfmac_f32_16x16x128_bf8_bf8(global float4* out, int4 a, int8 b, float4 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x128_bf8_bf8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x128_bf8_bf8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_16x16x128_bf8_bf8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x128_bf8_bf8' must be a constant integer}} +} + +void test_smfmac_f32_16x16x128_bf8_fp8(global float4* out, int4 a, int8 b, float4 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x128_bf8_fp8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x128_bf8_fp8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_16x16x128_bf8_fp8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x128_bf8_fp8' must be a constant integer}} +} + +void test_smfmac_f32_16x16x128_fp8_bf8(global float4* out, int4 a, int8 b, float4 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x128_fp8_bf8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x128_fp8_bf8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_16x16x128_fp8_bf8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x128_fp8_bf8' must be a constant integer}} +} + +void test_smfmac_f32_16x16x128_fp8_fp8(global float4* out, int4 a, int8 b, float4 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_16x16x128_fp8_fp8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x128_fp8_fp8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_16x16x128_fp8_fp8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_16x16x128_fp8_fp8' must be a constant integer}} +} + +void test_smfmac_f32_32x32x64_bf8_bf8(global float16* out, int4 a, int8 b, float16 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x64_bf8_bf8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x64_bf8_bf8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_32x32x64_bf8_bf8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x64_bf8_bf8' must be a constant integer}} +} + +void test_smfmac_f32_32x32x64_bf8_fp8(global float16* out, int4 a, int8 b, float16 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x64_bf8_fp8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x64_bf8_fp8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_32x32x64_bf8_fp8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x64_bf8_fp8' must be a constant integer}} +} + +void test_smfmac_f32_32x32x64_fp8_bf8(global float16* out, int4 a, int8 b, float16 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x64_fp8_bf8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x64_fp8_bf8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_32x32x64_fp8_bf8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x64_fp8_bf8' must be a constant integer}} +} + +void test_smfmac_f32_32x32x64_fp8_fp8(global float16* out, int4 a, int8 b, float16 c, int idx, int d) +{ + *out = __builtin_amdgcn_smfmac_f32_32x32x64_fp8_fp8(a, b, c, idx, d, 0); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x64_fp8_fp8' must be a constant integer}} + *out = __builtin_amdgcn_smfmac_f32_32x32x64_fp8_fp8(a, b, c, idx, 0, d); // expected-error{{argument to '__builtin_amdgcn_smfmac_f32_32x32x64_fp8_fp8' must be a constant integer}} +} + +void test_permlane16_swap(__global int* out, int old, int src, bool X) { + *out = __builtin_amdgcn_permlane16_swap(old, src, X, false); // expected-error{{argument to '__builtin_amdgcn_permlane16_swap' must be a constant integer}} + *out = __builtin_amdgcn_permlane16_swap(old, src, false, X); // expected-error{{argument to '__builtin_amdgcn_permlane16_swap' must be a constant integer}} +} + +void test_permlane32_swap(__global int* out, int old, int src, bool X) { + *out = __builtin_amdgcn_permlane32_swap(old, src, X, false); // expected-error{{argument to '__builtin_amdgcn_permlane32_swap' must be a constant integer}} + *out = __builtin_amdgcn_permlane32_swap(old, src, false, X); // expected-error{{argument to '__builtin_amdgcn_permlane32_swap' must be a constant integer}} +} diff --git a/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950.cl b/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950.cl index e0fd2aa5c58a0..e0cde1d3ad87b 100644 --- a/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950.cl +++ b/clang/test/SemaOpenCL/builtins-amdgcn-error-gfx950.cl @@ -4,12 +4,53 @@ typedef float float4 __attribute__((ext_vector_type(4))); typedef float float16 __attribute__((ext_vector_type(16))); typedef half half8 __attribute__((ext_vector_type(8))); +typedef half half16 __attribute__((ext_vector_type(16))); typedef __bf16 bfloat8 __attribute__((ext_vector_type(8))); +typedef __bf16 bfloat16 __attribute__((ext_vector_type(16))); +typedef unsigned int uint2 __attribute__((ext_vector_type(2))); +typedef int int4 __attribute__((ext_vector_type(4))); +typedef int int8 __attribute__((ext_vector_type(8))); +typedef int int16 __attribute__((ext_vector_type(16))); void test(__global float4* out0, half8 a0, half8 b0, float4 c0, __global float16* out1, half8 a1, half8 b1, float16 c1, - __global float16* out2, bfloat8 a2, bfloat8 b2, float16 c2) { + __global float16* out2, bfloat8 a2, bfloat8 b2, float16 c2, + __global int4* out3, int4 a3, int4 b3, int4 c3, + __global int16* out4, int4 a4, int4 b4, int16 c4, + __global float4* out5, bfloat8 a5, bfloat8 b5, float4 c5, + __global float4* out6, half8 a6, half16 b6, float4 c6, + __global float16* out7, half8 a7, half16 b7, float16 c7, + __global float4* out8, bfloat8 a8, bfloat16 b8, float4 c8, + __global float16* out9, bfloat8 a9, bfloat16 b9, float16 c9, + __global int4* out10, int4 a10, int8 b10, int4 c10, + __global int16* out11, int4 a11, int8 b11, int16 c11, + __global float4* out12, int4 a12, int8 b12, float4 c12, + __global float16* out13, int4 a13, int8 b13, float16 c13, + __global float4* out14, int8 a14, int8 b14, float4 c14, int d14, int e14, + __global float16* out15, int8 a15, int8 b15, float16 c15, int d15, int e15, + __global uint2* out16, int a16, int b16) { *out0 = __builtin_amdgcn_mfma_f32_16x16x32_f16(a0, b0, c0, 0, 0, 0); // expected-error{{'__builtin_amdgcn_mfma_f32_16x16x32_f16' needs target feature gfx950-insts}} *out1 = __builtin_amdgcn_mfma_f32_32x32x16_f16(a1, b1, c1, 0, 0, 0); // expected-error{{'__builtin_amdgcn_mfma_f32_32x32x16_f16' needs target feature gfx950-insts}} *out2 = __builtin_amdgcn_mfma_f32_32x32x16_bf16(a2, b2, c2, 0, 0, 0); // expected-error{{'__builtin_amdgcn_mfma_f32_32x32x16_bf16' needs target feature gfx950-insts}} + *out3 = __builtin_amdgcn_mfma_i32_16x16x64_i8(a3, b3, c3, 0, 0, 0); // expected-error{{'__builtin_amdgcn_mfma_i32_16x16x64_i8' needs target feature gfx950-insts}} + *out4 = __builtin_amdgcn_mfma_i32_32x32x32_i8(a4, b4, c4, 0, 0, 0); // expected-error{{'__builtin_amdgcn_mfma_i32_32x32x32_i8' needs target feature gfx950-insts}} + *out5 = __builtin_amdgcn_mfma_f32_16x16x32_bf16(a5, b5, c5, 0, 0, 0); // expected-error{{'__builtin_amdgcn_mfma_f32_16x16x32_bf16' needs target feature gfx950-insts}} + *out6 = __builtin_amdgcn_smfmac_f32_16x16x64_f16(a6, b6, c6, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_16x16x64_f16' needs target feature gfx950-insts}} + *out7 = __builtin_amdgcn_smfmac_f32_32x32x32_f16(a7, b7, c7, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_32x32x32_f16' needs target feature gfx950-insts}} + *out8 = __builtin_amdgcn_smfmac_f32_16x16x64_bf16(a8, b8, c8, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_16x16x64_bf16' needs target feature gfx950-insts}} + *out9 = __builtin_amdgcn_smfmac_f32_32x32x32_bf16(a9, b9, c9, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_32x32x32_bf16' needs target feature gfx950-insts}} + *out10 = __builtin_amdgcn_smfmac_i32_16x16x128_i8(a10, b10, c10, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_i32_16x16x128_i8' needs target feature gfx950-insts}} + *out11 = __builtin_amdgcn_smfmac_i32_32x32x64_i8(a11, b11, c11, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_i32_32x32x64_i8' needs target feature gfx950-insts}} + *out12 = __builtin_amdgcn_smfmac_f32_16x16x128_bf8_bf8(a12, b12, c12, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_16x16x128_bf8_bf8' needs target feature gfx950-insts}} + *out12 = __builtin_amdgcn_smfmac_f32_16x16x128_bf8_fp8(a12, b12, c12, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_16x16x128_bf8_fp8' needs target feature gfx950-insts}} + *out12 = __builtin_amdgcn_smfmac_f32_16x16x128_fp8_bf8(a12, b12, c12, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_16x16x128_fp8_bf8' needs target feature gfx950-insts}} + *out12 = __builtin_amdgcn_smfmac_f32_16x16x128_fp8_fp8(a12, b12, c12, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_16x16x128_fp8_fp8' needs target feature gfx950-insts}} + *out13 = __builtin_amdgcn_smfmac_f32_32x32x64_bf8_bf8(a13, b13, c13, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_32x32x64_bf8_bf8' needs target feature gfx950-insts}} + *out13 = __builtin_amdgcn_smfmac_f32_32x32x64_bf8_fp8(a13, b13, c13, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_32x32x64_bf8_fp8' needs target feature gfx950-insts}} + *out13 = __builtin_amdgcn_smfmac_f32_32x32x64_fp8_bf8(a13, b13, c13, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_32x32x64_fp8_bf8' needs target feature gfx950-insts}} + *out13 = __builtin_amdgcn_smfmac_f32_32x32x64_fp8_fp8(a13, b13, c13, 0, 0, 0); // expected-error{{'__builtin_amdgcn_smfmac_f32_32x32x64_fp8_fp8' needs target feature gfx950-insts}} + *out14 = __builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4(a14, b14, c14, 0, 0, 0, d14, 0, e14); // expected-error{{'__builtin_amdgcn_mfma_scale_f32_16x16x128_f8f6f4' needs target feature gfx950-insts}} + *out15 = __builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4(a15, b15, c15, 0, 0, 0, d15, 0, e15); // expected-error{{'__builtin_amdgcn_mfma_scale_f32_32x32x64_f8f6f4' needs target feature gfx950-insts}} + *out16 = __builtin_amdgcn_permlane16_swap(a16, b16, false, false); // expected-error{{'__builtin_amdgcn_permlane16_swap' needs target feature permlane16-swap}} + *out16 = __builtin_amdgcn_permlane32_swap(a16, b16, false, false); // expected-error{{'__builtin_amdgcn_permlane32_swap' needs target feature permlane32-swap}} } diff --git a/clang/tools/c-index-test/core_main.cpp b/clang/tools/c-index-test/core_main.cpp index c43bff2196211..327a77a09408b 100644 --- a/clang/tools/c-index-test/core_main.cpp +++ b/clang/tools/c-index-test/core_main.cpp @@ -25,6 +25,7 @@ #include "llvm/Support/Program.h" #include "llvm/Support/Signals.h" #include "llvm/Support/StringSaver.h" +#include "llvm/Support/VirtualFileSystem.h" #include "llvm/Support/raw_ostream.h" using namespace clang; @@ -219,8 +220,9 @@ static bool printSourceSymbols(const char *Executable, SmallVector ArgsWithProgName; ArgsWithProgName.push_back(Executable); ArgsWithProgName.append(Args.begin(), Args.end()); - IntrusiveRefCntPtr - Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions)); + IntrusiveRefCntPtr Diags( + CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), + new DiagnosticOptions)); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; CIOpts.ProbePrecompiled = true; // FIXME: historical default. Needed? @@ -273,7 +275,8 @@ static bool printSourceSymbolsFromModule(StringRef modulePath, auto HSOpts = std::make_shared(); IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), + new DiagnosticOptions()); std::unique_ptr AU = ASTUnit::LoadFromASTFile(modulePath, *pchRdr, ASTUnit::LoadASTOnly, Diags, FileSystemOpts, HSOpts, /*LangOpts=*/nullptr, diff --git a/clang/tools/clang-format/ClangFormat.cpp b/clang/tools/clang-format/ClangFormat.cpp index cc735e4872592..5481bb6b87503 100644 --- a/clang/tools/clang-format/ClangFormat.cpp +++ b/clang/tools/clang-format/ClangFormat.cpp @@ -178,7 +178,7 @@ enum class WNoError { Unknown }; static cl::bits WNoErrorList( "Wno-error", - cl::desc("If set don't error out on the specified warning type."), + cl::desc("If set, don't error out on the specified warning type."), cl::values( clEnumValN(WNoError::Unknown, "unknown", "If set, unknown format options are only warned about.\n" diff --git a/clang/tools/clang-import-test/clang-import-test.cpp b/clang/tools/clang-import-test/clang-import-test.cpp index 2473e16a546dc..41a8a63a2e22b 100644 --- a/clang/tools/clang-import-test/clang-import-test.cpp +++ b/clang/tools/clang-import-test/clang-import-test.cpp @@ -31,6 +31,7 @@ #include "llvm/Support/CommandLine.h" #include "llvm/Support/Error.h" #include "llvm/Support/Signals.h" +#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" #include @@ -164,7 +165,8 @@ std::unique_ptr BuildCompilerInstance() { auto Ins = std::make_unique(); auto DC = std::make_unique(); const bool ShouldOwnClient = true; - Ins->createDiagnostics(DC.release(), ShouldOwnClient); + Ins->createDiagnostics(*llvm::vfs::getRealFileSystem(), DC.release(), + ShouldOwnClient); auto Inv = std::make_unique(); diff --git a/clang/tools/clang-installapi/ClangInstallAPI.cpp b/clang/tools/clang-installapi/ClangInstallAPI.cpp index 308e5285e3257..ce6240b1b56f1 100644 --- a/clang/tools/clang-installapi/ClangInstallAPI.cpp +++ b/clang/tools/clang-installapi/ClangInstallAPI.cpp @@ -113,7 +113,7 @@ static bool run(ArrayRef Args, const char *ProgName) { // Set up compilation. std::unique_ptr CI(new CompilerInstance()); CI->setFileManager(FM.get()); - CI->createDiagnostics(); + CI->createDiagnostics(FM->getVirtualFileSystem()); if (!CI->hasDiagnostics()) return EXIT_FAILURE; diff --git a/clang/tools/clang-scan-deps/ClangScanDeps.cpp b/clang/tools/clang-scan-deps/ClangScanDeps.cpp index 9b30799c3ab26..58b56dcfd3bec 100644 --- a/clang/tools/clang-scan-deps/ClangScanDeps.cpp +++ b/clang/tools/clang-scan-deps/ClangScanDeps.cpp @@ -29,6 +29,7 @@ #include "llvm/Support/ThreadPool.h" #include "llvm/Support/Threading.h" #include "llvm/Support/Timer.h" +#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" #include #include @@ -424,7 +425,8 @@ class FullDeps { IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions{}; TextDiagnosticPrinter DiagConsumer(ErrOS, &*DiagOpts); IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(&*DiagOpts, &DiagConsumer, + CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), + &*DiagOpts, &DiagConsumer, /*ShouldOwnClient=*/false); for (auto &&M : Modules) @@ -739,7 +741,8 @@ getCompilationDatabase(int argc, char **argv, std::string &ErrorMessage) { tooling::JSONCommandLineSyntax::AutoDetect); llvm::IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions); + CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), + new DiagnosticOptions); driver::Driver TheDriver(CommandLine[0], llvm::sys::getDefaultTargetTriple(), *Diags); TheDriver.setCheckInputsExist(false); diff --git a/clang/tools/clang-shlib/CMakeLists.txt b/clang/tools/clang-shlib/CMakeLists.txt index d83c13fd394f4..31484ec49c773 100644 --- a/clang/tools/clang-shlib/CMakeLists.txt +++ b/clang/tools/clang-shlib/CMakeLists.txt @@ -51,8 +51,7 @@ add_clang_library(clang-cpp configure_file(simple_version_script.map.in simple_version_script.map) -if (NOT APPLE AND NOT MSVC AND NOT MINGW AND NOT LLVM_LINKER_IS_SOLARISLD) - # Solaris ld does not accept global: *; so there is no way to version *all* global symbols +if (CMAKE_SYSTEM_NAME STREQUAL "Linux") target_link_options(clang-cpp PRIVATE LINKER:--version-script,${CMAKE_CURRENT_BINARY_DIR}/simple_version_script.map) endif() diff --git a/clang/tools/diagtool/ShowEnabledWarnings.cpp b/clang/tools/diagtool/ShowEnabledWarnings.cpp index 66a295db054c3..48bed7c828c16 100644 --- a/clang/tools/diagtool/ShowEnabledWarnings.cpp +++ b/clang/tools/diagtool/ShowEnabledWarnings.cpp @@ -14,6 +14,7 @@ #include "clang/Frontend/TextDiagnosticPrinter.h" #include "clang/Frontend/Utils.h" #include "llvm/Support/TargetSelect.h" +#include "llvm/Support/VirtualFileSystem.h" DEF_DIAGTOOL("show-enabled", "Show which warnings are enabled for a given command line", @@ -74,7 +75,8 @@ createDiagnostics(unsigned int argc, char **argv) { // Build the diagnostics parser IntrusiveRefCntPtr FinalDiags = - CompilerInstance::createDiagnostics(&Invocation->getDiagnosticOpts()); + CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), + &Invocation->getDiagnosticOpts()); if (!FinalDiags) return nullptr; diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp index 554dc956c7cfe..d14058ff2c723 100644 --- a/clang/tools/driver/cc1_main.cpp +++ b/clang/tools/driver/cc1_main.cpp @@ -45,6 +45,7 @@ #include "llvm/Support/TargetSelect.h" #include "llvm/Support/TimeProfiler.h" #include "llvm/Support/Timer.h" +#include "llvm/Support/VirtualFileSystem.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Target/TargetMachine.h" #include "llvm/TargetParser/AArch64TargetParser.h" @@ -264,7 +265,7 @@ int cc1_main(ArrayRef Argv, const char *Argv0, void *MainAddr) { CompilerInvocation::GetResourcesPath(Argv0, MainAddr); // Create the actual diagnostics engine. - Clang->createDiagnostics(); + Clang->createDiagnostics(*llvm::vfs::getRealFileSystem()); if (!Clang->hasDiagnostics()) return 1; diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index cec6f026fccfd..def4524449355 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -59,6 +59,7 @@ #include "llvm/Support/TargetSelect.h" #include "llvm/Support/Threading.h" #include "llvm/Support/Timer.h" +#include "llvm/Support/VirtualFileSystem.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Support/thread.h" #include @@ -4092,7 +4093,8 @@ enum CXErrorCode clang_createTranslationUnit2(CXIndex CIdx, auto HSOpts = std::make_shared(); IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), + new DiagnosticOptions()); std::unique_ptr AU = ASTUnit::LoadFromASTFile( ast_filename, CXXIdx->getPCHContainerOperations()->getRawReader(), ASTUnit::LoadEverything, Diags, FileSystemOpts, HSOpts, @@ -4165,7 +4167,8 @@ clang_parseTranslationUnit_Impl(CXIndex CIdx, const char *source_filename, std::unique_ptr DiagOpts = CreateAndPopulateDiagOpts( llvm::ArrayRef(command_line_args, num_command_line_args)); IntrusiveRefCntPtr Diags( - CompilerInstance::createDiagnostics(DiagOpts.release())); + CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), + DiagOpts.release())); if (options & CXTranslationUnit_KeepGoing) Diags->setFatalsAsError(true); diff --git a/clang/tools/libclang/Indexing.cpp b/clang/tools/libclang/Indexing.cpp index 05d88452209fb..b890921972a0a 100644 --- a/clang/tools/libclang/Indexing.cpp +++ b/clang/tools/libclang/Indexing.cpp @@ -29,6 +29,7 @@ #include "clang/Lex/PreprocessorOptions.h" #include "llvm/Support/CrashRecoveryContext.h" #include "llvm/Support/MemoryBuffer.h" +#include "llvm/Support/VirtualFileSystem.h" #include #include #include @@ -479,10 +480,10 @@ static CXErrorCode clang_indexSourceFile_Impl( CaptureDiag = new CaptureDiagnosticConsumer(); // Configure the diagnostics. - IntrusiveRefCntPtr - Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions, - CaptureDiag, - /*ShouldOwnClient=*/true)); + IntrusiveRefCntPtr Diags( + CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), + new DiagnosticOptions, CaptureDiag, + /*ShouldOwnClient=*/true)); // Recover resources if we crash before exiting this function. llvm::CrashRecoveryContextCleanupRegistrar(); Invocation->getPreprocessorOpts().addRemappedFile( diff --git a/clang/unittests/CodeGen/TestCompiler.h b/clang/unittests/CodeGen/TestCompiler.h index 891489cb511a4..931c75effbf75 100644 --- a/clang/unittests/CodeGen/TestCompiler.h +++ b/clang/unittests/CodeGen/TestCompiler.h @@ -20,6 +20,7 @@ #include "llvm/IR/Constants.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" +#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" namespace llvm { @@ -35,7 +36,7 @@ struct TestCompiler { clang::CodeGenOptions CGO = clang::CodeGenOptions()) { compiler.getLangOpts() = LO; compiler.getCodeGenOpts() = CGO; - compiler.createDiagnostics(); + compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); std::string TrStr = llvm::Triple::normalize(llvm::sys::getProcessTriple()); llvm::Triple Tr(TrStr); diff --git a/clang/unittests/Driver/DXCModeTest.cpp b/clang/unittests/Driver/DXCModeTest.cpp index 2a079a62f1bc1..616c07c0d389d 100644 --- a/clang/unittests/Driver/DXCModeTest.cpp +++ b/clang/unittests/Driver/DXCModeTest.cpp @@ -219,7 +219,8 @@ TEST(DxcModeTest, DefaultEntry) { const char *Args[] = {"clang", "--driver-mode=dxc", "-Tcs_6_7", "foo.hlsl"}; IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*InMemoryFileSystem, + new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; diff --git a/clang/unittests/Driver/ToolChainTest.cpp b/clang/unittests/Driver/ToolChainTest.cpp index 8542a168f93c2..0787e7d2d3339 100644 --- a/clang/unittests/Driver/ToolChainTest.cpp +++ b/clang/unittests/Driver/ToolChainTest.cpp @@ -577,7 +577,7 @@ TEST(CompilerInvocation, SplitSwarfSingleCrash) { TEST(ToolChainTest, UEFICallingConventionTest) { clang::CompilerInstance compiler; - compiler.createDiagnostics(); + compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); std::string TrStr = "x86_64-unknown-uefi"; llvm::Triple Tr(TrStr); diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp index e1ae1770e8ebe..9db3187ac44e7 100644 --- a/clang/unittests/Format/TokenAnnotatorTest.cpp +++ b/clang/unittests/Format/TokenAnnotatorTest.cpp @@ -2600,16 +2600,20 @@ TEST_F(TokenAnnotatorTest, UnderstandsVerilogOperators) { EXPECT_TOKEN(Tokens[4], tok::string_literal, TT_Unknown); // Module headers. - Tokens = Annotate("module x();\nendmodule"); + Tokens = Annotate("module x();\n" + "endmodule"); ASSERT_EQ(Tokens.size(), 7u) << Tokens; EXPECT_TOKEN(Tokens[2], tok::l_paren, TT_VerilogMultiLineListLParen); - Tokens = Annotate("function automatic `x x();\nendmodule"); + Tokens = Annotate("function automatic `x x();\n" + "endmodule"); ASSERT_EQ(Tokens.size(), 10u) << Tokens; EXPECT_TOKEN(Tokens[5], tok::l_paren, TT_VerilogMultiLineListLParen); - Tokens = Annotate("function automatic x``x x();\nendmodule"); + Tokens = Annotate("function automatic x``x x();\n" + "endmodule"); ASSERT_EQ(Tokens.size(), 11u) << Tokens; EXPECT_TOKEN(Tokens[6], tok::l_paren, TT_VerilogMultiLineListLParen); - Tokens = Annotate("function automatic x::x x();\nendmodule"); + Tokens = Annotate("function automatic x::x x();\n" + "endmodule"); ASSERT_EQ(Tokens.size(), 11u) << Tokens; EXPECT_TOKEN(Tokens[6], tok::l_paren, TT_VerilogMultiLineListLParen); } diff --git a/clang/unittests/Frontend/ASTUnitTest.cpp b/clang/unittests/Frontend/ASTUnitTest.cpp index bd5d5d0098180..e6524a019871d 100644 --- a/clang/unittests/Frontend/ASTUnitTest.cpp +++ b/clang/unittests/Frontend/ASTUnitTest.cpp @@ -17,6 +17,7 @@ #include "llvm/Support/FileSystem.h" #include "llvm/Support/Path.h" #include "llvm/Support/ToolOutputFile.h" +#include "llvm/Support/VirtualFileSystem.h" #include "gtest/gtest.h" using namespace llvm; @@ -41,17 +42,18 @@ class ASTUnitTest : public ::testing::Test { const char *Args[] = {"clang", "-xc++", InputFileName.c_str()}; - Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions()); + auto VFS = llvm::vfs::getRealFileSystem(); + Diags = CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; + CIOpts.VFS = VFS; CInvok = createInvocation(Args, std::move(CIOpts)); if (!CInvok) return nullptr; - FileManager *FileMgr = - new FileManager(FileSystemOptions(), vfs::getRealFileSystem()); + FileManager *FileMgr = new FileManager(FileSystemOptions(), VFS); PCHContainerOps = std::make_shared(); return ASTUnit::LoadFromCompilerInvocation( @@ -134,7 +136,8 @@ TEST_F(ASTUnitTest, ModuleTextualHeader) { const char *Args[] = {"clang", "test.cpp", "-fmodule-map-file=m.modulemap", "-fmodule-name=M"}; - Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions()); + Diags = + CompilerInstance::createDiagnostics(*InMemoryFs, new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; CInvok = createInvocation(Args, std::move(CIOpts)); @@ -162,7 +165,8 @@ TEST_F(ASTUnitTest, LoadFromCommandLineEarlyError) { const char *Args[] = {"clang", "-target", "foobar", InputFileName.c_str()}; - auto Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions()); + auto Diags = CompilerInstance::createDiagnostics( + *llvm::vfs::getRealFileSystem(), new DiagnosticOptions()); auto PCHContainerOps = std::make_shared(); std::unique_ptr ErrUnit; @@ -189,7 +193,8 @@ TEST_F(ASTUnitTest, LoadFromCommandLineWorkingDirectory) { const char *Args[] = {"clang", "-working-directory", WorkingDir.c_str(), InputFileName.c_str()}; - auto Diags = CompilerInstance::createDiagnostics(new DiagnosticOptions()); + auto Diags = CompilerInstance::createDiagnostics( + *llvm::vfs::getRealFileSystem(), new DiagnosticOptions()); auto PCHContainerOps = std::make_shared(); std::unique_ptr ErrUnit; diff --git a/clang/unittests/Frontend/CodeGenActionTest.cpp b/clang/unittests/Frontend/CodeGenActionTest.cpp index a6520910c8399..d855302ed0542 100644 --- a/clang/unittests/Frontend/CodeGenActionTest.cpp +++ b/clang/unittests/Frontend/CodeGenActionTest.cpp @@ -16,6 +16,7 @@ #include "clang/Frontend/CompilerInstance.h" #include "clang/Lex/PreprocessorOptions.h" #include "llvm/Support/FormatVariadic.h" +#include "llvm/Support/VirtualFileSystem.h" #include "gtest/gtest.h" using namespace llvm; @@ -52,7 +53,7 @@ TEST(CodeGenTest, TestNullCodeGen) { Invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(); + Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); EXPECT_TRUE(Compiler.hasDiagnostics()); std::unique_ptr Act(new NullCodeGenAction); @@ -70,7 +71,7 @@ TEST(CodeGenTest, CodeGenFromIRMemBuffer) { Invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(); + Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); EXPECT_TRUE(Compiler.hasDiagnostics()); EmitLLVMOnlyAction Action; @@ -101,7 +102,7 @@ TEST(CodeGenTest, DebugInfoCWDCodeGen) { SmallString<256> IRBuffer; Compiler.setOutputStream(std::make_unique(IRBuffer)); Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(); + Compiler.createDiagnostics(*VFS); Compiler.createFileManager(std::move(VFS)); EmitLLVMAction Action; diff --git a/clang/unittests/Frontend/CompilerInstanceTest.cpp b/clang/unittests/Frontend/CompilerInstanceTest.cpp index 5cf548e913cc1..07329eb299e29 100644 --- a/clang/unittests/Frontend/CompilerInstanceTest.cpp +++ b/clang/unittests/Frontend/CompilerInstanceTest.cpp @@ -13,6 +13,7 @@ #include "llvm/Support/FileSystem.h" #include "llvm/Support/Format.h" #include "llvm/Support/ToolOutputFile.h" +#include "llvm/Support/VirtualFileSystem.h" #include "gtest/gtest.h" using namespace llvm; @@ -53,7 +54,8 @@ TEST(CompilerInstance, DefaultVFSOverlayFromInvocation) { const char *Args[] = {"clang", VFSArg.c_str(), "-xc++", "-"}; IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); + CompilerInstance::createDiagnostics(*llvm::vfs::getRealFileSystem(), + new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; @@ -87,8 +89,9 @@ TEST(CompilerInstance, AllowDiagnosticLogWithUnownedDiagnosticConsumer) { auto DiagPrinter = std::make_unique( DiagnosticsOS, new DiagnosticOptions()); CompilerInstance Instance; - IntrusiveRefCntPtr Diags = Instance.createDiagnostics( - DiagOpts, DiagPrinter.get(), /*ShouldOwnClient=*/false); + IntrusiveRefCntPtr Diags = + Instance.createDiagnostics(*llvm::vfs::getRealFileSystem(), DiagOpts, + DiagPrinter.get(), /*ShouldOwnClient=*/false); Diags->Report(diag::err_expected) << "no crash"; ASSERT_EQ(DiagnosticOutput, "error: expected no crash\n"); diff --git a/clang/unittests/Frontend/CompilerInvocationTest.cpp b/clang/unittests/Frontend/CompilerInvocationTest.cpp index 45478de5e6f7c..4ff6824f1e21e 100644 --- a/clang/unittests/Frontend/CompilerInvocationTest.cpp +++ b/clang/unittests/Frontend/CompilerInvocationTest.cpp @@ -12,6 +12,7 @@ #include "clang/Frontend/TextDiagnosticBuffer.h" #include "clang/Lex/PreprocessorOptions.h" #include "clang/Serialization/ModuleFileExtension.h" +#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Host.h" #include "gmock/gmock.h" @@ -38,9 +39,9 @@ class CommandLineTest : public ::testing::Test { } CommandLineTest() - : Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions(), - new TextDiagnosticBuffer())) { - } + : Diags(CompilerInstance::createDiagnostics( + *llvm::vfs::getRealFileSystem(), new DiagnosticOptions(), + new TextDiagnosticBuffer())) {} }; template diff --git a/clang/unittests/Frontend/FrontendActionTest.cpp b/clang/unittests/Frontend/FrontendActionTest.cpp index 6ce9ba6f6a088..75e166767c667 100644 --- a/clang/unittests/Frontend/FrontendActionTest.cpp +++ b/clang/unittests/Frontend/FrontendActionTest.cpp @@ -20,6 +20,7 @@ #include "clang/Serialization/InMemoryModuleCache.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/ToolOutputFile.h" +#include "llvm/Support/VirtualFileSystem.h" #include "llvm/TargetParser/Triple.h" #include "gtest/gtest.h" @@ -90,7 +91,7 @@ TEST(ASTFrontendAction, Sanity) { invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance compiler; compiler.setInvocation(std::move(invocation)); - compiler.createDiagnostics(); + compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); TestASTFrontendAction test_action; ASSERT_TRUE(compiler.ExecuteAction(test_action)); @@ -110,7 +111,7 @@ TEST(ASTFrontendAction, IncrementalParsing) { invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance compiler; compiler.setInvocation(std::move(invocation)); - compiler.createDiagnostics(); + compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); TestASTFrontendAction test_action(/*enableIncrementalProcessing=*/true); ASSERT_TRUE(compiler.ExecuteAction(test_action)); @@ -137,7 +138,7 @@ TEST(ASTFrontendAction, LateTemplateIncrementalParsing) { invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance compiler; compiler.setInvocation(std::move(invocation)); - compiler.createDiagnostics(); + compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); TestASTFrontendAction test_action(/*enableIncrementalProcessing=*/true, /*actOnEndOfTranslationUnit=*/true); @@ -183,7 +184,7 @@ TEST(PreprocessorFrontendAction, EndSourceFile) { Invocation->getTargetOpts().Triple = "i386-unknown-linux-gnu"; CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(); + Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); TestPPCallbacks *Callbacks = new TestPPCallbacks; TestPPCallbacksFrontendAction TestAction(Callbacks); @@ -245,7 +246,8 @@ TEST(ASTFrontendAction, ExternalSemaSource) { CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); auto *TDC = new TypoDiagnosticConsumer; - Compiler.createDiagnostics(TDC, /*ShouldOwnClient=*/true); + Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem(), TDC, + /*ShouldOwnClient=*/true); Compiler.setExternalSemaSource(new TypoExternalSemaSource(Compiler)); SyntaxOnlyAction TestAction; @@ -277,7 +279,7 @@ TEST(GeneratePCHFrontendAction, CacheGeneratedPCH) { Invocation->getTargetOpts().Triple = "x86_64-apple-darwin19.0.0"; CompilerInstance Compiler; Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(); + Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); GeneratePCHAction TestAction; ASSERT_TRUE(Compiler.ExecuteAction(TestAction)); diff --git a/clang/unittests/Frontend/OutputStreamTest.cpp b/clang/unittests/Frontend/OutputStreamTest.cpp index 2618558c7e11e..fa5d726d25290 100644 --- a/clang/unittests/Frontend/OutputStreamTest.cpp +++ b/clang/unittests/Frontend/OutputStreamTest.cpp @@ -13,6 +13,7 @@ #include "clang/Frontend/TextDiagnosticPrinter.h" #include "clang/FrontendTool/Utils.h" #include "clang/Lex/PreprocessorOptions.h" +#include "llvm/Support/VirtualFileSystem.h" #include "gtest/gtest.h" using namespace llvm; @@ -37,7 +38,7 @@ TEST(FrontendOutputTests, TestOutputStream) { Compiler.setOutputStream(std::move(IRStream)); Compiler.setInvocation(std::move(Invocation)); - Compiler.createDiagnostics(); + Compiler.createDiagnostics(*llvm::vfs::getRealFileSystem()); bool Success = ExecuteCompilerInvocation(&Compiler); EXPECT_TRUE(Success); @@ -62,6 +63,7 @@ TEST(FrontendOutputTests, TestVerboseOutputStreamShared) { Compiler.setInvocation(std::move(Invocation)); IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); Compiler.createDiagnostics( + *llvm::vfs::getRealFileSystem(), new TextDiagnosticPrinter(llvm::nulls(), &*DiagOpts), true); Compiler.setVerboseOutputStream(VerboseStream); @@ -91,6 +93,7 @@ TEST(FrontendOutputTests, TestVerboseOutputStreamOwned) { Compiler.setInvocation(std::move(Invocation)); IntrusiveRefCntPtr DiagOpts = new DiagnosticOptions(); Compiler.createDiagnostics( + *llvm::vfs::getRealFileSystem(), new TextDiagnosticPrinter(llvm::nulls(), &*DiagOpts), true); Compiler.setVerboseOutputStream(std::move(VerboseStream)); diff --git a/clang/unittests/Frontend/PCHPreambleTest.cpp b/clang/unittests/Frontend/PCHPreambleTest.cpp index 2ce24c91ac0f1..58ec2e2ce7058 100644 --- a/clang/unittests/Frontend/PCHPreambleTest.cpp +++ b/clang/unittests/Frontend/PCHPreambleTest.cpp @@ -94,8 +94,9 @@ class PCHPreambleTest : public ::testing::Test { PreprocessorOptions &PPOpts = CI->getPreprocessorOpts(); PPOpts.RemappedFilesKeepOriginalName = true; - IntrusiveRefCntPtr - Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions, new DiagnosticConsumer)); + IntrusiveRefCntPtr Diags( + CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions, + new DiagnosticConsumer)); FileManager *FileMgr = new FileManager(FSOpts, VFS); diff --git a/clang/unittests/Frontend/ReparseWorkingDirTest.cpp b/clang/unittests/Frontend/ReparseWorkingDirTest.cpp index ca7ce23dd64b2..b0f2d51b80b9e 100644 --- a/clang/unittests/Frontend/ReparseWorkingDirTest.cpp +++ b/clang/unittests/Frontend/ReparseWorkingDirTest.cpp @@ -58,7 +58,7 @@ class ReparseWorkingDirTest : public ::testing::Test { CI->getTargetOpts().Triple = "i386-unknown-linux-gnu"; IntrusiveRefCntPtr Diags( - CompilerInstance::createDiagnostics(new DiagnosticOptions, + CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions, new DiagnosticConsumer)); FileManager *FileMgr = new FileManager(CI->getFileSystemOpts(), VFS); diff --git a/clang/unittests/Frontend/UtilsTest.cpp b/clang/unittests/Frontend/UtilsTest.cpp index ae014d3f86b5a..304fbe2a8e69f 100644 --- a/clang/unittests/Frontend/UtilsTest.cpp +++ b/clang/unittests/Frontend/UtilsTest.cpp @@ -28,9 +28,9 @@ TEST(BuildCompilerInvocationTest, RecoverMultipleJobs) { clang::IgnoringDiagConsumer D; CreateInvocationOptions Opts; Opts.RecoverOnError = true; - Opts.Diags = clang::CompilerInstance::createDiagnostics(new DiagnosticOptions, - &D, false); Opts.VFS = new llvm::vfs::InMemoryFileSystem(); + Opts.Diags = clang::CompilerInstance::createDiagnostics( + *Opts.VFS, new DiagnosticOptions, &D, false); std::unique_ptr CI = createInvocation(Args, Opts); ASSERT_TRUE(CI); EXPECT_THAT(CI->TargetOpts->Triple, testing::StartsWith("i386-")); @@ -46,7 +46,7 @@ TEST(BuildCompilerInvocationTest, ProbePrecompiled) { clang::IgnoringDiagConsumer D; llvm::IntrusiveRefCntPtr CommandLineDiagsEngine = - clang::CompilerInstance::createDiagnostics(new DiagnosticOptions, &D, + clang::CompilerInstance::createDiagnostics(*FS, new DiagnosticOptions, &D, false); // Default: ProbePrecompiled=false CreateInvocationOptions CIOpts; diff --git a/clang/unittests/Sema/SemaNoloadLookupTest.cpp b/clang/unittests/Sema/SemaNoloadLookupTest.cpp index cf89c7331e4e0..e31fc78b2391d 100644 --- a/clang/unittests/Sema/SemaNoloadLookupTest.cpp +++ b/clang/unittests/Sema/SemaNoloadLookupTest.cpp @@ -57,11 +57,12 @@ class NoloadLookupTest : public ::testing::Test { std::string FileName = llvm::Twine(ModuleName + ".cppm").str(); addFile(FileName, Contents); - IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; - CIOpts.Diags = Diags; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + IntrusiveRefCntPtr Diags = + CompilerInstance::createDiagnostics(*CIOpts.VFS, + new DiagnosticOptions()); + CIOpts.Diags = Diags; std::string CacheBMIPath = llvm::Twine(TestDir + "/" + ModuleName + ".pcm").str(); diff --git a/clang/unittests/Serialization/ForceCheckFileInputTest.cpp b/clang/unittests/Serialization/ForceCheckFileInputTest.cpp index ad8892b8c8be1..6a839d1bf9350 100644 --- a/clang/unittests/Serialization/ForceCheckFileInputTest.cpp +++ b/clang/unittests/Serialization/ForceCheckFileInputTest.cpp @@ -63,12 +63,14 @@ export int aa = 43; std::string BMIPath = llvm::Twine(TestDir + "/a.pcm").str(); { - IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; - CIOpts.Diags = Diags; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + IntrusiveRefCntPtr Diags = + CompilerInstance::createDiagnostics(*CIOpts.VFS, + new DiagnosticOptions()); + CIOpts.Diags = Diags; + const char *Args[] = {"clang++", "-std=c++20", "--precompile", "-working-directory", TestDir.c_str(), "a.cppm"}; @@ -103,11 +105,12 @@ export int aa = 43; } { - IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; - CIOpts.Diags = Diags; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + IntrusiveRefCntPtr Diags = + CompilerInstance::createDiagnostics(*CIOpts.VFS, + new DiagnosticOptions()); + CIOpts.Diags = Diags; std::string BMIPath = llvm::Twine(TestDir + "/a.pcm").str(); const char *Args[] = { diff --git a/clang/unittests/Serialization/ModuleCacheTest.cpp b/clang/unittests/Serialization/ModuleCacheTest.cpp index a7ca98549b412..6ceee1c6536cb 100644 --- a/clang/unittests/Serialization/ModuleCacheTest.cpp +++ b/clang/unittests/Serialization/ModuleCacheTest.cpp @@ -106,11 +106,11 @@ TEST_F(ModuleCacheTest, CachedModuleNewPath) { SmallString<256> MCPArg("-fmodules-cache-path="); MCPArg.append(ModuleCachePath); - IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; - CIOpts.Diags = Diags; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + IntrusiveRefCntPtr Diags = + CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CIOpts.Diags = Diags; // First run should pass with no errors const char *Args[] = {"clang", "-fmodules", "-Fframeworks", @@ -156,11 +156,11 @@ TEST_F(ModuleCacheTest, CachedModuleNewPathAllowErrors) { SmallString<256> MCPArg("-fmodules-cache-path="); MCPArg.append(ModuleCachePath); - IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; - CIOpts.Diags = Diags; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + IntrusiveRefCntPtr Diags = + CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CIOpts.Diags = Diags; // First run should pass with no errors const char *Args[] = {"clang", "-fmodules", "-Fframeworks", diff --git a/clang/unittests/Serialization/NoCommentsTest.cpp b/clang/unittests/Serialization/NoCommentsTest.cpp index a0a564aeff9a1..a1fb23404e415 100644 --- a/clang/unittests/Serialization/NoCommentsTest.cpp +++ b/clang/unittests/Serialization/NoCommentsTest.cpp @@ -83,11 +83,11 @@ export module Comments; void foo() {} )cpp"); - IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; - CIOpts.Diags = Diags; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + IntrusiveRefCntPtr Diags = + CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CIOpts.Diags = Diags; std::string CacheBMIPath = llvm::Twine(TestDir + "/Comments.pcm").str(); const char *Args[] = {"clang++", "-std=c++20", diff --git a/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp b/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp index d26e1cb633654..cf317eddb0f37 100644 --- a/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp +++ b/clang/unittests/Serialization/PreambleInNamedModulesTest.cpp @@ -75,10 +75,10 @@ export using ::E; )cpp", MainFilePath); - IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); IntrusiveRefCntPtr VFS = llvm::vfs::createPhysicalFileSystem(); + IntrusiveRefCntPtr Diags = + CompilerInstance::createDiagnostics(*VFS, new DiagnosticOptions()); CreateInvocationOptions CIOpts; CIOpts.Diags = Diags; diff --git a/clang/unittests/Serialization/VarDeclConstantInitTest.cpp b/clang/unittests/Serialization/VarDeclConstantInitTest.cpp index 5cbbfb9ff003b..14c0c30add207 100644 --- a/clang/unittests/Serialization/VarDeclConstantInitTest.cpp +++ b/clang/unittests/Serialization/VarDeclConstantInitTest.cpp @@ -90,11 +90,11 @@ export namespace Fibonacci } )cpp"); - IntrusiveRefCntPtr Diags = - CompilerInstance::createDiagnostics(new DiagnosticOptions()); CreateInvocationOptions CIOpts; - CIOpts.Diags = Diags; CIOpts.VFS = llvm::vfs::createPhysicalFileSystem(); + IntrusiveRefCntPtr Diags = + CompilerInstance::createDiagnostics(*CIOpts.VFS, new DiagnosticOptions()); + CIOpts.Diags = Diags; const char *Args[] = {"clang++", "-std=c++20", "--precompile", "-working-directory", diff --git a/clang/unittests/Support/TimeProfilerTest.cpp b/clang/unittests/Support/TimeProfilerTest.cpp index 339b470153e64..995ebf625b7ab 100644 --- a/clang/unittests/Support/TimeProfilerTest.cpp +++ b/clang/unittests/Support/TimeProfilerTest.cpp @@ -45,8 +45,6 @@ std::string teardownProfiler() { // We only parse AST here. This is enough for constexpr evaluation. bool compileFromString(StringRef Code, StringRef Standard, StringRef File, llvm::StringMap Headers = {}) { - CompilerInstance Compiler; - Compiler.createDiagnostics(); llvm::IntrusiveRefCntPtr FS( new llvm::vfs::InMemoryFileSystem()); @@ -57,6 +55,8 @@ bool compileFromString(StringRef Code, StringRef Standard, StringRef File, } llvm::IntrusiveRefCntPtr Files( new FileManager(FileSystemOptions(), FS)); + CompilerInstance Compiler; + Compiler.createDiagnostics(Files->getVirtualFileSystem()); Compiler.setFileManager(Files.get()); auto Invocation = std::make_shared(); diff --git a/clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp b/clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp index ec0e143be4a20..e1c4770805992 100644 --- a/clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp +++ b/clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp @@ -60,7 +60,8 @@ class TestDependencyScanningAction : public tooling::ToolAction { Compiler.setInvocation(std::move(Invocation)); Compiler.setFileManager(FileMgr); - Compiler.createDiagnostics(DiagConsumer, /*ShouldOwnClient=*/false); + Compiler.createDiagnostics(FileMgr->getVirtualFileSystem(), DiagConsumer, + /*ShouldOwnClient=*/false); if (!Compiler.hasDiagnostics()) return false; diff --git a/clang/unittests/Tooling/ToolingTest.cpp b/clang/unittests/Tooling/ToolingTest.cpp index f41a44fa0922a..0b65577a05193 100644 --- a/clang/unittests/Tooling/ToolingTest.cpp +++ b/clang/unittests/Tooling/ToolingTest.cpp @@ -384,7 +384,8 @@ struct CommandLineExtractorTest : public ::testing::Test { public: CommandLineExtractorTest() : InMemoryFS(new llvm::vfs::InMemoryFileSystem), - Diags(CompilerInstance::createDiagnostics(new DiagnosticOptions)), + Diags(CompilerInstance::createDiagnostics(*InMemoryFS, + new DiagnosticOptions)), Driver("clang", llvm::sys::getDefaultTargetTriple(), *Diags, "clang LLVM compiler", overlayRealFS(InMemoryFS)) {} diff --git a/clang/utils/TableGen/ClangASTNodesEmitter.cpp b/clang/utils/TableGen/ClangASTNodesEmitter.cpp index 16749d1183624..5971b0012305d 100644 --- a/clang/utils/TableGen/ClangASTNodesEmitter.cpp +++ b/clang/utils/TableGen/ClangASTNodesEmitter.cpp @@ -207,8 +207,9 @@ void clang::EmitClangASTNodes(const RecordKeeper &RK, raw_ostream &OS, ClangASTNodesEmitter(RK, N, S, PriorizeIfSubclassOf).run(OS); } -void printDeclContext(const std::multimap &Tree, - const Record *DeclContext, raw_ostream &OS) { +static void +printDeclContext(const std::multimap &Tree, + const Record *DeclContext, raw_ostream &OS) { if (!DeclContext->getValueAsBit(AbstractFieldName)) OS << "DECL_CONTEXT(" << DeclContext->getName() << ")\n"; auto [II, E] = Tree.equal_range(DeclContext); diff --git a/clang/utils/TableGen/ClangAttrEmitter.cpp b/clang/utils/TableGen/ClangAttrEmitter.cpp index 4aa7594ffa6eb..534bf2d01d795 100644 --- a/clang/utils/TableGen/ClangAttrEmitter.cpp +++ b/clang/utils/TableGen/ClangAttrEmitter.cpp @@ -1821,9 +1821,9 @@ CreateSemanticSpellings(const std::vector &Spellings, return Ret; } -void WriteSemanticSpellingSwitch(StringRef VarName, - const SemanticSpellingMap &Map, - raw_ostream &OS) { +static void WriteSemanticSpellingSwitch(StringRef VarName, + const SemanticSpellingMap &Map, + raw_ostream &OS) { OS << " switch (" << VarName << ") {\n default: " << "llvm_unreachable(\"Unknown spelling list index\");\n"; for (const auto &I : Map) @@ -2367,12 +2367,12 @@ template static void forEachSpelling(const Record &Attr, Fn &&F) { } } -std::map> NameToAttrsMap; +static std::map> NameToAttrsMap; /// Build a map from the attribute name to the Attrs that use that name. If more /// than one Attr use a name, the arguments could be different so a more complex /// check is needed in the generated switch. -void generateNameToAttrsMap(const RecordKeeper &Records) { +static void generateNameToAttrsMap(const RecordKeeper &Records) { for (const auto *A : Records.getAllDerivedDefinitions("Attr")) { for (const FlattenedSpelling &S : GetFlattenedSpellings(*A)) { auto [It, Inserted] = NameToAttrsMap.try_emplace(S.name()); @@ -3965,9 +3965,9 @@ void EmitClangAttrASTVisitor(const RecordKeeper &Records, raw_ostream &OS) { OS << "#endif // ATTR_VISITOR_DECLS_ONLY\n"; } -void EmitClangAttrTemplateInstantiateHelper(ArrayRef Attrs, - raw_ostream &OS, - bool AppliesToDecl) { +static void +EmitClangAttrTemplateInstantiateHelper(ArrayRef Attrs, + raw_ostream &OS, bool AppliesToDecl) { OS << " switch (At->getKind()) {\n"; for (const auto *Attr : Attrs) { @@ -4622,7 +4622,7 @@ static bool isParamExpr(const Record *Arg) { .Default(false); } -void GenerateIsParamExpr(const Record &Attr, raw_ostream &OS) { +static void GenerateIsParamExpr(const Record &Attr, raw_ostream &OS) { OS << "bool isParamExpr(size_t N) const override {\n"; OS << " return "; auto Args = Attr.getValueAsListOfDefs("Args"); @@ -4633,8 +4633,8 @@ void GenerateIsParamExpr(const Record &Attr, raw_ostream &OS) { OS << "}\n\n"; } -void GenerateHandleAttrWithDelayedArgs(const RecordKeeper &Records, - raw_ostream &OS) { +static void GenerateHandleAttrWithDelayedArgs(const RecordKeeper &Records, + raw_ostream &OS) { OS << "static void handleAttrWithDelayedArgs(Sema &S, Decl *D, "; OS << "const ParsedAttr &Attr) {\n"; OS << " SmallVector ArgExprs;\n"; diff --git a/clang/utils/TableGen/NeonEmitter.cpp b/clang/utils/TableGen/NeonEmitter.cpp index a9a67109b3e53..d7d649dd2456d 100644 --- a/clang/utils/TableGen/NeonEmitter.cpp +++ b/clang/utils/TableGen/NeonEmitter.cpp @@ -101,7 +101,8 @@ enum EltType { Float16, Float32, Float64, - BFloat16 + BFloat16, + MFloat8 // Not used by Sema or CodeGen in Clang }; } // end namespace NeonTypeFlags @@ -143,14 +144,7 @@ class Type { private: TypeSpec TS; - enum TypeKind { - Void, - Float, - SInt, - UInt, - Poly, - BFloat16 - }; + enum TypeKind { Void, Float, SInt, UInt, Poly, BFloat16, MFloat8 }; TypeKind Kind; bool Immediate, Constant, Pointer; // ScalarForMangling and NoManglingQ are really not suited to live here as @@ -203,6 +197,7 @@ class Type { bool isLong() const { return isInteger() && ElementBitwidth == 64; } bool isVoid() const { return Kind == Void; } bool isBFloat16() const { return Kind == BFloat16; } + bool isMFloat8() const { return Kind == MFloat8; } unsigned getNumElements() const { return Bitwidth / ElementBitwidth; } unsigned getSizeInBits() const { return Bitwidth; } unsigned getElementSizeInBits() const { return ElementBitwidth; } @@ -657,6 +652,8 @@ std::string Type::str() const { S += "float"; else if (isBFloat16()) S += "bfloat"; + else if (isMFloat8()) + S += "mfloat"; else S += "int"; @@ -699,6 +696,9 @@ std::string Type::builtin_str() const { else if (isBFloat16()) { assert(ElementBitwidth == 16 && "BFloat16 can only be 16 bits"); S += "y"; + } else if (isMFloat8()) { + assert(ElementBitwidth == 8 && "MFloat8 can only be 8 bits"); + S += "m"; } else switch (ElementBitwidth) { case 16: S += "h"; break; @@ -758,6 +758,10 @@ unsigned Type::getNeonEnum() const { Base = (unsigned)NeonTypeFlags::BFloat16; } + if (isMFloat8()) { + Base = (unsigned)NeonTypeFlags::MFloat8; + } + if (Bitwidth == 128) Base |= (unsigned)NeonTypeFlags::QuadFlag; if (isInteger() && !isSigned()) @@ -779,6 +783,8 @@ Type Type::fromTypedefName(StringRef Name) { T.Kind = Poly; } else if (Name.consume_front("bfloat")) { T.Kind = BFloat16; + } else if (Name.consume_front("mfloat")) { + T.Kind = MFloat8; } else { assert(Name.starts_with("int")); Name = Name.drop_front(3); @@ -879,6 +885,10 @@ void Type::applyTypespec(bool &Quad) { Kind = BFloat16; ElementBitwidth = 16; break; + case 'm': + Kind = MFloat8; + ElementBitwidth = 8; + break; default: llvm_unreachable("Unhandled type code!"); } @@ -993,6 +1003,9 @@ std::string Intrinsic::getInstTypeCode(Type T, ClassKind CK) const { if (T.isBFloat16()) return "bf16"; + if (T.isMFloat8()) + return "mfp8"; + if (T.isPoly()) typeCode = 'p'; else if (T.isInteger()) @@ -1030,7 +1043,7 @@ std::string Intrinsic::getBuiltinTypeStr() { Type RetT = getReturnType(); if ((LocalCK == ClassI || LocalCK == ClassW) && RetT.isScalar() && - !RetT.isFloating() && !RetT.isBFloat16()) + !RetT.isFloating() && !RetT.isBFloat16() && !RetT.isMFloat8()) RetT.makeInteger(RetT.getElementSizeInBits(), false); // Since the return value must be one type, return a vector type of the @@ -2270,7 +2283,7 @@ static void emitNeonTypeDefs(const std::string& types, raw_ostream &OS) { for (auto &TS : TDTypeVec) { bool IsA64 = false; Type T(TS, "."); - if (T.isDouble()) + if (T.isDouble() || T.isMFloat8()) IsA64 = true; if (InIfdef && !IsA64) { @@ -2282,15 +2295,20 @@ static void emitNeonTypeDefs(const std::string& types, raw_ostream &OS) { InIfdef = true; } - if (T.isPoly()) + if (T.isMFloat8()) + OS << "typedef __MFloat8x"; + else if (T.isPoly()) OS << "typedef __attribute__((neon_polyvector_type("; else OS << "typedef __attribute__((neon_vector_type("; Type T2 = T; T2.makeScalar(); - OS << T.getNumElements() << "))) "; - OS << T2.str(); + OS << T.getNumElements(); + if (T.isMFloat8()) + OS << "_t "; + else + OS << "))) " << T2.str(); OS << " " << T.str() << ";\n"; } if (InIfdef) @@ -2303,7 +2321,7 @@ static void emitNeonTypeDefs(const std::string& types, raw_ostream &OS) { for (auto &TS : TDTypeVec) { bool IsA64 = false; Type T(TS, "."); - if (T.isDouble()) + if (T.isDouble() || T.isMFloat8()) IsA64 = true; if (InIfdef && !IsA64) { @@ -2589,8 +2607,6 @@ void NeonEmitter::runVectorTypes(raw_ostream &OS) { OS << "#if defined(__aarch64__) || defined(__arm64ec__)\n"; OS << "typedef __mfp8 mfloat8_t;\n"; - OS << "typedef __MFloat8x8_t mfloat8x8_t;\n"; - OS << "typedef __MFloat8x16_t mfloat8x16_t;\n"; OS << "typedef double float64_t;\n"; OS << "#endif\n\n"; @@ -2648,7 +2664,7 @@ __arm_set_fpm_lscale2(fpm_t __fpm, uint64_t __scale) { )"; - emitNeonTypeDefs("cQcsQsiQilQlUcQUcUsQUsUiQUiUlQUlhQhfQfdQd", OS); + emitNeonTypeDefs("cQcsQsiQilQlUcQUcUsQUsUiQUiUlQUlmQmhQhfQfdQd", OS); emitNeonTypeDefs("bQb", OS); OS << "#endif // __ARM_NEON_TYPES_H\n"; diff --git a/clang/utils/TableGen/RISCVVEmitter.cpp b/clang/utils/TableGen/RISCVVEmitter.cpp index 68d7831c11745..acba1a3191281 100644 --- a/clang/utils/TableGen/RISCVVEmitter.cpp +++ b/clang/utils/TableGen/RISCVVEmitter.cpp @@ -488,8 +488,6 @@ void RVVEmitter::createHeader(raw_ostream &OS) { } } - OS << "#define __riscv_v_intrinsic_overloading 1\n"; - OS << "\n#ifdef __cplusplus\n"; OS << "}\n"; OS << "#endif // __cplusplus\n"; diff --git a/clang/utils/analyzer/exploded-graph-rewriter.py b/clang/utils/analyzer/exploded-graph-rewriter.py index eca0f17beb40a..dcda91e8a6809 100755 --- a/clang/utils/analyzer/exploded-graph-rewriter.py +++ b/clang/utils/analyzer/exploded-graph-rewriter.py @@ -90,6 +90,11 @@ def __init__(self, json_pp): self.callee_decl = json_pp.get("callee_decl", "None") elif self.kind == "BlockEntrance": self.block_id = json_pp["block_id"] + elif self.kind == "PostInitializer": + if "field_decl" in json_pp: + self.target = json_pp["field_decl"] + else: + self.target = json_pp["type"] # A single expression acting as a key in a deserialized Environment. @@ -627,6 +632,13 @@ def visit_program_point(self, p): '%s' '%s' % (color, p.kind, p.callee_decl) ) + elif p.kind == "PostInitializer": + self._dump( + '' + '' + '%s' + '%s' % (color, p.kind, p.target) + ) else: # TODO: Print more stuff for other kinds of points. self._dump( diff --git a/clang/www/cxx_status.html b/clang/www/cxx_status.html index d59cbbbbec1b5..da01cf6ceab59 100755 --- a/clang/www/cxx_status.html +++ b/clang/www/cxx_status.html @@ -225,6 +225,32 @@

C++2c implementation status

P0963R3 No + + + constexpr structured bindings + P2686R5 + No + + + Allowing exception throwing in constant-evaluation + P3068R6 + No + + + Remove Deprecated Array Comparisons from C++26 + P2865R6 + No + + + Structured Bindings can introduce a Pack + P1061R10 + No + + + The Oxford variadic comma + P3176R1 + No + diff --git a/cmake/Modules/CMakePolicy.cmake b/cmake/Modules/CMakePolicy.cmake index d561556b2830f..bafd6bb5b0256 100644 --- a/cmake/Modules/CMakePolicy.cmake +++ b/cmake/Modules/CMakePolicy.cmake @@ -37,4 +37,13 @@ endif() # building with the Apple linker. if(POLICY CMP0156) cmake_policy(SET CMP0156 NEW) + + # CMP0179: De-duplication of static libraries on link lines keeps first occurrence. + # Dependent on CMP0156=NEW. Unifies the behaviour across platforms. + # Works around a LLD bug ELF backend bug (#116669) and required for CMP0156 + # to have an effect for affected versions. Also fixes building with CMake 3.31.0, + # which lacked the workaround of ignoring CMP0156 unless this is enabled. + if(POLICY CMP0179) + cmake_policy(SET CMP0179 NEW) + endif() endif() diff --git a/compiler-rt/cmake/Modules/AddCompilerRT.cmake b/compiler-rt/cmake/Modules/AddCompilerRT.cmake index 77261f631ea11..3a6762320f447 100644 --- a/compiler-rt/cmake/Modules/AddCompilerRT.cmake +++ b/compiler-rt/cmake/Modules/AddCompilerRT.cmake @@ -790,6 +790,7 @@ function(configure_compiler_rt_lit_site_cfg input output) string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} COMPILER_RT_RESOLVED_TEST_COMPILER ${COMPILER_RT_TEST_COMPILER}) string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} COMPILER_RT_RESOLVED_OUTPUT_DIR ${COMPILER_RT_OUTPUT_DIR}) + string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} COMPILER_RT_RESOLVED_EXEC_OUTPUT_DIR ${COMPILER_RT_EXEC_OUTPUT_DIR}) string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} COMPILER_RT_RESOLVED_LIBRARY_OUTPUT_DIR ${output_dir}) configure_lit_site_cfg(${input} ${output}) diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt index c8595b97b337d..42d197f2b08d0 100644 --- a/compiler-rt/lib/builtins/CMakeLists.txt +++ b/compiler-rt/lib/builtins/CMakeLists.txt @@ -296,6 +296,7 @@ endif () # long double is not 80 bits on Android or MSVC. set(x86_80_BIT_SOURCES divxc3.c + extendhfxf2.c extendxftf2.c fixxfdi.c fixxfti.c diff --git a/compiler-rt/lib/builtins/extendhfxf2.c b/compiler-rt/lib/builtins/extendhfxf2.c new file mode 100644 index 0000000000000..a2cd106e1c1b3 --- /dev/null +++ b/compiler-rt/lib/builtins/extendhfxf2.c @@ -0,0 +1,16 @@ +//===-- lib/extendhfxf2.c - half -> long double conversion --------*- C -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +#include "int_lib.h" +#define SRC_HALF +#define DST_DOUBLE +#include "fp_extend_impl.inc" + +// Long double are expected to be as precise as double. +COMPILER_RT_ABI xf_float __extendhfxf2(src_t a) { + return (xf_float)__extendXfYf2__(a); +} diff --git a/compiler-rt/lib/hwasan/hwasan_platform_interceptors.h b/compiler-rt/lib/hwasan/hwasan_platform_interceptors.h index e8011014c2331..8a653d83dec65 100644 --- a/compiler-rt/lib/hwasan/hwasan_platform_interceptors.h +++ b/compiler-rt/lib/hwasan/hwasan_platform_interceptors.h @@ -209,6 +209,9 @@ #undef SANITIZER_INTERCEPT_TIME #define SANITIZER_INTERCEPT_TIME 0 +#undef SANITIZER_INTERCEPT_TIMESPEC_GET +#define SANITIZER_INTERCEPT_TIMESPEC_GET 0 + #undef SANITIZER_INTERCEPT_GLOB #define SANITIZER_INTERCEPT_GLOB 0 diff --git a/compiler-rt/lib/interception/interception_win.cpp b/compiler-rt/lib/interception/interception_win.cpp index cfd92619a1e15..8b8ce1abe906f 100644 --- a/compiler-rt/lib/interception/interception_win.cpp +++ b/compiler-rt/lib/interception/interception_win.cpp @@ -696,7 +696,6 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { case 0x018a: // mov al, byte ptr [rcx] return 2; - case 0x058A: // 8A 05 XX XX XX XX : mov al, byte ptr [XX XX XX XX] case 0x7E80: // 80 7E YY XX cmp BYTE PTR [rsi+YY], XX case 0x7D80: // 80 7D YY XX cmp BYTE PTR [rbp+YY], XX case 0x7A80: // 80 7A YY XX cmp BYTE PTR [rdx+YY], XX @@ -705,6 +704,7 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { case 0x7980: // 80 79 YY XX cmp BYTE ptr [rcx+YY], XX return 4; + case 0x058A: // 8A 05 XX XX XX XX : mov al, byte ptr [XX XX XX XX] case 0x058B: // 8B 05 XX XX XX XX : mov eax, dword ptr [XX XX XX XX] if (rel_offset) *rel_offset = 2; @@ -816,6 +816,10 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { // mov rax, QWORD PTR [rip + XXXXXXXX] case 0x058d48: // 48 8d 05 XX XX XX XX : // lea rax, QWORD PTR [rip + XXXXXXXX] + case 0x0d8948: // 48 89 0d XX XX XX XX : + // mov QWORD PTR [rip + XXXXXXXX], rcx + case 0x158948: // 48 89 15 XX XX XX XX : + // mov QWORD PTR [rip + XXXXXXXX], rdx case 0x25ff48: // 48 ff 25 XX XX XX XX : // rex.W jmp QWORD PTR [rip + XXXXXXXX] case 0x158D4C: // 4c 8d 15 XX XX XX XX : lea r10, [rip + XX] diff --git a/compiler-rt/lib/interception/tests/interception_win_test.cpp b/compiler-rt/lib/interception/tests/interception_win_test.cpp index c004d187768de..43cbcbab905f2 100644 --- a/compiler-rt/lib/interception/tests/interception_win_test.cpp +++ b/compiler-rt/lib/interception/tests/interception_win_test.cpp @@ -230,6 +230,7 @@ const u8 kUnpatchableCode6[] = { 0x90, 0x90, 0x90, 0x90, }; +# if SANITIZER_WINDOWS64 const u8 kUnpatchableCode7[] = { 0x33, 0xc0, // xor eax,eax 0x48, 0x85, 0xd2, // test rdx,rdx @@ -286,7 +287,9 @@ const u8 kPatchableCode11[] = { 0x48, 0x83, 0xec, 0x38, // sub rsp,38h 0x83, 0x64, 0x24, 0x28, 0x00, // and dword ptr [rsp+28h],0 }; +# endif +# if !SANITIZER_WINDOWS64 const u8 kPatchableCode12[] = { 0x55, // push ebp 0x53, // push ebx @@ -302,6 +305,7 @@ const u8 kPatchableCode13[] = { 0x56, // push esi 0x8b, 0x5c, 0x24, 0x14, // mov ebx,dword ptr[esp+14h] }; +# endif const u8 kPatchableCode14[] = { 0x55, // push ebp diff --git a/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c b/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c index 613cfb60857cf..5b230c1b20062 100644 --- a/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c +++ b/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c @@ -194,41 +194,33 @@ static int WriteBinaryIds(ProfDataWriter *Writer, const ElfW(Nhdr) * Note, */ COMPILER_RT_VISIBILITY int __llvm_write_binary_ids(ProfDataWriter *Writer) { extern const ElfW(Ehdr) __ehdr_start __attribute__((visibility("hidden"))); + extern ElfW(Dyn) _DYNAMIC[] __attribute__((weak, visibility("hidden"))); + const ElfW(Ehdr) *ElfHeader = &__ehdr_start; const ElfW(Phdr) *ProgramHeader = (const ElfW(Phdr) *)((uintptr_t)ElfHeader + ElfHeader->e_phoff); + /* Compute the added base address in case of position-independent code. */ + uintptr_t Base = 0; + for (uint32_t I = 0; I < ElfHeader->e_phnum; I++) { + if (ProgramHeader[I].p_type == PT_PHDR) + Base = (uintptr_t)ProgramHeader - ProgramHeader[I].p_vaddr; + if (ProgramHeader[I].p_type == PT_DYNAMIC && _DYNAMIC) + Base = (uintptr_t)_DYNAMIC - ProgramHeader[I].p_vaddr; + } + int TotalBinaryIdsSize = 0; - uint32_t I; /* Iterate through entries in the program header. */ - for (I = 0; I < ElfHeader->e_phnum; I++) { + for (uint32_t I = 0; I < ElfHeader->e_phnum; I++) { /* Look for the notes segment in program header entries. */ if (ProgramHeader[I].p_type != PT_NOTE) continue; /* There can be multiple notes segment, and examine each of them. */ - const ElfW(Nhdr) * Note; - const ElfW(Nhdr) * NotesEnd; - /* - * When examining notes in file, use p_offset, which is the offset within - * the elf file, to find the start of notes. - */ - if (ProgramHeader[I].p_memsz == 0 || - ProgramHeader[I].p_memsz == ProgramHeader[I].p_filesz) { - Note = (const ElfW(Nhdr) *)((uintptr_t)ElfHeader + - ProgramHeader[I].p_offset); - NotesEnd = (const ElfW(Nhdr) *)((const char *)(Note) + - ProgramHeader[I].p_filesz); - } else { - /* - * When examining notes in memory, use p_vaddr, which is the address of - * section after loaded to memory, to find the start of notes. - */ - Note = - (const ElfW(Nhdr) *)((uintptr_t)ElfHeader + ProgramHeader[I].p_vaddr); - NotesEnd = - (const ElfW(Nhdr) *)((const char *)(Note) + ProgramHeader[I].p_memsz); - } + const ElfW(Nhdr) *Note = + (const ElfW(Nhdr) *)(Base + ProgramHeader[I].p_vaddr); + const ElfW(Nhdr) *NotesEnd = + (const ElfW(Nhdr) *)((const char *)(Note) + ProgramHeader[I].p_memsz); int BinaryIdsSize = WriteBinaryIds(Writer, Note, NotesEnd); if (TotalBinaryIdsSize == -1) diff --git a/compiler-rt/lib/rtsan/rtsan.cpp b/compiler-rt/lib/rtsan/rtsan.cpp index 70edcc546219f..81cedb3b5114f 100644 --- a/compiler-rt/lib/rtsan/rtsan.cpp +++ b/compiler-rt/lib/rtsan/rtsan.cpp @@ -55,11 +55,7 @@ static void OnViolation(const BufferedStackTrace &stack, StackDepotHandle handle = StackDepotPut_WithHandle(stack); const bool is_stack_novel = handle.use_count() == 0; - - // Marked UNLIKELY as if user is runing with halt_on_error=false - // we expect a high number of duplicate stacks. We are willing - // To pay for the first insertion. - if (UNLIKELY(is_stack_novel)) { + if (is_stack_novel || !flags().suppress_equal_stacks) { IncrementUniqueErrorCount(); { diff --git a/compiler-rt/lib/rtsan/rtsan_flags.inc b/compiler-rt/lib/rtsan/rtsan_flags.inc index 5c3eb3f53a5eb..104fac8f77040 100644 --- a/compiler-rt/lib/rtsan/rtsan_flags.inc +++ b/compiler-rt/lib/rtsan/rtsan_flags.inc @@ -19,3 +19,6 @@ RTSAN_FLAG(bool, halt_on_error, true, "Exit after first reported error.") RTSAN_FLAG(bool, print_stats_on_exit, false, "Print stats on exit.") RTSAN_FLAG(const char *, suppressions, "", "Suppressions file name.") +RTSAN_FLAG(bool, suppress_equal_stacks, true, + "Suppress a report if we've already output another report " + "with the same stack.") diff --git a/compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp b/compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp index 73448cfc11788..91d023e858ba3 100644 --- a/compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp +++ b/compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp @@ -439,6 +439,11 @@ INTERCEPTOR(int, nanosleep, const struct timespec *rqtp, return REAL(nanosleep)(rqtp, rmtp); } +INTERCEPTOR(int, sched_yield, void) { + __rtsan_notify_intercepted_call("sched_yield"); + return REAL(sched_yield)(); +} + // Memory INTERCEPTOR(void *, calloc, SIZE_T num, SIZE_T size) { @@ -819,6 +824,7 @@ void __rtsan::InitializeInterceptors() { INTERCEPT_FUNCTION(sleep); INTERCEPT_FUNCTION(usleep); INTERCEPT_FUNCTION(nanosleep); + INTERCEPT_FUNCTION(sched_yield); INTERCEPT_FUNCTION(accept); INTERCEPT_FUNCTION(bind); diff --git a/compiler-rt/lib/rtsan/tests/rtsan_test_functional.cpp b/compiler-rt/lib/rtsan/tests/rtsan_test_functional.cpp index ed9ee4ded7b05..ef11b71f167e1 100644 --- a/compiler-rt/lib/rtsan/tests/rtsan_test_functional.cpp +++ b/compiler-rt/lib/rtsan/tests/rtsan_test_functional.cpp @@ -65,6 +65,12 @@ TEST(TestRtsan, SleepingAThreadDiesWhenRealtime) { ExpectNonRealtimeSurvival(Func); } +TEST(TestRtsan, YieldingDiesWhenRealtime) { + auto Func = []() { std::this_thread::yield(); }; + ExpectRealtimeDeath(Func); + ExpectNonRealtimeSurvival(Func); +} + TEST(TestRtsan, IfstreamCreationDiesWhenRealtime) { auto Func = []() { std::ifstream ifs{"./file.txt"}; }; ExpectRealtimeDeath(Func); diff --git a/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp b/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp index 3e14346f33c7c..bf6a3a895bd3d 100644 --- a/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp +++ b/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp @@ -236,6 +236,12 @@ TEST(TestRtsanInterceptors, NanosleepDiesWhenRealtime) { ExpectNonRealtimeSurvival(Func); } +TEST(TestRtsanInterceptors, SchedYieldDiesWhenRealtime) { + auto Func = []() { sched_yield(); }; + ExpectRealtimeDeath(Func, "sched_yield"); + ExpectNonRealtimeSurvival(Func); +} + /* Filesystem */ diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc index 99fa737adfaf2..ba3693dbd11f6 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc @@ -2389,6 +2389,25 @@ INTERCEPTOR(int, setitimer, int which, const void *new_value, void *old_value) { #define INIT_GETITIMER #endif +#if SANITIZER_INTERCEPT_TIMESPEC_GET +INTERCEPTOR(int, timespec_get, struct __sanitizer_timespec *ts, int base) { + void *ctx; + COMMON_INTERCEPTOR_ENTER(ctx, timespec_get, ts, base); + // We don't yet know if ts is addressable, so we use our own scratch buffer + struct __sanitizer_timespec ts_local; + int res = REAL(timespec_get)(&ts_local, base); + if (res) { + COMMON_INTERCEPTOR_WRITE_RANGE(ctx, ts, + sizeof(struct __sanitizer_timespec)); + internal_memcpy(ts, &ts_local, sizeof(struct __sanitizer_timespec)); + } + return res; +} +# define INIT_TIMESPEC_GET COMMON_INTERCEPT_FUNCTION(timespec_get); +#else +# define INIT_TIMESPEC_GET +#endif + #if SANITIZER_INTERCEPT_GLOB static void unpoison_glob_t(void *ctx, __sanitizer_glob_t *pglob) { COMMON_INTERCEPTOR_WRITE_RANGE(ctx, pglob, sizeof(*pglob)); @@ -10324,6 +10343,7 @@ static void InitializeCommonInterceptors() { INIT_TIMER_CREATE; INIT_GETITIMER; INIT_TIME; + INIT_TIMESPEC_GET; INIT_GLOB; INIT_GLOB64; INIT___B64_TO; diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h b/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h index 0749f633b4bcf..1664b92b21369 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector.h @@ -120,7 +120,7 @@ class DeadlockDetectorTLS { u32 lock; u32 stk; }; - LockWithContext all_locks_with_contexts_[64]; + LockWithContext all_locks_with_contexts_[128]; uptr n_all_locks_; }; diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h index 1f78b1af8e2c6..190cad7cf7c3f 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h @@ -263,6 +263,7 @@ SANITIZER_WEAK_IMPORT void *aligned_alloc(__sanitizer::usize __alignment, #define SANITIZER_INTERCEPT_TIMER_CREATE SI_GLIBC #define SANITIZER_INTERCEPT_GETITIMER SI_POSIX #define SANITIZER_INTERCEPT_TIME SI_POSIX +#define SANITIZER_INTERCEPT_TIMESPEC_GET SI_LINUX #define SANITIZER_INTERCEPT_GLOB (SI_GLIBC || SI_SOLARIS) #define SANITIZER_INTERCEPT_GLOB64 SI_GLIBC #define SANITIZER_INTERCEPT___B64_TO SI_LINUX_NOT_ANDROID diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp index 5a2d39cd30607..c83efec8eaca2 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp +++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp @@ -673,7 +673,8 @@ void CheckUnwind() { thr->ignore_reads_and_writes++; atomic_store_relaxed(&thr->in_signal_handler, 0); #endif - PrintCurrentStackSlow(StackTrace::GetCurrentPc()); + PrintCurrentStack(StackTrace::GetCurrentPc(), + common_flags()->fast_unwind_on_fatal); } bool is_initialized; diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.h b/compiler-rt/lib/tsan/rtl/tsan_rtl.h index f48be8e0a4fe0..49bee9c67d303 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_rtl.h +++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.h @@ -514,7 +514,7 @@ bool IsExpectedReport(uptr addr, uptr size); StackID CurrentStackId(ThreadState *thr, uptr pc); ReportStack *SymbolizeStackId(StackID stack_id); void PrintCurrentStack(ThreadState *thr, uptr pc); -void PrintCurrentStackSlow(uptr pc); // uses libunwind +void PrintCurrentStack(uptr pc, bool fast); // may uses libunwind MBlock *JavaHeapBlock(uptr addr, uptr *start); void Initialize(ThreadState *thr); diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp index 0311df553fdd0..51a98e2f2d5e7 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp +++ b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp @@ -828,18 +828,18 @@ void PrintCurrentStack(ThreadState *thr, uptr pc) { PrintStack(SymbolizeStack(trace)); } -// Always inlining PrintCurrentStackSlow, because LocatePcInTrace assumes +// Always inlining PrintCurrentStack, because LocatePcInTrace assumes // __sanitizer_print_stack_trace exists in the actual unwinded stack, but -// tail-call to PrintCurrentStackSlow breaks this assumption because +// tail-call to PrintCurrentStack breaks this assumption because // __sanitizer_print_stack_trace disappears after tail-call. // However, this solution is not reliable enough, please see dvyukov's comment // http://reviews.llvm.org/D19148#406208 // Also see PR27280 comment 2 and 3 for breaking examples and analysis. -ALWAYS_INLINE USED void PrintCurrentStackSlow(uptr pc) { +ALWAYS_INLINE USED void PrintCurrentStack(uptr pc, bool fast) { #if !SANITIZER_GO uptr bp = GET_CURRENT_FRAME(); auto *ptrace = New(); - ptrace->Unwind(pc, bp, nullptr, false); + ptrace->Unwind(pc, bp, nullptr, fast); for (uptr i = 0; i < ptrace->size / 2; i++) { uptr tmp = ptrace->trace_buffer[i]; @@ -857,6 +857,6 @@ using namespace __tsan; extern "C" { SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_print_stack_trace() { - PrintCurrentStackSlow(StackTrace::GetCurrentPc()); + PrintCurrentStack(StackTrace::GetCurrentPc(), false); } } // extern "C" diff --git a/compiler-rt/test/builtins/Unit/extendhfxf2_test.c b/compiler-rt/test/builtins/Unit/extendhfxf2_test.c new file mode 100644 index 0000000000000..80e6f78cdd9c4 --- /dev/null +++ b/compiler-rt/test/builtins/Unit/extendhfxf2_test.c @@ -0,0 +1,73 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t +// REQUIRES: librt_has_extendhfxf2 + +#include +#include // for isnan, isinf +#include + +#include "int_lib.h" + +#if HAS_80_BIT_LONG_DOUBLE && defined(COMPILER_RT_HAS_FLOAT16) + +long double __extendhfxf2(_Float16 f); + +int test_extendhfxf2(_Float16 a, long double expected) { + long double x = __extendhfxf2(a); + __uint16_t *b = (void *)&a; + int ret = !((isnan(x) && isnan(expected)) || x == expected); + if (ret) { + printf("error in test__extendhfxf2(%#.4x) = %.20Lf, " + "expected %.20Lf\n", + *b, x, expected); + } + return ret; +} + +char assumption_1[sizeof(_Float16) * CHAR_BIT == 16] = {0}; + +int main() { + // Small positive value + if (test_extendhfxf2(0.09997558593750000000f, 0.09997558593750000000L)) + return 1; + + // Small negative value + if (test_extendhfxf2(-0.09997558593750000000f, -0.09997558593750000000L)) + return 1; + + // Zero + if (test_extendhfxf2(0.0f, 0.0L)) + return 1; + + // Smallest positive non-zero value + if (test_extendhfxf2(0x1p-16f, 0x1p-16L)) + return 1; + + // Smallest negative non-zero value + if (test_extendhfxf2(-0x1p-16f, -0x1p-16L)) + return 1; + + // Positive infinity + if (test_extendhfxf2(__builtin_huge_valf16(), __builtin_huge_valf64x())) + return 1; + + // Negative infinity + if (test_extendhfxf2(-__builtin_huge_valf16(), + (long double)-__builtin_huge_valf64x())) + return 1; + + // NaN + if (test_extendhfxf2(__builtin_nanf16(""), + (long double)__builtin_nanf64x(""))) + return 1; + + return 0; +} + +#else + +int main() { + printf("skipped\n"); + return 0; +} + +#endif diff --git a/compiler-rt/test/hwasan/lit.cfg.py b/compiler-rt/test/hwasan/lit.cfg.py index 594f3294a84ac..bbf23e683240a 100644 --- a/compiler-rt/test/hwasan/lit.cfg.py +++ b/compiler-rt/test/hwasan/lit.cfg.py @@ -2,6 +2,9 @@ import os +from lit.llvm import llvm_config +from lit.llvm.subst import ToolSubst, FindTool + # Setup config name. config.name = "HWAddressSanitizer" + getattr(config, "name_suffix", "default") @@ -74,6 +77,12 @@ def build_invocation(compile_flags): ("%env_hwasan_opts=", "env HWASAN_OPTIONS=" + default_hwasan_opts_str) ) +# Ensure that we can use hwasan_symbolize from the expected location +llvm_config.add_tool_substitutions( + [ToolSubst("hwasan_symbolize", unresolved="fatal")], + search_dirs=[config.compiler_rt_bindir], +) + # Default test suffixes. config.suffixes = [".c", ".cpp"] diff --git a/compiler-rt/test/lit.common.configured.in b/compiler-rt/test/lit.common.configured.in index 66935c358afed..050792b6b2621 100644 --- a/compiler-rt/test/lit.common.configured.in +++ b/compiler-rt/test/lit.common.configured.in @@ -28,6 +28,7 @@ set_default("python_executable", "@Python3_EXECUTABLE@") set_default("compiler_rt_debug", @COMPILER_RT_DEBUG_PYBOOL@) set_default("compiler_rt_intercept_libdispatch", @COMPILER_RT_INTERCEPT_LIBDISPATCH_PYBOOL@) set_default("compiler_rt_output_dir", "@COMPILER_RT_RESOLVED_OUTPUT_DIR@") +set_default("compiler_rt_bindir", "@COMPILER_RT_RESOLVED_EXEC_OUTPUT_DIR@") set_default("compiler_rt_libdir", "@COMPILER_RT_RESOLVED_LIBRARY_OUTPUT_DIR@") set_default("emulator", "@COMPILER_RT_EMULATOR@") set_default("asan_shadow_scale", "@COMPILER_RT_ASAN_SHADOW_SCALE@") diff --git a/compiler-rt/test/orc/TestCases/Darwin/Generic/trivial-cxx-constructor.cpp b/compiler-rt/test/orc/TestCases/Darwin/Generic/trivial-cxx-constructor.cpp new file mode 100644 index 0000000000000..c3c9cad6342bc --- /dev/null +++ b/compiler-rt/test/orc/TestCases/Darwin/Generic/trivial-cxx-constructor.cpp @@ -0,0 +1,17 @@ +// RUN: %clangxx -c -o %t %s +// RUN: %llvm_jitlink %t +// +// REQUIRES: system-darwin && host-arch-compatible + +static int x = 1; + +class Init { +public: + Init() { x = 0; } +}; + +static Init I; + +int main(int argc, char *argv[]) { + return x; +} diff --git a/compiler-rt/test/profile/Linux/binary-id-offset.c b/compiler-rt/test/profile/Linux/binary-id-offset.c new file mode 100644 index 0000000000000..c66fe82d714ce --- /dev/null +++ b/compiler-rt/test/profile/Linux/binary-id-offset.c @@ -0,0 +1,33 @@ +// REQUIRES: linux +// +// Make sure the build-id can be found in both EXEC and DYN (PIE) files, +// even when the note's section-start is forced to a weird address. +// (The DYN case would also apply to libraries, not explicitly tested here.) + +// DEFINE: %{cflags} = +// DEFINE: %{check} = ( \ +// DEFINE: %clang_profgen -Wl,--build-id -o %t %s %{cflags} && \ +// DEFINE: env LLVM_PROFILE_FILE=%t.profraw %run %t && \ +// DEFINE: llvm-readelf --notes %t && \ +// DEFINE: llvm-profdata show --binary-ids %t.profraw \ +// DEFINE: ) | FileCheck %s + +// REDEFINE: %{cflags} = -no-pie +// RUN: %{check} + +// REDEFINE: %{cflags} = -pie -fPIE +// RUN: %{check} + +// REDEFINE: %{cflags} = -no-pie -Wl,--section-start=.note.gnu.build-id=0x1000000 +// RUN: %{check} + +// REDEFINE: %{cflags} = -pie -fPIE -Wl,--section-start=.note.gnu.build-id=0x1000000 +// RUN: %{check} + +// CHECK-LABEL{LITERAL}: .note.gnu.build-id +// CHECK: Build ID: [[ID:[0-9a-f]+]] + +// CHECK-LABEL{LITERAL}: Binary IDs: +// CHECK-NEXT: [[ID]] + +int main() { return 0; } diff --git a/compiler-rt/test/rtsan/deduplicate_errors.cpp b/compiler-rt/test/rtsan/deduplicate_errors.cpp index 7d60d4d7da7dd..6fcd749cf63ee 100644 --- a/compiler-rt/test/rtsan/deduplicate_errors.cpp +++ b/compiler-rt/test/rtsan/deduplicate_errors.cpp @@ -1,5 +1,6 @@ // RUN: %clangxx -fsanitize=realtime %s -o %t // RUN: env RTSAN_OPTIONS="halt_on_error=false,print_stats_on_exit=true" %run %t 2>&1 | FileCheck %s +// RUN: env RTSAN_OPTIONS="halt_on_error=false,suppress_equal_stacks=false" %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-DUPLICATES // UNSUPPORTED: ios @@ -37,3 +38,6 @@ int main() { // CHECK: RealtimeSanitizer exit stats: // CHECK-NEXT: Total error count: 220 // CHECK-NEXT: Unique error count: 4 + +// CHECK-DUPLICATES-COUNT-220: ==ERROR: +// CHECK-DUPLICATES-NOT: ==ERROR: diff --git a/compiler-rt/test/tsan/many_held_mutex.cpp b/compiler-rt/test/tsan/many_held_mutex.cpp new file mode 100644 index 0000000000000..76e072b35a233 --- /dev/null +++ b/compiler-rt/test/tsan/many_held_mutex.cpp @@ -0,0 +1,21 @@ +// RUN: %clangxx_tsan -O1 %s %link_libcxx_tsan -fsanitize=thread -o %t +// RUN: %run %t 128 + +#include +#include +#include + +int main(int argc, char *argv[]) { + int num_of_mtx = std::atoi(argv[1]); + + std::vector mutexes(num_of_mtx); + + for (auto &mu : mutexes) { + mu.lock(); + } + for (auto &mu : mutexes) { + mu.unlock(); + } + + return 0; +} diff --git a/flang/docs/ParserCombinators.md b/flang/docs/ParserCombinators.md index 2c5652ec36138..7cb77deba2197 100644 --- a/flang/docs/ParserCombinators.md +++ b/flang/docs/ParserCombinators.md @@ -178,3 +178,16 @@ is built. All of the following parsers consume characters acquired from Last, a string literal `"..."_debug` denotes a parser that emits the string to `llvm::errs` and succeeds. It is useful for tracing while debugging a parser but should obviously not be committed for production code. + +### Messages +A list of generated error and warning messages is maintained in the `ParseState`. +The parser combinator that handles alternatives (`||` and `first()`) will +discard the messages from alternatives that fail when there is an alternative +that succeeds. +But when no alternative succeeds, and the alternative parser as a whole is +failing, the messages that survive are chosen from the alternative that +recognized any input tokens, if only one alternative did so; +and when multiple alternatives recognized tokens, the messages from the +alternative that proceeded the furthest into the input are retained. +This strategy tends to show the most useful error messages to the user +in situations where a statement fails to parse. diff --git a/flang/examples/FeatureList/FeatureList.cpp b/flang/examples/FeatureList/FeatureList.cpp index fe7fee97bc78e..6ae92acf20608 100644 --- a/flang/examples/FeatureList/FeatureList.cpp +++ b/flang/examples/FeatureList/FeatureList.cpp @@ -468,7 +468,7 @@ struct NodeVisitor { READ_FEATURE(OmpDefaultClause::Type) READ_FEATURE(OmpDefaultmapClause) READ_FEATURE(OmpDefaultmapClause::ImplicitBehavior) - READ_FEATURE(OmpDefaultmapClause::VariableCategory) + READ_FEATURE(OmpVariableCategory::Value) READ_FEATURE(OmpDependClause) READ_FEATURE(OmpDependClause::TaskDep) READ_FEATURE(OmpDoacross::Sink) @@ -498,16 +498,15 @@ struct NodeVisitor { READ_FEATURE(OmpLinearModifier::Value) READ_FEATURE(OmpLoopDirective) READ_FEATURE(OmpMapClause) - READ_FEATURE(OmpMapClause::TypeModifier) - READ_FEATURE(OmpMapClause::Type) + READ_FEATURE(OmpMapClause::Modifier) READ_FEATURE(OmpNumTasksClause) READ_FEATURE(OmpNumTasksClause::Prescriptiveness) READ_FEATURE(OmpObject) READ_FEATURE(OmpObjectList) READ_FEATURE(OmpOrderClause) - READ_FEATURE(OmpOrderClause::Type) + READ_FEATURE(OmpOrderClause::Ordering) READ_FEATURE(OmpOrderModifier) - READ_FEATURE(OmpOrderModifier::Kind) + READ_FEATURE(OmpOrderModifier::Value) READ_FEATURE(OmpProcBindClause) READ_FEATURE(OmpProcBindClause::Type) READ_FEATURE(OmpReductionClause) @@ -522,16 +521,16 @@ struct NodeVisitor { READ_FEATURE(OmpAllocateClause::AllocateModifier::ComplexModifier) READ_FEATURE(OmpAllocateClause::AllocateModifier::Align) READ_FEATURE(OmpScheduleClause) - READ_FEATURE(OmpScheduleClause::ScheduleType) + READ_FEATURE(OmpScheduleClause::Kind) + READ_FEATURE(OmpScheduleClause::Modifier) READ_FEATURE(OmpDeviceClause) READ_FEATURE(OmpDeviceClause::DeviceModifier) READ_FEATURE(OmpDeviceTypeClause) READ_FEATURE(OmpDeviceTypeClause::Type) - READ_FEATURE(OmpScheduleModifier) - READ_FEATURE(OmpScheduleModifier::Modifier1) - READ_FEATURE(OmpScheduleModifier::Modifier2) - READ_FEATURE(OmpScheduleModifierType) - READ_FEATURE(OmpScheduleModifierType::ModType) + READ_FEATURE(OmpChunkModifier) + READ_FEATURE(OmpChunkModifier::Value) + READ_FEATURE(OmpOrderingModifier) + READ_FEATURE(OmpOrderingModifier::Value) READ_FEATURE(OmpSectionBlocks) READ_FEATURE(OmpSectionsDirective) READ_FEATURE(OmpSimpleStandaloneDirective) diff --git a/flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp b/flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp index c184fdafb5c33..5bd8c76199278 100644 --- a/flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp +++ b/flang/examples/FlangOmpReport/FlangOmpReportVisitor.cpp @@ -208,28 +208,31 @@ void OpenMPCounterVisitor::Post( "implicit_behavior=" + std::string{OmpDefaultmapClause::EnumToString(c)} + ";"; } -void OpenMPCounterVisitor::Post( - const OmpDefaultmapClause::VariableCategory &c) { +void OpenMPCounterVisitor::Post(const OmpVariableCategory::Value &c) { clauseDetails += - "variable_category=" + std::string{OmpDefaultmapClause::EnumToString(c)} + + "variable_category=" + std::string{OmpVariableCategory::EnumToString(c)} + ";"; } -void OpenMPCounterVisitor::Post(const OmpScheduleModifierType::ModType &c) { +void OpenMPCounterVisitor::Post(const OmpChunkModifier::Value &c) { clauseDetails += - "modifier=" + std::string{OmpScheduleModifierType::EnumToString(c)} + ";"; + "modifier=" + std::string{OmpChunkModifier::EnumToString(c)} + ";"; } void OpenMPCounterVisitor::Post(const OmpLinearModifier::Value &c) { clauseDetails += "modifier=" + std::string{OmpLinearModifier::EnumToString(c)} + ";"; } +void OpenMPCounterVisitor::Post(const OmpOrderingModifier::Value &c) { + clauseDetails += + "modifier=" + std::string{OmpOrderingModifier::EnumToString(c)} + ";"; +} void OpenMPCounterVisitor::Post(const OmpTaskDependenceType::Value &c) { clauseDetails += "type=" + std::string{OmpTaskDependenceType::EnumToString(c)} + ";"; } -void OpenMPCounterVisitor::Post(const OmpMapClause::Type &c) { - clauseDetails += "type=" + std::string{OmpMapClause::EnumToString(c)} + ";"; +void OpenMPCounterVisitor::Post(const OmpMapType::Value &c) { + clauseDetails += "type=" + std::string{OmpMapType::EnumToString(c)} + ";"; } -void OpenMPCounterVisitor::Post(const OmpScheduleClause::ScheduleType &c) { +void OpenMPCounterVisitor::Post(const OmpScheduleClause::Kind &c) { clauseDetails += "type=" + std::string{OmpScheduleClause::EnumToString(c)} + ";"; } diff --git a/flang/examples/FlangOmpReport/FlangOmpReportVisitor.h b/flang/examples/FlangOmpReport/FlangOmpReportVisitor.h index 6c2d194a88e69..7e9ae94bef297 100644 --- a/flang/examples/FlangOmpReport/FlangOmpReportVisitor.h +++ b/flang/examples/FlangOmpReport/FlangOmpReportVisitor.h @@ -69,13 +69,14 @@ struct OpenMPCounterVisitor { void Post(const OmpProcBindClause::Type &c); void Post(const OmpDefaultClause::Type &c); void Post(const OmpDefaultmapClause::ImplicitBehavior &c); - void Post(const OmpDefaultmapClause::VariableCategory &c); + void Post(const OmpVariableCategory::Value &c); void Post(const OmpDeviceTypeClause::Type &c); - void Post(const OmpScheduleModifierType::ModType &c); + void Post(const OmpChunkModifier::Value &c); void Post(const OmpLinearModifier::Value &c); + void Post(const OmpOrderingModifier::Value &c); void Post(const OmpTaskDependenceType::Value &c); - void Post(const OmpMapClause::Type &c); - void Post(const OmpScheduleClause::ScheduleType &c); + void Post(const OmpMapType::Value &c); + void Post(const OmpScheduleClause::Kind &c); void Post(const OmpIfClause::DirectiveNameModifier &c); void Post(const OmpCancelType::Type &c); void Post(const OmpClause &c); diff --git a/flang/include/flang/Frontend/FrontendOptions.h b/flang/include/flang/Frontend/FrontendOptions.h index 82ca99672ec61..a4cb021e309d4 100644 --- a/flang/include/flang/Frontend/FrontendOptions.h +++ b/flang/include/flang/Frontend/FrontendOptions.h @@ -236,7 +236,8 @@ class FrontendInputFile { struct FrontendOptions { FrontendOptions() : showHelp(false), showVersion(false), instrumentedParse(false), - showColors(false), needProvenanceRangeToCharBlockMappings(false) {} + showColors(false), printSupportedCPUs(false), + needProvenanceRangeToCharBlockMappings(false) {} /// Show the -help text. unsigned showHelp : 1; @@ -250,6 +251,9 @@ struct FrontendOptions { /// Enable color diagnostics. unsigned showColors : 1; + /// Print the supported cpus for the current target + unsigned printSupportedCPUs : 1; + /// Enable Provenance to character-stream mapping. Allows e.g. IDEs to find /// symbols based on source-code location. This is not needed in regular /// compilation. diff --git a/flang/include/flang/Optimizer/Transforms/CUFCommon.h b/flang/include/flang/Optimizer/Transforms/CUFCommon.h index b88133489df5e..f019d1893bda4 100644 --- a/flang/include/flang/Optimizer/Transforms/CUFCommon.h +++ b/flang/include/flang/Optimizer/Transforms/CUFCommon.h @@ -20,6 +20,8 @@ namespace cuf { mlir::gpu::GPUModuleOp getOrCreateGPUModule(mlir::ModuleOp mod, mlir::SymbolTable &symTab); +bool isInCUDADeviceContext(mlir::Operation *op); + } // namespace cuf #endif // FORTRAN_OPTIMIZER_TRANSFORMS_CUFCOMMON_H_ diff --git a/flang/include/flang/Parser/dump-parse-tree.h b/flang/include/flang/Parser/dump-parse-tree.h index 63fddc424182b..68f9406dc2830 100644 --- a/flang/include/flang/Parser/dump-parse-tree.h +++ b/flang/include/flang/Parser/dump-parse-tree.h @@ -476,6 +476,11 @@ class ParseTreeDumper { NODE(parser, NullInit) NODE(parser, ObjectDecl) NODE(parser, OldParameterStmt) + NODE(parser, OmpMapper) + NODE(parser, OmpMapType) + NODE_ENUM(OmpMapType, Value) + NODE(parser, OmpMapTypeModifier) + NODE_ENUM(OmpMapTypeModifier, Value) NODE(parser, OmpIteratorSpecifier) NODE(parser, OmpIterator) NODE(parser, OmpAffinityClause) @@ -509,9 +514,11 @@ class ParseTreeDumper { NODE(parser, OmpDeclareMapperSpecifier) NODE(parser, OmpDefaultClause) NODE_ENUM(OmpDefaultClause, Type) + NODE(parser, OmpVariableCategory) + NODE_ENUM(OmpVariableCategory, Value) NODE(parser, OmpDefaultmapClause) NODE_ENUM(OmpDefaultmapClause, ImplicitBehavior) - NODE_ENUM(OmpDefaultmapClause, VariableCategory) + NODE(OmpDefaultmapClause, Modifier) NODE(parser, OmpDependenceType) NODE_ENUM(OmpDependenceType, Value) NODE(parser, OmpTaskDependenceType) @@ -534,7 +541,9 @@ class ParseTreeDumper { NODE(parser, OmpEndLoopDirective) NODE(parser, OmpEndSectionsDirective) NODE(parser, OmpFromClause) - NODE_ENUM(OmpFromClause, Expectation) + NODE(OmpFromClause, Modifier) + NODE(parser, OmpExpectation) + NODE_ENUM(OmpExpectation, Value) NODE(parser, OmpIfClause) NODE_ENUM(OmpIfClause, DirectiveNameModifier) NODE_ENUM(OmpLastprivateClause, LastprivateModifier) @@ -546,9 +555,7 @@ class ParseTreeDumper { NODE_ENUM(OmpLinearModifier, Value) NODE(parser, OmpLoopDirective) NODE(parser, OmpMapClause) - NODE(parser, OmpMapperIdentifier) - NODE_ENUM(OmpMapClause, TypeModifier) - NODE_ENUM(OmpMapClause, Type) + NODE(OmpMapClause, Modifier) static std::string GetNodeName(const llvm::omp::Clause &x) { return llvm::Twine( "llvm::omp::Clause = ", llvm::omp::getOpenMPClauseName(x)) @@ -557,9 +564,10 @@ class ParseTreeDumper { NODE(parser, OmpObject) NODE(parser, OmpObjectList) NODE(parser, OmpOrderClause) - NODE_ENUM(OmpOrderClause, Type) + NODE(OmpOrderClause, Modifier) + NODE_ENUM(OmpOrderClause, Ordering) NODE(parser, OmpOrderModifier) - NODE_ENUM(OmpOrderModifier, Kind) + NODE_ENUM(OmpOrderModifier, Value) NODE(parser, OmpGrainsizeClause) NODE_ENUM(OmpGrainsizeClause, Prescriptiveness) NODE(parser, OmpNumTasksClause) @@ -568,8 +576,10 @@ class ParseTreeDumper { NODE_ENUM(OmpBindClause, Type) NODE(parser, OmpProcBindClause) NODE_ENUM(OmpProcBindClause, Type) - NODE_ENUM(OmpReductionClause, ReductionModifier) + NODE(parser, OmpReductionModifier) + NODE_ENUM(OmpReductionModifier, Value) NODE(parser, OmpReductionClause) + NODE(OmpReductionClause, Modifier) NODE(parser, OmpInReductionClause) NODE(parser, OmpReductionCombiner) NODE(OmpReductionCombiner, FunctionCombiner) @@ -581,23 +591,22 @@ class ParseTreeDumper { NODE(OmpAllocateClause::AllocateModifier, ComplexModifier) NODE(OmpAllocateClause::AllocateModifier, Align) NODE(parser, OmpScheduleClause) - NODE_ENUM(OmpScheduleClause, ScheduleType) + NODE(OmpScheduleClause, Modifier) + NODE_ENUM(OmpScheduleClause, Kind) NODE(parser, OmpDeviceClause) NODE_ENUM(OmpDeviceClause, DeviceModifier) NODE(parser, OmpDeviceTypeClause) NODE_ENUM(OmpDeviceTypeClause, Type) NODE(parser, OmpUpdateClause) - NODE(parser, OmpScheduleModifier) - NODE(OmpScheduleModifier, Modifier1) - NODE(OmpScheduleModifier, Modifier2) - NODE(parser, OmpScheduleModifierType) - NODE_ENUM(OmpScheduleModifierType, ModType) + NODE(parser, OmpChunkModifier) + NODE_ENUM(OmpChunkModifier, Value) + NODE(parser, OmpOrderingModifier) + NODE_ENUM(OmpOrderingModifier, Value) NODE(parser, OmpSectionBlocks) NODE(parser, OmpSectionsDirective) NODE(parser, OmpSimpleStandaloneDirective) NODE(parser, OmpToClause) - // No NODE_ENUM for OmpToClause::Expectation, because it's an alias - // for OmpFromClause::Expectation. + NODE(OmpToClause, Modifier) NODE(parser, Only) NODE(parser, OpenACCAtomicConstruct) NODE(parser, OpenACCBlockConstruct) diff --git a/flang/include/flang/Parser/parse-tree.h b/flang/include/flang/Parser/parse-tree.h index 22b7f9acd1af5..8d7119a56b7f8 100644 --- a/flang/include/flang/Parser/parse-tree.h +++ b/flang/include/flang/Parser/parse-tree.h @@ -3440,6 +3440,16 @@ struct OmpObject { WRAPPER_CLASS(OmpObjectList, std::list); +#define MODIFIER_BOILERPLATE(...) \ + struct Modifier { \ + using Variant = std::variant<__VA_ARGS__>; \ + UNION_CLASS_BOILERPLATE(Modifier); \ + CharBlock source; \ + Variant u; \ + } + +#define MODIFIERS() std::optional> + inline namespace modifier { // For uniformity, in all keyword modifiers the name of the type defined // by ENUM_CLASS is "Value", e.g. @@ -3447,6 +3457,17 @@ inline namespace modifier { // ENUM_CLASS(Value, Keyword1, Keyword2); // }; +// Ref: [5.2:252-254] +// +// chunk-modifier -> +// SIMD // since 5.2 +// +// Prior to 5.2 "chunk-modifier" was a part of "modifier" on SCHEDULE clause. +struct OmpChunkModifier { + ENUM_CLASS(Value, Simd) + WRAPPER_CLASS_BOILERPLATE(OmpChunkModifier, Value); +}; + // Ref: [5.0:47-49], [5.1:49-51], [5.2:67-69] // // iterator-specifier -> @@ -3481,6 +3502,21 @@ struct OmpDependenceType { WRAPPER_CLASS_BOILERPLATE(OmpDependenceType, Value); }; +// Ref: [5.1:205-209], [5.2:166-168] +// +// motion-modifier -> +// PRESENT | // since 5.0, until 5.0 +// mapper | iterator +// expectation -> +// PRESENT // since 5.1 +// +// The PRESENT value was a part of motion-modifier in 5.1, and became a +// value of expectation in 5.2. +struct OmpExpectation { + ENUM_CLASS(Value, Present); + WRAPPER_CLASS_BOILERPLATE(OmpExpectation, Value); +}; + // Ref: [5.0:47-49], [5.1:49-51], [5.2:67-69] // // iterator-modifier -> @@ -3498,19 +3534,79 @@ struct OmpLinearModifier { WRAPPER_CLASS_BOILERPLATE(OmpLinearModifier, Value); }; +// Ref: [5.0:176-180], [5.1:205-210], [5.2:149-150] +// +// mapper -> +// identifier // since 4.5 +struct OmpMapper { + WRAPPER_CLASS_BOILERPLATE(OmpMapper, Name); +}; + +// Ref: [4.5:216-219], [5.0:315-324], [5.1:347-355], [5.2:150-158] +// +// map-type -> +// ALLOC | DELETE | FROM | RELEASE | TO | TOFROM // since 4.5 +struct OmpMapType { + ENUM_CLASS(Value, Alloc, Delete, From, Release, To, Tofrom); + WRAPPER_CLASS_BOILERPLATE(OmpMapType, Value); +}; + +// Ref: [4.5:216-219], [5.0:315-324], [5.1:347-355], [5.2:150-158] +// +// map-type-modifier -> +// ALWAYS | // since 4.5 +// CLOSE | // since 5.0 +// PRESENT // since 5.1 +struct OmpMapTypeModifier { + ENUM_CLASS(Value, Always, Close, Present, Ompx_Hold) + WRAPPER_CLASS_BOILERPLATE(OmpMapTypeModifier, Value); +}; + +// Ref: [4.5:56-63], [5.0:101-109], [5.1:126-133], [5.2:252-254] +// +// modifier -> +// MONOTONIC | NONMONOTONIC | SIMD // since 4.5, until 5.1 +// ordering-modifier -> +// MONOTONIC | NONMONOTONIC // since 5.2 +// +// Until 5.1, the SCHEDULE clause accepted up to two instances of "modifier". +// Since 5.2 "modifier" was replaced with "ordering-modifier" and "chunk- +// modifier". +struct OmpOrderingModifier { + ENUM_CLASS(Value, Monotonic, Nonmonotonic, Simd) + WRAPPER_CLASS_BOILERPLATE(OmpOrderingModifier, Value); +}; + +// Ref: [5.1:125-126], [5.2:233-234] +// +// order-modifier -> +// REPRODUCIBLE | UNCONSTRAINED // since 5.1 +struct OmpOrderModifier { + ENUM_CLASS(Value, Reproducible, Unconstrained) + WRAPPER_CLASS_BOILERPLATE(OmpOrderModifier, Value); +}; + // Ref: [4.5:201-207], [5.0:293-299], [5.1:325-331], [5.2:124] // // reduction-identifier -> -// base-language-identifier | // since 4.5 -// - | // since 4.5, until 5.2 -// + | * | .AND. | .OR. | .EQV. | .NEQV. | // since 4.5 -// MIN | MAX | IAND | IOR | IEOR // since 4.5 -// +// base-language-identifier | // since 4.5 +// - | // since 4.5, until 5.2 +// + | * | .AND. | .OR. | .EQV. | .NEQV. | // since 4.5 +// MIN | MAX | IAND | IOR | IEOR // since 4.5 struct OmpReductionIdentifier { UNION_CLASS_BOILERPLATE(OmpReductionIdentifier); std::variant u; }; +// Ref: [5.0:300-302], [5.1:332-334], [5.2:134-137] +// +// reduction-modifier -> +// DEFAULT | INSCAN | TASK // since 5.0 +struct OmpReductionModifier { + ENUM_CLASS(Value, Default, Inscan, Task); + WRAPPER_CLASS_BOILERPLATE(OmpReductionModifier, Value); +}; + // Ref: [4.5:169-170], [5.0:254-256], [5.1:287-289], [5.2:321] // // task-dependence-type -> // "dependence-type" in 5.1 and before @@ -3521,6 +3617,17 @@ struct OmpTaskDependenceType { ENUM_CLASS(Value, In, Out, Inout, Inoutset, Mutexinoutset, Depobj) WRAPPER_CLASS_BOILERPLATE(OmpTaskDependenceType, Value); }; + +// Ref: [4.5:229-230], [5.0:324-325], [5.1:357-358], [5.2:161-162] +// +// variable-category -> +// SCALAR | // since 4.5 +// AGGREGATE | ALLOCATABLE | POINTER | // since 5.0 +// ALL // since 5.2 +struct OmpVariableCategory { + ENUM_CLASS(Value, Aggregate, All, Allocatable, Pointer, Scalar) + WRAPPER_CLASS_BOILERPLATE(OmpVariableCategory, Value); +}; } // namespace modifier // --- Clauses @@ -3578,8 +3685,8 @@ struct OmpDefaultmapClause { TUPLE_CLASS_BOILERPLATE(OmpDefaultmapClause); ENUM_CLASS( ImplicitBehavior, Alloc, To, From, Tofrom, Firstprivate, None, Default) - ENUM_CLASS(VariableCategory, All, Scalar, Aggregate, Allocatable, Pointer) - std::tuple> t; + MODIFIER_BOILERPLATE(OmpVariableCategory); + std::tuple t; }; // 2.13.9 iteration-offset -> +/- non-negative-constant @@ -3659,15 +3766,9 @@ struct OmpDeviceTypeClause { // motion-modifier -> // PRESENT | mapper-modifier | iterator-modifier struct OmpFromClause { - ENUM_CLASS(Expectation, Present); TUPLE_CLASS_BOILERPLATE(OmpFromClause); - - // As in the case of MAP, modifiers are parsed as lists, even if they - // are unique. These restrictions will be checked in semantic checks. - std::tuple>, - std::optional>, OmpObjectList, - bool> // were the modifiers comma-separated? - t; + MODIFIER_BOILERPLATE(OmpExpectation, OmpIterator, OmpMapper); + std::tuple t; }; // OMP 5.2 12.6.1 grainsize-clause -> grainsize ([prescriptiveness :] value) @@ -3730,43 +3831,31 @@ struct OmpLinearClause { std::variant u; }; -WRAPPER_CLASS(OmpMapperIdentifier, std::optional); - -// 2.15.5.1 map -> -// MAP ([MAPPER(mapper-identifier)] [[map-type-modifier-list [,]] -// [iterator-modifier [,]] map-type : ] -// variable-name-list) -// map-type-modifier-list -> map-type-modifier [,] [...] -// map-type-modifier -> ALWAYS | CLOSE | PRESENT | OMPX_HOLD -// map-type -> TO | FROM | TOFROM | ALLOC | RELEASE | DELETE +// Ref: [4.5:216-219], [5.0:315-324], [5.1:347-355], [5.2:150-158] +// +// map-clause -> +// MAP([modifier...:] locator-list) // since 4.5 +// modifier -> +// map-type-modifier | // since 4.5 +// mapper | // since 5.0 +// iterator | // since 5.1 +// map-type // since 4.5 struct OmpMapClause { - ENUM_CLASS(TypeModifier, Always, Close, Present, Ompx_Hold); - ENUM_CLASS(Type, To, From, Tofrom, Alloc, Release, Delete) TUPLE_CLASS_BOILERPLATE(OmpMapClause); - - // All modifiers are parsed into optional lists, even if they are unique. - // The checks for satisfying those constraints are deferred to semantics. - // In OpenMP 5.2 the non-comma syntax has been deprecated: keep the - // information about separator presence to emit a diagnostic if needed. - std::tuple>, - std::optional>, // unique - std::optional>, // unique - OmpObjectList, - bool> // were the modifiers comma-separated? - t; -}; - -// 2.9.5 order-clause -> ORDER ([order-modifier :]concurrent) -struct OmpOrderModifier { - ENUM_CLASS(Kind, Reproducible, Unconstrained) - WRAPPER_CLASS_BOILERPLATE(OmpOrderModifier, Kind); + MODIFIER_BOILERPLATE(OmpMapTypeModifier, OmpMapper, OmpIterator, OmpMapType); + std::tuple t; }; +// Ref: [5.0:101-109], [5.1:126-134], [5.2:233-234] +// +// order-clause -> +// ORDER(CONCURRENT) | // since 5.0 +// ORDER([order-modifier:] CONCURRENT) // since 5.1 struct OmpOrderClause { TUPLE_CLASS_BOILERPLATE(OmpOrderClause); - ENUM_CLASS(Type, Concurrent) - std::tuple, Type> t; + ENUM_CLASS(Ordering, Concurrent) + MODIFIER_BOILERPLATE(OmpOrderModifier); + std::tuple t; }; // 2.5 proc-bind-clause -> PROC_BIND (MASTER | CLOSE | SPREAD) @@ -3775,59 +3864,47 @@ struct OmpProcBindClause { WRAPPER_CLASS_BOILERPLATE(OmpProcBindClause, Type); }; -// 2.15.3.6 reduction-clause -> REDUCTION (reduction-identifier: -// variable-name-list) +// Ref: [4.5:201-207], [5.0:300-302], [5.1:332-334], [5.2:134-137] +// +// reduction-clause -> +// REDUCTION(reduction-identifier: list) | // since 4.5 +// REDUCTION([reduction-modifier,] +// reduction-identifier: list) // since 5.0 struct OmpReductionClause { TUPLE_CLASS_BOILERPLATE(OmpReductionClause); - ENUM_CLASS(ReductionModifier, Inscan, Task, Default) - std::tuple, OmpReductionIdentifier, - OmpObjectList> - t; -}; - -// 2.7.1 sched-modifier -> MONOTONIC | NONMONOTONIC | SIMD -struct OmpScheduleModifierType { - ENUM_CLASS(ModType, Monotonic, Nonmonotonic, Simd) - WRAPPER_CLASS_BOILERPLATE(OmpScheduleModifierType, ModType); + MODIFIER_BOILERPLATE(OmpReductionModifier, OmpReductionIdentifier); + std::tuple t; }; -struct OmpScheduleModifier { - TUPLE_CLASS_BOILERPLATE(OmpScheduleModifier); - WRAPPER_CLASS(Modifier1, OmpScheduleModifierType); - WRAPPER_CLASS(Modifier2, OmpScheduleModifierType); - std::tuple> t; -}; - -// 2.7.1 schedule-clause -> SCHEDULE ([sched-modifier1] [, sched-modifier2]:] -// kind[, chunk_size]) +// Ref: [4.5:56-63], [5.0:101-109], [5.1:126-133], [5.2:252-254] +// +// schedule-clause -> +// SCHEDULE([modifier[, modifier]:] +// kind[, chunk-size]) // since 4.5, until 5.1 +// schedule-clause -> +// SCHEDULE([ordering-modifier], chunk-modifier], +// kind[, chunk_size]) // since 5.2 struct OmpScheduleClause { TUPLE_CLASS_BOILERPLATE(OmpScheduleClause); - ENUM_CLASS(ScheduleType, Static, Dynamic, Guided, Auto, Runtime) - std::tuple, ScheduleType, - std::optional> - t; + ENUM_CLASS(Kind, Static, Dynamic, Guided, Auto, Runtime) + MODIFIER_BOILERPLATE(OmpOrderingModifier, OmpChunkModifier); + std::tuple> t; }; // Ref: [4.5:107-109], [5.0:176-180], [5.1:205-210], [5.2:167-168] // // to-clause (in DECLARE TARGET) -> -// TO(extended-list) | // until 5.1 +// TO(extended-list) | // until 5.1 // to-clause (in TARGET UPDATE) -> // TO(locator-list) | -// TO(mapper-modifier: locator-list) | // since 5.0 -// TO(motion-modifier[,] ...: locator-list) // since 5.1 -// motion-modifier -> +// TO(mapper-modifier: locator-list) | // since 5.0 +// TO(motion-modifier[,] ...: locator-list) // since 5.1 +// motion-modifier -> // PRESENT | mapper-modifier | iterator-modifier struct OmpToClause { - using Expectation = OmpFromClause::Expectation; TUPLE_CLASS_BOILERPLATE(OmpToClause); - - // As in the case of MAP, modifiers are parsed as lists, even if they - // are unique. These restrictions will be checked in semantic checks. - std::tuple>, - std::optional>, OmpObjectList, - bool> // were the modifiers comma-separated? - t; + MODIFIER_BOILERPLATE(OmpExpectation, OmpIterator, OmpMapper); + std::tuple t; }; // OMP 5.2 12.6.2 num_tasks-clause -> num_tasks ([prescriptiveness :] value) @@ -3839,8 +3916,10 @@ struct OmpNumTasksClause { // Ref: [5.0:254-255], [5.1:287-288], [5.2:321-322] // -// update-clause -> UPDATE(dependence-type) // since 5.0, until 5.1 -// update-clause -> UPDATE(task-dependence-type) // since 5.2 +// update-clause -> +// UPDATE(dependence-type) // since 5.0, until 5.1 +// update-clause -> +// UPDATE(task-dependence-type) // since 5.2 struct OmpUpdateClause { UNION_CLASS_BOILERPLATE(OmpUpdateClause); std::variant u; diff --git a/flang/include/flang/Runtime/CUDA/allocatable.h b/flang/include/flang/Runtime/CUDA/allocatable.h index e986ad910a3f3..e2156281d1b2b 100644 --- a/flang/include/flang/Runtime/CUDA/allocatable.h +++ b/flang/include/flang/Runtime/CUDA/allocatable.h @@ -16,9 +16,28 @@ namespace Fortran::runtime::cuda { extern "C" { +/// Perform allocation of the descriptor. +int RTDECL(CUFAllocatableAllocate)(Descriptor &, int64_t stream = -1, + bool hasStat = false, const Descriptor *errMsg = nullptr, + const char *sourceFile = nullptr, int sourceLine = 0); + /// Perform allocation of the descriptor with synchronization of it when /// necessary. -int RTDECL(CUFAllocatableAllocate)(Descriptor &, bool hasStat = false, +int RTDECL(CUFAllocatableAllocateSync)(Descriptor &, int64_t stream = -1, + bool hasStat = false, const Descriptor *errMsg = nullptr, + const char *sourceFile = nullptr, int sourceLine = 0); + +/// Perform allocation of the descriptor without synchronization. Assign data +/// from source. +int RTDEF(CUFAllocatableAllocateSource)(Descriptor &alloc, + const Descriptor &source, int64_t stream = -1, bool hasStat = false, + const Descriptor *errMsg = nullptr, const char *sourceFile = nullptr, + int sourceLine = 0); + +/// Perform allocation of the descriptor with synchronization of it when +/// necessary. Assign data from source. +int RTDEF(CUFAllocatableAllocateSourceSync)(Descriptor &alloc, + const Descriptor &source, int64_t stream = -1, bool hasStat = false, const Descriptor *errMsg = nullptr, const char *sourceFile = nullptr, int sourceLine = 0); diff --git a/flang/include/flang/Runtime/CUDA/memmove-function.h b/flang/include/flang/Runtime/CUDA/memmove-function.h new file mode 100644 index 0000000000000..74d6a05eff4c9 --- /dev/null +++ b/flang/include/flang/Runtime/CUDA/memmove-function.h @@ -0,0 +1,23 @@ +//===-- include/flang/Runtime/CUDA/memmove-function.h -----------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include + +#ifndef FORTRAN_RUNTIME_CUDA_MEMMOVE_FUNCTION_H_ +#define FORTRAN_RUNTIME_CUDA_MEMMOVE_FUNCTION_H_ + +namespace Fortran::runtime::cuda { + +void *MemmoveHostToDevice(void *dst, const void *src, std::size_t count); + +void *MemmoveDeviceToHost(void *dst, const void *src, std::size_t count); + +void *MemmoveDeviceToDevice(void *dst, const void *src, std::size_t count); + +} // namespace Fortran::runtime::cuda +#endif // FORTRAN_RUNTIME_CUDA_MEMMOVE_FUNCTION_H_ diff --git a/flang/include/flang/Semantics/openmp-modifiers.h b/flang/include/flang/Semantics/openmp-modifiers.h index 65d28f71fbc72..60f116e6f0033 100644 --- a/flang/include/flang/Semantics/openmp-modifiers.h +++ b/flang/include/flang/Semantics/openmp-modifiers.h @@ -10,6 +10,7 @@ #define FORTRAN_SEMANTICS_OPENMP_MODIFIERS_H_ #include "flang/Common/enum-set.h" +#include "flang/Parser/characters.h" #include "flang/Parser/parse-tree.h" #include "flang/Semantics/semantics.h" #include "llvm/ADT/STLExtras.h" @@ -18,6 +19,7 @@ #include #include +#include #include #include @@ -51,6 +53,7 @@ struct OmpModifierDescriptor { // Modifier name for use in diagnostic messages. const OmpProperties &props(unsigned version) const; const OmpClauses &clauses(unsigned version) const; + unsigned since(llvm::omp::Clause id) const; const llvm::StringRef name; // Version-dependent properties of the modifier. @@ -61,16 +64,25 @@ struct OmpModifierDescriptor { template const OmpModifierDescriptor &OmpGetDescriptor(); -template <> -const OmpModifierDescriptor &OmpGetDescriptor(); -template <> -const OmpModifierDescriptor &OmpGetDescriptor(); -template <> -const OmpModifierDescriptor &OmpGetDescriptor(); -template <> -const OmpModifierDescriptor &OmpGetDescriptor(); -template <> -const OmpModifierDescriptor &OmpGetDescriptor(); +#define DECLARE_DESCRIPTOR(name) \ + template <> const OmpModifierDescriptor &OmpGetDescriptor() + +DECLARE_DESCRIPTOR(parser::OmpChunkModifier); +DECLARE_DESCRIPTOR(parser::OmpDependenceType); +DECLARE_DESCRIPTOR(parser::OmpExpectation); +DECLARE_DESCRIPTOR(parser::OmpIterator); +DECLARE_DESCRIPTOR(parser::OmpLinearModifier); +DECLARE_DESCRIPTOR(parser::OmpMapper); +DECLARE_DESCRIPTOR(parser::OmpMapType); +DECLARE_DESCRIPTOR(parser::OmpMapTypeModifier); +DECLARE_DESCRIPTOR(parser::OmpOrderModifier); +DECLARE_DESCRIPTOR(parser::OmpOrderingModifier); +DECLARE_DESCRIPTOR(parser::OmpReductionIdentifier); +DECLARE_DESCRIPTOR(parser::OmpReductionModifier); +DECLARE_DESCRIPTOR(parser::OmpTaskDependenceType); +DECLARE_DESCRIPTOR(parser::OmpVariableCategory); + +#undef DECLARE_DESCRIPTOR // Explanation of terminology: // @@ -84,7 +96,7 @@ const OmpModifierDescriptor &OmpGetDescriptor(); // std::tuple>, ...> t; // }; // -// The Speficic1, etc. refer to parser classes that represent modifiers, +// The Specific1, etc. refer to parser classes that represent modifiers, // e.g. OmpIterator or OmpTaskDependenceType. The Variant type contains // all modifiers that are allowed for a given clause. The Modifier class // is there to wrap the variant into the form that the parse tree visitor @@ -138,39 +150,110 @@ typename std::list::const_iterator findInRange( } } // namespace detail -/// Finds the entry in the list that holds the `SpecificTy` alternative, +/// Finds the first entry in the list that holds the `SpecificTy` alternative, /// and returns the pointer to that alternative. If such an entry does not /// exist, it returns nullptr. -/// The list is assumed to contain at most one such item, with a check -/// whether the condition is met. -/// This function should only be called after the verification of modifier -/// properties has been performed, since it will assert if multiple items -/// are found. template const SpecificTy *OmpGetUniqueModifier( const std::optional> &modifiers) { const SpecificTy *found{nullptr}; if (modifiers) { auto end{modifiers->cend()}; - // typename std::list::iterator end{modifiers->end()}; auto at{detail::findInRange(modifiers->cbegin(), end)}; if (at != end) { found = &std::get(at->u); -#ifndef NDEBUG - auto another{ - detail::findInRange(std::next(at), end)}; - assert(another == end && "repeated modifier"); -#endif } } return found; } +template struct OmpSpecificModifierIterator { + using VectorTy = std::vector; + OmpSpecificModifierIterator( + std::shared_ptr list, typename VectorTy::const_iterator where) + : specificList(list), at(where) {} + + OmpSpecificModifierIterator &operator++() { + ++at; + return *this; + } + // OmpSpecificModifierIterator &operator++(int); + OmpSpecificModifierIterator &operator--() { + --at; + return *this; + } + // OmpSpecificModifierIterator &operator--(int); + + const SpecificTy *operator*() const { return *at; } + bool operator==(const OmpSpecificModifierIterator &other) const { + assert(specificList.get() == other.specificList.get() && + "comparing unrelated iterators"); + return at == other.at; + } + bool operator!=(const OmpSpecificModifierIterator &other) const { + return !(*this == other); + } + +private: + std::shared_ptr specificList; + typename VectorTy::const_iterator at; +}; + +template +llvm::iterator_range> +OmpGetRepeatableModifier(const std::optional> &modifiers) { + using VectorTy = std::vector; + std::shared_ptr items(new VectorTy); + if (modifiers) { + for (auto &m : *modifiers) { + if (auto *s = std::get_if(&m.u)) { + items->push_back(s); + } + } + } + return llvm::iterator_range( + OmpSpecificModifierIterator(items, items->begin()), + OmpSpecificModifierIterator(items, items->end())); +} + +template +llvm::iterator_range> +OmpGetRepeatableModifier(std::optional> &&) = delete; + namespace detail { template constexpr const T *make_nullptr() { return static_cast(nullptr); } +/// Verify that all modifiers are allowed in the given OpenMP version. +template +bool verifyVersions(const std::optional> &modifiers, + llvm::omp::Clause id, parser::CharBlock clauseSource, + SemanticsContext &semaCtx) { + if (!modifiers) { + return true; + } + unsigned version{semaCtx.langOptions().OpenMPVersion}; + bool result{true}; + for (auto &m : *modifiers) { + const OmpModifierDescriptor &desc{OmpGetDescriptor(m)}; + unsigned since{desc.since(id)}; + if (since == ~0u) { + // This shouldn't really happen, but have it just in case. + semaCtx.Say(m.source, + "'%s' modifier is not supported on %s clause"_err_en_US, + desc.name.str(), + parser::ToUpperCaseLetters(llvm::omp::getOpenMPClauseName(id))); + } else if (version < since) { + semaCtx.Say(m.source, + "'%s' modifier is not supported in OpenMP v%d.%d, try -fopenmp-version=%d"_warn_en_US, + desc.name.str(), version / 10, version % 10, since); + result = false; + } + } + return result; +} + /// Helper function for verifying the Required property: /// For a specific SpecificTy, if SpecificTy is has the Required property, /// check if the list has an item that holds SpecificTy as an alternative. @@ -191,7 +274,7 @@ bool verifyIfRequired(const SpecificTy *, }); if (!present) { semaCtx.Say( - clauseSource, "A %s modifier is required"_err_en_US, desc.name.str()); + clauseSource, "'%s' modifier is required"_err_en_US, desc.name.str()); } return present; } @@ -214,7 +297,8 @@ bool verifyRequiredPack(const std::optional> &modifiers, /// list is valid, or false otherwise. template bool verifyRequired(const std::optional> &modifiers, - parser::CharBlock clauseSource, SemanticsContext &semaCtx) { + llvm::omp::Clause id, parser::CharBlock clauseSource, + SemanticsContext &semaCtx) { using VariantTy = typename UnionTy::Variant; return verifyRequiredPack(modifiers, clauseSource, semaCtx, std::make_index_sequence>{}); @@ -243,7 +327,8 @@ bool verifyIfUnique(const SpecificTy *, auto next{ detail::findInRange(std::next(specific), end)}; if (next != end) { - semaCtx.Say(next->source, "A %s cannot occur multiple times"_err_en_US, + semaCtx.Say(next->source, + "'%s' modifier cannot occur multiple times"_err_en_US, desc.name.str()); } } @@ -254,7 +339,8 @@ bool verifyIfUnique(const SpecificTy *, /// list is valid, or false otherwise. template bool verifyUnique(const std::optional> &modifiers, - parser::CharBlock clauseSource, SemanticsContext &semaCtx) { + llvm::omp::Clause id, parser::CharBlock clauseSource, + SemanticsContext &semaCtx) { if (!modifiers) { return true; } @@ -274,7 +360,8 @@ bool verifyUnique(const std::optional> &modifiers, /// list is valid, or false otherwise. template bool verifyUltimate(const std::optional> &modifiers, - parser::CharBlock clauseSource, SemanticsContext &semaCtx) { + llvm::omp::Clause id, parser::CharBlock clauseSource, + SemanticsContext &semaCtx) { if (!modifiers || modifiers->size() <= 1) { return true; } @@ -304,8 +391,8 @@ bool verifyUltimate(const std::optional> &modifiers, } llvm::StringRef where{isPre ? "last" : "first"}; semaCtx.Say(it->source, - "The %s should be the %s modifier"_err_en_US, - desc.name.str(), where.str()); + "'%s' should be the %s modifier"_err_en_US, desc.name.str(), + where.str()); return false; } return true; @@ -320,7 +407,8 @@ bool verifyUltimate(const std::optional> &modifiers, /// list is valid, or false otherwise. template bool verifyExclusive(const std::optional> &modifiers, - parser::CharBlock clauseSource, SemanticsContext &semaCtx) { + llvm::omp::Clause id, parser::CharBlock clauseSource, + SemanticsContext &semaCtx) { if (!modifiers || modifiers->size() <= 1) { return true; } @@ -335,11 +423,11 @@ bool verifyExclusive(const std::optional> &modifiers, const OmpModifierDescriptor &descExcl{OmpGetDescriptor(excl)}; const OmpModifierDescriptor &descOther{OmpGetDescriptor(other)}; parser::MessageFormattedText txt( - "An exclusive %s cannot be specified together with a modifier of a different type"_err_en_US, + "An exclusive '%s' modifier cannot be specified together with a modifier of a different type"_err_en_US, descExcl.name.str()); parser::Message message(excl.source, txt); message.Attach( - other.source, "%s provided here"_en_US, descOther.name.str()); + other.source, "'%s' provided here"_en_US, descOther.name.str()); semaCtx.Say(std::move(message)); }}; @@ -377,14 +465,16 @@ bool verifyExclusive(const std::optional> &modifiers, } // namespace detail template -bool OmpVerifyModifiers(const ClauseTy &clause, parser::CharBlock clauseSource, - SemanticsContext &semaCtx) { +bool OmpVerifyModifiers(const ClauseTy &clause, llvm::omp::Clause id, + parser::CharBlock clauseSource, SemanticsContext &semaCtx) { auto &modifiers{OmpGetModifiers(clause)}; - bool result{detail::verifyRequired(modifiers, clauseSource, semaCtx)}; - result = detail::verifyUnique(modifiers, clauseSource, semaCtx) && result; - result = detail::verifyUltimate(modifiers, clauseSource, semaCtx) && result; - result = detail::verifyExclusive(modifiers, clauseSource, semaCtx) && result; - return result; + bool results[]{// + detail::verifyVersions(modifiers, id, clauseSource, semaCtx), + detail::verifyRequired(modifiers, id, clauseSource, semaCtx), + detail::verifyUnique(modifiers, id, clauseSource, semaCtx), + detail::verifyUltimate(modifiers, id, clauseSource, semaCtx), + detail::verifyExclusive(modifiers, id, clauseSource, semaCtx)}; + return llvm::all_of(results, [](bool x) { return x; }); } } // namespace Fortran::semantics diff --git a/flang/lib/Evaluate/fold-matmul.h b/flang/lib/Evaluate/fold-matmul.h index be9c547d45286..c3d65a9040909 100644 --- a/flang/lib/Evaluate/fold-matmul.h +++ b/flang/lib/Evaluate/fold-matmul.h @@ -61,7 +61,7 @@ static Expr FoldMatmul(FoldingContext &context, FunctionRef &&funcRef) { auto product{aElt.Multiply(bElt)}; overflow |= product.flags.test(RealFlag::Overflow); if constexpr (useKahanSummation) { - auto next{correction.Add(product.value, rounding)}; + auto next{product.value.Subtract(correction, rounding)}; overflow |= next.flags.test(RealFlag::Overflow); auto added{sum.Add(next.value, rounding)}; overflow |= added.flags.test(RealFlag::Overflow); diff --git a/flang/lib/Evaluate/fold-real.cpp b/flang/lib/Evaluate/fold-real.cpp index 0b79a417942a4..6fb5249c8a5e2 100644 --- a/flang/lib/Evaluate/fold-real.cpp +++ b/flang/lib/Evaluate/fold-real.cpp @@ -78,7 +78,7 @@ template class Norm2Accumulator { auto scaled{item.Divide(scale).value}; auto square{scaled.Multiply(scaled).value}; if constexpr (useKahanSummation) { - auto next{square.Add(correction_, rounding_)}; + auto next{square.Subtract(correction_, rounding_)}; overflow_ |= next.flags.test(RealFlag::Overflow); auto sum{element.Add(next.value, rounding_)}; overflow_ |= sum.flags.test(RealFlag::Overflow); diff --git a/flang/lib/Evaluate/fold-reduction.h b/flang/lib/Evaluate/fold-reduction.h index 8ca0794ab0fc7..b1b81d8740d3f 100644 --- a/flang/lib/Evaluate/fold-reduction.h +++ b/flang/lib/Evaluate/fold-reduction.h @@ -47,7 +47,7 @@ static Expr FoldDotProduct( const auto &rounding{context.targetCharacteristics().roundingMode()}; for (const Element &x : cProducts.values()) { if constexpr (useKahanSummation) { - auto next{correction.Add(x, rounding)}; + auto next{x.Subtract(correction, rounding)}; overflow |= next.flags.test(RealFlag::Overflow); auto added{sum.Add(next.value, rounding)}; overflow |= added.flags.test(RealFlag::Overflow); @@ -90,7 +90,7 @@ static Expr FoldDotProduct( const auto &rounding{context.targetCharacteristics().roundingMode()}; for (const Element &x : cProducts.values()) { if constexpr (useKahanSummation) { - auto next{correction.Add(x, rounding)}; + auto next{x.Subtract(correction, rounding)}; overflow |= next.flags.test(RealFlag::Overflow); auto added{sum.Add(next.value, rounding)}; overflow |= added.flags.test(RealFlag::Overflow); @@ -348,7 +348,7 @@ template class SumAccumulator { overflow_ |= sum.overflow; element = sum.value; } else { // Real & Complex: use Kahan summation - auto next{array_.At(at).Add(correction_, rounding_)}; + auto next{array_.At(at).Subtract(correction_, rounding_)}; overflow_ |= next.flags.test(RealFlag::Overflow); auto sum{element.Add(next.value, rounding_)}; overflow_ |= sum.flags.test(RealFlag::Overflow); diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp index 1214a2ea6bf1f..0b79c95eade0d 100644 --- a/flang/lib/Frontend/CompilerInvocation.cpp +++ b/flang/lib/Frontend/CompilerInvocation.cpp @@ -634,6 +634,8 @@ static bool parseFrontendArgs(FrontendOptions &opts, llvm::opt::ArgList &args, opts.outputFile = args.getLastArgValue(clang::driver::options::OPT_o); opts.showHelp = args.hasArg(clang::driver::options::OPT_help); opts.showVersion = args.hasArg(clang::driver::options::OPT_version); + opts.printSupportedCPUs = + args.hasArg(clang::driver::options::OPT_print_supported_cpus); // Get the input kind (from the value passed via `-x`) InputKind dashX(Language::Unknown); diff --git a/flang/lib/Lower/OpenMP/ClauseProcessor.cpp b/flang/lib/Lower/OpenMP/ClauseProcessor.cpp index 0f2e849c2c6a0..6baa22a44eafb 100644 --- a/flang/lib/Lower/OpenMP/ClauseProcessor.cpp +++ b/flang/lib/Lower/OpenMP/ClauseProcessor.cpp @@ -1000,7 +1000,7 @@ bool ClauseProcessor::processMap( const parser::CharBlock &source) { using Map = omp::clause::Map; mlir::Location clauseLocation = converter.genLocation(source); - const auto &mapType = std::get>(clause.t); + const auto &[mapType, typeMods, mappers, iterator, objects] = clause.t; llvm::omp::OpenMPOffloadMappingFlags mapTypeBits = llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_NONE; // If the map type is specified, then process it else Tofrom is the @@ -1029,13 +1029,11 @@ bool ClauseProcessor::processMap( mapTypeBits |= llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_DELETE; } - auto &modTypeMods = - std::get>(clause.t); - if (modTypeMods) { - if (llvm::is_contained(*modTypeMods, Map::MapTypeModifier::Always)) + if (typeMods) { + if (llvm::is_contained(*typeMods, Map::MapTypeModifier::Always)) mapTypeBits |= llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_ALWAYS; // Diagnose unimplemented map-type-modifiers. - if (llvm::any_of(*modTypeMods, [](Map::MapTypeModifier m) { + if (llvm::any_of(*typeMods, [](Map::MapTypeModifier m) { return m != Map::MapTypeModifier::Always; })) { TODO(currentLocation, "Map type modifiers (other than 'ALWAYS')" @@ -1043,10 +1041,14 @@ bool ClauseProcessor::processMap( } } - if (std::get>(clause.t)) { + if (iterator) { TODO(currentLocation, "Support for iterator modifiers is not implemented yet"); } + if (mappers) { + TODO(currentLocation, + "Support for mapper modifiers is not implemented yet"); + } processMapObjects(stmtCtx, clauseLocation, std::get(clause.t), mapTypeBits, diff --git a/flang/lib/Lower/OpenMP/Clauses.cpp b/flang/lib/Lower/OpenMP/Clauses.cpp index eddc742d4c095..bf20f42bdecaf 100644 --- a/flang/lib/Lower/OpenMP/Clauses.cpp +++ b/flang/lib/Lower/OpenMP/Clauses.cpp @@ -13,6 +13,7 @@ #include "flang/Optimizer/Builder/Todo.h" #include "flang/Parser/parse-tree.h" #include "flang/Semantics/expression.h" +#include "flang/Semantics/openmp-modifiers.h" #include "flang/Semantics/symbol.h" #include "llvm/Frontend/OpenMP/OMPConstants.h" @@ -572,7 +573,8 @@ Defaultmap make(const parser::OmpClause::Defaultmap &inp, ); CLAUSET_ENUM_CONVERT( // - convert2, wrapped::VariableCategory, Defaultmap::VariableCategory, + convert2, parser::OmpVariableCategory::Value, + Defaultmap::VariableCategory, // clang-format off MS(Aggregate, Aggregate) MS(All, All) @@ -582,10 +584,11 @@ Defaultmap make(const parser::OmpClause::Defaultmap &inp, // clang-format on ); + auto &mods = semantics::OmpGetModifiers(inp.v); auto &t0 = std::get(inp.v.t); - auto &t1 = std::get>(inp.v.t); + auto *t1 = semantics::OmpGetUniqueModifier(mods); - auto category = t1 ? convert2(*t1) : Defaultmap::VariableCategory::All; + auto category = t1 ? convert2(t1->v) : Defaultmap::VariableCategory::All; return Defaultmap{{/*ImplicitBehavior=*/convert1(t0), /*VariableCategory=*/category}}; } @@ -761,37 +764,35 @@ Firstprivate make(const parser::OmpClause::Firstprivate &inp, From make(const parser::OmpClause::From &inp, semantics::SemanticsContext &semaCtx) { // inp.v -> parser::OmpFromClause - using wrapped = parser::OmpFromClause; - CLAUSET_ENUM_CONVERT( // - convert, parser::OmpFromClause::Expectation, From::Expectation, + convert, parser::OmpExpectation::Value, From::Expectation, // clang-format off MS(Present, Present) // clang-format on ); - auto &t0 = std::get>>(inp.v.t); - auto &t1 = std::get>>(inp.v.t); - auto &t2 = std::get(inp.v.t); - - assert((!t0 || t0->size() == 1) && "Only one expectation modifier allowed"); - assert((!t1 || t1->size() == 1) && "Only one iterator modifier allowed"); + auto &mods = semantics::OmpGetModifiers(inp.v); + auto *t0 = semantics::OmpGetUniqueModifier(mods); + auto *t1 = semantics::OmpGetUniqueModifier(mods); + auto *t2 = semantics::OmpGetUniqueModifier(mods); + auto &t3 = std::get(inp.v.t); - auto expectation = [&]() -> std::optional { - if (t0) - return convert(t0->front()); + auto mappers = [&]() -> std::optional> { + if (t1) + return List{Mapper{makeObject(t1->v, semaCtx)}}; return std::nullopt; }(); auto iterator = [&]() -> std::optional { - if (t1) - return makeIterator(t1->front(), semaCtx); + if (t2) + return makeIterator(*t2, semaCtx); return std::nullopt; }(); - return From{{/*Expectation=*/std::move(expectation), /*Mapper=*/std::nullopt, + return From{{/*Expectation=*/maybeApplyToV(convert, t0), + /*Mappers=*/std::move(mappers), /*Iterator=*/std::move(iterator), - /*LocatorList=*/makeObjects(t2, semaCtx)}}; + /*LocatorList=*/makeObjects(t3, semaCtx)}}; } // Full: empty @@ -960,10 +961,8 @@ Link make(const parser::OmpClause::Link &inp, Map make(const parser::OmpClause::Map &inp, semantics::SemanticsContext &semaCtx) { // inp.v -> parser::OmpMapClause - using wrapped = parser::OmpMapClause; - CLAUSET_ENUM_CONVERT( // - convert1, parser::OmpMapClause::Type, Map::MapType, + convert1, parser::OmpMapType::Value, Map::MapType, // clang-format off MS(Alloc, Alloc) MS(Delete, Delete) @@ -975,7 +974,7 @@ Map make(const parser::OmpClause::Map &inp, ); CLAUSET_ENUM_CONVERT( // - convert2, parser::OmpMapClause::TypeModifier, Map::MapTypeModifier, + convert2, parser::OmpMapTypeModifier::Value, Map::MapTypeModifier, // clang-format off MS(Always, Always) MS(Close, Close) @@ -984,42 +983,43 @@ Map make(const parser::OmpClause::Map &inp, // clang-format on ); - auto &t0 = std::get>>(inp.v.t); - auto &t1 = std::get>>(inp.v.t); - auto &t2 = std::get>>(inp.v.t); - auto &t3 = std::get(inp.v.t); - auto &t4 = std::get(inp.v.t); - - if (t4.v) - TODO_NOLOC("OmpMapClause(MAPPER(...)): user defined mapper not supported"); + auto &mods = semantics::OmpGetModifiers(inp.v); + auto *t1 = semantics::OmpGetUniqueModifier(mods); + auto *t2 = semantics::OmpGetUniqueModifier(mods); + auto *t3 = semantics::OmpGetUniqueModifier(mods); + auto &t4 = std::get(inp.v.t); - // These should have been diagnosed already. - assert((!t1 || t1->size() == 1) && "Only one iterator modifier is allowed"); - assert((!t2 || t2->size() == 1) && "Only one map type is allowed"); + auto mappers = [&]() -> std::optional> { + if (t1) + return List{Mapper{makeObject(t1->v, semaCtx)}}; + return std::nullopt; + }(); auto iterator = [&]() -> std::optional { - if (t1) - return makeIterator(t1->front(), semaCtx); + if (t2) + return makeIterator(*t2, semaCtx); return std::nullopt; }(); - std::optional maybeType; - if (t2) - maybeType = maybeApply(convert1, std::optional(t2->front())); + auto type = [&]() -> std::optional { + if (t3) + return convert1(t3->v); + return Map::MapType::Tofrom; + }(); - std::optional maybeTypeMods = maybeApply( - [&](const std::list &typeMods) { - Map::MapTypeModifiers mods; - for (wrapped::TypeModifier mod : typeMods) - mods.push_back(convert2(mod)); - return mods; - }, - t0); + Map::MapTypeModifiers typeMods; + for (auto *typeMod : + semantics::OmpGetRepeatableModifier(mods)) { + typeMods.push_back(convert2(typeMod->v)); + } + std::optional maybeTypeMods{}; + if (!typeMods.empty()) + maybeTypeMods = std::move(typeMods); - return Map{{/*MapType=*/maybeType, - /*MapTypeModifiers=*/maybeTypeMods, - /*Mapper=*/std::nullopt, /*Iterator=*/std::move(iterator), - /*LocatorList=*/makeObjects(t3, semaCtx)}}; + return Map{{/*MapType=*/std::move(type), + /*MapTypeModifiers=*/std::move(maybeTypeMods), + /*Mapper=*/std::move(mappers), /*Iterator=*/std::move(iterator), + /*LocatorList=*/makeObjects(t4, semaCtx)}}; } // Match: incomplete @@ -1106,7 +1106,7 @@ Order make(const parser::OmpClause::Order &inp, using wrapped = parser::OmpOrderClause; CLAUSET_ENUM_CONVERT( // - convert1, parser::OmpOrderModifier::Kind, Order::OrderModifier, + convert1, parser::OmpOrderModifier::Value, Order::OrderModifier, // clang-format off MS(Reproducible, Reproducible) MS(Unconstrained, Unconstrained) @@ -1114,20 +1114,18 @@ Order make(const parser::OmpClause::Order &inp, ); CLAUSET_ENUM_CONVERT( // - convert2, wrapped::Type, Order::Ordering, + convert2, wrapped::Ordering, Order::Ordering, // clang-format off MS(Concurrent, Concurrent) // clang-format on ); - auto &t0 = std::get>(inp.v.t); - auto &t1 = std::get(inp.v.t); + auto &mods = semantics::OmpGetModifiers(inp.v); + auto *t0 = semantics::OmpGetUniqueModifier(mods); + auto &t1 = std::get(inp.v.t); - auto convert3 = [&](const parser::OmpOrderModifier &s) { - return convert1(s.v); - }; - return Order{ - {/*OrderModifier=*/maybeApply(convert3, t0), /*Ordering=*/convert2(t1)}}; + return Order{{/*OrderModifier=*/maybeApplyToV(convert1, t0), + /*Ordering=*/convert2(t1)}}; } Ordered make(const parser::OmpClause::Ordered &inp, @@ -1178,10 +1176,9 @@ ProcBind make(const parser::OmpClause::ProcBind &inp, Reduction make(const parser::OmpClause::Reduction &inp, semantics::SemanticsContext &semaCtx) { // inp.v -> parser::OmpReductionClause - using wrapped = parser::OmpReductionClause; - CLAUSET_ENUM_CONVERT( // - convert, wrapped::ReductionModifier, Reduction::ReductionModifier, + convert, parser::OmpReductionModifier::Value, + Reduction::ReductionModifier, // clang-format off MS(Inscan, Inscan) MS(Task, Task) @@ -1189,16 +1186,17 @@ Reduction make(const parser::OmpClause::Reduction &inp, // clang-format on ); - auto &t0 = - std::get>( - inp.v.t); - auto &t1 = std::get(inp.v.t); + auto &mods = semantics::OmpGetModifiers(inp.v); + auto *t0 = + semantics::OmpGetUniqueModifier(mods); + auto *t1 = + semantics::OmpGetUniqueModifier(mods); auto &t2 = std::get(inp.v.t); + assert(t1 && "OmpReductionIdentifier is required"); + return Reduction{ - {/*ReductionModifier=*/t0 - ? std::make_optional(convert(*t0)) - : std::nullopt, - /*ReductionIdentifiers=*/{makeReductionOperator(t1, semaCtx)}, + {/*ReductionModifier=*/maybeApplyToV(convert, t0), + /*ReductionIdentifiers=*/{makeReductionOperator(*t1, semaCtx)}, /*List=*/makeObjects(t2, semaCtx)}}; } @@ -1218,7 +1216,7 @@ Schedule make(const parser::OmpClause::Schedule &inp, using wrapped = parser::OmpScheduleClause; CLAUSET_ENUM_CONVERT( // - convert1, wrapped::ScheduleType, Schedule::Kind, + convert1, wrapped::Kind, Schedule::Kind, // clang-format off MS(Static, Static) MS(Dynamic, Dynamic) @@ -1229,8 +1227,7 @@ Schedule make(const parser::OmpClause::Schedule &inp, ); CLAUSET_ENUM_CONVERT( // - convert2, parser::OmpScheduleModifierType::ModType, - Schedule::OrderingModifier, + convert2, parser::OmpOrderingModifier::Value, Schedule::OrderingModifier, // clang-format off MS(Monotonic, Monotonic) MS(Nonmonotonic, Nonmonotonic) @@ -1238,48 +1235,22 @@ Schedule make(const parser::OmpClause::Schedule &inp, ); CLAUSET_ENUM_CONVERT( // - convert3, parser::OmpScheduleModifierType::ModType, - Schedule::ChunkModifier, + convert3, parser::OmpChunkModifier::Value, Schedule::ChunkModifier, // clang-format off MS(Simd, Simd) // clang-format on ); - auto &t0 = std::get>(inp.v.t); - auto &t1 = std::get(inp.v.t); - auto &t2 = std::get>(inp.v.t); - - if (!t0) { - return Schedule{{/*Kind=*/convert1(t1), /*OrderingModifier=*/std::nullopt, - /*ChunkModifier=*/std::nullopt, - /*ChunkSize=*/maybeApply(makeExprFn(semaCtx), t2)}}; - } - - // The members of parser::OmpScheduleModifier correspond to OrderingModifier, - // and ChunkModifier, but they can appear in any order. - auto &m1 = std::get(t0->t); - auto &m2 = - std::get>(t0->t); - - std::optional omod; - std::optional cmod; - - if (m1.v.v == parser::OmpScheduleModifierType::ModType::Simd) { - // m1 is chunk-modifier - cmod = convert3(m1.v.v); - if (m2) - omod = convert2(m2->v.v); - } else { - // m1 is ordering-modifier - omod = convert2(m1.v.v); - if (m2) - cmod = convert3(m2->v.v); - } + auto &mods = semantics::OmpGetModifiers(inp.v); + auto *t0 = semantics::OmpGetUniqueModifier(mods); + auto *t1 = semantics::OmpGetUniqueModifier(mods); + auto &t2 = std::get(inp.v.t); + auto &t3 = std::get>(inp.v.t); - return Schedule{{/*Kind=*/convert1(t1), - /*OrderingModifier=*/omod, - /*ChunkModifier=*/cmod, - /*ChunkSize=*/maybeApply(makeExprFn(semaCtx), t2)}}; + return Schedule{{/*Kind=*/convert1(t2), + /*OrderingModifier=*/maybeApplyToV(convert2, t0), + /*ChunkModifier=*/maybeApplyToV(convert3, t1), + /*ChunkSize=*/maybeApply(makeExprFn(semaCtx), t3)}}; } // SeqCst: empty @@ -1319,10 +1290,14 @@ Permutation make(const parser::OmpClause::Permutation &inp, TaskReduction make(const parser::OmpClause::TaskReduction &inp, semantics::SemanticsContext &semaCtx) { // inp.v -> parser::OmpReductionClause - auto &t0 = std::get(inp.v.t); + auto &mods = semantics::OmpGetModifiers(inp.v); + auto *t0 = + semantics::OmpGetUniqueModifier(mods); auto &t1 = std::get(inp.v.t); + assert(t0 && "OmpReductionIdentifier is required"); + return TaskReduction{ - {/*ReductionIdentifiers=*/{makeReductionOperator(t0, semaCtx)}, + {/*ReductionIdentifiers=*/{makeReductionOperator(*t0, semaCtx)}, /*List=*/makeObjects(t1, semaCtx)}}; } @@ -1338,37 +1313,35 @@ ThreadLimit make(const parser::OmpClause::ThreadLimit &inp, To make(const parser::OmpClause::To &inp, semantics::SemanticsContext &semaCtx) { // inp.v -> parser::OmpToClause - using wrapped = parser::OmpToClause; - CLAUSET_ENUM_CONVERT( // - convert, parser::OmpToClause::Expectation, To::Expectation, + convert, parser::OmpExpectation::Value, To::Expectation, // clang-format off MS(Present, Present) // clang-format on ); - auto &t0 = std::get>>(inp.v.t); - auto &t1 = std::get>>(inp.v.t); - auto &t2 = std::get(inp.v.t); - - assert((!t0 || t0->size() == 1) && "Only one expectation modifier allowed"); - assert((!t1 || t1->size() == 1) && "Only one iterator modifier allowed"); + auto &mods = semantics::OmpGetModifiers(inp.v); + auto *t0 = semantics::OmpGetUniqueModifier(mods); + auto *t1 = semantics::OmpGetUniqueModifier(mods); + auto *t2 = semantics::OmpGetUniqueModifier(mods); + auto &t3 = std::get(inp.v.t); - auto expectation = [&]() -> std::optional { - if (t0) - return convert(t0->front()); + auto mappers = [&]() -> std::optional> { + if (t1) + return List{Mapper{makeObject(t1->v, semaCtx)}}; return std::nullopt; }(); auto iterator = [&]() -> std::optional { - if (t1) - return makeIterator(t1->front(), semaCtx); + if (t2) + return makeIterator(*t2, semaCtx); return std::nullopt; }(); - return To{{/*Expectation=*/std::move(expectation), /*Mapper=*/std::nullopt, + return To{{/*Expectation=*/maybeApplyToV(convert, t0), + /*Mappers=*/{std::move(mappers)}, /*Iterator=*/std::move(iterator), - /*LocatorList=*/makeObjects(t2, semaCtx)}}; + /*LocatorList=*/makeObjects(t3, semaCtx)}}; } // UnifiedAddress: empty diff --git a/flang/lib/Lower/OpenMP/Clauses.h b/flang/lib/Lower/OpenMP/Clauses.h index ada50e0488837..5fac5c2271c3b 100644 --- a/flang/lib/Lower/OpenMP/Clauses.h +++ b/flang/lib/Lower/OpenMP/Clauses.h @@ -150,7 +150,17 @@ std::optional maybeApply(FuncTy &&func, const std::optional &arg) { if (!arg) return std::nullopt; - return std::move(func(*arg)); + return func(*arg); +} + +template < + typename FuncTy, // + typename ArgTy, // + typename ResultTy = std::invoke_result_t> +std::optional maybeApplyToV(FuncTy &&func, const ArgTy *arg) { + if (!arg) + return std::nullopt; + return func(arg->v); } std::optional getBaseObject(const Object &object, @@ -158,6 +168,7 @@ std::optional getBaseObject(const Object &object, namespace clause { using Range = tomp::type::RangeT; +using Mapper = tomp::type::MapperT; using Iterator = tomp::type::IteratorT; using IteratorSpecifier = tomp::type::IteratorSpecifierT; using DefinedOperator = tomp::type::DefinedOperatorT; diff --git a/flang/lib/Optimizer/CodeGen/Target.cpp b/flang/lib/Optimizer/CodeGen/Target.cpp index 9ec055b1aecab..9ec1655d92f44 100644 --- a/flang/lib/Optimizer/CodeGen/Target.cpp +++ b/flang/lib/Optimizer/CodeGen/Target.cpp @@ -825,6 +825,97 @@ struct TargetAArch64 : public GenericTarget { } return marshal; } + + // Flatten a RecordType::TypeList containing more record types or array types + static std::optional> + flattenTypeList(const RecordType::TypeList &types) { + std::vector flatTypes; + // The flat list will be at least the same size as the non-flat list. + flatTypes.reserve(types.size()); + for (auto [c, type] : types) { + // Flatten record type + if (auto recTy = mlir::dyn_cast(type)) { + auto subTypeList = flattenTypeList(recTy.getTypeList()); + if (!subTypeList) + return std::nullopt; + llvm::copy(*subTypeList, std::back_inserter(flatTypes)); + continue; + } + + // Flatten array type + if (auto seqTy = mlir::dyn_cast(type)) { + if (seqTy.hasDynamicExtents()) + return std::nullopt; + std::size_t n = seqTy.getConstantArraySize(); + auto eleTy = seqTy.getElementType(); + // Flatten array of record types + if (auto recTy = mlir::dyn_cast(eleTy)) { + auto subTypeList = flattenTypeList(recTy.getTypeList()); + if (!subTypeList) + return std::nullopt; + for (std::size_t i = 0; i < n; ++i) + llvm::copy(*subTypeList, std::back_inserter(flatTypes)); + } else { + std::fill_n(std::back_inserter(flatTypes), + seqTy.getConstantArraySize(), eleTy); + } + continue; + } + + // Other types are already flat + flatTypes.push_back(type); + } + return flatTypes; + } + + // Determine if the type is a Homogenous Floating-point Aggregate (HFA). An + // HFA is a record type with up to 4 floating-point members of the same type. + static bool isHFA(fir::RecordType ty) { + RecordType::TypeList types = ty.getTypeList(); + if (types.empty() || types.size() > 4) + return false; + + std::optional> flatTypes = flattenTypeList(types); + if (!flatTypes || flatTypes->size() > 4) { + return false; + } + + if (!isa_real(flatTypes->front())) { + return false; + } + + return llvm::all_equal(*flatTypes); + } + + // AArch64 procedure call ABI: + // https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst#parameter-passing + CodeGenSpecifics::Marshalling + structReturnType(mlir::Location loc, fir::RecordType ty) const override { + CodeGenSpecifics::Marshalling marshal; + + if (isHFA(ty)) { + // Just return the existing record type + marshal.emplace_back(ty, AT{}); + return marshal; + } + + auto [size, align] = + fir::getTypeSizeAndAlignmentOrCrash(loc, ty, getDataLayout(), kindMap); + + // return in registers if size <= 16 bytes + if (size <= 16) { + std::size_t dwordSize = (size + 7) / 8; + auto newTy = fir::SequenceType::get( + dwordSize, mlir::IntegerType::get(ty.getContext(), 64)); + marshal.emplace_back(newTy, AT{}); + return marshal; + } + + unsigned short stackAlign = std::max(align, 8u); + marshal.emplace_back(fir::ReferenceType::get(ty), + AT{stackAlign, false, true}); + return marshal; + } }; } // namespace diff --git a/flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp b/flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp index 07794828fce26..1848dbe2c7a2c 100644 --- a/flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp +++ b/flang/lib/Optimizer/HLFIR/Transforms/BufferizeHLFIR.cpp @@ -26,6 +26,7 @@ #include "flang/Optimizer/HLFIR/HLFIRDialect.h" #include "flang/Optimizer/HLFIR/HLFIROps.h" #include "flang/Optimizer/HLFIR/Passes.h" +#include "flang/Optimizer/OpenMP/Passes.h" #include "mlir/Dialect/OpenMP/OpenMPDialect.h" #include "mlir/IR/Dominance.h" #include "mlir/IR/PatternMatch.h" @@ -792,7 +793,8 @@ struct ElementalOpConversion // Generate a loop nest looping around the fir.elemental shape and clone // fir.elemental region inside the inner loop. hlfir::LoopNest loopNest = - hlfir::genLoopNest(loc, builder, extents, !elemental.isOrdered()); + hlfir::genLoopNest(loc, builder, extents, !elemental.isOrdered(), + flangomp::shouldUseWorkshareLowering(elemental)); auto insPt = builder.saveInsertionPoint(); builder.setInsertionPointToStart(loopNest.body); auto yield = hlfir::inlineElementalOp(loc, builder, elemental, diff --git a/flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt b/flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt index fa3a59303137f..d18df2ef49f10 100644 --- a/flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt +++ b/flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt @@ -24,6 +24,7 @@ add_flang_library(HLFIRTransforms FIRDialectSupport FIRSupport FIRTransforms + FlangOpenMPTransforms HLFIRDialect MLIRIR ${dialect_libs} diff --git a/flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp b/flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp index 166649d955dab..a0160b233e3cd 100644 --- a/flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp +++ b/flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp @@ -20,6 +20,7 @@ #include "flang/Optimizer/HLFIR/HLFIRDialect.h" #include "flang/Optimizer/HLFIR/HLFIROps.h" #include "flang/Optimizer/HLFIR/Passes.h" +#include "flang/Optimizer/OpenMP/Passes.h" #include "flang/Optimizer/Transforms/Utils.h" #include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/IR/Dominance.h" @@ -482,7 +483,8 @@ llvm::LogicalResult ElementalAssignBufferization::matchAndRewrite( // Generate a loop nest looping around the hlfir.elemental shape and clone // hlfir.elemental region inside the inner loop hlfir::LoopNest loopNest = - hlfir::genLoopNest(loc, builder, extents, !elemental.isOrdered()); + hlfir::genLoopNest(loc, builder, extents, !elemental.isOrdered(), + flangomp::shouldUseWorkshareLowering(elemental)); builder.setInsertionPointToStart(loopNest.body); auto yield = hlfir::inlineElementalOp(loc, builder, elemental, loopNest.oneBasedIndices); @@ -553,7 +555,8 @@ llvm::LogicalResult BroadcastAssignBufferization::matchAndRewrite( llvm::SmallVector extents = hlfir::getIndexExtents(loc, builder, shape); hlfir::LoopNest loopNest = - hlfir::genLoopNest(loc, builder, extents, /*isUnordered=*/true); + hlfir::genLoopNest(loc, builder, extents, /*isUnordered=*/true, + flangomp::shouldUseWorkshareLowering(assign)); builder.setInsertionPointToStart(loopNest.body); auto arrayElement = hlfir::getElementAt(loc, builder, lhs, loopNest.oneBasedIndices); @@ -651,7 +654,8 @@ llvm::LogicalResult VariableAssignBufferization::matchAndRewrite( llvm::SmallVector extents = hlfir::getIndexExtents(loc, builder, shape); hlfir::LoopNest loopNest = - hlfir::genLoopNest(loc, builder, extents, /*isUnordered=*/true); + hlfir::genLoopNest(loc, builder, extents, /*isUnordered=*/true, + flangomp::shouldUseWorkshareLowering(assign)); builder.setInsertionPointToStart(loopNest.body); auto rhsArrayElement = hlfir::getElementAt(loc, builder, rhs, loopNest.oneBasedIndices); diff --git a/flang/lib/Optimizer/OpenMP/LowerWorkshare.cpp b/flang/lib/Optimizer/OpenMP/LowerWorkshare.cpp index 225c585a02d91..6e130a96eb8dd 100644 --- a/flang/lib/Optimizer/OpenMP/LowerWorkshare.cpp +++ b/flang/lib/Optimizer/OpenMP/LowerWorkshare.cpp @@ -126,9 +126,9 @@ static bool mustParallelizeOp(Operation *op) { // omp.workshare.loop_wrapper {} // // Therefore, we skip if we encounter a nested omp.workshare. - if (isa(op)) + if (isa(nested)) return WalkResult::skip(); - if (isa(op)) + if (isa(nested)) return WalkResult::interrupt(); return WalkResult::advance(); }) @@ -253,8 +253,7 @@ static void parallelizeRegion(Region &sourceRegion, Region &targetRegion, // Either we have already remapped it bool remapped = rootMapping.contains(opr); // Or it is available because it dominates `sr` - bool dominates = - di.properlyDominates(opr.getDefiningOp(), &*sr.begin); + bool dominates = di.properlyDominates(opr, &*sr.begin); return remapped || dominates; })) { // Safe to parallelize operations which have all operands available in @@ -405,7 +404,7 @@ static void parallelizeRegion(Region &sourceRegion, Region &targetRegion, if (sourceRegion.hasOneBlock()) { handleOneBlock(sourceRegion.front()); - } else { + } else if (!sourceRegion.empty()) { auto &domTree = di.getDomTree(&sourceRegion); for (auto node : llvm::breadth_first(domTree.getRootNode())) { handleOneBlock(*node->getBlock()); diff --git a/flang/lib/Optimizer/Transforms/CUFCommon.cpp b/flang/lib/Optimizer/Transforms/CUFCommon.cpp index 162df8f9cab9c..5b7631bbacb5f 100644 --- a/flang/lib/Optimizer/Transforms/CUFCommon.cpp +++ b/flang/lib/Optimizer/Transforms/CUFCommon.cpp @@ -7,6 +7,8 @@ //===----------------------------------------------------------------------===// #include "flang/Optimizer/Transforms/CUFCommon.h" +#include "flang/Optimizer/Dialect/CUF/CUFOps.h" +#include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/Dialect/LLVMIR/NVVMDialect.h" /// Retrieve or create the CUDA Fortran GPU module in the give in \p mod. @@ -26,3 +28,18 @@ mlir::gpu::GPUModuleOp cuf::getOrCreateGPUModule(mlir::ModuleOp mod, symTab.insert(gpuMod, insertPt); return gpuMod; } + +bool cuf::isInCUDADeviceContext(mlir::Operation *op) { + if (!op) + return false; + if (op->getParentOfType() || + op->getParentOfType()) + return true; + if (auto funcOp = op->getParentOfType()) { + if (auto cudaProcAttr = funcOp->getAttrOfType( + cuf::getProcAttrName())) { + return cudaProcAttr.getValue() != cuf::ProcAttribute::Host; + } + } + return false; +} diff --git a/flang/lib/Optimizer/Transforms/CUFOpConversion.cpp b/flang/lib/Optimizer/Transforms/CUFOpConversion.cpp index f1ebd08967b9a..5056c48c91cfa 100644 --- a/flang/lib/Optimizer/Transforms/CUFOpConversion.cpp +++ b/flang/lib/Optimizer/Transforms/CUFOpConversion.cpp @@ -155,8 +155,12 @@ static mlir::LogicalResult convertOpToCall(OpTy op, auto fTy = func.getFunctionType(); mlir::Value sourceFile = fir::factory::locationToFilename(builder, loc); - mlir::Value sourceLine = - fir::factory::locationToLineNo(builder, loc, fTy.getInput(4)); + mlir::Value sourceLine; + if constexpr (std::is_same_v) + sourceLine = fir::factory::locationToLineNo( + builder, loc, op.getSource() ? fTy.getInput(6) : fTy.getInput(5)); + else + sourceLine = fir::factory::locationToLineNo(builder, loc, fTy.getInput(4)); mlir::Value hasStat = op.getHasStat() ? builder.createBool(loc, true) : builder.createBool(loc, false); @@ -168,8 +172,30 @@ static mlir::LogicalResult convertOpToCall(OpTy op, mlir::Type boxNoneTy = fir::BoxType::get(builder.getNoneType()); errmsg = builder.create(loc, boxNoneTy).getResult(); } - llvm::SmallVector args{fir::runtime::createArguments( - builder, loc, fTy, op.getBox(), hasStat, errmsg, sourceFile, sourceLine)}; + llvm::SmallVector args; + if constexpr (std::is_same_v) { + if (op.getSource()) { + mlir::Value stream = + op.getStream() + ? op.getStream() + : builder.createIntegerConstant(loc, fTy.getInput(2), -1); + args = fir::runtime::createArguments(builder, loc, fTy, op.getBox(), + op.getSource(), stream, hasStat, + errmsg, sourceFile, sourceLine); + } else { + mlir::Value stream = + op.getStream() + ? op.getStream() + : builder.createIntegerConstant(loc, fTy.getInput(1), -1); + args = fir::runtime::createArguments(builder, loc, fTy, op.getBox(), + stream, hasStat, errmsg, sourceFile, + sourceLine); + } + } else { + args = + fir::runtime::createArguments(builder, loc, fTy, op.getBox(), hasStat, + errmsg, sourceFile, sourceLine); + } auto callOp = builder.create(loc, func, args); rewriter.replaceOp(op, callOp); return mlir::success(); @@ -182,14 +208,6 @@ struct CUFAllocateOpConversion mlir::LogicalResult matchAndRewrite(cuf::AllocateOp op, mlir::PatternRewriter &rewriter) const override { - // TODO: Allocation with source will need a new entry point in the runtime. - if (op.getSource()) - return mlir::failure(); - - // TODO: Allocation using different stream. - if (op.getStream()) - return mlir::failure(); - // TODO: Pinned is a reference to a logical value that can be set to true // when pinned allocation succeed. This will require a new entry point. if (op.getPinned()) @@ -202,18 +220,26 @@ struct CUFAllocateOpConversion if (hasDoubleDescriptors(op)) { // Allocation for module variable are done with custom runtime entry point // so the descriptors can be synchronized. - mlir::func::FuncOp func = - fir::runtime::getRuntimeFunc( - loc, builder); - return convertOpToCall(op, rewriter, func); + mlir::func::FuncOp func; + if (op.getSource()) + func = fir::runtime::getRuntimeFunc(loc, builder); + else + func = + fir::runtime::getRuntimeFunc( + loc, builder); + return convertOpToCall(op, rewriter, func); } - // Allocation for local descriptor falls back on the standard runtime - // AllocatableAllocate as the dedicated allocator is set in the descriptor - // before the call. - mlir::func::FuncOp func = - fir::runtime::getRuntimeFunc(loc, - builder); + mlir::func::FuncOp func; + if (op.getSource()) + func = + fir::runtime::getRuntimeFunc( + loc, builder); + else + func = fir::runtime::getRuntimeFunc( + loc, builder); + return convertOpToCall(op, rewriter, func); } }; @@ -236,7 +262,7 @@ struct CUFDeallocateOpConversion mlir::func::FuncOp func = fir::runtime::getRuntimeFunc( loc, builder); - return convertOpToCall(op, rewriter, func); + return convertOpToCall(op, rewriter, func); } // Deallocation for local descriptor falls back on the standard runtime diff --git a/flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp b/flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp index c61179a7460e3..d3567f453fceb 100644 --- a/flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp +++ b/flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp @@ -31,6 +31,7 @@ #include "flang/Optimizer/Dialect/FIRType.h" #include "flang/Optimizer/Dialect/Support/FIRContext.h" #include "flang/Optimizer/HLFIR/HLFIRDialect.h" +#include "flang/Optimizer/Transforms/CUFCommon.h" #include "flang/Optimizer/Transforms/Passes.h" #include "flang/Optimizer/Transforms/Utils.h" #include "flang/Runtime/entry-names.h" @@ -1276,6 +1277,8 @@ void SimplifyIntrinsicsPass::runOnOperation() { fir::KindMapping kindMap = fir::getKindMapping(module); module.walk([&](mlir::Operation *op) { if (auto call = mlir::dyn_cast(op)) { + if (cuf::isInCUDADeviceContext(op)) + return; if (mlir::SymbolRefAttr callee = call.getCalleeAttr()) { mlir::StringRef funcName = callee.getLeafReference().getValue(); // Replace call to runtime function for SUM when it has single diff --git a/flang/lib/Parser/executable-parsers.cpp b/flang/lib/Parser/executable-parsers.cpp index 730165613d91d..ecabbe1db6def 100644 --- a/flang/lib/Parser/executable-parsers.cpp +++ b/flang/lib/Parser/executable-parsers.cpp @@ -9,7 +9,6 @@ // Per-type parsers for executable statements #include "basic-parsers.h" -#include "debug-parser.h" #include "expr-parsers.h" #include "misc-parsers.h" #include "stmt-parser.h" @@ -282,18 +281,26 @@ TYPE_CONTEXT_PARSER("loop control"_en_US, "CONCURRENT" >> concurrentHeader, many(Parser{}))))) +// "DO" is a valid statement, so the loop control is optional; but for +// better recovery from errors in the loop control, don't parse a +// DO statement with a bad loop control as a DO statement that has +// no loop control and is followed by garbage. +static constexpr auto loopControlOrEndOfStmt{ + construct>(Parser{}) || + lookAhead(";\n"_ch) >> construct>()}; + // R1121 label-do-stmt -> [do-construct-name :] DO label [loop-control] // A label-do-stmt with a do-construct-name is parsed as a nonlabel-do-stmt // with an optional label. TYPE_CONTEXT_PARSER("label DO statement"_en_US, - construct("DO" >> label, maybe(loopControl))) + construct("DO" >> label, loopControlOrEndOfStmt)) // R1122 nonlabel-do-stmt -> [do-construct-name :] DO [loop-control] TYPE_CONTEXT_PARSER("nonlabel DO statement"_en_US, construct( - name / ":", "DO" >> maybe(label), maybe(loopControl)) || + name / ":", "DO" >> maybe(label), loopControlOrEndOfStmt) || construct(construct>(), - construct>(), "DO" >> maybe(loopControl))) + construct>(), "DO" >> loopControlOrEndOfStmt)) // R1132 end-do-stmt -> END DO [do-construct-name] TYPE_CONTEXT_PARSER("END DO statement"_en_US, diff --git a/flang/lib/Parser/openmp-parsers.cpp b/flang/lib/Parser/openmp-parsers.cpp index 630acf9a6b256..2040a3e7ed5ae 100644 --- a/flang/lib/Parser/openmp-parsers.cpp +++ b/flang/lib/Parser/openmp-parsers.cpp @@ -23,137 +23,36 @@ namespace Fortran::parser { constexpr auto startOmpLine = skipStuffBeforeStatement >> "!$OMP "_sptok; constexpr auto endOmpLine = space >> endOfLine; -// Helper class to deal with a list of modifiers of various types. -// The list (to be parsed) is assumed to start with all modifiers of the -// first type, followed by a list of modifiers of the second type, etc. -// Each list can be empty, e.g. -// mod_of_kind_2, mod_of_kind_3, mod_of_kind_5, ... -// The result type is a tuple of optional lists of each modifier type. -template -struct ConcatSeparated { - template - using OptListOf = std::optional>; - template using TupleFor = std::tuple>; - - using resultType = std::tuple, OptListOf...>; - - constexpr ConcatSeparated(ConcatSeparated &&) = default; - constexpr ConcatSeparated(const ConcatSeparated &) = default; - constexpr ConcatSeparated(Separator sep, Parser p, Parsers... ps) - : parser_(p), sepAndParsers_(sep, ps...) {} +template struct ModifierList { + constexpr ModifierList(Separator sep) : sep_(sep) {} + constexpr ModifierList(const ModifierList &) = default; + constexpr ModifierList(ModifierList &&) = default; - std::optional Parse(ParseState &state) const { - // firstParser is a list parser, it returns optional. - auto firstParser = - attempt(nonemptySeparated(parser_, std::get<0>(sepAndParsers_))); - - if constexpr (sizeof...(Parsers) == 0) { - return TupleFor{std::move(firstParser.Parse(state))}; - } else { - using restParserType = ConcatSeparated; - auto restParser = std::make_from_tuple(sepAndParsers_); - - if (auto first{firstParser.Parse(state)}) { - if (attempt(std::get<0>(sepAndParsers_)).Parse(state)) { - return std::tuple_cat(TupleFor(std::move(*first)), - std::move(*restParser.Parse(state))); - } - return std::tuple_cat(TupleFor{std::move(*first)}, - std::tuple...>{}); - } - return std::tuple_cat( - TupleFor{}, std::move(*restParser.Parse(state))); - } - } - -private: - const Parser parser_; - const std::tuple sepAndParsers_; -}; - -// Map modifiers come from four categories: -// - map-type-modifier, -// - mapper (not parsed yet), -// - iterator, -// - map-type. -// There can be zero or more map-type-modifiers, and zero or one modifier -// of every other kind. -// Syntax-wise they look like a single list, where the last element could -// be a map-type, and all elements in that list are comma-separated[1]. -// Only if there was at least one modifier (of any kind) specified, the -// list must end with ":". -// There are complications coming from the fact that the comma separating the -// two kinds of modifiers is only allowed if there is at least one modifier of -// each kind. The MapModifiers parser utilizes the ConcatSeparated parser, which -// takes care of that. ConcatSeparated returns a tuple with optional lists of -// modifiers for every type. -// [1] Any of the commas are optional, but that syntax has been deprecated -// in OpenMP 5.2, and the parsing code keeps a record of whether the commas -// were present. -template struct MapModifiers { - constexpr MapModifiers(Separator sep) : sep_(sep) {} - constexpr MapModifiers(const MapModifiers &) = default; - constexpr MapModifiers(MapModifiers &&) = default; - - // Parsing of mappers is not supported yet. - using TypeModParser = Parser; - using IterParser = Parser; - using TypeParser = Parser; - using ModParser = - ConcatSeparated; - - using resultType = typename ModParser::resultType; + using resultType = std::list; std::optional Parse(ParseState &state) const { - auto mp = ModParser(sep_, TypeModParser{}, IterParser{}, TypeParser{}); - auto mods = mp.Parse(state); - // The ModParser always "succeeds", i.e. even if the input is junk, it - // will return a tuple filled with nullopts. If any of the components - // is not a nullopt, expect a ":". - if (std::apply([](auto &&...opts) { return (... || !!opts); }, *mods)) { + auto listp{nonemptySeparated(Parser{}, sep_)}; + if (auto result{attempt(listp).Parse(state)}) { if (!attempt(":"_tok).Parse(state)) { return std::nullopt; } + return std::move(result); } - return std::move(mods); + return resultType{}; } private: const Separator sep_; }; -// This is almost exactly the same thing as MapModifiers. It has the same -// issue (it expects modifiers in a specific order), and the fix for that -// will change how modifiers are parsed. Instead of making this code more -// generic, make it simple, and generalize after the fix is in place. -template struct MotionModifiers { - constexpr MotionModifiers(Separator sep) : sep_(sep) {} - constexpr MotionModifiers(const MotionModifiers &) = default; - constexpr MotionModifiers(MotionModifiers &&) = default; - - using ExpParser = Parser; - using IterParser = Parser; - using ModParser = ConcatSeparated; - - using resultType = typename ModParser::resultType; - - std::optional Parse(ParseState &state) const { - auto mp{ModParser(sep_, ExpParser{}, IterParser{})}; - auto mods{mp.Parse(state)}; - // The ModParser always "succeeds", i.e. even if the input is junk, it - // will return a tuple filled with nullopts. If any of the components - // is not a nullopt, expect a ":". - if (std::apply([](auto &&...opts) { return (... || !!opts); }, *mods)) { - if (!attempt(":"_tok).Parse(state)) { - return std::nullopt; - } - } - return std::move(mods); - } - -private: - const Separator sep_; -}; +// Use a function to create ModifierList because functions allow "partial" +// template argument deduction: "modifierList(sep)" would be legal, +// while "ModifierList(sep)" would complain about a missing template +// argument "Separator". +template +constexpr ModifierList modifierList(Separator sep) { + return ModifierList(sep); +} // OpenMP Clauses @@ -192,6 +91,16 @@ static TypeDeclarationStmt makeIterSpecDecl(std::list &&names) { // --- Parsers for clause modifiers ----------------------------------- +TYPE_PARSER(construct( // + "SIMD" >> pure(OmpChunkModifier::Value::Simd))) + +TYPE_PARSER(construct( + "SINK" >> pure(OmpDependenceType::Value::Sink) || + "SOURCE" >> pure(OmpDependenceType::Value::Source))) + +TYPE_PARSER(construct( // + "PRESENT" >> pure(OmpExpectation::Value::Present))) + TYPE_PARSER(construct( // Using Parser or Parser has the problem // that they will attempt to treat what follows the '=' as initialization. @@ -208,12 +117,9 @@ TYPE_PARSER(construct( makeIterSpecDecl, nonemptyList(Parser{}) / "="_tok)), subscriptTriplet)) -TYPE_PARSER(construct( - "SINK" >> pure(OmpDependenceType::Value::Sink) || - "SOURCE" >> pure(OmpDependenceType::Value::Source))) - // [5.0] 2.1.6 iterator -> iterator-specifier-list -TYPE_PARSER(construct("ITERATOR" >> +TYPE_PARSER(construct( // + "ITERATOR" >> parenthesized(nonemptyList(sourced(Parser{}))))) // 2.15.3.7 LINEAR (linear-list: linear-step) @@ -224,10 +130,43 @@ TYPE_PARSER(construct( // "VAL" >> pure(OmpLinearModifier::Value::Val) || "UVAL" >> pure(OmpLinearModifier::Value::Uval))) +TYPE_PARSER(construct( // + "MAPPER"_tok >> parenthesized(Parser{}))) + +// map-type -> ALLOC | DELETE | FROM | RELEASE | TO | TOFROM +TYPE_PARSER(construct( // + "ALLOC" >> pure(OmpMapType::Value::Alloc) || + "DELETE" >> pure(OmpMapType::Value::Delete) || + "FROM" >> pure(OmpMapType::Value::From) || + "RELEASE" >> pure(OmpMapType::Value::Release) || + "TO"_id >> pure(OmpMapType::Value::To) || + "TOFROM" >> pure(OmpMapType::Value::Tofrom))) + +// map-type-modifier -> ALWAYS | CLOSE | OMPX_HOLD | PRESENT +TYPE_PARSER(construct( + "ALWAYS" >> pure(OmpMapTypeModifier::Value::Always) || + "CLOSE" >> pure(OmpMapTypeModifier::Value::Close) || + "OMPX_HOLD" >> pure(OmpMapTypeModifier::Value::Ompx_Hold) || + "PRESENT" >> pure(OmpMapTypeModifier::Value::Present))) + // 2.15.3.6 REDUCTION (reduction-identifier: variable-name-list) TYPE_PARSER(construct(Parser{}) || construct(Parser{})) +TYPE_PARSER(construct( + "REPRODUCIBLE" >> pure(OmpOrderModifier::Value::Reproducible) || + "UNCONSTRAINED" >> pure(OmpOrderModifier::Value::Unconstrained))) + +TYPE_PARSER(construct( + "MONOTONIC" >> pure(OmpOrderingModifier::Value::Monotonic) || + "NONMONOTONIC" >> pure(OmpOrderingModifier::Value::Nonmonotonic) || + "SIMD" >> pure(OmpOrderingModifier::Value::Simd))) + +TYPE_PARSER(construct( + "INSCAN" >> pure(OmpReductionModifier::Value::Inscan) || + "TASK" >> pure(OmpReductionModifier::Value::Task) || + "DEFAULT" >> pure(OmpReductionModifier::Value::Default))) + TYPE_PARSER(construct( "DEPOBJ" >> pure(OmpTaskDependenceType::Value::Depobj) || "IN"_id >> pure(OmpTaskDependenceType::Value::In) || @@ -236,8 +175,64 @@ TYPE_PARSER(construct( "MUTEXINOUTSET" >> pure(OmpTaskDependenceType::Value::Mutexinoutset) || "OUT" >> pure(OmpTaskDependenceType::Value::Out))) +TYPE_PARSER(construct( + "AGGREGATE" >> pure(OmpVariableCategory::Value::Aggregate) || + "ALL"_id >> pure(OmpVariableCategory::Value::All) || + "ALLOCATABLE" >> pure(OmpVariableCategory::Value::Allocatable) || + "POINTER" >> pure(OmpVariableCategory::Value::Pointer) || + "SCALAR" >> pure(OmpVariableCategory::Value::Scalar))) + +// This could be auto-generated. +TYPE_PARSER(sourced(construct( + sourced(construct(Parser{}) || + construct(Parser{}) || + construct(Parser{}))))) + +TYPE_PARSER(sourced(construct( + sourced(construct(Parser{}) || + construct(Parser{}) || + construct(Parser{}) || + construct(Parser{}))))) + +TYPE_PARSER( + sourced(construct(Parser{}))) + +TYPE_PARSER(sourced(construct(sourced( + construct(Parser{}) || + construct( + Parser{}))))) + +TYPE_PARSER(sourced(construct(sourced( + construct(Parser{}) || + construct(Parser{}))))) + +TYPE_PARSER(sourced(construct( + sourced(construct(Parser{}) || + construct(Parser{}) || + construct(Parser{}))))) + +TYPE_PARSER(sourced( + construct(Parser{}))) + // --- Parsers for clauses -------------------------------------------- +/// `MOBClause` is a clause that has a +/// std::tuple. +/// Helper function to create a typical modifiers-objects clause, where the +/// commas separating individual modifiers are optional, and the clause +/// contains a bool member to indicate whether it was fully comma-separated +/// or not. +template +static inline MOBClause makeMobClause( + std::list &&mods, OmpObjectList &&objs) { + if (!mods.empty()) { + return MOBClause{std::move(mods), std::move(objs), CommaSeparated}; + } else { + using ListTy = std::list; + return MOBClause{std::optional{}, std::move(objs), CommaSeparated}; + } +} + // [5.0] 2.10.1 affinity([aff-modifier:] locator-list) // aff-modifier: interator-modifier TYPE_PARSER(construct( @@ -250,53 +245,18 @@ TYPE_PARSER(construct( "SHARED" >> pure(OmpDefaultClause::Type::Shared) || "NONE" >> pure(OmpDefaultClause::Type::None))) -// 2.5 PROC_BIND (MASTER | CLOSE | PRIMARY | SPREAD ) +// 2.5 PROC_BIND (MASTER | CLOSE | PRIMARY | SPREAD) TYPE_PARSER(construct( "CLOSE" >> pure(OmpProcBindClause::Type::Close) || "MASTER" >> pure(OmpProcBindClause::Type::Master) || "PRIMARY" >> pure(OmpProcBindClause::Type::Primary) || "SPREAD" >> pure(OmpProcBindClause::Type::Spread))) -// 2.15.5.1 map -> -// MAP ([ [map-type-modifiers [,] ] map-type : ] variable-name-list) -// map-type-modifiers -> map-type-modifier [,] [...] -// map-type-modifier -> ALWAYS | CLOSE | OMPX_HOLD | PRESENT -// map-type -> ALLOC | DELETE | FROM | RELEASE | TO | TOFROM -TYPE_PARSER(construct( - "ALWAYS" >> pure(OmpMapClause::TypeModifier::Always) || - "CLOSE" >> pure(OmpMapClause::TypeModifier::Close) || - "OMPX_HOLD" >> pure(OmpMapClause::TypeModifier::Ompx_Hold) || - "PRESENT" >> pure(OmpMapClause::TypeModifier::Present))) - -TYPE_PARSER( - construct("ALLOC" >> pure(OmpMapClause::Type::Alloc) || - "DELETE" >> pure(OmpMapClause::Type::Delete) || - "FROM" >> pure(OmpMapClause::Type::From) || - "RELEASE" >> pure(OmpMapClause::Type::Release) || - "TO"_id >> pure(OmpMapClause::Type::To) || - "TOFROM" >> pure(OmpMapClause::Type::Tofrom))) - -template -static inline OmpMapClause makeMapClause(OmpMapperIdentifier &&mm, - std::tuple>, - std::optional>, - std::optional>> &&mods, - OmpObjectList &&objs) { - auto &&[tm, it, ty] = std::move(mods); - return OmpMapClause{std::move(mm), std::move(tm), std::move(it), - std::move(ty), std::move(objs), CommasEverywhere}; -} - -TYPE_PARSER(construct( - maybe("MAPPER"_tok >> parenthesized(name) / ","_tok))) - TYPE_PARSER(construct( - applyFunction(makeMapClause, - Parser{}, MapModifiers(","_tok), - Parser{}) || - applyFunction(makeMapClause, - Parser{}, MapModifiers(maybe(","_tok)), - Parser{}))) + applyFunction(makeMobClause, + modifierList(","_tok), Parser{}) || + applyFunction(makeMobClause, + modifierList(maybe(","_tok)), Parser{}))) // [OpenMP 5.0] // 2.19.7.2 defaultmap(implicit-behavior[:variable-category]) @@ -313,36 +273,18 @@ TYPE_PARSER(construct( pure(OmpDefaultmapClause::ImplicitBehavior::Firstprivate) || "NONE" >> pure(OmpDefaultmapClause::ImplicitBehavior::None) || "DEFAULT" >> pure(OmpDefaultmapClause::ImplicitBehavior::Default)), - maybe(":" >> - construct( - "ALL"_id >> pure(OmpDefaultmapClause::VariableCategory::All) || - "SCALAR" >> pure(OmpDefaultmapClause::VariableCategory::Scalar) || - "AGGREGATE" >> - pure(OmpDefaultmapClause::VariableCategory::Aggregate) || - "ALLOCATABLE" >> - pure(OmpDefaultmapClause::VariableCategory::Allocatable) || - "POINTER" >> - pure(OmpDefaultmapClause::VariableCategory::Pointer))))) - -// 2.7.1 SCHEDULE ([modifier1 [, modifier2]:]kind[, chunk_size]) -// Modifier -> MONITONIC | NONMONOTONIC | SIMD -// kind -> STATIC | DYNAMIC | GUIDED | AUTO | RUNTIME -// chunk_size -> ScalarIntExpr -TYPE_PARSER(construct( - "MONOTONIC" >> pure(OmpScheduleModifierType::ModType::Monotonic) || - "NONMONOTONIC" >> pure(OmpScheduleModifierType::ModType::Nonmonotonic) || - "SIMD" >> pure(OmpScheduleModifierType::ModType::Simd))) - -TYPE_PARSER(construct(Parser{}, - maybe("," >> Parser{}) / ":")) - -TYPE_PARSER(construct(maybe(Parser{}), - "STATIC" >> pure(OmpScheduleClause::ScheduleType::Static) || - "DYNAMIC" >> pure(OmpScheduleClause::ScheduleType::Dynamic) || - "GUIDED" >> pure(OmpScheduleClause::ScheduleType::Guided) || - "AUTO" >> pure(OmpScheduleClause::ScheduleType::Auto) || - "RUNTIME" >> pure(OmpScheduleClause::ScheduleType::Runtime), - maybe("," >> scalarIntExpr))) + maybe(":" >> nonemptyList(Parser{})))) + +TYPE_PARSER(construct( + "STATIC" >> pure(OmpScheduleClause::Kind::Static) || + "DYNAMIC" >> pure(OmpScheduleClause::Kind::Dynamic) || + "GUIDED" >> pure(OmpScheduleClause::Kind::Guided) || + "AUTO" >> pure(OmpScheduleClause::Kind::Auto) || + "RUNTIME" >> pure(OmpScheduleClause::Kind::Runtime))) + +TYPE_PARSER(construct( + maybe(nonemptyList(Parser{}) / ":"), + Parser{}, maybe("," >> scalarIntExpr))) // device([ device-modifier :] scalar-integer-expression) TYPE_PARSER(construct( @@ -379,12 +321,8 @@ TYPE_PARSER(construct( scalarLogicalExpr)) TYPE_PARSER(construct( - maybe( - ("INSCAN" >> pure(OmpReductionClause::ReductionModifier::Inscan) || - "TASK" >> pure(OmpReductionClause::ReductionModifier::Task) || - "DEFAULT" >> pure(OmpReductionClause::ReductionModifier::Default)) / - ","), - Parser{} / ":", Parser{})) + maybe(nonemptyList(Parser{}) / ":"), + Parser{})) // OMP 5.0 2.19.5.6 IN_REDUCTION (reduction-identifier: variable-name-list) TYPE_PARSER(construct( @@ -445,30 +383,17 @@ TYPE_CONTEXT_PARSER("Omp Depend clause"_en_US, TYPE_CONTEXT_PARSER("Omp Doacross clause"_en_US, construct(Parser{})) -TYPE_PARSER(construct( - "PRESENT" >> pure(OmpFromClause::Expectation::Present))) - -template -static inline MotionClause makeMotionClause( - std::tuple>, - std::optional>> &&mods, - OmpObjectList &&objs) { - auto &&[exp, iter] = std::move(mods); - return MotionClause( - std::move(exp), std::move(iter), std::move(objs), CommasEverywhere); -} - TYPE_PARSER(construct( - applyFunction(makeMotionClause, - MotionModifiers(","_tok), Parser{}) || - applyFunction(makeMotionClause, - MotionModifiers(maybe(","_tok)), Parser{}))) + applyFunction(makeMobClause, + modifierList(","_tok), Parser{}) || + applyFunction(makeMobClause, + modifierList(maybe(","_tok)), Parser{}))) TYPE_PARSER(construct( - applyFunction(makeMotionClause, - MotionModifiers(","_tok), Parser{}) || - applyFunction(makeMotionClause, - MotionModifiers(maybe(","_tok)), Parser{}))) + applyFunction(makeMobClause, + modifierList(","_tok), Parser{}) || + applyFunction(makeMobClause, + modifierList(maybe(","_tok)), Parser{}))) TYPE_CONTEXT_PARSER("Omp LINEAR clause"_en_US, construct( @@ -489,14 +414,9 @@ TYPE_PARSER(construct( construct(Parser{}) || construct(Parser{}))) -// 2.9.5 ORDER ([order-modifier :]concurrent) -TYPE_PARSER(construct( - "REPRODUCIBLE" >> pure(OmpOrderModifier::Kind::Reproducible)) || - construct( - "UNCONSTRAINED" >> pure(OmpOrderModifier::Kind::Unconstrained))) - -TYPE_PARSER(construct(maybe(Parser{} / ":"), - "CONCURRENT" >> pure(OmpOrderClause::Type::Concurrent))) +TYPE_PARSER(construct( + maybe(nonemptyList(Parser{}) / ":"), + "CONCURRENT" >> pure(OmpOrderClause::Ordering::Concurrent))) // OMP 5.2 12.6.1 grainsize([ prescriptiveness :] scalar-integer-expression) TYPE_PARSER(construct( diff --git a/flang/lib/Parser/prescan.cpp b/flang/lib/Parser/prescan.cpp index 1d2f1e9766879..34e660f8d2664 100644 --- a/flang/lib/Parser/prescan.cpp +++ b/flang/lib/Parser/prescan.cpp @@ -188,14 +188,15 @@ void Prescanner::Statement() { } break; } - case LineClassification::Kind::Source: + case LineClassification::Kind::Source: { BeginStatementAndAdvance(); + bool checkLabelField{false}; if (inFixedForm_) { if (features_.IsEnabled(LanguageFeature::OldDebugLines) && (*at_ == 'D' || *at_ == 'd')) { NextChar(); } - LabelField(tokens); + checkLabelField = true; } else { if (skipLeadingAmpersand_) { skipLeadingAmpersand_ = false; @@ -207,38 +208,42 @@ void Prescanner::Statement() { } else { SkipSpaces(); } - // Check for a leading identifier that might be a keyword macro - // that will expand to anything indicating a non-source line, like - // a comment marker or directive sentinel. If so, disable line - // continuation, so that NextToken() won't consume anything from - // following lines. - if (IsLegalIdentifierStart(*at_)) { - // TODO: Only bother with these cases when any keyword macro has - // been defined with replacement text that could begin a comment - // or directive sentinel. - const char *p{at_}; - while (IsLegalInIdentifier(*++p)) { - } - CharBlock id{at_, static_cast(p - at_)}; - if (preprocessor_.IsNameDefined(id) && - !preprocessor_.IsFunctionLikeDefinition(id)) { - TokenSequence toks; - toks.Put(id, GetProvenance(at_)); - if (auto replaced{preprocessor_.MacroReplacement(toks, *this)}) { - auto newLineClass{ClassifyLine(*replaced, GetCurrentProvenance())}; - if (newLineClass.kind == - LineClassification::Kind::CompilerDirective) { - directiveSentinel_ = newLineClass.sentinel; - disableSourceContinuation_ = false; - } else { - disableSourceContinuation_ = - newLineClass.kind != LineClassification::Kind::Source; - } + } + // Check for a leading identifier that might be a keyword macro + // that will expand to anything indicating a non-source line, like + // a comment marker or directive sentinel. If so, disable line + // continuation, so that NextToken() won't consume anything from + // following lines. + if (IsLegalIdentifierStart(*at_)) { + // TODO: Only bother with these cases when any keyword macro has + // been defined with replacement text that could begin a comment + // or directive sentinel. + const char *p{at_}; + while (IsLegalInIdentifier(*++p)) { + } + CharBlock id{at_, static_cast(p - at_)}; + if (preprocessor_.IsNameDefined(id) && + !preprocessor_.IsFunctionLikeDefinition(id)) { + checkLabelField = false; + TokenSequence toks; + toks.Put(id, GetProvenance(at_)); + if (auto replaced{preprocessor_.MacroReplacement(toks, *this)}) { + auto newLineClass{ClassifyLine(*replaced, GetCurrentProvenance())}; + if (newLineClass.kind == + LineClassification::Kind::CompilerDirective) { + directiveSentinel_ = newLineClass.sentinel; + disableSourceContinuation_ = false; + } else { + disableSourceContinuation_ = + newLineClass.kind != LineClassification::Kind::Source; } } } } - break; + if (checkLabelField) { + LabelField(tokens); + } + } break; } while (NextToken(tokens)) { @@ -815,18 +820,33 @@ bool Prescanner::ExponentAndKind(TokenSequence &tokens) { if (ed != 'e' && ed != 'd') { return false; } - EmitCharAndAdvance(tokens, ed); - if (*at_ == '+' || *at_ == '-') { - EmitCharAndAdvance(tokens, *at_); + // Do some look-ahead to ensure that this 'e'/'d' is an exponent, + // not the start of an identifier that could be a macro. + const char *p{at_}; + if (int n{IsSpace(++p)}) { + p += n; } - while (IsDecimalDigit(*at_)) { - EmitCharAndAdvance(tokens, *at_); + if (*p == '+' || *p == '-') { + if (int n{IsSpace(++p)}) { + p += n; + } } - if (*at_ == '_') { - while (IsLegalInIdentifier(EmitCharAndAdvance(tokens, *at_))) { + if (IsDecimalDigit(*p)) { // it's an exponent + EmitCharAndAdvance(tokens, ed); + if (*at_ == '+' || *at_ == '-') { + EmitCharAndAdvance(tokens, *at_); + } + while (IsDecimalDigit(*at_)) { + EmitCharAndAdvance(tokens, *at_); + } + if (*at_ == '_') { + while (IsLegalInIdentifier(EmitCharAndAdvance(tokens, *at_))) { + } } + return true; + } else { + return false; } - return true; } void Prescanner::QuotedCharacterLiteral( diff --git a/flang/lib/Parser/type-parsers.h b/flang/lib/Parser/type-parsers.h index adbf6d23cbd99..f800398a22de9 100644 --- a/flang/lib/Parser/type-parsers.h +++ b/flang/lib/Parser/type-parsers.h @@ -102,7 +102,6 @@ constexpr Parser forallAssignmentStmt; // R1053 constexpr Parser forallStmt; // R1055 constexpr Parser selector; // R1105 constexpr Parser endSelectStmt; // R1143 & R1151 & R1155 -constexpr Parser loopControl; // R1123 constexpr Parser concurrentHeader; // R1125 constexpr Parser ioUnit; // R1201, R1203 constexpr Parser fileUnitNumber; // R1202 diff --git a/flang/lib/Parser/unparse.cpp b/flang/lib/Parser/unparse.cpp index 4d6aaceb69c18..fe3f6ce7aa629 100644 --- a/flang/lib/Parser/unparse.cpp +++ b/flang/lib/Parser/unparse.cpp @@ -2084,6 +2084,11 @@ class UnparseVisitor { Walk(x.v); Put(")"); } + void Unparse(const OmpMapper &x) { + Word("MAPPER("); + Walk(x.v); + Put(")"); + } void Unparse(const OmpLastprivateClause &x) { Walk( std::get>(x.t), @@ -2091,55 +2096,14 @@ class UnparseVisitor { Walk(std::get(x.t)); } void Unparse(const OmpMapClause &x) { - auto &typeMod = - std::get>>(x.t); - auto &iter = std::get>>(x.t); - auto &type = std::get>>(x.t); - auto &mapper = std::get(x.t); - - // For a given list of items, if the item has a value, then walk it. - // Print commas between items that have values. - // Return 'true' if something did get printed, otherwise 'false'. - bool needComma{false}; - if (mapper.v) { - Word("MAPPER("); - Walk(*mapper.v); - Put(")"); - needComma = true; - } - if (typeMod) { - if (needComma) { - Put(", "); - } - Walk(*typeMod); - needComma = true; - } - if (iter) { - if (needComma) { - Put(", "); - } - Walk(*iter); - needComma = true; - } - if (type) { - if (needComma) { - Put(", "); - } - Walk(*type); - needComma = true; - } - if (needComma) { - Put(": "); - } + using Modifier = OmpMapClause::Modifier; + Walk(std::get>>(x.t), ": "); Walk(std::get(x.t)); } - void Unparse(const OmpScheduleModifier &x) { - Walk(std::get(x.t)); - Walk(",", std::get>(x.t)); - } void Unparse(const OmpScheduleClause &x) { - Walk(std::get>(x.t), ":"); - Walk(std::get(x.t)); + using Modifier = OmpScheduleClause::Modifier; + Walk(std::get>>(x.t), ":"); + Walk(std::get(x.t)); Walk(",", std::get>(x.t)); } void Unparse(const OmpDeviceClause &x) { @@ -2156,24 +2120,8 @@ class UnparseVisitor { Walk(std::get>(x.t)); } void Unparse(const OmpFromClause &x) { - auto &expect{ - std::get>>(x.t)}; - auto &iter{std::get>>(x.t)}; - bool needComma{false}; - if (expect) { - Walk(*expect); - needComma = true; - } - if (iter) { - if (needComma) { - Put(", "); - } - Walk(*iter); - needComma = true; - } - if (needComma) { - Put(": "); - } + using Modifier = OmpFromClause::Modifier; + Walk(std::get>>(x.t), ": "); Walk(std::get(x.t)); } void Unparse(const OmpIfClause &x) { @@ -2189,10 +2137,8 @@ class UnparseVisitor { Walk(":", x.step); } void Unparse(const OmpReductionClause &x) { - Walk(std::get>(x.t), - ","); - Walk(std::get(x.t)); - Put(":"); + using Modifier = OmpReductionClause::Modifier; + Walk(std::get>>(x.t), ":"); Walk(std::get(x.t)); } void Unparse(const OmpDetachClause &x) { Walk(x.v); } @@ -2232,8 +2178,9 @@ class UnparseVisitor { Put(")"); } void Unparse(const OmpOrderClause &x) { - Walk(std::get>(x.t), ":"); - Walk(std::get(x.t)); + using Modifier = OmpOrderClause::Modifier; + Walk(std::get>>(x.t), ":"); + Walk(std::get(x.t)); } void Unparse(const OmpGrainsizeClause &x) { Walk(std::get>(x.t), @@ -2256,29 +2203,13 @@ class UnparseVisitor { Walk(std::get(x.t)); } void Unparse(const OmpDefaultmapClause &x) { + using Modifier = OmpDefaultmapClause::Modifier; Walk(std::get(x.t)); - Walk(":", - std::get>(x.t)); + Walk(":", std::get>>(x.t)); } void Unparse(const OmpToClause &x) { - auto &expect{ - std::get>>(x.t)}; - auto &iter{std::get>>(x.t)}; - bool needComma{false}; - if (expect) { - Walk(*expect); - needComma = true; - } - if (iter) { - if (needComma) { - Put(", "); - } - Walk(*iter); - needComma = true; - } - if (needComma) { - Put(": "); - } + using Modifier = OmpToClause::Modifier; + Walk(std::get>>(x.t), ": "); Walk(std::get(x.t)); } #define GEN_FLANG_CLAUSE_UNPARSE @@ -2906,27 +2837,27 @@ class UnparseVisitor { WALK_NESTED_ENUM(OmpProcBindClause, Type) // OMP PROC_BIND WALK_NESTED_ENUM(OmpDefaultClause, Type) // OMP DEFAULT WALK_NESTED_ENUM(OmpDefaultmapClause, ImplicitBehavior) // OMP DEFAULTMAP - WALK_NESTED_ENUM(OmpDefaultmapClause, VariableCategory) // OMP DEFAULTMAP + WALK_NESTED_ENUM(OmpVariableCategory, Value) // OMP variable-category WALK_NESTED_ENUM( OmpLastprivateClause, LastprivateModifier) // OMP lastprivate-modifier - WALK_NESTED_ENUM(OmpScheduleModifierType, ModType) // OMP schedule-modifier + WALK_NESTED_ENUM(OmpChunkModifier, Value) // OMP chunk-modifier WALK_NESTED_ENUM(OmpLinearModifier, Value) // OMP linear-modifier + WALK_NESTED_ENUM(OmpOrderingModifier, Value) // OMP ordering-modifier WALK_NESTED_ENUM(OmpTaskDependenceType, Value) // OMP task-dependence-type - WALK_NESTED_ENUM(OmpScheduleClause, ScheduleType) // OMP schedule-type + WALK_NESTED_ENUM(OmpScheduleClause, Kind) // OMP schedule-kind WALK_NESTED_ENUM(OmpDeviceClause, DeviceModifier) // OMP device modifier WALK_NESTED_ENUM(OmpDeviceTypeClause, Type) // OMP DEVICE_TYPE - WALK_NESTED_ENUM( - OmpReductionClause, ReductionModifier) // OMP reduction-modifier - WALK_NESTED_ENUM(OmpFromClause, Expectation) // OMP motion-expectation + WALK_NESTED_ENUM(OmpReductionModifier, Value) // OMP reduction-modifier + WALK_NESTED_ENUM(OmpExpectation, Value) // OMP motion-expectation WALK_NESTED_ENUM(OmpIfClause, DirectiveNameModifier) // OMP directive-modifier WALK_NESTED_ENUM(OmpCancelType, Type) // OMP cancel-type - WALK_NESTED_ENUM(OmpOrderClause, Type) // OMP order-type - WALK_NESTED_ENUM(OmpOrderModifier, Kind) // OMP order-modifier + WALK_NESTED_ENUM(OmpOrderClause, Ordering) // OMP ordering + WALK_NESTED_ENUM(OmpOrderModifier, Value) // OMP order-modifier WALK_NESTED_ENUM( OmpGrainsizeClause, Prescriptiveness) // OMP grainsize-modifier WALK_NESTED_ENUM(OmpNumTasksClause, Prescriptiveness) // OMP numtasks-modifier - WALK_NESTED_ENUM(OmpMapClause, Type) // OMP map-type - WALK_NESTED_ENUM(OmpMapClause, TypeModifier) // OMP map-type-modifier + WALK_NESTED_ENUM(OmpMapType, Value) // OMP map-type + WALK_NESTED_ENUM(OmpMapTypeModifier, Value) // OMP map-type-modifier #undef WALK_NESTED_ENUM void Unparse(const ReductionOperator::Operator x) { switch (x) { diff --git a/flang/lib/Semantics/check-omp-structure.cpp b/flang/lib/Semantics/check-omp-structure.cpp index 9cac652216fcf..3733ebfaf9492 100644 --- a/flang/lib/Semantics/check-omp-structure.cpp +++ b/flang/lib/Semantics/check-omp-structure.cpp @@ -11,6 +11,7 @@ #include "flang/Evaluate/check-expression.h" #include "flang/Parser/parse-tree.h" #include "flang/Semantics/expression.h" +#include "flang/Semantics/openmp-modifiers.h" #include "flang/Semantics/tools.h" #include @@ -195,7 +196,7 @@ bool OmpStructureChecker::CheckAllowedClause(llvmOmpClause clause) { if (!llvm::omp::isAllowedClauseForDirective(dir, clause, version)) { unsigned allowedInVersion{[&] { - for (unsigned v : {45, 50, 51, 52, 60}) { + for (unsigned v : llvm::omp::getOpenMPVersions()) { if (v <= version) { continue; } @@ -847,11 +848,21 @@ void OmpStructureChecker::CheckTargetNest(const parser::OpenMPConstruct &c) { }, c.u); }, + [&](const parser::OpenMPLoopConstruct &c) { + const auto &beginLoopDir{ + std::get(c.t)}; + const auto &beginDir{ + std::get(beginLoopDir.t)}; + if (llvm::omp::allTargetSet.test(beginDir.v)) { + eligibleTarget = false; + ineligibleTargetDir = beginDir.v; + } + }, [&](const auto &c) {}, }, c.u); if (!eligibleTarget) { - context_.Warn(common::UsageWarning::Portability, + context_.Warn(common::UsageWarning::OpenMPUsage, parser::FindSourceLocation(c), "If %s directive is nested inside TARGET region, the behaviour is unspecified"_port_en_US, parser::ToUpperCaseLetters( @@ -979,12 +990,14 @@ void OmpStructureChecker::Leave(const parser::OpenMPLoopConstruct &x) { // constructs inside LOOP may add the relevant information. Scan reduction is // supported only in loop constructs, so same checks are not applicable to // other directives. + using ReductionModifier = parser::OmpReductionModifier; for (const auto &clause : clauseList.v) { if (const auto *reductionClause{ std::get_if(&clause.u)}) { - const auto &maybeModifier{ - std::get>(reductionClause->v.t)}; - if (maybeModifier && *maybeModifier == ReductionModifier::Inscan) { + auto &modifiers{OmpGetModifiers(reductionClause->v)}; + auto *maybeModifier{OmpGetUniqueModifier(modifiers)}; + if (maybeModifier && + maybeModifier->v == ReductionModifier::Value::Inscan) { const auto &objectList{ std::get(reductionClause->v.t)}; auto checkReductionSymbolInScan = [&](const parser::Name *name) { @@ -1065,7 +1078,7 @@ void OmpStructureChecker::Enter(const parser::OpenMPBlockConstruct &x) { CheckMatching(beginDir, endDir); PushContextAndClauseSets(beginDir.source, beginDir.v); - if (GetContext().directive == llvm::omp::Directive::OMPD_target) { + if (llvm::omp::allTargetSet.test(GetContext().directive)) { EnterDirectiveNest(TargetNest); } @@ -1148,7 +1161,7 @@ void OmpStructureChecker::Leave(const parser::OpenMPBlockConstruct &) { if (GetDirectiveNest(TargetBlockOnlyTeams)) { ExitDirectiveNest(TargetBlockOnlyTeams); } - if (GetContext().directive == llvm::omp::Directive::OMPD_target) { + if (llvm::omp::allTargetSet.test(GetContext().directive)) { ExitDirectiveNest(TargetNest); } dirContext_.pop_back(); @@ -2573,19 +2586,16 @@ void OmpStructureChecker::Leave(const parser::OmpClauseList &) { if (auto *clause{FindClause(llvm::omp::Clause::OMPC_schedule)}) { // only one schedule clause is allowed const auto &schedClause{std::get(clause->u)}; - if (ScheduleModifierHasType(schedClause.v, - parser::OmpScheduleModifierType::ModType::Nonmonotonic)) { + auto &modifiers{OmpGetModifiers(schedClause.v)}; + auto *ordering{ + OmpGetUniqueModifier(modifiers)}; + if (ordering && + ordering->v == parser::OmpOrderingModifier::Value::Nonmonotonic) { if (FindClause(llvm::omp::Clause::OMPC_ordered)) { context_.Say(clause->source, "The NONMONOTONIC modifier cannot be specified " "if an ORDERED clause is specified"_err_en_US); } - if (ScheduleModifierHasType(schedClause.v, - parser::OmpScheduleModifierType::ModType::Monotonic)) { - context_.Say(clause->source, - "The MONOTONIC and NONMONOTONIC modifiers " - "cannot be both specified"_err_en_US); - } } } @@ -2645,8 +2655,8 @@ void OmpStructureChecker::Leave(const parser::OmpClauseList &) { if (auto *o_clause{FindClause(llvm::omp::Clause::OMPC_order)}) { const auto &orderClause{ std::get(o_clause->u)}; - if (std::get(orderClause.v.t) == - parser::OmpOrderClause::Type::Concurrent) { + if (std::get(orderClause.v.t) == + parser::OmpOrderClause::Ordering::Concurrent) { context_.Say(sl_clause->source, "The `SAFELEN` clause cannot appear in the `SIMD` directive " "with `ORDER(CONCURRENT)` clause"_err_en_US); @@ -2850,53 +2860,57 @@ void OmpStructureChecker::Enter(const parser::OmpClause::Destroy &x) { void OmpStructureChecker::Enter(const parser::OmpClause::Reduction &x) { CheckAllowedClause(llvm::omp::Clause::OMPC_reduction); - if (CheckReductionOperators(x)) { - CheckReductionTypeList(x); - } - if (const auto &maybeModifier{ - std::get>(x.v.t)}) { - const ReductionModifier modifier{*maybeModifier}; - CheckReductionModifier(modifier); + if (OmpVerifyModifiers(x.v, llvm::omp::OMPC_reduction, + GetContext().clauseSource, context_)) { + if (CheckReductionOperators(x)) { + CheckReductionTypeList(x); + } + auto &modifiers{OmpGetModifiers(x.v)}; + using ReductionModifier = parser::OmpReductionModifier; + if (auto *maybeModifier{ + OmpGetUniqueModifier(modifiers)}) { + CheckReductionModifier(*maybeModifier); + } } } bool OmpStructureChecker::CheckReductionOperators( const parser::OmpClause::Reduction &x) { - - const auto &definedOp{std::get(x.v.t)}; bool ok = false; - common::visit( - common::visitors{ - [&](const parser::DefinedOperator &dOpr) { - if (const auto *intrinsicOp{ - std::get_if( - &dOpr.u)}) { - ok = CheckIntrinsicOperator(*intrinsicOp); - } else { - context_.Say(GetContext().clauseSource, - "Invalid reduction operator in REDUCTION clause."_err_en_US, - ContextDirectiveAsFortran()); - } - }, - [&](const parser::ProcedureDesignator &procD) { - const parser::Name *name{std::get_if(&procD.u)}; - if (name && name->symbol) { - const SourceName &realName{name->symbol->GetUltimate().name()}; - if (realName == "max" || realName == "min" || - realName == "iand" || realName == "ior" || - realName == "ieor") { - ok = true; - } - } - if (!ok) { - context_.Say(GetContext().clauseSource, - "Invalid reduction identifier in REDUCTION " - "clause."_err_en_US, - ContextDirectiveAsFortran()); - } - }, - }, - definedOp.u); + auto &modifiers{OmpGetModifiers(x.v)}; + if (const auto *ident{ + OmpGetUniqueModifier(modifiers)}) { + + auto visitOperator{[&](const parser::DefinedOperator &dOpr) { + if (const auto *intrinsicOp{ + std::get_if( + &dOpr.u)}) { + ok = CheckIntrinsicOperator(*intrinsicOp); + } else { + context_.Say(GetContext().clauseSource, + "Invalid reduction operator in REDUCTION clause."_err_en_US, + ContextDirectiveAsFortran()); + } + }}; + + auto visitDesignator{[&](const parser::ProcedureDesignator &procD) { + const parser::Name *name{std::get_if(&procD.u)}; + if (name && name->symbol) { + const SourceName &realName{name->symbol->GetUltimate().name()}; + if (realName == "max" || realName == "min" || realName == "iand" || + realName == "ior" || realName == "ieor") { + ok = true; + } + } + if (!ok) { + context_.Say(GetContext().clauseSource, + "Invalid reduction identifier in REDUCTION " + "clause."_err_en_US, + ContextDirectiveAsFortran()); + } + }}; + common::visit(common::visitors{visitOperator, visitDesignator}, ident->u); + } return ok; } @@ -2928,7 +2942,12 @@ bool OmpStructureChecker::CheckIntrinsicOperator( static bool IsReductionAllowedForType( const parser::OmpClause::Reduction &x, const DeclTypeSpec &type) { - const auto &definedOp{std::get(x.v.t)}; + auto &modifiers{OmpGetModifiers(x.v)}; + const auto *definedOp{ + OmpGetUniqueModifier(modifiers)}; + if (!definedOp) { + return false; + } // TODO: user defined reduction operators. Just allow everything for now. bool ok{true}; @@ -3002,7 +3021,7 @@ static bool IsReductionAllowedForType( } }, }, - definedOp.u); + definedOp->u); return ok; } @@ -3035,8 +3054,9 @@ void OmpStructureChecker::CheckReductionTypeList( } void OmpStructureChecker::CheckReductionModifier( - const ReductionModifier &modifier) { - if (modifier == ReductionModifier::Default) { + const parser::OmpReductionModifier &modifier) { + using ReductionModifier = parser::OmpReductionModifier; + if (modifier.v == ReductionModifier::Value::Default) { // The default one is always ok. return; } @@ -3049,7 +3069,7 @@ void OmpStructureChecker::CheckReductionModifier( context_.Say(GetContext().clauseSource, "REDUCTION modifier on LOOP directive must be DEFAULT"_err_en_US); } - if (modifier == ReductionModifier::Task) { + if (modifier.v == ReductionModifier::Value::Task) { // "Task" is only allowed on worksharing or "parallel" directive. static llvm::omp::Directive worksharing[]{ llvm::omp::Directive::OMPD_do, llvm::omp::Directive::OMPD_scope, @@ -3065,7 +3085,7 @@ void OmpStructureChecker::CheckReductionModifier( "Modifier 'TASK' on REDUCTION clause is only allowed with " "PARALLEL or worksharing directive"_err_en_US); } - } else if (modifier == ReductionModifier::Inscan) { + } else if (modifier.v == ReductionModifier::Value::Inscan) { // "Inscan" is only allowed on worksharing-loop, worksharing-loop simd, // or "simd" directive. // The worksharing-loop directives are OMPD_do and OMPD_for. Only the @@ -3382,28 +3402,28 @@ void OmpStructureChecker::Enter(const parser::OmpClause::Defaultmap &x) { ThisVersion(version), TryVersion(50)); } } - using VariableCategory = parser::OmpDefaultmapClause::VariableCategory; - auto maybeCategory{std::get>(x.v.t)}; - if (!maybeCategory) { - if (version <= 45) { - context_.Say(GetContext().clauseSource, - "The DEFAULTMAP clause requires a variable-category SCALAR in %s, %s"_warn_en_US, - ThisVersion(version), TryVersion(50)); - } - } else { - VariableCategory category{*maybeCategory}; + if (!OmpVerifyModifiers(x.v, llvm::omp::OMPC_defaultmap, + GetContext().clauseSource, context_)) { + // If modifier verification fails, return early. + return; + } + auto &modifiers{OmpGetModifiers(x.v)}; + auto *maybeCategory{ + OmpGetUniqueModifier(modifiers)}; + if (maybeCategory) { + using VariableCategory = parser::OmpVariableCategory; + VariableCategory::Value category{maybeCategory->v}; unsigned tryVersion{0}; - if (version <= 45 && category != VariableCategory::Scalar) { + if (version <= 45 && category != VariableCategory::Value::Scalar) { tryVersion = 50; } - if (version < 52 && category == VariableCategory::All) { + if (version < 52 && category == VariableCategory::Value::All) { tryVersion = 52; } if (tryVersion) { context_.Say(GetContext().clauseSource, "%s is not allowed in %s, %s"_warn_en_US, - parser::ToUpperCaseLetters( - parser::OmpDefaultmapClause::EnumToString(category)), + parser::ToUpperCaseLetters(VariableCategory::EnumToString(category)), ThisVersion(version), TryVersion(tryVersion)); } } @@ -3461,15 +3481,15 @@ void OmpStructureChecker::Enter(const parser::OmpClause::Linear &x) { } void OmpStructureChecker::CheckAllowedMapTypes( - const parser::OmpMapClause::Type &type, - const std::list &allowedMapTypeList) { + const parser::OmpMapType::Value &type, + const std::list &allowedMapTypeList) { if (!llvm::is_contained(allowedMapTypeList, type)) { std::string commaSeparatedMapTypes; llvm::interleave( allowedMapTypeList.begin(), allowedMapTypeList.end(), - [&](const parser::OmpMapClause::Type &mapType) { + [&](const parser::OmpMapType::Value &mapType) { commaSeparatedMapTypes.append(parser::ToUpperCaseLetters( - parser::OmpMapClause::EnumToString(mapType))); + parser::OmpMapType::EnumToString(mapType))); }, [&] { commaSeparatedMapTypes.append(", "); }); context_.Say(GetContext().clauseSource, @@ -3481,40 +3501,23 @@ void OmpStructureChecker::CheckAllowedMapTypes( void OmpStructureChecker::Enter(const parser::OmpClause::Map &x) { CheckAllowedClause(llvm::omp::Clause::OMPC_map); - using TypeMod = parser::OmpMapClause::TypeModifier; - using Type = parser::OmpMapClause::Type; - using IterMod = parser::OmpIterator; + if (!OmpVerifyModifiers( + x.v, llvm::omp::OMPC_map, GetContext().clauseSource, context_)) { + return; + } + auto &modifiers{OmpGetModifiers(x.v)}; unsigned version{context_.langOptions().OpenMPVersion}; if (auto commas{std::get(x.v.t)}; !commas && version >= 52) { context_.Say(GetContext().clauseSource, "The specification of modifiers without comma separators for the " "'MAP' clause has been deprecated in OpenMP 5.2"_port_en_US); } - if (auto &mapTypeMod{std::get>>(x.v.t)}) { - if (auto *dup{FindDuplicateEntry(*mapTypeMod)}) { - context_.Say(GetContext().clauseSource, - "Duplicate map-type-modifier entry '%s' will be ignored"_warn_en_US, - parser::ToUpperCaseLetters(parser::OmpMapClause::EnumToString(*dup))); - } - } - // The size of any of the optional lists is never 0, instead of the list - // being empty, it will be a nullopt. - if (auto &iterMod{std::get>>(x.v.t)}) { - if (iterMod->size() != 1) { - context_.Say(GetContext().clauseSource, - "Only one iterator-modifier is allowed"_err_en_US); - } - CheckIteratorModifier(iterMod->front()); + if (auto *iter{OmpGetUniqueModifier(modifiers)}) { + CheckIteratorModifier(*iter); } - if (auto &mapType{std::get>>(x.v.t)}) { - if (mapType->size() != 1) { - context_.Say(GetContext().clauseSource, - "Multiple map types are not allowed"_err_en_US); - return; - } - parser::OmpMapClause::Type type{mapType->front()}; - + if (auto *type{OmpGetUniqueModifier(modifiers)}) { + using Value = parser::OmpMapType::Value; switch (GetContext().directive) { case llvm::omp::Directive::OMPD_target: case llvm::omp::Directive::OMPD_target_teams: @@ -3524,48 +3527,55 @@ void OmpStructureChecker::Enter(const parser::OmpClause::Map &x) { case llvm::omp::Directive::OMPD_target_teams_distribute_parallel_do_simd: case llvm::omp::Directive::OMPD_target_data: CheckAllowedMapTypes( - type, {Type::To, Type::From, Type::Tofrom, Type::Alloc}); + type->v, {Value::To, Value::From, Value::Tofrom, Value::Alloc}); break; case llvm::omp::Directive::OMPD_target_enter_data: - CheckAllowedMapTypes(type, {Type::To, Type::Alloc}); + CheckAllowedMapTypes(type->v, {Value::To, Value::Alloc}); break; case llvm::omp::Directive::OMPD_target_exit_data: - CheckAllowedMapTypes(type, {Type::From, Type::Release, Type::Delete}); + CheckAllowedMapTypes( + type->v, {Value::From, Value::Release, Value::Delete}); break; default: break; } } -} -bool OmpStructureChecker::ScheduleModifierHasType( - const parser::OmpScheduleClause &x, - const parser::OmpScheduleModifierType::ModType &type) { - const auto &modifier{ - std::get>(x.t)}; - if (modifier) { - const auto &modType1{ - std::get(modifier->t)}; - const auto &modType2{ - std::get>( - modifier->t)}; - if (modType1.v.v == type || (modType2 && modType2->v.v == type)) { - return true; + auto &&typeMods{ + OmpGetRepeatableModifier(modifiers)}; + struct Less { + using Iterator = decltype(typeMods.begin()); + bool operator()(Iterator a, Iterator b) const { + const parser::OmpMapTypeModifier *pa = *a; + const parser::OmpMapTypeModifier *pb = *b; + return pa->v < pb->v; } + }; + if (auto maybeIter{FindDuplicate(typeMods)}) { + context_.Say(GetContext().clauseSource, + "Duplicate map-type-modifier entry '%s' will be ignored"_warn_en_US, + parser::ToUpperCaseLetters( + parser::OmpMapTypeModifier::EnumToString((**maybeIter)->v))); } - return false; } + void OmpStructureChecker::Enter(const parser::OmpClause::Schedule &x) { CheckAllowedClause(llvm::omp::Clause::OMPC_schedule); const parser::OmpScheduleClause &scheduleClause = x.v; + if (!OmpVerifyModifiers(scheduleClause, llvm::omp::OMPC_schedule, + GetContext().clauseSource, context_)) { + return; + } // 2.7 Loop Construct Restriction if (llvm::omp::allDoSet.test(GetContext().directive)) { - const auto &kind{std::get<1>(scheduleClause.t)}; - const auto &chunk{std::get<2>(scheduleClause.t)}; + auto &modifiers{OmpGetModifiers(scheduleClause)}; + auto kind{std::get(scheduleClause.t)}; + auto &chunk{ + std::get>(scheduleClause.t)}; if (chunk) { - if (kind == parser::OmpScheduleClause::ScheduleType::Runtime || - kind == parser::OmpScheduleClause::ScheduleType::Auto) { + if (kind == parser::OmpScheduleClause::Kind::Runtime || + kind == parser::OmpScheduleClause::Kind::Auto) { context_.Say(GetContext().clauseSource, "When SCHEDULE clause has %s specified, " "it must not have chunk size specified"_err_en_US, @@ -3579,10 +3589,12 @@ void OmpStructureChecker::Enter(const parser::OmpClause::Schedule &x) { } } - if (ScheduleModifierHasType(scheduleClause, - parser::OmpScheduleModifierType::ModType::Nonmonotonic)) { - if (kind != parser::OmpScheduleClause::ScheduleType::Dynamic && - kind != parser::OmpScheduleClause::ScheduleType::Guided) { + auto *ordering{ + OmpGetUniqueModifier(modifiers)}; + if (ordering && + ordering->v == parser::OmpOrderingModifier::Value::Nonmonotonic) { + if (kind != parser::OmpScheduleClause::Kind::Dynamic && + kind != parser::OmpScheduleClause::Kind::Guided) { context_.Say(GetContext().clauseSource, "The NONMONOTONIC modifier can only be specified with " "SCHEDULE(DYNAMIC) or SCHEDULE(GUIDED)"_err_en_US); @@ -3721,8 +3733,8 @@ void OmpStructureChecker::CheckDoacross(const parser::OmpDoacross &doa) { // Check if the variables in the iteration vector are unique. struct Less { - bool operator()( - const parser::OmpIteration *a, const parser::OmpIteration *b) const { + using Iterator = std::list::const_iterator; + bool operator()(Iterator a, Iterator b) const { auto namea{std::get(a->t)}; auto nameb{std::get(b->t)}; assert(namea.symbol && nameb.symbol && "Unresolved symbols"); @@ -3732,8 +3744,8 @@ void OmpStructureChecker::CheckDoacross(const parser::OmpDoacross &doa) { reinterpret_cast(nameb.symbol); } }; - if (auto *duplicate{FindDuplicateEntry(vec)}) { - auto name{std::get(duplicate->t)}; + if (auto maybeIter{FindDuplicate(vec)}) { + auto name{std::get((*maybeIter)->t)}; context_.Say(name.source, "Duplicate variable '%s' in the iteration vector"_err_en_US, name.ToString()); @@ -4056,35 +4068,16 @@ void OmpStructureChecker::Enter(const parser::OmpClause::Enter &x) { void OmpStructureChecker::Enter(const parser::OmpClause::From &x) { CheckAllowedClause(llvm::omp::Clause::OMPC_from); - unsigned version{context_.langOptions().OpenMPVersion}; - using ExpMod = parser::OmpFromClause::Expectation; - using IterMod = parser::OmpIterator; - - if (auto &expMod{std::get>>(x.v.t)}) { - unsigned allowedInVersion{51}; - if (version < allowedInVersion) { - context_.Say(GetContext().clauseSource, - "The PRESENT modifier is not supported in %s, %s"_warn_en_US, - ThisVersion(version), TryVersion(allowedInVersion)); - } - if (expMod->size() != 1) { - context_.Say(GetContext().clauseSource, - "Only one PRESENT modifier is allowed"_err_en_US); - } + if (!OmpVerifyModifiers( + x.v, llvm::omp::OMPC_from, GetContext().clauseSource, context_)) { + return; } - if (auto &iterMod{std::get>>(x.v.t)}) { - unsigned allowedInVersion{51}; - if (version < allowedInVersion) { - context_.Say(GetContext().clauseSource, - "Iterator modifiers are not supported in %s, %s"_warn_en_US, - ThisVersion(version), TryVersion(allowedInVersion)); - } - if (iterMod->size() != 1) { - context_.Say(GetContext().clauseSource, - "Only one iterator-modifier is allowed"_err_en_US); - } - CheckIteratorModifier(iterMod->front()); + auto &modifiers{OmpGetModifiers(x.v)}; + unsigned version{context_.langOptions().OpenMPVersion}; + + if (auto *iter{OmpGetUniqueModifier(modifiers)}) { + CheckIteratorModifier(*iter); } const auto &objList{std::get(x.v.t)}; @@ -4108,6 +4101,12 @@ void OmpStructureChecker::Enter(const parser::OmpClause::From &x) { void OmpStructureChecker::Enter(const parser::OmpClause::To &x) { CheckAllowedClause(llvm::omp::Clause::OMPC_to); + if (!OmpVerifyModifiers( + x.v, llvm::omp::OMPC_to, GetContext().clauseSource, context_)) { + return; + } + + auto &modifiers{OmpGetModifiers(x.v)}; unsigned version{context_.langOptions().OpenMPVersion}; // The "to" clause is only allowed on "declare target" (pre-5.1), and @@ -4120,35 +4119,10 @@ void OmpStructureChecker::Enter(const parser::OmpClause::To &x) { if (GetContext().directive == llvm::omp::OMPD_declare_target) { return; } - assert(GetContext().directive == llvm::omp::OMPD_target_update); - using ExpMod = parser::OmpFromClause::Expectation; - using IterMod = parser::OmpIterator; - - if (auto &expMod{std::get>>(x.v.t)}) { - unsigned allowedInVersion{51}; - if (version < allowedInVersion) { - context_.Say(GetContext().clauseSource, - "The PRESENT modifier is not supported in %s, %s"_warn_en_US, - ThisVersion(version), TryVersion(allowedInVersion)); - } - if (expMod->size() != 1) { - context_.Say(GetContext().clauseSource, - "Only one PRESENT modifier is allowed"_err_en_US); - } - } - if (auto &iterMod{std::get>>(x.v.t)}) { - unsigned allowedInVersion{51}; - if (version < allowedInVersion) { - context_.Say(GetContext().clauseSource, - "Iterator modifiers are not supported in %s, %s"_warn_en_US, - ThisVersion(version), TryVersion(allowedInVersion)); - } - if (iterMod->size() != 1) { - context_.Say(GetContext().clauseSource, - "Only one iterator-modifier is allowed"_err_en_US); - } - CheckIteratorModifier(iterMod->front()); + assert(GetContext().directive == llvm::omp::OMPD_target_update); + if (auto *iter{OmpGetUniqueModifier(modifiers)}) { + CheckIteratorModifier(*iter); } const auto &objList{std::get(x.v.t)}; diff --git a/flang/lib/Semantics/check-omp-structure.h b/flang/lib/Semantics/check-omp-structure.h index df21ebac0f6d7..4ce52bebd5a73 100644 --- a/flang/lib/Semantics/check-omp-structure.h +++ b/flang/lib/Semantics/check-omp-structure.h @@ -70,7 +70,6 @@ class OmpStructureChecker ) { } using llvmOmpClause = const llvm::omp::Clause; - using ReductionModifier = parser::OmpReductionClause::ReductionModifier; void Enter(const parser::OpenMPConstruct &); void Leave(const parser::OpenMPConstruct &); @@ -162,18 +161,15 @@ class OmpStructureChecker void HasInvalidDistributeNesting(const parser::OpenMPLoopConstruct &x); void HasInvalidLoopBinding(const parser::OpenMPLoopConstruct &x); // specific clause related - bool ScheduleModifierHasType(const parser::OmpScheduleClause &, - const parser::OmpScheduleModifierType::ModType &); - void CheckAllowedMapTypes(const parser::OmpMapClause::Type &, - const std::list &); + void CheckAllowedMapTypes(const parser::OmpMapType::Value &, + const std::list &); llvm::StringRef getClauseName(llvm::omp::Clause clause) override; llvm::StringRef getDirectiveName(llvm::omp::Directive directive) override; - template struct DefaultLess { - bool operator()(const T *a, const T *b) const { return *a < *b; } - }; - template > - const T *FindDuplicateEntry(const std::list &); + template < // + typename LessTy, typename RangeTy, + typename IterTy = decltype(std::declval().begin())> + std::optional FindDuplicate(RangeTy &&); void CheckDependList(const parser::DataRef &); void CheckDependArraySection( @@ -227,7 +223,7 @@ class OmpStructureChecker bool CheckIntrinsicOperator( const parser::DefinedOperator::IntrinsicOperator &); void CheckReductionTypeList(const parser::OmpClause::Reduction &); - void CheckReductionModifier(const ReductionModifier &); + void CheckReductionModifier(const parser::OmpReductionModifier &); void CheckMasterNesting(const parser::OpenMPBlockConstruct &x); void ChecksOnOrderedAsBlock(); void CheckBarrierNesting(const parser::OpenMPSimpleStandaloneConstruct &x); @@ -277,22 +273,20 @@ class OmpStructureChecker std::vector loopStack_; }; -template -const T *OmpStructureChecker::FindDuplicateEntry(const std::list &list) { - // Add elements of the list to a set. If the insertion fails, return - // the address of the failing element. - - // The objects of type T may not be copyable, so add their addresses - // to the set. The set will need to compare the actual objects, so - // the custom comparator is provided. - std::set uniq; - - for (const T &item : list) { - if (!uniq.insert(&item).second) { - return &item; +/// Find a duplicate entry in the range, and return an iterator to it. +/// If there are no duplicate entries, return nullopt. +template +std::optional OmpStructureChecker::FindDuplicate(RangeTy &&range) { + // Deal with iterators, since the actual elements may be rvalues (i.e. + // have no addresses), for example with custom-constructed ranges that + // are not simple c.begin()..c.end(). + std::set uniq; + for (auto it{range.begin()}, end{range.end()}; it != end; ++it) { + if (!uniq.insert(it).second) { + return it; } } - return nullptr; + return std::nullopt; } } // namespace Fortran::semantics diff --git a/flang/lib/Semantics/openmp-modifiers.cpp b/flang/lib/Semantics/openmp-modifiers.cpp index 70ca988cddce5..1fd2358aa594e 100644 --- a/flang/lib/Semantics/openmp-modifiers.cpp +++ b/flang/lib/Semantics/openmp-modifiers.cpp @@ -40,7 +40,13 @@ static unsigned findVersion( } } - assert(found != 0 && "cannot locate entry for version in map"); + // It can happen that the above search will not find any version, for + // example when the minimum version in the map is higher than the current + // version. This is really an error, but this situation should be handled + // gracefully, so make some sensible choice and return it. + if (found == 0) { + found = !map.empty() ? map.begin()->first : versions.front(); + } return found; } @@ -52,9 +58,38 @@ const OmpClauses &OmpModifierDescriptor::clauses(unsigned version) const { return clauses_.at(findVersion(version, clauses_)); } +unsigned OmpModifierDescriptor::since(llvm::omp::Clause id) const { + unsigned found{[&]() { + for (auto &[v, cs] : clauses_) { + if (cs.test(id)) { + return v; + } + } + return ~0u; + }()}; + + return found <= 45 ? 0 : found; +} + // Note: The intent for these functions is to have them be automatically- // generated in the future. +template <> +const OmpModifierDescriptor &OmpGetDescriptor() { + static const OmpModifierDescriptor desc{ + /*name=*/"chunk-modifier", + /*props=*/ + { + {45, {OmpProperty::Unique}}, + }, + /*clauses=*/ + { + {45, {Clause::OMPC_schedule}}, + }, + }; + return desc; +} + template <> const OmpModifierDescriptor &OmpGetDescriptor() { static const OmpModifierDescriptor desc{ @@ -73,6 +108,22 @@ const OmpModifierDescriptor &OmpGetDescriptor() { return desc; } +template <> +const OmpModifierDescriptor &OmpGetDescriptor() { + static const OmpModifierDescriptor desc{ + /*name=*/"expectation", + /*props=*/ + { + {51, {OmpProperty::Unique}}, + }, + /*clauses=*/ + { + {51, {Clause::OMPC_from, Clause::OMPC_to}}, + }, + }; + return desc; +} + template <> const OmpModifierDescriptor &OmpGetDescriptor() { static const OmpModifierDescriptor desc{ @@ -108,6 +159,86 @@ const OmpModifierDescriptor &OmpGetDescriptor() { return desc; } +template <> // +const OmpModifierDescriptor &OmpGetDescriptor() { + static const OmpModifierDescriptor desc{ + /*name=*/"mapper", + /*props=*/ + { + {50, {OmpProperty::Unique}}, + }, + /*clauses=*/ + { + {50, {Clause::OMPC_from, Clause::OMPC_map, Clause::OMPC_to}}, + }, + }; + return desc; +} + +template <> +const OmpModifierDescriptor &OmpGetDescriptor() { + static const OmpModifierDescriptor desc{ + /*name=*/"map-type", + /*props=*/ + { + {45, {OmpProperty::Ultimate}}, + }, + /*clauses=*/ + { + {45, {Clause::OMPC_map}}, + }, + }; + return desc; +} + +template <> +const OmpModifierDescriptor &OmpGetDescriptor() { + static const OmpModifierDescriptor desc{ + /*name=*/"map-type-modifier", + /*props=*/ + { + {45, {}}, // Repeatable + }, + /*clauses=*/ + { + {45, {Clause::OMPC_map}}, + }, + }; + return desc; +} + +template <> +const OmpModifierDescriptor &OmpGetDescriptor() { + static const OmpModifierDescriptor desc{ + /*name=*/"order-modifier", + /*props=*/ + { + {51, {OmpProperty::Unique}}, + }, + /*clauses=*/ + { + {51, {Clause::OMPC_order}}, + }, + }; + return desc; +} + +template <> +const OmpModifierDescriptor &OmpGetDescriptor() { + static const OmpModifierDescriptor desc{ + /*name=*/"ordering-modifier", + /*props=*/ + { + {45, {OmpProperty::Unique}}, + }, + /*clauses=*/ + { + {45, {Clause::OMPC_schedule}}, + }, + }; + return desc; +} + template <> const OmpModifierDescriptor & OmpGetDescriptor() { @@ -128,6 +259,22 @@ OmpGetDescriptor() { return desc; } +template <> +const OmpModifierDescriptor &OmpGetDescriptor() { + static const OmpModifierDescriptor desc{ + /*name=*/"reduction-modifier", + /*props=*/ + { + {45, {OmpProperty::Unique}}, + }, + /*clauses=*/ + { + {45, {Clause::OMPC_reduction}}, + }, + }; + return desc; +} + template <> const OmpModifierDescriptor &OmpGetDescriptor() { static const OmpModifierDescriptor desc{ @@ -143,4 +290,21 @@ const OmpModifierDescriptor &OmpGetDescriptor() { }; return desc; } + +template <> +const OmpModifierDescriptor &OmpGetDescriptor() { + static const OmpModifierDescriptor desc{ + /*name=*/"variable-category", + /*props=*/ + { + {45, {OmpProperty::Required, OmpProperty::Unique}}, + {50, {OmpProperty::Unique}}, + }, + /*clauses=*/ + { + {45, {Clause::OMPC_defaultmap}}, + }, + }; + return desc; +} } // namespace Fortran::semantics diff --git a/flang/lib/Semantics/resolve-directives.cpp b/flang/lib/Semantics/resolve-directives.cpp index 80e238f3476ac..0c3708b3fd29b 100644 --- a/flang/lib/Semantics/resolve-directives.cpp +++ b/flang/lib/Semantics/resolve-directives.cpp @@ -19,6 +19,7 @@ #include "flang/Parser/parse-tree.h" #include "flang/Parser/tools.h" #include "flang/Semantics/expression.h" +#include "flang/Semantics/openmp-modifiers.h" #include "flang/Semantics/symbol.h" #include "flang/Semantics/tools.h" #include @@ -518,43 +519,52 @@ class OmpAttributeVisitor : DirectiveAttributeVisitor { } bool Pre(const parser::OmpClause::Reduction &x) { - const parser::OmpReductionIdentifier &opr{ - std::get(x.v.t)}; - auto createDummyProcSymbol = [&](const parser::Name *name) { - // If name resolution failed, create a dummy symbol - const auto namePair{ - currScope().try_emplace(name->source, Attrs{}, ProcEntityDetails{})}; - auto &newSymbol{*namePair.first->second}; - if (context_.intrinsics().IsIntrinsic(name->ToString())) { - newSymbol.attrs().set(Attr::INTRINSIC); - } - name->symbol = &newSymbol; - }; - if (const auto *procD{parser::Unwrap(opr.u)}) { - if (const auto *name{parser::Unwrap(procD->u)}) { - if (!name->symbol) { - if (!ResolveName(name)) { - createDummyProcSymbol(name); + const auto &objList{std::get(x.v.t)}; + ResolveOmpObjectList(objList, Symbol::Flag::OmpReduction); + + if (auto &modifiers{OmpGetModifiers(x.v)}) { + auto createDummyProcSymbol = [&](const parser::Name *name) { + // If name resolution failed, create a dummy symbol + const auto namePair{currScope().try_emplace( + name->source, Attrs{}, ProcEntityDetails{})}; + auto &newSymbol{*namePair.first->second}; + if (context_.intrinsics().IsIntrinsic(name->ToString())) { + newSymbol.attrs().set(Attr::INTRINSIC); + } + name->symbol = &newSymbol; + }; + + for (auto &mod : *modifiers) { + if (!std::holds_alternative(mod.u)) { + continue; + } + auto &opr{std::get(mod.u)}; + if (auto *procD{parser::Unwrap(opr.u)}) { + if (auto *name{parser::Unwrap(procD->u)}) { + if (!name->symbol) { + if (!ResolveName(name)) { + createDummyProcSymbol(name); + } + } + } + if (auto *procRef{ + parser::Unwrap(procD->u)}) { + if (!procRef->v.thing.component.symbol) { + if (!ResolveName(&procRef->v.thing.component)) { + createDummyProcSymbol(&procRef->v.thing.component); + } + } } } } - if (const auto *procRef{ - parser::Unwrap(procD->u)}) { - if (!procRef->v.thing.component.symbol) { - if (!ResolveName(&procRef->v.thing.component)) { - createDummyProcSymbol(&procRef->v.thing.component); - } + using ReductionModifier = parser::OmpReductionModifier; + if (auto *maybeModifier{ + OmpGetUniqueModifier(modifiers)}) { + if (maybeModifier->v == ReductionModifier::Value::Inscan) { + ResolveOmpObjectList(objList, Symbol::Flag::OmpInScanReduction); } } } - const auto &objList{std::get(x.v.t)}; - ResolveOmpObjectList(objList, Symbol::Flag::OmpReduction); - using ReductionModifier = parser::OmpReductionClause::ReductionModifier; - const auto &maybeModifier{ - std::get>(x.v.t)}; - if (maybeModifier && *maybeModifier == ReductionModifier::Inscan) { - ResolveOmpObjectList(objList, Symbol::Flag::OmpInScanReduction); - } return false; } @@ -631,28 +641,25 @@ class OmpAttributeVisitor : DirectiveAttributeVisitor { void Post(const parser::OmpMapClause &x) { Symbol::Flag ompFlag = Symbol::Flag::OmpMapToFrom; - // There is only one `type' allowed, but it's parsed as a list. Multiple - // types are diagnosed in the semantic checks for OpenMP. - if (const auto &mapType{ - std::get>>( - x.t)}) { - switch (mapType->front()) { - case parser::OmpMapClause::Type::To: + auto &mods{OmpGetModifiers(x)}; + if (auto *mapType{OmpGetUniqueModifier(mods)}) { + switch (mapType->v) { + case parser::OmpMapType::Value::To: ompFlag = Symbol::Flag::OmpMapTo; break; - case parser::OmpMapClause::Type::From: + case parser::OmpMapType::Value::From: ompFlag = Symbol::Flag::OmpMapFrom; break; - case parser::OmpMapClause::Type::Tofrom: + case parser::OmpMapType::Value::Tofrom: ompFlag = Symbol::Flag::OmpMapToFrom; break; - case parser::OmpMapClause::Type::Alloc: + case parser::OmpMapType::Value::Alloc: ompFlag = Symbol::Flag::OmpMapAlloc; break; - case parser::OmpMapClause::Type::Release: + case parser::OmpMapType::Value::Release: ompFlag = Symbol::Flag::OmpMapRelease; break; - case parser::OmpMapClause::Type::Delete: + case parser::OmpMapType::Value::Delete: ompFlag = Symbol::Flag::OmpMapDelete; break; } diff --git a/flang/lib/Semantics/resolve-names.cpp b/flang/lib/Semantics/resolve-names.cpp index 929d35a4717dc..b576f59e8c7e5 100644 --- a/flang/lib/Semantics/resolve-names.cpp +++ b/flang/lib/Semantics/resolve-names.cpp @@ -31,6 +31,7 @@ #include "flang/Parser/tools.h" #include "flang/Semantics/attr.h" #include "flang/Semantics/expression.h" +#include "flang/Semantics/openmp-modifiers.h" #include "flang/Semantics/program-tree.h" #include "flang/Semantics/scope.h" #include "flang/Semantics/semantics.h" @@ -1642,27 +1643,27 @@ bool OmpVisitor::Pre(const parser::OpenMPDeclareMapperConstruct &x) { } bool OmpVisitor::Pre(const parser::OmpMapClause &x) { - const auto &mid{std::get(x.t)}; - if (const auto &mapperName{mid.v}) { - if (const auto symbol = FindSymbol(currScope(), *mapperName)) { + auto &mods{OmpGetModifiers(x)}; + if (auto *mapper{OmpGetUniqueModifier(mods)}) { + if (auto *symbol{FindSymbol(currScope(), mapper->v)}) { // TODO: Do we need a specific flag or type here, to distinghuish against // other ConstructName things? Leaving this for the full implementation // of mapper lowering. auto *misc{symbol->detailsIf()}; if (!misc || misc->kind() != MiscDetails::Kind::ConstructName) - context().Say(mapperName->source, - "Name '%s' should be a mapper name"_err_en_US, mapperName->source); + context().Say(mapper->v.source, + "Name '%s' should be a mapper name"_err_en_US, mapper->v.source); else - mapperName->symbol = symbol; + mapper->v.symbol = symbol; } else { - mapperName->symbol = &MakeSymbol( - *mapperName, MiscDetails{MiscDetails::Kind::ConstructName}); + mapper->v.symbol = + &MakeSymbol(mapper->v, MiscDetails{MiscDetails::Kind::ConstructName}); // TODO: When completing the implementation, we probably want to error if // the symbol is not declared, but right now, testing that the TODO for - // OmpMapclause happens is obscured by the TODO for declare mapper, so + // OmpMapClause happens is obscured by the TODO for declare mapper, so // leaving this out. Remove the above line once the declare mapper is - // implemented. context().Say(mapperName->source, "'%s' not - // declared"_err_en_US, mapperName->source); + // implemented. context().Say(mapper->v.source, "'%s' not + // declared"_err_en_US, mapper->v.source); } } return true; diff --git a/flang/runtime/CUDA/CMakeLists.txt b/flang/runtime/CUDA/CMakeLists.txt index ce87f3efdc363..3a88824826de3 100644 --- a/flang/runtime/CUDA/CMakeLists.txt +++ b/flang/runtime/CUDA/CMakeLists.txt @@ -18,6 +18,7 @@ add_flang_library(${CUFRT_LIBNAME} allocatable.cpp descriptor.cpp kernel.cpp + memmove-function.cpp memory.cpp registration.cpp ) diff --git a/flang/runtime/CUDA/allocatable.cpp b/flang/runtime/CUDA/allocatable.cpp index 649ddb638abe6..9be54e8906903 100644 --- a/flang/runtime/CUDA/allocatable.cpp +++ b/flang/runtime/CUDA/allocatable.cpp @@ -7,10 +7,12 @@ //===----------------------------------------------------------------------===// #include "flang/Runtime/CUDA/allocatable.h" +#include "../assign-impl.h" #include "../stat.h" #include "../terminator.h" #include "flang/Runtime/CUDA/common.h" #include "flang/Runtime/CUDA/descriptor.h" +#include "flang/Runtime/CUDA/memmove-function.h" #include "flang/Runtime/allocatable.h" #include "cuda_runtime.h" @@ -20,8 +22,27 @@ namespace Fortran::runtime::cuda { extern "C" { RT_EXT_API_GROUP_BEGIN -int RTDEF(CUFAllocatableAllocate)(Descriptor &desc, bool hasStat, - const Descriptor *errMsg, const char *sourceFile, int sourceLine) { +int RTDEF(CUFAllocatableAllocateSync)(Descriptor &desc, int64_t stream, + bool hasStat, const Descriptor *errMsg, const char *sourceFile, + int sourceLine) { + int stat{RTNAME(CUFAllocatableAllocate)( + desc, stream, hasStat, errMsg, sourceFile, sourceLine)}; +#ifndef RT_DEVICE_COMPILATION + // Descriptor synchronization is only done when the allocation is done + // from the host. + if (stat == StatOk) { + void *deviceAddr{ + RTNAME(CUFGetDeviceAddress)((void *)&desc, sourceFile, sourceLine)}; + RTNAME(CUFDescriptorSync) + ((Descriptor *)deviceAddr, &desc, sourceFile, sourceLine); + } +#endif + return stat; +} + +int RTDEF(CUFAllocatableAllocate)(Descriptor &desc, int64_t stream, + bool hasStat, const Descriptor *errMsg, const char *sourceFile, + int sourceLine) { if (desc.HasAddendum()) { Terminator terminator{sourceFile, sourceLine}; // TODO: This require a bit more work to set the correct type descriptor @@ -32,16 +53,32 @@ int RTDEF(CUFAllocatableAllocate)(Descriptor &desc, bool hasStat, // Perform the standard allocation. int stat{RTNAME(AllocatableAllocate)( desc, hasStat, errMsg, sourceFile, sourceLine)}; -#ifndef RT_DEVICE_COMPILATION - // Descriptor synchronization is only done when the allocation is done - // from the host. + return stat; +} + +int RTDEF(CUFAllocatableAllocateSource)(Descriptor &alloc, + const Descriptor &source, int64_t stream, bool hasStat, + const Descriptor *errMsg, const char *sourceFile, int sourceLine) { + int stat{RTNAME(CUFAllocatableAllocate)( + alloc, stream, hasStat, errMsg, sourceFile, sourceLine)}; if (stat == StatOk) { - void *deviceAddr{ - RTNAME(CUFGetDeviceAddress)((void *)&desc, sourceFile, sourceLine)}; - RTNAME(CUFDescriptorSync) - ((Descriptor *)deviceAddr, &desc, sourceFile, sourceLine); + Terminator terminator{sourceFile, sourceLine}; + Fortran::runtime::DoFromSourceAssign( + alloc, source, terminator, &MemmoveHostToDevice); + } + return stat; +} + +int RTDEF(CUFAllocatableAllocateSourceSync)(Descriptor &alloc, + const Descriptor &source, int64_t stream, bool hasStat, + const Descriptor *errMsg, const char *sourceFile, int sourceLine) { + int stat{RTNAME(CUFAllocatableAllocateSync)( + alloc, stream, hasStat, errMsg, sourceFile, sourceLine)}; + if (stat == StatOk) { + Terminator terminator{sourceFile, sourceLine}; + Fortran::runtime::DoFromSourceAssign( + alloc, source, terminator, &MemmoveHostToDevice); } -#endif return stat; } diff --git a/flang/runtime/CUDA/memmove-function.cpp b/flang/runtime/CUDA/memmove-function.cpp new file mode 100644 index 0000000000000..3ba9fa7e0f7f7 --- /dev/null +++ b/flang/runtime/CUDA/memmove-function.cpp @@ -0,0 +1,35 @@ +//===-- runtime/CUDA/memmove-function.cpp ---------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "flang/Runtime/CUDA/memmove-function.h" +#include "../terminator.h" +#include "flang/Runtime/CUDA/common.h" + +#include "cuda_runtime.h" + +namespace Fortran::runtime::cuda { + +void *MemmoveHostToDevice(void *dst, const void *src, std::size_t count) { + // TODO: Use cudaMemcpyAsync when we have support for stream. + CUDA_REPORT_IF_ERROR(cudaMemcpy(dst, src, count, cudaMemcpyHostToDevice)); + return dst; +} + +void *MemmoveDeviceToHost(void *dst, const void *src, std::size_t count) { + // TODO: Use cudaMemcpyAsync when we have support for stream. + CUDA_REPORT_IF_ERROR(cudaMemcpy(dst, src, count, cudaMemcpyDeviceToHost)); + return dst; +} + +void *MemmoveDeviceToDevice(void *dst, const void *src, std::size_t count) { + // TODO: Use cudaMemcpyAsync when we have support for stream. + CUDA_REPORT_IF_ERROR(cudaMemcpy(dst, src, count, cudaMemcpyDeviceToDevice)); + return dst; +} + +} // namespace Fortran::runtime::cuda diff --git a/flang/runtime/CUDA/memory.cpp b/flang/runtime/CUDA/memory.cpp index 68963c4d7738a..0bbb493d2db91 100644 --- a/flang/runtime/CUDA/memory.cpp +++ b/flang/runtime/CUDA/memory.cpp @@ -11,31 +11,12 @@ #include "../terminator.h" #include "flang/Runtime/CUDA/common.h" #include "flang/Runtime/CUDA/descriptor.h" +#include "flang/Runtime/CUDA/memmove-function.h" #include "flang/Runtime/assign.h" #include "cuda_runtime.h" namespace Fortran::runtime::cuda { -static void *MemmoveHostToDevice( - void *dst, const void *src, std::size_t count) { - // TODO: Use cudaMemcpyAsync when we have support for stream. - CUDA_REPORT_IF_ERROR(cudaMemcpy(dst, src, count, cudaMemcpyHostToDevice)); - return dst; -} - -static void *MemmoveDeviceToHost( - void *dst, const void *src, std::size_t count) { - // TODO: Use cudaMemcpyAsync when we have support for stream. - CUDA_REPORT_IF_ERROR(cudaMemcpy(dst, src, count, cudaMemcpyDeviceToHost)); - return dst; -} - -static void *MemmoveDeviceToDevice( - void *dst, const void *src, std::size_t count) { - // TODO: Use cudaMemcpyAsync when we have support for stream. - CUDA_REPORT_IF_ERROR(cudaMemcpy(dst, src, count, cudaMemcpyDeviceToDevice)); - return dst; -} extern "C" { diff --git a/flang/runtime/sum.cpp b/flang/runtime/sum.cpp index 04241443275eb..10b8124254652 100644 --- a/flang/runtime/sum.cpp +++ b/flang/runtime/sum.cpp @@ -53,7 +53,7 @@ template class RealSumAccumulator { } template RT_API_ATTRS bool Accumulate(A x) { // Kahan summation - auto next{x + correction_}; + auto next{x - correction_}; auto oldSum{sum_}; sum_ += next; correction_ = (sum_ - oldSum) - next; // algebraically zero diff --git a/flang/test/Driver/print-supported-cpus.f90 b/flang/test/Driver/print-supported-cpus.f90 new file mode 100644 index 0000000000000..60b725d4e1dcf --- /dev/null +++ b/flang/test/Driver/print-supported-cpus.f90 @@ -0,0 +1,46 @@ +! Test --print-supported-cpus and associated aliases, -mcpu=help and +! -mtune=help + +! RUN: %if x86-registered-target %{ \ +! RUN: %flang --target=x86_64-unknown-linux-gnu --print-supported-cpus 2>&1 \ +! RUN: | FileCheck %s --check-prefixes=X86,CHECK \ +! RUN: %} +! RUN: %if x86-registered-target %{ \ +! RUN: %flang --target=x86_64-unknown-linux-gnu -mcpu=help 2>&1 \ +! RUN: | FileCheck %s --check-prefixes=X86,CHECK \ +! RUN: %} +! RUN: %if x86-registered-target %{ \ +! RUN: %flang --target=x86_64-unknown-linux-gnu -mtune=help 2>&1 \ +! RUN: | FileCheck %s --check-prefixes=X86,CHECK \ +! RUN: %} + +! RUN: %if aarch64-registered-target %{ \ +! RUN: %flang --target=aarch64-unknown-linux-gnu --print-supported-cpus 2>&1 \ +! RUN: | FileCheck %s --check-prefixes=AARCH64,CHECK \ +! RUN: %} +! RUN: %if aarch64-registered-target %{ \ +! RUN: %flang --target=aarch64-unknown-linux-gnu -mcpu=help 2>&1 \ +! RUN: | FileCheck %s --check-prefixes=AARCH64,CHECK \ +! RUN: %} +! RUN: %if aarch64-registered-target %{ \ +! RUN: %flang --target=aarch64-unknown-linux-gnu -mtune=help 2>&1 \ +! RUN: | FileCheck %s --check-prefixes=AARCH64,CHECK \ +! RUN: %} + +! CHECK-NOT: warning: argument unused during compilation + +! X86: Target: x86_64-unknown-linux-gnu +! X86: corei7 + +! AARCH64: Target: aarch64-unknown-linux-gnu +! AARCH64: cortex-a73 +! AARCH64: cortex-a75 + +! The footer displayed contains a reference to clang. This should be changed to +! flang, but that requires a change in llvm/MCSubtargetInfo. When that happens, +! this test will need to be updated and this comment can be removed. + +! CHECK: Use -mcpu or -mtune to specify the target's processor. +! CHECK: For example, clang --target=aarch64-unknown-linux-gnu + + end program diff --git a/flang/test/Fir/CUDA/cuda-allocate.fir b/flang/test/Fir/CUDA/cuda-allocate.fir index d68ff894d5af5..9b87c7546d1e9 100644 --- a/flang/test/Fir/CUDA/cuda-allocate.fir +++ b/flang/test/Fir/CUDA/cuda-allocate.fir @@ -19,7 +19,7 @@ func.func @_QPsub1() { // CHECK: %[[DESC:.*]] = fir.convert %[[DESC_RT_CALL]] : (!fir.ref>) -> !fir.ref>>> // CHECK: %[[DECL_DESC:.*]]:2 = hlfir.declare %[[DESC]] {data_attr = #cuf.cuda, fortran_attrs = #fir.var_attrs, uniq_name = "_QFsub1Ea"} : (!fir.ref>>>) -> (!fir.ref>>>, !fir.ref>>>) // CHECK: %[[BOX_NONE:.*]] = fir.convert %[[DECL_DESC]]#1 : (!fir.ref>>>) -> !fir.ref> -// CHECK: %{{.*}} = fir.call @_FortranAAllocatableAllocate(%[[BOX_NONE]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, i1, !fir.box, !fir.ref, i32) -> i32 +// CHECK: %{{.*}} = fir.call @_FortranACUFAllocatableAllocate(%[[BOX_NONE]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, i64, i1, !fir.box, !fir.ref, i32) -> i32 // CHECK: %[[BOX_NONE:.*]] = fir.convert %[[DECL_DESC]]#1 : (!fir.ref>>>) -> !fir.ref> // CHECK: %{{.*}} = fir.call @_FortranAAllocatableDeallocate(%[[BOX_NONE]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, i1, !fir.box, !fir.ref, i32) -> i32 @@ -47,7 +47,7 @@ func.func @_QPsub3() { // CHECK: %[[A:.*]]:2 = hlfir.declare %[[A_ADDR]] {data_attr = #cuf.cuda, fortran_attrs = #fir.var_attrs, uniq_name = "_QMmod1Ea"} : (!fir.ref>>>) -> (!fir.ref>>>, !fir.ref>>>) // CHECK: %[[A_BOX:.*]] = fir.convert %[[A]]#1 : (!fir.ref>>>) -> !fir.ref> -// CHECK: fir.call @_FortranACUFAllocatableAllocate(%[[A_BOX]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, i1, !fir.box, !fir.ref, i32) -> i32 +// CHECK: fir.call @_FortranACUFAllocatableAllocateSync(%[[A_BOX]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, i64, i1, !fir.box, !fir.ref, i32) -> i32 // CHECK: %[[A_BOX:.*]] = fir.convert %[[A]]#1 : (!fir.ref>>>) -> !fir.ref> // CHECK: fir.call @_FortranACUFAllocatableDeallocate(%[[A_BOX]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, i1, !fir.box, !fir.ref, i32) -> i32 @@ -87,7 +87,7 @@ func.func @_QPsub5() { } // CHECK-LABEL: func.func @_QPsub5() -// CHECK: fir.call @_FortranAAllocatableAllocate({{.*}}) : (!fir.ref>, i1, !fir.box, !fir.ref, i32) -> i32 +// CHECK: fir.call @_FortranACUFAllocatableAllocate({{.*}}) : (!fir.ref>, i64, i1, !fir.box, !fir.ref, i32) -> i32 // CHECK: fir.call @_FortranAAllocatableDeallocate({{.*}}) : (!fir.ref>, i1, !fir.box, !fir.ref, i32) -> i32 @@ -118,6 +118,67 @@ func.func @_QQsub6() attributes {fir.bindc_name = "test"} { // CHECK: %[[B:.*]]:2 = hlfir.declare %[[B_ADDR]] {data_attr = #cuf.cuda, fortran_attrs = #fir.var_attrs, uniq_name = "_QMdataEb"} : (!fir.ref>>>) -> (!fir.ref>>>, !fir.ref>>>) // CHECK: _FortranAAllocatableSetBounds // CHECK: %[[B_BOX:.*]] = fir.convert %[[B]]#1 : (!fir.ref>>>) -> !fir.ref> -// CHECK: fir.call @_FortranACUFAllocatableAllocate(%[[B_BOX]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, i1, !fir.box, !fir.ref, i32) -> i32 +// CHECK: fir.call @_FortranACUFAllocatableAllocateSync(%[[B_BOX]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, i64, i1, !fir.box, !fir.ref, i32) -> i32 + + +func.func @_QPallocate_source() { + %c0_i64 = arith.constant 0 : i64 + %c1_i32 = arith.constant 1 : i32 + %c0_i32 = arith.constant 0 : i32 + %c1 = arith.constant 1 : index + %c0 = arith.constant 0 : index + %0 = fir.alloca !fir.box>> {bindc_name = "a", uniq_name = "_QFallocate_sourceEa"} + %4 = fir.declare %0 {fortran_attrs = #fir.var_attrs, uniq_name = "_QFallocate_sourceEa"} : (!fir.ref>>>) -> !fir.ref>>> + %5 = cuf.alloc !fir.box>> {bindc_name = "a_d", data_attr = #cuf.cuda, uniq_name = "_QFallocate_sourceEa_d"} -> !fir.ref>>> + %7 = fir.declare %5 {data_attr = #cuf.cuda, fortran_attrs = #fir.var_attrs, uniq_name = "_QFallocate_sourceEa_d"} : (!fir.ref>>>) -> !fir.ref>>> + %8 = fir.load %4 : !fir.ref>>> + %22 = cuf.allocate %7 : !fir.ref>>> source(%8 : !fir.box>>) {data_attr = #cuf.cuda} -> i32 + return +} + +// CHECK-LABEL: func.func @_QPallocate_source() +// CHECK: %[[DECL_HOST:.*]] = fir.declare %{{.*}} {fortran_attrs = #fir.var_attrs, uniq_name = "_QFallocate_sourceEa"} : (!fir.ref>>>) -> !fir.ref>>> +// CHECK: %[[DECL_DEV:.*]] = fir.declare %{{.*}} {data_attr = #cuf.cuda, fortran_attrs = #fir.var_attrs, uniq_name = "_QFallocate_sourceEa_d"} : (!fir.ref>>>) -> !fir.ref>>> +// CHECK: %[[SOURCE:.*]] = fir.load %[[DECL_HOST]] : !fir.ref>>> +// CHECK: %[[DEV_CONV:.*]] = fir.convert %[[DECL_DEV]] : (!fir.ref>>>) -> !fir.ref> +// CHECK: %[[SOURCE_CONV:.*]] = fir.convert %[[SOURCE]] : (!fir.box>>) -> !fir.box +// CHECK: %{{.*}} = fir.call @_FortranACUFAllocatableAllocateSource(%[[DEV_CONV]], %[[SOURCE_CONV]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, !fir.box, i64, i1, !fir.box, !fir.ref, i32) -> i32 + + +fir.global @_QMmod1Ea_d {data_attr = #cuf.cuda} : !fir.box>> { + %c0 = arith.constant 0 : index + %0 = fir.zero_bits !fir.heap> + %1 = fir.shape %c0, %c0 : (index, index) -> !fir.shape<2> + %2 = fir.embox %0(%1) {allocator_idx = 2 : i32} : (!fir.heap>, !fir.shape<2>) -> !fir.box>> + fir.has_value %2 : !fir.box>> +} +func.func @_QMmod1Pallocate_source_global() { + %0 = fir.address_of(@_QMmod1Ea_d) : !fir.ref>>> + %1 = fir.declare %0 {data_attr = #cuf.cuda, fortran_attrs = #fir.var_attrs, uniq_name = "_QMmod1Ea_d"} : (!fir.ref>>>) -> !fir.ref>>> + %2 = fir.alloca !fir.box>> {bindc_name = "a", uniq_name = "_QMmod1Fallocate_source_globalEa"} + %6 = fir.declare %2 {fortran_attrs = #fir.var_attrs, uniq_name = "_QMmod1Fallocate_source_globalEa"} : (!fir.ref>>>) -> !fir.ref>>> + %7 = fir.load %6 : !fir.ref>>> + %21 = cuf.allocate %1 : !fir.ref>>> source(%7 : !fir.box>>) {data_attr = #cuf.cuda} -> i32 + return +} + +// CHECK-LABEL: func.func @_QMmod1Pallocate_source_global() +// CHECK: fir.call @_FortranACUFAllocatableAllocateSourceSync + +func.func @_QQallocate_stream() { + %0 = cuf.alloc !fir.box>> {bindc_name = "a", data_attr = #cuf.cuda, uniq_name = "_QFEa"} -> !fir.ref>>> + %1 = fir.declare %0 {data_attr = #cuf.cuda, fortran_attrs = #fir.var_attrs, uniq_name = "_QFEa"} : (!fir.ref>>>) -> !fir.ref>>> + %2 = fir.alloca i64 {bindc_name = "stream1", uniq_name = "_QFEstream1"} + %3 = fir.declare %2 {uniq_name = "_QFEstream1"} : (!fir.ref) -> !fir.ref + %4 = fir.load %3 : !fir.ref + %5 = cuf.allocate %1 : !fir.ref>>> stream(%4 : i64) {data_attr = #cuf.cuda} -> i32 + return +} + +// CHECK-LABEL: func.func @_QQallocate_stream() +// CHECK: %[[STREAM_ALLOCA:.*]] = fir.alloca i64 {bindc_name = "stream1", uniq_name = "_QFEstream1"} +// CHECK: %[[STREAM:.*]] = fir.declare %[[STREAM_ALLOCA]] {uniq_name = "_QFEstream1"} : (!fir.ref) -> !fir.ref +// CHECK: %[[STREAM_LOAD:.*]] = fir.load %[[STREAM]] : !fir.ref +// CHECK: fir.call @_FortranACUFAllocatableAllocate(%{{.*}}, %[[STREAM_LOAD]], %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!fir.ref>, i64, i1, !fir.box, !fir.ref, i32) -> i32 } // end of module diff --git a/flang/test/Fir/CUDA/cuda-device-context.mlir b/flang/test/Fir/CUDA/cuda-device-context.mlir new file mode 100644 index 0000000000000..89d68721ccaf2 --- /dev/null +++ b/flang/test/Fir/CUDA/cuda-device-context.mlir @@ -0,0 +1,49 @@ +// RUN: fir-opt --simplify-intrinsics %s | FileCheck %s + +func.func @_QPsum_in_device(%arg0: !fir.ref> {cuf.data_attr = #cuf.cuda, fir.bindc_name = "a"}, %arg1: i32 {fir.bindc_name = "n"}) attributes {cuf.proc_attr = #cuf.cuda_proc} { + %c5_i32 = arith.constant 5 : i32 + %c1 = arith.constant 1 : index + %c0 = arith.constant 0 : index + %c-1 = arith.constant -1 : index + %0 = fir.dummy_scope : !fir.dscope + %1 = fir.shape %c-1 : (index) -> !fir.shape<1> + %2 = fir.declare %arg0(%1) dummy_scope %0 {data_attr = #cuf.cuda, uniq_name = "_QFsum_in_deviceEa"} : (!fir.ref>, !fir.shape<1>, !fir.dscope) -> !fir.ref> + %3 = fir.embox %2(%1) : (!fir.ref>, !fir.shape<1>) -> !fir.box> + %4 = fir.alloca i32 + fir.store %arg1 to %4 : !fir.ref + %5 = fir.declare %4 dummy_scope %0 {fortran_attrs = #fir.var_attrs, uniq_name = "_QFsum_in_deviceEn"} : (!fir.ref, !fir.dscope) -> !fir.ref + %12 = fir.alloca i32 {bindc_name = "i", uniq_name = "_QFsum_in_deviceEi"} + %13 = fir.declare %12 {uniq_name = "_QFsum_in_deviceEi"} : (!fir.ref) -> !fir.ref + %14 = fir.address_of(@_QM__fortran_builtinsE__builtin_threadidx) : !fir.ref> + %18 = fir.load %5 : !fir.ref + %19 = fir.convert %18 : (i32) -> index + %20 = arith.cmpi sgt, %19, %c0 : index + %21 = arith.select %20, %19, %c0 : index + %22 = fir.alloca !fir.array, %21 {bindc_name = "auto", uniq_name = "_QFsum_in_deviceEauto"} + %23 = fir.shape %21 : (index) -> !fir.shape<1> + %24 = fir.declare %22(%23) {uniq_name = "_QFsum_in_deviceEauto"} : (!fir.ref>, !fir.shape<1>) -> !fir.ref> + %25 = fir.embox %24(%23) : (!fir.ref>, !fir.shape<1>) -> !fir.box> + %26 = fir.undefined index + %27 = fir.slice %c1, %19, %c1 : (index, index, index) -> !fir.slice<1> + %28 = fir.embox %24(%23) [%27] : (!fir.ref>, !fir.shape<1>, !fir.slice<1>) -> !fir.box> + %29 = fir.absent !fir.box + %30 = fir.address_of(@_QQclX91d13f6e74caa2f03965d7a7c6a8fdd5) : !fir.ref> + %31 = fir.convert %28 : (!fir.box>) -> !fir.box + %32 = fir.convert %30 : (!fir.ref>) -> !fir.ref + %33 = fir.convert %c0 : (index) -> i32 + %34 = fir.convert %29 : (!fir.box) -> !fir.box + %35 = fir.call @_FortranASumInteger4(%31, %32, %c5_i32, %33, %34) fastmath : (!fir.box, !fir.ref, i32, i32, !fir.box) -> i32 + %36 = fir.load %13 : !fir.ref + %37 = fir.convert %36 : (i32) -> i64 + %38 = fir.array_coor %2(%1) %37 : (!fir.ref>, !fir.shape<1>, i64) -> !fir.ref + fir.store %35 to %38 : !fir.ref + return +} + +// Check that intrinsic simplification is disabled in CUDA Fortran context. The simplified intrinsic is +// created in the module op but the device func will be migrated into a gpu module op resulting in a +// missing symbol error. +// The simplified intrinsic could also be migrated to the gpu module but the choice has not be made +// at this point. +// CHECK-LABEL: func.func @_QPsum_in_device +// CHECK-NOT: fir.call @_FortranASumInteger4x1_contract_simplified diff --git a/flang/test/Fir/struct-return-aarch64.fir b/flang/test/Fir/struct-return-aarch64.fir new file mode 100644 index 0000000000000..8b75c2cac7b6b --- /dev/null +++ b/flang/test/Fir/struct-return-aarch64.fir @@ -0,0 +1,229 @@ +// Test AArch64 ABI rewrite of struct returned by value (BIND(C), VALUE derived types). +// RUN: fir-opt --target-rewrite="target=aarch64-unknown-linux-gnu" %s | FileCheck %s + +!composite = !fir.type +// CHECK-LABEL: func.func private @test_composite() -> !fir.array<2xi64> +func.func private @test_composite() -> !composite +// CHECK-LABEL: func.func @test_call_composite( +// CHECK-SAME: %[[ARG0:.*]]: !fir.ref>) +func.func @test_call_composite(%arg0 : !fir.ref) { + // CHECK: %[[OUT:.*]] = fir.call @test_composite() : () -> !fir.array<2xi64> + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.array<2xi64> + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref>) -> !fir.ref> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + %out = fir.call @test_composite() : () -> !composite + // CHECK: fir.store %[[LD]] to %[[ARG0]] : !fir.ref> + fir.store %out to %arg0 : !fir.ref + // CHECK: return + return +} + +!hfa_f16 = !fir.type +// CHECK-LABEL: func.func private @test_hfa_f16() -> !fir.type +func.func private @test_hfa_f16() -> !hfa_f16 +// CHECK-LABEL: func.func @test_call_hfa_f16( +// CHECK-SAME: %[[ARG0:.*]]: !fir.ref>) { +func.func @test_call_hfa_f16(%arg0 : !fir.ref) { + // CHECK: %[[OUT:.*]] = fir.call @test_hfa_f16() : () -> !fir.type + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.type + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref>) -> !fir.ref> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + %out = fir.call @test_hfa_f16() : () -> !hfa_f16 + // CHECK: fir.store %[[LD]] to %[[ARG0]] : !fir.ref> + fir.store %out to %arg0 : !fir.ref + return +} + +!hfa_f32 = !fir.type +// CHECK-LABEL: func.func private @test_hfa_f32() -> !fir.type +func.func private @test_hfa_f32() -> !hfa_f32 +// CHECK-LABEL: func.func @test_call_hfa_f32( +// CHECK-SAME: %[[ARG0:.*]]: !fir.ref>) { +func.func @test_call_hfa_f32(%arg0 : !fir.ref) { + // CHECK: %[[OUT:.*]] = fir.call @test_hfa_f32() : () -> !fir.type + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.type + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref>) -> !fir.ref> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + %out = fir.call @test_hfa_f32() : () -> !hfa_f32 + // CHECK: fir.store %[[LD]] to %[[ARG0]] : !fir.ref> + fir.store %out to %arg0 : !fir.ref + return +} + +!hfa_f64 = !fir.type +// CHECK-LABEL: func.func private @test_hfa_f64() -> !fir.type +func.func private @test_hfa_f64() -> !hfa_f64 +// CHECK-LABEL: func.func @test_call_hfa_f64( +// CHECK-SAME: %[[ARG0:.*]]: !fir.ref>) +func.func @test_call_hfa_f64(%arg0 : !fir.ref) { + // CHECK: %[[OUT:.*]] = fir.call @test_hfa_f64() : () -> !fir.type + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.type + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref>) -> !fir.ref> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + %out = fir.call @test_hfa_f64() : () -> !hfa_f64 + // CHECK: fir.store %[[LD]] to %[[ARG0]] : !fir.ref> + fir.store %out to %arg0 : !fir.ref + return +} + +!hfa_f128 = !fir.type +// CHECK-LABEL: func.func private @test_hfa_f128() -> !fir.type +func.func private @test_hfa_f128() -> !hfa_f128 +// CHECK-LABEL: func.func @test_call_hfa_f128( +// CHECK-SAME: %[[ARG0:.*]]: !fir.ref>) { +func.func @test_call_hfa_f128(%arg0 : !fir.ref) { + // CHECK: %[[OUT:.*]] = fir.call @test_hfa_f128() : () -> !fir.type + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.type + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref>) -> !fir.ref> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + %out = fir.call @test_hfa_f128() : () -> !hfa_f128 + // CHECK: fir.store %[[LD]] to %[[ARG0]] : !fir.ref> + fir.store %out to %arg0 : !fir.ref + return +} + +!hfa_bf16 = !fir.type +// CHECK-LABEL: func.func private @test_hfa_bf16() -> !fir.type +func.func private @test_hfa_bf16() -> !hfa_bf16 +// CHECK-LABEL: func.func @test_call_hfa_bf16( +// CHECK-SAME: %[[ARG0:.*]]: !fir.ref>) { +func.func @test_call_hfa_bf16(%arg0 : !fir.ref) { + // CHECK: %[[OUT:.*]] = fir.call @test_hfa_bf16() : () -> !fir.type + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.type + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref>) -> !fir.ref> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + %out = fir.call @test_hfa_bf16() : () -> !hfa_bf16 + // CHECK: fir.store %[[LD]] to %[[ARG0]] : !fir.ref> + fir.store %out to %arg0 : !fir.ref + return +} + +!too_big = !fir.type +// CHECK-LABEL: func.func private @test_too_big(!fir.ref> +// CHECK-SAME: {llvm.align = 8 : i32, llvm.sret = !fir.type}) +func.func private @test_too_big() -> !too_big +// CHECK-LABEL: func.func @test_call_too_big( +// CHECK-SAME: %[[ARG0:.*]]: !fir.ref>) { +func.func @test_call_too_big(%arg0 : !fir.ref) { + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARG:.*]] = fir.alloca !fir.type + // CHECK: fir.call @test_too_big(%[[ARG]]) : (!fir.ref>) -> () + // CHECK: %[[CVT:.*]] = fir.convert %[[ARG]] : (!fir.ref>) -> !fir.ref> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + %out = fir.call @test_too_big() : () -> !too_big + // CHECK: fir.store %[[LD]] to %[[ARG0]] : !fir.ref> + fir.store %out to %arg0 : !fir.ref + return +} + + +!too_big_hfa = !fir.type}> +// CHECK-LABEL: func.func private @test_too_big_hfa(!fir.ref}>> +// CHECK-SAME: {llvm.align = 8 : i32, llvm.sret = !fir.type}>}) +func.func private @test_too_big_hfa() -> !too_big_hfa +// CHECK-LABEL: func.func @test_call_too_big_hfa( +// CHECK-SAME: %[[ARG0:.*]]: !fir.ref}>>) { +func.func @test_call_too_big_hfa(%arg0 : !fir.ref) { + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARG:.*]] = fir.alloca !fir.type}> + // CHECK: fir.call @test_too_big_hfa(%[[ARG]]) : (!fir.ref}>>) -> () + // CHECK: %[[CVT:.*]] = fir.convert %[[ARG]] : (!fir.ref}>>) -> !fir.ref}>> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref}>> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + %out = fir.call @test_too_big_hfa() : () -> !too_big_hfa + // CHECK: fir.store %[[LD]] to %[[ARG0]] : !fir.ref}>> + fir.store %out to %arg0 : !fir.ref + return +} + +!nested_hfa_first = !fir.type +// CHECK-LABEL: func.func private @test_nested_hfa_first() -> !fir.type,c:f16}> +func.func private @test_nested_hfa_first() -> !nested_hfa_first +// CHECK-LABEL: func.func @test_call_nested_hfa_first(%arg0: !fir.ref,c:f16}>>) { +func.func @test_call_nested_hfa_first(%arg0 : !fir.ref) { + %out = fir.call @test_nested_hfa_first() : () -> !nested_hfa_first + // CHECK: %[[OUT:.*]] = fir.call @test_nested_hfa_first() : () -> !fir.type,c:f16}> + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.type,c:f16}> + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref,c:f16}>> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref,c:f16}>> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref,c:f16}>> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + fir.store %out to %arg0 : !fir.ref + // CHECK fir.store %[[LD]] to %[[ARG0]] : !fir.ref,c:f16}>> + return +} + + +!nested_hfa_middle = !fir.type +// CHECK-LABEL: func.func private @test_nested_hfa_middle() -> !fir.type,c:f16}> +func.func private @test_nested_hfa_middle() -> !nested_hfa_middle +// CHECK-LABEL: func.func @test_call_nested_hfa_middle(%arg0: !fir.ref,c:f16}>>) { +func.func @test_call_nested_hfa_middle(%arg0 : !fir.ref) { + %out = fir.call @test_nested_hfa_middle() : () -> !nested_hfa_middle + // CHECK: %[[OUT:.*]] = fir.call @test_nested_hfa_middle() : () -> !fir.type,c:f16}> + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.type,c:f16}> + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref,c:f16}>> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref,c:f16}>> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref,c:f16}>> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + fir.store %out to %arg0 : !fir.ref + // CHECK fir.store %[[LD]] to %[[ARG0]] : !fir.ref,c:f16}>> + return +} + +!nested_hfa_end = !fir.type +// CHECK-LABEL: func.func private @test_nested_hfa_end() -> !fir.type}> +func.func private @test_nested_hfa_end() -> !nested_hfa_end +// CHECK-LABEL: func.func @test_call_nested_hfa_end(%arg0: !fir.ref}>>) { +func.func @test_call_nested_hfa_end(%arg0 : !fir.ref) { + %out = fir.call @test_nested_hfa_end() : () -> !nested_hfa_end + // CHECK: %[[OUT:.*]] = fir.call @test_nested_hfa_end() : () -> !fir.type}> + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.type}> + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref}>> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref}>> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref}>> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + fir.store %out to %arg0 : !fir.ref + // CHECK fir.store %[[LD]] to %[[ARG0]] : !fir.ref}>> + return +} + +!nested_hfa_array = !fir.type,b:f32}> +// CHECK-LABEL: func.func private @test_nested_hfa_array() -> !fir.type,b:f32}> +func.func private @test_nested_hfa_array() -> !nested_hfa_array +// CHECK-LABEL: func.func @test_call_nested_hfa_array(%arg0: !fir.ref,b:f32}> +func.func @test_call_nested_hfa_array(%arg0 : !fir.ref) { + %out = fir.call @test_nested_hfa_array() : () -> !nested_hfa_array + // CHECK: %[[OUT:.*]] = fir.call @test_nested_hfa_array() : () -> !fir.type,b:f32}> + // CHECK: %[[STACK:.*]] = llvm.intr.stacksave : !llvm.ptr + // CHECK: %[[ARR:.*]] = fir.alloca !fir.type,b:f32}> + // CHECK: fir.store %[[OUT]] to %[[ARR]] : !fir.ref,b:f32}> + // CHECK: %[[CVT:.*]] = fir.convert %[[ARR]] : (!fir.ref,b:f32}> + // CHECK: %[[LD:.*]] = fir.load %[[CVT]] : !fir.ref,b:f32}> + // CHECK: llvm.intr.stackrestore %[[STACK]] : !llvm.ptr + fir.store %out to %arg0 : !fir.ref + // CHECK fir.store %[[LD]] to %[[ARG0]] : !fir.ref,b:f32}> + return +} diff --git a/flang/test/HLFIR/bufferize-workshare.fir b/flang/test/HLFIR/bufferize-workshare.fir new file mode 100644 index 0000000000000..af5abb381937e --- /dev/null +++ b/flang/test/HLFIR/bufferize-workshare.fir @@ -0,0 +1,57 @@ +// RUN: fir-opt --bufferize-hlfir %s | FileCheck %s + +// CHECK-LABEL: func.func @simple( +// CHECK-SAME: %[[VAL_0:.*]]: !fir.ref>) { +// CHECK: omp.parallel { +// CHECK: omp.workshare { +// CHECK: %[[VAL_1:.*]] = arith.constant 42 : index +// CHECK: %[[VAL_2:.*]] = arith.constant 1 : i32 +// CHECK: %[[VAL_3:.*]] = fir.shape %[[VAL_1]] : (index) -> !fir.shape<1> +// CHECK: %[[VAL_4:.*]]:2 = hlfir.declare %[[VAL_0]](%[[VAL_3]]) {uniq_name = "array"} : (!fir.ref>, !fir.shape<1>) -> (!fir.ref>, !fir.ref>) +// CHECK: %[[VAL_5:.*]] = fir.allocmem !fir.array<42xi32> {bindc_name = ".tmp.array", uniq_name = ""} +// CHECK: %[[VAL_6:.*]]:2 = hlfir.declare %[[VAL_5]](%[[VAL_3]]) {uniq_name = ".tmp.array"} : (!fir.heap>, !fir.shape<1>) -> (!fir.heap>, !fir.heap>) +// CHECK: %[[VAL_7:.*]] = arith.constant true +// CHECK: %[[VAL_8:.*]] = arith.constant 1 : index +// CHECK: omp.workshare.loop_wrapper { +// CHECK: omp.loop_nest (%[[VAL_9:.*]]) : index = (%[[VAL_8]]) to (%[[VAL_1]]) inclusive step (%[[VAL_8]]) { +// CHECK: %[[VAL_10:.*]] = hlfir.designate %[[VAL_4]]#0 (%[[VAL_9]]) : (!fir.ref>, index) -> !fir.ref +// CHECK: %[[VAL_11:.*]] = fir.load %[[VAL_10]] : !fir.ref +// CHECK: %[[VAL_12:.*]] = arith.subi %[[VAL_11]], %[[VAL_2]] : i32 +// CHECK: %[[VAL_13:.*]] = hlfir.designate %[[VAL_6]]#0 (%[[VAL_9]]) : (!fir.heap>, index) -> !fir.ref +// CHECK: hlfir.assign %[[VAL_12]] to %[[VAL_13]] temporary_lhs : i32, !fir.ref +// CHECK: omp.yield +// CHECK: } +// CHECK: } +// CHECK: %[[VAL_14:.*]] = fir.undefined tuple>, i1> +// CHECK: %[[VAL_15:.*]] = fir.insert_value %[[VAL_14]], %[[VAL_7]], [1 : index] : (tuple>, i1>, i1) -> tuple>, i1> +// CHECK: %[[VAL_16:.*]] = fir.insert_value %[[VAL_15]], %[[VAL_6]]#0, [0 : index] : (tuple>, i1>, !fir.heap>) -> tuple>, i1> +// CHECK: hlfir.assign %[[VAL_6]]#0 to %[[VAL_4]]#0 : !fir.heap>, !fir.ref> +// CHECK: fir.freemem %[[VAL_6]]#0 : !fir.heap> +// CHECK: omp.terminator +// CHECK: } +// CHECK: omp.terminator +// CHECK: } +// CHECK: return +// CHECK: } +func.func @simple(%arg: !fir.ref>) { + omp.parallel { + omp.workshare { + %c42 = arith.constant 42 : index + %c1_i32 = arith.constant 1 : i32 + %shape = fir.shape %c42 : (index) -> !fir.shape<1> + %array:2 = hlfir.declare %arg(%shape) {uniq_name = "array"} : (!fir.ref>, !fir.shape<1>) -> (!fir.ref>, !fir.ref>) + %elemental = hlfir.elemental %shape unordered : (!fir.shape<1>) -> !hlfir.expr<42xi32> { + ^bb0(%i: index): + %ref = hlfir.designate %array#0 (%i) : (!fir.ref>, index) -> !fir.ref + %val = fir.load %ref : !fir.ref + %sub = arith.subi %val, %c1_i32 : i32 + hlfir.yield_element %sub : i32 + } + hlfir.assign %elemental to %array#0 : !hlfir.expr<42xi32>, !fir.ref> + hlfir.destroy %elemental : !hlfir.expr<42xi32> + omp.terminator + } + omp.terminator + } + return +} diff --git a/flang/test/Integration/OpenMP/workshare-array-array-assign.f90 b/flang/test/Integration/OpenMP/workshare-array-array-assign.f90 new file mode 100644 index 0000000000000..e9ec5d9175beb --- /dev/null +++ b/flang/test/Integration/OpenMP/workshare-array-array-assign.f90 @@ -0,0 +1,34 @@ +!===----------------------------------------------------------------------===! +! This directory can be used to add Integration tests involving multiple +! stages of the compiler (for eg. from Fortran to LLVM IR). It should not +! contain executable tests. We should only add tests here sparingly and only +! if there is no other way to test. Repeat this message in each test that is +! added to this directory and sub-directories. +!===----------------------------------------------------------------------===! + +!RUN: %flang_fc1 -emit-hlfir -fopenmp -O3 %s -o - | FileCheck %s --check-prefix HLFIR +!RUN: %flang_fc1 -emit-fir -fopenmp -O3 %s -o - | FileCheck %s --check-prefix FIR + +subroutine sb1(x, y) + integer :: x(:) + integer :: y(:) + !$omp parallel workshare + x = y + !$omp end parallel workshare +end subroutine + +! HLFIR: omp.parallel { +! HLFIR: omp.workshare { +! HLFIR: hlfir.assign +! HLFIR: omp.terminator +! HLFIR: } +! HLFIR: omp.terminator +! HLFIR: } + +! FIR: omp.parallel { +! FIR: omp.wsloop nowait { +! FIR: omp.loop_nest +! FIR: } +! FIR: omp.barrier +! FIR: omp.terminator +! FIR: } diff --git a/flang/test/Integration/OpenMP/workshare-axpy.f90 b/flang/test/Integration/OpenMP/workshare-axpy.f90 new file mode 100644 index 0000000000000..0c4524f855290 --- /dev/null +++ b/flang/test/Integration/OpenMP/workshare-axpy.f90 @@ -0,0 +1,57 @@ +!===----------------------------------------------------------------------===! +! This directory can be used to add Integration tests involving multiple +! stages of the compiler (for eg. from Fortran to LLVM IR). It should not +! contain executable tests. We should only add tests here sparingly and only +! if there is no other way to test. Repeat this message in each test that is +! added to this directory and sub-directories. +!===----------------------------------------------------------------------===! + +!RUN: %flang_fc1 -emit-hlfir -fopenmp -O3 %s -o - | FileCheck %s --check-prefix HLFIR +!RUN: %flang_fc1 -emit-fir -fopenmp -O3 %s -o - | FileCheck %s --check-prefix FIR + +subroutine sb1(a, x, y, z) + integer :: a + integer :: x(:) + integer :: y(:) + integer :: z(:) + !$omp parallel workshare + z = a * x + y + !$omp end parallel workshare +end subroutine + +! HLFIR: func.func @_QPsb1 +! HLFIR: omp.parallel { +! HLFIR: omp.workshare { +! HLFIR: hlfir.elemental {{.*}} unordered : (!fir.shape<1>) -> !hlfir.expr { +! HLFIR: hlfir.elemental {{.*}} unordered : (!fir.shape<1>) -> !hlfir.expr { +! HLFIR: hlfir.assign +! HLFIR: hlfir.destroy +! HLFIR: hlfir.destroy +! HLFIR-NOT: omp.barrier +! HLFIR: omp.terminator +! HLFIR: } +! HLFIR-NOT: omp.barrier +! HLFIR: omp.terminator +! HLFIR: } +! HLFIR: return +! HLFIR: } +! HLFIR:} + + +! FIR: func.func private @_workshare_copy_heap_Uxi32(%{{[a-z0-9]+}}: !fir.ref>>, %{{[a-z0-9]+}}: !fir.ref>> +! FIR: func.func private @_workshare_copy_i32(%{{[a-z0-9]+}}: !fir.ref, %{{[a-z0-9]+}}: !fir.ref + +! FIR: func.func @_QPsb1 +! FIR: omp.parallel { +! FIR: omp.single copyprivate(%9 -> @_workshare_copy_i32 : !fir.ref, %10 -> @_workshare_copy_heap_Uxi32 : !fir.ref>>) { +! FIR: fir.allocmem +! FIR: omp.wsloop { +! FIR: omp.loop_nest +! FIR: omp.single nowait { +! FIR: fir.call @_FortranAAssign +! FIR: fir.freemem +! FIR: omp.terminator +! FIR: } +! FIR: omp.barrier +! FIR: omp.terminator +! FIR: } diff --git a/flang/test/Integration/OpenMP/workshare-scalar-array-assign.f90 b/flang/test/Integration/OpenMP/workshare-scalar-array-assign.f90 new file mode 100644 index 0000000000000..6c180cd639997 --- /dev/null +++ b/flang/test/Integration/OpenMP/workshare-scalar-array-assign.f90 @@ -0,0 +1,45 @@ +!===----------------------------------------------------------------------===! +! This directory can be used to add Integration tests involving multiple +! stages of the compiler (for eg. from Fortran to LLVM IR). It should not +! contain executable tests. We should only add tests here sparingly and only +! if there is no other way to test. Repeat this message in each test that is +! added to this directory and sub-directories. +!===----------------------------------------------------------------------===! + +!RUN: %flang_fc1 -emit-hlfir -fopenmp -O3 %s -o - | FileCheck %s --check-prefix HLFIR +!RUN: %flang_fc1 -emit-fir -fopenmp -O3 %s -o - | FileCheck %s --check-prefix FIR + +subroutine sb1(a, x) + integer :: a + integer :: x(:) + !$omp parallel workshare + x = a + !$omp end parallel workshare +end subroutine + +! HLFIR: omp.parallel { +! HLFIR: omp.workshare { +! HLFIR: %[[SCALAR:.*]] = fir.load %1#0 : !fir.ref +! HLFIR: hlfir.assign %[[SCALAR]] to +! HLFIR: omp.terminator +! HLFIR: } +! HLFIR: omp.terminator +! HLFIR: } + +! FIR: omp.parallel { +! FIR: %[[SCALAR_ALLOCA:.*]] = fir.alloca i32 +! FIR: omp.single copyprivate(%[[SCALAR_ALLOCA]] -> @_workshare_copy_i32 : !fir.ref) { +! FIR: %[[SCALAR_LOAD:.*]] = fir.load %{{.*}} : !fir.ref +! FIR: fir.store %[[SCALAR_LOAD]] to %[[SCALAR_ALLOCA]] : !fir.ref +! FIR: omp.terminator +! FIR: } +! FIR: %[[SCALAR_RELOAD:.*]] = fir.load %[[SCALAR_ALLOCA]] : !fir.ref +! FIR: %6:3 = fir.box_dims %3, %c0 : (!fir.box>, index) -> (index, index, index) +! FIR: omp.wsloop nowait { +! FIR: omp.loop_nest (%arg2) : index = (%c1) to (%6#1) inclusive step (%c1) { +! FIR: fir.store %[[SCALAR_RELOAD]] +! FIR: omp.yield +! FIR: } +! FIR: } +! FIR: omp.barrier +! FIR: omp.terminator diff --git a/flang/test/Integration/OpenMP/workshare-scalar-array-mul.f90 b/flang/test/Integration/OpenMP/workshare-scalar-array-mul.f90 new file mode 100644 index 0000000000000..9b8ef66b48f47 --- /dev/null +++ b/flang/test/Integration/OpenMP/workshare-scalar-array-mul.f90 @@ -0,0 +1,65 @@ +!===----------------------------------------------------------------------===! +! This directory can be used to add Integration tests involving multiple +! stages of the compiler (for eg. from Fortran to LLVM IR). It should not +! contain executable tests. We should only add tests here sparingly and only +! if there is no other way to test. Repeat this message in each test that is +! added to this directory and sub-directories. +!===----------------------------------------------------------------------===! + +!RUN: %flang_fc1 -emit-hlfir -fopenmp -O3 %s -o - | FileCheck %s --check-prefix HLFIR-O3 +!RUN: %flang_fc1 -emit-fir -fopenmp -O3 %s -o - | FileCheck %s --check-prefix FIR-O3 + +!RUN: %flang_fc1 -emit-hlfir -fopenmp -O0 %s -o - | FileCheck %s --check-prefix HLFIR-O0 +!RUN: %flang_fc1 -emit-fir -fopenmp -O0 %s -o - | FileCheck %s --check-prefix FIR-O0 + +program test + real :: arr_01(10) + !$omp parallel workshare + arr_01 = arr_01*2 + !$omp end parallel workshare +end program + +! HLFIR-O3: omp.parallel { +! HLFIR-O3: omp.workshare { +! HLFIR-O3: hlfir.elemental +! HLFIR-O3: hlfir.assign +! HLFIR-O3: hlfir.destroy +! HLFIR-O3: omp.terminator +! HLFIR-O3: omp.terminator + +! FIR-O3: omp.parallel { +! FIR-O3: omp.wsloop nowait { +! FIR-O3: omp.loop_nest +! FIR-O3: omp.barrier +! FIR-O3: omp.terminator + +! HLFIR-O0: omp.parallel { +! HLFIR-O0: omp.workshare { +! HLFIR-O0: hlfir.elemental +! HLFIR-O0: hlfir.assign +! HLFIR-O0: hlfir.destroy +! HLFIR-O0: omp.terminator +! HLFIR-O0: omp.terminator + +! Check the copyprivate copy function +! FIR-O0: func.func private @_workshare_copy_heap_{{.*}}(%[[DST:.*]]: {{.*}}, %[[SRC:.*]]: {{.*}}) +! FIR-O0: fir.load %[[SRC]] +! FIR-O0: fir.store {{.*}} to %[[DST]] + +! Check that we properly handle the temporary array +! FIR-O0: omp.parallel { +! FIR-O0: %[[CP:.*]] = fir.alloca !fir.heap> +! FIR-O0: omp.single copyprivate(%[[CP]] -> @_workshare_copy_heap_ +! FIR-O0: fir.allocmem +! FIR-O0: fir.store +! FIR-O0: omp.terminator +! FIR-O0: fir.load %[[CP]] +! FIR-O0: omp.wsloop { +! FIR-O0: omp.loop_nest +! FIR-O0: omp.yield +! FIR-O0: omp.single nowait { +! FIR-O0: fir.call @_FortranAAssign +! FIR-O0: fir.freemem +! FIR-O0: omp.terminator +! FIR-O0: omp.barrier +! FIR-O0: omp.terminator diff --git a/flang/test/Lower/OpenMP/Todo/flush-seq-cst.f90 b/flang/test/Lower/OpenMP/Todo/flush-seq-cst.f90 new file mode 100644 index 0000000000000..753e1cfcd7aa5 --- /dev/null +++ b/flang/test/Lower/OpenMP/Todo/flush-seq-cst.f90 @@ -0,0 +1,6 @@ +! RUN: %not_todo_cmd %flang_fc1 -emit-fir -fopenmp -o - %s -fopenmp-version=51 2>&1 | FileCheck %s + +! CHECK: not yet implemented: Unhandled clause SEQ_CST in FLUSH construct +program flush_seq_cst + !$omp flush seq_cst +end program \ No newline at end of file diff --git a/flang/test/Lower/OpenMP/Todo/map-mapper.f90 b/flang/test/Lower/OpenMP/Todo/map-mapper.f90 index d83c20db29307..9554ffd5fda7b 100644 --- a/flang/test/Lower/OpenMP/Todo/map-mapper.f90 +++ b/flang/test/Lower/OpenMP/Todo/map-mapper.f90 @@ -8,7 +8,7 @@ program p !!end type t1 !!!$omp declare mapper(xx : t1 :: nn) map(nn, nn%x) !$omp target map(mapper(xx), from:a) -!CHECK: not yet implemented: OmpMapClause(MAPPER(...)) +!CHECK: not yet implemented: Support for mapper modifiers is not implemented yet do i=1,n a(i) = 4.2 end do diff --git a/flang/test/Parser/OpenMP/defaultmap-clause.f90 b/flang/test/Parser/OpenMP/defaultmap-clause.f90 index 6f018ffe8561c..dc036aedcd003 100644 --- a/flang/test/Parser/OpenMP/defaultmap-clause.f90 +++ b/flang/test/Parser/OpenMP/defaultmap-clause.f90 @@ -31,7 +31,7 @@ subroutine f01 !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: | | ImplicitBehavior = Firstprivate -!PARSE-TREE: | | VariableCategory = Aggregate +!PARSE-TREE: | | Modifier -> OmpVariableCategory -> Value = Aggregate subroutine f02 !$omp target defaultmap(alloc: all) @@ -47,7 +47,7 @@ subroutine f02 !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: | | ImplicitBehavior = Alloc -!PARSE-TREE: | | VariableCategory = All +!PARSE-TREE: | | Modifier -> OmpVariableCategory -> Value = All ! Both "all" and "allocatable" are valid, and "all" is a prefix of ! "allocatable". Make sure we parse this correctly. @@ -65,7 +65,7 @@ subroutine f03 !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: | | ImplicitBehavior = Alloc -!PARSE-TREE: | | VariableCategory = Allocatable +!PARSE-TREE: | | Modifier -> OmpVariableCategory -> Value = Allocatable subroutine f04 !$omp target defaultmap(tofrom: scalar) @@ -81,4 +81,4 @@ subroutine f04 !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: | | ImplicitBehavior = Tofrom -!PARSE-TREE: | | VariableCategory = Scalar +!PARSE-TREE: | | Modifier -> OmpVariableCategory -> Value = Scalar diff --git a/flang/test/Parser/OpenMP/defaultmap-unparse.f90 b/flang/test/Parser/OpenMP/defaultmap-unparse.f90 index e7333b02bc8f6..bbbb6fc938326 100644 --- a/flang/test/Parser/OpenMP/defaultmap-unparse.f90 +++ b/flang/test/Parser/OpenMP/defaultmap-unparse.f90 @@ -38,7 +38,7 @@ program main !PARSE-TREE: OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: ImplicitBehavior = Tofrom -!PARSE-TREE: VariableCategory = Scalar +!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar !CHECK: !$omp target defaultmap(alloc:scalar) !$omp target defaultmap(alloc:scalar) @@ -50,7 +50,7 @@ program main !PARSE-TREE: OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: ImplicitBehavior = Alloc -!PARSE-TREE: VariableCategory = Scalar +!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar !CHECK: !$omp target defaultmap(none) !$omp target defaultmap(none) @@ -73,7 +73,7 @@ program main !PARSE-TREE: OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: ImplicitBehavior = None -!PARSE-TREE: VariableCategory = Scalar +!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar !CHECK: !$omp target defaultmap(to:scalar) !$omp target defaultmap(to:scalar) @@ -85,7 +85,7 @@ program main !PARSE-TREE: OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: ImplicitBehavior = To -!PARSE-TREE: VariableCategory = Scalar +!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar !CHECK: !$omp target defaultmap(firstprivate:scalar) !$omp target defaultmap(firstprivate:scalar) @@ -97,7 +97,7 @@ program main !PARSE-TREE: OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: ImplicitBehavior = Firstprivate -!PARSE-TREE: VariableCategory = Scalar +!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar !CHECK: !$omp target defaultmap(tofrom:aggregate) !$omp target defaultmap(tofrom:aggregate) @@ -112,7 +112,7 @@ program main !PARSE-TREE: OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: ImplicitBehavior = Tofrom -!PARSE-TREE: VariableCategory = Aggregate +!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Aggregate !CHECK: !$omp target defaultmap(tofrom:allocatable) !$omp target defaultmap(tofrom:allocatable) @@ -124,7 +124,7 @@ program main !PARSE-TREE: OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: ImplicitBehavior = Tofrom -!PARSE-TREE: VariableCategory = Allocatable +!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Allocatable !CHECK: !$omp target defaultmap(default:pointer) !$omp target defaultmap(default:pointer) @@ -138,7 +138,7 @@ program main !PARSE-TREE: OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause !PARSE-TREE: ImplicitBehavior = Default -!PARSE-TREE: VariableCategory = Pointer +!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Pointer end program main !CHECK-LABEL: end program main diff --git a/flang/test/Parser/OpenMP/from-clause.f90 b/flang/test/Parser/OpenMP/from-clause.f90 index cff9c077c0a94..acd5843ff0c4a 100644 --- a/flang/test/Parser/OpenMP/from-clause.f90 +++ b/flang/test/Parser/OpenMP/from-clause.f90 @@ -28,7 +28,7 @@ subroutine f01(x) !PARSE-TREE: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target update !PARSE-TREE: OmpClauseList -> OmpClause -> From -> OmpFromClause -!PARSE-TREE: | Expectation = Present +!PARSE-TREE: | Modifier -> OmpExpectation -> Value = Present !PARSE-TREE: | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'x' !PARSE-TREE: | bool = 'true' @@ -44,8 +44,8 @@ subroutine f02(x) !PARSE-TREE: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target update !PARSE-TREE: OmpClauseList -> OmpClause -> From -> OmpFromClause -!PARSE-TREE: | Expectation = Present -!PARSE-TREE: | OmpIterator -> OmpIteratorSpecifier +!PARSE-TREE: | Modifier -> OmpExpectation -> Value = Present +!PARSE-TREE: | Modifier -> OmpIterator -> OmpIteratorSpecifier !PARSE-TREE: | | TypeDeclarationStmt !PARSE-TREE: | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> !PARSE-TREE: | | | EntityDecl @@ -73,8 +73,8 @@ subroutine f03(x) !PARSE-TREE: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target update !PARSE-TREE: OmpClauseList -> OmpClause -> From -> OmpFromClause -!PARSE-TREE: | Expectation = Present -!PARSE-TREE: | OmpIterator -> OmpIteratorSpecifier +!PARSE-TREE: | Modifier -> OmpExpectation -> Value = Present +!PARSE-TREE: | Modifier -> OmpIterator -> OmpIteratorSpecifier !PARSE-TREE: | | TypeDeclarationStmt !PARSE-TREE: | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> !PARSE-TREE: | | | EntityDecl diff --git a/flang/test/Parser/OpenMP/map-modifiers.f90 b/flang/test/Parser/OpenMP/map-modifiers.f90 index 578512283c4dc..4e034e51352e4 100644 --- a/flang/test/Parser/OpenMP/map-modifiers.f90 +++ b/flang/test/Parser/OpenMP/map-modifiers.f90 @@ -18,11 +18,11 @@ subroutine f00(x) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | TypeModifier = Ompx_Hold -!PARSE-TREE: | | TypeModifier = Always -!PARSE-TREE: | | TypeModifier = Present -!PARSE-TREE: | | TypeModifier = Close -!PARSE-TREE: | | Type = To +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Ompx_Hold +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Always +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Present +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Close +!PARSE-TREE: | | Modifier -> OmpMapType -> Value = To !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'x' !PARSE-TREE: | | bool = 'true' @@ -43,10 +43,10 @@ subroutine f01(x) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | TypeModifier = Ompx_Hold -!PARSE-TREE: | | TypeModifier = Always -!PARSE-TREE: | | TypeModifier = Present -!PARSE-TREE: | | TypeModifier = Close +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Ompx_Hold +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Always +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Present +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Close !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'x' !PARSE-TREE: | | bool = 'true' @@ -67,7 +67,7 @@ subroutine f02(x) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | Type = From +!PARSE-TREE: | | Modifier -> OmpMapType -> Value = From !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'x' !PARSE-TREE: | | bool = 'true' @@ -108,11 +108,11 @@ subroutine f04(x) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | TypeModifier = Ompx_Hold -!PARSE-TREE: | | TypeModifier = Always -!PARSE-TREE: | | TypeModifier = Present -!PARSE-TREE: | | TypeModifier = Close -!PARSE-TREE: | | Type = To +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Ompx_Hold +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Always +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Present +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Close +!PARSE-TREE: | | Modifier -> OmpMapType -> Value = To !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'x' !PARSE-TREE: | | bool = 'false' @@ -133,10 +133,10 @@ subroutine f05(x) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | TypeModifier = Ompx_Hold -!PARSE-TREE: | | TypeModifier = Always -!PARSE-TREE: | | TypeModifier = Present -!PARSE-TREE: | | TypeModifier = Close +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Ompx_Hold +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Always +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Present +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Close !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'x' !PARSE-TREE: | | bool = 'true' @@ -158,8 +158,8 @@ subroutine f10(x) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | TypeModifier = Present -!PARSE-TREE: | | OmpIterator -> OmpIteratorSpecifier +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Present +!PARSE-TREE: | | Modifier -> OmpIterator -> OmpIteratorSpecifier !PARSE-TREE: | | | TypeDeclarationStmt !PARSE-TREE: | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> !PARSE-TREE: | | | | EntityDecl @@ -169,7 +169,7 @@ subroutine f10(x) !PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '1' !PARSE-TREE: | | | | Scalar -> Integer -> Expr = '10_4' !PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '10' -!PARSE-TREE: | | Type = To +!PARSE-TREE: | | Modifier -> OmpMapType -> Value = To !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> ArrayElement !PARSE-TREE: | | | DataRef -> Name = 'x' !PARSE-TREE: | | | SectionSubscript -> Integer -> Expr = 'i' @@ -193,8 +193,8 @@ subroutine f11(x) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | TypeModifier = Present -!PARSE-TREE: | | OmpIterator -> OmpIteratorSpecifier +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Present +!PARSE-TREE: | | Modifier -> OmpIterator -> OmpIteratorSpecifier !PARSE-TREE: | | | TypeDeclarationStmt !PARSE-TREE: | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> !PARSE-TREE: | | | | EntityDecl @@ -204,7 +204,7 @@ subroutine f11(x) !PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '1' !PARSE-TREE: | | | | Scalar -> Integer -> Expr = '10_4' !PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '10' -!PARSE-TREE: | | Type = To +!PARSE-TREE: | | Modifier -> OmpMapType -> Value = To !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> ArrayElement !PARSE-TREE: | | | DataRef -> Name = 'x' !PARSE-TREE: | | | SectionSubscript -> Integer -> Expr = 'i' @@ -228,8 +228,8 @@ subroutine f12(x) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | TypeModifier = Present -!PARSE-TREE: | | OmpIterator -> OmpIteratorSpecifier +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Present +!PARSE-TREE: | | Modifier -> OmpIterator -> OmpIteratorSpecifier !PARSE-TREE: | | | TypeDeclarationStmt !PARSE-TREE: | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> !PARSE-TREE: | | | | EntityDecl @@ -239,17 +239,17 @@ subroutine f12(x) !PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '1' !PARSE-TREE: | | | | Scalar -> Integer -> Expr = '10_4' !PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '10' -!PARSE-TREE: | | OmpIteratorSpecifier -!PARSE-TREE: | | | TypeDeclarationStmt -!PARSE-TREE: | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> -!PARSE-TREE: | | | | EntityDecl -!PARSE-TREE: | | | | | Name = 'j' -!PARSE-TREE: | | | SubscriptTriplet -!PARSE-TREE: | | | | Scalar -> Integer -> Expr = '1_4' -!PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '1' -!PARSE-TREE: | | | | Scalar -> Integer -> Expr = '10_4' -!PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '10' -!PARSE-TREE: | | Type = To +!PARSE-TREE: | | | OmpIteratorSpecifier +!PARSE-TREE: | | | | TypeDeclarationStmt +!PARSE-TREE: | | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> +!PARSE-TREE: | | | | | EntityDecl +!PARSE-TREE: | | | | | | Name = 'j' +!PARSE-TREE: | | | | SubscriptTriplet +!PARSE-TREE: | | | | | Scalar -> Integer -> Expr = '1_4' +!PARSE-TREE: | | | | | | LiteralConstant -> IntLiteralConstant = '1' +!PARSE-TREE: | | | | | Scalar -> Integer -> Expr = '10_4' +!PARSE-TREE: | | | | | | LiteralConstant -> IntLiteralConstant = '10' +!PARSE-TREE: | | Modifier -> OmpMapType -> Value = To !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> ArrayElement !PARSE-TREE: | | | DataRef -> Name = 'x' !PARSE-TREE: | | | SectionSubscript -> Integer -> Expr = '(i+j)/2_4' @@ -265,7 +265,7 @@ subroutine f12(x) !PARSE-TREE: | | | | | | LiteralConstant -> IntLiteralConstant = '2' !PARSE-TREE: | | bool = 'true' -subroutine f90(x, y) +subroutine f20(x, y) integer :: x(10) integer :: y integer, parameter :: p = 23 @@ -274,7 +274,7 @@ subroutine f90(x, y) !$omp end target end -!UNPARSE: SUBROUTINE f90 (x, y) +!UNPARSE: SUBROUTINE f20 (x, y) !UNPARSE: INTEGER x(10_4) !UNPARSE: INTEGER y !UNPARSE: INTEGER, PARAMETER :: p = 23_4 @@ -286,8 +286,8 @@ subroutine f90(x, y) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | TypeModifier = Present -!PARSE-TREE: | | OmpIterator -> OmpIteratorSpecifier +!PARSE-TREE: | | Modifier -> OmpMapTypeModifier -> Value = Present +!PARSE-TREE: | | Modifier -> OmpIterator -> OmpIteratorSpecifier !PARSE-TREE: | | | TypeDeclarationStmt !PARSE-TREE: | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> !PARSE-TREE: | | | | EntityDecl @@ -299,24 +299,24 @@ subroutine f90(x, y) !PARSE-TREE: | | | | | Designator -> DataRef -> Name = 'y' !PARSE-TREE: | | | | Scalar -> Integer -> Expr = '23_4' !PARSE-TREE: | | | | | Designator -> DataRef -> Name = 'p' -!PARSE-TREE: | | OmpIteratorSpecifier -!PARSE-TREE: | | | TypeDeclarationStmt -!PARSE-TREE: | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> -!PARSE-TREE: | | | | EntityDecl -!PARSE-TREE: | | | | | Name = 'k' -!PARSE-TREE: | | | SubscriptTriplet -!PARSE-TREE: | | | | Scalar -> Integer -> Expr = 'i' -!PARSE-TREE: | | | | | Designator -> DataRef -> Name = 'i' -!PARSE-TREE: | | | | Scalar -> Integer -> Expr = 'j' -!PARSE-TREE: | | | | | Designator -> DataRef -> Name = 'j' -!PARSE-TREE: | | Type = To +!PARSE-TREE: | | | OmpIteratorSpecifier +!PARSE-TREE: | | | | TypeDeclarationStmt +!PARSE-TREE: | | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> +!PARSE-TREE: | | | | | EntityDecl +!PARSE-TREE: | | | | | | Name = 'k' +!PARSE-TREE: | | | | SubscriptTriplet +!PARSE-TREE: | | | | | Scalar -> Integer -> Expr = 'i' +!PARSE-TREE: | | | | | | Designator -> DataRef -> Name = 'i' +!PARSE-TREE: | | | | | Scalar -> Integer -> Expr = 'j' +!PARSE-TREE: | | | | | | Designator -> DataRef -> Name = 'j' +!PARSE-TREE: | | Modifier -> OmpMapType -> Value = To !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> ArrayElement !PARSE-TREE: | | | DataRef -> Name = 'x' !PARSE-TREE: | | | SectionSubscript -> Integer -> Expr = 'k' !PARSE-TREE: | | | | Designator -> DataRef -> Name = 'k' !PARSE-TREE: | | bool = 'true' -subroutine f100(x, y) +subroutine f21(x, y) integer :: x(10) integer :: y integer, parameter :: p = 23 @@ -325,7 +325,7 @@ subroutine f100(x, y) !$omp end target end -!UNPARSE: SUBROUTINE f100 (x, y) +!UNPARSE: SUBROUTINE f21 (x, y) !UNPARSE: INTEGER x(10_4) !UNPARSE: INTEGER y !UNPARSE: INTEGER, PARAMETER :: p = 23_4 @@ -337,7 +337,42 @@ subroutine f100(x, y) !PARSE-TREE: OmpBeginBlockDirective !PARSE-TREE: | OmpBlockDirective -> llvm::omp::Directive = target !PARSE-TREE: | OmpClauseList -> OmpClause -> Map -> OmpMapClause -!PARSE-TREE: | | OmpMapperIdentifier -> Name = 'xx' -!PARSE-TREE: | | Type = From +!PARSE-TREE: | | Modifier -> OmpMapper -> Name = 'xx' +!PARSE-TREE: | | Modifier -> OmpMapType -> Value = From !PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'x' +subroutine f22(x) + integer :: x(10) + !$omp target map(present, iterator(i = 1:10), always, from: x(i)) + x = x + 1 + !$omp end target +end + +!UNPARSE: SUBROUTINE f22 (x) +!UNPARSE: INTEGER x(10_4) +!UNPARSE: !$OMP TARGET MAP(PRESENT, ITERATOR(INTEGER i = 1_4:10_4), ALWAYS, FROM: x(i)) +!UNPARSE: x=x+1_4 +!UNPARSE: !$OMP END TARGET +!UNPARSE: END SUBROUTINE + +!PARSE-TREE: OmpBlockDirective -> llvm::omp::Directive = target +!PARSE-TREE: OmpClauseList -> OmpClause -> Map -> OmpMapClause +!PARSE-TREE: | Modifier -> OmpMapTypeModifier -> Value = Present +!PARSE-TREE: | Modifier -> OmpIterator -> OmpIteratorSpecifier +!PARSE-TREE: | | TypeDeclarationStmt +!PARSE-TREE: | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> +!PARSE-TREE: | | | EntityDecl +!PARSE-TREE: | | | | Name = 'i' +!PARSE-TREE: | | SubscriptTriplet +!PARSE-TREE: | | | Scalar -> Integer -> Expr = '1_4' +!PARSE-TREE: | | | | LiteralConstant -> IntLiteralConstant = '1' +!PARSE-TREE: | | | Scalar -> Integer -> Expr = '10_4' +!PARSE-TREE: | | | | LiteralConstant -> IntLiteralConstant = '10' +!PARSE-TREE: | Modifier -> OmpMapTypeModifier -> Value = Always +!PARSE-TREE: | Modifier -> OmpMapType -> Value = From +!PARSE-TREE: | OmpObjectList -> OmpObject -> Designator -> DataRef -> ArrayElement +!PARSE-TREE: | | DataRef -> Name = 'x' +!PARSE-TREE: | | SectionSubscript -> Integer -> Expr = 'i' +!PARSE-TREE: | | | Designator -> DataRef -> Name = 'i' +!PARSE-TREE: | bool = 'true' + diff --git a/flang/test/Parser/OpenMP/order-clause01.f90 b/flang/test/Parser/OpenMP/order-clause01.f90 index 41e131f9b5428..f810eb74ee29d 100644 --- a/flang/test/Parser/OpenMP/order-clause01.f90 +++ b/flang/test/Parser/OpenMP/order-clause01.f90 @@ -17,7 +17,7 @@ subroutine test_do_order() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = do !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_simd_order_reproducible() integer :: i, j = 1 @@ -33,8 +33,8 @@ subroutine test_simd_order_reproducible() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Reproducible -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Reproducible +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_do_simd_order_unconstrained() integer :: i, j = 1 @@ -50,8 +50,8 @@ subroutine test_do_simd_order_unconstrained() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = do simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Unconstrained -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Unconstrained +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_parallel_do_order() integer :: i, j = 1 @@ -67,7 +67,7 @@ subroutine test_parallel_do_order() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = parallel do !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_parallel_do_simd_order_reproducible() integer :: i, j = 1 @@ -83,8 +83,8 @@ subroutine test_parallel_do_simd_order_reproducible() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = parallel do simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Reproducible -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Reproducible +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_target_simd_order_unconstrained() integer :: i, j = 1 @@ -100,8 +100,8 @@ subroutine test_target_simd_order_unconstrained() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = target simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Unconstrained -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Unconstrained +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_target_parallel_do_order() integer :: i, j = 1 @@ -117,7 +117,7 @@ subroutine test_target_parallel_do_order() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = target parallel do !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_target_parallel_do_simd_order_reproducible() integer :: i, j = 1 @@ -133,8 +133,8 @@ subroutine test_target_parallel_do_simd_order_reproducible() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = target parallel do simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Reproducible -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Reproducible +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_teams_distribute_simd_order_unconstrained() integer :: i, j = 1 @@ -150,8 +150,8 @@ subroutine test_teams_distribute_simd_order_unconstrained() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = teams distribute simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Unconstrained -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Unconstrained +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_teams_distribute_parallel_do_order() integer :: i, j = 1 @@ -167,7 +167,7 @@ subroutine test_teams_distribute_parallel_do_order() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = teams distribute parallel do !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_teams_distribute_parallel_do_simd_order_reproducible() integer :: i, j = 1 @@ -183,8 +183,8 @@ subroutine test_teams_distribute_parallel_do_simd_order_reproducible() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = teams distribute parallel do simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Reproducible -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Reproducible +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_target_teams_distribute_simd_order_unconstrained() integer :: i, j = 1 @@ -200,8 +200,8 @@ subroutine test_target_teams_distribute_simd_order_unconstrained() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = target teams distribute simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Unconstrained -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Unconstrained +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_target_teams_distribute_parallel_do_order() integer :: i, j = 1 @@ -217,7 +217,7 @@ subroutine test_target_teams_distribute_parallel_do_order() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = target teams distribute parallel do !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_target_teams_distribute_parallel_do_simd_order_reproducible() integer :: i, j = 1 @@ -233,8 +233,8 @@ subroutine test_target_teams_distribute_parallel_do_simd_order_reproducible() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = target teams distribute parallel do simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Reproducible -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Reproducible +!PARSE-TREE-NEXT: Ordering = Concurrent subroutine test_taskloop_simd_order_unconstrained() integer :: i, j = 1 @@ -250,5 +250,5 @@ subroutine test_taskloop_simd_order_unconstrained() !PARSE-TREE-NEXT: OmpBeginLoopDirective !PARSE-TREE-NEXT: OmpLoopDirective -> llvm::omp::Directive = taskloop simd !PARSE-TREE-NEXT: OmpClauseList -> OmpClause -> Order -> OmpOrderClause -!PARSE-TREE-NEXT: Kind = Unconstrained -!PARSE-TREE-NEXT: Type = Concurrent +!PARSE-TREE-NEXT: OmpOrderModifier -> Value = Unconstrained +!PARSE-TREE-NEXT: Ordering = Concurrent diff --git a/flang/test/Parser/OpenMP/reduction-modifier.f90 b/flang/test/Parser/OpenMP/reduction-modifier.f90 index 4bba23bcf0611..64cd452e839e7 100644 --- a/flang/test/Parser/OpenMP/reduction-modifier.f90 +++ b/flang/test/Parser/OpenMP/reduction-modifier.f90 @@ -4,13 +4,13 @@ subroutine foo() integer :: i, j j = 0 -! CHECK: !$OMP DO REDUCTION(TASK,*:j) +! CHECK: !$OMP DO REDUCTION(TASK, *:j) ! PARSE-TREE: | | ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPLoopConstruct ! PARSE-TREE: | | | OmpBeginLoopDirective ! PARSE-TREE: | | | | OmpLoopDirective -> llvm::omp::Directive = do ! PARSE-TREE: | | | | OmpClauseList -> OmpClause -> Reduction -> OmpReductionClause -! PARSE-TREE: | | | | | ReductionModifier = Task -! PARSE-TREE: | | | | | OmpReductionIdentifier -> DefinedOperator -> IntrinsicOperator = Multiply +! PARSE-TREE: | | | | | Modifier -> OmpReductionModifier -> Value = Task +! PARSE-TREE: | | | | | Modifier -> OmpReductionIdentifier -> DefinedOperator -> IntrinsicOperator = Multiply ! PARSE-TREE: | | | | | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'j !$omp do reduction (task, *: j) do i = 1, 10 diff --git a/flang/test/Parser/OpenMP/target-update-to-clause.f90 b/flang/test/Parser/OpenMP/target-update-to-clause.f90 index bb57270fc0bf9..03006ba37334f 100644 --- a/flang/test/Parser/OpenMP/target-update-to-clause.f90 +++ b/flang/test/Parser/OpenMP/target-update-to-clause.f90 @@ -28,7 +28,7 @@ subroutine f01(x) !PARSE-TREE: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target update !PARSE-TREE: OmpClauseList -> OmpClause -> To -> OmpToClause -!PARSE-TREE: | Expectation = Present +!PARSE-TREE: | Modifier -> OmpExpectation -> Value = Present !PARSE-TREE: | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'x' !PARSE-TREE: | bool = 'true' @@ -44,8 +44,8 @@ subroutine f02(x) !PARSE-TREE: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target update !PARSE-TREE: OmpClauseList -> OmpClause -> To -> OmpToClause -!PARSE-TREE: | Expectation = Present -!PARSE-TREE: | OmpIterator -> OmpIteratorSpecifier +!PARSE-TREE: | Modifier -> OmpExpectation -> Value = Present +!PARSE-TREE: | Modifier -> OmpIterator -> OmpIteratorSpecifier !PARSE-TREE: | | TypeDeclarationStmt !PARSE-TREE: | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> !PARSE-TREE: | | | EntityDecl @@ -73,8 +73,8 @@ subroutine f03(x) !PARSE-TREE: OmpSimpleStandaloneDirective -> llvm::omp::Directive = target update !PARSE-TREE: OmpClauseList -> OmpClause -> To -> OmpToClause -!PARSE-TREE: | Expectation = Present -!PARSE-TREE: | OmpIterator -> OmpIteratorSpecifier +!PARSE-TREE: | Modifier -> OmpExpectation -> Value = Present +!PARSE-TREE: | Modifier -> OmpIterator -> OmpIteratorSpecifier !PARSE-TREE: | | TypeDeclarationStmt !PARSE-TREE: | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec -> !PARSE-TREE: | | | EntityDecl diff --git a/flang/test/Parser/recovery07.f90 b/flang/test/Parser/recovery07.f90 new file mode 100644 index 0000000000000..3a66779b59581 --- /dev/null +++ b/flang/test/Parser/recovery07.f90 @@ -0,0 +1,6 @@ +! RUN: not %flang_fc1 -fsyntax-only %s 2>&1 | FileCheck %s +! CHECK: error: expected ':' +! CHECK: in the context: loop control +do concurrent(I = 1, N) +end do +end diff --git a/flang/test/Preprocessing/not-an-exponent.F90 b/flang/test/Preprocessing/not-an-exponent.F90 new file mode 100644 index 0000000000000..d60d7f6c409f0 --- /dev/null +++ b/flang/test/Preprocessing/not-an-exponent.F90 @@ -0,0 +1,24 @@ +!RUN: %flang_fc1 -fdebug-unparse %s 2>&1 | FileCheck %s +#define e eeeee +module m + interface operator(.e.) + module procedure ir,rr + end interface operator(.e.) +contains + function ir(k1,k2) + intent(in)::k1,k2 + ir=k1+k2 + end function ir + function rr(k1,k2) + real,intent(in)::k1,k2 + rr=k1+k2 + end function rr +end module m +program main + use m +!CHECK: IF (real((ir(1_4,5_4)),kind=4)/=6._4) ERROR STOP 1_4 +!CHECK: IF ((rr(1._4,5.e-1_4))/=1.5_4) ERROR STOP 2_4 + if((1.e.5)/=6.e0) error stop 1 + if((1..e..5)/=1.5) error stop 2 + print *,'pass' +end program main diff --git a/flang/test/Preprocessing/pp046.F b/flang/test/Preprocessing/pp046.F new file mode 100644 index 0000000000000..38e426a624823 --- /dev/null +++ b/flang/test/Preprocessing/pp046.F @@ -0,0 +1,5 @@ +! RUN: %flang -E %s 2>&1 | FileCheck %s +! CHECK-NOT: Character in fixed-form label field must be a digit +#define KWM ! +KWM a comment + end diff --git a/flang/test/Semantics/OpenMP/clause-validity01.f90 b/flang/test/Semantics/OpenMP/clause-validity01.f90 index 406d30b38948e..8dd6d10200cd3 100644 --- a/flang/test/Semantics/OpenMP/clause-validity01.f90 +++ b/flang/test/Semantics/OpenMP/clause-validity01.f90 @@ -1,6 +1,6 @@ ! REQUIRES: openmp_runtime -! RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags %openmp_module_flag -fopenmp-version=50 +! RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags %openmp_module_flag -fopenmp-version=51 use omp_lib ! Check OpenMP clause validity for the following directives: ! @@ -507,7 +507,6 @@ !$omp flush acquire !ERROR: If memory-order-clause is RELEASE, ACQUIRE, or ACQ_REL, list items must not be specified on the FLUSH directive !$omp flush release (c) - !ERROR: SEQ_CST clause is not allowed on the FLUSH directive !$omp flush seq_cst !ERROR: RELAXED clause is not allowed on the FLUSH directive !$omp flush relaxed diff --git a/flang/test/Semantics/OpenMP/combined-constructs.f90 b/flang/test/Semantics/OpenMP/combined-constructs.f90 index 38b0d090e441d..4f2a4a4f501b9 100644 --- a/flang/test/Semantics/OpenMP/combined-constructs.f90 +++ b/flang/test/Semantics/OpenMP/combined-constructs.f90 @@ -33,7 +33,7 @@ program main enddo !$omp end target parallel - !ERROR: The DEFAULTMAP clause requires a variable-category SCALAR in OpenMP v1.1, try -fopenmp-version=50 + !ERROR: 'variable-category' modifier is required !$omp target parallel defaultmap(tofrom) do i = 1, N a(i) = 3.14 @@ -80,7 +80,7 @@ program main enddo !$omp end target parallel do - !ERROR: The DEFAULTMAP clause requires a variable-category SCALAR in OpenMP v1.1, try -fopenmp-version=50 + !ERROR: 'variable-category' modifier is required !$omp target parallel do defaultmap(tofrom) do i = 1, N a(i) = 3.14 @@ -140,7 +140,7 @@ program main enddo !$omp end target teams - !ERROR: The DEFAULTMAP clause requires a variable-category SCALAR in OpenMP v1.1, try -fopenmp-version=50 + !ERROR: 'variable-category' modifier is required !$omp target teams defaultmap(tofrom) do i = 1, N a(i) = 3.14 @@ -240,7 +240,7 @@ program main enddo !$omp end target teams distribute - !ERROR: The DEFAULTMAP clause requires a variable-category SCALAR in OpenMP v1.1, try -fopenmp-version=50 + !ERROR: 'variable-category' modifier is required !$omp target teams distribute defaultmap(tofrom) do i = 1, N a(i) = 3.14 @@ -333,7 +333,7 @@ program main enddo !$omp end target teams distribute parallel do - !ERROR: The DEFAULTMAP clause requires a variable-category SCALAR in OpenMP v1.1, try -fopenmp-version=50 + !ERROR: 'variable-category' modifier is required !$omp target teams distribute parallel do defaultmap(tofrom) do i = 1, N a(i) = 3.14 @@ -433,7 +433,7 @@ program main enddo !$omp end target teams distribute parallel do simd - !ERROR: The DEFAULTMAP clause requires a variable-category SCALAR in OpenMP v1.1, try -fopenmp-version=50 + !ERROR: 'variable-category' modifier is required !$omp target teams distribute parallel do simd defaultmap(tofrom) do i = 1, N a(i) = 3.14 diff --git a/flang/test/Semantics/OpenMP/defaultmap-clause-v45.f90 b/flang/test/Semantics/OpenMP/defaultmap-clause-v45.f90 index a30d90ddce029..904fc306a31f4 100644 --- a/flang/test/Semantics/OpenMP/defaultmap-clause-v45.f90 +++ b/flang/test/Semantics/OpenMP/defaultmap-clause-v45.f90 @@ -1,7 +1,7 @@ !RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=45 -Werror subroutine f00 -!WARNING: The DEFAULTMAP clause requires a variable-category SCALAR in OpenMP v4.5, try -fopenmp-version=50 +!WARNING: 'variable-category' modifier is required !$omp target defaultmap(tofrom) !$omp end target end diff --git a/flang/test/Semantics/OpenMP/flush02.f90 b/flang/test/Semantics/OpenMP/flush02.f90 index ed0cf6602d574..615332c6cf31c 100644 --- a/flang/test/Semantics/OpenMP/flush02.f90 +++ b/flang/test/Semantics/OpenMP/flush02.f90 @@ -1,6 +1,6 @@ ! REQUIRES: openmp_runtime -! RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags -fopenmp-version=50 +! RUN: %python %S/../test_errors.py %s %flang_fc1 %openmp_flags -fopenmp-version=51 ! Check OpenMP 5.0 - 2.17.8 flush Construct ! Restriction - @@ -27,7 +27,6 @@ !Only memory-order-clauses. if (omp_get_thread_num() == 1) THEN ! Not allowed clauses. - !ERROR: SEQ_CST clause is not allowed on the FLUSH directive !$omp flush seq_cst !ERROR: RELAXED clause is not allowed on the FLUSH directive !$omp flush relaxed @@ -41,7 +40,6 @@ !$omp flush acquire acquire ! Mix of allowed and not allowed. - !ERROR: SEQ_CST clause is not allowed on the FLUSH directive !$omp flush seq_cst acquire END IF diff --git a/flang/test/Semantics/OpenMP/from-clause-v45.f90 b/flang/test/Semantics/OpenMP/from-clause-v45.f90 index 9c418a400e548..98dff295c879d 100644 --- a/flang/test/Semantics/OpenMP/from-clause-v45.f90 +++ b/flang/test/Semantics/OpenMP/from-clause-v45.f90 @@ -8,21 +8,22 @@ subroutine f00(x) subroutine f01(x) integer :: x(10) -!WARNING: Iterator modifiers are not supported in OpenMP v4.5, try -fopenmp-version=51 +!WARNING: 'iterator' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 !$omp target update from(iterator(i = 1:5): x(i)) end subroutine f02(x) integer :: x(10) -!WARNING: The PRESENT modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 -!WARNING: Iterator modifiers are not supported in OpenMP v4.5, try -fopenmp-version=51 +!WARNING: 'expectation' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 +!WARNING: 'iterator' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 !$omp target update from(present, iterator(i = 1:5): x(i)) end subroutine f03(x) integer :: x(10) -!WARNING: The PRESENT modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 -!ERROR: Only one PRESENT modifier is allowed +!WARNING: 'expectation' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 +!WARNING: 'expectation' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 +!ERROR: 'expectation' modifier cannot occur multiple times !$omp target update from(present, present: x) end diff --git a/flang/test/Semantics/OpenMP/from-clause-v51.f90 b/flang/test/Semantics/OpenMP/from-clause-v51.f90 index 18139f04c35cf..70c00823d073e 100644 --- a/flang/test/Semantics/OpenMP/from-clause-v51.f90 +++ b/flang/test/Semantics/OpenMP/from-clause-v51.f90 @@ -2,13 +2,13 @@ subroutine f01(x) integer :: x(10) -!ERROR: Only one iterator-modifier is allowed +!ERROR: 'iterator' modifier cannot occur multiple times !$omp target update from(iterator(i = 1:5), iterator(j = 1:5): x(i + j)) end subroutine f03(x) integer :: x(10) -!ERROR: Only one PRESENT modifier is allowed +!ERROR: 'expectation' modifier cannot occur multiple times !$omp target update from(present, present: x) end diff --git a/flang/test/Semantics/OpenMP/map-clause.f90 b/flang/test/Semantics/OpenMP/map-clause.f90 index efcef2571a04a..65ecbd9456464 100644 --- a/flang/test/Semantics/OpenMP/map-clause.f90 +++ b/flang/test/Semantics/OpenMP/map-clause.f90 @@ -1,4 +1,4 @@ -! RUN: %python %S/../test_errors.py %s %flang -fopenmp +! RUN: %python %S/../test_errors.py %s %flang -fopenmp -fopenmp-version=52 ! Check OpenMP MAP clause validity. Section 5.8.3 OpenMP 5.2. subroutine sb(arr) diff --git a/flang/test/Semantics/OpenMP/map-modifiers.f90 b/flang/test/Semantics/OpenMP/map-modifiers.f90 index f863185d111e0..aae918a2f1f94 100644 --- a/flang/test/Semantics/OpenMP/map-modifiers.f90 +++ b/flang/test/Semantics/OpenMP/map-modifiers.f90 @@ -83,8 +83,16 @@ subroutine f19(x) subroutine f1a(x) integer :: x(10) -!ERROR: Only one iterator-modifier is allowed +!ERROR: 'iterator' modifier cannot occur multiple times !$omp target map(present, iterator(i = 1:2), iterator(j = 1:2), to: x(i + j)) x = x + 1 !$omp end target end + +subroutine f23(x) + integer :: x(10) +!ERROR: 'map-type' should be the last modifier + !$omp target map(present, from, iterator(i = 1:10): x(i)) + x = x + 1 + !$omp end target +end diff --git a/flang/test/Semantics/OpenMP/nested-target.f90 b/flang/test/Semantics/OpenMP/nested-target.f90 index 2267f70715d3e..f42b5dde6a08d 100644 --- a/flang/test/Semantics/OpenMP/nested-target.f90 +++ b/flang/test/Semantics/OpenMP/nested-target.f90 @@ -5,7 +5,7 @@ ! 2.12.5 Target Construct program main - integer :: i, j, N = 10 + integer :: i, j, N = 10, n1, n2, res(100) real :: a, arrayA(512), arrayB(512), ai(10) real, allocatable :: B(:) @@ -50,4 +50,28 @@ program main !$omp end target deallocate(B) + n1 = 10 + n2 = 10 + !$omp target teams map(to:a) + !PORTABILITY: If TARGET DATA directive is nested inside TARGET region, the behaviour is unspecified + !$omp target data map(n1,n2) + do i=1, n1 + do j=1, n2 + res((i-1)*10+j) = i*j + end do + end do + !$omp end target data + !$omp end target teams + + !$omp target teams map(to:a) map(from:n1,n2) + !PORTABILITY: If TARGET TEAMS DISTRIBUTE PARALLEL DO directive is nested inside TARGET region, the behaviour is unspecified + !$omp target teams distribute parallel do + do i=1, n1 + do j=1, n2 + res((i-1)*10+j) = i*j + end do + end do + !$omp end target teams distribute parallel do + !$omp end target teams + end program main diff --git a/flang/test/Semantics/OpenMP/to-clause-v45.f90 b/flang/test/Semantics/OpenMP/to-clause-v45.f90 index 39e842492ef08..e4d8967ca14df 100644 --- a/flang/test/Semantics/OpenMP/to-clause-v45.f90 +++ b/flang/test/Semantics/OpenMP/to-clause-v45.f90 @@ -8,21 +8,22 @@ subroutine f00(x) subroutine f01(x) integer :: x(10) -!WARNING: Iterator modifiers are not supported in OpenMP v4.5, try -fopenmp-version=51 +!WARNING: 'iterator' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 !$omp target update to(iterator(i = 1:5): x(i)) end subroutine f02(x) integer :: x(10) -!WARNING: The PRESENT modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 -!WARNING: Iterator modifiers are not supported in OpenMP v4.5, try -fopenmp-version=51 +!WARNING: 'expectation' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 +!WARNING: 'iterator' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 !$omp target update to(present, iterator(i = 1:5): x(i)) end subroutine f03(x) integer :: x(10) -!WARNING: The PRESENT modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 -!ERROR: Only one PRESENT modifier is allowed +!WARNING: 'expectation' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 +!WARNING: 'expectation' modifier is not supported in OpenMP v4.5, try -fopenmp-version=51 +!ERROR: 'expectation' modifier cannot occur multiple times !$omp target update to(present, present: x) end diff --git a/flang/test/Semantics/OpenMP/to-clause-v51.f90 b/flang/test/Semantics/OpenMP/to-clause-v51.f90 index d4f5f15efeb97..8abbca3bb07cd 100644 --- a/flang/test/Semantics/OpenMP/to-clause-v51.f90 +++ b/flang/test/Semantics/OpenMP/to-clause-v51.f90 @@ -2,13 +2,13 @@ subroutine f01(x) integer :: x(10) -!ERROR: Only one iterator-modifier is allowed +!ERROR: 'iterator' modifier cannot occur multiple times !$omp target update to(iterator(i = 1:5), iterator(j = 1:5): x(i + j)) end subroutine f03(x) integer :: x(10) -!ERROR: Only one PRESENT modifier is allowed +!ERROR: 'expectation' modifier cannot occur multiple times !$omp target update to(present, present: x) end diff --git a/flang/test/Transforms/OpenMP/lower-workshare-nested.mlir b/flang/test/Transforms/OpenMP/lower-workshare-nested.mlir new file mode 100644 index 0000000000000..bfd65f04d94b1 --- /dev/null +++ b/flang/test/Transforms/OpenMP/lower-workshare-nested.mlir @@ -0,0 +1,22 @@ +// RUN: fir-opt --lower-workshare --allow-unregistered-dialect %s | FileCheck %s + +// Checks that the nested loop_wrapper gets parallelized +func.func @wsfunc(%cond : i1) { + omp.workshare { + %c1 = arith.constant 1 : index + %c42 = arith.constant 42 : index + fir.if %cond { + omp.workshare.loop_wrapper { + omp.loop_nest (%arg1) : index = (%c1) to (%c42) inclusive step (%c1) { + "test.test1"() : () -> () + omp.yield + } + } + } + omp.terminator + } + return +} + +// CHECK: fir.if +// CHECK: omp.wsloop nowait diff --git a/flang/test/Transforms/OpenMP/should-use-workshare-lowering.mlir b/flang/test/Transforms/OpenMP/should-use-workshare-lowering.mlir new file mode 100644 index 0000000000000..91b08123cce42 --- /dev/null +++ b/flang/test/Transforms/OpenMP/should-use-workshare-lowering.mlir @@ -0,0 +1,162 @@ +// RUN: fir-opt --bufferize-hlfir %s | FileCheck %s + +// Checks that we correctly identify when to use the lowering to +// omp.workshare.loop_wrapper + +// CHECK-LABEL: @should_parallelize_0 +// CHECK: omp.workshare.loop_wrapper +func.func @should_parallelize_0(%arg: !fir.ref>, %idx : index) { + omp.workshare { + %c42 = arith.constant 42 : index + %c1_i32 = arith.constant 1 : i32 + %shape = fir.shape %c42 : (index) -> !fir.shape<1> + %array:2 = hlfir.declare %arg(%shape) {uniq_name = "array"} : (!fir.ref>, !fir.shape<1>) -> (!fir.ref>, !fir.ref>) + %elemental = hlfir.elemental %shape unordered : (!fir.shape<1>) -> !hlfir.expr<42xi32> { + ^bb0(%i: index): + hlfir.yield_element %c1_i32 : i32 + } + hlfir.assign %elemental to %array#0 : !hlfir.expr<42xi32>, !fir.ref> + hlfir.destroy %elemental : !hlfir.expr<42xi32> + omp.terminator + } + return +} + +// CHECK-LABEL: @should_parallelize_1 +// CHECK: omp.workshare.loop_wrapper +func.func @should_parallelize_1(%arg: !fir.ref>, %idx : index) { + omp.parallel { + omp.workshare { + %c42 = arith.constant 42 : index + %c1_i32 = arith.constant 1 : i32 + %shape = fir.shape %c42 : (index) -> !fir.shape<1> + %array:2 = hlfir.declare %arg(%shape) {uniq_name = "array"} : (!fir.ref>, !fir.shape<1>) -> (!fir.ref>, !fir.ref>) + %elemental = hlfir.elemental %shape unordered : (!fir.shape<1>) -> !hlfir.expr<42xi32> { + ^bb0(%i: index): + hlfir.yield_element %c1_i32 : i32 + } + hlfir.assign %elemental to %array#0 : !hlfir.expr<42xi32>, !fir.ref> + hlfir.destroy %elemental : !hlfir.expr<42xi32> + omp.terminator + } + omp.terminator + } + return +} + + +// CHECK-LABEL: @should_not_parallelize_0 +// CHECK-NOT: omp.workshare.loop_wrapper +func.func @should_not_parallelize_0(%arg: !fir.ref>, %idx : index) { + omp.workshare { + omp.single { + %c42 = arith.constant 42 : index + %c1_i32 = arith.constant 1 : i32 + %shape = fir.shape %c42 : (index) -> !fir.shape<1> + %array:2 = hlfir.declare %arg(%shape) {uniq_name = "array"} : (!fir.ref>, !fir.shape<1>) -> (!fir.ref>, !fir.ref>) + %elemental = hlfir.elemental %shape unordered : (!fir.shape<1>) -> !hlfir.expr<42xi32> { + ^bb0(%i: index): + hlfir.yield_element %c1_i32 : i32 + } + hlfir.assign %elemental to %array#0 : !hlfir.expr<42xi32>, !fir.ref> + hlfir.destroy %elemental : !hlfir.expr<42xi32> + omp.terminator + } + omp.terminator + } + return +} + +// CHECK-LABEL: @should_not_parallelize_1 +// CHECK-NOT: omp.workshare.loop_wrapper +func.func @should_not_parallelize_1(%arg: !fir.ref>, %idx : index) { + omp.workshare { + omp.critical { + %c42 = arith.constant 42 : index + %c1_i32 = arith.constant 1 : i32 + %shape = fir.shape %c42 : (index) -> !fir.shape<1> + %array:2 = hlfir.declare %arg(%shape) {uniq_name = "array"} : (!fir.ref>, !fir.shape<1>) -> (!fir.ref>, !fir.ref>) + %elemental = hlfir.elemental %shape unordered : (!fir.shape<1>) -> !hlfir.expr<42xi32> { + ^bb0(%i: index): + hlfir.yield_element %c1_i32 : i32 + } + hlfir.assign %elemental to %array#0 : !hlfir.expr<42xi32>, !fir.ref> + hlfir.destroy %elemental : !hlfir.expr<42xi32> + omp.terminator + } + omp.terminator + } + return +} + +// CHECK-LABEL: @should_not_parallelize_2 +// CHECK-NOT: omp.workshare.loop_wrapper +func.func @should_not_parallelize_2(%arg: !fir.ref>, %idx : index) { + omp.workshare { + omp.parallel { + %c42 = arith.constant 42 : index + %c1_i32 = arith.constant 1 : i32 + %shape = fir.shape %c42 : (index) -> !fir.shape<1> + %array:2 = hlfir.declare %arg(%shape) {uniq_name = "array"} : (!fir.ref>, !fir.shape<1>) -> (!fir.ref>, !fir.ref>) + %elemental = hlfir.elemental %shape unordered : (!fir.shape<1>) -> !hlfir.expr<42xi32> { + ^bb0(%i: index): + hlfir.yield_element %c1_i32 : i32 + } + hlfir.assign %elemental to %array#0 : !hlfir.expr<42xi32>, !fir.ref> + hlfir.destroy %elemental : !hlfir.expr<42xi32> + omp.terminator + } + omp.terminator + } + return +} + +// CHECK-LABEL: @should_not_parallelize_3 +// CHECK-NOT: omp.workshare.loop_wrapper +func.func @should_not_parallelize_3(%arg: !fir.ref>, %idx : index) { + omp.workshare { + omp.parallel { + omp.workshare { + omp.parallel { + %c42 = arith.constant 42 : index + %c1_i32 = arith.constant 1 : i32 + %shape = fir.shape %c42 : (index) -> !fir.shape<1> + %array:2 = hlfir.declare %arg(%shape) {uniq_name = "array"} : (!fir.ref>, !fir.shape<1>) -> (!fir.ref>, !fir.ref>) + %elemental = hlfir.elemental %shape unordered : (!fir.shape<1>) -> !hlfir.expr<42xi32> { + ^bb0(%i: index): + hlfir.yield_element %c1_i32 : i32 + } + hlfir.assign %elemental to %array#0 : !hlfir.expr<42xi32>, !fir.ref> + hlfir.destroy %elemental : !hlfir.expr<42xi32> + omp.terminator + } + omp.terminator + } + omp.terminator + } + omp.terminator + } + return +} + +// CHECK-LABEL: @should_not_parallelize_4 +// CHECK-NOT: omp.workshare.loop_wrapper +func.func @should_not_parallelize_4(%arg: !fir.ref>, %idx : index) { + omp.workshare { + ^bb1: + %c42 = arith.constant 42 : index + %c1_i32 = arith.constant 1 : i32 + %shape = fir.shape %c42 : (index) -> !fir.shape<1> + %array:2 = hlfir.declare %arg(%shape) {uniq_name = "array"} : (!fir.ref>, !fir.shape<1>) -> (!fir.ref>, !fir.ref>) + %elemental = hlfir.elemental %shape unordered : (!fir.shape<1>) -> !hlfir.expr<42xi32> { + ^bb0(%i: index): + hlfir.yield_element %c1_i32 : i32 + } + hlfir.assign %elemental to %array#0 : !hlfir.expr<42xi32>, !fir.ref> + hlfir.destroy %elemental : !hlfir.expr<42xi32> + cf.br ^bb2 + ^bb2: + omp.terminator + } + return +} diff --git a/flang/tools/flang-driver/CMakeLists.txt b/flang/tools/flang-driver/CMakeLists.txt index 9a89a6185a329..06b61e5951881 100644 --- a/flang/tools/flang-driver/CMakeLists.txt +++ b/flang/tools/flang-driver/CMakeLists.txt @@ -6,6 +6,7 @@ link_directories(${LLVM_LIBRARY_DIR}) set( LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} + MC Option Support TargetParser diff --git a/flang/tools/flang-driver/fc1_main.cpp b/flang/tools/flang-driver/fc1_main.cpp index b5b062aaac267..561a0dd5524e3 100644 --- a/flang/tools/flang-driver/fc1_main.cpp +++ b/flang/tools/flang-driver/fc1_main.cpp @@ -21,15 +21,35 @@ #include "flang/Frontend/TextDiagnosticBuffer.h" #include "flang/FrontendTool/Utils.h" #include "clang/Driver/DriverDiagnostic.h" +#include "llvm/MC/TargetRegistry.h" #include "llvm/Option/Arg.h" #include "llvm/Option/ArgList.h" #include "llvm/Option/OptTable.h" #include "llvm/Support/TargetSelect.h" +#include "llvm/Support/raw_ostream.h" #include using namespace Fortran::frontend; +/// Print supported cpus of the given target. +static int printSupportedCPUs(llvm::StringRef triple) { + std::string error; + const llvm::Target *target = + llvm::TargetRegistry::lookupTarget(triple, error); + if (!target) { + llvm::errs() << error; + return 1; + } + + // the target machine will handle the mcpu printing + llvm::TargetOptions targetOpts; + std::unique_ptr targetMachine( + target->createTargetMachine(triple, "", "+cpuhelp", targetOpts, + std::nullopt)); + return 0; +} + int fc1_main(llvm::ArrayRef argv, const char *argv0) { // Create CompilerInstance std::unique_ptr flang(new CompilerInstance()); @@ -58,6 +78,10 @@ int fc1_main(llvm::ArrayRef argv, const char *argv0) { llvm::InitializeAllTargetMCs(); llvm::InitializeAllAsmPrinters(); + // --print-supported-cpus takes priority over the actual compilation. + if (flang->getFrontendOpts().printSupportedCPUs) + return printSupportedCPUs(flang->getInvocation().getTargetOpts().triple); + diagsBuffer->flushDiagnostics(flang->getDiagnostics()); if (!success) diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt index 77b659b2ef232..eee5b63bab513 100644 --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -412,6 +412,12 @@ foreach(entrypoint IN LISTS TARGET_LLVMLIBC_ENTRYPOINTS) list(APPEND TARGET_ENTRYPOINT_NAME_LIST ${entrypoint_name}) endforeach() +if(MSVC AND NOT MSYS) + set(libc_opt_high_flag "/O2") +else() + set(libc_opt_high_flag "-O3") +endif() + add_subdirectory(include) add_subdirectory(config) add_subdirectory(hdr) diff --git a/libc/cmake/modules/prepare_libc_gpu_build.cmake b/libc/cmake/modules/prepare_libc_gpu_build.cmake index e20591b80e6f2..937bd22451c5f 100644 --- a/libc/cmake/modules/prepare_libc_gpu_build.cmake +++ b/libc/cmake/modules/prepare_libc_gpu_build.cmake @@ -72,11 +72,6 @@ else() endif() set(LIBC_GPU_TARGET_ARCHITECTURE "${gpu_test_architecture}") -# The NVPTX backend cannot currently handle objects created in debug mode. -if(LIBC_TARGET_ARCHITECTURE_IS_NVPTX AND CMAKE_BUILD_TYPE STREQUAL "Debug") - set(LIBC_GPU_TESTS_DISABLED TRUE) -endif() - # Identify the GPU loader utility used to run tests. set(LIBC_GPU_LOADER_EXECUTABLE "" CACHE STRING "Executable for the GPU loader.") if(LIBC_GPU_LOADER_EXECUTABLE) diff --git a/libc/fuzzing/__support/CMakeLists.txt b/libc/fuzzing/__support/CMakeLists.txt index b088761f4586a..9d6589d78fb81 100644 --- a/libc/fuzzing/__support/CMakeLists.txt +++ b/libc/fuzzing/__support/CMakeLists.txt @@ -23,3 +23,11 @@ add_libc_fuzzer( COMPILE_OPTIONS -D__LIBC_EXPLICIT_SIMD_OPT ) + +add_libc_fuzzer( + freelist_heap_fuzz + SRCS + freelist_heap_fuzz.cpp + DEPENDS + libc.src.__support.freelist_heap +) diff --git a/libc/fuzzing/__support/freelist_heap_fuzz.cpp b/libc/fuzzing/__support/freelist_heap_fuzz.cpp new file mode 100644 index 0000000000000..d152d0f35499f --- /dev/null +++ b/libc/fuzzing/__support/freelist_heap_fuzz.cpp @@ -0,0 +1,227 @@ +//===-- freelist_heap_fuzz.cpp --------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +/// +/// Fuzzing test for llvm-libc freelist-based heap implementation. +/// +//===----------------------------------------------------------------------===// + +#include "src/__support/CPP/bit.h" +#include "src/__support/CPP/optional.h" +#include "src/__support/freelist_heap.h" +#include "src/string/memory_utils/inline_memcpy.h" +#include "src/string/memory_utils/inline_memmove.h" +#include "src/string/memory_utils/inline_memset.h" + +using LIBC_NAMESPACE::FreeListHeap; +using LIBC_NAMESPACE::inline_memset; +using LIBC_NAMESPACE::cpp::nullopt; +using LIBC_NAMESPACE::cpp::optional; + +// Record of an outstanding allocation. +struct Alloc { + void *ptr; + size_t size; + size_t alignment; + uint8_t canary; // Byte written to the allocation +}; + +// A simple vector that tracks allocations using the heap. +class AllocVec { +public: + AllocVec(FreeListHeap &heap) : heap(&heap), size_(0), capacity(0) { + allocs = nullptr; + } + + bool empty() const { return !size_; } + + size_t size() const { return size_; } + + bool push_back(Alloc alloc) { + if (size_ == capacity) { + size_t new_cap = capacity ? capacity * 2 : 1; + Alloc *new_allocs = reinterpret_cast( + heap->realloc(allocs, new_cap * sizeof(Alloc))); + if (!new_allocs) + return false; + allocs = new_allocs; + capacity = new_cap; + } + allocs[size_++] = alloc; + return true; + } + + Alloc &operator[](size_t idx) { return allocs[idx]; } + + void erase_idx(size_t idx) { + LIBC_NAMESPACE::inline_memmove(&allocs[idx], &allocs[idx + 1], + sizeof(Alloc) * (size_ - idx - 1)); + --size_; + } + +private: + FreeListHeap *heap; + Alloc *allocs; + size_t size_; + size_t capacity; +}; + +// Choose a T value by casting libfuzzer data or exit. +template +optional choose(const uint8_t *&data, size_t &remainder) { + if (sizeof(T) > remainder) + return nullopt; + T out; + LIBC_NAMESPACE::inline_memcpy(&out, data, sizeof(T)); + data += sizeof(T); + remainder -= sizeof(T); + return out; +} + +// The type of allocation to perform +enum class AllocType : uint8_t { + MALLOC, + ALIGNED_ALLOC, + REALLOC, + CALLOC, + NUM_ALLOC_TYPES, +}; + +template <> +optional choose(const uint8_t *&data, size_t &remainder) { + auto raw = choose(data, remainder); + if (!raw) + return nullopt; + return static_cast( + *raw % static_cast(AllocType::NUM_ALLOC_TYPES)); +} + +constexpr size_t heap_size = 64 * 1024; + +optional choose_size(const uint8_t *&data, size_t &remainder) { + auto raw = choose(data, remainder); + if (!raw) + return nullopt; + return *raw % heap_size; +} + +optional choose_alloc_idx(const AllocVec &allocs, const uint8_t *&data, + size_t &remainder) { + if (allocs.empty()) + return nullopt; + auto raw = choose(data, remainder); + if (!raw) + return nullopt; + return *raw % allocs.size(); +} + +#define ASSIGN_OR_RETURN(TYPE, NAME, EXPR) \ + auto maybe_##NAME = EXPR; \ + if (!maybe_##NAME) \ + return 0; \ + TYPE NAME = *maybe_##NAME + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t remainder) { + LIBC_NAMESPACE::FreeListHeapBuffer heap; + AllocVec allocs(heap); + + uint8_t canary = 0; + while (true) { + ASSIGN_OR_RETURN(auto, should_alloc, choose(data, remainder)); + if (should_alloc) { + ASSIGN_OR_RETURN(auto, alloc_type, choose(data, remainder)); + ASSIGN_OR_RETURN(size_t, alloc_size, choose_size(data, remainder)); + + // Perform allocation. + void *ptr = nullptr; + size_t alignment = alignof(max_align_t); + switch (alloc_type) { + case AllocType::MALLOC: + ptr = heap.allocate(alloc_size); + break; + case AllocType::ALIGNED_ALLOC: { + ASSIGN_OR_RETURN(size_t, alignment, choose_size(data, remainder)); + alignment = LIBC_NAMESPACE::cpp::bit_ceil(alignment); + ptr = heap.aligned_allocate(alignment, alloc_size); + break; + } + case AllocType::REALLOC: { + if (!alloc_size) + return 0; + ASSIGN_OR_RETURN(size_t, idx, + choose_alloc_idx(allocs, data, remainder)); + Alloc &alloc = allocs[idx]; + ptr = heap.realloc(alloc.ptr, alloc_size); + if (ptr) { + // Extend the canary region if necessary. + if (alloc_size > alloc.size) + inline_memset(static_cast(ptr) + alloc.size, alloc.canary, + alloc_size - alloc.size); + alloc.ptr = ptr; + alloc.size = alloc_size; + alloc.alignment = alignof(max_align_t); + } + break; + } + case AllocType::CALLOC: { + ASSIGN_OR_RETURN(size_t, count, choose_size(data, remainder)); + size_t total; + if (__builtin_mul_overflow(count, alloc_size, &total)) + return 0; + ptr = heap.calloc(count, alloc_size); + if (ptr) + for (size_t i = 0; i < total; ++i) + if (static_cast(ptr)[i] != 0) + __builtin_trap(); + break; + } + case AllocType::NUM_ALLOC_TYPES: + __builtin_unreachable(); + } + + if (ptr) { + // aligned_allocate should automatically apply a minimum alignment. + if (alignment < alignof(max_align_t)) + alignment = alignof(max_align_t); + // Check alignment. + if (reinterpret_cast(ptr) % alignment) + __builtin_trap(); + + // Reallocation is treated specially above, since we would otherwise + // lose the original size. + if (alloc_type != AllocType::REALLOC) { + // Fill the object with a canary byte. + inline_memset(ptr, canary, alloc_size); + + // Track the allocation. + if (!allocs.push_back({ptr, alloc_size, alignment, canary})) + return 0; + ++canary; + } + } + } else { + // Select a random allocation. + ASSIGN_OR_RETURN(size_t, idx, choose_alloc_idx(allocs, data, remainder)); + Alloc &alloc = allocs[idx]; + + // Check alignment. + if (reinterpret_cast(alloc.ptr) % alloc.alignment) + __builtin_trap(); + + // Check the canary. + uint8_t *ptr = reinterpret_cast(alloc.ptr); + for (size_t i = 0; i < alloc.size; ++i) + if (ptr[i] != alloc.canary) + __builtin_trap(); + + // Free the allocation and untrack it. + heap.free(alloc.ptr); + allocs.erase_idx(idx); + } + } + return 0; +} diff --git a/libc/fuzzing/math/Compare.h b/libc/fuzzing/math/Compare.h index 2b84ad3ab4621..8f06ed9c8cc10 100644 --- a/libc/fuzzing/math/Compare.h +++ b/libc/fuzzing/math/Compare.h @@ -20,7 +20,7 @@ ValuesEqual(T x1, T x2) { LIBC_NAMESPACE::fputil::FPBits bits2(x2); // If either is NaN, we want both to be NaN. if (bits1.is_nan() || bits2.is_nan()) - return bits2.is_nan() && bits2.is_nan(); + return bits1.is_nan() && bits2.is_nan(); // For all other values, we want the values to be bitwise equal. return bits1.uintval() == bits2.uintval(); diff --git a/libc/include/CMakeLists.txt b/libc/include/CMakeLists.txt index 91611026df105..899a93ad72d4c 100644 --- a/libc/include/CMakeLists.txt +++ b/libc/include/CMakeLists.txt @@ -767,7 +767,6 @@ if(LIBC_TARGET_OS_IS_GPU) gpu/rpc.h DEPENDS .llvm_libc_common_h - .llvm-libc-types.rpc_opcodes_t ) endif() diff --git a/libc/include/llvm-libc-types/CMakeLists.txt b/libc/include/llvm-libc-types/CMakeLists.txt index 81bb0d6e6f50e..ee734eafce362 100644 --- a/libc/include/llvm-libc-types/CMakeLists.txt +++ b/libc/include/llvm-libc-types/CMakeLists.txt @@ -122,7 +122,6 @@ add_header(struct_sockaddr_un HDR struct_sockaddr_un.h DEPENDS .sa_family_t) add_header(struct_sockaddr HDR struct_sockaddr.h DEPENDS .sa_family_t) add_header(struct_iovec HDR struct_iovec.h DEPENDS .size_t) add_header(struct_msghdr HDR struct_msghdr.h DEPENDS .size_t .socklen_t .struct_iovec) -add_header(rpc_opcodes_t HDR rpc_opcodes_t.h) add_header(ACTION HDR ACTION.h) add_header(ENTRY HDR ENTRY.h) add_header(struct_hsearch_data HDR struct_hsearch_data.h) diff --git a/libc/src/__support/RPC/rpc.h b/libc/shared/rpc.h similarity index 80% rename from libc/src/__support/RPC/rpc.h rename to libc/shared/rpc.h index 30dd2c1a8125d..3f586744377d9 100644 --- a/libc/src/__support/RPC/rpc.h +++ b/libc/shared/rpc.h @@ -15,16 +15,17 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_LIBC_SRC___SUPPORT_RPC_RPC_H -#define LLVM_LIBC_SRC___SUPPORT_RPC_RPC_H +#ifndef LLVM_LIBC_SHARED_RPC_H +#define LLVM_LIBC_SHARED_RPC_H #include "rpc_util.h" -#include "src/__support/macros/attributes.h" -#include "src/__support/macros/config.h" #include -namespace LIBC_NAMESPACE_DECL { +#ifndef RPC_INLINE +#define RPC_INLINE inline +#endif + namespace rpc { /// Use scoped atomic variants if they are available for the target. @@ -41,6 +42,13 @@ namespace rpc { #define __scoped_atomic_thread_fence(ord, scp) __atomic_thread_fence(ord) #endif +/// Generic codes that can be used whem implementing the server. +enum Status { + SUCCESS = 0x0, + ERROR = 0x1000, + UNHANDLED_OPCODE = 0x1001, +}; + /// A fixed size channel used to communicate between the RPC client and server. struct Buffer { uint64_t data[8]; @@ -70,23 +78,23 @@ constexpr static uint64_t MAX_PORT_COUNT = 4096; /// - The server will always start with a 'recv' operation. /// - Every 'send' or 'recv' call is mirrored by the other process. template struct Process { - LIBC_INLINE Process() = default; - LIBC_INLINE Process(const Process &) = delete; - LIBC_INLINE Process &operator=(const Process &) = delete; - LIBC_INLINE Process(Process &&) = default; - LIBC_INLINE Process &operator=(Process &&) = default; - LIBC_INLINE ~Process() = default; - - uint32_t port_count = 0; - uint32_t *inbox = nullptr; - uint32_t *outbox = nullptr; - Header *header = nullptr; - Buffer *packet = nullptr; + RPC_INLINE Process() = default; + RPC_INLINE Process(const Process &) = delete; + RPC_INLINE Process &operator=(const Process &) = delete; + RPC_INLINE Process(Process &&) = default; + RPC_INLINE Process &operator=(Process &&) = default; + RPC_INLINE ~Process() = default; + + const uint32_t port_count = 0; + const uint32_t *const inbox = nullptr; + uint32_t *const outbox = nullptr; + Header *const header = nullptr; + Buffer *const packet = nullptr; static constexpr uint64_t NUM_BITS_IN_WORD = sizeof(uint32_t) * 8; uint32_t lock[MAX_PORT_COUNT / NUM_BITS_IN_WORD] = {0}; - LIBC_INLINE Process(uint32_t port_count, void *buffer) + RPC_INLINE Process(uint32_t port_count, void *buffer) : port_count(port_count), inbox(reinterpret_cast( advance(buffer, inbox_offset(port_count)))), outbox(reinterpret_cast( @@ -105,20 +113,20 @@ template struct Process { /// Header header[port_count]; /// Buffer packet[port_count][lane_size]; /// }; - LIBC_INLINE static constexpr uint64_t allocation_size(uint32_t port_count, - uint32_t lane_size) { + RPC_INLINE static constexpr uint64_t allocation_size(uint32_t port_count, + uint32_t lane_size) { return buffer_offset(port_count) + buffer_bytes(port_count, lane_size); } /// Retrieve the inbox state from memory shared between processes. - LIBC_INLINE uint32_t load_inbox(uint64_t lane_mask, uint32_t index) const { + RPC_INLINE uint32_t load_inbox(uint64_t lane_mask, uint32_t index) const { return rpc::broadcast_value( lane_mask, __scoped_atomic_load_n(&inbox[index], __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM)); } /// Retrieve the outbox state from memory shared between processes. - LIBC_INLINE uint32_t load_outbox(uint64_t lane_mask, uint32_t index) const { + RPC_INLINE uint32_t load_outbox(uint64_t lane_mask, uint32_t index) const { return rpc::broadcast_value( lane_mask, __scoped_atomic_load_n(&outbox[index], __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM)); @@ -128,7 +136,7 @@ template struct Process { /// Equivalent to loading outbox followed by store of the inverted value /// The outbox is write only by this warp and tracking the value locally is /// cheaper than calling load_outbox to get the value to store. - LIBC_INLINE uint32_t invert_outbox(uint32_t index, uint32_t current_outbox) { + RPC_INLINE uint32_t invert_outbox(uint32_t index, uint32_t current_outbox) { uint32_t inverted_outbox = !current_outbox; __scoped_atomic_thread_fence(__ATOMIC_RELEASE, __MEMORY_SCOPE_SYSTEM); __scoped_atomic_store_n(&outbox[index], inverted_outbox, __ATOMIC_RELAXED, @@ -138,8 +146,8 @@ template struct Process { // Given the current outbox and inbox values, wait until the inbox changes // to indicate that this thread owns the buffer element. - LIBC_INLINE void wait_for_ownership(uint64_t lane_mask, uint32_t index, - uint32_t outbox, uint32_t in) { + RPC_INLINE void wait_for_ownership(uint64_t lane_mask, uint32_t index, + uint32_t outbox, uint32_t in) { while (buffer_unavailable(in, outbox)) { sleep_briefly(); in = load_inbox(lane_mask, index); @@ -150,14 +158,14 @@ template struct Process { /// The packet is a linearly allocated array of buffers used to communicate /// with the other process. This function returns the appropriate slot in this /// array such that the process can operate on an entire warp or wavefront. - LIBC_INLINE Buffer *get_packet(uint32_t index, uint32_t lane_size) { + RPC_INLINE Buffer *get_packet(uint32_t index, uint32_t lane_size) { return &packet[index * lane_size]; } /// Determines if this process needs to wait for ownership of the buffer. We /// invert the condition on one of the processes to indicate that if one /// process owns the buffer then the other does not. - LIBC_INLINE static bool buffer_unavailable(uint32_t in, uint32_t out) { + RPC_INLINE static bool buffer_unavailable(uint32_t in, uint32_t out) { bool cond = in != out; return Invert ? !cond : cond; } @@ -166,7 +174,7 @@ template struct Process { /// lane_mask is a bitmap of the threads in the warp that would hold the /// single lock on success, e.g. the result of rpc::get_lane_mask() /// The lock is held when the n-th bit of the lock bitfield is set. - LIBC_INLINE bool try_lock(uint64_t lane_mask, uint32_t index) { + RPC_INLINE bool try_lock(uint64_t lane_mask, uint32_t index) { // On amdgpu, test and set to the nth lock bit and a sync_lane would suffice // On volta, need to handle differences between the threads running and // the threads that were detected in the previous call to get_lane_mask() @@ -206,7 +214,7 @@ template struct Process { /// Unlock the lock at index. We need a lane sync to keep this function /// convergent, otherwise the compiler will sink the store and deadlock. - LIBC_INLINE void unlock(uint64_t lane_mask, uint32_t index) { + RPC_INLINE void unlock(uint64_t lane_mask, uint32_t index) { // Do not move any writes past the unlock. __scoped_atomic_thread_fence(__ATOMIC_RELEASE, __MEMORY_SCOPE_DEVICE); @@ -219,40 +227,40 @@ template struct Process { } /// Number of bytes to allocate for an inbox or outbox. - LIBC_INLINE static constexpr uint64_t mailbox_bytes(uint32_t port_count) { + RPC_INLINE static constexpr uint64_t mailbox_bytes(uint32_t port_count) { return port_count * sizeof(uint32_t); } /// Number of bytes to allocate for the buffer containing the packets. - LIBC_INLINE static constexpr uint64_t buffer_bytes(uint32_t port_count, - uint32_t lane_size) { + RPC_INLINE static constexpr uint64_t buffer_bytes(uint32_t port_count, + uint32_t lane_size) { return port_count * lane_size * sizeof(Buffer); } /// Offset of the inbox in memory. This is the same as the outbox if inverted. - LIBC_INLINE static constexpr uint64_t inbox_offset(uint32_t port_count) { + RPC_INLINE static constexpr uint64_t inbox_offset(uint32_t port_count) { return Invert ? mailbox_bytes(port_count) : 0; } /// Offset of the outbox in memory. This is the same as the inbox if inverted. - LIBC_INLINE static constexpr uint64_t outbox_offset(uint32_t port_count) { + RPC_INLINE static constexpr uint64_t outbox_offset(uint32_t port_count) { return Invert ? 0 : mailbox_bytes(port_count); } /// Offset of the buffer containing the packets after the inbox and outbox. - LIBC_INLINE static constexpr uint64_t header_offset(uint32_t port_count) { + RPC_INLINE static constexpr uint64_t header_offset(uint32_t port_count) { return align_up(2 * mailbox_bytes(port_count), alignof(Header)); } /// Offset of the buffer containing the packets after the inbox and outbox. - LIBC_INLINE static constexpr uint64_t buffer_offset(uint32_t port_count) { + RPC_INLINE static constexpr uint64_t buffer_offset(uint32_t port_count) { return align_up(header_offset(port_count) + port_count * sizeof(Header), alignof(Buffer)); } /// Conditionally set the n-th bit in the atomic bitfield. - LIBC_INLINE static constexpr uint32_t set_nth(uint32_t *bits, uint32_t index, - bool cond) { + RPC_INLINE static constexpr uint32_t set_nth(uint32_t *bits, uint32_t index, + bool cond) { uint32_t slot = index / NUM_BITS_IN_WORD; uint32_t bit = index % NUM_BITS_IN_WORD; return __scoped_atomic_fetch_or(&bits[slot], @@ -262,8 +270,8 @@ template struct Process { } /// Conditionally clear the n-th bit in the atomic bitfield. - LIBC_INLINE static constexpr uint32_t clear_nth(uint32_t *bits, - uint32_t index, bool cond) { + RPC_INLINE static constexpr uint32_t clear_nth(uint32_t *bits, uint32_t index, + bool cond) { uint32_t slot = index / NUM_BITS_IN_WORD; uint32_t bit = index % NUM_BITS_IN_WORD; return __scoped_atomic_fetch_and(&bits[slot], @@ -275,8 +283,8 @@ template struct Process { /// Invokes a function accross every active buffer across the total lane size. template -LIBC_INLINE static void invoke_rpc(F &&fn, uint32_t lane_size, - uint64_t lane_mask, Buffer *slot) { +RPC_INLINE static void invoke_rpc(F &&fn, uint32_t lane_size, + uint64_t lane_mask, Buffer *slot) { if constexpr (is_process_gpu()) { fn(&slot[rpc::get_lane_id()], rpc::get_lane_id()); } else { @@ -290,40 +298,40 @@ LIBC_INLINE static void invoke_rpc(F &&fn, uint32_t lane_size, /// processes. A port is conceptually an index into the memory provided by the /// underlying process that is guarded by a lock bit. template struct Port { - LIBC_INLINE Port(Process &process, uint64_t lane_mask, uint32_t lane_size, - uint32_t index, uint32_t out) + RPC_INLINE Port(Process &process, uint64_t lane_mask, uint32_t lane_size, + uint32_t index, uint32_t out) : process(process), lane_mask(lane_mask), lane_size(lane_size), index(index), out(out), receive(false), owns_buffer(true) {} - LIBC_INLINE ~Port() = default; + RPC_INLINE ~Port() = default; private: - LIBC_INLINE Port(const Port &) = delete; - LIBC_INLINE Port &operator=(const Port &) = delete; - LIBC_INLINE Port(Port &&) = default; - LIBC_INLINE Port &operator=(Port &&) = default; + RPC_INLINE Port(const Port &) = delete; + RPC_INLINE Port &operator=(const Port &) = delete; + RPC_INLINE Port(Port &&) = default; + RPC_INLINE Port &operator=(Port &&) = default; friend struct Client; friend struct Server; friend class rpc::optional>; public: - template LIBC_INLINE void recv(U use); - template LIBC_INLINE void send(F fill); + template RPC_INLINE void recv(U use); + template RPC_INLINE void send(F fill); template - LIBC_INLINE void send_and_recv(F fill, U use); - template LIBC_INLINE void recv_and_send(W work); - LIBC_INLINE void send_n(const void *const *src, uint64_t *size); - LIBC_INLINE void send_n(const void *src, uint64_t size); + RPC_INLINE void send_and_recv(F fill, U use); + template RPC_INLINE void recv_and_send(W work); + RPC_INLINE void send_n(const void *const *src, uint64_t *size); + RPC_INLINE void send_n(const void *src, uint64_t size); template - LIBC_INLINE void recv_n(void **dst, uint64_t *size, A &&alloc); + RPC_INLINE void recv_n(void **dst, uint64_t *size, A &&alloc); - LIBC_INLINE uint32_t get_opcode() const { + RPC_INLINE uint32_t get_opcode() const { return process.header[index].opcode; } - LIBC_INLINE uint32_t get_index() const { return index; } + RPC_INLINE uint32_t get_index() const { return index; } - LIBC_INLINE void close() { + RPC_INLINE void close() { // Wait for all lanes to finish using the port. rpc::sync_lane(lane_mask); @@ -346,16 +354,16 @@ template struct Port { /// The RPC client used to make requests to the server. struct Client { - LIBC_INLINE Client() = default; - LIBC_INLINE Client(const Client &) = delete; - LIBC_INLINE Client &operator=(const Client &) = delete; - LIBC_INLINE ~Client() = default; + RPC_INLINE Client() = default; + RPC_INLINE Client(const Client &) = delete; + RPC_INLINE Client &operator=(const Client &) = delete; + RPC_INLINE ~Client() = default; - LIBC_INLINE Client(uint32_t port_count, void *buffer) + RPC_INLINE Client(uint32_t port_count, void *buffer) : process(port_count, buffer) {} using Port = rpc::Port; - template LIBC_INLINE Port open(); + template RPC_INLINE Port open(); private: Process process; @@ -363,21 +371,21 @@ struct Client { /// The RPC server used to respond to the client. struct Server { - LIBC_INLINE Server() = default; - LIBC_INLINE Server(const Server &) = delete; - LIBC_INLINE Server &operator=(const Server &) = delete; - LIBC_INLINE ~Server() = default; + RPC_INLINE Server() = default; + RPC_INLINE Server(const Server &) = delete; + RPC_INLINE Server &operator=(const Server &) = delete; + RPC_INLINE ~Server() = default; - LIBC_INLINE Server(uint32_t port_count, void *buffer) + RPC_INLINE Server(uint32_t port_count, void *buffer) : process(port_count, buffer) {} using Port = rpc::Port; - LIBC_INLINE rpc::optional try_open(uint32_t lane_size, - uint32_t start = 0); - LIBC_INLINE Port open(uint32_t lane_size); + RPC_INLINE rpc::optional try_open(uint32_t lane_size, + uint32_t start = 0); + RPC_INLINE Port open(uint32_t lane_size); - LIBC_INLINE static uint64_t allocation_size(uint32_t lane_size, - uint32_t port_count) { + RPC_INLINE static uint64_t allocation_size(uint32_t lane_size, + uint32_t port_count) { return Process::allocation_size(port_count, lane_size); } @@ -386,7 +394,7 @@ struct Server { }; /// Applies \p fill to the shared buffer and initiates a send operation. -template template LIBC_INLINE void Port::send(F fill) { +template template RPC_INLINE void Port::send(F fill) { uint32_t in = owns_buffer ? out ^ T : process.load_inbox(lane_mask, index); // We need to wait until we own the buffer before sending. @@ -401,7 +409,7 @@ template template LIBC_INLINE void Port::send(F fill) { } /// Applies \p use to the shared buffer and acknowledges the send. -template template LIBC_INLINE void Port::recv(U use) { +template template RPC_INLINE void Port::recv(U use) { // We only exchange ownership of the buffer during a receive if we are waiting // for a previous receive to finish. if (receive) { @@ -424,7 +432,7 @@ template template LIBC_INLINE void Port::recv(U use) { /// Combines a send and receive into a single function. template template -LIBC_INLINE void Port::send_and_recv(F fill, U use) { +RPC_INLINE void Port::send_and_recv(F fill, U use) { send(fill); recv(use); } @@ -434,7 +442,7 @@ LIBC_INLINE void Port::send_and_recv(F fill, U use) { /// the copy back. template template -LIBC_INLINE void Port::recv_and_send(W work) { +RPC_INLINE void Port::recv_and_send(W work) { recv(work); send([](Buffer *, uint32_t) { /* no-op */ }); } @@ -442,7 +450,7 @@ LIBC_INLINE void Port::recv_and_send(W work) { /// Helper routine to simplify the interface when sending from the GPU using /// thread private pointers to the underlying value. template -LIBC_INLINE void Port::send_n(const void *src, uint64_t size) { +RPC_INLINE void Port::send_n(const void *src, uint64_t size) { const void **src_ptr = &src; uint64_t *size_ptr = &size; send_n(src_ptr, size_ptr); @@ -451,7 +459,7 @@ LIBC_INLINE void Port::send_n(const void *src, uint64_t size) { /// Sends an arbitrarily sized data buffer \p src across the shared channel in /// multiples of the packet length. template -LIBC_INLINE void Port::send_n(const void *const *src, uint64_t *size) { +RPC_INLINE void Port::send_n(const void *const *src, uint64_t *size) { uint64_t num_sends = 0; send([&](Buffer *buffer, uint32_t id) { reinterpret_cast(buffer->data)[0] = lane_value(size, id); @@ -482,7 +490,7 @@ LIBC_INLINE void Port::send_n(const void *const *src, uint64_t *size) { /// size of the data so that we can initialize the size of the \p dst buffer. template template -LIBC_INLINE void Port::recv_n(void **dst, uint64_t *size, A &&alloc) { +RPC_INLINE void Port::recv_n(void **dst, uint64_t *size, A &&alloc) { uint64_t num_recvs = 0; recv([&](Buffer *buffer, uint32_t id) { lane_value(size, id) = reinterpret_cast(buffer->data)[0]; @@ -516,7 +524,7 @@ LIBC_INLINE void Port::recv_n(void **dst, uint64_t *size, A &&alloc) { /// port. Each port instance uses an associated \p opcode to tell the server /// what to do. The Client interface provides the appropriate lane size to the /// port using the platform's returned value. -template LIBC_INLINE Client::Port Client::open() { +template RPC_INLINE Client::Port Client::open() { // Repeatedly perform a naive linear scan for a port that can be opened to // send data. for (uint32_t index = 0;; ++index) { @@ -550,7 +558,7 @@ template LIBC_INLINE Client::Port Client::open() { /// Attempts to open a port to use as the server. The server can only open a /// port if it has a pending receive operation -LIBC_INLINE rpc::optional +RPC_INLINE rpc::optional Server::try_open(uint32_t lane_size, uint32_t start) { // Perform a naive linear scan for a port that has a pending request. for (uint32_t index = start; index < process.port_count; ++index) { @@ -580,7 +588,7 @@ Server::try_open(uint32_t lane_size, uint32_t start) { return rpc::nullopt; } -LIBC_INLINE Server::Port Server::open(uint32_t lane_size) { +RPC_INLINE Server::Port Server::open(uint32_t lane_size) { for (;;) { if (rpc::optional p = try_open(lane_size)) return rpc::move(p.value()); @@ -599,6 +607,5 @@ LIBC_INLINE Server::Port Server::open(uint32_t lane_size) { #endif } // namespace rpc -} // namespace LIBC_NAMESPACE_DECL -#endif +#endif // LLVM_LIBC_SHARED_RPC_H diff --git a/libc/include/llvm-libc-types/rpc_opcodes_t.h b/libc/shared/rpc_opcodes.h similarity index 93% rename from libc/include/llvm-libc-types/rpc_opcodes_t.h rename to libc/shared/rpc_opcodes.h index f3b35518935a5..430b53aa1870c 100644 --- a/libc/include/llvm-libc-types/rpc_opcodes_t.h +++ b/libc/shared/rpc_opcodes.h @@ -6,8 +6,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_LIBC_TYPES_RPC_OPCODES_T_H -#define LLVM_LIBC_TYPES_RPC_OPCODES_T_H +#ifndef LLVM_LIBC_SHARED_RPC_OPCODES_H +#define LLVM_LIBC_SHARED_RPC_OPCODES_H #define LLVM_LIBC_RPC_BASE 'c' #define LLVM_LIBC_OPCODE(n) (LLVM_LIBC_RPC_BASE << 24 | n) @@ -46,4 +46,4 @@ typedef enum { RPC_LAST = 0xFFFFFFFF, } rpc_opcode_t; -#endif // LLVM_LIBC_TYPES_RPC_OPCODES_T_H +#endif // LLVM_LIBC_SHARED_RPC_OPCODES_H diff --git a/libc/src/__support/RPC/rpc_util.h b/libc/shared/rpc_util.h similarity index 58% rename from libc/src/__support/RPC/rpc_util.h rename to libc/shared/rpc_util.h index 7067dfc974eb3..bb0177c01b85e 100644 --- a/libc/src/__support/RPC/rpc_util.h +++ b/libc/shared/rpc_util.h @@ -6,11 +6,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_LIBC_SRC___SUPPORT_RPC_RPC_UTIL_H -#define LLVM_LIBC_SRC___SUPPORT_RPC_RPC_UTIL_H - -#include "src/__support/macros/attributes.h" -#include "src/__support/macros/config.h" +#ifndef LLVM_LIBC_SHARED_RPC_UTIL_H +#define LLVM_LIBC_SHARED_RPC_UTIL_H #include #include @@ -20,7 +17,15 @@ #define RPC_TARGET_IS_GPU #endif -namespace LIBC_NAMESPACE_DECL { +// Workaround for missing __has_builtin in < GCC 10. +#ifndef __has_builtin +#define __has_builtin(x) 0 +#endif + +#ifndef RPC_INLINE +#define RPC_INLINE inline +#endif + namespace rpc { template struct type_identity { @@ -40,26 +45,26 @@ template struct is_const : type_constant {}; /// Freestanding implementation of std::move. template -LIBC_INLINE constexpr typename remove_reference::type &&move(T &&t) { +RPC_INLINE constexpr typename remove_reference::type &&move(T &&t) { return static_cast::type &&>(t); } /// Freestanding implementation of std::forward. template -LIBC_INLINE constexpr T &&forward(typename remove_reference::type &value) { +RPC_INLINE constexpr T &&forward(typename remove_reference::type &value) { return static_cast(value); } template -LIBC_INLINE constexpr T &&forward(typename remove_reference::type &&value) { +RPC_INLINE constexpr T &&forward(typename remove_reference::type &&value) { return static_cast(value); } struct in_place_t { - LIBC_INLINE explicit in_place_t() = default; + RPC_INLINE explicit in_place_t() = default; }; struct nullopt_t { - LIBC_INLINE constexpr explicit nullopt_t() = default; + RPC_INLINE constexpr explicit nullopt_t() = default; }; constexpr inline in_place_t in_place{}; @@ -75,15 +80,15 @@ template class optional { bool in_use = false; - LIBC_INLINE ~OptionalStorage() { reset(); } + RPC_INLINE ~OptionalStorage() { reset(); } - LIBC_INLINE constexpr OptionalStorage() : empty() {} + RPC_INLINE constexpr OptionalStorage() : empty() {} template - LIBC_INLINE constexpr explicit OptionalStorage(in_place_t, Args &&...args) + RPC_INLINE constexpr explicit OptionalStorage(in_place_t, Args &&...args) : stored_value(forward(args)...) {} - LIBC_INLINE constexpr void reset() { + RPC_INLINE constexpr void reset() { if (in_use) stored_value.~U(); in_use = false; @@ -93,78 +98,70 @@ template class optional { OptionalStorage storage; public: - LIBC_INLINE constexpr optional() = default; - LIBC_INLINE constexpr optional(nullopt_t) {} + RPC_INLINE constexpr optional() = default; + RPC_INLINE constexpr optional(nullopt_t) {} - LIBC_INLINE constexpr optional(const T &t) : storage(in_place, t) { + RPC_INLINE constexpr optional(const T &t) : storage(in_place, t) { storage.in_use = true; } - LIBC_INLINE constexpr optional(const optional &) = default; + RPC_INLINE constexpr optional(const optional &) = default; - LIBC_INLINE constexpr optional(T &&t) : storage(in_place, move(t)) { + RPC_INLINE constexpr optional(T &&t) : storage(in_place, move(t)) { storage.in_use = true; } - LIBC_INLINE constexpr optional(optional &&O) = default; + RPC_INLINE constexpr optional(optional &&O) = default; - LIBC_INLINE constexpr optional &operator=(T &&t) { + RPC_INLINE constexpr optional &operator=(T &&t) { storage = move(t); return *this; } - LIBC_INLINE constexpr optional &operator=(optional &&) = default; + RPC_INLINE constexpr optional &operator=(optional &&) = default; - LIBC_INLINE constexpr optional &operator=(const T &t) { + RPC_INLINE constexpr optional &operator=(const T &t) { storage = t; return *this; } - LIBC_INLINE constexpr optional &operator=(const optional &) = default; + RPC_INLINE constexpr optional &operator=(const optional &) = default; - LIBC_INLINE constexpr void reset() { storage.reset(); } + RPC_INLINE constexpr void reset() { storage.reset(); } - LIBC_INLINE constexpr const T &value() const & { - return storage.stored_value; - } + RPC_INLINE constexpr const T &value() const & { return storage.stored_value; } - LIBC_INLINE constexpr T &value() & { return storage.stored_value; } + RPC_INLINE constexpr T &value() & { return storage.stored_value; } - LIBC_INLINE constexpr explicit operator bool() const { - return storage.in_use; - } - LIBC_INLINE constexpr bool has_value() const { return storage.in_use; } - LIBC_INLINE constexpr const T *operator->() const { + RPC_INLINE constexpr explicit operator bool() const { return storage.in_use; } + RPC_INLINE constexpr bool has_value() const { return storage.in_use; } + RPC_INLINE constexpr const T *operator->() const { return &storage.stored_value; } - LIBC_INLINE constexpr T *operator->() { return &storage.stored_value; } - LIBC_INLINE constexpr const T &operator*() const & { + RPC_INLINE constexpr T *operator->() { return &storage.stored_value; } + RPC_INLINE constexpr const T &operator*() const & { return storage.stored_value; } - LIBC_INLINE constexpr T &operator*() & { return storage.stored_value; } + RPC_INLINE constexpr T &operator*() & { return storage.stored_value; } - LIBC_INLINE constexpr T &&value() && { return move(storage.stored_value); } - LIBC_INLINE constexpr T &&operator*() && { - return move(storage.stored_value); - } + RPC_INLINE constexpr T &&value() && { return move(storage.stored_value); } + RPC_INLINE constexpr T &&operator*() && { return move(storage.stored_value); } }; /// Suspend the thread briefly to assist the thread scheduler during busy loops. -LIBC_INLINE void sleep_briefly() { -#if defined(LIBC_TARGET_ARCH_IS_NVPTX) +RPC_INLINE void sleep_briefly() { +#if defined(__NVPTX__) if (__nvvm_reflect("__CUDA_ARCH") >= 700) asm("nanosleep.u32 64;" ::: "memory"); -#elif defined(LIBC_TARGET_ARCH_IS_AMDGPU) +#elif defined(__AMDGPU__) __builtin_amdgcn_s_sleep(2); -#elif defined(LIBC_TARGET_ARCH_IS_X86) +#elif __has_builtin(__builtin_ia32_pause) __builtin_ia32_pause(); -#elif defined(LIBC_TARGET_ARCH_IS_AARCH64) && __has_builtin(__builtin_arm_isb) +#elif __has_builtin(__builtin_arm_isb) __builtin_arm_isb(0xf); -#elif defined(LIBC_TARGET_ARCH_IS_AARCH64) - asm volatile("isb\n" ::: "memory"); #else // Simply do nothing if sleeping isn't supported on this platform. #endif } /// Conditional to indicate if this process is running on the GPU. -LIBC_INLINE constexpr bool is_process_gpu() { +RPC_INLINE constexpr bool is_process_gpu() { #ifdef RPC_TARGET_IS_GPU return true; #else @@ -173,14 +170,14 @@ LIBC_INLINE constexpr bool is_process_gpu() { } /// Wait for all lanes in the group to complete. -LIBC_INLINE void sync_lane(uint64_t lane_mask) { +RPC_INLINE void sync_lane(uint64_t lane_mask) { #ifdef RPC_TARGET_IS_GPU return __gpu_sync_lane(lane_mask); #endif } /// Copies the value from the first active thread to the rest. -LIBC_INLINE uint32_t broadcast_value(uint64_t lane_mask, uint32_t x) { +RPC_INLINE uint32_t broadcast_value(uint64_t lane_mask, uint32_t x) { #ifdef RPC_TARGET_IS_GPU return __gpu_read_first_lane_u32(lane_mask, x); #else @@ -189,7 +186,7 @@ LIBC_INLINE uint32_t broadcast_value(uint64_t lane_mask, uint32_t x) { } /// Returns the number lanes that participate in the RPC interface. -LIBC_INLINE uint32_t get_num_lanes() { +RPC_INLINE uint32_t get_num_lanes() { #ifdef RPC_TARGET_IS_GPU return __gpu_num_lanes(); #else @@ -198,7 +195,7 @@ LIBC_INLINE uint32_t get_num_lanes() { } /// Returns the id of the thread inside of an AMD wavefront executing together. -LIBC_INLINE uint64_t get_lane_mask() { +RPC_INLINE uint64_t get_lane_mask() { #ifdef RPC_TARGET_IS_GPU return __gpu_lane_mask(); #else @@ -207,7 +204,7 @@ LIBC_INLINE uint64_t get_lane_mask() { } /// Returns the id of the thread inside of an AMD wavefront executing together. -LIBC_INLINE uint32_t get_lane_id() { +RPC_INLINE uint32_t get_lane_id() { #ifdef RPC_TARGET_IS_GPU return __gpu_lane_id(); #else @@ -216,7 +213,7 @@ LIBC_INLINE uint32_t get_lane_id() { } /// Conditional that is only true for a single thread in a lane. -LIBC_INLINE bool is_first_lane(uint64_t lane_mask) { +RPC_INLINE bool is_first_lane(uint64_t lane_mask) { #ifdef RPC_TARGET_IS_GPU return __gpu_is_first_in_lane(lane_mask); #else @@ -225,7 +222,7 @@ LIBC_INLINE bool is_first_lane(uint64_t lane_mask) { } /// Returns a bitmask of threads in the current lane for which \p x is true. -LIBC_INLINE uint64_t ballot(uint64_t lane_mask, bool x) { +RPC_INLINE uint64_t ballot(uint64_t lane_mask, bool x) { #ifdef RPC_TARGET_IS_GPU return __gpu_ballot(lane_mask, x); #else @@ -235,7 +232,7 @@ LIBC_INLINE uint64_t ballot(uint64_t lane_mask, bool x) { /// Return \p val aligned "upwards" according to \p align. template -LIBC_INLINE constexpr V align_up(V val, A align) { +RPC_INLINE constexpr V align_up(V val, A align) { return ((val + V(align) - 1) / V(align)) * V(align); } @@ -243,14 +240,14 @@ LIBC_INLINE constexpr V align_up(V val, A align) { /// model. On the GPU stack variables are always private to a lane so we can /// simply use the variable passed in. On the CPU we need to allocate enough /// space for the whole lane and index into it. -template LIBC_INLINE V &lane_value(V *val, uint32_t id) { +template RPC_INLINE V &lane_value(V *val, uint32_t id) { if constexpr (is_process_gpu()) return *val; return val[id]; } /// Advance the \p p by \p bytes. -template LIBC_INLINE T *advance(T *ptr, U bytes) { +template RPC_INLINE T *advance(T *ptr, U bytes) { if constexpr (is_const::value) return reinterpret_cast(reinterpret_cast(ptr) + bytes); @@ -259,15 +256,14 @@ template LIBC_INLINE T *advance(T *ptr, U bytes) { } /// Wrapper around the optimal memory copy implementation for the target. -LIBC_INLINE void rpc_memcpy(void *dst, const void *src, size_t count) { +RPC_INLINE void rpc_memcpy(void *dst, const void *src, size_t count) { __builtin_memcpy(dst, src, count); } -template LIBC_INLINE constexpr const T &max(const T &a, const T &b) { +template RPC_INLINE constexpr const T &max(const T &a, const T &b) { return (a < b) ? b : a; } } // namespace rpc -} // namespace LIBC_NAMESPACE_DECL -#endif // LLVM_LIBC_SRC___SUPPORT_RPC_RPC_UTIL_H +#endif // LLVM_LIBC_SHARED_RPC_UTIL_H diff --git a/libc/src/__support/CMakeLists.txt b/libc/src/__support/CMakeLists.txt index 6637ff9d56f4b..8f85740f70a06 100644 --- a/libc/src/__support/CMakeLists.txt +++ b/libc/src/__support/CMakeLists.txt @@ -14,11 +14,14 @@ add_header_library( libc.src.__support.CPP.type_traits ) -add_header_library( +add_object_library( freelist HDRS freelist.h + SRCS + freelist.cpp DEPENDS + .block libc.src.__support.fixedvector libc.src.__support.CPP.array libc.src.__support.CPP.cstddef @@ -26,13 +29,32 @@ add_header_library( libc.src.__support.CPP.span ) +add_object_library( + freetrie + HDRS + freetrie.h + SRCS + freetrie.cpp + DEPENDS + .block + .freelist +) + +add_header_library( + freestore + HDRS + freestore.h + DEPENDS + .freetrie +) + add_header_library( freelist_heap HDRS freelist_heap.h DEPENDS .block - .freelist + .freestore libc.src.__support.CPP.cstddef libc.src.__support.CPP.array libc.src.__support.CPP.optional diff --git a/libc/src/__support/RPC/CMakeLists.txt b/libc/src/__support/RPC/CMakeLists.txt index 183fc6f8683e0..0a7141fb60bf0 100644 --- a/libc/src/__support/RPC/CMakeLists.txt +++ b/libc/src/__support/RPC/CMakeLists.txt @@ -2,20 +2,6 @@ if(NOT LIBC_TARGET_OS_IS_GPU) return() endif() -add_header_library( - rpc - HDRS - rpc.h - rpc_util.h - DEPENDS - libc.src.__support.common - libc.src.__support.CPP.algorithm - libc.src.__support.CPP.atomic - libc.src.__support.CPP.functional - libc.src.__support.CPP.optional - libc.src.__support.GPU.utils -) - add_object_library( rpc_client SRCS @@ -25,5 +11,4 @@ add_object_library( DEPENDS libc.include.gpu_rpc libc.src.__support.GPU.utils - .rpc ) diff --git a/libc/src/__support/RPC/rpc_client.cpp b/libc/src/__support/RPC/rpc_client.cpp index 232b20d008d1d..c26cf9ca2ddbe 100644 --- a/libc/src/__support/RPC/rpc_client.cpp +++ b/libc/src/__support/RPC/rpc_client.cpp @@ -7,7 +7,7 @@ //===----------------------------------------------------------------------===// #include "rpc_client.h" -#include "rpc.h" + #include "src/__support/macros/config.h" namespace LIBC_NAMESPACE_DECL { diff --git a/libc/src/__support/RPC/rpc_client.h b/libc/src/__support/RPC/rpc_client.h index 7bd6d0b5e00b4..7a62e4e983ad0 100644 --- a/libc/src/__support/RPC/rpc_client.h +++ b/libc/src/__support/RPC/rpc_client.h @@ -9,15 +9,21 @@ #ifndef LLVM_LIBC_SRC___SUPPORT_RPC_RPC_CLIENT_H #define LLVM_LIBC_SRC___SUPPORT_RPC_RPC_CLIENT_H -#include "rpc.h" +#include "shared/rpc.h" +#include "shared/rpc_opcodes.h" -#include "include/llvm-libc-types/rpc_opcodes_t.h" #include "src/__support/CPP/type_traits.h" #include "src/__support/macros/config.h" namespace LIBC_NAMESPACE_DECL { namespace rpc { +using ::rpc::Buffer; +using ::rpc::Client; +using ::rpc::Port; +using ::rpc::Process; +using ::rpc::Server; + static_assert(cpp::is_trivially_copyable::value && sizeof(Process) == sizeof(Process), "The client is not trivially copyable from the server"); diff --git a/libc/src/__support/block.h b/libc/src/__support/block.h index 96021b99587c8..9ca3f11530c4b 100644 --- a/libc/src/__support/block.h +++ b/libc/src/__support/block.h @@ -68,13 +68,11 @@ using cpp::optional; /// The blocks store their offsets to the previous and next blocks. The latter /// is also the block's size. /// -/// The `ALIGNMENT` constant provided by the derived block is typically the -/// minimum value of `alignof(OffsetType)`. Blocks will always be aligned to a -/// `ALIGNMENT` boundary. Block sizes will always be rounded up to a multiple of -/// `ALIGNMENT`. +/// Blocks will always be aligned to a `ALIGNMENT` boundary. Block sizes will +/// always be rounded up to a multiple of `ALIGNMENT`. /// -/// As an example, the diagram below represents two contiguous -/// `Block`s. The indices indicate byte offsets: +/// As an example, the diagram below represents two contiguous `Block`s. The +/// indices indicate byte offsets: /// /// @code{.unparsed} /// Block 1: @@ -117,17 +115,6 @@ using cpp::optional; /// /// The next offset of a block matches the previous offset of its next block. /// The first block in a list is denoted by having a previous offset of `0`. -/// -/// @tparam OffsetType Unsigned integral type used to encode offsets. Larger -/// types can address more memory, but consume greater -/// overhead. -/// @tparam kAlign Sets the overall alignment for blocks. Minimum is -/// `alignof(OffsetType)`, but the default is max_align_t, -/// since the usable space will then already be -/// aligned to max_align_t if the size of OffsetType is no -/// less than half of max_align_t. Larger values cause -/// greater overhead. -template class Block { // Masks for the contents of the next_ field. static constexpr size_t PREV_FREE_MASK = 1 << 0; @@ -135,12 +122,8 @@ class Block { static constexpr size_t SIZE_MASK = ~(PREV_FREE_MASK | LAST_MASK); public: - using offset_type = OffsetType; - static_assert(cpp::is_unsigned_v, - "offset type must be unsigned"); - static constexpr size_t ALIGNMENT = - cpp::max(cpp::max(kAlign, alignof(offset_type)), size_t{4}); - static constexpr size_t BLOCK_OVERHEAD = align_up(sizeof(Block), ALIGNMENT); + static constexpr size_t ALIGNMENT = cpp::max(alignof(max_align_t), size_t{4}); + static const size_t BLOCK_OVERHEAD; // No copy or move. Block(const Block &other) = delete; @@ -157,58 +140,71 @@ class Block { /// /// @warning This method does not do any checking; passing a random /// pointer will return a non-null pointer. - static Block *from_usable_space(void *usable_space) { + LIBC_INLINE static Block *from_usable_space(void *usable_space) { auto *bytes = reinterpret_cast(usable_space); return reinterpret_cast(bytes - BLOCK_OVERHEAD); } - static const Block *from_usable_space(const void *usable_space) { + LIBC_INLINE static const Block *from_usable_space(const void *usable_space) { const auto *bytes = reinterpret_cast(usable_space); return reinterpret_cast(bytes - BLOCK_OVERHEAD); } /// @returns The total size of the block in bytes, including the header. - size_t outer_size() const { return next_ & SIZE_MASK; } + LIBC_INLINE size_t outer_size() const { return next_ & SIZE_MASK; } - static size_t outer_size(size_t inner_size) { + LIBC_INLINE static size_t outer_size(size_t inner_size) { // The usable region includes the prev_ field of the next block. return inner_size - sizeof(prev_) + BLOCK_OVERHEAD; } - /// @returns The number of usable bytes inside the block. - size_t inner_size() const { + /// @returns The number of usable bytes inside the block were it to be + /// allocated. + LIBC_INLINE size_t inner_size() const { if (!next()) return 0; return inner_size(outer_size()); } - static size_t inner_size(size_t outer_size) { + /// @returns The number of usable bytes inside a block with the given outer + /// size were it to be allocated. + LIBC_INLINE static size_t inner_size(size_t outer_size) { // The usable region includes the prev_ field of the next block. - return outer_size - BLOCK_OVERHEAD + sizeof(prev_); + return inner_size_free(outer_size) + sizeof(prev_); + } + + /// @returns The number of usable bytes inside the block if it remains free. + LIBC_INLINE size_t inner_size_free() const { + if (!next()) + return 0; + return inner_size_free(outer_size()); + } + + /// @returns The number of usable bytes inside a block with the given outer + /// size if it remains free. + LIBC_INLINE static size_t inner_size_free(size_t outer_size) { + return outer_size - BLOCK_OVERHEAD; } /// @returns A pointer to the usable space inside this block. - cpp::byte *usable_space() { + LIBC_INLINE cpp::byte *usable_space() { return reinterpret_cast(this) + BLOCK_OVERHEAD; } - const cpp::byte *usable_space() const { + LIBC_INLINE const cpp::byte *usable_space() const { return reinterpret_cast(this) + BLOCK_OVERHEAD; } // @returns The region of memory the block manages, including the header. - ByteSpan region() { + LIBC_INLINE ByteSpan region() { return {reinterpret_cast(this), outer_size()}; } /// Attempts to split this block. /// - /// If successful, the block will have an inner size of `new_inner_size`, - /// rounded to ensure that the split point is on an ALIGNMENT boundary. The - /// remaining space will be returned as a new block. Note that the prev_ field - /// of the next block counts as part of the inner size of the returnd block. - /// - /// This method may fail if the remaining space is too small to hold a new - /// block. If this method fails for any reason, the original block is - /// unmodified. + /// If successful, the block will have an inner size of at least + /// `new_inner_size`, rounded to ensure that the split point is on an + /// ALIGNMENT boundary. The remaining space will be returned as a new block. + /// Note that the prev_ field of the next block counts as part of the inner + /// size of the returnd block. optional split(size_t new_inner_size); /// Merges this block with the one that comes after it. @@ -216,42 +212,53 @@ class Block { /// @returns The block immediately after this one, or a null pointer if this /// is the last block. - Block *next() const; + LIBC_INLINE Block *next() const { + if (next_ & LAST_MASK) + return nullptr; + return reinterpret_cast(reinterpret_cast(this) + + outer_size()); + } /// @returns The free block immediately before this one, otherwise nullptr. - Block *prev_free() const; + LIBC_INLINE Block *prev_free() const { + if (!(next_ & PREV_FREE_MASK)) + return nullptr; + return reinterpret_cast(reinterpret_cast(this) - prev_); + } /// @returns Whether the block is unavailable for allocation. - bool used() const { return !next() || !next()->prev_free(); } + LIBC_INLINE bool used() const { return !next() || !next()->prev_free(); } /// Marks this block as in use. - void mark_used() { + LIBC_INLINE void mark_used() { LIBC_ASSERT(next() && "last block is always considered used"); next()->next_ &= ~PREV_FREE_MASK; } /// Marks this block as free. - void mark_free() { + LIBC_INLINE void mark_free() { LIBC_ASSERT(next() && "last block is always considered used"); next()->next_ |= PREV_FREE_MASK; // The next block's prev_ field becomes alive, as it is no longer part of // this block's used space. - *new (&next()->prev_) offset_type = outer_size(); + *new (&next()->prev_) size_t = outer_size(); } /// Marks this block as the last one in the chain. Makes next() return /// nullptr. - void mark_last() { next_ |= LAST_MASK; } + LIBC_INLINE void mark_last() { next_ |= LAST_MASK; } - constexpr Block(size_t outer_size); + LIBC_INLINE constexpr Block(size_t outer_size) : next_(outer_size) { + LIBC_ASSERT(outer_size % ALIGNMENT == 0 && "block sizes must be aligned"); + } - bool is_usable_space_aligned(size_t alignment) const { + LIBC_INLINE bool is_usable_space_aligned(size_t alignment) const { return reinterpret_cast(usable_space()) % alignment == 0; } /// @returns The new inner size of this block that would give the usable /// space of the next block the given alignment. - size_t padding_for_alignment(size_t alignment) const { + LIBC_INLINE size_t padding_for_alignment(size_t alignment) const { if (is_usable_space_aligned(alignment)) return 0; @@ -309,7 +316,9 @@ class Block { private: /// Construct a block to represent a span of bytes. Overwrites only enough /// memory for the block header; the rest of the span is left alone. - static Block *as_block(ByteSpan bytes); + LIBC_INLINE static Block *as_block(ByteSpan bytes) { + return ::new (bytes.data()) Block(bytes.size()); + } /// Like `split`, but assumes the caller has already checked to parameters to /// ensure the split will succeed. @@ -319,11 +328,11 @@ class Block { /// block. This field is only alive when the previous block is free; /// otherwise, its memory is reused as part of the previous block's usable /// space. - offset_type prev_ = 0; + size_t prev_ = 0; /// Offset from this block to the next block. Valid even if this is the last /// block, since it equals the size of the block. - offset_type next_ = 0; + size_t next_ = 0; /// Information about the current state of the block is stored in the two low /// order bits of the next_ value. These are guaranteed free by a minimum @@ -334,9 +343,10 @@ class Block { /// previous block is free. /// * If the `last` flag is set, the block is the sentinel last block. It is /// summarily considered used and has no next block. -} __attribute__((packed, aligned(cpp::max(kAlign, size_t{4})))); +} __attribute__((packed, aligned(cpp::max(alignof(max_align_t), size_t{4})))); -// Public template method implementations. +inline constexpr size_t Block::BLOCK_OVERHEAD = + align_up(sizeof(Block), ALIGNMENT); LIBC_INLINE ByteSpan get_aligned_subspan(ByteSpan bytes, size_t alignment) { if (bytes.data() == nullptr) @@ -354,9 +364,8 @@ LIBC_INLINE ByteSpan get_aligned_subspan(ByteSpan bytes, size_t alignment) { aligned_end - aligned_start); } -template -optional *> -Block::init(ByteSpan region) { +LIBC_INLINE +optional Block::init(ByteSpan region) { optional result = get_aligned_subspan(region, ALIGNMENT); if (!result) return {}; @@ -366,7 +375,7 @@ Block::init(ByteSpan region) { if (region.size() < 2 * BLOCK_OVERHEAD) return {}; - if (cpp::numeric_limits::max() < region.size()) + if (cpp::numeric_limits::max() < region.size()) return {}; Block *block = as_block(region.first(region.size() - BLOCK_OVERHEAD)); @@ -376,9 +385,8 @@ Block::init(ByteSpan region) { return block; } -template -bool Block::can_allocate(size_t alignment, - size_t size) const { +LIBC_INLINE +bool Block::can_allocate(size_t alignment, size_t size) const { if (inner_size() < size) return false; if (is_usable_space_aligned(alignment)) @@ -393,10 +401,8 @@ bool Block::can_allocate(size_t alignment, return size <= aligned_inner_size; } -template -typename Block::BlockInfo -Block::allocate(Block *block, size_t alignment, - size_t size) { +LIBC_INLINE +Block::BlockInfo Block::allocate(Block *block, size_t alignment, size_t size) { LIBC_ASSERT( block->can_allocate(alignment, size) && "Calls to this function for a given alignment and size should only be " @@ -434,15 +440,14 @@ Block::allocate(Block *block, size_t alignment, return info; } -template -optional *> -Block::split(size_t new_inner_size) { +LIBC_INLINE +optional Block::split(size_t new_inner_size) { if (used()) return {}; // The prev_ field of the next block is always available, so there is a // minimum size to a block created through splitting. if (new_inner_size < sizeof(prev_)) - return {}; + new_inner_size = sizeof(prev_); size_t old_inner_size = inner_size(); new_inner_size = @@ -456,9 +461,8 @@ Block::split(size_t new_inner_size) { return split_impl(new_inner_size); } -template -Block * -Block::split_impl(size_t new_inner_size) { +LIBC_INLINE +Block *Block::split_impl(size_t new_inner_size) { size_t outer_size1 = outer_size(new_inner_size); LIBC_ASSERT(outer_size1 % ALIGNMENT == 0 && "new size must be aligned"); ByteSpan new_region = region().subspan(outer_size1); @@ -471,8 +475,8 @@ Block::split_impl(size_t new_inner_size) { return new_block; } -template -bool Block::merge_next() { +LIBC_INLINE +bool Block::merge_next() { if (used() || next()->used()) return false; size_t new_size = outer_size() + next()->outer_size(); @@ -482,34 +486,6 @@ bool Block::merge_next() { return true; } -template -Block *Block::next() const { - if (next_ & LAST_MASK) - return nullptr; - return reinterpret_cast(reinterpret_cast(this) + - outer_size()); -} - -template -Block *Block::prev_free() const { - if (!(next_ & PREV_FREE_MASK)) - return nullptr; - return reinterpret_cast(reinterpret_cast(this) - prev_); -} - -// Private template method implementations. - -template -constexpr Block::Block(size_t outer_size) - : next_(outer_size) { - LIBC_ASSERT(outer_size % ALIGNMENT == 0 && "block sizes must be aligned"); -} - -template -Block *Block::as_block(ByteSpan bytes) { - return ::new (bytes.data()) Block(bytes.size()); -} - } // namespace LIBC_NAMESPACE_DECL #endif // LLVM_LIBC_SRC___SUPPORT_BLOCK_H diff --git a/libc/src/__support/common.h b/libc/src/__support/common.h index 79803a346f692..42e8a79187fac 100644 --- a/libc/src/__support/common.h +++ b/libc/src/__support/common.h @@ -21,14 +21,15 @@ #define LLVM_LIBC_FUNCTION_ATTR #endif +// clang-format off // Allow each function `func` to have extra attributes specified by defining: // `LLVM_LIBC_FUNCTION_ATTR_func` macro, which should always start with // "LLVM_LIBC_EMPTY, " // // For examples: // #define LLVM_LIBC_FUNCTION_ATTR_memcpy LLVM_LIBC_EMPTY, [[gnu::weak]] -// #define LLVM_LIBC_FUNCTION_ATTR_memchr LLVM_LIBC_EMPTY, [[gnu::weak]] \ -// [[gnu::visibility("default")]] +// #define LLVM_LIBC_FUNCTION_ATTR_memchr LLVM_LIBC_EMPTY, [[gnu::weak]] [[gnu::visibility("default")]] +// clang-format on #define LLVM_LIBC_EMPTY #define GET_SECOND(first, second, ...) second diff --git a/libc/src/__support/freelist.cpp b/libc/src/__support/freelist.cpp new file mode 100644 index 0000000000000..bfb90ae1c4db4 --- /dev/null +++ b/libc/src/__support/freelist.cpp @@ -0,0 +1,42 @@ +//===-- Implementation for freelist ---------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "freelist.h" + +namespace LIBC_NAMESPACE_DECL { + +void FreeList::push(Node *node) { + if (begin_) { + LIBC_ASSERT(Block::from_usable_space(node)->outer_size() == + begin_->block()->outer_size() && + "freelist entries must have the same size"); + // Since the list is circular, insert the node immediately before begin_. + node->prev = begin_->prev; + node->next = begin_; + begin_->prev->next = node; + begin_->prev = node; + } else { + begin_ = node->prev = node->next = node; + } +} + +void FreeList::remove(Node *node) { + LIBC_ASSERT(begin_ && "cannot remove from empty list"); + if (node == node->next) { + LIBC_ASSERT(node == begin_ && + "a self-referential node must be the only element"); + begin_ = nullptr; + } else { + node->prev->next = node->next; + node->next->prev = node->prev; + if (begin_ == node) + begin_ = node->next; + } +} + +} // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/__support/freelist.h b/libc/src/__support/freelist.h index a54cf953fe7ab..c51f14fe57ae7 100644 --- a/libc/src/__support/freelist.h +++ b/libc/src/__support/freelist.h @@ -1,4 +1,4 @@ -//===-- Interface for freelist_malloc -------------------------------------===// +//===-- Interface for freelist --------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. @@ -9,200 +9,80 @@ #ifndef LLVM_LIBC_SRC___SUPPORT_FREELIST_H #define LLVM_LIBC_SRC___SUPPORT_FREELIST_H -#include "src/__support/CPP/array.h" -#include "src/__support/CPP/cstddef.h" -#include "src/__support/CPP/new.h" -#include "src/__support/CPP/span.h" -#include "src/__support/fixedvector.h" -#include "src/__support/macros/config.h" +#include "block.h" namespace LIBC_NAMESPACE_DECL { -using cpp::span; - -/// Basic [freelist](https://en.wikipedia.org/wiki/Free_list) implementation -/// for an allocator. This implementation buckets by chunk size, with a list -/// of user-provided buckets. Each bucket is a linked list of storage chunks. -/// Because this freelist uses the added chunks themselves as list nodes, there -/// is a lower bound of `sizeof(FreeList.FreeListNode)` bytes for chunks which -/// can be added to this freelist. There is also an implicit bucket for -/// "everything else", for chunks which do not fit into a bucket. -/// -/// Each added chunk will be added to the smallest bucket under which it fits. -/// If it does not fit into any user-provided bucket, it will be added to the -/// default bucket. -/// -/// As an example, assume that the `FreeList` is configured with buckets of -/// sizes {64, 128, 256, and 512} bytes. The internal state may look like the -/// following: +/// A circularly-linked FIFO list storing free Blocks. All Blocks on a list +/// are the same size. The blocks are referenced by Nodes in the list; the list +/// refers to these, but it does not own them. /// -/// @code{.unparsed} -/// bucket[0] (64B) --> chunk[12B] --> chunk[42B] --> chunk[64B] --> NULL -/// bucket[1] (128B) --> chunk[65B] --> chunk[72B] --> NULL -/// bucket[2] (256B) --> NULL -/// bucket[3] (512B) --> chunk[312B] --> chunk[512B] --> chunk[416B] --> NULL -/// bucket[4] (implicit) --> chunk[1024B] --> chunk[513B] --> NULL -/// @endcode -/// -/// Note that added chunks should be aligned to a 4-byte boundary. -template class FreeList { +/// Allocating free blocks in FIFO order maximizes the amount of time before a +/// free block is reused. This in turn maximizes the number of opportunities for +/// it to be coalesced with an adjacent block, which tends to reduce heap +/// fragmentation. +class FreeList { public: - // Remove copy/move ctors - FreeList(const FreeList &other) = delete; - FreeList(FreeList &&other) = delete; - FreeList &operator=(const FreeList &other) = delete; - FreeList &operator=(FreeList &&other) = delete; - - /// Adds a chunk to this freelist. - bool add_chunk(cpp::span chunk); - - /// Finds an eligible chunk for an allocation of size `size`. - /// - /// @note This returns the first allocation possible within a given bucket; - /// It does not currently optimize for finding the smallest chunk. - /// - /// @returns - /// * On success - A span representing the chunk. - /// * On failure (e.g. there were no chunks available for that allocation) - - /// A span with a size of 0. - cpp::span find_chunk(size_t size) const; - - template cpp::span find_chunk_if(Cond op) const; - - /// Removes a chunk from this freelist. - bool remove_chunk(cpp::span chunk); - - /// For a given size, find which index into chunks_ the node should be written - /// to. - constexpr size_t find_chunk_ptr_for_size(size_t size, bool non_null) const; - - struct FreeListNode { - FreeListNode *next; - size_t size; - }; - - constexpr void set_freelist_node(FreeListNode &node, - cpp::span chunk); - - constexpr explicit FreeList(const cpp::array &sizes) - : chunks_(NUM_BUCKETS + 1, 0), sizes_(sizes.begin(), sizes.end()) {} - -private: - FixedVector chunks_; - FixedVector sizes_; -}; - -template -constexpr void FreeList::set_freelist_node(FreeListNode &node, - span chunk) { - // Add it to the correct list. - size_t chunk_ptr = find_chunk_ptr_for_size(chunk.size(), false); - node.size = chunk.size(); - node.next = chunks_[chunk_ptr]; - chunks_[chunk_ptr] = &node; -} - -template -bool FreeList::add_chunk(span chunk) { - // Check that the size is enough to actually store what we need - if (chunk.size() < sizeof(FreeListNode)) - return false; - - FreeListNode *node = ::new (chunk.data()) FreeListNode; - set_freelist_node(*node, chunk); - - return true; -} - -template -template -span FreeList::find_chunk_if(Cond op) const { - for (FreeListNode *node : chunks_) { - while (node != nullptr) { - span chunk(reinterpret_cast(node), node->size); - if (op(chunk)) - return chunk; - - node = node->next; + class Node { + public: + /// @returns The block containing this node. + LIBC_INLINE const Block *block() const { + return Block::from_usable_space(this); } - } - return {}; -} + /// @returns The block containing this node. + LIBC_INLINE Block *block() { return Block::from_usable_space(this); } -template -span FreeList::find_chunk(size_t size) const { - if (size == 0) - return span(); + /// @returns The inner size of blocks in the list containing this node. + LIBC_INLINE size_t size() const { return block()->inner_size(); } - size_t chunk_ptr = find_chunk_ptr_for_size(size, true); - - // Check that there's data. This catches the case where we run off the - // end of the array - if (chunks_[chunk_ptr] == nullptr) - return span(); + private: + // Circularly linked pointers to adjacent nodes. + Node *prev; + Node *next; + friend class FreeList; + }; - // Now iterate up the buckets, walking each list to find a good candidate - for (size_t i = chunk_ptr; i < chunks_.size(); i++) { - FreeListNode *node = chunks_[static_cast(i)]; + LIBC_INLINE constexpr FreeList() : FreeList(nullptr) {} + LIBC_INLINE constexpr FreeList(Node *begin) : begin_(begin) {} - while (node != nullptr) { - if (node->size >= size) - return span(reinterpret_cast(node), node->size); + LIBC_INLINE bool empty() const { return !begin_; } - node = node->next; - } + /// @returns The inner size of blocks in the list. + LIBC_INLINE size_t size() const { + LIBC_ASSERT(begin_ && "empty lists have no size"); + return begin_->size(); } - // If we get here, we've checked every block in every bucket. There's - // nothing that can support this allocation. - return span(); -} + /// @returns The first node in the list. + LIBC_INLINE Node *begin() { return begin_; } -template -bool FreeList::remove_chunk(span chunk) { - size_t chunk_ptr = find_chunk_ptr_for_size(chunk.size(), true); + /// @returns The first block in the list. + LIBC_INLINE Block *front() { return begin_->block(); } - // Check head first. - if (chunks_[chunk_ptr] == nullptr) - return false; - - FreeListNode *node = chunks_[chunk_ptr]; - if (reinterpret_cast(node) == chunk.data()) { - chunks_[chunk_ptr] = node->next; - return true; + /// Push a block to the back of the list. + /// The block must be large enough to contain a node. + LIBC_INLINE void push(Block *block) { + LIBC_ASSERT(!block->used() && + "only free blocks can be placed on free lists"); + LIBC_ASSERT(block->inner_size_free() >= sizeof(FreeList) && + "block too small to accomodate free list node"); + push(new (block->usable_space()) Node); } - // No? Walk the nodes. - node = chunks_[chunk_ptr]; + /// Push an already-constructed node to the back of the list. + /// This allows pushing derived node types with additional data. + void push(Node *node); - while (node->next != nullptr) { - if (reinterpret_cast(node->next) == chunk.data()) { - // Found it, remove this node out of the chain - node->next = node->next->next; - return true; - } + /// Pop the first node from the list. + LIBC_INLINE void pop() { remove(begin_); } - node = node->next; - } + /// Remove an arbitrary node from the list. + void remove(Node *node); - return false; -} - -template -constexpr size_t -FreeList::find_chunk_ptr_for_size(size_t size, - bool non_null) const { - size_t chunk_ptr = 0; - for (chunk_ptr = 0u; chunk_ptr < sizes_.size(); chunk_ptr++) { - if (sizes_[chunk_ptr] >= size && - (!non_null || chunks_[chunk_ptr] != nullptr)) { - break; - } - } - - return chunk_ptr; -} +private: + Node *begin_; +}; } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/__support/freelist_heap.h b/libc/src/__support/freelist_heap.h index 6c860d039553a..8fa36257cb91a 100644 --- a/libc/src/__support/freelist_heap.h +++ b/libc/src/__support/freelist_heap.h @@ -12,11 +12,12 @@ #include #include "block.h" -#include "freelist.h" +#include "freestore.h" #include "src/__support/CPP/optional.h" #include "src/__support/CPP/span.h" #include "src/__support/libc_assert.h" #include "src/__support/macros/config.h" +#include "src/__support/math_extras.h" #include "src/string/memory_utils/inline_memcpy.h" #include "src/string/memory_utils/inline_memset.h" @@ -28,23 +29,14 @@ extern "C" cpp::byte __llvm_libc_heap_limit; using cpp::optional; using cpp::span; -inline constexpr bool IsPow2(size_t x) { return x && (x & (x - 1)) == 0; } +LIBC_INLINE constexpr bool IsPow2(size_t x) { return x && (x & (x - 1)) == 0; } -static constexpr cpp::array DEFAULT_BUCKETS{16, 32, 64, - 128, 256, 512}; - -template class FreeListHeap { +class FreeListHeap { public: - using BlockType = Block<>; - using FreeListType = FreeList; - - static constexpr size_t MIN_ALIGNMENT = - cpp::max(BlockType::ALIGNMENT, alignof(max_align_t)); - - constexpr FreeListHeap() : begin_(&_end), end_(&__llvm_libc_heap_limit) {} + constexpr FreeListHeap() : begin(&_end), end(&__llvm_libc_heap_limit) {} constexpr FreeListHeap(span region) - : begin_(region.begin()), end_(region.end()) {} + : begin(region.begin()), end(region.end()) {} void *allocate(size_t size); void *aligned_allocate(size_t alignment, size_t size); @@ -54,89 +46,87 @@ template class FreeListHeap { void *realloc(void *ptr, size_t size); void *calloc(size_t num, size_t size); - cpp::span region() const { return {begin_, end_}; } + cpp::span region() const { return {begin, end}; } private: void init(); void *allocate_impl(size_t alignment, size_t size); - span block_to_span(BlockType *block) { + span block_to_span(Block *block) { return span(block->usable_space(), block->inner_size()); } - bool is_valid_ptr(void *ptr) { return ptr >= begin_ && ptr < end_; } + bool is_valid_ptr(void *ptr) { return ptr >= begin && ptr < end; } - bool is_initialized_ = false; - cpp::byte *begin_; - cpp::byte *end_; - FreeListType freelist_{DEFAULT_BUCKETS}; + cpp::byte *begin; + cpp::byte *end; + bool is_initialized = false; + FreeStore free_store; }; -template -class FreeListHeapBuffer : public FreeListHeap { - using parent = FreeListHeap; - using FreeListNode = typename parent::FreeListType::FreeListNode; - +template class FreeListHeapBuffer : public FreeListHeap { public: - constexpr FreeListHeapBuffer() - : FreeListHeap{buffer}, buffer{} {} + constexpr FreeListHeapBuffer() : FreeListHeap{buffer}, buffer{} {} private: cpp::byte buffer[BUFF_SIZE]; }; -template void FreeListHeap::init() { - LIBC_ASSERT(!is_initialized_ && "duplicate initialization"); - auto result = BlockType::init(region()); - BlockType *block = *result; - freelist_.add_chunk(block_to_span(block)); - is_initialized_ = true; +LIBC_INLINE void FreeListHeap::init() { + LIBC_ASSERT(!is_initialized && "duplicate initialization"); + auto result = Block::init(region()); + Block *block = *result; + free_store.set_range({0, cpp::bit_ceil(block->inner_size())}); + free_store.insert(block); + is_initialized = true; } -template -void *FreeListHeap::allocate_impl(size_t alignment, size_t size) { +LIBC_INLINE void *FreeListHeap::allocate_impl(size_t alignment, size_t size) { if (size == 0) return nullptr; - if (!is_initialized_) + if (!is_initialized) init(); - // Find a chunk in the freelist. Split it if needed, then return. - auto chunk = - freelist_.find_chunk_if([alignment, size](span chunk) { - BlockType *block = BlockType::from_usable_space(chunk.data()); - return block->can_allocate(alignment, size); - }); + size_t request_size = size; + + // TODO: usable_space should always be aligned to max_align_t. + if (alignment > alignof(max_align_t) || + (Block::BLOCK_OVERHEAD % alignof(max_align_t) != 0)) { + // TODO: This bound isn't precisely calculated yet. It assumes one extra + // Block::ALIGNMENT to accomodate the possibility for padding block + // overhead. (alignment - 1) ensures that there is an aligned point + // somewhere in usable_space, but this isn't tight either, since + // usable_space is also already somewhat aligned. + if (add_overflow(size, (alignment - 1) + Block::ALIGNMENT, request_size)) + return nullptr; + } - if (chunk.data() == nullptr) + Block *block = free_store.remove_best_fit(request_size); + if (!block) return nullptr; - freelist_.remove_chunk(chunk); - BlockType *chunk_block = BlockType::from_usable_space(chunk.data()); - LIBC_ASSERT(!chunk_block->used()); + LIBC_ASSERT(block->can_allocate(alignment, size) && + "block should always be large enough to allocate at the correct " + "alignment"); - // Split that chunk. If there's a leftover chunk, add it to the freelist - auto block_info = BlockType::allocate(chunk_block, alignment, size); + auto block_info = Block::allocate(block, alignment, size); if (block_info.next) - freelist_.add_chunk(block_to_span(block_info.next)); + free_store.insert(block_info.next); if (block_info.prev) - freelist_.add_chunk(block_to_span(block_info.prev)); - chunk_block = block_info.block; - - chunk_block->mark_used(); + free_store.insert(block_info.prev); - return chunk_block->usable_space(); + block_info.block->mark_used(); + return block_info.block->usable_space(); } -template -void *FreeListHeap::allocate(size_t size) { - return allocate_impl(MIN_ALIGNMENT, size); +LIBC_INLINE void *FreeListHeap::allocate(size_t size) { + return allocate_impl(alignof(max_align_t), size); } -template -void *FreeListHeap::aligned_allocate(size_t alignment, - size_t size) { +LIBC_INLINE void *FreeListHeap::aligned_allocate(size_t alignment, + size_t size) { // The alignment must be an integral power of two. if (!IsPow2(alignment)) return nullptr; @@ -148,38 +138,37 @@ void *FreeListHeap::aligned_allocate(size_t alignment, return allocate_impl(alignment, size); } -template void FreeListHeap::free(void *ptr) { +LIBC_INLINE void FreeListHeap::free(void *ptr) { cpp::byte *bytes = static_cast(ptr); LIBC_ASSERT(is_valid_ptr(bytes) && "Invalid pointer"); - BlockType *chunk_block = BlockType::from_usable_space(bytes); - LIBC_ASSERT(chunk_block->next() && "sentinel last block cannot be freed"); - LIBC_ASSERT(chunk_block->used() && "The block is not in-use"); - chunk_block->mark_free(); + Block *block = Block::from_usable_space(bytes); + LIBC_ASSERT(block->next() && "sentinel last block cannot be freed"); + LIBC_ASSERT(block->used() && "double free"); + block->mark_free(); // Can we combine with the left or right blocks? - BlockType *prev_free = chunk_block->prev_free(); - BlockType *next = chunk_block->next(); + Block *prev_free = block->prev_free(); + Block *next = block->next(); if (prev_free != nullptr) { - // Remove from freelist and merge - freelist_.remove_chunk(block_to_span(prev_free)); - chunk_block = prev_free; - chunk_block->merge_next(); + // Remove from free store and merge. + free_store.remove(prev_free); + block = prev_free; + block->merge_next(); } if (!next->used()) { - freelist_.remove_chunk(block_to_span(next)); - chunk_block->merge_next(); + free_store.remove(next); + block->merge_next(); } // Add back to the freelist - freelist_.add_chunk(block_to_span(chunk_block)); + free_store.insert(block); } // Follows constract of the C standard realloc() function // If ptr is free'd, will return nullptr. -template -void *FreeListHeap::realloc(void *ptr, size_t size) { +LIBC_INLINE void *FreeListHeap::realloc(void *ptr, size_t size) { if (size == 0) { free(ptr); return nullptr; @@ -194,10 +183,10 @@ void *FreeListHeap::realloc(void *ptr, size_t size) { if (!is_valid_ptr(bytes)) return nullptr; - BlockType *chunk_block = BlockType::from_usable_space(bytes); - if (!chunk_block->used()) + Block *block = Block::from_usable_space(bytes); + if (!block->used()) return nullptr; - size_t old_size = chunk_block->inner_size(); + size_t old_size = block->inner_size(); // Do nothing and return ptr if the required memory size is smaller than // the current size. @@ -214,15 +203,17 @@ void *FreeListHeap::realloc(void *ptr, size_t size) { return new_ptr; } -template -void *FreeListHeap::calloc(size_t num, size_t size) { - void *ptr = allocate(num * size); +LIBC_INLINE void *FreeListHeap::calloc(size_t num, size_t size) { + size_t bytes; + if (__builtin_mul_overflow(num, size, &bytes)) + return nullptr; + void *ptr = allocate(bytes); if (ptr != nullptr) - LIBC_NAMESPACE::inline_memset(ptr, 0, num * size); + LIBC_NAMESPACE::inline_memset(ptr, 0, bytes); return ptr; } -extern FreeListHeap<> *freelist_heap; +extern FreeListHeap *freelist_heap; } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/__support/freestore.h b/libc/src/__support/freestore.h new file mode 100644 index 0000000000000..97197dda4b546 --- /dev/null +++ b/libc/src/__support/freestore.h @@ -0,0 +1,114 @@ +//===-- Interface for freestore ------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_FREESTORE_H +#define LLVM_LIBC_SRC___SUPPORT_FREESTORE_H + +#include "freetrie.h" + +namespace LIBC_NAMESPACE_DECL { + +/// A best-fit store of variously-sized free blocks. Blocks can be inserted and +/// removed in logarithmic time. +class FreeStore { +public: + FreeStore() = default; + FreeStore(const FreeStore &other) = delete; + FreeStore &operator=(const FreeStore &other) = delete; + + /// Sets the range of possible block sizes. This can only be called when the + /// trie is empty. + LIBC_INLINE void set_range(FreeTrie::SizeRange range) { + large_trie.set_range(range); + } + + /// Insert a free block. If the block is too small to be tracked, nothing + /// happens. + void insert(Block *block); + + /// Remove a free block. If the block is too small to be tracked, nothing + /// happens. + void remove(Block *block); + + /// Remove a best-fit free block that can contain the given size when + /// allocated. Returns nullptr if there is no such block. + Block *remove_best_fit(size_t size); + +private: + static constexpr size_t ALIGNMENT = alignof(max_align_t); + static constexpr size_t MIN_OUTER_SIZE = + align_up(Block::BLOCK_OVERHEAD + sizeof(FreeList::Node), ALIGNMENT); + static constexpr size_t MIN_LARGE_OUTER_SIZE = + align_up(Block::BLOCK_OVERHEAD + sizeof(FreeTrie::Node), ALIGNMENT); + static constexpr size_t NUM_SMALL_SIZES = + (MIN_LARGE_OUTER_SIZE - MIN_OUTER_SIZE) / ALIGNMENT; + + LIBC_INLINE static bool too_small(Block *block) { + return block->outer_size() < MIN_OUTER_SIZE; + } + LIBC_INLINE static bool is_small(Block *block) { + return block->outer_size() < MIN_LARGE_OUTER_SIZE; + } + + FreeList &small_list(Block *block); + FreeList *find_best_small_fit(size_t size); + + cpp::array small_lists; + FreeTrie large_trie; +}; + +LIBC_INLINE void FreeStore::insert(Block *block) { + if (too_small(block)) + return; + if (is_small(block)) + small_list(block).push(block); + else + large_trie.push(block); +} + +LIBC_INLINE void FreeStore::remove(Block *block) { + if (too_small(block)) + return; + if (is_small(block)) { + small_list(block).remove( + reinterpret_cast(block->usable_space())); + } else { + large_trie.remove( + reinterpret_cast(block->usable_space())); + } +} + +LIBC_INLINE Block *FreeStore::remove_best_fit(size_t size) { + if (FreeList *list = find_best_small_fit(size)) { + Block *block = list->front(); + list->pop(); + return block; + } + if (FreeTrie::Node *best_fit = large_trie.find_best_fit(size)) { + Block *block = best_fit->block(); + large_trie.remove(best_fit); + return block; + } + return nullptr; +} + +LIBC_INLINE FreeList &FreeStore::small_list(Block *block) { + LIBC_ASSERT(is_small(block) && "only legal for small blocks"); + return small_lists[(block->outer_size() - MIN_OUTER_SIZE) / ALIGNMENT]; +} + +LIBC_INLINE FreeList *FreeStore::find_best_small_fit(size_t size) { + for (FreeList &list : small_lists) + if (!list.empty() && list.size() >= size) + return &list; + return nullptr; +} + +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_FREESTORE_H diff --git a/libc/src/__support/freetrie.cpp b/libc/src/__support/freetrie.cpp new file mode 100644 index 0000000000000..e76efe717f215 --- /dev/null +++ b/libc/src/__support/freetrie.cpp @@ -0,0 +1,64 @@ +//===-- Implementation for freetrie ---------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "freetrie.h" + +namespace LIBC_NAMESPACE_DECL { + +void FreeTrie::remove(Node *node) { + LIBC_ASSERT(!empty() && "cannot remove from empty trie"); + FreeList list = node; + list.pop(); + Node *new_node = static_cast(list.begin()); + if (!new_node) { + // The freelist is empty. Replace the subtrie root with an arbitrary leaf. + // This is legal because there is no relationship between the size of the + // root and its children. + Node *leaf = node; + while (leaf->lower || leaf->upper) + leaf = leaf->lower ? leaf->lower : leaf->upper; + if (leaf == node) { + // If the root is a leaf, then removing it empties the subtrie. + replace_node(node, nullptr); + return; + } + + replace_node(leaf, nullptr); + new_node = leaf; + } + + if (!is_head(node)) + return; + + // Copy the trie links to the new head. + new_node->lower = node->lower; + new_node->upper = node->upper; + new_node->parent = node->parent; + replace_node(node, new_node); +} + +void FreeTrie::replace_node(Node *node, Node *new_node) { + LIBC_ASSERT(is_head(node) && "only head nodes contain trie links"); + + if (node->parent) { + Node *&parent_child = + node->parent->lower == node ? node->parent->lower : node->parent->upper; + LIBC_ASSERT(parent_child == node && + "no reference to child node found in parent"); + parent_child = new_node; + } else { + LIBC_ASSERT(root == node && "non-root node had no parent"); + root = new_node; + } + if (node->lower) + node->lower->parent = new_node; + if (node->upper) + node->upper->parent = new_node; +} + +} // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/__support/freetrie.h b/libc/src/__support/freetrie.h new file mode 100644 index 0000000000000..42363c2c9e2f4 --- /dev/null +++ b/libc/src/__support/freetrie.h @@ -0,0 +1,237 @@ +//===-- Interface for freetrie --------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_LIBC_SRC___SUPPORT_FREETRIE_H +#define LLVM_LIBC_SRC___SUPPORT_FREETRIE_H + +#include "freelist.h" + +namespace LIBC_NAMESPACE_DECL { + +/// A trie of free lists. +/// +/// This is an unusual little data structure originally from Doug Lea's malloc. +/// Finding the best fit from a set of differently-sized free list typically +/// required some kind of ordered map, and these are typically implemented using +/// a self-balancing binary search tree. Those are notorious for having a +/// relatively large number of special cases, while this trie has relatively +/// few, which helps with code size. +/// +/// Operations on the trie are logarithmic not on the number of nodes within it, +/// but rather the fixed range of possible sizes that the trie can contain. This +/// means that the data structure would likely actually perform worse than an +/// e.g. red-black tree, but its implementation is still much simpler. +/// +/// Each trie node's children subdivide the range of possible sizes into two +/// halves: a lower and an upper. The node itself holds a free list of some size +/// within its range. This makes it possible to summarily replace any node with +/// any leaf within its subtrie, which makes it very straightforward to remove a +/// node. Insertion is also simple; the only real complexity lies with finding +/// the best fit. This can still be done in logarithmic time with only a few +/// cases to consider. +/// +/// The trie refers to, but does not own, the Nodes that comprise it. +class FreeTrie { +public: + /// A trie node that is also a free list. Only the head node of each list is + /// actually part of the trie. The subtrie contains a continous SizeRange of + /// free lists. The lower and upper subtrie's contain the lower and upper half + /// of the subtries range. There is no direct relationship between the size of + /// this node's free list and the contents of the lower and upper subtries. + class Node : public FreeList::Node { + /// The child subtrie covering the lower half of this subtrie's size range. + /// Undefined if this is not the head of the list. + Node *lower; + /// The child subtrie covering the upper half of this subtrie's size range. + /// Undefined if this is not the head of the list. + Node *upper; + /// The parent subtrie. nullptr if this is the root or not the head of the + /// list. + Node *parent; + + friend class FreeTrie; + }; + + /// Power-of-two range of sizes covered by a subtrie. + struct SizeRange { + size_t min; + size_t width; + + LIBC_INLINE constexpr SizeRange(size_t min, size_t width) + : min(min), width(width) { + LIBC_ASSERT(!(width & (width - 1)) && "width must be a power of two"); + } + + /// @returns The lower half of the size range. + LIBC_INLINE SizeRange lower() const { return {min, width / 2}; } + + /// @returns The upper half of the size range. + LIBC_INLINE SizeRange upper() const { return {min + width / 2, width / 2}; } + + /// @returns The largest size in this range. + LIBC_INLINE size_t max() const { return min + (width - 1); } + + /// @returns Whether the range contains the given size. + LIBC_INLINE bool contains(size_t size) const { + return min <= size && size < min + width; + } + }; + + LIBC_INLINE constexpr FreeTrie() : FreeTrie(SizeRange{0, 0}) {} + LIBC_INLINE constexpr FreeTrie(SizeRange range) : range(range) {} + + /// Sets the range of possible block sizes. This can only be called when the + /// trie is empty. + LIBC_INLINE void set_range(FreeTrie::SizeRange range) { + LIBC_ASSERT(empty() && "cannot change the range of a preexisting trie"); + this->range = range; + } + + /// @returns Whether the trie contains any blocks. + LIBC_INLINE bool empty() const { return !root; } + + /// Push a block to the trie. + void push(Block *block); + + /// Remove a node from this trie node's free list. + void remove(Node *node); + + /// @returns A smallest node that can allocate the given size; otherwise + /// nullptr. + Node *find_best_fit(size_t size); + +private: + /// @returns Whether a node is the head of its containing freelist. + bool is_head(Node *node) const { return node->parent || node == root; } + + /// Replaces references to one node with another (or nullptr) in all adjacent + /// parent and child nodes. + void replace_node(Node *node, Node *new_node); + + Node *root = nullptr; + SizeRange range; +}; + +LIBC_INLINE void FreeTrie::push(Block *block) { + LIBC_ASSERT(block->inner_size_free() >= sizeof(Node) && + "block too small to accomodate free trie node"); + size_t size = block->inner_size(); + LIBC_ASSERT(range.contains(size) && "requested size out of trie range"); + + // Find the position in the tree to push to. + Node **cur = &root; + Node *parent = nullptr; + SizeRange cur_range = range; + while (*cur && (*cur)->size() != size) { + LIBC_ASSERT(cur_range.contains(size) && "requested size out of trie range"); + parent = *cur; + if (size <= cur_range.lower().max()) { + cur = &(*cur)->lower; + cur_range = cur_range.lower(); + } else { + cur = &(*cur)->upper; + cur_range = cur_range.upper(); + } + } + + Node *node = new (block->usable_space()) Node; + FreeList list = *cur; + if (list.empty()) { + node->parent = parent; + node->lower = node->upper = nullptr; + } else { + node->parent = nullptr; + } + list.push(node); + *cur = static_cast(list.begin()); +} + +LIBC_INLINE FreeTrie::Node *FreeTrie::find_best_fit(size_t size) { + if (empty() || range.max() < size) + return nullptr; + + Node *cur = root; + SizeRange cur_range = range; + Node *best_fit = nullptr; + Node *deferred_upper_trie = nullptr; + FreeTrie::SizeRange deferred_upper_range{0, 0}; + + while (true) { + LIBC_ASSERT(cur_range.contains(cur->size()) && + "trie node size out of range"); + LIBC_ASSERT(cur_range.max() >= size && + "range could not fit requested size"); + LIBC_ASSERT((!best_fit || cur_range.min < best_fit->size()) && + "range could not contain a best fit"); + + // If the current node is an exact fit, it is a best fit. + if (cur->size() == size) + return cur; + + if (cur->size() > size && (!best_fit || cur->size() < best_fit->size())) { + // The current node is a better fit. + best_fit = cur; + + // If there is a deferred upper subtrie, then the current node is + // somewhere in its lower sibling subtrie. That means that the new best + // fit is better than the best fit in the deferred subtrie. + LIBC_ASSERT( + (!deferred_upper_trie || + deferred_upper_range.min > best_fit->size()) && + "deferred upper subtrie should be outclassed by new best fit"); + deferred_upper_trie = nullptr; + } + + // Determine which subtries might contain the best fit. + bool lower_impossible = !cur->lower || cur_range.lower().max() < size; + bool upper_impossible = + !cur->upper || + // If every node in the lower trie fits + (!lower_impossible && cur_range.min >= size) || + // If every node in the upper trie is worse than the current best + (best_fit && cur_range.upper().min >= best_fit->size()); + + if (lower_impossible && upper_impossible) { + if (!deferred_upper_trie) + return best_fit; + // Scan the deferred upper subtrie and consider whether any element within + // provides a better fit. + // + // This can only ever be reached once. In a deferred upper subtrie, every + // node fits, so the higher of two subtries can never contain a best fit. + cur = deferred_upper_trie; + cur_range = deferred_upper_range; + deferred_upper_trie = nullptr; + continue; + } + + if (lower_impossible) { + cur = cur->upper; + cur_range = cur_range.upper(); + } else if (upper_impossible) { + cur = cur->lower; + cur_range = cur_range.lower(); + } else { + // Both subtries might contain a better fit. Any fit in the lower subtrie + // is better than the any fit in the upper subtrie, so scan the lower + // and return to the upper only if no better fits were found. (Any better + // fit found clears the deferred upper subtrie.) + LIBC_ASSERT((!deferred_upper_trie || + cur_range.upper().max() < deferred_upper_range.min) && + "old deferred upper subtrie should be outclassed by new"); + deferred_upper_trie = cur->upper; + deferred_upper_range = cur_range.upper(); + cur = cur->lower; + cur_range = cur_range.lower(); + } + } +} + +} // namespace LIBC_NAMESPACE_DECL + +#endif // LLVM_LIBC_SRC___SUPPORT_FREETRIE_H diff --git a/libc/src/__support/time/linux/CMakeLists.txt b/libc/src/__support/time/linux/CMakeLists.txt index f038cb8854b9b..94ed09e652152 100644 --- a/libc/src/__support/time/linux/CMakeLists.txt +++ b/libc/src/__support/time/linux/CMakeLists.txt @@ -1,7 +1,9 @@ -add_header_library( +add_object_library( clock_gettime HDRS clock_gettime.h + SRCS + clock_gettime.cpp DEPENDS libc.include.sys_syscall libc.hdr.types.struct_timespec diff --git a/libc/src/__support/time/linux/clock_gettime.cpp b/libc/src/__support/time/linux/clock_gettime.cpp new file mode 100644 index 0000000000000..3a0eca417724a --- /dev/null +++ b/libc/src/__support/time/linux/clock_gettime.cpp @@ -0,0 +1,62 @@ +//===--- clock_gettime linux implementation ---------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "src/__support/time/linux/clock_gettime.h" +#include "hdr/types/clockid_t.h" +#include "hdr/types/struct_timespec.h" +#include "src/__support/OSUtil/linux/vdso.h" +#include "src/__support/OSUtil/syscall.h" +#include "src/__support/common.h" +#include "src/__support/error_or.h" +#include "src/__support/macros/config.h" +#include + +#if defined(SYS_clock_gettime64) +#include +#endif + +namespace LIBC_NAMESPACE_DECL { +namespace internal { +ErrorOr clock_gettime(clockid_t clockid, timespec *ts) { + using namespace vdso; + int ret; +#if defined(SYS_clock_gettime) + TypedSymbol clock_gettime; + if (LIBC_LIKELY(clock_gettime != nullptr)) + ret = clock_gettime(clockid, ts); + else + ret = LIBC_NAMESPACE::syscall_impl(SYS_clock_gettime, + static_cast(clockid), + reinterpret_cast(ts)); +#elif defined(SYS_clock_gettime64) + static_assert( + sizeof(time_t) == sizeof(int64_t), + "SYS_clock_gettime64 requires struct timespec with 64-bit members."); + + TypedSymbol clock_gettime64; + __kernel_timespec ts64{}; + if (LIBC_LIKELY(clock_gettime64 != nullptr)) + ret = clock_gettime64(clockid, &ts64); + else + ret = LIBC_NAMESPACE::syscall_impl(SYS_clock_gettime64, + static_cast(clockid), + reinterpret_cast(&ts64)); + if (ret == 0) { + ts->tv_sec = static_casttv_sec)>(ts64.tv_sec); + ts->tv_nsec = static_casttv_nsec)>(ts64.tv_nsec); + } +#else +#error "SYS_clock_gettime and SYS_clock_gettime64 syscalls not available." +#endif + if (ret < 0) + return Error(-ret); + return ret; +} + +} // namespace internal +} // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/__support/time/linux/clock_gettime.h b/libc/src/__support/time/linux/clock_gettime.h index 517cca91391a7..f7f996ce7c197 100644 --- a/libc/src/__support/time/linux/clock_gettime.h +++ b/libc/src/__support/time/linux/clock_gettime.h @@ -11,12 +11,7 @@ #include "hdr/types/clockid_t.h" #include "hdr/types/struct_timespec.h" -#include "src/__support/OSUtil/linux/vdso.h" -#include "src/__support/OSUtil/syscall.h" -#include "src/__support/common.h" #include "src/__support/error_or.h" -#include "src/__support/macros/config.h" -#include #if defined(SYS_clock_gettime64) #include @@ -24,42 +19,7 @@ namespace LIBC_NAMESPACE_DECL { namespace internal { -LIBC_INLINE ErrorOr clock_gettime(clockid_t clockid, timespec *ts) { - using namespace vdso; - int ret; -#if defined(SYS_clock_gettime) - TypedSymbol clock_gettime; - if (LIBC_LIKELY(clock_gettime != nullptr)) - ret = clock_gettime(clockid, ts); - else - ret = LIBC_NAMESPACE::syscall_impl(SYS_clock_gettime, - static_cast(clockid), - reinterpret_cast(ts)); -#elif defined(SYS_clock_gettime64) - static_assert( - sizeof(time_t) == sizeof(int64_t), - "SYS_clock_gettime64 requires struct timespec with 64-bit members."); - - TypedSymbol clock_gettime64; - __kernel_timespec ts64{}; - if (LIBC_LIKELY(clock_gettime64 != nullptr)) - ret = clock_gettime64(clockid, &ts64); - else - ret = LIBC_NAMESPACE::syscall_impl(SYS_clock_gettime64, - static_cast(clockid), - reinterpret_cast(&ts64)); - if (ret == 0) { - ts->tv_sec = static_casttv_sec)>(ts64.tv_sec); - ts->tv_nsec = static_casttv_nsec)>(ts64.tv_nsec); - } -#else -#error "SYS_clock_gettime and SYS_clock_gettime64 syscalls not available." -#endif - if (ret < 0) - return Error(-ret); - return ret; -} - +ErrorOr clock_gettime(clockid_t clockid, timespec *ts); } // namespace internal } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt index 34b0f1424e8fd..a5d17ad023f52 100644 --- a/libc/src/math/generic/CMakeLists.txt +++ b/libc/src/math/generic/CMakeLists.txt @@ -1,3 +1,5 @@ + + add_entrypoint_object( canonicalize SRCS @@ -5,7 +7,7 @@ add_entrypoint_object( HDRS ../canonicalize.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.basic_operations ) @@ -17,7 +19,7 @@ add_entrypoint_object( HDRS ../canonicalizef.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.basic_operations ) @@ -29,7 +31,7 @@ add_entrypoint_object( HDRS ../canonicalizef16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations @@ -42,7 +44,7 @@ add_entrypoint_object( HDRS ../canonicalizef128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations @@ -55,7 +57,7 @@ add_entrypoint_object( HDRS ../canonicalizel.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.basic_operations ) @@ -67,7 +69,7 @@ add_entrypoint_object( HDRS ../iscanonical.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -77,7 +79,7 @@ add_entrypoint_object( HDRS ../iscanonicalf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -87,7 +89,7 @@ add_entrypoint_object( HDRS ../iscanonicall.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -97,7 +99,7 @@ add_entrypoint_object( HDRS ../iscanonicalf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types ) @@ -109,7 +111,7 @@ add_entrypoint_object( HDRS ../iscanonicalf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types ) @@ -121,7 +123,7 @@ add_entrypoint_object( HDRS ../ceil.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -135,7 +137,7 @@ add_entrypoint_object( HDRS ../ceilf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -149,7 +151,7 @@ add_entrypoint_object( HDRS ../ceill.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -161,7 +163,7 @@ add_entrypoint_object( HDRS ../ceilf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.cast libc.src.__support.FPUtil.nearest_integer_operations @@ -178,7 +180,7 @@ add_entrypoint_object( HDRS ../ceilf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -191,7 +193,7 @@ add_entrypoint_object( HDRS ../daddl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.generic.add_sub ) @@ -203,7 +205,7 @@ add_entrypoint_object( HDRS ../daddf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub @@ -216,7 +218,7 @@ add_entrypoint_object( HDRS ../ddivl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.generic.div ) @@ -228,7 +230,7 @@ add_entrypoint_object( HDRS ../ddivf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.div @@ -244,7 +246,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.fma libc.src.__support.macros.properties.types COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -256,7 +258,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.fma COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -268,7 +270,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -281,7 +283,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) @@ -295,7 +297,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.generic.add_sub libc.src.__support.macros.properties.types COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -307,7 +309,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_header_library( @@ -392,7 +394,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.fp_bits libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -413,7 +415,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.polyeval libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -430,7 +432,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.multiply_add libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -449,7 +451,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.multiply_add libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -471,7 +473,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -493,7 +495,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -515,7 +517,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.multiply_add libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -534,7 +536,7 @@ add_entrypoint_object( libc.src.__support.common libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -555,7 +557,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -574,7 +576,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.multiply_add libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -595,7 +597,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.multiply_add libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -617,7 +619,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.polyeval libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -637,7 +639,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.multiply_add libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -649,7 +651,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -663,7 +665,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -677,7 +679,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -692,7 +694,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.architectures libc.src.__support.macros.properties.compiler COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -707,7 +709,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -719,7 +721,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -731,7 +733,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -744,7 +746,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.generic.add_sub libc.src.__support.macros.properties.types COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -754,7 +756,7 @@ add_entrypoint_object( HDRS ../trunc.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -768,7 +770,7 @@ add_entrypoint_object( HDRS ../truncf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -782,7 +784,7 @@ add_entrypoint_object( HDRS ../truncl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -794,7 +796,7 @@ add_entrypoint_object( HDRS ../truncf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.cast libc.src.__support.FPUtil.nearest_integer_operations @@ -811,7 +813,7 @@ add_entrypoint_object( HDRS ../truncf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -824,7 +826,7 @@ add_entrypoint_object( HDRS ../floor.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -838,7 +840,7 @@ add_entrypoint_object( HDRS ../floorf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -852,7 +854,7 @@ add_entrypoint_object( HDRS ../floorl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -864,7 +866,7 @@ add_entrypoint_object( HDRS ../floorf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.cast libc.src.__support.FPUtil.nearest_integer_operations @@ -881,7 +883,7 @@ add_entrypoint_object( HDRS ../floorf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -894,7 +896,7 @@ add_entrypoint_object( HDRS ../round.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -908,7 +910,7 @@ add_entrypoint_object( HDRS ../roundf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -922,7 +924,7 @@ add_entrypoint_object( HDRS ../roundl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -934,7 +936,7 @@ add_entrypoint_object( HDRS ../roundf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.cast libc.src.__support.FPUtil.nearest_integer_operations @@ -951,7 +953,7 @@ add_entrypoint_object( HDRS ../roundf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -964,7 +966,7 @@ add_entrypoint_object( HDRS ../roundeven.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -978,7 +980,7 @@ add_entrypoint_object( HDRS ../roundevenf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -992,7 +994,7 @@ add_entrypoint_object( HDRS ../roundevenl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1004,7 +1006,7 @@ add_entrypoint_object( HDRS ../roundevenf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1021,7 +1023,7 @@ add_entrypoint_object( HDRS ../roundevenf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1034,7 +1036,7 @@ add_entrypoint_object( HDRS ../lround.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1046,7 +1048,7 @@ add_entrypoint_object( HDRS ../lroundf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1058,7 +1060,7 @@ add_entrypoint_object( HDRS ../lroundl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1070,7 +1072,7 @@ add_entrypoint_object( HDRS ../lroundf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1083,7 +1085,7 @@ add_entrypoint_object( HDRS ../lroundf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1096,7 +1098,7 @@ add_entrypoint_object( HDRS ../llround.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1108,7 +1110,7 @@ add_entrypoint_object( HDRS ../llroundf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1120,7 +1122,7 @@ add_entrypoint_object( HDRS ../llroundl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1132,7 +1134,7 @@ add_entrypoint_object( HDRS ../llroundf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1145,7 +1147,7 @@ add_entrypoint_object( HDRS ../llroundf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1158,7 +1160,7 @@ add_entrypoint_object( HDRS ../rint.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -1172,7 +1174,7 @@ add_entrypoint_object( HDRS ../rintf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations FLAGS @@ -1186,7 +1188,7 @@ add_entrypoint_object( HDRS ../rintl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1198,7 +1200,7 @@ add_entrypoint_object( HDRS ../rintf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.cast libc.src.__support.FPUtil.nearest_integer_operations @@ -1215,7 +1217,7 @@ add_entrypoint_object( HDRS ../rintf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1228,7 +1230,7 @@ add_entrypoint_object( HDRS ../lrint.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1240,7 +1242,7 @@ add_entrypoint_object( HDRS ../lrintf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1252,7 +1254,7 @@ add_entrypoint_object( HDRS ../lrintl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1264,7 +1266,7 @@ add_entrypoint_object( HDRS ../lrintf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1277,7 +1279,7 @@ add_entrypoint_object( HDRS ../lrintf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1290,7 +1292,7 @@ add_entrypoint_object( HDRS ../llrint.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1302,7 +1304,7 @@ add_entrypoint_object( HDRS ../llrintf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1314,7 +1316,7 @@ add_entrypoint_object( HDRS ../llrintl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.nearest_integer_operations ) @@ -1326,7 +1328,7 @@ add_entrypoint_object( HDRS ../llrintf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1339,7 +1341,7 @@ add_entrypoint_object( HDRS ../llrintf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations @@ -1354,7 +1356,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1366,7 +1368,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1378,7 +1380,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1391,7 +1393,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1404,7 +1406,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_object_library( @@ -1429,7 +1431,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.polyeval libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1455,7 +1457,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1476,7 +1478,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1500,7 +1502,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1526,7 +1528,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_header_library( @@ -1556,7 +1558,7 @@ add_entrypoint_object( DEPENDS .exp2f_impl COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1576,7 +1578,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1598,7 +1600,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.__support.macros.properties.cpu_features COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1622,7 +1624,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.__support.macros.properties.cpu_features COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1648,7 +1650,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_header_library( @@ -1667,7 +1669,7 @@ add_header_library( libc.src.__support.common libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1679,7 +1681,7 @@ add_entrypoint_object( DEPENDS .exp10f_impl COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1704,7 +1706,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.__support.macros.properties.cpu_features COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1725,7 +1727,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1748,7 +1750,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.__support.macros.properties.cpu_features COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1774,7 +1776,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1795,7 +1797,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1817,7 +1819,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1844,7 +1846,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1867,7 +1869,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.sqrt libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1879,7 +1881,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -1893,7 +1895,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -1907,7 +1909,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1920,7 +1922,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -1935,7 +1937,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -1945,7 +1947,7 @@ add_entrypoint_object( HDRS ../frexp.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -1957,7 +1959,7 @@ add_entrypoint_object( HDRS ../frexpf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -1969,7 +1971,7 @@ add_entrypoint_object( HDRS ../frexpl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -1981,7 +1983,7 @@ add_entrypoint_object( HDRS ../frexpf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -1994,7 +1996,7 @@ add_entrypoint_object( HDRS ../frexpf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -2007,7 +2009,7 @@ add_entrypoint_object( HDRS ../ilogb.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2019,7 +2021,7 @@ add_entrypoint_object( HDRS ../ilogbf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2031,7 +2033,7 @@ add_entrypoint_object( HDRS ../ilogbl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2043,7 +2045,7 @@ add_entrypoint_object( HDRS ../ilogbf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -2056,7 +2058,7 @@ add_entrypoint_object( HDRS ../ilogbf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -2069,7 +2071,7 @@ add_entrypoint_object( HDRS ../llogb.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2081,7 +2083,7 @@ add_entrypoint_object( HDRS ../llogbf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2093,7 +2095,7 @@ add_entrypoint_object( HDRS ../llogbl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2105,7 +2107,7 @@ add_entrypoint_object( HDRS ../llogbf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -2118,7 +2120,7 @@ add_entrypoint_object( HDRS ../llogbf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -2131,7 +2133,7 @@ add_entrypoint_object( HDRS ../ldexp.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2143,7 +2145,7 @@ add_entrypoint_object( HDRS ../ldexpf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2155,7 +2157,7 @@ add_entrypoint_object( HDRS ../ldexpl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2167,7 +2169,7 @@ add_entrypoint_object( HDRS ../ldexpf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -2180,7 +2182,7 @@ add_entrypoint_object( HDRS ../ldexpf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -2225,7 +2227,7 @@ add_entrypoint_object( libc.src.__support.integer_literals libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2242,7 +2244,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.fma libc.src.__support.FPUtil.polyeval COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2264,7 +2266,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.__support.macros.properties.cpu_features COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2284,7 +2286,7 @@ add_entrypoint_object( libc.src.__support.integer_literals libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2302,7 +2304,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.polyeval libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2323,7 +2325,7 @@ add_entrypoint_object( libc.src.__support.integer_literals libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2341,7 +2343,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.polyeval libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2363,7 +2365,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.__support.macros.properties.cpu_features COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2384,7 +2386,7 @@ add_entrypoint_object( libc.src.__support.integer_literals libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2402,7 +2404,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.polyeval libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2424,7 +2426,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization libc.src.__support.macros.properties.cpu_features COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2434,7 +2436,7 @@ add_entrypoint_object( HDRS ../logb.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2446,7 +2448,7 @@ add_entrypoint_object( HDRS ../logbf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2458,7 +2460,7 @@ add_entrypoint_object( HDRS ../logbl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.manipulation_functions ) @@ -2470,7 +2472,7 @@ add_entrypoint_object( HDRS ../logbf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -2483,7 +2485,7 @@ add_entrypoint_object( HDRS ../logbf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions @@ -2498,7 +2500,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2510,7 +2512,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2522,7 +2524,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2535,7 +2537,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2548,7 +2550,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2560,7 +2562,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2574,7 +2576,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2588,7 +2590,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2601,7 +2603,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2614,7 +2616,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2629,7 +2631,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2643,7 +2645,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2657,7 +2659,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2670,7 +2672,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2683,7 +2685,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2697,7 +2699,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2711,7 +2713,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2725,7 +2727,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2738,7 +2740,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2753,7 +2755,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2765,7 +2767,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2779,7 +2781,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2793,7 +2795,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2806,7 +2808,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2821,7 +2823,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2870,7 +2872,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2883,7 +2885,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2932,7 +2934,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2945,7 +2947,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2957,7 +2959,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2971,7 +2973,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -2985,7 +2987,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -2998,7 +3000,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -3013,7 +3015,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3025,7 +3027,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -3039,7 +3041,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -3053,7 +3055,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3066,7 +3068,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} FLAGS MISC_MATH_BASIC_OPS_OPT ) @@ -3081,7 +3083,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3130,7 +3132,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3143,7 +3145,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3192,7 +3194,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3205,7 +3207,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3219,7 +3221,7 @@ add_entrypoint_object( libc.hdr.fenv_macros libc.src.__support.FPUtil.double_double COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3231,7 +3233,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.mul COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3244,7 +3246,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.mul COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3256,7 +3258,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3268,7 +3270,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3281,7 +3283,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3293,7 +3295,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) @@ -3306,7 +3308,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3318,7 +3320,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3330,7 +3332,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3343,7 +3345,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3355,7 +3357,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3367,7 +3369,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3379,7 +3381,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3391,7 +3393,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3404,7 +3406,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3416,7 +3418,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3428,7 +3430,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3440,7 +3442,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3453,7 +3455,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3466,7 +3468,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.division_and_remainder_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3483,7 +3485,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.sqrt libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3493,7 +3495,7 @@ add_entrypoint_object( HDRS ../fdim.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.basic_operations ) @@ -3505,7 +3507,7 @@ add_entrypoint_object( HDRS ../fdimf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.basic_operations ) @@ -3517,7 +3519,7 @@ add_entrypoint_object( HDRS ../fdiml.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.basic_operations ) @@ -3529,7 +3531,7 @@ add_entrypoint_object( HDRS ../fdimf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations @@ -3542,7 +3544,7 @@ add_entrypoint_object( HDRS ../fdimf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations @@ -3555,7 +3557,7 @@ add_entrypoint_object( HDRS ../fdiv.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.generic.div ) @@ -3567,7 +3569,7 @@ add_entrypoint_object( HDRS ../fdivl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.generic.div ) @@ -3579,7 +3581,7 @@ add_entrypoint_object( HDRS ../fdivf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.div @@ -3592,7 +3594,7 @@ add_entrypoint_object( HDRS ../ffma.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.fma ) @@ -3604,7 +3606,7 @@ add_entrypoint_object( HDRS ../ffmal.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.FPUtil.fma ) @@ -3616,7 +3618,7 @@ add_entrypoint_object( HDRS ../ffmaf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types libc.src.__support.FPUtil.fma @@ -3631,7 +3633,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.hypot COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3641,7 +3643,7 @@ add_entrypoint_object( HDRS ../issignaling.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3651,7 +3653,7 @@ add_entrypoint_object( HDRS ../issignalingf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3661,7 +3663,7 @@ add_entrypoint_object( HDRS ../issignalingl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3671,7 +3673,7 @@ add_entrypoint_object( HDRS ../issignalingf16.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types ) @@ -3683,7 +3685,7 @@ add_entrypoint_object( HDRS ../issignalingf128.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.src.__support.macros.properties.types ) @@ -3695,7 +3697,7 @@ add_entrypoint_object( HDRS ../isnan.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3705,7 +3707,7 @@ add_entrypoint_object( HDRS ../isnanf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3715,7 +3717,7 @@ add_entrypoint_object( HDRS ../isnanl.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3728,7 +3730,7 @@ add_entrypoint_object( libc.src.__support.str_to_float libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3741,7 +3743,7 @@ add_entrypoint_object( libc.src.__support.str_to_float libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3754,7 +3756,7 @@ add_entrypoint_object( libc.src.__support.str_to_float libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3767,7 +3769,7 @@ add_entrypoint_object( libc.src.__support.str_to_float libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3780,7 +3782,7 @@ add_entrypoint_object( libc.src.__support.str_to_float libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3792,7 +3794,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3804,7 +3806,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3816,7 +3818,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3829,7 +3831,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3842,7 +3844,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3854,7 +3856,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3866,7 +3868,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3878,7 +3880,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3891,7 +3893,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3903,7 +3905,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3915,7 +3917,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3927,7 +3929,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3940,7 +3942,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3953,7 +3955,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3965,7 +3967,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3977,7 +3979,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -3989,7 +3991,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4002,7 +4004,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4015,7 +4017,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4027,7 +4029,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.fmod COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4039,7 +4041,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.fmod COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4051,7 +4053,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.fmod COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4064,7 +4066,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.fmod COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4077,7 +4079,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.fmod COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4089,7 +4091,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4101,7 +4103,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4113,7 +4115,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4126,7 +4128,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4139,7 +4141,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4151,7 +4153,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4163,7 +4165,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4175,7 +4177,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4188,7 +4190,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4201,7 +4203,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4213,7 +4215,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4225,7 +4227,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4237,7 +4239,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4250,7 +4252,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4263,7 +4265,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4275,7 +4277,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4287,7 +4289,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4299,7 +4301,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4312,7 +4314,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4325,7 +4327,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.nearest_integer_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) #TODO: Add errno include to the hyperbolic functions. @@ -4349,7 +4351,7 @@ add_object_library( libc.src.__support.common libc.src.errno.errno COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4365,7 +4367,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4384,7 +4386,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4399,7 +4401,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4418,7 +4420,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4435,7 +4437,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.polyeval libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4458,7 +4460,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4476,7 +4478,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.sqrt libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4493,7 +4495,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.sqrt libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4507,7 +4509,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.fp_bits libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_object_library( @@ -4537,7 +4539,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization .inv_trigf_utils COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4555,7 +4557,7 @@ add_entrypoint_object( libc.src.__support.macros.optimization .inv_trigf_utils COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4574,7 +4576,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.rounding_mode libc.src.__support.macros.optimization COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4584,7 +4586,7 @@ add_entrypoint_object( HDRS ../atan2f.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS .inv_trigf_utils libc.src.__support.FPUtil.fp_bits @@ -4602,7 +4604,7 @@ add_entrypoint_object( HDRS ../atan2.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS .inv_trigf_utils libc.src.__support.FPUtil.double_double @@ -4622,7 +4624,7 @@ add_entrypoint_object( HDRS ../atan2l.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS .atan2 ) @@ -4637,7 +4639,7 @@ add_entrypoint_object( libc.hdr.float_macros libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4650,7 +4652,7 @@ add_entrypoint_object( libc.hdr.float_macros libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4663,7 +4665,7 @@ add_entrypoint_object( libc.hdr.float_macros libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4677,7 +4679,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4691,7 +4693,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4704,7 +4706,7 @@ add_entrypoint_object( libc.hdr.float_macros libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4717,7 +4719,7 @@ add_entrypoint_object( libc.hdr.float_macros libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4730,7 +4732,7 @@ add_entrypoint_object( libc.hdr.float_macros libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4744,7 +4746,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4758,7 +4760,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.manipulation_functions COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4770,7 +4772,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.fma COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4782,7 +4784,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.fma COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4794,7 +4796,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4806,7 +4808,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4818,7 +4820,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4830,7 +4832,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4843,7 +4845,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.basic_operations libc.src.__support.macros.properties.types COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( totalordermag @@ -4854,7 +4856,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4866,7 +4868,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4878,7 +4880,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4890,7 +4892,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4903,7 +4905,7 @@ add_entrypoint_object( libc.src.__support.FPUtil.basic_operations libc.src.__support.macros.properties.types COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4915,7 +4917,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4927,7 +4929,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4939,7 +4941,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4952,7 +4954,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4965,7 +4967,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4977,7 +4979,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -4989,7 +4991,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5001,7 +5003,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5014,7 +5016,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5027,7 +5029,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5039,7 +5041,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5051,7 +5053,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5063,7 +5065,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5076,7 +5078,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5089,7 +5091,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.basic_operations COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5102,7 +5104,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5115,7 +5117,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5128,7 +5130,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5141,7 +5143,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5154,7 +5156,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5167,7 +5169,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5180,7 +5182,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5193,7 +5195,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.add_sub COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5206,7 +5208,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.div COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5219,7 +5221,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.div COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5232,7 +5234,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.div COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5245,7 +5247,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.div COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5258,7 +5260,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.fma COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5271,7 +5273,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.fma COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5284,7 +5286,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.fma COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5297,7 +5299,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.fma COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5310,7 +5312,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5323,7 +5325,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5336,7 +5338,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5349,7 +5351,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5361,7 +5363,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5373,7 +5375,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5386,7 +5388,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.sqrt COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5396,7 +5398,7 @@ add_entrypoint_object( HDRS ../cbrtf.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.hdr.fenv_macros libc.src.__support.FPUtil.fenv_impl @@ -5412,7 +5414,7 @@ add_entrypoint_object( HDRS ../cbrt.h COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} DEPENDS libc.hdr.fenv_macros libc.src.__support.FPUtil.double_double @@ -5434,7 +5436,7 @@ add_entrypoint_object( DEPENDS libc.src.__support.FPUtil.generic.mul COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5447,7 +5449,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.mul COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5460,7 +5462,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.mul COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5473,7 +5475,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.mul COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5486,7 +5488,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.mul COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_entrypoint_object( @@ -5499,7 +5501,7 @@ add_entrypoint_object( libc.src.__support.macros.properties.types libc.src.__support.FPUtil.generic.mul COMPILE_OPTIONS - -O3 + ${libc_opt_high_flag} ) add_header_library( diff --git a/libc/src/stdlib/freelist_malloc.cpp b/libc/src/stdlib/freelist_malloc.cpp index 47240bc53aa37..fe56fad769378 100644 --- a/libc/src/stdlib/freelist_malloc.cpp +++ b/libc/src/stdlib/freelist_malloc.cpp @@ -18,8 +18,8 @@ namespace LIBC_NAMESPACE_DECL { -static LIBC_CONSTINIT FreeListHeap<> freelist_heap_symbols; -FreeListHeap<> *freelist_heap = &freelist_heap_symbols; +static LIBC_CONSTINIT FreeListHeap freelist_heap_symbols; +FreeListHeap *freelist_heap = &freelist_heap_symbols; LLVM_LIBC_FUNCTION(void *, malloc, (size_t size)) { return freelist_heap->allocate(size); diff --git a/libc/src/string/memory_utils/op_x86.h b/libc/src/string/memory_utils/op_x86.h index ab694e25fe0fe..309610e4ad630 100644 --- a/libc/src/string/memory_utils/op_x86.h +++ b/libc/src/string/memory_utils/op_x86.h @@ -29,12 +29,15 @@ // Define fake functions to prevent the compiler from failing on undefined // functions in case the CPU extension is not present. #if !defined(__AVX512BW__) && (defined(_MSC_VER) || defined(__SCE__)) +#undef _mm512_cmpneq_epi8_mask #define _mm512_cmpneq_epi8_mask(A, B) 0 #endif #if !defined(__AVX2__) && (defined(_MSC_VER) || defined(__SCE__)) +#undef _mm256_movemask_epi8 #define _mm256_movemask_epi8(A) 0 #endif #if !defined(__SSE2__) && (defined(_MSC_VER) || defined(__SCE__)) +#undef _mm_movemask_epi8 #define _mm_movemask_epi8(A) 0 #endif diff --git a/libc/src/string/string_utils.h b/libc/src/string/string_utils.h index 22a1876da5369..fc617bd18e8f6 100644 --- a/libc/src/string/string_utils.h +++ b/libc/src/string/string_utils.h @@ -7,7 +7,7 @@ //===----------------------------------------------------------------------===// // // Standalone string utility functions. Utilities requiring memory allocations -// should be placed in allocating_string_utils.h intead. +// should be placed in allocating_string_utils.h instead. // //===----------------------------------------------------------------------===// diff --git a/libc/src/sys/socket/linux/recvfrom.cpp b/libc/src/sys/socket/linux/recvfrom.cpp index a0f8278cd5deb..574e65f64a54b 100644 --- a/libc/src/sys/socket/linux/recvfrom.cpp +++ b/libc/src/sys/socket/linux/recvfrom.cpp @@ -23,17 +23,26 @@ namespace LIBC_NAMESPACE_DECL { LLVM_LIBC_FUNCTION(ssize_t, recvfrom, (int sockfd, void *buf, size_t len, int flags, - struct sockaddr *__restrict dest_addr, + sockaddr *__restrict src_addr, socklen_t *__restrict addrlen)) { + // addrlen is a value-result argument. If it's not null, it passes the max + // size of the buffer src_addr to the syscall. After the syscall, it's updated + // to the actual size of the source address. This may be larger than the + // buffer, in which case the buffer contains a truncated result. + size_t srcaddr_sz; + if (src_addr) + srcaddr_sz = *addrlen; + (void)srcaddr_sz; // prevent "set but not used" warning + #ifdef SYS_recvfrom ssize_t ret = LIBC_NAMESPACE::syscall_impl( - SYS_recvfrom, sockfd, buf, len, flags, dest_addr, addrlen); + SYS_recvfrom, sockfd, buf, len, flags, src_addr, addrlen); #elif defined(SYS_socketcall) unsigned long sockcall_args[6] = {static_cast(sockfd), reinterpret_cast(buf), static_cast(len), static_cast(flags), - reinterpret_cast(dest_addr), + reinterpret_cast(src_addr), static_cast(addrlen)}; ssize_t ret = LIBC_NAMESPACE::syscall_impl( SYS_socketcall, SYS_RECVFROM, sockcall_args); @@ -46,8 +55,13 @@ LLVM_LIBC_FUNCTION(ssize_t, recvfrom, } MSAN_UNPOISON(buf, ret); - MSAN_UNPOISON(addrlen, sizeof(socklen_t)); + if (src_addr) { + size_t min_src_addr_size = (*addrlen < srcaddr_sz) ? *addrlen : srcaddr_sz; + (void)min_src_addr_size; // prevent "set but not used" warning + + MSAN_UNPOISON(src_addr, min_src_addr_size); + } return ret; } diff --git a/libc/src/sys/socket/recvfrom.h b/libc/src/sys/socket/recvfrom.h index 14869802e7256..5c12410dd4ea4 100644 --- a/libc/src/sys/socket/recvfrom.h +++ b/libc/src/sys/socket/recvfrom.h @@ -18,8 +18,7 @@ namespace LIBC_NAMESPACE_DECL { ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, - struct sockaddr *__restrict address, - socklen_t *__restrict addrlen); + sockaddr *__restrict src_addr, socklen_t *__restrict addrlen); } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/test/integration/startup/gpu/rpc_interface_test.cpp b/libc/test/integration/startup/gpu/rpc_interface_test.cpp index 2dafa911783ff..b05ffb92699bf 100644 --- a/libc/test/integration/startup/gpu/rpc_interface_test.cpp +++ b/libc/test/integration/startup/gpu/rpc_interface_test.cpp @@ -17,27 +17,43 @@ using namespace LIBC_NAMESPACE; // as long as they are mirrored. static void test_interface(bool end_with_send) { uint64_t cnt = 0; - rpc::Client::Port port = rpc::client.open(); - port.send( - [&](rpc::Buffer *buffer, uint32_t) { buffer->data[0] = end_with_send; }); - port.send( - [&](rpc::Buffer *buffer, uint32_t) { buffer->data[0] = cnt = cnt + 1; }); - port.recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); - port.send( - [&](rpc::Buffer *buffer, uint32_t) { buffer->data[0] = cnt = cnt + 1; }); - port.recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); - port.send( - [&](rpc::Buffer *buffer, uint32_t) { buffer->data[0] = cnt = cnt + 1; }); - port.send( - [&](rpc::Buffer *buffer, uint32_t) { buffer->data[0] = cnt = cnt + 1; }); - port.recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); - port.recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); + LIBC_NAMESPACE::rpc::Client::Port port = + LIBC_NAMESPACE::rpc::client.open(); + port.send([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = end_with_send; + }); + port.send([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = cnt = cnt + 1; + }); + port.recv([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + cnt = buffer->data[0]; + }); + port.send([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = cnt = cnt + 1; + }); + port.recv([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + cnt = buffer->data[0]; + }); + port.send([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = cnt = cnt + 1; + }); + port.send([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = cnt = cnt + 1; + }); + port.recv([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + cnt = buffer->data[0]; + }); + port.recv([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + cnt = buffer->data[0]; + }); if (end_with_send) - port.send([&](rpc::Buffer *buffer, uint32_t) { + port.send([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { buffer->data[0] = cnt = cnt + 1; }); else - port.recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); + port.recv([&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + cnt = buffer->data[0]; + }); port.close(); ASSERT_TRUE(cnt == 9 && "Invalid number of increments"); diff --git a/libc/test/integration/startup/gpu/rpc_stream_test.cpp b/libc/test/integration/startup/gpu/rpc_stream_test.cpp index 09a4ae67256e3..208130bcfd9a9 100644 --- a/libc/test/integration/startup/gpu/rpc_stream_test.cpp +++ b/libc/test/integration/startup/gpu/rpc_stream_test.cpp @@ -34,7 +34,8 @@ static void test_stream() { inline_memcpy(send_ptr, str, send_size); ASSERT_TRUE(inline_memcmp(send_ptr, str, send_size) == 0 && "Data mismatch"); - rpc::Client::Port port = rpc::client.open(); + LIBC_NAMESPACE::rpc::Client::Port port = + LIBC_NAMESPACE::rpc::client.open(); port.send_n(send_ptr, send_size); port.recv_n(&recv_ptr, &recv_size, [](uint64_t size) { return malloc(size); }); @@ -77,7 +78,8 @@ static void test_divergent() { inline_memcpy(buffer, &data[offset], offset); ASSERT_TRUE(inline_memcmp(buffer, &data[offset], offset) == 0 && "Data mismatch"); - rpc::Client::Port port = rpc::client.open(); + LIBC_NAMESPACE::rpc::Client::Port port = + LIBC_NAMESPACE::rpc::client.open(); port.send_n(buffer, offset); inline_memset(buffer, offset, 0); port.recv_n(&recv_ptr, &recv_size, [&](uint64_t) { return buffer; }); diff --git a/libc/test/integration/startup/gpu/rpc_test.cpp b/libc/test/integration/startup/gpu/rpc_test.cpp index bec8171180a05..3deb72b9f85da 100644 --- a/libc/test/integration/startup/gpu/rpc_test.cpp +++ b/libc/test/integration/startup/gpu/rpc_test.cpp @@ -18,12 +18,13 @@ static void test_add_simple() { 10 + 10 * gpu::get_thread_id() + 10 * gpu::get_block_id(); uint64_t cnt = 0; for (uint32_t i = 0; i < num_additions; ++i) { - rpc::Client::Port port = rpc::client.open(); + LIBC_NAMESPACE::rpc::Client::Port port = + LIBC_NAMESPACE::rpc::client.open(); port.send_and_recv( - [=](rpc::Buffer *buffer, uint32_t) { + [=](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { reinterpret_cast(buffer->data)[0] = cnt; }, - [&](rpc::Buffer *buffer, uint32_t) { + [&](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { cnt = reinterpret_cast(buffer->data)[0]; }); port.close(); @@ -33,8 +34,11 @@ static void test_add_simple() { // Test to ensure that the RPC mechanism doesn't hang on divergence. static void test_noop(uint8_t data) { - rpc::Client::Port port = rpc::client.open(); - port.send([=](rpc::Buffer *buffer, uint32_t) { buffer->data[0] = data; }); + LIBC_NAMESPACE::rpc::Client::Port port = + LIBC_NAMESPACE::rpc::client.open(); + port.send([=](LIBC_NAMESPACE::rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = data; + }); port.close(); } diff --git a/libc/test/src/__support/CMakeLists.txt b/libc/test/src/__support/CMakeLists.txt index c3a7d87d8281f..bcc86effd9a52 100644 --- a/libc/test/src/__support/CMakeLists.txt +++ b/libc/test/src/__support/CMakeLists.txt @@ -24,7 +24,34 @@ if(NOT LIBC_TARGET_OS_IS_GPU) DEPENDS libc.src.__support.CPP.array libc.src.__support.CPP.span + libc.src.__support.block + libc.src.__support.freelist + ) + + add_libc_test( + freetrie_test + SUITE + libc-support-tests + SRCS + freetrie_test.cpp + DEPENDS + libc.src.__support.CPP.optional + libc.src.__support.block + libc.src.__support.freetrie + ) + + add_libc_test( + freestore_test + SUITE + libc-support-tests + SRCS + freestore_test.cpp + DEPENDS + libc.src.__support.CPP.optional + libc.src.__support.block libc.src.__support.freelist + libc.src.__support.freestore + libc.src.__support.freetrie ) endif() diff --git a/libc/test/src/__support/block_test.cpp b/libc/test/src/__support/block_test.cpp index 62d7fae67bdc3..5e437db51b609 100644 --- a/libc/test/src/__support/block_test.cpp +++ b/libc/test/src/__support/block_test.cpp @@ -14,96 +14,60 @@ #include "src/string/memcpy.h" #include "test/UnitTest/Test.h" -// Block types. -using LargeOffsetBlock = LIBC_NAMESPACE::Block; -using SmallOffsetBlock = LIBC_NAMESPACE::Block; - -// For each of the block types above, we'd like to run the same tests since -// they should work independently of the parameter sizes. Rather than re-writing -// the same test for each case, let's instead create a custom test framework for -// each test case that invokes the actual testing function for each block type. -// -// It's organized this way because the ASSERT/EXPECT macros only work within a -// `Test` class due to those macros expanding to `test` methods. -#define TEST_FOR_EACH_BLOCK_TYPE(TestCase) \ - class LlvmLibcBlockTest##TestCase : public LIBC_NAMESPACE::testing::Test { \ - public: \ - template void RunTest(); \ - }; \ - TEST_F(LlvmLibcBlockTest##TestCase, TestCase) { \ - RunTest(); \ - RunTest(); \ - } \ - template void LlvmLibcBlockTest##TestCase::RunTest() - +using LIBC_NAMESPACE::Block; using LIBC_NAMESPACE::cpp::array; using LIBC_NAMESPACE::cpp::bit_ceil; using LIBC_NAMESPACE::cpp::byte; using LIBC_NAMESPACE::cpp::span; -TEST_FOR_EACH_BLOCK_TYPE(CanCreateSingleAlignedBlock) { +TEST(LlvmLibcBlockTest, CanCreateSingleAlignedBlock) { constexpr size_t kN = 1024; - alignas(BlockType::ALIGNMENT) array bytes; + alignas(Block::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; - BlockType *last = block->next(); - ASSERT_NE(last, static_cast(nullptr)); - constexpr size_t last_outer_size = BlockType::BLOCK_OVERHEAD; + Block *last = block->next(); + ASSERT_NE(last, static_cast(nullptr)); + constexpr size_t last_outer_size = Block::BLOCK_OVERHEAD; EXPECT_EQ(last->outer_size(), last_outer_size); EXPECT_EQ(last->prev_free(), block); EXPECT_TRUE(last->used()); EXPECT_EQ(block->outer_size(), kN - last_outer_size); - constexpr size_t last_prev_field_size = - sizeof(typename BlockType::offset_type); - EXPECT_EQ(block->inner_size(), kN - last_outer_size - - BlockType::BLOCK_OVERHEAD + + constexpr size_t last_prev_field_size = sizeof(size_t); + EXPECT_EQ(block->inner_size(), kN - last_outer_size - Block::BLOCK_OVERHEAD + last_prev_field_size); - EXPECT_EQ(block->prev_free(), static_cast(nullptr)); + EXPECT_EQ(block->prev_free(), static_cast(nullptr)); EXPECT_FALSE(block->used()); } -TEST_FOR_EACH_BLOCK_TYPE(CanCreateUnalignedSingleBlock) { +TEST(LlvmLibcBlockTest, CanCreateUnalignedSingleBlock) { constexpr size_t kN = 1024; // Force alignment, so we can un-force it below - alignas(BlockType::ALIGNMENT) array bytes; + alignas(Block::ALIGNMENT) array bytes; span aligned(bytes); - auto result = BlockType::init(aligned.subspan(1)); + auto result = Block::init(aligned.subspan(1)); EXPECT_TRUE(result.has_value()); } -TEST_FOR_EACH_BLOCK_TYPE(CannotCreateTooSmallBlock) { +TEST(LlvmLibcBlockTest, CannotCreateTooSmallBlock) { array bytes; - auto result = BlockType::init(bytes); - EXPECT_FALSE(result.has_value()); -} - -// This test specifically checks that we cannot allocate a block with a size -// larger than what can be held by the offset type, we don't need to test with -// multiple block types for this particular check, so we use the normal TEST -// macro and not the custom framework. -TEST(LlvmLibcBlockTest, CannotCreateTooLargeBlock) { - using BlockType = LIBC_NAMESPACE::Block; - constexpr size_t kN = 1024; - - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + auto result = Block::init(bytes); EXPECT_FALSE(result.has_value()); } -TEST_FOR_EACH_BLOCK_TYPE(CanSplitBlock) { +TEST(LlvmLibcBlockTest, CanSplitBlock) { constexpr size_t kN = 1024; - constexpr size_t prev_field_size = sizeof(typename BlockType::offset_type); + constexpr size_t prev_field_size = sizeof(size_t); // Give the split position a large alignment. constexpr size_t kSplitN = 512 + prev_field_size; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); auto *block1 = *result; size_t orig_size = block1->outer_size(); @@ -114,7 +78,7 @@ TEST_FOR_EACH_BLOCK_TYPE(CanSplitBlock) { EXPECT_EQ(block1->inner_size(), kSplitN); EXPECT_EQ(block1->outer_size(), - kSplitN - prev_field_size + BlockType::BLOCK_OVERHEAD); + kSplitN - prev_field_size + Block::BLOCK_OVERHEAD); EXPECT_EQ(block2->outer_size(), orig_size - block1->outer_size()); EXPECT_FALSE(block2->used()); @@ -123,26 +87,26 @@ TEST_FOR_EACH_BLOCK_TYPE(CanSplitBlock) { EXPECT_EQ(block2->prev_free(), block1); } -TEST_FOR_EACH_BLOCK_TYPE(CanSplitBlockUnaligned) { +TEST(LlvmLibcBlockTest, CanSplitBlockUnaligned) { constexpr size_t kN = 1024; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block1 = *result; + Block *block1 = *result; size_t orig_size = block1->outer_size(); constexpr size_t kSplitN = 513; - constexpr size_t prev_field_size = sizeof(typename BlockType::offset_type); + constexpr size_t prev_field_size = sizeof(size_t); uintptr_t split_addr = reinterpret_cast(block1) + (kSplitN - prev_field_size); // Round split_addr up to a multiple of the alignment. - split_addr += alignof(BlockType) - (split_addr % alignof(BlockType)); + split_addr += alignof(Block) - (split_addr % alignof(Block)); uintptr_t split_len = split_addr - (uintptr_t)&bytes + prev_field_size; result = block1->split(kSplitN); ASSERT_TRUE(result.has_value()); - BlockType *block2 = *result; + Block *block2 = *result; EXPECT_EQ(block1->inner_size(), split_len); @@ -153,7 +117,7 @@ TEST_FOR_EACH_BLOCK_TYPE(CanSplitBlockUnaligned) { EXPECT_EQ(block2->prev_free(), block1); } -TEST_FOR_EACH_BLOCK_TYPE(CanSplitMidBlock) { +TEST(LlvmLibcBlockTest, CanSplitMidBlock) { // split once, then split the original block again to ensure that the // pointers get rewired properly. // I.e. @@ -167,18 +131,18 @@ TEST_FOR_EACH_BLOCK_TYPE(CanSplitMidBlock) { constexpr size_t kSplit1 = 512; constexpr size_t kSplit2 = 256; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block1 = *result; + Block *block1 = *result; result = block1->split(kSplit1); ASSERT_TRUE(result.has_value()); - BlockType *block2 = *result; + Block *block2 = *result; result = block1->split(kSplit2); ASSERT_TRUE(result.has_value()); - BlockType *block3 = *result; + Block *block3 = *result; EXPECT_EQ(block1->next(), block3); EXPECT_EQ(block3->prev_free(), block1); @@ -186,111 +150,97 @@ TEST_FOR_EACH_BLOCK_TYPE(CanSplitMidBlock) { EXPECT_EQ(block2->prev_free(), block3); } -TEST_FOR_EACH_BLOCK_TYPE(CannotSplitTooSmallBlock) { +TEST(LlvmLibcBlockTest, CannotSplitTooSmallBlock) { constexpr size_t kN = 64; constexpr size_t kSplitN = kN + 1; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; result = block->split(kSplitN); ASSERT_FALSE(result.has_value()); } -TEST_FOR_EACH_BLOCK_TYPE(CannotSplitBlockWithoutHeaderSpace) { +TEST(LlvmLibcBlockTest, CannotSplitBlockWithoutHeaderSpace) { constexpr size_t kN = 1024; - constexpr size_t kSplitN = kN - 2 * BlockType::BLOCK_OVERHEAD - 1; + constexpr size_t kSplitN = kN - 2 * Block::BLOCK_OVERHEAD - 1; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; result = block->split(kSplitN); ASSERT_FALSE(result.has_value()); } -TEST_FOR_EACH_BLOCK_TYPE(CannotMakeBlockLargerInSplit) { +TEST(LlvmLibcBlockTest, CannotMakeBlockLargerInSplit) { // Ensure that we can't ask for more space than the block actually has... constexpr size_t kN = 1024; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; result = block->split(block->inner_size() + 1); ASSERT_FALSE(result.has_value()); } -TEST_FOR_EACH_BLOCK_TYPE(CannotMakeSecondBlockLargerInSplit) { +TEST(LlvmLibcBlockTest, CannotMakeSecondBlockLargerInSplit) { // Ensure that the second block in split is at least of the size of header. constexpr size_t kN = 1024; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; - result = block->split(block->inner_size() - BlockType::BLOCK_OVERHEAD + 1); + result = block->split(block->inner_size() - Block::BLOCK_OVERHEAD + 1); ASSERT_FALSE(result.has_value()); } -TEST_FOR_EACH_BLOCK_TYPE(CannotMakeZeroSizeFirstBlock) { - // This block doesn't support splitting with zero payload size, since the - // prev_ field of the next block is always available. - constexpr size_t kN = 1024; - - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); - ASSERT_TRUE(result.has_value()); - BlockType *block = *result; - - result = block->split(0); - EXPECT_FALSE(result.has_value()); -} - -TEST_FOR_EACH_BLOCK_TYPE(CanMakeMinimalSizeFirstBlock) { +TEST(LlvmLibcBlockTest, CanMakeMinimalSizeFirstBlock) { // This block does support splitting with minimal payload size. constexpr size_t kN = 1024; - constexpr size_t minimal_size = sizeof(typename BlockType::offset_type); + constexpr size_t minimal_size = sizeof(size_t); - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; result = block->split(minimal_size); ASSERT_TRUE(result.has_value()); EXPECT_EQ(block->inner_size(), minimal_size); } -TEST_FOR_EACH_BLOCK_TYPE(CanMakeMinimalSizeSecondBlock) { +TEST(LlvmLibcBlockTest, CanMakeMinimalSizeSecondBlock) { // Likewise, the split block can be minimal-width. constexpr size_t kN = 1024; - constexpr size_t minimal_size = sizeof(typename BlockType::offset_type); + constexpr size_t minimal_size = sizeof(size_t); - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block1 = *result; + Block *block1 = *result; - result = block1->split(block1->inner_size() - BlockType::BLOCK_OVERHEAD); + result = block1->split(block1->inner_size() - Block::BLOCK_OVERHEAD); ASSERT_TRUE(result.has_value()); - BlockType *block2 = *result; + Block *block2 = *result; EXPECT_EQ(block2->inner_size(), minimal_size); } -TEST_FOR_EACH_BLOCK_TYPE(CanMarkBlockUsed) { +TEST(LlvmLibcBlockTest, CanMarkBlockUsed) { constexpr size_t kN = 1024; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; size_t orig_size = block->outer_size(); block->mark_used(); @@ -301,33 +251,33 @@ TEST_FOR_EACH_BLOCK_TYPE(CanMarkBlockUsed) { EXPECT_FALSE(block->used()); } -TEST_FOR_EACH_BLOCK_TYPE(CannotSplitUsedBlock) { +TEST(LlvmLibcBlockTest, CannotSplitUsedBlock) { constexpr size_t kN = 1024; constexpr size_t kSplitN = 512; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; block->mark_used(); result = block->split(kSplitN); ASSERT_FALSE(result.has_value()); } -TEST_FOR_EACH_BLOCK_TYPE(CanMergeWithNextBlock) { +TEST(LlvmLibcBlockTest, CanMergeWithNextBlock) { // Do the three way merge from "CanSplitMidBlock", and let's // merge block 3 and 2 constexpr size_t kN = 1024; // Give the split positions large alignments. - constexpr size_t prev_field_size = sizeof(typename BlockType::offset_type); + constexpr size_t prev_field_size = sizeof(size_t); constexpr size_t kSplit1 = 512 + prev_field_size; constexpr size_t kSplit2 = 256 + prev_field_size; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block1 = *result; + Block *block1 = *result; size_t orig_size = block1->outer_size(); result = block1->split(kSplit1); @@ -335,7 +285,7 @@ TEST_FOR_EACH_BLOCK_TYPE(CanMergeWithNextBlock) { result = block1->split(kSplit2); ASSERT_TRUE(result.has_value()); - BlockType *block3 = *result; + Block *block3 = *result; EXPECT_TRUE(block3->merge_next()); @@ -345,31 +295,31 @@ TEST_FOR_EACH_BLOCK_TYPE(CanMergeWithNextBlock) { EXPECT_EQ(block3->outer_size(), orig_size - block1->outer_size()); } -TEST_FOR_EACH_BLOCK_TYPE(CannotMergeWithFirstOrLastBlock) { +TEST(LlvmLibcBlockTest, CannotMergeWithFirstOrLastBlock) { constexpr size_t kN = 1024; constexpr size_t kSplitN = 512; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block1 = *result; + Block *block1 = *result; // Do a split, just to check that the checks on next/prev are different... result = block1->split(kSplitN); ASSERT_TRUE(result.has_value()); - BlockType *block2 = *result; + Block *block2 = *result; EXPECT_FALSE(block2->merge_next()); } -TEST_FOR_EACH_BLOCK_TYPE(CannotMergeUsedBlock) { +TEST(LlvmLibcBlockTest, CannotMergeUsedBlock) { constexpr size_t kN = 1024; constexpr size_t kSplitN = 512; - alignas(BlockType::ALIGNMENT) array bytes; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; // Do a split, just to check that the checks on next/prev are different... result = block->split(kSplitN); @@ -379,177 +329,176 @@ TEST_FOR_EACH_BLOCK_TYPE(CannotMergeUsedBlock) { EXPECT_FALSE(block->merge_next()); } -TEST_FOR_EACH_BLOCK_TYPE(CanGetBlockFromUsableSpace) { +TEST(LlvmLibcBlockTest, CanGetBlockFromUsableSpace) { constexpr size_t kN = 1024; array bytes{}; - auto result = BlockType::init(bytes); + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block1 = *result; + Block *block1 = *result; void *ptr = block1->usable_space(); - BlockType *block2 = BlockType::from_usable_space(ptr); + Block *block2 = Block::from_usable_space(ptr); EXPECT_EQ(block1, block2); } -TEST_FOR_EACH_BLOCK_TYPE(CanGetConstBlockFromUsableSpace) { +TEST(LlvmLibcBlockTest, CanGetConstBlockFromUsableSpace) { constexpr size_t kN = 1024; array bytes{}; - auto result = BlockType::init(bytes); + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - const BlockType *block1 = *result; + const Block *block1 = *result; const void *ptr = block1->usable_space(); - const BlockType *block2 = BlockType::from_usable_space(ptr); + const Block *block2 = Block::from_usable_space(ptr); EXPECT_EQ(block1, block2); } -TEST_FOR_EACH_BLOCK_TYPE(CanAllocate) { - constexpr size_t kN = 1024 + BlockType::BLOCK_OVERHEAD; +TEST(LlvmLibcBlockTest, CanAllocate) { + constexpr size_t kN = 1024 + Block::BLOCK_OVERHEAD; // Ensure we can allocate everything up to the block size within this block. - for (size_t i = 0; i < kN - 2 * BlockType::BLOCK_OVERHEAD; ++i) { - alignas(BlockType::ALIGNMENT) array bytes{}; - auto result = BlockType::init(bytes); + for (size_t i = 0; i < kN - 2 * Block::BLOCK_OVERHEAD; ++i) { + alignas(Block::ALIGNMENT) array bytes{}; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; constexpr size_t ALIGN = 1; // Effectively ignores alignment. EXPECT_TRUE(block->can_allocate(ALIGN, i)); // For each can_allocate, we should be able to do a successful call to // allocate. - auto info = BlockType::allocate(block, ALIGN, i); - EXPECT_NE(info.block, static_cast(nullptr)); + auto info = Block::allocate(block, ALIGN, i); + EXPECT_NE(info.block, static_cast(nullptr)); } - alignas(BlockType::ALIGNMENT) array bytes{}; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes{}; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; // Given a block of size N (assuming it's also a power of two), we should be // able to allocate a block within it that's aligned to N/2. This is // because regardless of where the buffer is located, we can always find a // starting location within it that meets this alignment. EXPECT_TRUE(block->can_allocate(block->outer_size() / 2, 1)); - auto info = BlockType::allocate(block, block->outer_size() / 2, 1); - EXPECT_NE(info.block, static_cast(nullptr)); + auto info = Block::allocate(block, block->outer_size() / 2, 1); + EXPECT_NE(info.block, static_cast(nullptr)); } -TEST_FOR_EACH_BLOCK_TYPE(AllocateAlreadyAligned) { +TEST(LlvmLibcBlockTest, AllocateAlreadyAligned) { constexpr size_t kN = 1024; - alignas(BlockType::ALIGNMENT) array bytes{}; - auto result = BlockType::init(bytes); + alignas(Block::ALIGNMENT) array bytes{}; + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; // This should result in no new blocks. - constexpr size_t kAlignment = BlockType::ALIGNMENT; - constexpr size_t prev_field_size = sizeof(typename BlockType::offset_type); - constexpr size_t kExpectedSize = BlockType::ALIGNMENT + prev_field_size; + constexpr size_t kAlignment = Block::ALIGNMENT; + constexpr size_t prev_field_size = sizeof(size_t); + constexpr size_t kExpectedSize = Block::ALIGNMENT + prev_field_size; EXPECT_TRUE(block->can_allocate(kAlignment, kExpectedSize)); auto [aligned_block, prev, next] = - BlockType::allocate(block, BlockType::ALIGNMENT, kExpectedSize); + Block::allocate(block, Block::ALIGNMENT, kExpectedSize); // Since this is already aligned, there should be no previous block. - EXPECT_EQ(prev, static_cast(nullptr)); + EXPECT_EQ(prev, static_cast(nullptr)); // Ensure we the block is aligned and the size we expect. - EXPECT_NE(aligned_block, static_cast(nullptr)); - EXPECT_TRUE(aligned_block->is_usable_space_aligned(BlockType::ALIGNMENT)); + EXPECT_NE(aligned_block, static_cast(nullptr)); + EXPECT_TRUE(aligned_block->is_usable_space_aligned(Block::ALIGNMENT)); EXPECT_EQ(aligned_block->inner_size(), kExpectedSize); // Check the next block. - EXPECT_NE(next, static_cast(nullptr)); + EXPECT_NE(next, static_cast(nullptr)); EXPECT_EQ(aligned_block->next(), next); EXPECT_EQ(reinterpret_cast(next) + next->outer_size(), - bytes.data() + bytes.size() - BlockType::BLOCK_OVERHEAD); + bytes.data() + bytes.size() - Block::BLOCK_OVERHEAD); } -TEST_FOR_EACH_BLOCK_TYPE(AllocateNeedsAlignment) { +TEST(LlvmLibcBlockTest, AllocateNeedsAlignment) { constexpr size_t kN = 1024; alignas(kN) array bytes{}; - auto result = BlockType::init(bytes); + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; // Ensure first the usable_data is only aligned to the block alignment. - ASSERT_EQ(block->usable_space(), bytes.data() + BlockType::BLOCK_OVERHEAD); - ASSERT_EQ(block->prev_free(), static_cast(nullptr)); + ASSERT_EQ(block->usable_space(), bytes.data() + Block::BLOCK_OVERHEAD); + ASSERT_EQ(block->prev_free(), static_cast(nullptr)); // Now pick an alignment such that the usable space is not already aligned to // it. We want to explicitly test that the block will split into one before // it. - constexpr size_t kAlignment = bit_ceil(BlockType::BLOCK_OVERHEAD) * 8; + constexpr size_t kAlignment = bit_ceil(Block::BLOCK_OVERHEAD) * 8; ASSERT_FALSE(block->is_usable_space_aligned(kAlignment)); constexpr size_t kSize = 10; EXPECT_TRUE(block->can_allocate(kAlignment, kSize)); - auto [aligned_block, prev, next] = - BlockType::allocate(block, kAlignment, kSize); + auto [aligned_block, prev, next] = Block::allocate(block, kAlignment, kSize); // Check the previous block was created appropriately. Since this block is the // first block, a new one should be made before this. - EXPECT_NE(prev, static_cast(nullptr)); + EXPECT_NE(prev, static_cast(nullptr)); EXPECT_EQ(aligned_block->prev_free(), prev); EXPECT_EQ(prev->next(), aligned_block); EXPECT_EQ(prev->outer_size(), reinterpret_cast(aligned_block) - reinterpret_cast(prev)); // Ensure we the block is aligned and the size we expect. - EXPECT_NE(next, static_cast(nullptr)); + EXPECT_NE(next, static_cast(nullptr)); EXPECT_TRUE(aligned_block->is_usable_space_aligned(kAlignment)); // Check the next block. - EXPECT_NE(next, static_cast(nullptr)); + EXPECT_NE(next, static_cast(nullptr)); EXPECT_EQ(aligned_block->next(), next); EXPECT_EQ(reinterpret_cast(next) + next->outer_size(), - bytes.data() + bytes.size() - BlockType::BLOCK_OVERHEAD); + bytes.data() + bytes.size() - Block::BLOCK_OVERHEAD); } -TEST_FOR_EACH_BLOCK_TYPE(PreviousBlockMergedIfNotFirst) { +TEST(LlvmLibcBlockTest, PreviousBlockMergedIfNotFirst) { constexpr size_t kN = 1024; alignas(kN) array bytes{}; - auto result = BlockType::init(bytes); + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; + Block *block = *result; // Split the block roughly halfway and work on the second half. auto result2 = block->split(kN / 2); ASSERT_TRUE(result2.has_value()); - BlockType *newblock = *result2; + Block *newblock = *result2; ASSERT_EQ(newblock->prev_free(), block); size_t old_prev_size = block->outer_size(); // Now pick an alignment such that the usable space is not already aligned to // it. We want to explicitly test that the block will split into one before // it. - constexpr size_t kAlignment = bit_ceil(BlockType::BLOCK_OVERHEAD) * 8; + constexpr size_t kAlignment = bit_ceil(Block::BLOCK_OVERHEAD) * 8; ASSERT_FALSE(newblock->is_usable_space_aligned(kAlignment)); // Ensure we can allocate in the new block. - constexpr size_t kSize = BlockType::ALIGNMENT; + constexpr size_t kSize = Block::ALIGNMENT; EXPECT_TRUE(newblock->can_allocate(kAlignment, kSize)); auto [aligned_block, prev, next] = - BlockType::allocate(newblock, kAlignment, kSize); + Block::allocate(newblock, kAlignment, kSize); // Now there should be no new previous block. Instead, the padding we did // create should be merged into the original previous block. - EXPECT_EQ(prev, static_cast(nullptr)); + EXPECT_EQ(prev, static_cast(nullptr)); EXPECT_EQ(aligned_block->prev_free(), block); EXPECT_EQ(block->next(), aligned_block); EXPECT_GT(block->outer_size(), old_prev_size); } -TEST_FOR_EACH_BLOCK_TYPE(CanRemergeBlockAllocations) { +TEST(LlvmLibcBlockTest, CanRemergeBlockAllocations) { // Finally to ensure we made the split blocks correctly via allocate. We // should be able to reconstruct the original block from the blocklets. // @@ -557,31 +506,30 @@ TEST_FOR_EACH_BLOCK_TYPE(CanRemergeBlockAllocations) { constexpr size_t kN = 1024; alignas(kN) array bytes{}; - auto result = BlockType::init(bytes); + auto result = Block::init(bytes); ASSERT_TRUE(result.has_value()); - BlockType *block = *result; - BlockType *last = block->next(); + Block *block = *result; + Block *last = block->next(); // Ensure first the usable_data is only aligned to the block alignment. - ASSERT_EQ(block->usable_space(), bytes.data() + BlockType::BLOCK_OVERHEAD); - ASSERT_EQ(block->prev_free(), static_cast(nullptr)); + ASSERT_EQ(block->usable_space(), bytes.data() + Block::BLOCK_OVERHEAD); + ASSERT_EQ(block->prev_free(), static_cast(nullptr)); // Now pick an alignment such that the usable space is not already aligned to // it. We want to explicitly test that the block will split into one before // it. - constexpr size_t kAlignment = bit_ceil(BlockType::BLOCK_OVERHEAD) * 8; + constexpr size_t kAlignment = bit_ceil(Block::BLOCK_OVERHEAD) * 8; ASSERT_FALSE(block->is_usable_space_aligned(kAlignment)); - constexpr size_t kSize = BlockType::ALIGNMENT; + constexpr size_t kSize = Block::ALIGNMENT; EXPECT_TRUE(block->can_allocate(kAlignment, kSize)); - auto [aligned_block, prev, next] = - BlockType::allocate(block, kAlignment, kSize); + auto [aligned_block, prev, next] = Block::allocate(block, kAlignment, kSize); // Check we have the appropriate blocks. - ASSERT_NE(prev, static_cast(nullptr)); + ASSERT_NE(prev, static_cast(nullptr)); ASSERT_EQ(aligned_block->prev_free(), prev); - EXPECT_NE(next, static_cast(nullptr)); + EXPECT_NE(next, static_cast(nullptr)); EXPECT_EQ(aligned_block->next(), next); EXPECT_EQ(next->next(), last); @@ -593,7 +541,7 @@ TEST_FOR_EACH_BLOCK_TYPE(CanRemergeBlockAllocations) { // We should have the original buffer. EXPECT_EQ(reinterpret_cast(prev), &*bytes.begin()); - EXPECT_EQ(prev->outer_size(), bytes.size() - BlockType::BLOCK_OVERHEAD); + EXPECT_EQ(prev->outer_size(), bytes.size() - Block::BLOCK_OVERHEAD); EXPECT_EQ(reinterpret_cast(prev) + prev->outer_size(), - &*bytes.end() - BlockType::BLOCK_OVERHEAD); + &*bytes.end() - Block::BLOCK_OVERHEAD); } diff --git a/libc/test/src/__support/freelist_heap_test.cpp b/libc/test/src/__support/freelist_heap_test.cpp index 973900dfdf56e..991c158825a88 100644 --- a/libc/test/src/__support/freelist_heap_test.cpp +++ b/libc/test/src/__support/freelist_heap_test.cpp @@ -13,9 +13,12 @@ #include "src/string/memcpy.h" #include "test/UnitTest/Test.h" -namespace LIBC_NAMESPACE_DECL { - +using LIBC_NAMESPACE::Block; using LIBC_NAMESPACE::freelist_heap; +using LIBC_NAMESPACE::FreeListHeap; +using LIBC_NAMESPACE::FreeListHeapBuffer; +using LIBC_NAMESPACE::cpp::byte; +using LIBC_NAMESPACE::cpp::span; // Similar to `LlvmLibcBlockTest` in block_test.cpp, we'd like to run the same // tests independently for different parameters. In this case, we'd like to test @@ -28,23 +31,23 @@ using LIBC_NAMESPACE::freelist_heap; // made in tests leak and aren't free'd. This is fine for the purposes of this // test file. #define TEST_FOR_EACH_ALLOCATOR(TestCase, BufferSize) \ - class LlvmLibcFreeListHeapTest##TestCase : public testing::Test { \ + class LlvmLibcFreeListHeapTest##TestCase \ + : public LIBC_NAMESPACE::testing::Test { \ public: \ FreeListHeapBuffer fake_global_buffer; \ void SetUp() override { \ freelist_heap = \ new (&fake_global_buffer) FreeListHeapBuffer; \ } \ - void RunTest(FreeListHeap<> &allocator, [[maybe_unused]] size_t N); \ + void RunTest(FreeListHeap &allocator, [[maybe_unused]] size_t N); \ }; \ TEST_F(LlvmLibcFreeListHeapTest##TestCase, TestCase) { \ - alignas(FreeListHeap<>::BlockType) \ - cpp::byte buf[BufferSize] = {cpp::byte(0)}; \ - FreeListHeap<> allocator(buf); \ + alignas(Block) byte buf[BufferSize] = {byte(0)}; \ + FreeListHeap allocator(buf); \ RunTest(allocator, BufferSize); \ RunTest(*freelist_heap, freelist_heap->region().size()); \ } \ - void LlvmLibcFreeListHeapTest##TestCase::RunTest(FreeListHeap<> &allocator, \ + void LlvmLibcFreeListHeapTest##TestCase::RunTest(FreeListHeap &allocator, \ size_t N) TEST_FOR_EACH_ALLOCATOR(CanAllocate, 2048) { @@ -92,14 +95,13 @@ TEST_FOR_EACH_ALLOCATOR(ReturnsNullWhenAllocationTooLarge, 2048) { // is used for other test cases and we don't explicitly free them. TEST(LlvmLibcFreeListHeap, ReturnsNullWhenFull) { constexpr size_t N = 2048; - alignas(FreeListHeap<>::BlockType) cpp::byte buf[N] = {cpp::byte(0)}; + alignas(Block) byte buf[N] = {byte(0)}; - FreeListHeap<> allocator(buf); + FreeListHeap allocator(buf); // Use aligned_allocate so we don't need to worry about ensuring the `buf` // being aligned to max_align_t. - EXPECT_NE(allocator.aligned_allocate( - 1, N - 2 * FreeListHeap<>::BlockType::BLOCK_OVERHEAD), + EXPECT_NE(allocator.aligned_allocate(1, N - 2 * Block::BLOCK_OVERHEAD), static_cast(nullptr)); EXPECT_EQ(allocator.allocate(1), static_cast(nullptr)); } @@ -134,9 +136,9 @@ TEST_FOR_EACH_ALLOCATOR(ReallocHasSameContent, 2048) { constexpr size_t ALLOC_SIZE = sizeof(int); constexpr size_t kNewAllocSize = sizeof(int) * 2; // Data inside the allocated block. - cpp::byte data1[ALLOC_SIZE]; + byte data1[ALLOC_SIZE]; // Data inside the reallocated block. - cpp::byte data2[ALLOC_SIZE]; + byte data2[ALLOC_SIZE]; int *ptr1 = reinterpret_cast(allocator.allocate(ALLOC_SIZE)); *ptr1 = 42; @@ -188,10 +190,9 @@ TEST_FOR_EACH_ALLOCATOR(CanCalloc, 2048) { constexpr size_t ALLOC_SIZE = 128; constexpr size_t NUM = 4; constexpr int size = NUM * ALLOC_SIZE; - constexpr cpp::byte zero{0}; + constexpr byte zero{0}; - cpp::byte *ptr1 = - reinterpret_cast(allocator.calloc(NUM, ALLOC_SIZE)); + byte *ptr1 = reinterpret_cast(allocator.calloc(NUM, ALLOC_SIZE)); // calloc'd content is zero. for (int i = 0; i < size; i++) { @@ -203,10 +204,9 @@ TEST_FOR_EACH_ALLOCATOR(CanCallocWeirdSize, 2048) { constexpr size_t ALLOC_SIZE = 143; constexpr size_t NUM = 3; constexpr int size = NUM * ALLOC_SIZE; - constexpr cpp::byte zero{0}; + constexpr byte zero{0}; - cpp::byte *ptr1 = - reinterpret_cast(allocator.calloc(NUM, ALLOC_SIZE)); + byte *ptr1 = reinterpret_cast(allocator.calloc(NUM, ALLOC_SIZE)); // calloc'd content is zero. for (int i = 0; i < size; i++) { @@ -241,17 +241,16 @@ TEST_FOR_EACH_ALLOCATOR(AlignedAlloc, 2048) { // This test is not part of the TEST_FOR_EACH_ALLOCATOR since we want to // explicitly ensure that the buffer can still return aligned allocations even -// if the underlying buffer is at most aligned to the BlockType alignment. This +// if the underlying buffer is at most aligned to the Block alignment. This // is so we can check that we can still get aligned allocations even if the // underlying buffer is not aligned to the alignments we request. -TEST(LlvmLibcFreeListHeap, AlignedAllocOnlyBlockTypeAligned) { +TEST(LlvmLibcFreeListHeap, AlignedAllocOnlyBlockAligned) { constexpr size_t BUFFER_SIZE = 4096; - constexpr size_t BUFFER_ALIGNMENT = alignof(FreeListHeap<>::BlockType) * 2; - alignas(BUFFER_ALIGNMENT) cpp::byte buf[BUFFER_SIZE] = {cpp::byte(0)}; + constexpr size_t BUFFER_ALIGNMENT = alignof(Block) * 2; + alignas(BUFFER_ALIGNMENT) byte buf[BUFFER_SIZE] = {byte(0)}; // Ensure the underlying buffer is at most aligned to the block type. - FreeListHeap<> allocator( - span(buf).subspan(alignof(FreeListHeap<>::BlockType))); + FreeListHeap allocator(span(buf).subspan(alignof(Block))); constexpr size_t ALIGNMENTS[] = {1, 2, 4, 8, 16, 32, 64, 128, 256}; constexpr size_t SIZE_SCALES[] = {1, 2, 3, 4, 5}; @@ -289,5 +288,3 @@ TEST_FOR_EACH_ALLOCATOR(InvalidAlignedAllocAlignment, 2048) { ptr = allocator.aligned_allocate(0, 8); EXPECT_EQ(ptr, static_cast(nullptr)); } - -} // namespace LIBC_NAMESPACE_DECL diff --git a/libc/test/src/__support/freelist_malloc_test.cpp b/libc/test/src/__support/freelist_malloc_test.cpp index 9cbdec89f6576..793e2498304fb 100644 --- a/libc/test/src/__support/freelist_malloc_test.cpp +++ b/libc/test/src/__support/freelist_malloc_test.cpp @@ -13,6 +13,7 @@ #include "src/stdlib/malloc.h" #include "test/UnitTest/Test.h" +using LIBC_NAMESPACE::Block; using LIBC_NAMESPACE::freelist_heap; using LIBC_NAMESPACE::FreeListHeap; using LIBC_NAMESPACE::FreeListHeapBuffer; @@ -22,8 +23,6 @@ TEST(LlvmLibcFreeListMalloc, Malloc) { constexpr size_t kCallocNum = 4; constexpr size_t kCallocSize = 64; - typedef FreeListHeap<>::BlockType Block; - void *ptr1 = LIBC_NAMESPACE::malloc(kAllocSize); auto *block = Block::from_usable_space(ptr1); EXPECT_GE(block->inner_size(), kAllocSize); diff --git a/libc/test/src/__support/freelist_test.cpp b/libc/test/src/__support/freelist_test.cpp index cae0ed470315c..bd5ecec45d921 100644 --- a/libc/test/src/__support/freelist_test.cpp +++ b/libc/test/src/__support/freelist_test.cpp @@ -8,159 +8,46 @@ #include -#include "src/__support/CPP/array.h" -#include "src/__support/CPP/span.h" #include "src/__support/freelist.h" #include "test/UnitTest/Test.h" +using LIBC_NAMESPACE::Block; using LIBC_NAMESPACE::FreeList; -using LIBC_NAMESPACE::cpp::array; using LIBC_NAMESPACE::cpp::byte; -using LIBC_NAMESPACE::cpp::span; - -static constexpr size_t SIZE = 8; -static constexpr array example_sizes = {64, 128, 256, 512, - 1024, 2048, 4096, 8192}; - -TEST(LlvmLibcFreeList, EmptyListHasNoMembers) { - FreeList list(example_sizes); - - auto item = list.find_chunk(4); - EXPECT_EQ(item.size(), static_cast(0)); - item = list.find_chunk(128); - EXPECT_EQ(item.size(), static_cast(0)); -} - -TEST(LlvmLibcFreeList, CanRetrieveAddedMember) { - FreeList list(example_sizes); - constexpr size_t N = 512; - - byte data[N] = {byte(0)}; - - bool ok = list.add_chunk(span(data, N)); - EXPECT_TRUE(ok); - - auto item = list.find_chunk(N); - EXPECT_EQ(item.size(), N); - EXPECT_EQ(item.data(), data); -} - -TEST(LlvmLibcFreeList, CanRetrieveAddedMemberForSmallerSize) { - FreeList list(example_sizes); - constexpr size_t N = 512; - - byte data[N] = {byte(0)}; - - ASSERT_TRUE(list.add_chunk(span(data, N))); - auto item = list.find_chunk(N / 2); - EXPECT_EQ(item.size(), N); - EXPECT_EQ(item.data(), data); -} - -TEST(LlvmLibcFreeList, CanRemoveItem) { - FreeList list(example_sizes); - constexpr size_t N = 512; - - byte data[N] = {byte(0)}; - - ASSERT_TRUE(list.add_chunk(span(data, N))); - EXPECT_TRUE(list.remove_chunk(span(data, N))); - - auto item = list.find_chunk(N); - EXPECT_EQ(item.size(), static_cast(0)); -} - -TEST(LlvmLibcFreeList, FindReturnsSmallestChunk) { - FreeList list(example_sizes); - constexpr size_t kN1 = 512; - constexpr size_t kN2 = 1024; - - byte data1[kN1] = {byte(0)}; - byte data2[kN2] = {byte(0)}; - - ASSERT_TRUE(list.add_chunk(span(data1, kN1))); - ASSERT_TRUE(list.add_chunk(span(data2, kN2))); - - auto chunk = list.find_chunk(kN1 / 2); - EXPECT_EQ(chunk.size(), kN1); - EXPECT_EQ(chunk.data(), data1); - - chunk = list.find_chunk(kN1); - EXPECT_EQ(chunk.size(), kN1); - EXPECT_EQ(chunk.data(), data1); - - chunk = list.find_chunk(kN1 + 1); - EXPECT_EQ(chunk.size(), kN2); - EXPECT_EQ(chunk.data(), data2); -} - -TEST(LlvmLibcFreeList, FindReturnsCorrectChunkInSameBucket) { - // If we have two values in the same bucket, ensure that the allocation will - // pick an appropriately sized one. - FreeList list(example_sizes); - constexpr size_t kN1 = 512; - constexpr size_t kN2 = 257; - - byte data1[kN1] = {byte(0)}; - byte data2[kN2] = {byte(0)}; - - // List should now be 257 -> 512 -> NULL - ASSERT_TRUE(list.add_chunk(span(data1, kN1))); - ASSERT_TRUE(list.add_chunk(span(data2, kN2))); - - auto chunk = list.find_chunk(kN2 + 1); - EXPECT_EQ(chunk.size(), kN1); -} - -TEST(LlvmLibcFreeList, FindCanMoveUpThroughBuckets) { - // Ensure that finding a chunk will move up through buckets if no appropriate - // chunks were found in a given bucket - FreeList list(example_sizes); - constexpr size_t kN1 = 257; - constexpr size_t kN2 = 513; - - byte data1[kN1] = {byte(0)}; - byte data2[kN2] = {byte(0)}; - - // List should now be: - // bkt[3] (257 bytes up to 512 bytes) -> 257 -> NULL - // bkt[4] (513 bytes up to 1024 bytes) -> 513 -> NULL - ASSERT_TRUE(list.add_chunk(span(data1, kN1))); - ASSERT_TRUE(list.add_chunk(span(data2, kN2))); - - // Request a 300 byte chunk. This should return the 513 byte one - auto chunk = list.find_chunk(kN1 + 1); - EXPECT_EQ(chunk.size(), kN2); -} - -TEST(LlvmLibcFreeList, RemoveUnknownChunkReturnsNotFound) { - FreeList list(example_sizes); - constexpr size_t N = 512; - - byte data[N] = {byte(0)}; - byte data2[N] = {byte(0)}; - - ASSERT_TRUE(list.add_chunk(span(data, N))); - EXPECT_FALSE(list.remove_chunk(span(data2, N))); -} - -TEST(LlvmLibcFreeList, CanStoreMultipleChunksPerBucket) { - FreeList list(example_sizes); - constexpr size_t N = 512; - - byte data1[N] = {byte(0)}; - byte data2[N] = {byte(0)}; - - ASSERT_TRUE(list.add_chunk(span(data1, N))); - ASSERT_TRUE(list.add_chunk(span(data2, N))); - - auto chunk1 = list.find_chunk(N); - ASSERT_TRUE(list.remove_chunk(chunk1)); - auto chunk2 = list.find_chunk(N); - ASSERT_TRUE(list.remove_chunk(chunk2)); - - // Ordering of the chunks doesn't matter - EXPECT_TRUE(chunk1.data() != chunk2.data()); - EXPECT_TRUE(chunk1.data() == data1 || chunk1.data() == data2); - EXPECT_TRUE(chunk2.data() == data1 || chunk2.data() == data2); +using LIBC_NAMESPACE::cpp::optional; + +TEST(LlvmLibcFreeList, FreeList) { + byte mem[1024]; + optional maybeBlock = Block::init(mem); + ASSERT_TRUE(maybeBlock.has_value()); + Block *block1 = *maybeBlock; + + maybeBlock = block1->split(128); + ASSERT_TRUE(maybeBlock.has_value()); + Block *block2 = *maybeBlock; + + maybeBlock = block2->split(128); + ASSERT_TRUE(maybeBlock.has_value()); + + FreeList list; + list.push(block1); + ASSERT_FALSE(list.empty()); + EXPECT_EQ(list.front(), block1); + + list.push(block2); + EXPECT_EQ(list.front(), block1); + + list.pop(); + ASSERT_FALSE(list.empty()); + EXPECT_EQ(list.front(), block2); + + list.pop(); + ASSERT_TRUE(list.empty()); + + list.push(block1); + list.push(block2); + list.remove(reinterpret_cast(block2->usable_space())); + EXPECT_EQ(list.front(), block1); + list.pop(); + ASSERT_TRUE(list.empty()); } diff --git a/libc/test/src/__support/freestore_test.cpp b/libc/test/src/__support/freestore_test.cpp new file mode 100644 index 0000000000000..7960d32c8bbf0 --- /dev/null +++ b/libc/test/src/__support/freestore_test.cpp @@ -0,0 +1,105 @@ +//===-- Unittests for a freestore -------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include + +#include "src/__support/freestore.h" +#include "test/UnitTest/Test.h" + +using LIBC_NAMESPACE::Block; +using LIBC_NAMESPACE::FreeList; +using LIBC_NAMESPACE::FreeStore; +using LIBC_NAMESPACE::FreeTrie; +using LIBC_NAMESPACE::cpp::byte; +using LIBC_NAMESPACE::cpp::optional; + +// Inserting or removing blocks too small to be tracked does nothing. +TEST(LlvmLibcFreeStore, TooSmall) { + byte mem[1024]; + optional maybeBlock = Block::init(mem); + ASSERT_TRUE(maybeBlock.has_value()); + Block *too_small = *maybeBlock; + maybeBlock = too_small->split(sizeof(size_t)); + ASSERT_TRUE(maybeBlock.has_value()); + Block *remainder = *maybeBlock; + + FreeStore store; + store.set_range({0, 4096}); + store.insert(too_small); + store.insert(remainder); + + EXPECT_EQ(store.remove_best_fit(too_small->inner_size()), remainder); + store.remove(too_small); +} + +TEST(LlvmLibcFreeStore, RemoveBestFit) { + byte mem[1024]; + optional maybeBlock = Block::init(mem); + ASSERT_TRUE(maybeBlock.has_value()); + + Block *smallest = *maybeBlock; + maybeBlock = smallest->split(sizeof(FreeList::Node) + sizeof(size_t)); + ASSERT_TRUE(maybeBlock.has_value()); + + Block *largest_small = *maybeBlock; + maybeBlock = largest_small->split(sizeof(FreeTrie::Node) + sizeof(size_t) - + alignof(max_align_t)); + ASSERT_TRUE(maybeBlock.has_value()); + if (largest_small->inner_size() == smallest->inner_size()) + largest_small = smallest; + ASSERT_GE(largest_small->inner_size(), smallest->inner_size()); + + Block *remainder = *maybeBlock; + + FreeStore store; + store.set_range({0, 4096}); + store.insert(smallest); + if (largest_small != smallest) + store.insert(largest_small); + store.insert(remainder); + + // Find exact match for smallest. + ASSERT_EQ(store.remove_best_fit(smallest->inner_size()), smallest); + store.insert(smallest); + + // Find exact match for largest. + ASSERT_EQ(store.remove_best_fit(largest_small->inner_size()), largest_small); + store.insert(largest_small); + + // Search small list for best fit. + Block *next_smallest = largest_small == smallest ? remainder : largest_small; + ASSERT_EQ(store.remove_best_fit(smallest->inner_size() + 1), next_smallest); + store.insert(next_smallest); + + // Continue search for best fit to large blocks. + EXPECT_EQ(store.remove_best_fit(largest_small->inner_size() + 1), remainder); +} + +TEST(LlvmLibcFreeStore, Remove) { + byte mem[1024]; + optional maybeBlock = Block::init(mem); + ASSERT_TRUE(maybeBlock.has_value()); + + Block *small = *maybeBlock; + maybeBlock = small->split(sizeof(FreeList::Node) + sizeof(size_t)); + ASSERT_TRUE(maybeBlock.has_value()); + + Block *remainder = *maybeBlock; + + FreeStore store; + store.set_range({0, 4096}); + store.insert(small); + store.insert(remainder); + + store.remove(remainder); + ASSERT_EQ(store.remove_best_fit(remainder->inner_size()), + static_cast(nullptr)); + store.remove(small); + ASSERT_EQ(store.remove_best_fit(small->inner_size()), + static_cast(nullptr)); +} diff --git a/libc/test/src/__support/freetrie_test.cpp b/libc/test/src/__support/freetrie_test.cpp new file mode 100644 index 0000000000000..5663a01687294 --- /dev/null +++ b/libc/test/src/__support/freetrie_test.cpp @@ -0,0 +1,125 @@ +//===-- Unittests for a freetrie --------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include + +#include "src/__support/freetrie.h" +#include "test/UnitTest/Test.h" + +using LIBC_NAMESPACE::Block; +using LIBC_NAMESPACE::FreeTrie; +using LIBC_NAMESPACE::cpp::byte; +using LIBC_NAMESPACE::cpp::optional; + +TEST(LlvmLibcFreeTrie, FindBestFitRoot) { + FreeTrie trie({0, 4096}); + EXPECT_EQ(trie.find_best_fit(123), static_cast(nullptr)); + + byte mem[1024]; + optional maybeBlock = Block::init(mem); + ASSERT_TRUE(maybeBlock.has_value()); + Block *block = *maybeBlock; + trie.push(block); + + FreeTrie::Node *root = trie.find_best_fit(0); + ASSERT_EQ(root->block(), block); + EXPECT_EQ(trie.find_best_fit(block->inner_size() - 1), root); + EXPECT_EQ(trie.find_best_fit(block->inner_size()), root); + EXPECT_EQ(trie.find_best_fit(block->inner_size() + 1), + static_cast(nullptr)); + EXPECT_EQ(trie.find_best_fit(4095), static_cast(nullptr)); +} + +TEST(LlvmLibcFreeTrie, FindBestFitLower) { + byte mem[4096]; + optional maybeBlock = Block::init(mem); + ASSERT_TRUE(maybeBlock.has_value()); + Block *lower = *maybeBlock; + maybeBlock = lower->split(512); + ASSERT_TRUE(maybeBlock.has_value()); + Block *root = *maybeBlock; + + FreeTrie trie({0, 4096}); + trie.push(root); + trie.push(lower); + + EXPECT_EQ(trie.find_best_fit(0)->block(), lower); +} + +TEST(LlvmLibcFreeTrie, FindBestFitUpper) { + byte mem[4096]; + optional maybeBlock = Block::init(mem); + ASSERT_TRUE(maybeBlock.has_value()); + Block *root = *maybeBlock; + maybeBlock = root->split(512); + ASSERT_TRUE(maybeBlock.has_value()); + Block *upper = *maybeBlock; + + FreeTrie trie({0, 4096}); + trie.push(root); + trie.push(upper); + + EXPECT_EQ(trie.find_best_fit(root->inner_size() + 1)->block(), upper); + // The upper subtrie should be skipped if it could not contain a better fit. + EXPECT_EQ(trie.find_best_fit(root->inner_size() - 1)->block(), root); +} + +TEST(LlvmLibcFreeTrie, FindBestFitLowerAndUpper) { + byte mem[4096]; + optional maybeBlock = Block::init(mem); + ASSERT_TRUE(maybeBlock.has_value()); + Block *root = *maybeBlock; + maybeBlock = root->split(1024); + ASSERT_TRUE(maybeBlock.has_value()); + Block *lower = *maybeBlock; + maybeBlock = lower->split(128); + ASSERT_TRUE(maybeBlock.has_value()); + Block *upper = *maybeBlock; + + FreeTrie trie({0, 4096}); + trie.push(root); + trie.push(lower); + trie.push(upper); + + // The lower subtrie is examined first. + EXPECT_EQ(trie.find_best_fit(0)->block(), lower); + // The upper subtrie is examined if there are no fits found in the upper + // subtrie. + EXPECT_EQ(trie.find_best_fit(2048)->block(), upper); +} + +TEST(LlvmLibcFreeTrie, Remove) { + byte mem[4096]; + optional maybeBlock = Block::init(mem); + ASSERT_TRUE(maybeBlock.has_value()); + Block *small1 = *maybeBlock; + maybeBlock = small1->split(512); + ASSERT_TRUE(maybeBlock.has_value()); + Block *small2 = *maybeBlock; + maybeBlock = small2->split(512); + ASSERT_TRUE(maybeBlock.has_value()); + ASSERT_EQ(small1->inner_size(), small2->inner_size()); + Block *large = *maybeBlock; + + // Removing the root empties the trie. + FreeTrie trie({0, 4096}); + trie.push(large); + FreeTrie::Node *large_node = trie.find_best_fit(0); + ASSERT_EQ(large_node->block(), large); + trie.remove(large_node); + ASSERT_TRUE(trie.empty()); + + // Removing the head of a trie list preserves the trie structure. + trie.push(small1); + trie.push(small2); + trie.push(large); + trie.remove(trie.find_best_fit(small1->inner_size())); + EXPECT_EQ(trie.find_best_fit(large->inner_size())->block(), large); + trie.remove(trie.find_best_fit(small1->inner_size())); + EXPECT_EQ(trie.find_best_fit(large->inner_size())->block(), large); +} diff --git a/libc/utils/gpu/loader/Loader.h b/libc/utils/gpu/loader/Loader.h index 8be8c0d5f8553..497f8114728bf 100644 --- a/libc/utils/gpu/loader/Loader.h +++ b/libc/utils/gpu/loader/Loader.h @@ -11,9 +11,11 @@ #include "utils/gpu/server/llvmlibc_rpc_server.h" -#include "include/llvm-libc-types/rpc_opcodes_t.h" #include "include/llvm-libc-types/test_rpc_opcodes_t.h" +#include "shared/rpc.h" +#include "shared/rpc_opcodes.h" + #include #include #include @@ -103,129 +105,95 @@ inline void handle_error_impl(const char *file, int32_t line, const char *msg) { fprintf(stderr, "%s:%d:0: Error: %s\n", file, line, msg); exit(EXIT_FAILURE); } - -inline void handle_error_impl(const char *file, int32_t line, - rpc_status_t err) { - fprintf(stderr, "%s:%d:0: Error: %d\n", file, line, err); - exit(EXIT_FAILURE); -} #define handle_error(X) handle_error_impl(__FILE__, __LINE__, X) -template -inline void register_rpc_callbacks(rpc_device_t device) { - static_assert(lane_size == 32 || lane_size == 64, "Invalid Lane size"); - // Register the ping test for the `libc` tests. - rpc_register_callback( - device, static_cast(RPC_TEST_INCREMENT), - [](rpc_port_t port, void *data) { - rpc_recv_and_send( - port, - [](rpc_buffer_t *buffer, void *data) { - reinterpret_cast(buffer->data)[0] += 1; - }, - data); - }, - nullptr); - - // Register the interface test callbacks. - rpc_register_callback( - device, static_cast(RPC_TEST_INTERFACE), - [](rpc_port_t port, void *data) { - uint64_t cnt = 0; - bool end_with_recv; - rpc_recv( - port, - [](rpc_buffer_t *buffer, void *data) { - *reinterpret_cast(data) = buffer->data[0]; - }, - &end_with_recv); - rpc_recv( - port, - [](rpc_buffer_t *buffer, void *data) { - *reinterpret_cast(data) = buffer->data[0]; - }, - &cnt); - rpc_send( - port, - [](rpc_buffer_t *buffer, void *data) { - uint64_t &cnt = *reinterpret_cast(data); - buffer->data[0] = cnt = cnt + 1; - }, - &cnt); - rpc_recv( - port, - [](rpc_buffer_t *buffer, void *data) { - *reinterpret_cast(data) = buffer->data[0]; - }, - &cnt); - rpc_send( - port, - [](rpc_buffer_t *buffer, void *data) { - uint64_t &cnt = *reinterpret_cast(data); - buffer->data[0] = cnt = cnt + 1; - }, - &cnt); - rpc_recv( - port, - [](rpc_buffer_t *buffer, void *data) { - *reinterpret_cast(data) = buffer->data[0]; - }, - &cnt); - rpc_recv( - port, - [](rpc_buffer_t *buffer, void *data) { - *reinterpret_cast(data) = buffer->data[0]; - }, - &cnt); - rpc_send( - port, - [](rpc_buffer_t *buffer, void *data) { - uint64_t &cnt = *reinterpret_cast(data); - buffer->data[0] = cnt = cnt + 1; - }, - &cnt); - rpc_send( - port, - [](rpc_buffer_t *buffer, void *data) { - uint64_t &cnt = *reinterpret_cast(data); - buffer->data[0] = cnt = cnt + 1; - }, - &cnt); - if (end_with_recv) - rpc_recv( - port, - [](rpc_buffer_t *buffer, void *data) { - *reinterpret_cast(data) = buffer->data[0]; - }, - &cnt); - else - rpc_send( - port, - [](rpc_buffer_t *buffer, void *data) { - uint64_t &cnt = *reinterpret_cast(data); - buffer->data[0] = cnt = cnt + 1; - }, - &cnt); - }, - nullptr); - - // Register the stream test handler. - rpc_register_callback( - device, static_cast(RPC_TEST_STREAM), - [](rpc_port_t port, void *data) { - uint64_t sizes[lane_size] = {0}; - void *dst[lane_size] = {nullptr}; - rpc_recv_n( - port, dst, sizes, - [](uint64_t size, void *) -> void * { return new char[size]; }, - nullptr); - rpc_send_n(port, dst, sizes); - for (uint64_t i = 0; i < lane_size; ++i) { - if (dst[i]) - delete[] reinterpret_cast(dst[i]); - } - }, - nullptr); +template +inline uint32_t handle_server(rpc::Server &server, uint32_t index, + Alloc &&alloc, Free &&free) { + auto port = server.try_open(num_lanes, index); + if (!port) + return 0; + index = port->get_index() + 1; + + int status = rpc::SUCCESS; + switch (port->get_opcode()) { + case RPC_TEST_INCREMENT: { + port->recv_and_send([](rpc::Buffer *buffer, uint32_t) { + reinterpret_cast(buffer->data)[0] += 1; + }); + break; + } + case RPC_TEST_INTERFACE: { + bool end_with_recv; + uint64_t cnt; + port->recv([&](rpc::Buffer *buffer, uint32_t) { + end_with_recv = buffer->data[0]; + }); + port->recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); + port->send([&](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = cnt = cnt + 1; + }); + port->recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); + port->send([&](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = cnt = cnt + 1; + }); + port->recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); + port->recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); + port->send([&](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = cnt = cnt + 1; + }); + port->send([&](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = cnt = cnt + 1; + }); + if (end_with_recv) + port->recv([&](rpc::Buffer *buffer, uint32_t) { cnt = buffer->data[0]; }); + else + port->send([&](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = cnt = cnt + 1; + }); + + break; + } + case RPC_TEST_STREAM: { + uint64_t sizes[num_lanes] = {0}; + void *dst[num_lanes] = {nullptr}; + port->recv_n(dst, sizes, + [](uint64_t size) -> void * { return new char[size]; }); + port->send_n(dst, sizes); + for (uint64_t i = 0; i < num_lanes; ++i) { + if (dst[i]) + delete[] reinterpret_cast(dst[i]); + } + break; + } + case RPC_TEST_NOOP: { + port->recv([&](rpc::Buffer *, uint32_t) {}); + break; + } + case RPC_MALLOC: { + port->recv_and_send([&](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = reinterpret_cast(alloc(buffer->data[0])); + }); + break; + } + case RPC_FREE: { + port->recv([&](rpc::Buffer *buffer, uint32_t) { + free(reinterpret_cast(buffer->data[0])); + }); + break; + } + default: + status = libc_handle_rpc_port(&*port, num_lanes); + break; + } + + // Handle all of the `libc` specific opcodes. + if (status != rpc::SUCCESS) + handle_error("Error handling RPC server"); + + port->close(); + + return index; } #endif diff --git a/libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp b/libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp index cb81a866622f9..13a1366833547 100644 --- a/libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp +++ b/libc/utils/gpu/loader/amdgpu/amdhsa-loader.cpp @@ -160,7 +160,7 @@ template hsa_status_t launch_kernel(hsa_agent_t dev_agent, hsa_executable_t executable, hsa_amd_memory_pool_t kernargs_pool, hsa_amd_memory_pool_t coarsegrained_pool, - hsa_queue_t *queue, rpc_device_t device, + hsa_queue_t *queue, rpc::Server &server, const LaunchParameters ¶ms, const char *kernel_name, args_t kernel_args, bool print_resource_usage) { @@ -170,37 +170,10 @@ hsa_status_t launch_kernel(hsa_agent_t dev_agent, hsa_executable_t executable, executable, kernel_name, &dev_agent, &symbol)) return err; - // Register RPC callbacks for the malloc and free functions on HSA. - auto tuple = std::make_tuple(dev_agent, coarsegrained_pool); - rpc_register_callback( - device, RPC_MALLOC, - [](rpc_port_t port, void *data) { - auto malloc_handler = [](rpc_buffer_t *buffer, void *data) -> void { - auto &[dev_agent, pool] = *static_cast(data); - uint64_t size = buffer->data[0]; - void *dev_ptr = nullptr; - if (hsa_status_t err = - hsa_amd_memory_pool_allocate(pool, size, - /*flags=*/0, &dev_ptr)) - dev_ptr = nullptr; - hsa_amd_agents_allow_access(1, &dev_agent, nullptr, dev_ptr); - buffer->data[0] = reinterpret_cast(dev_ptr); - }; - rpc_recv_and_send(port, malloc_handler, data); - }, - &tuple); - rpc_register_callback( - device, RPC_FREE, - [](rpc_port_t port, void *data) { - auto free_handler = [](rpc_buffer_t *buffer, void *) { - if (hsa_status_t err = hsa_amd_memory_pool_free( - reinterpret_cast(buffer->data[0]))) - handle_error(err); - }; - rpc_recv_and_send(port, free_handler, data); - }, - nullptr); - + uint32_t wavefront_size = 0; + if (hsa_status_t err = hsa_agent_get_info( + dev_agent, HSA_AGENT_INFO_WAVEFRONT_SIZE, &wavefront_size)) + handle_error(err); // Retrieve different properties of the kernel symbol used for launch. uint64_t kernel; uint32_t args_size; @@ -292,14 +265,38 @@ hsa_status_t launch_kernel(hsa_agent_t dev_agent, hsa_executable_t executable, hsa_signal_store_relaxed(queue->doorbell_signal, packet_id); std::atomic finished = false; - std::thread server( - [](std::atomic *finished, rpc_device_t device) { - while (!*finished) { - if (rpc_status_t err = rpc_handle_server(device)) + std::thread server_thread( + [](std::atomic *finished, rpc::Server *server, + uint32_t wavefront_size, hsa_agent_t dev_agent, + hsa_amd_memory_pool_t coarsegrained_pool) { + // Register RPC callbacks for the malloc and free functions on HSA. + auto malloc_handler = [&](size_t size) -> void * { + void *dev_ptr = nullptr; + if (hsa_status_t err = + hsa_amd_memory_pool_allocate(coarsegrained_pool, size, + /*flags=*/0, &dev_ptr)) + dev_ptr = nullptr; + hsa_amd_agents_allow_access(1, &dev_agent, nullptr, dev_ptr); + return dev_ptr; + }; + + auto free_handler = [](void *ptr) -> void { + if (hsa_status_t err = + hsa_amd_memory_pool_free(reinterpret_cast(ptr))) handle_error(err); + }; + + uint32_t index = 0; + while (!*finished) { + if (wavefront_size == 32) + index = + handle_server<32>(*server, index, malloc_handler, free_handler); + else + index = + handle_server<64>(*server, index, malloc_handler, free_handler); } }, - &finished, device); + &finished, &server, wavefront_size, dev_agent, coarsegrained_pool); // Wait until the kernel has completed execution on the device. Periodically // check the RPC client for work to be performed on the server. @@ -309,8 +306,8 @@ hsa_status_t launch_kernel(hsa_agent_t dev_agent, hsa_executable_t executable, ; finished = true; - if (server.joinable()) - server.join(); + if (server_thread.joinable()) + server_thread.join(); // Destroy the resources acquired to launch the kernel and return. if (hsa_status_t err = hsa_amd_memory_pool_free(args)) @@ -371,8 +368,9 @@ int load(int argc, const char **argv, const char **envp, void *image, handle_error(err); // Load the code object's ISA information and executable data segments. - hsa_code_object_t object; - if (hsa_status_t err = hsa_code_object_deserialize(image, size, "", &object)) + hsa_code_object_reader_t reader; + if (hsa_status_t err = + hsa_code_object_reader_create_from_memory(image, size, &reader)) handle_error(err); hsa_executable_t executable; @@ -381,8 +379,9 @@ int load(int argc, const char **argv, const char **envp, void *image, &executable)) handle_error(err); - if (hsa_status_t err = - hsa_executable_load_code_object(executable, dev_agent, object, "")) + hsa_loaded_code_object_t object; + if (hsa_status_t err = hsa_executable_load_agent_code_object( + executable, dev_agent, reader, "", &object)) handle_error(err); // No modifications to the executable are allowed after this point. @@ -397,6 +396,9 @@ int load(int argc, const char **argv, const char **envp, void *image, if (result) handle_error(HSA_STATUS_ERROR); + if (hsa_status_t err = hsa_code_object_reader_destroy(reader)) + handle_error(err); + // Obtain memory pools to exchange data between the host and the device. The // fine-grained pool acts as pinned memory on the host for DMA transfers to // the device, the coarse-grained pool is for allocations directly on the @@ -452,34 +454,22 @@ int load(int argc, const char **argv, const char **envp, void *image, handle_error(err); // Set up the RPC server. - auto tuple = std::make_tuple(dev_agent, finegrained_pool); - auto rpc_alloc = [](uint64_t size, void *data) { - auto &[dev_agent, finegrained_pool] = *static_cast(data); - void *dev_ptr = nullptr; - if (hsa_status_t err = hsa_amd_memory_pool_allocate(finegrained_pool, size, - /*flags=*/0, &dev_ptr)) - handle_error(err); - hsa_amd_agents_allow_access(1, &dev_agent, nullptr, dev_ptr); - return dev_ptr; - }; - rpc_device_t device; - if (rpc_status_t err = rpc_server_init(&device, RPC_MAXIMUM_PORT_COUNT, - wavefront_size, rpc_alloc, &tuple)) + void *rpc_buffer; + if (hsa_status_t err = hsa_amd_memory_pool_allocate( + finegrained_pool, + rpc::Server::allocation_size(wavefront_size, rpc::MAX_PORT_COUNT), + /*flags=*/0, &rpc_buffer)) handle_error(err); + hsa_amd_agents_allow_access(1, &dev_agent, nullptr, rpc_buffer); - // Register callbacks for the RPC unit tests. - if (wavefront_size == 32) - register_rpc_callbacks<32>(device); - else if (wavefront_size == 64) - register_rpc_callbacks<64>(device); - else - handle_error("Invalid wavefront size"); + rpc::Server server(rpc::MAX_PORT_COUNT, rpc_buffer); + rpc::Client client(rpc::MAX_PORT_COUNT, rpc_buffer); // Initialize the RPC client on the device by copying the local data to the // device's internal pointer. hsa_executable_symbol_t rpc_client_sym; if (hsa_status_t err = hsa_executable_get_symbol_by_name( - executable, rpc_client_symbol_name, &dev_agent, &rpc_client_sym)) + executable, "__llvm_libc_rpc_client", &dev_agent, &rpc_client_sym)) handle_error(err); void *rpc_client_host; @@ -502,19 +492,17 @@ int load(int argc, const char **argv, const char **envp, void *image, void *rpc_client_buffer; if (hsa_status_t err = - hsa_amd_memory_lock(const_cast(rpc_get_client_buffer(device)), - rpc_get_client_size(), + hsa_amd_memory_lock(&client, sizeof(rpc::Client), /*agents=*/nullptr, 0, &rpc_client_buffer)) handle_error(err); // Copy the RPC client buffer to the address pointed to by the symbol. if (hsa_status_t err = hsa_memcpy(*reinterpret_cast(rpc_client_host), dev_agent, - rpc_client_buffer, host_agent, rpc_get_client_size())) + rpc_client_buffer, host_agent, sizeof(rpc::Client))) handle_error(err); - if (hsa_status_t err = hsa_amd_memory_unlock( - const_cast(rpc_get_client_buffer(device)))) + if (hsa_status_t err = hsa_amd_memory_unlock(&client)) handle_error(err); if (hsa_status_t err = hsa_amd_memory_pool_free(rpc_client_host)) handle_error(err); @@ -566,7 +554,7 @@ int load(int argc, const char **argv, const char **envp, void *image, LaunchParameters single_threaded_params = {1, 1, 1, 1, 1, 1}; begin_args_t init_args = {argc, dev_argv, dev_envp}; if (hsa_status_t err = launch_kernel(dev_agent, executable, kernargs_pool, - coarsegrained_pool, queue, device, + coarsegrained_pool, queue, server, single_threaded_params, "_begin.kd", init_args, print_resource_usage)) handle_error(err); @@ -574,7 +562,7 @@ int load(int argc, const char **argv, const char **envp, void *image, start_args_t args = {argc, dev_argv, dev_envp, dev_ret}; if (hsa_status_t err = launch_kernel( dev_agent, executable, kernargs_pool, coarsegrained_pool, queue, - device, params, "_start.kd", args, print_resource_usage)) + server, params, "_start.kd", args, print_resource_usage)) handle_error(err); void *host_ret; @@ -593,14 +581,12 @@ int load(int argc, const char **argv, const char **envp, void *image, end_args_t fini_args = {ret}; if (hsa_status_t err = launch_kernel(dev_agent, executable, kernargs_pool, - coarsegrained_pool, queue, device, + coarsegrained_pool, queue, server, single_threaded_params, "_end.kd", fini_args, print_resource_usage)) handle_error(err); - if (rpc_status_t err = rpc_server_shutdown( - device, [](void *ptr, void *) { hsa_amd_memory_pool_free(ptr); }, - nullptr)) + if (hsa_status_t err = hsa_amd_memory_pool_free(rpc_buffer)) handle_error(err); // Free the memory allocated for the device. @@ -617,9 +603,6 @@ int load(int argc, const char **argv, const char **envp, void *image, if (hsa_status_t err = hsa_executable_destroy(executable)) handle_error(err); - if (hsa_status_t err = hsa_code_object_destroy(object)) - handle_error(err); - if (hsa_status_t err = hsa_shut_down()) handle_error(err); diff --git a/libc/utils/gpu/loader/nvptx/nvptx-loader.cpp b/libc/utils/gpu/loader/nvptx/nvptx-loader.cpp index 58e5e5f04d0a7..0ba217451feae 100644 --- a/libc/utils/gpu/loader/nvptx/nvptx-loader.cpp +++ b/libc/utils/gpu/loader/nvptx/nvptx-loader.cpp @@ -167,10 +167,9 @@ void print_kernel_resources(CUmodule binary, const char *kernel_name) { } template -CUresult launch_kernel(CUmodule binary, CUstream stream, - rpc_device_t rpc_device, const LaunchParameters ¶ms, - const char *kernel_name, args_t kernel_args, - bool print_resource_usage) { +CUresult launch_kernel(CUmodule binary, CUstream stream, rpc::Server &server, + const LaunchParameters ¶ms, const char *kernel_name, + args_t kernel_args, bool print_resource_usage) { // look up the '_start' kernel in the loaded module. CUfunction function; if (CUresult err = cuModuleGetFunction(&function, binary, kernel_name)) @@ -181,23 +180,21 @@ CUresult launch_kernel(CUmodule binary, CUstream stream, void *args_config[] = {CU_LAUNCH_PARAM_BUFFER_POINTER, &kernel_args, CU_LAUNCH_PARAM_BUFFER_SIZE, &args_size, CU_LAUNCH_PARAM_END}; + if (print_resource_usage) + print_kernel_resources(binary, kernel_name); - // Initialize a non-blocking CUDA stream to allocate memory if needed. This - // needs to be done on a separate stream or else it will deadlock with the - // executing kernel. + // Initialize a non-blocking CUDA stream to allocate memory if needed. + // This needs to be done on a separate stream or else it will deadlock + // with the executing kernel. CUstream memory_stream; if (CUresult err = cuStreamCreate(&memory_stream, CU_STREAM_NON_BLOCKING)) handle_error(err); - // Register RPC callbacks for the malloc and free functions on HSA. - register_rpc_callbacks<32>(rpc_device); - - rpc_register_callback( - rpc_device, RPC_MALLOC, - [](rpc_port_t port, void *data) { - auto malloc_handler = [](rpc_buffer_t *buffer, void *data) -> void { - CUstream memory_stream = *static_cast(data); - uint64_t size = buffer->data[0]; + std::atomic finished = false; + std::thread server_thread( + [](std::atomic *finished, rpc::Server *server, + CUstream memory_stream) { + auto malloc_handler = [&](size_t size) -> void * { CUdeviceptr dev_ptr; if (CUresult err = cuMemAllocAsync(&dev_ptr, size, memory_stream)) dev_ptr = 0UL; @@ -205,36 +202,22 @@ CUresult launch_kernel(CUmodule binary, CUstream stream, // Wait until the memory allocation is complete. while (cuStreamQuery(memory_stream) == CUDA_ERROR_NOT_READY) ; - buffer->data[0] = static_cast(dev_ptr); + return reinterpret_cast(dev_ptr); }; - rpc_recv_and_send(port, malloc_handler, data); - }, - &memory_stream); - rpc_register_callback( - rpc_device, RPC_FREE, - [](rpc_port_t port, void *data) { - auto free_handler = [](rpc_buffer_t *buffer, void *data) { - CUstream memory_stream = *static_cast(data); - if (CUresult err = cuMemFreeAsync( - static_cast(buffer->data[0]), memory_stream)) + + auto free_handler = [&](void *ptr) -> void { + if (CUresult err = cuMemFreeAsync(reinterpret_cast(ptr), + memory_stream)) handle_error(err); }; - rpc_recv_and_send(port, free_handler, data); - }, - &memory_stream); - if (print_resource_usage) - print_kernel_resources(binary, kernel_name); - - std::atomic finished = false; - std::thread server( - [](std::atomic *finished, rpc_device_t device) { + uint32_t index = 0; while (!*finished) { - if (rpc_status_t err = rpc_handle_server(device)) - handle_error(err); + index = + handle_server<32>(*server, index, malloc_handler, free_handler); } }, - &finished, rpc_device); + &finished, &server, memory_stream); // Call the kernel with the given arguments. if (CUresult err = cuLaunchKernel( @@ -247,8 +230,8 @@ CUresult launch_kernel(CUmodule binary, CUstream stream, handle_error(err); finished = true; - if (server.joinable()) - server.join(); + if (server_thread.joinable()) + server_thread.join(); return CUDA_SUCCESS; } @@ -318,23 +301,20 @@ int load(int argc, const char **argv, const char **envp, void *image, handle_error(err); uint32_t warp_size = 32; - auto rpc_alloc = [](uint64_t size, void *) -> void * { - void *dev_ptr; - if (CUresult err = cuMemAllocHost(&dev_ptr, size)) - handle_error(err); - return dev_ptr; - }; - rpc_device_t rpc_device; - if (rpc_status_t err = rpc_server_init(&rpc_device, RPC_MAXIMUM_PORT_COUNT, - warp_size, rpc_alloc, nullptr)) + void *rpc_buffer = nullptr; + if (CUresult err = cuMemAllocHost( + &rpc_buffer, + rpc::Server::allocation_size(warp_size, rpc::MAX_PORT_COUNT))) handle_error(err); + rpc::Server server(rpc::MAX_PORT_COUNT, rpc_buffer); + rpc::Client client(rpc::MAX_PORT_COUNT, rpc_buffer); // Initialize the RPC client on the device by copying the local data to the // device's internal pointer. CUdeviceptr rpc_client_dev = 0; uint64_t client_ptr_size = sizeof(void *); if (CUresult err = cuModuleGetGlobal(&rpc_client_dev, &client_ptr_size, - binary, rpc_client_symbol_name)) + binary, "__llvm_libc_rpc_client")) handle_error(err); CUdeviceptr rpc_client_host = 0; @@ -342,20 +322,19 @@ int load(int argc, const char **argv, const char **envp, void *image, cuMemcpyDtoH(&rpc_client_host, rpc_client_dev, sizeof(void *))) handle_error(err); if (CUresult err = - cuMemcpyHtoD(rpc_client_host, rpc_get_client_buffer(rpc_device), - rpc_get_client_size())) + cuMemcpyHtoD(rpc_client_host, &client, sizeof(rpc::Client))) handle_error(err); LaunchParameters single_threaded_params = {1, 1, 1, 1, 1, 1}; begin_args_t init_args = {argc, dev_argv, dev_envp}; if (CUresult err = - launch_kernel(binary, stream, rpc_device, single_threaded_params, + launch_kernel(binary, stream, server, single_threaded_params, "_begin", init_args, print_resource_usage)) handle_error(err); start_args_t args = {argc, dev_argv, dev_envp, reinterpret_cast(dev_ret)}; - if (CUresult err = launch_kernel(binary, stream, rpc_device, params, "_start", + if (CUresult err = launch_kernel(binary, stream, server, params, "_start", args, print_resource_usage)) handle_error(err); @@ -369,8 +348,8 @@ int load(int argc, const char **argv, const char **envp, void *image, end_args_t fini_args = {host_ret}; if (CUresult err = - launch_kernel(binary, stream, rpc_device, single_threaded_params, - "_end", fini_args, print_resource_usage)) + launch_kernel(binary, stream, server, single_threaded_params, "_end", + fini_args, print_resource_usage)) handle_error(err); // Free the memory allocated for the device. @@ -380,8 +359,7 @@ int load(int argc, const char **argv, const char **envp, void *image, handle_error(err); if (CUresult err = cuMemFreeHost(dev_argv)) handle_error(err); - if (rpc_status_t err = rpc_server_shutdown( - rpc_device, [](void *ptr, void *) { cuMemFreeHost(ptr); }, nullptr)) + if (CUresult err = cuMemFreeHost(rpc_buffer)) handle_error(err); // Destroy the context and the loaded binary. diff --git a/libc/utils/gpu/server/CMakeLists.txt b/libc/utils/gpu/server/CMakeLists.txt index 50056fb376b69..36a4c2a8b051e 100644 --- a/libc/utils/gpu/server/CMakeLists.txt +++ b/libc/utils/gpu/server/CMakeLists.txt @@ -26,10 +26,6 @@ target_compile_definitions(llvmlibc_rpc_server PUBLIC install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/llvmlibc_rpc_server.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT libc-headers) -install(FILES ${LIBC_SOURCE_DIR}/include/llvm-libc-types/rpc_opcodes_t.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - RENAME llvmlibc_rpc_opcodes.h - COMPONENT libc-headers) install(TARGETS llvmlibc_rpc_server ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT libc) diff --git a/libc/utils/gpu/server/llvmlibc_rpc_server.h b/libc/utils/gpu/server/llvmlibc_rpc_server.h index 98df882afa21c..b7f173734345c 100644 --- a/libc/utils/gpu/server/llvmlibc_rpc_server.h +++ b/libc/utils/gpu/server/llvmlibc_rpc_server.h @@ -15,99 +15,7 @@ extern "C" { #endif -/// The maximum number of ports that can be opened for any server. -const uint64_t RPC_MAXIMUM_PORT_COUNT = 4096; - -/// The symbol name associated with the client for use with the LLVM C library -/// implementation. -const char *const rpc_client_symbol_name = "__llvm_libc_rpc_client"; - -/// status codes. -typedef enum { - RPC_STATUS_SUCCESS = 0x0, - RPC_STATUS_CONTINUE = 0x1, - RPC_STATUS_ERROR = 0x1000, - RPC_STATUS_UNHANDLED_OPCODE = 0x1001, - RPC_STATUS_INVALID_LANE_SIZE = 0x1002, -} rpc_status_t; - -/// A struct containing an opaque handle to an RPC port. This is what allows the -/// server to communicate with the client. -typedef struct rpc_port_s { - uint64_t handle; - uint32_t lane_size; -} rpc_port_t; - -/// A fixed-size buffer containing the payload sent from the client. -typedef struct rpc_buffer_s { - uint64_t data[8]; -} rpc_buffer_t; - -/// An opaque handle to an RPC server that can be attached to a device. -typedef struct rpc_device_s { - uintptr_t handle; -} rpc_device_t; - -/// A function used to allocate \p bytes for use by the RPC server and client. -/// The memory should support asynchronous and atomic access from both the -/// client and server. -typedef void *(*rpc_alloc_ty)(uint64_t size, void *data); - -/// A function used to free the \p ptr previously allocated. -typedef void (*rpc_free_ty)(void *ptr, void *data); - -/// A callback function provided with a \p port to communicate with the RPC -/// client. This will be called by the server to handle an opcode. -typedef void (*rpc_opcode_callback_ty)(rpc_port_t port, void *data); - -/// A callback function to use the port to receive or send a \p buffer. -typedef void (*rpc_port_callback_ty)(rpc_buffer_t *buffer, void *data); - -/// Initialize the server for a given device and return it in \p device. -rpc_status_t rpc_server_init(rpc_device_t *rpc_device, uint64_t num_ports, - uint32_t lane_size, rpc_alloc_ty alloc, - void *data); - -/// Shut down the server for a given device. -rpc_status_t rpc_server_shutdown(rpc_device_t rpc_device, rpc_free_ty dealloc, - void *data); - -/// Queries the RPC clients at least once and performs server-side work if there -/// are any active requests. Runs until all work on the server is completed. -rpc_status_t rpc_handle_server(rpc_device_t rpc_device); - -/// Register a callback to handle an opcode from the RPC client. The associated -/// data must remain accessible as long as the user intends to handle the server -/// with this callback. -rpc_status_t rpc_register_callback(rpc_device_t rpc_device, uint32_t opcode, - rpc_opcode_callback_ty callback, void *data); - -/// Obtain a pointer to a local client buffer that can be copied directly to the -/// other process using the address stored at the rpc client symbol name. -const void *rpc_get_client_buffer(rpc_device_t device); - -/// Returns the size of the client in bytes to be used for a memory copy. -uint64_t rpc_get_client_size(); - -/// Use the \p port to send a buffer using the \p callback. -void rpc_send(rpc_port_t port, rpc_port_callback_ty callback, void *data); - -/// Use the \p port to send \p bytes using the \p callback. The input is an -/// array of at least the configured lane size. -void rpc_send_n(rpc_port_t port, const void *const *src, uint64_t *size); - -/// Use the \p port to recieve a buffer using the \p callback. -void rpc_recv(rpc_port_t port, rpc_port_callback_ty callback, void *data); - -/// Use the \p port to recieve \p bytes using the \p callback. The inputs is an -/// array of at least the configured lane size. The \p alloc function allocates -/// memory for the recieved bytes. -void rpc_recv_n(rpc_port_t port, void **dst, uint64_t *size, rpc_alloc_ty alloc, - void *data); - -/// Use the \p port to receive and send a buffer using the \p callback. -void rpc_recv_and_send(rpc_port_t port, rpc_port_callback_ty callback, - void *data); +int libc_handle_rpc_port(void *port, uint32_t num_lanes); #ifdef __cplusplus } diff --git a/libc/utils/gpu/server/rpc_server.cpp b/libc/utils/gpu/server/rpc_server.cpp index 972601aaf1d5e..21af7ad7d5f1f 100644 --- a/libc/utils/gpu/server/rpc_server.cpp +++ b/libc/utils/gpu/server/rpc_server.cpp @@ -14,15 +14,16 @@ // Make sure these are included first so they don't conflict with the system. #include +#include "shared/rpc.h" +#include "shared/rpc_opcodes.h" + #include "llvmlibc_rpc_server.h" -#include "src/__support/RPC/rpc.h" #include "src/__support/arg_list.h" #include "src/stdio/printf_core/converter.h" #include "src/stdio/printf_core/parser.h" #include "src/stdio/printf_core/writer.h" -#include "src/stdio/gpu/file.h" #include #include #include @@ -36,12 +37,6 @@ using namespace LIBC_NAMESPACE; using namespace LIBC_NAMESPACE::printf_core; -static_assert(sizeof(rpc_buffer_t) == sizeof(rpc::Buffer), - "Buffer size mismatch"); - -static_assert(RPC_MAXIMUM_PORT_COUNT == rpc::MAX_PORT_COUNT, - "Incorrect maximum port count"); - namespace { struct TempStorage { char *alloc(size_t size) { @@ -53,9 +48,29 @@ struct TempStorage { }; } // namespace -template +enum Stream { + File = 0, + Stdin = 1, + Stdout = 2, + Stderr = 3, +}; + +// Get the associated stream out of an encoded number. +LIBC_INLINE ::FILE *to_stream(uintptr_t f) { + ::FILE *stream = reinterpret_cast(f & ~0x3ull); + Stream type = static_cast(f & 0x3ull); + if (type == Stdin) + return stdin; + if (type == Stdout) + return stdout; + if (type == Stderr) + return stderr; + return stream; +} + +template static void handle_printf(rpc::Server::Port &port, TempStorage &temp_storage) { - FILE *files[lane_size] = {nullptr}; + FILE *files[num_lanes] = {nullptr}; // Get the appropriate output stream to use. if (port.get_opcode() == RPC_PRINTF_TO_STREAM || port.get_opcode() == RPC_PRINTF_TO_STREAM_PACKED) @@ -64,22 +79,22 @@ static void handle_printf(rpc::Server::Port &port, TempStorage &temp_storage) { }); else if (port.get_opcode() == RPC_PRINTF_TO_STDOUT || port.get_opcode() == RPC_PRINTF_TO_STDOUT_PACKED) - std::fill(files, files + lane_size, stdout); + std::fill(files, files + num_lanes, stdout); else - std::fill(files, files + lane_size, stderr); + std::fill(files, files + num_lanes, stderr); - uint64_t format_sizes[lane_size] = {0}; - void *format[lane_size] = {nullptr}; + uint64_t format_sizes[num_lanes] = {0}; + void *format[num_lanes] = {nullptr}; - uint64_t args_sizes[lane_size] = {0}; - void *args[lane_size] = {nullptr}; + uint64_t args_sizes[num_lanes] = {0}; + void *args[num_lanes] = {nullptr}; // Recieve the format string and arguments from the client. port.recv_n(format, format_sizes, [&](uint64_t size) { return temp_storage.alloc(size); }); // Parse the format string to get the expected size of the buffer. - for (uint32_t lane = 0; lane < lane_size; ++lane) { + for (uint32_t lane = 0; lane < num_lanes; ++lane) { if (!format[lane]) continue; @@ -104,9 +119,9 @@ static void handle_printf(rpc::Server::Port &port, TempStorage &temp_storage) { // Identify any arguments that are actually pointers to strings on the client. // Additionally we want to determine how much buffer space we need to print. - std::vector strs_to_copy[lane_size]; - int buffer_size[lane_size] = {0}; - for (uint32_t lane = 0; lane < lane_size; ++lane) { + std::vector strs_to_copy[num_lanes]; + int buffer_size[num_lanes] = {0}; + for (uint32_t lane = 0; lane < num_lanes; ++lane) { if (!format[lane]) continue; @@ -138,7 +153,7 @@ static void handle_printf(rpc::Server::Port &port, TempStorage &temp_storage) { } // Recieve any strings from the client and push them into a buffer. - std::vector copied_strs[lane_size]; + std::vector copied_strs[num_lanes]; while (std::any_of(std::begin(strs_to_copy), std::end(strs_to_copy), [](const auto &v) { return !v.empty() && v.back(); })) { port.send([&](rpc::Buffer *buffer, uint32_t id) { @@ -147,11 +162,11 @@ static void handle_printf(rpc::Server::Port &port, TempStorage &temp_storage) { if (!strs_to_copy[id].empty()) strs_to_copy[id].pop_back(); }); - uint64_t str_sizes[lane_size] = {0}; - void *strs[lane_size] = {nullptr}; + uint64_t str_sizes[num_lanes] = {0}; + void *strs[num_lanes] = {nullptr}; port.recv_n(strs, str_sizes, [&](uint64_t size) { return temp_storage.alloc(size); }); - for (uint32_t lane = 0; lane < lane_size; ++lane) { + for (uint32_t lane = 0; lane < num_lanes; ++lane) { if (!strs[lane]) continue; @@ -161,8 +176,8 @@ static void handle_printf(rpc::Server::Port &port, TempStorage &temp_storage) { } // Perform the final formatting and printing using the LLVM C library printf. - int results[lane_size] = {0}; - for (uint32_t lane = 0; lane < lane_size; ++lane) { + int results[num_lanes] = {0}; + for (uint32_t lane = 0; lane < num_lanes; ++lane) { if (!format[lane]) continue; @@ -212,42 +227,34 @@ static void handle_printf(rpc::Server::Port &port, TempStorage &temp_storage) { }); } -template -rpc_status_t handle_server_impl( - rpc::Server &server, - const std::unordered_map &callbacks, - const std::unordered_map &callback_data, - uint32_t &index) { - auto port = server.try_open(lane_size, index); - if (!port) - return RPC_STATUS_SUCCESS; - +template +rpc::Status handle_port_impl(rpc::Server::Port &port) { TempStorage temp_storage; - switch (port->get_opcode()) { + switch (port.get_opcode()) { case RPC_WRITE_TO_STREAM: case RPC_WRITE_TO_STDERR: case RPC_WRITE_TO_STDOUT: case RPC_WRITE_TO_STDOUT_NEWLINE: { - uint64_t sizes[lane_size] = {0}; - void *strs[lane_size] = {nullptr}; - FILE *files[lane_size] = {nullptr}; - if (port->get_opcode() == RPC_WRITE_TO_STREAM) { - port->recv([&](rpc::Buffer *buffer, uint32_t id) { + uint64_t sizes[num_lanes] = {0}; + void *strs[num_lanes] = {nullptr}; + FILE *files[num_lanes] = {nullptr}; + if (port.get_opcode() == RPC_WRITE_TO_STREAM) { + port.recv([&](rpc::Buffer *buffer, uint32_t id) { files[id] = reinterpret_cast(buffer->data[0]); }); - } else if (port->get_opcode() == RPC_WRITE_TO_STDERR) { - std::fill(files, files + lane_size, stderr); + } else if (port.get_opcode() == RPC_WRITE_TO_STDERR) { + std::fill(files, files + num_lanes, stderr); } else { - std::fill(files, files + lane_size, stdout); + std::fill(files, files + num_lanes, stdout); } - port->recv_n(strs, sizes, - [&](uint64_t size) { return temp_storage.alloc(size); }); - port->send([&](rpc::Buffer *buffer, uint32_t id) { + port.recv_n(strs, sizes, + [&](uint64_t size) { return temp_storage.alloc(size); }); + port.send([&](rpc::Buffer *buffer, uint32_t id) { flockfile(files[id]); buffer->data[0] = fwrite_unlocked(strs[id], 1, sizes[id], files[id]); - if (port->get_opcode() == RPC_WRITE_TO_STDOUT_NEWLINE && + if (port.get_opcode() == RPC_WRITE_TO_STDOUT_NEWLINE && buffer->data[0] == sizes[id]) buffer->data[0] += fwrite_unlocked("\n", 1, 1, files[id]); funlockfile(files[id]); @@ -255,38 +262,37 @@ rpc_status_t handle_server_impl( break; } case RPC_READ_FROM_STREAM: { - uint64_t sizes[lane_size] = {0}; - void *data[lane_size] = {nullptr}; - port->recv([&](rpc::Buffer *buffer, uint32_t id) { + uint64_t sizes[num_lanes] = {0}; + void *data[num_lanes] = {nullptr}; + port.recv([&](rpc::Buffer *buffer, uint32_t id) { data[id] = temp_storage.alloc(buffer->data[0]); sizes[id] = - fread(data[id], 1, buffer->data[0], file::to_stream(buffer->data[1])); + fread(data[id], 1, buffer->data[0], to_stream(buffer->data[1])); }); - port->send_n(data, sizes); - port->send([&](rpc::Buffer *buffer, uint32_t id) { + port.send_n(data, sizes); + port.send([&](rpc::Buffer *buffer, uint32_t id) { std::memcpy(buffer->data, &sizes[id], sizeof(uint64_t)); }); break; } case RPC_READ_FGETS: { - uint64_t sizes[lane_size] = {0}; - void *data[lane_size] = {nullptr}; - port->recv([&](rpc::Buffer *buffer, uint32_t id) { + uint64_t sizes[num_lanes] = {0}; + void *data[num_lanes] = {nullptr}; + port.recv([&](rpc::Buffer *buffer, uint32_t id) { data[id] = temp_storage.alloc(buffer->data[0]); - const char *str = - fgets(reinterpret_cast(data[id]), buffer->data[0], - file::to_stream(buffer->data[1])); + const char *str = fgets(reinterpret_cast(data[id]), + buffer->data[0], to_stream(buffer->data[1])); sizes[id] = !str ? 0 : std::strlen(str) + 1; }); - port->send_n(data, sizes); + port.send_n(data, sizes); break; } case RPC_OPEN_FILE: { - uint64_t sizes[lane_size] = {0}; - void *paths[lane_size] = {nullptr}; - port->recv_n(paths, sizes, - [&](uint64_t size) { return temp_storage.alloc(size); }); - port->recv_and_send([&](rpc::Buffer *buffer, uint32_t id) { + uint64_t sizes[num_lanes] = {0}; + void *paths[num_lanes] = {nullptr}; + port.recv_n(paths, sizes, + [&](uint64_t size) { return temp_storage.alloc(size); }); + port.recv_and_send([&](rpc::Buffer *buffer, uint32_t id) { FILE *file = fopen(reinterpret_cast(paths[id]), reinterpret_cast(buffer->data)); buffer->data[0] = reinterpret_cast(file); @@ -294,7 +300,7 @@ rpc_status_t handle_server_impl( break; } case RPC_CLOSE_FILE: { - port->recv_and_send([&](rpc::Buffer *buffer, uint32_t id) { + port.recv_and_send([&](rpc::Buffer *buffer, uint32_t id) { FILE *file = reinterpret_cast(buffer->data[0]); buffer->data[0] = fclose(file); }); @@ -302,8 +308,8 @@ rpc_status_t handle_server_impl( } case RPC_EXIT: { // Send a response to the client to signal that we are ready to exit. - port->recv_and_send([](rpc::Buffer *, uint32_t) {}); - port->recv([](rpc::Buffer *buffer, uint32_t) { + port.recv_and_send([](rpc::Buffer *, uint32_t) {}); + port.recv([](rpc::Buffer *buffer, uint32_t) { int status = 0; std::memcpy(&status, buffer->data, sizeof(int)); exit(status); @@ -312,105 +318,105 @@ rpc_status_t handle_server_impl( } case RPC_ABORT: { // Send a response to the client to signal that we are ready to abort. - port->recv_and_send([](rpc::Buffer *, uint32_t) {}); - port->recv([](rpc::Buffer *, uint32_t) {}); + port.recv_and_send([](rpc::Buffer *, uint32_t) {}); + port.recv([](rpc::Buffer *, uint32_t) {}); abort(); break; } case RPC_HOST_CALL: { - uint64_t sizes[lane_size] = {0}; - unsigned long long results[lane_size] = {0}; - void *args[lane_size] = {nullptr}; - port->recv_n(args, sizes, - [&](uint64_t size) { return temp_storage.alloc(size); }); - port->recv([&](rpc::Buffer *buffer, uint32_t id) { + uint64_t sizes[num_lanes] = {0}; + unsigned long long results[num_lanes] = {0}; + void *args[num_lanes] = {nullptr}; + port.recv_n(args, sizes, + [&](uint64_t size) { return temp_storage.alloc(size); }); + port.recv([&](rpc::Buffer *buffer, uint32_t id) { using func_ptr_t = unsigned long long (*)(void *); auto func = reinterpret_cast(buffer->data[0]); results[id] = func(args[id]); }); - port->send([&](rpc::Buffer *buffer, uint32_t id) { + port.send([&](rpc::Buffer *buffer, uint32_t id) { buffer->data[0] = static_cast(results[id]); }); break; } case RPC_FEOF: { - port->recv_and_send([](rpc::Buffer *buffer, uint32_t) { - buffer->data[0] = feof(file::to_stream(buffer->data[0])); + port.recv_and_send([](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = feof(to_stream(buffer->data[0])); }); break; } case RPC_FERROR: { - port->recv_and_send([](rpc::Buffer *buffer, uint32_t) { - buffer->data[0] = ferror(file::to_stream(buffer->data[0])); + port.recv_and_send([](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = ferror(to_stream(buffer->data[0])); }); break; } case RPC_CLEARERR: { - port->recv_and_send([](rpc::Buffer *buffer, uint32_t) { - clearerr(file::to_stream(buffer->data[0])); + port.recv_and_send([](rpc::Buffer *buffer, uint32_t) { + clearerr(to_stream(buffer->data[0])); }); break; } case RPC_FSEEK: { - port->recv_and_send([](rpc::Buffer *buffer, uint32_t) { - buffer->data[0] = fseek(file::to_stream(buffer->data[0]), - static_cast(buffer->data[1]), - static_cast(buffer->data[2])); + port.recv_and_send([](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = + fseek(to_stream(buffer->data[0]), static_cast(buffer->data[1]), + static_cast(buffer->data[2])); }); break; } case RPC_FTELL: { - port->recv_and_send([](rpc::Buffer *buffer, uint32_t) { - buffer->data[0] = ftell(file::to_stream(buffer->data[0])); + port.recv_and_send([](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = ftell(to_stream(buffer->data[0])); }); break; } case RPC_FFLUSH: { - port->recv_and_send([](rpc::Buffer *buffer, uint32_t) { - buffer->data[0] = fflush(file::to_stream(buffer->data[0])); + port.recv_and_send([](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = fflush(to_stream(buffer->data[0])); }); break; } case RPC_UNGETC: { - port->recv_and_send([](rpc::Buffer *buffer, uint32_t) { - buffer->data[0] = ungetc(static_cast(buffer->data[0]), - file::to_stream(buffer->data[1])); + port.recv_and_send([](rpc::Buffer *buffer, uint32_t) { + buffer->data[0] = + ungetc(static_cast(buffer->data[0]), to_stream(buffer->data[1])); }); break; } case RPC_PRINTF_TO_STREAM_PACKED: case RPC_PRINTF_TO_STDOUT_PACKED: case RPC_PRINTF_TO_STDERR_PACKED: { - handle_printf(*port, temp_storage); + handle_printf(port, temp_storage); break; } case RPC_PRINTF_TO_STREAM: case RPC_PRINTF_TO_STDOUT: case RPC_PRINTF_TO_STDERR: { - handle_printf(*port, temp_storage); + handle_printf(port, temp_storage); break; } case RPC_REMOVE: { - uint64_t sizes[lane_size] = {0}; - void *args[lane_size] = {nullptr}; - port->recv_n(args, sizes, - [&](uint64_t size) { return temp_storage.alloc(size); }); - port->send([&](rpc::Buffer *buffer, uint32_t id) { + uint64_t sizes[num_lanes] = {0}; + void *args[num_lanes] = {nullptr}; + port.recv_n(args, sizes, + [&](uint64_t size) { return temp_storage.alloc(size); }); + port.send([&](rpc::Buffer *buffer, uint32_t id) { buffer->data[0] = static_cast( remove(reinterpret_cast(args[id]))); }); break; } case RPC_RENAME: { - uint64_t oldsizes[lane_size] = {0}; - uint64_t newsizes[lane_size] = {0}; - void *oldpath[lane_size] = {nullptr}; - void *newpath[lane_size] = {nullptr}; - port->recv_n(oldpath, oldsizes, - [&](uint64_t size) { return temp_storage.alloc(size); }); - port->recv_n(newpath, newsizes, - [&](uint64_t size) { return temp_storage.alloc(size); }); - port->send([&](rpc::Buffer *buffer, uint32_t id) { + uint64_t oldsizes[num_lanes] = {0}; + uint64_t newsizes[num_lanes] = {0}; + void *oldpath[num_lanes] = {nullptr}; + void *newpath[num_lanes] = {nullptr}; + port.recv_n(oldpath, oldsizes, + [&](uint64_t size) { return temp_storage.alloc(size); }); + port.recv_n(newpath, newsizes, + [&](uint64_t size) { return temp_storage.alloc(size); }); + port.send([&](rpc::Buffer *buffer, uint32_t id) { buffer->data[0] = static_cast( rename(reinterpret_cast(oldpath[id]), reinterpret_cast(newpath[id]))); @@ -418,168 +424,36 @@ rpc_status_t handle_server_impl( break; } case RPC_SYSTEM: { - uint64_t sizes[lane_size] = {0}; - void *args[lane_size] = {nullptr}; - port->recv_n(args, sizes, - [&](uint64_t size) { return temp_storage.alloc(size); }); - port->send([&](rpc::Buffer *buffer, uint32_t id) { + uint64_t sizes[num_lanes] = {0}; + void *args[num_lanes] = {nullptr}; + port.recv_n(args, sizes, + [&](uint64_t size) { return temp_storage.alloc(size); }); + port.send([&](rpc::Buffer *buffer, uint32_t id) { buffer->data[0] = static_cast( system(reinterpret_cast(args[id]))); }); break; } case RPC_NOOP: { - port->recv([](rpc::Buffer *, uint32_t) {}); + port.recv([](rpc::Buffer *, uint32_t) {}); break; } - default: { - auto handler = - callbacks.find(static_cast(port->get_opcode())); - - // We error out on an unhandled opcode. - if (handler == callbacks.end()) - return RPC_STATUS_UNHANDLED_OPCODE; - - // Invoke the registered callback with a reference to the port. - void *data = - callback_data.at(static_cast(port->get_opcode())); - rpc_port_t port_ref{reinterpret_cast(&*port), lane_size}; - (handler->second)(port_ref, data); - } - } - - // Increment the index so we start the scan after this port. - index = port->get_index() + 1; - port->close(); - - return RPC_STATUS_CONTINUE; -} - -struct Device { - Device(uint32_t lane_size, uint32_t num_ports, void *buffer) - : lane_size(lane_size), buffer(buffer), server(num_ports, buffer), - client(num_ports, buffer) {} - - rpc_status_t handle_server(uint32_t &index) { - switch (lane_size) { - case 1: - return handle_server_impl<1>(server, callbacks, callback_data, index); - case 32: - return handle_server_impl<32>(server, callbacks, callback_data, index); - case 64: - return handle_server_impl<64>(server, callbacks, callback_data, index); - default: - return RPC_STATUS_INVALID_LANE_SIZE; - } + default: + return rpc::UNHANDLED_OPCODE; } - uint32_t lane_size; - void *buffer; - rpc::Server server; - rpc::Client client; - std::unordered_map callbacks; - std::unordered_map callback_data; -}; - -rpc_status_t rpc_server_init(rpc_device_t *rpc_device, uint64_t num_ports, - uint32_t lane_size, rpc_alloc_ty alloc, - void *data) { - if (!rpc_device) - return RPC_STATUS_ERROR; - if (lane_size != 1 && lane_size != 32 && lane_size != 64) - return RPC_STATUS_INVALID_LANE_SIZE; - - uint64_t size = rpc::Server::allocation_size(lane_size, num_ports); - void *buffer = alloc(size, data); - - if (!buffer) - return RPC_STATUS_ERROR; - - Device *device = new Device(lane_size, num_ports, buffer); - if (!device) - return RPC_STATUS_ERROR; - - rpc_device->handle = reinterpret_cast(device); - return RPC_STATUS_SUCCESS; -} - -rpc_status_t rpc_server_shutdown(rpc_device_t rpc_device, rpc_free_ty dealloc, - void *data) { - if (!rpc_device.handle) - return RPC_STATUS_ERROR; - - Device *device = reinterpret_cast(rpc_device.handle); - dealloc(device->buffer, data); - delete device; - - return RPC_STATUS_SUCCESS; + return rpc::SUCCESS; } -rpc_status_t rpc_handle_server(rpc_device_t rpc_device) { - if (!rpc_device.handle) - return RPC_STATUS_ERROR; - - Device *device = reinterpret_cast(rpc_device.handle); - uint32_t index = 0; - for (;;) { - rpc_status_t status = device->handle_server(index); - if (status != RPC_STATUS_CONTINUE) - return status; +int libc_handle_rpc_port(void *port, uint32_t num_lanes) { + switch (num_lanes) { + case 1: + return handle_port_impl<1>(*reinterpret_cast(port)); + case 32: + return handle_port_impl<32>(*reinterpret_cast(port)); + case 64: + return handle_port_impl<64>(*reinterpret_cast(port)); + default: + return rpc::ERROR; } } - -rpc_status_t rpc_register_callback(rpc_device_t rpc_device, uint32_t opcode, - rpc_opcode_callback_ty callback, - void *data) { - if (!rpc_device.handle) - return RPC_STATUS_ERROR; - - Device *device = reinterpret_cast(rpc_device.handle); - - device->callbacks[opcode] = callback; - device->callback_data[opcode] = data; - return RPC_STATUS_SUCCESS; -} - -const void *rpc_get_client_buffer(rpc_device_t rpc_device) { - if (!rpc_device.handle) - return nullptr; - Device *device = reinterpret_cast(rpc_device.handle); - return &device->client; -} - -uint64_t rpc_get_client_size() { return sizeof(rpc::Client); } - -void rpc_send(rpc_port_t ref, rpc_port_callback_ty callback, void *data) { - auto port = reinterpret_cast(ref.handle); - port->send([=](rpc::Buffer *buffer, uint32_t) { - callback(reinterpret_cast(buffer), data); - }); -} - -void rpc_send_n(rpc_port_t ref, const void *const *src, uint64_t *size) { - auto port = reinterpret_cast(ref.handle); - port->send_n(src, size); -} - -void rpc_recv(rpc_port_t ref, rpc_port_callback_ty callback, void *data) { - auto port = reinterpret_cast(ref.handle); - port->recv([=](rpc::Buffer *buffer, uint32_t) { - callback(reinterpret_cast(buffer), data); - }); -} - -void rpc_recv_n(rpc_port_t ref, void **dst, uint64_t *size, rpc_alloc_ty alloc, - void *data) { - auto port = reinterpret_cast(ref.handle); - auto alloc_fn = [=](uint64_t size) { return alloc(size, data); }; - port->recv_n(dst, size, alloc_fn); -} - -void rpc_recv_and_send(rpc_port_t ref, rpc_port_callback_ty callback, - void *data) { - auto port = reinterpret_cast(ref.handle); - port->recv_and_send([=](rpc::Buffer *buffer, uint32_t) { - callback(reinterpret_cast(buffer), data); - }); -} diff --git a/libcxx/docs/ReleaseNotes/20.rst b/libcxx/docs/ReleaseNotes/20.rst index 9039c6f046445..d520c46bae1ef 100644 --- a/libcxx/docs/ReleaseNotes/20.rst +++ b/libcxx/docs/ReleaseNotes/20.rst @@ -102,6 +102,9 @@ Deprecations and Removals headers as an extension and only deprecates them. The ``_LIBCPP_DISABLE_DEPRECATION_WARNINGS`` macro can be defined to suppress deprecation for these headers. +- The ``_LIBCPP_DISABLE_AVAILABILITY`` macro that was used to force-disable availability markup has now been removed. + Whether availability markup is used by the library is now solely controlled at configuration-time. + Upcoming Deprecations and Removals ---------------------------------- diff --git a/libcxx/include/__chrono/duration.h b/libcxx/include/__chrono/duration.h index a401178b2a75c..941aca6009599 100644 --- a/libcxx/include/__chrono/duration.h +++ b/libcxx/include/__chrono/duration.h @@ -542,8 +542,4 @@ _LIBCPP_END_NAMESPACE_STD _LIBCPP_POP_MACROS -#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 -# include -#endif - #endif // _LIBCPP___CHRONO_DURATION_H diff --git a/libcxx/include/__chrono/formatter.h b/libcxx/include/__chrono/formatter.h index c579f03d729ce..3671e6aa52b49 100644 --- a/libcxx/include/__chrono/formatter.h +++ b/libcxx/include/__chrono/formatter.h @@ -351,7 +351,7 @@ _LIBCPP_HIDE_FROM_ABI void __format_chrono_using_chrono_specs( case _CharT('Y'): // Depending on the platform's libc the range of supported years is - // limited. Intead of of testing all conditions use the internal + // limited. Instead of of testing all conditions use the internal // implementation unconditionally. __formatter::__format_year(__sstr, __t.tm_year + 1900); break; diff --git a/libcxx/include/__configuration/availability.h b/libcxx/include/__configuration/availability.h index d805c5a4d978d..efda2a04a4841 100644 --- a/libcxx/include/__configuration/availability.h +++ b/libcxx/include/__configuration/availability.h @@ -67,13 +67,6 @@ // // [1]: https://clang.llvm.org/docs/AttributeReference.html#availability -// For backwards compatibility, allow users to define _LIBCPP_DISABLE_AVAILABILITY -// for a while. -#if defined(_LIBCPP_DISABLE_AVAILABILITY) -# undef _LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS -# define _LIBCPP_HAS_VENDOR_AVAILABILITY_ANNOTATIONS 0 -#endif - // Availability markup is disabled when building the library, or when a non-Clang // compiler is used because only Clang supports the necessary attributes. #if defined(_LIBCPP_BUILDING_LIBRARY) || defined(_LIBCXXABI_BUILDING_LIBRARY) || !defined(_LIBCPP_COMPILER_CLANG_BASED) diff --git a/libcxx/include/__cxx03/__chrono/formatter.h b/libcxx/include/__cxx03/__chrono/formatter.h index c46dfa3a2da2c..54e5dff6b97dc 100644 --- a/libcxx/include/__cxx03/__chrono/formatter.h +++ b/libcxx/include/__cxx03/__chrono/formatter.h @@ -350,7 +350,7 @@ _LIBCPP_HIDE_FROM_ABI void __format_chrono_using_chrono_specs( case _CharT('Y'): // Depending on the platform's libc the range of supported years is - // limited. Intead of of testing all conditions use the internal + // limited. Instead of of testing all conditions use the internal // implementation unconditionally. __formatter::__format_year(__sstr, __t.tm_year + 1900); break; diff --git a/libcxx/include/__memory_resource/synchronized_pool_resource.h b/libcxx/include/__memory_resource/synchronized_pool_resource.h index 6384564afc917..bcc1ac4a172e3 100644 --- a/libcxx/include/__memory_resource/synchronized_pool_resource.h +++ b/libcxx/include/__memory_resource/synchronized_pool_resource.h @@ -10,10 +10,12 @@ #define _LIBCPP___MEMORY_RESOURCE_SYNCHRONIZED_POOL_RESOURCE_H #include <__config> +#include <__cstddef/size_t.h> #include <__memory_resource/memory_resource.h> #include <__memory_resource/pool_options.h> #include <__memory_resource/unsynchronized_pool_resource.h> -#include +#include <__mutex/mutex.h> +#include <__mutex/unique_lock.h> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/future b/libcxx/include/future index cbf3ed9346417..5b2e9eed88e35 100644 --- a/libcxx/include/future +++ b/libcxx/include/future @@ -368,6 +368,7 @@ template struct uses_allocator, Alloc>; # include <__assert> # include <__chrono/duration.h> +# include <__chrono/steady_clock.h> # include <__chrono/time_point.h> # include <__condition_variable/condition_variable.h> # include <__exception/exception_ptr.h> @@ -381,6 +382,9 @@ template struct uses_allocator, Alloc>; # include <__memory/shared_count.h> # include <__memory/unique_ptr.h> # include <__memory/uses_allocator.h> +# include <__mutex/lock_guard.h> +# include <__mutex/mutex.h> +# include <__mutex/unique_lock.h> # include <__system_error/error_category.h> # include <__system_error/error_code.h> # include <__system_error/error_condition.h> @@ -390,14 +394,19 @@ template struct uses_allocator, Alloc>; # include <__type_traits/conditional.h> # include <__type_traits/decay.h> # include <__type_traits/enable_if.h> +# include <__type_traits/invoke.h> +# include <__type_traits/is_same.h> +# include <__type_traits/remove_cvref.h> +# include <__type_traits/remove_reference.h> # include <__type_traits/strip_signature.h> # include <__type_traits/underlying_type.h> # include <__utility/auto_cast.h> # include <__utility/forward.h> # include <__utility/move.h> -# include +# include <__utility/swap.h> # include # include +# include # include # if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/memory_resource b/libcxx/include/memory_resource index 7de69e67b7c06..e54b7e6e2473f 100644 --- a/libcxx/include/memory_resource +++ b/libcxx/include/memory_resource @@ -66,6 +66,10 @@ namespace std::pmr { # pragma GCC system_header #endif +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER >= 17 && _LIBCPP_STD_VER <= 20 +# include +#endif + #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include #endif diff --git a/libcxx/include/syncstream b/libcxx/include/syncstream index 970706976e1ff..2699a4b3a6fbb 100644 --- a/libcxx/include/syncstream +++ b/libcxx/include/syncstream @@ -121,6 +121,7 @@ namespace std { #if _LIBCPP_HAS_LOCALIZATION +# include <__mutex/lock_guard.h> # include <__utility/move.h> # include # include // required for declaration of default arguments @@ -129,7 +130,6 @@ namespace std { # if _LIBCPP_HAS_THREADS # include -# include # include # endif diff --git a/libcxx/src/.clang-tidy b/libcxx/src/.clang-tidy new file mode 100644 index 0000000000000..ec8f2e0a76a3c --- /dev/null +++ b/libcxx/src/.clang-tidy @@ -0,0 +1,4 @@ +InheritParentConfig: true + +Checks: > + -readability-identifier-naming diff --git a/libcxx/test/configs/cmake-bridge.cfg.in b/libcxx/test/configs/cmake-bridge.cfg.in index b802af4984325..61f821a7e4f6b 100644 --- a/libcxx/test/configs/cmake-bridge.cfg.in +++ b/libcxx/test/configs/cmake-bridge.cfg.in @@ -30,4 +30,4 @@ config.substitutions.append(('%{target-include-dir}', '@LIBCXX_TESTING_INSTALL_P config.substitutions.append(('%{lib-dir}', '@LIBCXX_TESTING_INSTALL_PREFIX@/@LIBCXX_INSTALL_LIBRARY_DIR@')) config.substitutions.append(('%{module-dir}', '@LIBCXX_TESTING_INSTALL_PREFIX@/@LIBCXX_INSTALL_MODULES_DIR@')) config.substitutions.append(('%{test-tools-dir}', '@LIBCXX_TEST_TOOLS_PATH@')) -config.substitutions.append(('%{benchmark_flags}', '-I @LIBCXX_BINARY_DIR@/test/benchmarks/google-benchmark/include -L @LIBCXX_BINARY_DIR@/test/benchmarks/google-benchmark/lib -l benchmark')) +config.substitutions.append(('%{benchmark_flags}', '-I @LIBCXX_BINARY_DIR@/test/benchmarks/google-benchmark/include -L @LIBCXX_BINARY_DIR@/test/benchmarks/google-benchmark/lib -L @LIBCXX_BINARY_DIR@/test/benchmarks/google-benchmark/lib64 -l benchmark')) diff --git a/libcxx/test/libcxx/transitive_includes/cxx23.csv b/libcxx/test/libcxx/transitive_includes/cxx23.csv index a008b4d76edde..096c321672474 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx23.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx23.csv @@ -465,7 +465,6 @@ future iosfwd future istream future limits future locale -future mutex future new future ratio future sstream @@ -692,11 +691,9 @@ memory_resource compare memory_resource cstdint memory_resource ctime memory_resource limits -memory_resource mutex memory_resource new memory_resource ratio memory_resource tuple -memory_resource typeinfo memory_resource version mutex cerrno mutex climits @@ -1076,7 +1073,6 @@ syncstream iosfwd syncstream limits syncstream locale syncstream map -syncstream mutex syncstream new syncstream optional syncstream ostream diff --git a/libcxx/test/libcxx/transitive_includes/cxx26.csv b/libcxx/test/libcxx/transitive_includes/cxx26.csv index d5321da32b3d4..74d912e5fe3a3 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx26.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx26.csv @@ -464,7 +464,6 @@ future iosfwd future istream future limits future locale -future mutex future new future ratio future sstream @@ -691,11 +690,9 @@ memory_resource compare memory_resource cstdint memory_resource ctime memory_resource limits -memory_resource mutex memory_resource new memory_resource ratio memory_resource tuple -memory_resource typeinfo memory_resource version mutex cerrno mutex climits @@ -1075,7 +1072,6 @@ syncstream iosfwd syncstream limits syncstream locale syncstream map -syncstream mutex syncstream new syncstream optional syncstream ostream diff --git a/libcxx/test/std/time/time.cal/time.cal.weekday/time.cal.weekday.members/operator[].pass.cpp b/libcxx/test/std/time/time.cal/time.cal.weekday/time.cal.weekday.members/subscript_operator.pass.cpp similarity index 100% rename from libcxx/test/std/time/time.cal/time.cal.weekday/time.cal.weekday.members/operator[].pass.cpp rename to libcxx/test/std/time/time.cal/time.cal.weekday/time.cal.weekday.members/subscript_operator.pass.cpp diff --git a/libcxx/test/std/utilities/charconv/charconv.msvc/test.pass.cpp b/libcxx/test/std/utilities/charconv/charconv.msvc/test.pass.cpp index c294a40ce71ce..9279511e46b11 100644 --- a/libcxx/test/std/utilities/charconv/charconv.msvc/test.pass.cpp +++ b/libcxx/test/std/utilities/charconv/charconv.msvc/test.pass.cpp @@ -11,6 +11,9 @@ // TODO Investigate why this fails // UNSUPPORTED: windows +// This test times out under msan +// UNSUPPORTED: msan + // to_chars requires functions in the dylib that have not been introduced in older // versions of the dylib on macOS. // XFAIL: availability-fp_to_chars-missing diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml index 36abefe41e2cd..b8e982b653d39 100644 --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -17,13 +17,6 @@ # goal being to reduce the load on testers when a commit is known to fail. # -env: - # LLVM POST-BRANCH bump version - # LLVM POST-BRANCH add compiler test for ToT - 1, e.g. "Clang 17" - # LLVM RELEASE bump remove compiler ToT - 3, e.g. "Clang 15" - LLVM_HEAD_VERSION: "18" # Used compiler, update POST-BRANCH. - GCC_STABLE_VERSION: "13" - definitions: _common: &common timeout_in_minutes: 120 diff --git a/lld/COFF/Config.h b/lld/COFF/Config.h index 3d416e6985d02..57cb443798cd8 100644 --- a/lld/COFF/Config.h +++ b/lld/COFF/Config.h @@ -114,6 +114,7 @@ struct Configuration { bool is64() const { return llvm::COFF::is64Bit(machine); } llvm::COFF::MachineTypes machine = IMAGE_FILE_MACHINE_UNKNOWN; + bool machineInferred = false; size_t wordsize; bool verbose = false; WindowsSubsystem subsystem = llvm::COFF::IMAGE_SUBSYSTEM_UNKNOWN; diff --git a/lld/COFF/SymbolTable.cpp b/lld/COFF/SymbolTable.cpp index df3c5a176b52e..0c6df701284b7 100644 --- a/lld/COFF/SymbolTable.cpp +++ b/lld/COFF/SymbolTable.cpp @@ -46,6 +46,8 @@ static bool compatibleMachineType(COFFLinkerContext &ctx, MachineTypes mt) { return COFF::isArm64EC(mt) || mt == AMD64; case ARM64X: return COFF::isAnyArm64(mt) || mt == AMD64; + case IMAGE_FILE_MACHINE_UNKNOWN: + return true; default: return ctx.config.machine == mt; } @@ -74,14 +76,26 @@ void SymbolTable::addFile(InputFile *file) { } MachineTypes mt = file->getMachineType(); - if (ctx.config.machine == IMAGE_FILE_MACHINE_UNKNOWN) { - ctx.config.machine = mt; - ctx.driver.addWinSysRootLibSearchPaths(); - } else if (!compatibleMachineType(ctx, mt)) { + // The ARM64EC target must be explicitly specified and cannot be inferred. + if (mt == ARM64EC && + (ctx.config.machine == IMAGE_FILE_MACHINE_UNKNOWN || + (ctx.config.machineInferred && + (ctx.config.machine == ARM64 || ctx.config.machine == AMD64)))) { + error(toString(file) + ": machine type arm64ec is ambiguous and cannot be " + "inferred, use /machine:arm64ec or /machine:arm64x"); + return; + } + if (!compatibleMachineType(ctx, mt)) { error(toString(file) + ": machine type " + machineToStr(mt) + " conflicts with " + machineToStr(ctx.config.machine)); return; } + if (ctx.config.machine == IMAGE_FILE_MACHINE_UNKNOWN && + mt != IMAGE_FILE_MACHINE_UNKNOWN) { + ctx.config.machineInferred = true; + ctx.config.machine = mt; + ctx.driver.addWinSysRootLibSearchPaths(); + } ctx.driver.parseDirectives(file); } diff --git a/lld/Common/ErrorHandler.cpp b/lld/Common/ErrorHandler.cpp index ad6867744c145..6b60ebb18e821 100644 --- a/lld/Common/ErrorHandler.cpp +++ b/lld/Common/ErrorHandler.cpp @@ -337,8 +337,9 @@ void ErrorHandler::fatal(const Twine &msg) { } SyncStream::~SyncStream() { - os.flush(); switch (level) { + case DiagLevel::None: + break; case DiagLevel::Log: e.log(buf); break; diff --git a/lld/ELF/AArch64ErrataFix.cpp b/lld/ELF/AArch64ErrataFix.cpp index 7c65b8ae8c665..b5641e5d9ce55 100644 --- a/lld/ELF/AArch64ErrataFix.cpp +++ b/lld/ELF/AArch64ErrataFix.cpp @@ -393,8 +393,8 @@ class elf::Patch843419Section final : public SyntheticSection { }; Patch843419Section::Patch843419Section(Ctx &ctx, InputSection *p, uint64_t off) - : SyntheticSection(ctx, SHF_ALLOC | SHF_EXECINSTR, SHT_PROGBITS, 4, - ".text.patch"), + : SyntheticSection(ctx, ".text.patch", SHT_PROGBITS, + SHF_ALLOC | SHF_EXECINSTR, 4), patchee(p), patcheeOffset(off) { this->parent = p->getParent(); patchSym = addSyntheticLocal( diff --git a/lld/ELF/ARMErrataFix.cpp b/lld/ELF/ARMErrataFix.cpp index 4257e491121f2..a7120c43e51d3 100644 --- a/lld/ELF/ARMErrataFix.cpp +++ b/lld/ELF/ARMErrataFix.cpp @@ -136,8 +136,8 @@ static bool is32bitBranch(uint32_t instr) { Patch657417Section::Patch657417Section(Ctx &ctx, InputSection *p, uint64_t off, uint32_t instr, bool isARM) - : SyntheticSection(ctx, SHF_ALLOC | SHF_EXECINSTR, SHT_PROGBITS, 4, - ".text.patch"), + : SyntheticSection(ctx, ".text.patch", SHT_PROGBITS, + SHF_ALLOC | SHF_EXECINSTR, 4), patchee(p), patcheeOffset(off), instr(instr), isARM(isARM) { parent = p->getParent(); patchSym = addSyntheticLocal( diff --git a/lld/ELF/Arch/AMDGPU.cpp b/lld/ELF/Arch/AMDGPU.cpp index ab948e65c25ed..52fc779855a36 100644 --- a/lld/ELF/Arch/AMDGPU.cpp +++ b/lld/ELF/Arch/AMDGPU.cpp @@ -73,7 +73,7 @@ uint32_t AMDGPU::calcEFlagsV4() const { // features in the same category are either ANY, ANY and ON, or ANY and OFF). for (InputFile *f : ArrayRef(ctx.objectFiles).slice(1)) { if (retMach != (getEFlags(f) & EF_AMDGPU_MACH)) { - ErrAlways(ctx) << "incompatible mach: " << f; + Err(ctx) << "incompatible mach: " << f; return 0; } @@ -82,7 +82,7 @@ uint32_t AMDGPU::calcEFlagsV4() const { (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4) != EF_AMDGPU_FEATURE_XNACK_ANY_V4)) { if (retXnack != (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4)) { - ErrAlways(ctx) << "incompatible xnack: " << f; + Err(ctx) << "incompatible xnack: " << f; return 0; } } else { @@ -95,7 +95,7 @@ uint32_t AMDGPU::calcEFlagsV4() const { (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4) != EF_AMDGPU_FEATURE_SRAMECC_ANY_V4)) { if (retSramEcc != (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4)) { - ErrAlways(ctx) << "incompatible sramecc: " << f; + Err(ctx) << "incompatible sramecc: " << f; return 0; } } else { @@ -143,7 +143,7 @@ uint32_t AMDGPU::calcEFlags() const { case ELFABIVERSION_AMDGPU_HSA_V6: return calcEFlagsV6(); default: - ErrAlways(ctx) << "unknown abi version: " << abiVersion; + Err(ctx) << "unknown abi version: " << abiVersion; return 0; } } diff --git a/lld/ELF/Arch/ARM.cpp b/lld/ELF/Arch/ARM.cpp index c23a2f872d918..62685b1e7dede 100644 --- a/lld/ELF/Arch/ARM.cpp +++ b/lld/ELF/Arch/ARM.cpp @@ -557,8 +557,8 @@ void ARM::encodeAluGroup(uint8_t *loc, const Relocation &rel, uint64_t val, rot = (lz + 8) << 7; } if (check && imm > 0xff) - Err(ctx) << getErrorLoc(ctx, loc) << "unencodeable immediate " - << Twine(val).str() << " for relocation " << rel.type; + Err(ctx) << getErrorLoc(ctx, loc) << "unencodeable immediate " << val + << " for relocation " << rel.type; write32(ctx, loc, (read32(ctx, loc) & 0xff3ff000) | opcode | rot | (imm & 0xff)); } @@ -1219,29 +1219,27 @@ template void ObjFile::importCmseSymbols() { sym->stOther = eSym.st_other; if (eSym.st_shndx != SHN_ABS) { - ErrAlways(ctx) << "CMSE symbol '" << sym->getName() - << "' in import library '" << this << "' is not absolute"; + Err(ctx) << "CMSE symbol '" << sym->getName() << "' in import library '" + << this << "' is not absolute"; continue; } if (!(eSym.st_value & 1) || (eSym.getType() != STT_FUNC)) { - ErrAlways(ctx) << "CMSE symbol '" << sym->getName() - << "' in import library '" << this - << "' is not a Thumb function definition"; + Err(ctx) << "CMSE symbol '" << sym->getName() << "' in import library '" + << this << "' is not a Thumb function definition"; continue; } if (ctx.symtab->cmseImportLib.count(sym->getName())) { - ErrAlways(ctx) << "CMSE symbol '" << sym->getName() - << "' is multiply defined in import library '" << this - << "'"; + Err(ctx) << "CMSE symbol '" << sym->getName() + << "' is multiply defined in import library '" << this << "'"; continue; } if (eSym.st_size != ACLESESYM_SIZE) { Warn(ctx) << "CMSE symbol '" << sym->getName() << "' in import library '" - << this << "' does not have correct size of " - << Twine(ACLESESYM_SIZE) << " bytes"; + << this << "' does not have correct size of " << ACLESESYM_SIZE + << " bytes"; } ctx.symtab->cmseImportLib[sym->getName()] = sym; @@ -1289,8 +1287,7 @@ void elf::processArmCmseSymbols(Ctx &ctx) { // If input object build attributes do not support CMSE, error and disable // further scanning for , __acle_se_ pairs. if (!ctx.arg.armCMSESupport) { - ErrAlways(ctx) - << "CMSE is only supported by ARMv8-M architecture or later"; + Err(ctx) << "CMSE is only supported by ARMv8-M architecture or later"; ctx.arg.cmseImplib = false; break; } @@ -1300,17 +1297,16 @@ void elf::processArmCmseSymbols(Ctx &ctx) { StringRef name = acleSeSym->getName().substr(std::strlen(ACLESESYM_PREFIX)); Symbol *sym = ctx.symtab->find(name); if (!sym) { - ErrAlways(ctx) - << acleSeSym->file << ": cmse special symbol '" - << acleSeSym->getName() - << "' detected, but no associated entry function definition '" << name - << "' with external linkage found"; + Err(ctx) << acleSeSym->file << ": cmse special symbol '" + << acleSeSym->getName() + << "' detected, but no associated entry function definition '" + << name << "' with external linkage found"; continue; } std::string errMsg = checkCmseSymAttributes(ctx, acleSeSym, sym); if (!errMsg.empty()) { - ErrAlways(ctx) << errMsg; + Err(ctx) << errMsg; continue; } @@ -1330,26 +1326,10 @@ void elf::processArmCmseSymbols(Ctx &ctx) { }); } -class elf::ArmCmseSGVeneer { -public: - ArmCmseSGVeneer(Symbol *sym, Symbol *acleSeSym, - std::optional addr = std::nullopt) - : sym(sym), acleSeSym(acleSeSym), entAddr{addr} {} - static const size_t size{ACLESESYM_SIZE}; - const std::optional getAddr() const { return entAddr; }; - - Symbol *sym; - Symbol *acleSeSym; - uint64_t offset = 0; - -private: - const std::optional entAddr; -}; - ArmCmseSGSection::ArmCmseSGSection(Ctx &ctx) - : SyntheticSection(ctx, llvm::ELF::SHF_ALLOC | llvm::ELF::SHF_EXECINSTR, - llvm::ELF::SHT_PROGBITS, - /*alignment=*/32, ".gnu.sgstubs") { + : SyntheticSection(ctx, ".gnu.sgstubs", SHT_PROGBITS, + SHF_ALLOC | SHF_EXECINSTR, + /*addralign=*/32) { entsize = ACLESESYM_SIZE; // The range of addresses used in the CMSE import library should be fixed. for (auto &[_, sym] : ctx.symtab->cmseImportLib) { @@ -1389,19 +1369,19 @@ void ArmCmseSGSection::addSGVeneer(Symbol *acleSeSym, Symbol *sym) { return; // Only secure symbols with values equal to that of it's non-secure // counterpart needs to be in the .gnu.sgstubs section. - ArmCmseSGVeneer *ss = nullptr; + std::unique_ptr ss; if (ctx.symtab->cmseImportLib.count(sym->getName())) { Defined *impSym = ctx.symtab->cmseImportLib[sym->getName()]; - ss = make(sym, acleSeSym, impSym->value); + ss = std::make_unique(sym, acleSeSym, impSym->value); } else { - ss = make(sym, acleSeSym); + ss = std::make_unique(sym, acleSeSym); ++newEntries; } - sgVeneers.emplace_back(ss); + sgVeneers.emplace_back(std::move(ss)); } void ArmCmseSGSection::writeTo(uint8_t *buf) { - for (ArmCmseSGVeneer *s : sgVeneers) { + for (std::unique_ptr &s : sgVeneers) { uint8_t *p = buf + s->offset; write16(ctx, p + 0, 0xe97f); // SG write16(ctx, p + 2, 0xe97f); @@ -1430,8 +1410,8 @@ void ArmCmseSGSection::finalizeContents() { auto it = std::stable_partition(sgVeneers.begin(), sgVeneers.end(), - [](auto *i) { return i->getAddr().has_value(); }); - std::sort(sgVeneers.begin(), it, [](auto *a, auto *b) { + [](auto &i) { return i->getAddr().has_value(); }); + std::sort(sgVeneers.begin(), it, [](auto &a, auto &b) { return a->getAddr().value() < b->getAddr().value(); }); // This is the partition of the veneers with fixed addresses. @@ -1441,13 +1421,12 @@ void ArmCmseSGSection::finalizeContents() { // Check if the start address of '.gnu.sgstubs' correspond to the // linker-synthesized veneer with the lowest address. if ((getVA() & ~1) != (addr & ~1)) { - ErrAlways(ctx) + Err(ctx) << "start address of '.gnu.sgstubs' is different from previous link"; return; } - for (size_t i = 0; i < sgVeneers.size(); ++i) { - ArmCmseSGVeneer *s = sgVeneers[i]; + for (auto [i, s] : enumerate(sgVeneers)) { s->offset = i * s->size; Defined(ctx, file, StringRef(), s->sym->binding, s->sym->stOther, s->sym->type, s->offset | 1, s->size, this) @@ -1462,21 +1441,22 @@ void ArmCmseSGSection::finalizeContents() { // See Arm® v8-M Security Extensions: Requirements on Development Tools // https://developer.arm.com/documentation/ecm0359818/latest template void elf::writeARMCmseImportLib(Ctx &ctx) { - StringTableSection *shstrtab = - make(ctx, ".shstrtab", /*dynamic=*/false); - StringTableSection *strtab = - make(ctx, ".strtab", /*dynamic=*/false); - SymbolTableBaseSection *impSymTab = - make>(ctx, *strtab); + auto shstrtab = + std::make_unique(ctx, ".shstrtab", /*dynamic=*/false); + auto strtab = + std::make_unique(ctx, ".strtab", /*dynamic=*/false); + auto impSymTab = std::make_unique>(ctx, *strtab); SmallVector, SyntheticSection *>, 0> osIsPairs; osIsPairs.emplace_back( - std::make_unique(ctx, strtab->name, 0, 0), strtab); + std::make_unique(ctx, strtab->name, 0, 0), strtab.get()); osIsPairs.emplace_back( - std::make_unique(ctx, impSymTab->name, 0, 0), impSymTab); + std::make_unique(ctx, impSymTab->name, 0, 0), + impSymTab.get()); osIsPairs.emplace_back( - std::make_unique(ctx, shstrtab->name, 0, 0), shstrtab); + std::make_unique(ctx, shstrtab->name, 0, 0), + shstrtab.get()); llvm::sort(ctx.symtab->cmseSymMap, [&](const auto &a, const auto &b) { return a.second.sym->getVA(ctx) < b.second.sym->getVA(ctx); @@ -1512,8 +1492,8 @@ template void elf::writeARMCmseImportLib(Ctx &ctx) { Expected> bufferOrErr = FileOutputBuffer::create(ctx.arg.cmseOutputLib, fileSize, flags); if (!bufferOrErr) { - ErrAlways(ctx) << "failed to open " << ctx.arg.cmseOutputLib << ": " - << bufferOrErr.takeError(); + Err(ctx) << "failed to open " << ctx.arg.cmseOutputLib << ": " + << bufferOrErr.takeError(); return; } diff --git a/lld/ELF/Arch/LoongArch.cpp b/lld/ELF/Arch/LoongArch.cpp index 0eb56de9c7f32..ebfdbafc9983e 100644 --- a/lld/ELF/Arch/LoongArch.cpp +++ b/lld/ELF/Arch/LoongArch.cpp @@ -775,8 +775,8 @@ static bool relax(Ctx &ctx, InputSection &sec) { if (LLVM_UNLIKELY(static_cast(remove) < 0)) { Err(ctx) << getErrorLoc(ctx, (const uint8_t *)loc) << "insufficient padding bytes for " << r.type << ": " - << Twine(allBytes) << " bytes available for " - << "requested alignment of " << Twine(align) << " bytes"; + << allBytes << " bytes available for " + << "requested alignment of " << align << " bytes"; remove = 0; } break; @@ -807,7 +807,7 @@ static bool relax(Ctx &ctx, InputSection &sec) { } // Inform assignAddresses that the size has changed. if (!isUInt<32>(delta)) - Fatal(ctx) << "section size decrease is too large: " << Twine(delta); + Fatal(ctx) << "section size decrease is too large: " << delta; sec.bytesDropped = delta; return changed; } @@ -838,7 +838,7 @@ bool LoongArch::relaxOnce(int pass) const { } void LoongArch::finalizeRelax(int passes) const { - Log(ctx) << "relaxation passes: " << Twine(passes); + Log(ctx) << "relaxation passes: " << passes; SmallVector storage; for (OutputSection *osec : ctx.outputSections) { if (!(osec->flags & SHF_EXECINSTR)) diff --git a/lld/ELF/Arch/Mips.cpp b/lld/ELF/Arch/Mips.cpp index 02f360d73ea15..da76820de240d 100644 --- a/lld/ELF/Arch/Mips.cpp +++ b/lld/ELF/Arch/Mips.cpp @@ -503,7 +503,7 @@ calculateMipsRelChain(Ctx &ctx, uint8_t *loc, uint32_t type, uint64_t val) { if (type2 == R_MIPS_SUB && (type3 == R_MIPS_HI16 || type3 == R_MIPS_LO16)) return std::make_pair(type3, -val); Err(ctx) << getErrorLoc(ctx, loc) << "unsupported relocations combination " - << Twine(type); + << type; return std::make_pair(type & 0xff, val); } diff --git a/lld/ELF/Arch/MipsArchTree.cpp b/lld/ELF/Arch/MipsArchTree.cpp index 0c64a46fe85d0..197cb30cdb8a5 100644 --- a/lld/ELF/Arch/MipsArchTree.cpp +++ b/lld/ELF/Arch/MipsArchTree.cpp @@ -72,24 +72,23 @@ static void checkFlags(Ctx &ctx, ArrayRef files) { for (const FileFlags &f : files) { if (ctx.arg.is64 && f.flags & EF_MIPS_MICROMIPS) - ErrAlways(ctx) << f.file << ": microMIPS 64-bit is not supported"; + Err(ctx) << f.file << ": microMIPS 64-bit is not supported"; uint32_t abi2 = f.flags & (EF_MIPS_ABI | EF_MIPS_ABI2); if (abi != abi2) - ErrAlways(ctx) << f.file << ": ABI '" << getAbiName(abi2) - << "' is incompatible with target ABI '" << getAbiName(abi) - << "'"; + Err(ctx) << f.file << ": ABI '" << getAbiName(abi2) + << "' is incompatible with target ABI '" << getAbiName(abi) + << "'"; bool nan2 = f.flags & EF_MIPS_NAN2008; if (nan != nan2) - ErrAlways(ctx) << f.file << ": -mnan=" << getNanName(nan2) - << " is incompatible with target -mnan=" - << getNanName(nan); + Err(ctx) << f.file << ": -mnan=" << getNanName(nan2) + << " is incompatible with target -mnan=" << getNanName(nan); bool fp2 = f.flags & EF_MIPS_FP64; if (fp != fp2) - ErrAlways(ctx) << f.file << ": -mfp" << getFpName(fp2) - << " is incompatible with target -mfp" << getFpName(fp); + Err(ctx) << f.file << ": -mfp" << getFpName(fp2) + << " is incompatible with target -mfp" << getFpName(fp); } } @@ -284,9 +283,9 @@ static uint32_t getArchFlags(Ctx &ctx, ArrayRef files) { if (isArchMatched(newFlags, ret)) continue; if (!isArchMatched(ret, newFlags)) { - ErrAlways(ctx) << "incompatible target ISA:\n>>> " << files[0].file - << ": " << getFullArchName(ret) << "\n>>> " << f.file - << ": " << getFullArchName(newFlags); + Err(ctx) << "incompatible target ISA:\n>>> " << files[0].file << ": " + << getFullArchName(ret) << "\n>>> " << f.file << ": " + << getFullArchName(newFlags); return 0; } ret = newFlags; @@ -350,15 +349,14 @@ static StringRef getMipsFpAbiName(uint8_t fpAbi) { } } -uint8_t elf::getMipsFpAbiFlag(Ctx &ctx, uint8_t oldFlag, uint8_t newFlag, - StringRef fileName) { +uint8_t elf::getMipsFpAbiFlag(Ctx &ctx, InputFile *file, uint8_t oldFlag, + uint8_t newFlag) { if (compareMipsFpAbi(newFlag, oldFlag) >= 0) return newFlag; if (compareMipsFpAbi(oldFlag, newFlag) < 0) - ErrAlways(ctx) << fileName << ": floating point ABI '" - << getMipsFpAbiName(newFlag) - << "' is incompatible with target floating point ABI '" - << getMipsFpAbiName(oldFlag) << "'"; + Err(ctx) << file << ": floating point ABI '" << getMipsFpAbiName(newFlag) + << "' is incompatible with target floating point ABI '" + << getMipsFpAbiName(oldFlag) << "'"; return oldFlag; } diff --git a/lld/ELF/Arch/PPC64.cpp b/lld/ELF/Arch/PPC64.cpp index 4dc9f93f5c688..8dd1735ee1e88 100644 --- a/lld/ELF/Arch/PPC64.cpp +++ b/lld/ELF/Arch/PPC64.cpp @@ -288,10 +288,10 @@ static void writeSequence(Ctx &ctx, const char *prefix, int from, // The full section content has the extent of [begin, end). We drop unused // instructions and write [first,end). auto *sec = make( - ctx.internalFile, SHF_ALLOC, SHT_PROGBITS, 4, + ctx.internalFile, ".text", SHT_PROGBITS, SHF_ALLOC, /*addralign=*/4, + /*entsize=*/0, ArrayRef(reinterpret_cast(buf.data() + first), - 4 * (buf.size() - first)), - ".text"); + 4 * (buf.size() - first))); ctx.inputSections.push_back(sec); for (Defined *sym : defined) { sym->section = sec; diff --git a/lld/ELF/Arch/RISCV.cpp b/lld/ELF/Arch/RISCV.cpp index 5368ced9a4f53..58a71fd9545c5 100644 --- a/lld/ELF/Arch/RISCV.cpp +++ b/lld/ELF/Arch/RISCV.cpp @@ -156,14 +156,13 @@ uint32_t RISCV::calcEFlags() const { target |= EF_RISCV_RVC; if ((eflags & EF_RISCV_FLOAT_ABI) != (target & EF_RISCV_FLOAT_ABI)) - ErrAlways(ctx) << f - << ": cannot link object files with different " - "floating-point ABI from " - << ctx.objectFiles[0]; + Err(ctx) << f + << ": cannot link object files with different " + "floating-point ABI from " + << ctx.objectFiles[0]; if ((eflags & EF_RISCV_RVE) != (target & EF_RISCV_RVE)) - ErrAlways(ctx) - << f << ": cannot link object files with different EF_RISCV_RVE"; + Err(ctx) << f << ": cannot link object files with different EF_RISCV_RVE"; } return target; @@ -659,9 +658,9 @@ void RISCV::relocateAlloc(InputSectionBase &sec, uint8_t *buf) const { auto val = rel.sym->getVA(ctx, rel.addend) - rel1.sym->getVA(ctx, rel1.addend); if (overwriteULEB128(loc, val) >= 0x80) - Err(ctx) << sec.getLocation(rel.offset) << ": ULEB128 value " - << Twine(val) << " exceeds available space; references '" - << rel.sym << "'"; + Err(ctx) << sec.getLocation(rel.offset) << ": ULEB128 value " << val + << " exceeds available space; references '" << rel.sym + << "'"; ++i; continue; } @@ -833,10 +832,10 @@ static bool relax(Ctx &ctx, InputSection &sec) { if (LLVM_UNLIKELY(static_cast(remove) < 0)) { Err(ctx) << getErrorLoc(ctx, (const uint8_t *)loc) << "insufficient padding bytes for " << r.type << ": " - << Twine(r.addend) + << r.addend << " bytes available " "for requested alignment of " - << Twine(align) << " bytes"; + << align << " bytes"; remove = 0; } break; @@ -900,7 +899,7 @@ static bool relax(Ctx &ctx, InputSection &sec) { } // Inform assignAddresses that the size has changed. if (!isUInt<32>(delta)) - Fatal(ctx) << "section size decrease is too large: " << Twine(delta); + Fatal(ctx) << "section size decrease is too large: " << delta; sec.bytesDropped = delta; return changed; } @@ -933,7 +932,7 @@ bool RISCV::relaxOnce(int pass) const { void RISCV::finalizeRelax(int passes) const { llvm::TimeTraceScope timeScope("Finalize RISC-V relaxation"); - Log(ctx) << "relaxation passes: " << Twine(passes); + Log(ctx) << "relaxation passes: " << passes; SmallVector storage; for (OutputSection *osec : ctx.outputSections) { if (!(osec->flags & SHF_EXECINSTR)) @@ -1045,7 +1044,7 @@ namespace { class RISCVAttributesSection final : public SyntheticSection { public: RISCVAttributesSection(Ctx &ctx) - : SyntheticSection(ctx, 0, SHT_RISCV_ATTRIBUTES, 1, ".riscv.attributes") { + : SyntheticSection(ctx, ".riscv.attributes", SHT_RISCV_ATTRIBUTES, 0, 1) { } size_t getSize() const override { return size; } @@ -1096,10 +1095,9 @@ static void mergeAtomic(Ctx &ctx, DenseMap::iterator it, auto reportAbiError = [&]() { Err(ctx) << "atomic abi mismatch for " << oldSection->name << "\n>>> " - << oldSection - << ": atomic_abi=" << Twine(static_cast(oldTag)) + << oldSection << ": atomic_abi=" << static_cast(oldTag) << "\n>>> " << newSection - << ": atomic_abi=" << Twine(static_cast(newTag)); + << ": atomic_abi=" << static_cast(newTag); }; auto reportUnknownAbiError = [&](const InputSectionBase *section, @@ -1112,7 +1110,7 @@ static void mergeAtomic(Ctx &ctx, DenseMap::iterator it, return; }; Err(ctx) << "unknown atomic abi for " << section->name << "\n>>> " - << section << ": atomic_abi=" << Twine(static_cast(tag)); + << section << ": atomic_abi=" << static_cast(tag); }; switch (oldTag) { case RISCVAtomicAbiTag::UNKNOWN: diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 10c52d7206b80..bc4b967ccbbbb 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -1327,15 +1327,13 @@ static void readConfigs(Ctx &ctx, opt::InputArgList &args) { OPT_no_lto_validate_all_vtables_have_type_infos, false); ctx.arg.ltoo = args::getInteger(args, OPT_lto_O, 2); if (ctx.arg.ltoo > 3) - ErrAlways(ctx) << "invalid optimization level for LTO: " - << Twine(ctx.arg.ltoo); + ErrAlways(ctx) << "invalid optimization level for LTO: " << ctx.arg.ltoo; unsigned ltoCgo = args::getInteger(args, OPT_lto_CGO, args::getCGOptLevel(ctx.arg.ltoo)); if (auto level = CodeGenOpt::getLevel(ltoCgo)) ctx.arg.ltoCgo = *level; else - ErrAlways(ctx) << "invalid codegen optimization level for LTO: " - << Twine(ltoCgo); + ErrAlways(ctx) << "invalid codegen optimization level for LTO: " << ltoCgo; ctx.arg.ltoObjPath = args.getLastArgValue(OPT_lto_obj_path_eq); ctx.arg.ltoPartitions = args::getInteger(args, OPT_lto_partitions, 1); ctx.arg.ltoSampleProfile = args.getLastArgValue(OPT_lto_sample_profile); @@ -2375,8 +2373,9 @@ static void markAddrsig(bool icfSafe, Symbol *s) { // We don't need to keep text sections unique under --icf=all even if they // are address-significant. if (auto *d = dyn_cast_or_null(s)) - if (d->section && (icfSafe || !(d->section->flags & SHF_EXECINSTR))) - d->section->keepUnique = true; + if (auto *sec = dyn_cast_or_null(d->section)) + if (icfSafe || !(sec->flags & SHF_EXECINSTR)) + sec->keepUnique = true; } // Record sections that define symbols mentioned in --keep-unique @@ -2391,7 +2390,8 @@ static void findKeepUniqueSections(Ctx &ctx, opt::InputArgList &args) { Warn(ctx) << "could not find symbol " << name << " to keep unique"; continue; } - d->section->keepUnique = true; + if (auto *sec = dyn_cast(d->section)) + sec->keepUnique = true; } // --icf=all --ignore-data-address-equality means that we can ignore @@ -2700,21 +2700,6 @@ static void redirectSymbols(Ctx &ctx, ArrayRef wrapped) { ctx.symtab->wrap(w.sym, w.real, w.wrap); } -static void reportMissingFeature(Ctx &ctx, StringRef config, - const Twine &report) { - if (config == "error") - ErrAlways(ctx) << report; - else if (config == "warning") - Warn(ctx) << report; -} - -static void checkAndReportMissingFeature(Ctx &ctx, StringRef config, - uint32_t features, uint32_t mask, - const Twine &report) { - if (!(features & mask)) - reportMissingFeature(ctx, config, report); -} - // To enable CET (x86's hardware-assisted control flow enforcement), each // source file must be compiled with -fcf-protection. Object files compiled // with the flag contain feature flags indicating that they are compatible @@ -2747,28 +2732,43 @@ static void readSecurityNotes(Ctx &ctx) { bool hasValidPauthAbiCoreInfo = llvm::any_of( ctx.aarch64PauthAbiCoreInfo, [](uint8_t c) { return c != 0; }); + auto report = [&](StringRef config) -> ELFSyncStream { + if (config == "error") + return {ctx, DiagLevel::Err}; + else if (config == "warning") + return {ctx, DiagLevel::Warn}; + return {ctx, DiagLevel::None}; + }; + auto reportUnless = [&](StringRef config, bool cond) -> ELFSyncStream { + if (cond) + return {ctx, DiagLevel::None}; + return report(config); + }; for (ELFFileBase *f : ctx.objectFiles) { uint32_t features = f->andFeatures; - checkAndReportMissingFeature( - ctx, ctx.arg.zBtiReport, features, GNU_PROPERTY_AARCH64_FEATURE_1_BTI, - toStr(ctx, f) + ": -z bti-report: file does not have " - "GNU_PROPERTY_AARCH64_FEATURE_1_BTI property"); - - checkAndReportMissingFeature( - ctx, ctx.arg.zGcsReport, features, GNU_PROPERTY_AARCH64_FEATURE_1_GCS, - toStr(ctx, f) + ": -z gcs-report: file does not have " - "GNU_PROPERTY_AARCH64_FEATURE_1_GCS property"); - - checkAndReportMissingFeature( - ctx, ctx.arg.zCetReport, features, GNU_PROPERTY_X86_FEATURE_1_IBT, - toStr(ctx, f) + ": -z cet-report: file does not have " - "GNU_PROPERTY_X86_FEATURE_1_IBT property"); - - checkAndReportMissingFeature( - ctx, ctx.arg.zCetReport, features, GNU_PROPERTY_X86_FEATURE_1_SHSTK, - toStr(ctx, f) + ": -z cet-report: file does not have " - "GNU_PROPERTY_X86_FEATURE_1_SHSTK property"); + reportUnless(ctx.arg.zBtiReport, + features & GNU_PROPERTY_AARCH64_FEATURE_1_BTI) + << f + << ": -z bti-report: file does not have " + "GNU_PROPERTY_AARCH64_FEATURE_1_BTI property"; + + reportUnless(ctx.arg.zGcsReport, + features & GNU_PROPERTY_AARCH64_FEATURE_1_GCS) + << f + << ": -z gcs-report: file does not have " + "GNU_PROPERTY_AARCH64_FEATURE_1_GCS property"; + + reportUnless(ctx.arg.zCetReport, features & GNU_PROPERTY_X86_FEATURE_1_IBT) + << f + << ": -z cet-report: file does not have " + "GNU_PROPERTY_X86_FEATURE_1_IBT property"; + + reportUnless(ctx.arg.zCetReport, + features & GNU_PROPERTY_X86_FEATURE_1_SHSTK) + << f + << ": -z cet-report: file does not have " + "GNU_PROPERTY_X86_FEATURE_1_SHSTK property"; if (ctx.arg.zForceBti && !(features & GNU_PROPERTY_AARCH64_FEATURE_1_BTI)) { features |= GNU_PROPERTY_AARCH64_FEATURE_1_BTI; @@ -2798,11 +2798,11 @@ static void readSecurityNotes(Ctx &ctx) { continue; if (f->aarch64PauthAbiCoreInfo.empty()) { - reportMissingFeature(ctx, ctx.arg.zPauthReport, - toStr(ctx, f) + - ": -z pauth-report: file does not have AArch64 " - "PAuth core info while '" + - referenceFileName + "' has one"); + report(ctx.arg.zPauthReport) + << f + << ": -z pauth-report: file does not have AArch64 " + "PAuth core info while '" + << referenceFileName << "' has one"; continue; } diff --git a/lld/ELF/DriverUtils.cpp b/lld/ELF/DriverUtils.cpp index 0278c070b2473..4c88723f090d0 100644 --- a/lld/ELF/DriverUtils.cpp +++ b/lld/ELF/DriverUtils.cpp @@ -174,6 +174,7 @@ std::string elf::createResponseFile(const opt::InputArgList &args) { break; case OPT_o: case OPT_Map: + case OPT_dependency_file: case OPT_print_archive_stats: case OPT_why_extract: // If an output path contains directories, "lld @response.txt" will diff --git a/lld/ELF/ICF.cpp b/lld/ELF/ICF.cpp index 7090ca779b0e7..606953e94bbad 100644 --- a/lld/ELF/ICF.cpp +++ b/lld/ELF/ICF.cpp @@ -542,7 +542,7 @@ template void ICF::run() { }); } while (repeat); - Log(ctx) << "ICF needed " << Twine(cnt) << " iterations"; + Log(ctx) << "ICF needed " << cnt << " iterations"; // Merge sections by the equivalence class. forEachClassRange(0, sections.size(), [&](size_t begin, size_t end) { diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp index 3a0ae43b813f4..83a25e1b66cff 100644 --- a/lld/ELF/InputFiles.cpp +++ b/lld/ELF/InputFiles.cpp @@ -133,8 +133,7 @@ static void updateARMVFPArgs(Ctx &ctx, const ARMAttributeParser &attributes, // Object compatible with all conventions. return; default: - ErrAlways(ctx) << f - << ": unknown Tag_ABI_VFP_args value: " << Twine(vfpArgs); + ErrAlways(ctx) << f << ": unknown Tag_ABI_VFP_args value: " << vfpArgs; return; } // Follow ld.bfd and error if there is a mix of calling conventions. @@ -284,7 +283,7 @@ static bool isCompatible(Ctx &ctx, InputFile *file) { StringRef target = !ctx.arg.bfdname.empty() ? ctx.arg.bfdname : ctx.arg.emulation; if (!target.empty()) { - ErrAlways(ctx) << file << " is incompatible with " << target; + Err(ctx) << file << " is incompatible with " << target; return false; } @@ -295,10 +294,10 @@ static bool isCompatible(Ctx &ctx, InputFile *file) { existing = ctx.sharedFiles[0]; else if (!ctx.bitcodeFiles.empty()) existing = ctx.bitcodeFiles[0]; - std::string with; + auto diag = Err(ctx); + diag << file << " is incompatible"; if (existing) - with = " with " + toStr(ctx, existing); - ErrAlways(ctx) << file << " is incompatible" << with; + diag << " with " << existing; return false; } @@ -691,8 +690,7 @@ template void ObjFile::parse(bool ignoreComdats) { // Otherwise, discard group members. for (uint32_t secIndex : entries.slice(1)) { if (secIndex >= size) - Fatal(ctx) << this - << ": invalid section index in group: " << Twine(secIndex); + Fatal(ctx) << this << ": invalid section index in group: " << secIndex; this->sections[secIndex] = &InputSection::discarded; } } @@ -748,8 +746,8 @@ bool ObjFile::shouldMerge(const Elf_Shdr &sec, StringRef name) { return false; if (sec.sh_size % entSize) Fatal(ctx) << this << ":(" << name << "): SHF_MERGE section size (" - << Twine(sec.sh_size) << ") must be a multiple of sh_entsize (" - << Twine(entSize) << ")"; + << uint64_t(sec.sh_size) + << ") must be a multiple of sh_entsize (" << entSize << ")"; if (sec.sh_flags & SHF_WRITE) Fatal(ctx) << this << ":(" << name @@ -810,7 +808,7 @@ void ObjFile::initializeSections(bool ignoreComdats, Warn(ctx) << this << ": --icf=safe conservatively ignores " "SHT_LLVM_ADDRSIG [index " - << Twine(i) + << i << "] with sh_link=0 " "(likely created using objcopy or ld -r)"; } @@ -903,9 +901,9 @@ void ObjFile::initializeSections(bool ignoreComdats, // simply handle such sections as non-mergeable ones. Degrading like this // is acceptable because section merging is optional. if (auto *ms = dyn_cast(s)) { - s = makeThreadLocal( - ms->file, ms->flags, ms->type, ms->addralign, - ms->contentMaybeDecompress(), ms->name); + s = makeThreadLocal(ms->file, ms->name, ms->type, + ms->flags, ms->addralign, ms->entsize, + ms->contentMaybeDecompress()); sections[info] = s; } @@ -939,7 +937,8 @@ void ObjFile::initializeSections(bool ignoreComdats, if (sec.sh_link < size) linkSec = this->sections[sec.sh_link]; if (!linkSec) - Fatal(ctx) << this << ": invalid sh_link index: " << Twine(sec.sh_link); + Fatal(ctx) << this + << ": invalid sh_link index: " << uint32_t(sec.sh_link); // A SHF_LINK_ORDER section is discarded if its linked-to section is // discarded. @@ -1167,7 +1166,7 @@ void ObjFile::initializeSymbols(const object::ELFFile &obj) { if (LLVM_UNLIKELY(eSym.st_shndx == SHN_COMMON)) { if (value == 0 || value >= UINT32_MAX) Fatal(ctx) << this << ": common symbol '" << sym->getName() - << "' has invalid alignment: " << Twine(value); + << "' has invalid alignment: " << value; hasCommonSyms = true; sym->resolve(ctx, CommonSymbol{ctx, this, StringRef(), binding, stOther, type, value, size}); @@ -1214,7 +1213,7 @@ void ObjFile::initSectionsAndLocalSyms(bool ignoreComdats) { else if (secIdx >= SHN_LORESERVE) secIdx = 0; if (LLVM_UNLIKELY(secIdx >= sections.size())) - Fatal(ctx) << this << ": invalid section index: " << Twine(secIdx); + Fatal(ctx) << this << ": invalid section index: " << secIdx; if (LLVM_UNLIKELY(eSym.getBinding() != STB_LOCAL)) ErrAlways(ctx) << this << ": non-local symbol (" << i << ") found at index < .symtab's sh_info (" << end << ")"; @@ -1274,7 +1273,7 @@ template void ObjFile::postParse() { else if (secIdx >= SHN_LORESERVE) secIdx = 0; if (LLVM_UNLIKELY(secIdx >= sections.size())) - Fatal(ctx) << this << ": invalid section index: " << Twine(secIdx); + Fatal(ctx) << this << ": invalid section index: " << secIdx; InputSectionBase *sec = sections[secIdx]; if (sec == &InputSection::discarded) { if (sym.traced) { @@ -1577,8 +1576,8 @@ template void SharedFile::parse() { // as of binutils 2.34, GNU ld produces VER_NDX_LOCAL. if (ver != VER_NDX_LOCAL && ver != VER_NDX_GLOBAL) { if (idx >= verneeds.size()) { - ErrAlways(ctx) << "corrupt input file: version need index " - << Twine(idx) << " for symbol " << name + ErrAlways(ctx) << "corrupt input file: version need index " << idx + << " for symbol " << name << " is out of bounds\n>>> defined in " << this; continue; } @@ -1602,8 +1601,8 @@ template void SharedFile::parse() { // VER_NDX_LOCAL. Workaround this bug. if (ctx.arg.emachine == EM_MIPS && name == "_gp_disp") continue; - ErrAlways(ctx) << "corrupt input file: version definition index " - << Twine(idx) << " for symbol " << name + ErrAlways(ctx) << "corrupt input file: version definition index " << idx + << " for symbol " << name << " is out of bounds\n>>> defined in " << this; continue; } @@ -1849,8 +1848,9 @@ void BitcodeFile::postParse() { void BinaryFile::parse() { ArrayRef data = arrayRefFromStringRef(mb.getBuffer()); - auto *section = make(this, SHF_ALLOC | SHF_WRITE, SHT_PROGBITS, - 8, data, ".data"); + auto *section = + make(this, ".data", SHT_PROGBITS, SHF_ALLOC | SHF_WRITE, + /*addralign=*/8, /*entsize=*/0, data); sections.push_back(section); // For each input file foo that is embedded to a result as a binary diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp index 1221f56dfe68a..75121285b7b23 100644 --- a/lld/ELF/InputSection.cpp +++ b/lld/ELF/InputSection.cpp @@ -52,13 +52,14 @@ static ArrayRef getSectionContents(ObjFile &file, return check(file.getObj().getSectionContents(hdr)); } -InputSectionBase::InputSectionBase(InputFile *file, uint64_t flags, - uint32_t type, uint64_t entsize, - uint32_t link, uint32_t info, - uint32_t addralign, ArrayRef data, - StringRef name, Kind sectionKind) - : SectionBase(sectionKind, file, name, flags, entsize, addralign, type, - info, link), +InputSectionBase::InputSectionBase(InputFile *file, StringRef name, + uint32_t type, uint64_t flags, uint32_t link, + uint32_t info, uint32_t addralign, + uint32_t entsize, ArrayRef data, + Kind sectionKind) + : SectionBase(sectionKind, file, name, type, flags, link, info, addralign, + entsize), + bss(0), decodedCrel(0), keepUnique(0), nopFiller(0), content_(data.data()), size(data.size()) { // In order to reduce memory allocation, we assume that mergeable // sections are smaller than 4 GiB, which is not an unreasonable @@ -95,10 +96,10 @@ template InputSectionBase::InputSectionBase(ObjFile &file, const typename ELFT::Shdr &hdr, StringRef name, Kind sectionKind) - : InputSectionBase(&file, getFlags(file.ctx, hdr.sh_flags), hdr.sh_type, - hdr.sh_entsize, hdr.sh_link, hdr.sh_info, - hdr.sh_addralign, getSectionContents(file, hdr), name, - sectionKind) { + : InputSectionBase(&file, name, hdr.sh_type, + getFlags(file.ctx, hdr.sh_flags), hdr.sh_link, + hdr.sh_info, hdr.sh_addralign, hdr.sh_entsize, + getSectionContents(file, hdr), sectionKind) { // We reject object files having insanely large alignments even though // they are allowed by the spec. I think 4GB is a reasonable limitation. // We might want to relax this in the future. @@ -273,7 +274,7 @@ void InputSectionBase::parseCompressedHeader(Ctx &ctx) { "not built with zstd support"; } else { ErrAlways(ctx) << this << ": unsupported compression type (" - << Twine(hdr->ch_type) << ")"; + << uint32_t(hdr->ch_type) << ")"; return; } @@ -355,18 +356,19 @@ std::string InputSectionBase::getObjMsg(uint64_t off) const { PotentialSpillSection::PotentialSpillSection(const InputSectionBase &source, InputSectionDescription &isd) - : InputSection(source.file, source.flags, source.type, source.addralign, {}, - source.name, SectionBase::Spill), + : InputSection(source.file, source.name, source.type, source.flags, + source.addralign, source.addralign, {}, SectionBase::Spill), isd(&isd) {} -InputSection InputSection::discarded(nullptr, 0, 0, 0, ArrayRef(), ""); +InputSection InputSection::discarded(nullptr, "", 0, 0, 0, 0, + ArrayRef()); -InputSection::InputSection(InputFile *f, uint64_t flags, uint32_t type, - uint32_t addralign, ArrayRef data, - StringRef name, Kind k) - : InputSectionBase(f, flags, type, - /*Entsize*/ 0, /*Link*/ 0, /*Info*/ 0, addralign, data, - name, k) { +InputSection::InputSection(InputFile *f, StringRef name, uint32_t type, + uint64_t flags, uint32_t addralign, uint32_t entsize, + ArrayRef data, Kind k) + : InputSectionBase(f, name, type, flags, + /*link=*/0, /*info=*/0, addralign, /*entsize=*/entsize, + data, k) { assert(f || this == &InputSection::discarded); } @@ -1092,7 +1094,7 @@ void InputSection::relocateNonAlloc(Ctx &ctx, uint8_t *buf, // R_ABS/R_DTPREL and some other relocations can be used from non-SHF_ALLOC // sections. if (LLVM_LIKELY(expr == R_ABS) || expr == R_DTPREL || expr == R_GOTPLTREL || - expr == R_RISCV_ADD) { + expr == R_RISCV_ADD || expr == R_ARM_SBREL) { target.relocateNoSym(bufLoc, type, SignExtend64(sym.getVA(ctx, addend))); continue; @@ -1437,12 +1439,13 @@ MergeInputSection::MergeInputSection(ObjFile &f, StringRef name) : InputSectionBase(f, header, name, InputSectionBase::Merge) {} -MergeInputSection::MergeInputSection(Ctx &ctx, uint64_t flags, uint32_t type, - uint64_t entsize, ArrayRef data, - StringRef name) - : InputSectionBase(ctx.internalFile, flags, type, entsize, /*link=*/0, +MergeInputSection::MergeInputSection(Ctx &ctx, StringRef name, uint32_t type, + uint64_t flags, uint64_t entsize, + ArrayRef data) + : InputSectionBase(ctx.internalFile, name, type, flags, /*link=*/0, /*info=*/0, - /*alignment=*/entsize, data, name, SectionBase::Merge) {} + /*addralign=*/entsize, entsize, data, + SectionBase::Merge) {} // This function is called after we obtain a complete list of input sections // that need to be linked. This is responsible to split section contents diff --git a/lld/ELF/InputSection.h b/lld/ELF/InputSection.h index 303452fed60d8..268caa547ffed 100644 --- a/lld/ELF/InputSection.h +++ b/lld/ELF/InputSection.h @@ -59,25 +59,17 @@ template struct RelsOrRelas { // sections. class SectionBase { public: - enum Kind { Regular, Synthetic, Spill, EHFrame, Merge, Output, Class }; - - Kind kind() const { return (Kind)sectionKind; } - - LLVM_PREFERRED_TYPE(Kind) - uint8_t sectionKind : 3; - - // The next two bit fields are only used by InputSectionBase, but we - // put them here so the struct packs better. - - LLVM_PREFERRED_TYPE(bool) - uint8_t bss : 1; - - // Set for sections that should not be folded by ICF. - LLVM_PREFERRED_TYPE(bool) - uint8_t keepUnique : 1; + enum Kind : uint8_t { + Regular, + Synthetic, + Spill, + EHFrame, + Merge, + Output, + Class, + }; - uint8_t partition = 1; - uint32_t type; + Kind kind() const { return sectionKind; } // The file which contains this section. For InputSectionBase, its dynamic // type is usually ObjFile, but may be an InputFile of InternalKind @@ -93,10 +85,17 @@ class SectionBase { // These corresponds to the fields in Elf_Shdr. uint64_t flags; - uint32_t addralign; - uint32_t entsize; + uint32_t type; uint32_t link; uint32_t info; + uint32_t addralign; + uint32_t entsize; + + Kind sectionKind; + uint8_t partition = 1; + + // The next two bit fields are only used by InputSectionBase, but we + // put them here so the struct packs better. Ctx &getCtx() const; OutputSection *getOutputSection(); @@ -116,11 +115,11 @@ class SectionBase { protected: constexpr SectionBase(Kind sectionKind, InputFile *file, StringRef name, - uint64_t flags, uint32_t entsize, uint32_t addralign, - uint32_t type, uint32_t info, uint32_t link) - : sectionKind(sectionKind), bss(false), keepUnique(false), type(type), - file(file), name(name), flags(flags), addralign(addralign), - entsize(entsize), link(link), info(info) {} + uint32_t type, uint64_t flags, uint32_t link, + uint32_t info, uint32_t addralign, uint32_t entsize) + : file(file), name(name), flags(flags), type(type), link(link), + info(info), addralign(addralign), entsize(entsize), + sectionKind(sectionKind) {} }; struct SymbolAnchor { @@ -148,15 +147,34 @@ class InputSectionBase : public SectionBase { InputSectionBase(ObjFile &file, const typename ELFT::Shdr &header, StringRef name, Kind sectionKind); - InputSectionBase(InputFile *file, uint64_t flags, uint32_t type, - uint64_t entsize, uint32_t link, uint32_t info, - uint32_t addralign, ArrayRef data, StringRef name, + InputSectionBase(InputFile *file, StringRef name, uint32_t type, + uint64_t flags, uint32_t link, uint32_t info, + uint32_t addralign, uint32_t entsize, ArrayRef data, Kind sectionKind); static bool classof(const SectionBase *s) { return s->kind() != Output && s->kind() != Class; } + LLVM_PREFERRED_TYPE(bool) + uint8_t bss : 1; + + // Whether this section is SHT_CREL and has been decoded to RELA by + // relsOrRelas. + LLVM_PREFERRED_TYPE(bool) + uint8_t decodedCrel : 1; + + // Set for sections that should not be folded by ICF. + LLVM_PREFERRED_TYPE(bool) + uint8_t keepUnique : 1; + + // Whether the section needs to be padded with a NOP filler due to + // deleteFallThruJmpInsn. + LLVM_PREFERRED_TYPE(bool) + uint8_t nopFiller : 1; + + mutable bool compressed = false; + // Input sections are part of an output section. Special sections // like .eh_frame and merge sections are first combined into a // synthetic section that is then added to an output section. In all @@ -176,16 +194,6 @@ class InputSectionBase : public SectionBase { // be reset to zero after uses. uint32_t bytesDropped = 0; - mutable bool compressed = false; - - // Whether this section is SHT_CREL and has been decoded to RELA by - // relsOrRelas. - bool decodedCrel = false; - - // Whether the section needs to be padded with a NOP filler due to - // deleteFallThruJmpInsn. - bool nopFiller = false; - void drop_back(unsigned num) { assert(bytesDropped + num < 256); bytesDropped += num; @@ -315,8 +323,8 @@ class MergeInputSection : public InputSectionBase { template MergeInputSection(ObjFile &f, const typename ELFT::Shdr &header, StringRef name); - MergeInputSection(Ctx &, uint64_t flags, uint32_t type, uint64_t entsize, - ArrayRef data, StringRef name); + MergeInputSection(Ctx &, StringRef name, uint32_t type, uint64_t flags, + uint64_t entsize, ArrayRef data); static bool classof(const SectionBase *s) { return s->kind() == Merge; } void splitIntoPieces(); @@ -394,8 +402,9 @@ class EhInputSection : public InputSectionBase { // .eh_frame. It also includes the synthetic sections themselves. class InputSection : public InputSectionBase { public: - InputSection(InputFile *f, uint64_t flags, uint32_t type, uint32_t addralign, - ArrayRef data, StringRef name, Kind k = Regular); + InputSection(InputFile *f, StringRef name, uint32_t type, uint64_t flags, + uint32_t addralign, uint32_t entsize, ArrayRef data, + Kind k = Regular); template InputSection(ObjFile &f, const typename ELFT::Shdr &header, StringRef name); @@ -466,15 +475,17 @@ class PotentialSpillSection : public InputSection { } }; -static_assert(sizeof(InputSection) <= 160, "InputSection is too big"); +#ifndef _WIN32 +static_assert(sizeof(InputSection) <= 152, "InputSection is too big"); +#endif class SyntheticSection : public InputSection { public: Ctx &ctx; - SyntheticSection(Ctx &ctx, uint64_t flags, uint32_t type, uint32_t addralign, - StringRef name) - : InputSection(ctx.internalFile, flags, type, addralign, {}, name, - InputSectionBase::Synthetic), + SyntheticSection(Ctx &ctx, StringRef name, uint32_t type, uint64_t flags, + uint32_t addralign) + : InputSection(ctx.internalFile, name, type, flags, addralign, + /*entsize=*/0, {}, InputSectionBase::Synthetic), ctx(ctx) {} virtual ~SyntheticSection() = default; diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp index d8aa2c46cfa5b..7d24c6750b0d1 100644 --- a/lld/ELF/LinkerScript.cpp +++ b/lld/ELF/LinkerScript.cpp @@ -145,7 +145,9 @@ OutputDesc *LinkerScript::createOutputSection(StringRef name, // There was a forward reference. sec = secRef; } else { - sec = make(ctx, name, SHT_PROGBITS, 0); + descPool.emplace_back( + std::make_unique(ctx, name, SHT_PROGBITS, 0)); + sec = descPool.back().get(); if (!secRef) secRef = sec; } @@ -154,10 +156,14 @@ OutputDesc *LinkerScript::createOutputSection(StringRef name, } OutputDesc *LinkerScript::getOrCreateOutputSection(StringRef name) { - OutputDesc *&cmdRef = nameToOutputSection[CachedHashStringRef(name)]; - if (!cmdRef) - cmdRef = make(ctx, name, SHT_PROGBITS, 0); - return cmdRef; + auto &secRef = nameToOutputSection[CachedHashStringRef(name)]; + if (!secRef) { + secRef = descPool + .emplace_back( + std::make_unique(ctx, name, SHT_PROGBITS, 0)) + .get(); + } + return secRef; } // Expands the memory region by the specified size. @@ -1778,7 +1784,7 @@ static void checkMemoryRegion(Ctx &ctx, const MemoryRegion *region, if (osecEnd > regionEnd) { ErrAlways(ctx) << "section '" << osec->name << "' will not fit in region '" << region->name << "': overflowed by " - << Twine(osecEnd - regionEnd) << " bytes"; + << (osecEnd - regionEnd) << " bytes"; } } diff --git a/lld/ELF/LinkerScript.h b/lld/ELF/LinkerScript.h index f5408b4ba3037..328368fd3b433 100644 --- a/lld/ELF/LinkerScript.h +++ b/lld/ELF/LinkerScript.h @@ -299,6 +299,7 @@ class LinkerScript final { }; Ctx &ctx; + SmallVector, 0> descPool; llvm::DenseMap nameToOutputSection; StringRef getOutputSectionName(const InputSectionBase *s) const; diff --git a/lld/ELF/MapFile.cpp b/lld/ELF/MapFile.cpp index f18d799a8c4e4..138d35951a3bb 100644 --- a/lld/ELF/MapFile.cpp +++ b/lld/ELF/MapFile.cpp @@ -59,7 +59,9 @@ static std::vector getSymbols(Ctx &ctx) { for (Symbol *b : file->getSymbols()) if (auto *dr = dyn_cast(b)) if (!dr->isSection() && dr->section && dr->section->isLive() && - (dr->file == file || dr->hasFlag(NEEDS_COPY) || dr->section->bss)) + (dr->file == file || dr->hasFlag(NEEDS_COPY) || + (isa(dr->section) && + cast(dr->section)->bss))) v.push_back(dr); return v; } diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp index 9bcbea250e7db..31d14df9be71e 100644 --- a/lld/ELF/OutputSections.cpp +++ b/lld/ELF/OutputSections.cpp @@ -67,9 +67,8 @@ void OutputSection::writeHeaderTo(typename ELFT::Shdr *shdr) { OutputSection::OutputSection(Ctx &ctx, StringRef name, uint32_t type, uint64_t flags) - : SectionBase(Output, ctx.internalFile, name, flags, /*entsize=*/0, - /*addralign=*/1, type, - /*info=*/0, /*link=*/0), + : SectionBase(Output, ctx.internalFile, name, type, flags, /*link=*/0, + /*info=*/0, /*addralign=*/1, /*entsize=*/0), ctx(ctx) {} uint64_t OutputSection::getLMA() const { diff --git a/lld/ELF/Relocations.cpp b/lld/ELF/Relocations.cpp index e110adead5ad0..d311dba41741c 100644 --- a/lld/ELF/Relocations.cpp +++ b/lld/ELF/Relocations.cpp @@ -74,13 +74,12 @@ static std::optional getLinkerScriptLocation(Ctx &ctx, return std::nullopt; } -static std::string getDefinedLocation(Ctx &ctx, const Symbol &sym) { - const char msg[] = "\n>>> defined in "; +static void printDefinedLocation(ELFSyncStream &s, const Symbol &sym) { + s << "\n>>> defined in "; if (sym.file) - return msg + toStr(ctx, sym.file); - if (std::optional loc = getLinkerScriptLocation(ctx, sym)) - return msg + *loc; - return ""; + return void(s << sym.file); + if (std::optional loc = getLinkerScriptLocation(s.ctx, sym)) + return void(s << *loc); } // Construct a message in the following format. @@ -88,13 +87,14 @@ static std::string getDefinedLocation(Ctx &ctx, const Symbol &sym) { // >>> defined in /home/alice/src/foo.o // >>> referenced by bar.c:12 (/home/alice/src/bar.c:12) // >>> /home/alice/src/bar.o:(.text+0x1) -static std::string getLocation(Ctx &ctx, InputSectionBase &s, const Symbol &sym, - uint64_t off) { - std::string msg = getDefinedLocation(ctx, sym) + "\n>>> referenced by "; - std::string src = s.getSrcMsg(sym, off); +static void printLocation(ELFSyncStream &s, InputSectionBase &sec, + const Symbol &sym, uint64_t off) { + printDefinedLocation(s, sym); + s << "\n>>> referenced by "; + std::string src = sec.getSrcMsg(sym, off); if (!src.empty()) - msg += src + "\n>>> "; - return msg + s.getObjMsg(off); + s << src << "\n>>> "; + s << sec.getObjMsg(off); } void elf::reportRangeError(Ctx &ctx, uint8_t *loc, const Relocation &rel, @@ -121,7 +121,7 @@ void elf::reportRangeError(Ctx &ctx, uint8_t *loc, const Relocation &rel, if (!errPlace.srcLoc.empty()) diag << "\n>>> referenced by " << errPlace.srcLoc; if (rel.sym && !rel.sym->isSection()) - diag << getDefinedLocation(ctx, *rel.sym); + printDefinedLocation(diag, *rel.sym); if (errPlace.isec && errPlace.isec->name.starts_with(".debug")) diag << "; consider recompiling with -fdebug-types-section to reduce size " @@ -133,8 +133,10 @@ void elf::reportRangeError(Ctx &ctx, uint8_t *loc, int64_t v, int n, auto diag = Err(ctx); diag << getErrorPlace(ctx, loc).loc << msg << " is out of range: " << v << " is not in [" << llvm::minIntN(n) << ", " << llvm::maxIntN(n) << "]"; - if (!sym.getName().empty()) - diag << "; references '" << &sym << '\'' << getDefinedLocation(ctx, sym); + if (!sym.getName().empty()) { + diag << "; references '" << &sym << '\''; + printDefinedLocation(diag, sym); + } } // Build a bitmask with one bit set for each 64 subset of RelExpr. @@ -522,42 +524,39 @@ int64_t RelocationScanner::computeMipsAddend(const RelTy &rel, RelExpr expr, // Custom error message if Sym is defined in a discarded section. template -static std::string maybeReportDiscarded(Ctx &ctx, Undefined &sym) { +static void maybeReportDiscarded(Ctx &ctx, ELFSyncStream &msg, Undefined &sym) { auto *file = dyn_cast_or_null>(sym.file); if (!file || !sym.discardedSecIdx) - return ""; + return; ArrayRef objSections = file->template getELFShdrs(); - std::string msg; if (sym.type == ELF::STT_SECTION) { - msg = "relocation refers to a discarded section: "; - msg += CHECK2( + msg << "relocation refers to a discarded section: "; + msg << CHECK2( file->getObj().getSectionName(objSections[sym.discardedSecIdx]), file); } else { - msg = "relocation refers to a symbol in a discarded section: " + - toStr(ctx, sym); + msg << "relocation refers to a symbol in a discarded section: " << &sym; } - msg += "\n>>> defined in " + toStr(ctx, file); + msg << "\n>>> defined in " << file; Elf_Shdr_Impl elfSec = objSections[sym.discardedSecIdx - 1]; if (elfSec.sh_type != SHT_GROUP) - return msg; + return; // If the discarded section is a COMDAT. StringRef signature = file->getShtGroupSignature(objSections, elfSec); if (const InputFile *prevailing = ctx.symtab->comdatGroups.lookup(CachedHashStringRef(signature))) { - msg += "\n>>> section group signature: " + signature.str() + - "\n>>> prevailing definition is in " + toStr(ctx, prevailing); + msg << "\n>>> section group signature: " << signature + << "\n>>> prevailing definition is in " << prevailing; if (sym.nonPrevailing) { - msg += "\n>>> or the symbol in the prevailing group had STB_WEAK " + msg << "\n>>> or the symbol in the prevailing group had STB_WEAK " "binding and the symbol in a non-prevailing group had STB_GLOBAL " "binding. Mixing groups with STB_WEAK and STB_GLOBAL binding " "signature is not supported"; } } - return msg; } // Check whether the definition name def is a mangled function name that matches @@ -695,8 +694,9 @@ static const Symbol *getAlternativeSpelling(Ctx &ctx, const Undefined &sym, static void reportUndefinedSymbol(Ctx &ctx, const UndefinedDiag &undef, bool correctSpelling) { Undefined &sym = *undef.sym; + ELFSyncStream msg(ctx, DiagLevel::None); - auto visibility = [&]() -> std::string { + auto visibility = [&]() { switch (sym.visibility()) { case STV_INTERNAL: return "internal "; @@ -709,75 +709,70 @@ static void reportUndefinedSymbol(Ctx &ctx, const UndefinedDiag &undef, } }; - std::string msg; switch (ctx.arg.ekind) { case ELF32LEKind: - msg = maybeReportDiscarded(ctx, sym); + maybeReportDiscarded(ctx, msg, sym); break; case ELF32BEKind: - msg = maybeReportDiscarded(ctx, sym); + maybeReportDiscarded(ctx, msg, sym); break; case ELF64LEKind: - msg = maybeReportDiscarded(ctx, sym); + maybeReportDiscarded(ctx, msg, sym); break; case ELF64BEKind: - msg = maybeReportDiscarded(ctx, sym); + maybeReportDiscarded(ctx, msg, sym); break; default: llvm_unreachable(""); } - if (msg.empty()) - msg = "undefined " + visibility() + "symbol: " + toStr(ctx, sym); + if (msg.str().empty()) + msg << "undefined " << visibility() << "symbol: " << &sym; const size_t maxUndefReferences = 3; - size_t i = 0; - for (UndefinedDiag::Loc l : undef.locs) { - if (i >= maxUndefReferences) - break; + for (UndefinedDiag::Loc l : + ArrayRef(undef.locs).take_front(maxUndefReferences)) { InputSectionBase &sec = *l.sec; uint64_t offset = l.offset; - msg += "\n>>> referenced by "; + msg << "\n>>> referenced by "; // In the absence of line number information, utilize DW_TAG_variable (if // present) for the enclosing symbol (e.g. var in `int *a[] = {&undef};`). Symbol *enclosing = sec.getEnclosingSymbol(offset); std::string src = sec.getSrcMsg(enclosing ? *enclosing : sym, offset); if (!src.empty()) - msg += src + "\n>>> "; - msg += sec.getObjMsg(offset); - i++; + msg << src << "\n>>> "; + msg << sec.getObjMsg(offset); } - if (i < undef.locs.size()) - msg += ("\n>>> referenced " + Twine(undef.locs.size() - i) + " more times") - .str(); + if (maxUndefReferences < undef.locs.size()) + msg << "\n>>> referenced " << (undef.locs.size() - maxUndefReferences) + << " more times"; if (correctSpelling) { std::string pre_hint = ": ", post_hint; if (const Symbol *corrected = getAlternativeSpelling(ctx, sym, pre_hint, post_hint)) { - msg += - "\n>>> did you mean" + pre_hint + toStr(ctx, *corrected) + post_hint; + msg << "\n>>> did you mean" << pre_hint << corrected << post_hint; if (corrected->file) - msg += "\n>>> defined in: " + toStr(ctx, corrected->file); + msg << "\n>>> defined in: " << corrected->file; } } if (sym.getName().starts_with("_ZTV")) - msg += - "\n>>> the vtable symbol may be undefined because the class is missing " - "its key function (see https://lld.llvm.org/missingkeyfunction)"; + msg << "\n>>> the vtable symbol may be undefined because the class is " + "missing its key function " + "(see https://lld.llvm.org/missingkeyfunction)"; if (ctx.arg.gcSections && ctx.arg.zStartStopGC && sym.getName().starts_with("__start_")) { - msg += "\n>>> the encapsulation symbol needs to be retained under " + msg << "\n>>> the encapsulation symbol needs to be retained under " "--gc-sections properly; consider -z nostart-stop-gc " "(see https://lld.llvm.org/ELF/start-stop-gc)"; } if (undef.isWarning) - Warn(ctx) << msg; + Warn(ctx) << msg.str(); else - ctx.e.error(msg, ErrorTag::SymbolNotFound, {sym.getName()}); + ctx.e.error(msg.str(), ErrorTag::SymbolNotFound, {sym.getName()}); } void elf::reportUndefinedSymbols(Ctx &ctx) { @@ -1020,9 +1015,9 @@ bool RelocationScanner::isStaticLinkTimeConstant(RelExpr e, RelType type, if (sym.scriptDefined) return true; - Err(ctx) << "relocation " << type - << " cannot refer to absolute symbol: " << &sym - << getLocation(ctx, *sec, sym, relOff); + auto diag = Err(ctx); + diag << "relocation " << type << " cannot refer to absolute symbol: " << &sym; + printLocation(diag, *sec, sym, relOff); return true; } @@ -1188,18 +1183,21 @@ void RelocationScanner::processAux(RelExpr expr, RelType type, uint64_t offset, if (!ctx.arg.shared && sym.isShared() && !(ctx.arg.emachine == EM_AARCH64 && type == R_AARCH64_AUTH_ABS64)) { if (!canDefineSymbolInExecutable(ctx, sym)) { - Err(ctx) << "cannot preempt symbol: " << &sym - << getLocation(ctx, *sec, sym, offset); + auto diag = Err(ctx); + diag << "cannot preempt symbol: " << &sym; + printLocation(diag, *sec, sym, offset); return; } if (sym.isObject()) { // Produce a copy relocation. if (auto *ss = dyn_cast(&sym)) { - if (!ctx.arg.zCopyreloc) - Err(ctx) << "unresolvable relocation " << type << " against symbol '" - << ss << "'; recompile with -fPIC or remove '-z nocopyreloc'" - << getLocation(ctx, *sec, sym, offset); + if (!ctx.arg.zCopyreloc) { + auto diag = Err(ctx); + diag << "unresolvable relocation " << type << " against symbol '" + << ss << "'; recompile with -fPIC or remove '-z nocopyreloc'"; + printLocation(diag, *sec, sym, offset); + } sym.setFlags(NEEDS_COPY); } sec->addReloc({expr, type, offset, addend, &sym}); @@ -1234,20 +1232,26 @@ void RelocationScanner::processAux(RelExpr expr, RelType type, uint64_t offset, // * If a library definition gets preempted to the executable, it will have // the wrong ebx value. if (sym.isFunc()) { - if (ctx.arg.pie && ctx.arg.emachine == EM_386) - Err(ctx) << "symbol '" << &sym - << "' cannot be preempted; recompile with -fPIE" - << getLocation(ctx, *sec, sym, offset); + if (ctx.arg.pie && ctx.arg.emachine == EM_386) { + auto diag = Err(ctx); + diag << "symbol '" << &sym + << "' cannot be preempted; recompile with -fPIE"; + printLocation(diag, *sec, sym, offset); + } sym.setFlags(NEEDS_COPY | NEEDS_PLT); sec->addReloc({expr, type, offset, addend, &sym}); return; } } - Err(ctx) << "relocation " << type << " cannot be used against " - << (sym.getName().empty() ? "local symbol" - : ("symbol '" + toStr(ctx, sym) + "'")) - << "; recompile with -fPIC" << getLocation(ctx, *sec, sym, offset); + auto diag = Err(ctx); + diag << "relocation " << type << " cannot be used against "; + if (sym.getName().empty()) + diag << "local symbol"; + else + diag << "symbol '" << &sym << "'"; + diag << "; recompile with -fPIC"; + printLocation(diag, *sec, sym, offset); } // This function is similar to the `handleTlsRelocation`. MIPS does not @@ -1284,9 +1288,10 @@ unsigned RelocationScanner::handleTlsRelocation(RelExpr expr, RelType type, int64_t addend) { if (expr == R_TPREL || expr == R_TPREL_NEG) { if (ctx.arg.shared) { - Err(ctx) << "relocation " << type << " against " << &sym - << " cannot be used with -shared" - << getLocation(ctx, *sec, sym, offset); + auto diag = Err(ctx); + diag << "relocation " << type << " against " << &sym + << " cannot be used with -shared"; + printLocation(diag, *sec, sym, offset); return 1; } return 0; @@ -1493,9 +1498,10 @@ void RelocationScanner::scanOne(typename Relocs::const_iterator &i) { // Skip the error check for CREL, which does not set `end`. if constexpr (!RelTy::IsCrel) { if (i == end) { - Err(ctx) << "R_PPC64_TLSGD/R_PPC64_TLSLD may not be the last " - "relocation" - << getLocation(ctx, *sec, sym, offset); + auto diag = Err(ctx); + diag << "R_PPC64_TLSGD/R_PPC64_TLSLD may not be the last " + "relocation"; + printLocation(diag, *sec, sym, offset); return; } } diff --git a/lld/ELF/SyntheticSections.cpp b/lld/ELF/SyntheticSections.cpp index 7e5e713513c47..21fe2a25fa1bd 100644 --- a/lld/ELF/SyntheticSections.cpp +++ b/lld/ELF/SyntheticSections.cpp @@ -89,8 +89,8 @@ static ArrayRef getVersion(Ctx &ctx) { // The returned object is a mergeable string section. MergeInputSection *elf::createCommentSection(Ctx &ctx) { auto *sec = - make(ctx, SHF_MERGE | SHF_STRINGS, SHT_PROGBITS, 1, - getVersion(ctx), ".comment"); + make(ctx, ".comment", SHT_PROGBITS, + SHF_MERGE | SHF_STRINGS, 1, getVersion(ctx)); sec->splitIntoPieces(); return sec; } @@ -99,7 +99,7 @@ MergeInputSection *elf::createCommentSection(Ctx &ctx) { template MipsAbiFlagsSection::MipsAbiFlagsSection(Ctx &ctx, Elf_Mips_ABIFlags flags) - : SyntheticSection(ctx, SHF_ALLOC, SHT_MIPS_ABIFLAGS, 8, ".MIPS.abiflags"), + : SyntheticSection(ctx, ".MIPS.abiflags", SHT_MIPS_ABIFLAGS, SHF_ALLOC, 8), flags(flags) { this->entsize = sizeof(Elf_Mips_ABIFlags); } @@ -120,23 +120,20 @@ MipsAbiFlagsSection::create(Ctx &ctx) { sec->markDead(); create = true; - std::string filename = toStr(ctx, sec->file); const size_t size = sec->content().size(); // Older version of BFD (such as the default FreeBSD linker) concatenate // .MIPS.abiflags instead of merging. To allow for this case (or potential // zero padding) we ignore everything after the first Elf_Mips_ABIFlags if (size < sizeof(Elf_Mips_ABIFlags)) { - ErrAlways(ctx) << filename - << ": invalid size of .MIPS.abiflags section: got " - << Twine(size) << " instead of " - << Twine(sizeof(Elf_Mips_ABIFlags)); + Err(ctx) << sec->file << ": invalid size of .MIPS.abiflags section: got " + << size << " instead of " << sizeof(Elf_Mips_ABIFlags); return nullptr; } auto *s = reinterpret_cast(sec->content().data()); if (s->version != 0) { - ErrAlways(ctx) << filename << ": unexpected .MIPS.abiflags version " - << Twine(s->version); + Err(ctx) << sec->file << ": unexpected .MIPS.abiflags version " + << s->version; return nullptr; } @@ -152,7 +149,7 @@ MipsAbiFlagsSection::create(Ctx &ctx) { flags.flags1 |= s->flags1; flags.flags2 |= s->flags2; flags.fp_abi = - elf::getMipsFpAbiFlag(ctx, flags.fp_abi, s->fp_abi, filename); + elf::getMipsFpAbiFlag(ctx, sec->file, flags.fp_abi, s->fp_abi); }; if (create) @@ -163,7 +160,7 @@ MipsAbiFlagsSection::create(Ctx &ctx) { // .MIPS.options section. template MipsOptionsSection::MipsOptionsSection(Ctx &ctx, Elf_Mips_RegInfo reginfo) - : SyntheticSection(ctx, SHF_ALLOC, SHT_MIPS_OPTIONS, 8, ".MIPS.options"), + : SyntheticSection(ctx, ".MIPS.options", SHT_MIPS_OPTIONS, SHF_ALLOC, 8), reginfo(reginfo) { this->entsize = sizeof(Elf_Mips_Options) + sizeof(Elf_Mips_RegInfo); } @@ -197,12 +194,10 @@ MipsOptionsSection::create(Ctx &ctx) { for (InputSectionBase *sec : sections) { sec->markDead(); - std::string filename = toStr(ctx, sec->file); ArrayRef d = sec->content(); - while (!d.empty()) { if (d.size() < sizeof(Elf_Mips_Options)) { - ErrAlways(ctx) << filename << ": invalid size of .MIPS.options section"; + Err(ctx) << sec->file << ": invalid size of .MIPS.options section"; break; } @@ -213,8 +208,10 @@ MipsOptionsSection::create(Ctx &ctx) { break; } - if (!opt->size) - Fatal(ctx) << filename << ": zero option descriptor size"; + if (!opt->size) { + Err(ctx) << sec->file << ": zero option descriptor size"; + break; + } d = d.slice(opt->size); } }; @@ -225,7 +222,7 @@ MipsOptionsSection::create(Ctx &ctx) { // MIPS .reginfo section. template MipsReginfoSection::MipsReginfoSection(Ctx &ctx, Elf_Mips_RegInfo reginfo) - : SyntheticSection(ctx, SHF_ALLOC, SHT_MIPS_REGINFO, 4, ".reginfo"), + : SyntheticSection(ctx, ".reginfo", SHT_MIPS_REGINFO, SHF_ALLOC, 4), reginfo(reginfo) { this->entsize = sizeof(Elf_Mips_RegInfo); } @@ -256,7 +253,7 @@ MipsReginfoSection::create(Ctx &ctx) { sec->markDead(); if (sec->content().size() != sizeof(Elf_Mips_RegInfo)) { - ErrAlways(ctx) << sec->file << ": invalid size of .reginfo section"; + Err(ctx) << sec->file << ": invalid size of .reginfo section"; return nullptr; } @@ -273,8 +270,9 @@ InputSection *elf::createInterpSection(Ctx &ctx) { StringRef s = ctx.saver.save(ctx.arg.dynamicLinker); ArrayRef contents = {(const uint8_t *)s.data(), s.size() + 1}; - return make(ctx.internalFile, SHF_ALLOC, SHT_PROGBITS, 1, - contents, ".interp"); + return make(ctx.internalFile, ".interp", SHT_PROGBITS, + SHF_ALLOC, + /*addralign=*/1, /*entsize=*/0, contents); } Defined *elf::addSyntheticLocal(Ctx &ctx, StringRef name, uint8_t type, @@ -323,8 +321,8 @@ static size_t getHashSize(Ctx &ctx) { // sets is empty, or some input files didn't have .note.gnu.property sections), // we don't create this section. GnuPropertySection::GnuPropertySection(Ctx &ctx) - : SyntheticSection(ctx, llvm::ELF::SHF_ALLOC, llvm::ELF::SHT_NOTE, - ctx.arg.wordsize, ".note.gnu.property") {} + : SyntheticSection(ctx, ".note.gnu.property", SHT_NOTE, SHF_ALLOC, + ctx.arg.wordsize) {} void GnuPropertySection::writeTo(uint8_t *buf) { write32(ctx, buf, 4); // Name size @@ -365,7 +363,7 @@ size_t GnuPropertySection::getSize() const { } BuildIdSection::BuildIdSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_NOTE, 4, ".note.gnu.build-id"), + : SyntheticSection(ctx, ".note.gnu.build-id", SHT_NOTE, SHF_ALLOC, 4), hashSize(getHashSize(ctx)) {} void BuildIdSection::writeTo(uint8_t *buf) { @@ -383,14 +381,14 @@ void BuildIdSection::writeBuildId(ArrayRef buf) { BssSection::BssSection(Ctx &ctx, StringRef name, uint64_t size, uint32_t alignment) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE, SHT_NOBITS, alignment, - name) { + : SyntheticSection(ctx, name, SHT_NOBITS, SHF_ALLOC | SHF_WRITE, + alignment) { this->bss = true; this->size = size; } EhFrameSection::EhFrameSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_PROGBITS, 1, ".eh_frame") {} + : SyntheticSection(ctx, ".eh_frame", SHT_PROGBITS, SHF_ALLOC, 1) {} // Search for an existing CIE record or create a new one. // CIE records from input object files are uniquified by their contents @@ -661,8 +659,8 @@ void EhFrameSection::writeTo(uint8_t *buf) { } GotSection::GotSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE, SHT_PROGBITS, - ctx.target->gotEntrySize, ".got") { + : SyntheticSection(ctx, ".got", SHT_PROGBITS, SHF_ALLOC | SHF_WRITE, + ctx.target->gotEntrySize) { numEntries = ctx.target->gotHeaderEntriesNum; } @@ -745,8 +743,8 @@ static uint64_t getMipsPageCount(uint64_t size) { } MipsGotSection::MipsGotSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL, - SHT_PROGBITS, 16, ".got") {} + : SyntheticSection(ctx, ".got", SHT_PROGBITS, + SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL, 16) {} void MipsGotSection::addEntry(InputFile &file, Symbol &sym, int64_t addend, RelExpr expr) { @@ -1179,8 +1177,8 @@ void MipsGotSection::writeTo(uint8_t *buf) { // section. I don't know why we have a BSS style type for the section but it is // consistent across both 64-bit PowerPC ABIs as well as the 32-bit PowerPC ABI. GotPltSection::GotPltSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE, SHT_PROGBITS, - ctx.arg.wordsize, ".got.plt") { + : SyntheticSection(ctx, ".got.plt", SHT_PROGBITS, SHF_ALLOC | SHF_WRITE, + ctx.arg.wordsize) { if (ctx.arg.emachine == EM_PPC) { name = ".plt"; } else if (ctx.arg.emachine == EM_PPC64) { @@ -1231,9 +1229,9 @@ static StringRef getIgotPltName(Ctx &ctx) { // On PowerPC64 the GotPltSection type is SHT_NOBITS so we have to follow suit // with the IgotPltSection. IgotPltSection::IgotPltSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE, + : SyntheticSection(ctx, getIgotPltName(ctx), ctx.arg.emachine == EM_PPC64 ? SHT_NOBITS : SHT_PROGBITS, - ctx.target->gotEntrySize, getIgotPltName(ctx)) {} + SHF_ALLOC | SHF_WRITE, ctx.target->gotEntrySize) {} void IgotPltSection::addEntry(Symbol &sym) { assert(ctx.symAux.back().pltIdx == entries.size()); @@ -1252,8 +1250,8 @@ void IgotPltSection::writeTo(uint8_t *buf) { } StringTableSection::StringTableSection(Ctx &ctx, StringRef name, bool dynamic) - : SyntheticSection(ctx, dynamic ? (uint64_t)SHF_ALLOC : 0, SHT_STRTAB, 1, - name), + : SyntheticSection(ctx, name, SHT_STRTAB, dynamic ? (uint64_t)SHF_ALLOC : 0, + 1), dynamic(dynamic) { // ELF string tables start with a NUL byte. strings.push_back(""); @@ -1296,8 +1294,8 @@ static unsigned getVerDefNum(Ctx &ctx) { template DynamicSection::DynamicSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE, SHT_DYNAMIC, - ctx.arg.wordsize, ".dynamic") { + : SyntheticSection(ctx, ".dynamic", SHT_DYNAMIC, SHF_ALLOC | SHF_WRITE, + ctx.arg.wordsize) { this->entsize = ELFT::Is64Bits ? 16 : 8; // .dynamic section is not writable on MIPS and on Fuchsia OS @@ -1651,7 +1649,7 @@ RelocationBaseSection::RelocationBaseSection(Ctx &ctx, StringRef name, int32_t sizeDynamicTag, bool combreloc, unsigned concurrency) - : SyntheticSection(ctx, SHF_ALLOC, type, ctx.arg.wordsize, name), + : SyntheticSection(ctx, name, type, SHF_ALLOC, ctx.arg.wordsize), dynamicTag(dynamicTag), sizeDynamicTag(sizeDynamicTag), relocsVec(concurrency), combreloc(combreloc) {} @@ -1767,11 +1765,11 @@ template void RelocationSection::writeTo(uint8_t *buf) { RelrBaseSection::RelrBaseSection(Ctx &ctx, unsigned concurrency, bool isAArch64Auth) : SyntheticSection( - ctx, SHF_ALLOC, + ctx, isAArch64Auth ? ".relr.auth.dyn" : ".relr.dyn", isAArch64Auth ? SHT_AARCH64_AUTH_RELR : (ctx.arg.useAndroidRelrTags ? SHT_ANDROID_RELR : SHT_RELR), - ctx.arg.wordsize, isAArch64Auth ? ".relr.auth.dyn" : ".relr.dyn"), + SHF_ALLOC, ctx.arg.wordsize), relocsVec(concurrency) {} void RelrBaseSection::mergeRels() { @@ -2118,8 +2116,8 @@ template bool RelrSection::updateAllocSize(Ctx &ctx) { // Don't allow the section to shrink; otherwise the size of the section can // oscillate infinitely. Trailing 1s do not decode to more relocations. if (relrRelocs.size() < oldSize) { - Log(ctx) << ".relr.dyn needs " << Twine(oldSize - relrRelocs.size()) << - " padding word(s)"; + Log(ctx) << ".relr.dyn needs " << (oldSize - relrRelocs.size()) + << " padding word(s)"; relrRelocs.resize(oldSize, Elf_Relr(1)); } @@ -2128,10 +2126,10 @@ template bool RelrSection::updateAllocSize(Ctx &ctx) { SymbolTableBaseSection::SymbolTableBaseSection(Ctx &ctx, StringTableSection &strTabSec) - : SyntheticSection(ctx, strTabSec.isDynamic() ? (uint64_t)SHF_ALLOC : 0, + : SyntheticSection(ctx, strTabSec.isDynamic() ? ".dynsym" : ".symtab", strTabSec.isDynamic() ? SHT_DYNSYM : SHT_SYMTAB, - ctx.arg.wordsize, - strTabSec.isDynamic() ? ".dynsym" : ".symtab"), + strTabSec.isDynamic() ? (uint64_t)SHF_ALLOC : 0, + ctx.arg.wordsize), strTabSec(strTabSec) {} // Orders symbols according to their positions in the GOT, @@ -2348,7 +2346,7 @@ template void SymbolTableSection::writeTo(uint8_t *buf) { } SymtabShndxSection::SymtabShndxSection(Ctx &ctx) - : SyntheticSection(ctx, 0, SHT_SYMTAB_SHNDX, 4, ".symtab_shndx") { + : SyntheticSection(ctx, ".symtab_shndx", SHT_SYMTAB_SHNDX, 0, 4) { this->entsize = 4; } @@ -2419,8 +2417,8 @@ size_t SymtabShndxSection::getSize() const { // about .gnu.hash, you want to specify --hash-style=gnu. Otherwise, a // safe bet is to specify --hash-style=both for backward compatibility. GnuHashTableSection::GnuHashTableSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_GNU_HASH, ctx.arg.wordsize, - ".gnu.hash") {} + : SyntheticSection(ctx, ".gnu.hash", SHT_GNU_HASH, SHF_ALLOC, + ctx.arg.wordsize) {} void GnuHashTableSection::finalizeContents() { if (OutputSection *sec = getPartition(ctx).dynSymTab->getParent()) @@ -2529,7 +2527,7 @@ void GnuHashTableSection::addSymbols(SmallVectorImpl &v) { } HashTableSection::HashTableSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_HASH, 4, ".hash") { + : SyntheticSection(ctx, ".hash", SHT_HASH, SHF_ALLOC, 4) { this->entsize = 4; } @@ -2569,8 +2567,8 @@ void HashTableSection::writeTo(uint8_t *buf) { } PltSection::PltSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_EXECINSTR, SHT_PROGBITS, 16, - ".plt"), + : SyntheticSection(ctx, ".plt", SHT_PROGBITS, SHF_ALLOC | SHF_EXECINSTR, + 16), headerSize(ctx.target->pltHeaderSize) { // On PowerPC, this section contains lazy symbol resolvers. if (ctx.arg.emachine == EM_PPC64) { @@ -2630,8 +2628,8 @@ void PltSection::addSymbols() { } IpltSection::IpltSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_EXECINSTR, SHT_PROGBITS, 16, - ".iplt") { + : SyntheticSection(ctx, ".iplt", SHT_PROGBITS, SHF_ALLOC | SHF_EXECINSTR, + 16) { if (ctx.arg.emachine == EM_PPC || ctx.arg.emachine == EM_PPC64) { name = ".glink"; addralign = 4; @@ -2737,8 +2735,8 @@ size_t PPC32GlinkSection::getSize() const { // That said, the 2-PLT scheme is a part of the ABI, debuggers and other tools // depend on it, so we implement the ABI. IBTPltSection::IBTPltSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_EXECINSTR, SHT_PROGBITS, 16, - ".plt") {} + : SyntheticSection(ctx, ".plt", SHT_PROGBITS, SHF_ALLOC | SHF_EXECINSTR, + 16) {} void IBTPltSection::writeTo(uint8_t *buf) { ctx.target->writeIBTPlt(buf, ctx.in.plt->getNumEntries()); @@ -2752,8 +2750,8 @@ size_t IBTPltSection::getSize() const { bool IBTPltSection::isNeeded() const { return ctx.in.plt->getNumEntries() > 0; } RelroPaddingSection::RelroPaddingSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE, SHT_NOBITS, 1, - ".relro_padding") {} + : SyntheticSection(ctx, ".relro_padding", SHT_NOBITS, SHF_ALLOC | SHF_WRITE, + 1) {} // The string hash function for .gdb_index. static uint32_t computeGdbHash(StringRef s) { @@ -2766,7 +2764,7 @@ static uint32_t computeGdbHash(StringRef s) { // 4-byte alignment ensures that values in the hash lookup table and the name // table are aligned. DebugNamesBaseSection::DebugNamesBaseSection(Ctx &ctx) - : SyntheticSection(ctx, 0, SHT_PROGBITS, 4, ".debug_names") {} + : SyntheticSection(ctx, ".debug_names", SHT_PROGBITS, 0, 4) {} // Get the size of the .debug_names section header in bytes for DWARF32: static uint32_t getDebugNamesHeaderSize(uint32_t augmentationStringSize) { @@ -2872,7 +2870,7 @@ void DebugNamesBaseSection::parseDebugNames( nd.hdr = ni.getHeader(); if (nd.hdr.Format != DwarfFormat::DWARF32) { Err(ctx) << namesSec.sec - << Twine(": found DWARF64, which is currently unsupported"); + << ": found DWARF64, which is currently unsupported"; return; } if (nd.hdr.Version != 5) { @@ -2882,8 +2880,7 @@ void DebugNamesBaseSection::parseDebugNames( uint32_t dwarfSize = dwarf::getDwarfOffsetByteSize(DwarfFormat::DWARF32); DWARFDebugNames::DWARFDebugNamesOffsets locs = ni.getOffsets(); if (locs.EntriesBase > namesExtractor.getData().size()) { - Err(ctx) << namesSec.sec - << Twine(": entry pool start is beyond end of section"); + Err(ctx) << namesSec.sec << ": entry pool start is beyond end of section"; return; } @@ -2964,7 +2961,7 @@ void DebugNamesBaseSection::computeHdrAndAbbrevTable( // ForeignTypeUnitCount are left as 0. if (nd.hdr.LocalTypeUnitCount || nd.hdr.ForeignTypeUnitCount) Warn(ctx) << inputChunk.section.sec - << Twine(": type units are not implemented"); + << ": type units are not implemented"; // If augmentation strings are not identical, use an empty string. if (i == 0) { hdr.AugmentationStringSize = nd.hdr.AugmentationStringSize; @@ -3358,7 +3355,7 @@ template void DebugNamesSection::writeTo(uint8_t *buf) { } GdbIndexSection::GdbIndexSection(Ctx &ctx) - : SyntheticSection(ctx, 0, SHT_PROGBITS, 1, ".gdb_index") {} + : SyntheticSection(ctx, ".gdb_index", SHT_PROGBITS, 0, 1) {} // Returns the desired size of an on-disk hash table for a .gdb_index section. // There's a tradeoff between size and collision rate. We aim 75% utilization. @@ -3654,7 +3651,7 @@ void GdbIndexSection::writeTo(uint8_t *buf) { bool GdbIndexSection::isNeeded() const { return !chunks.empty(); } EhFrameHeader::EhFrameHeader(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_PROGBITS, 4, ".eh_frame_hdr") {} + : SyntheticSection(ctx, ".eh_frame_hdr", SHT_PROGBITS, SHF_ALLOC, 4) {} void EhFrameHeader::writeTo(uint8_t *buf) { // Unlike most sections, the EhFrameHeader section is written while writing @@ -3699,8 +3696,8 @@ bool EhFrameHeader::isNeeded() const { } VersionDefinitionSection::VersionDefinitionSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_GNU_verdef, sizeof(uint32_t), - ".gnu.version_d") {} + : SyntheticSection(ctx, ".gnu.version_d", SHT_GNU_verdef, SHF_ALLOC, + sizeof(uint32_t)) {} StringRef VersionDefinitionSection::getFileDefName() { if (!getPartition(ctx).name.empty()) @@ -3761,8 +3758,8 @@ size_t VersionDefinitionSection::getSize() const { // .gnu.version is a table where each entry is 2 byte long. VersionTableSection::VersionTableSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_GNU_versym, sizeof(uint16_t), - ".gnu.version") { + : SyntheticSection(ctx, ".gnu.version", SHT_GNU_versym, SHF_ALLOC, + sizeof(uint16_t)) { this->entsize = 2; } @@ -3812,8 +3809,8 @@ void elf::addVerneed(Ctx &ctx, Symbol &ss) { template VersionNeedSection::VersionNeedSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_GNU_verneed, sizeof(uint32_t), - ".gnu.version_r") {} + : SyntheticSection(ctx, ".gnu.version_r", SHT_GNU_verneed, SHF_ALLOC, + sizeof(uint32_t)) {} template void VersionNeedSection::finalizeContents() { for (SharedFile *f : ctx.sharedFiles) { @@ -4020,12 +4017,12 @@ void elf::combineEhSections(Ctx &ctx) { } MipsRldMapSection::MipsRldMapSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE, SHT_PROGBITS, - ctx.arg.wordsize, ".rld_map") {} + : SyntheticSection(ctx, ".rld_map", SHT_PROGBITS, SHF_ALLOC | SHF_WRITE, + ctx.arg.wordsize) {} ARMExidxSyntheticSection::ARMExidxSyntheticSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_LINK_ORDER, SHT_ARM_EXIDX, - ctx.arg.wordsize, ".ARM.exidx") {} + : SyntheticSection(ctx, ".ARM.exidx", SHT_ARM_EXIDX, + SHF_ALLOC | SHF_LINK_ORDER, ctx.arg.wordsize) {} static InputSection *findExidxSection(InputSection *isec) { for (InputSection *d : isec->dependentSections) @@ -4250,8 +4247,9 @@ bool ARMExidxSyntheticSection::isNeeded() const { } ThunkSection::ThunkSection(Ctx &ctx, OutputSection *os, uint64_t off) - : SyntheticSection(ctx, SHF_ALLOC | SHF_EXECINSTR, SHT_PROGBITS, - ctx.arg.emachine == EM_PPC64 ? 16 : 4, ".text.thunk") { + : SyntheticSection(ctx, ".text.thunk", SHT_PROGBITS, + SHF_ALLOC | SHF_EXECINSTR, + ctx.arg.emachine == EM_PPC64 ? 16 : 4) { this->parent = os; this->outSecOff = off; } @@ -4294,7 +4292,7 @@ bool ThunkSection::assignOffsets() { } PPC32Got2Section::PPC32Got2Section(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE, SHT_PROGBITS, 4, ".got2") {} + : SyntheticSection(ctx, ".got2", SHT_PROGBITS, SHF_ALLOC | SHF_WRITE, 4) {} bool PPC32Got2Section::isNeeded() const { // See the comment below. This is not needed if there is no other @@ -4327,9 +4325,9 @@ void PPC32Got2Section::finalizeContents() { // position-independent code the section has type SHT_NOBITS since it will be // allocated and filled in by the dynamic linker. PPC64LongBranchTargetSection::PPC64LongBranchTargetSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC | SHF_WRITE, - ctx.arg.isPic ? SHT_NOBITS : SHT_PROGBITS, 8, - ".branch_lt") {} + : SyntheticSection(ctx, ".branch_lt", + ctx.arg.isPic ? SHT_NOBITS : SHT_PROGBITS, + SHF_ALLOC | SHF_WRITE, 8) {} uint64_t PPC64LongBranchTargetSection::getEntryVA(const Symbol *sym, int64_t addend) { @@ -4393,7 +4391,7 @@ static uint8_t getAbiVersion(Ctx &ctx) { uint8_t ver = ctx.objectFiles[0]->abiVersion; for (InputFile *file : ArrayRef(ctx.objectFiles).slice(1)) if (file->abiVersion != ver) - ErrAlways(ctx) << "incompatible ABI version: " << file; + Err(ctx) << "incompatible ABI version: " << file; return ver; } @@ -4442,7 +4440,7 @@ template void elf::writePhdrs(uint8_t *buf, Partition &part) { template PartitionElfHeaderSection::PartitionElfHeaderSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_LLVM_PART_EHDR, 1, "") {} + : SyntheticSection(ctx, "", SHT_LLVM_PART_EHDR, SHF_ALLOC, 1) {} template size_t PartitionElfHeaderSection::getSize() const { @@ -4460,7 +4458,7 @@ void PartitionElfHeaderSection::writeTo(uint8_t *buf) { template PartitionProgramHeadersSection::PartitionProgramHeadersSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_LLVM_PART_PHDR, 1, ".phdrs") {} + : SyntheticSection(ctx, ".phdrs", SHT_LLVM_PART_PHDR, SHF_ALLOC, 1) {} template size_t PartitionProgramHeadersSection::getSize() const { @@ -4473,7 +4471,7 @@ void PartitionProgramHeadersSection::writeTo(uint8_t *buf) { } PartitionIndexSection::PartitionIndexSection(Ctx &ctx) - : SyntheticSection(ctx, SHF_ALLOC, SHT_PROGBITS, 4, ".rodata") {} + : SyntheticSection(ctx, ".rodata", SHT_PROGBITS, SHF_ALLOC, 4) {} size_t PartitionIndexSection::getSize() const { return 12 * (ctx.partitions.size() - 1); diff --git a/lld/ELF/SyntheticSections.h b/lld/ELF/SyntheticSections.h index 163a4950a0983..4b643e8633551 100644 --- a/lld/ELF/SyntheticSections.h +++ b/lld/ELF/SyntheticSections.h @@ -137,8 +137,8 @@ class GotSection final : public SyntheticSection { class GnuStackSection : public SyntheticSection { public: GnuStackSection(Ctx &ctx) - : SyntheticSection(ctx, 0, llvm::ELF::SHT_PROGBITS, 1, - ".note.GNU-stack") {} + : SyntheticSection(ctx, ".note.GNU-stack", llvm::ELF::SHT_PROGBITS, 0, + 1) {} void writeTo(uint8_t *buf) override {} size_t getSize() const override { return 0; } }; @@ -177,7 +177,9 @@ class BssSection final : public SyntheticSection { bool isNeeded() const override { return size != 0; } size_t getSize() const override { return size; } - static bool classof(const SectionBase *s) { return s->bss; } + static bool classof(const SectionBase *s) { + return isa(s) && cast(s)->bss; + } uint64_t size; }; @@ -1084,7 +1086,7 @@ class MergeSyntheticSection : public SyntheticSection { protected: MergeSyntheticSection(Ctx &ctx, StringRef name, uint32_t type, uint64_t flags, uint32_t addralign) - : SyntheticSection(ctx, flags, type, addralign, name) {} + : SyntheticSection(ctx, name, type, flags, addralign) {} }; class MergeTailSection final : public MergeSyntheticSection { @@ -1300,7 +1302,21 @@ class ThunkSection final : public SyntheticSection { const char ACLESESYM_PREFIX[] = "__acle_se_"; const int ACLESESYM_SIZE = 8; -class ArmCmseSGVeneer; +class ArmCmseSGVeneer { +public: + ArmCmseSGVeneer(Symbol *sym, Symbol *acleSeSym, + std::optional addr = std::nullopt) + : sym(sym), acleSeSym(acleSeSym), entAddr{addr} {} + static const size_t size{ACLESESYM_SIZE}; + const std::optional getAddr() const { return entAddr; }; + + Symbol *sym; + Symbol *acleSeSym; + uint64_t offset = 0; + +private: + const std::optional entAddr; +}; class ArmCmseSGSection final : public SyntheticSection { public: @@ -1316,7 +1332,7 @@ class ArmCmseSGSection final : public SyntheticSection { private: SmallVector, 0> entries; - SmallVector sgVeneers; + SmallVector, 0> sgVeneers; uint64_t newEntries = 0; }; @@ -1382,8 +1398,8 @@ class PartitionIndexSection final : public SyntheticSection { class MemtagAndroidNote final : public SyntheticSection { public: MemtagAndroidNote(Ctx &ctx) - : SyntheticSection(ctx, llvm::ELF::SHF_ALLOC, llvm::ELF::SHT_NOTE, - /*alignment=*/4, ".note.android.memtag") {} + : SyntheticSection(ctx, ".note.android.memtag", llvm::ELF::SHT_NOTE, + llvm::ELF::SHF_ALLOC, /*addralign=*/4) {} void writeTo(uint8_t *buf) override; size_t getSize() const override; }; @@ -1391,8 +1407,8 @@ class MemtagAndroidNote final : public SyntheticSection { class PackageMetadataNote final : public SyntheticSection { public: PackageMetadataNote(Ctx &ctx) - : SyntheticSection(ctx, llvm::ELF::SHF_ALLOC, llvm::ELF::SHT_NOTE, - /*alignment=*/4, ".note.package") {} + : SyntheticSection(ctx, ".note.package", llvm::ELF::SHT_NOTE, + llvm::ELF::SHF_ALLOC, /*addralign=*/4) {} void writeTo(uint8_t *buf) override; size_t getSize() const override; }; @@ -1400,9 +1416,9 @@ class PackageMetadataNote final : public SyntheticSection { class MemtagGlobalDescriptors final : public SyntheticSection { public: MemtagGlobalDescriptors(Ctx &ctx) - : SyntheticSection(ctx, llvm::ELF::SHF_ALLOC, + : SyntheticSection(ctx, ".memtag.globals.dynamic", llvm::ELF::SHT_AARCH64_MEMTAG_GLOBALS_DYNAMIC, - /*alignment=*/4, ".memtag.globals.dynamic") {} + llvm::ELF::SHF_ALLOC, /*addralign=*/4) {} void writeTo(uint8_t *buf) override; // The size of the section is non-computable until all addresses are // synthetized, because the section's contents contain a sorted diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp index 203252dbac122..63d813e550f93 100644 --- a/lld/ELF/Target.cpp +++ b/lld/ELF/Target.cpp @@ -84,7 +84,7 @@ void elf::setTarget(Ctx &ctx) { case EM_X86_64: return setX86_64TargetInfo(ctx); default: - Fatal(ctx) << "unsupported e_machine value: " << Twine(ctx.arg.emachine); + Fatal(ctx) << "unsupported e_machine value: " << ctx.arg.emachine; } } diff --git a/lld/ELF/Target.h b/lld/ELF/Target.h index ce42d3624a8f5..fd1e5d33c438a 100644 --- a/lld/ELF/Target.h +++ b/lld/ELF/Target.h @@ -211,8 +211,8 @@ static inline std::string getErrorLoc(Ctx &ctx, const uint8_t *loc) { void processArmCmseSymbols(Ctx &); template uint32_t calcMipsEFlags(Ctx &); -uint8_t getMipsFpAbiFlag(Ctx &, uint8_t oldFlag, uint8_t newFlag, - llvm::StringRef fileName); +uint8_t getMipsFpAbiFlag(Ctx &, InputFile *file, uint8_t oldFlag, + uint8_t newFlag); bool isMipsN32Abi(Ctx &, const InputFile &f); bool isMicroMips(Ctx &); bool isMipsR6(Ctx &); @@ -292,7 +292,7 @@ inline void checkAlignment(Ctx &ctx, uint8_t *loc, uint64_t v, int n, if ((v & (n - 1)) != 0) Err(ctx) << getErrorLoc(ctx, loc) << "improper alignment for relocation " << rel.type << ": 0x" << llvm::utohexstr(v) - << " is not aligned to " << Twine(n) << " bytes"; + << " is not aligned to " << n << " bytes"; } // Endianness-aware read/write. diff --git a/lld/ELF/Thunks.cpp b/lld/ELF/Thunks.cpp index 4f04c33f0e5c5..629ce356ce2e7 100644 --- a/lld/ELF/Thunks.cpp +++ b/lld/ELF/Thunks.cpp @@ -69,6 +69,11 @@ class AArch64Thunk : public Thunk { private: bool mayUseShortThunk = true; virtual void writeLong(uint8_t *buf) = 0; + // A thunk may be written out as a short or long, and we may not know which + // type at thunk creation time. In some thunk implementations the long thunk + // has additional mapping symbols. Thus function can be overridden to add + // these additional mapping symbols. + virtual void addLongMapSyms() {} }; // AArch64 long range Thunks. @@ -82,6 +87,8 @@ class AArch64ABSLongThunk final : public AArch64Thunk { private: void writeLong(uint8_t *buf) override; + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; class AArch64ADRPThunk final : public AArch64Thunk { @@ -148,6 +155,8 @@ class ARMThunk : public Thunk { // can create layout oscillations in certain corner cases which would prevent // the layout from converging. bool mayUseShortThunk = true; + // See comment in AArch64Thunk. + virtual void addLongMapSyms() {} }; // Base class for Thumb-2 thunks. @@ -176,6 +185,8 @@ class ThumbThunk : public Thunk { private: // See comment in ARMThunk above. bool mayUseShortThunk = true; + // See comment in AArch64Thunk. + virtual void addLongMapSyms() {} }; // Specific ARM Thunk implementations. The naming convention is: @@ -229,6 +240,10 @@ class ThumbV6MABSLongThunk final : public ThumbThunk { uint32_t sizeLong() override { return 12; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; class ThumbV6MABSXOLongThunk final : public ThumbThunk { @@ -249,6 +264,10 @@ class ThumbV6MPILongThunk final : public ThumbThunk { uint32_t sizeLong() override { return 16; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; // Architectures v4, v5 and v6 do not support the movt/movw instructions. v5 and @@ -267,6 +286,10 @@ class ARMV5LongLdrPcThunk final : public ARMThunk { uint32_t sizeLong() override { return 8; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; // Implementations of Thunks for v4. BLX is not supported, and loads @@ -279,6 +302,10 @@ class ARMV4PILongBXThunk final : public ARMThunk { uint32_t sizeLong() override { return 16; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; class ARMV4PILongThunk final : public ARMThunk { @@ -289,6 +316,10 @@ class ARMV4PILongThunk final : public ARMThunk { uint32_t sizeLong() override { return 12; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; class ThumbV4PILongBXThunk final : public ThumbThunk { @@ -299,6 +330,10 @@ class ThumbV4PILongBXThunk final : public ThumbThunk { uint32_t sizeLong() override { return 16; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; class ThumbV4PILongThunk final : public ThumbThunk { @@ -309,6 +344,10 @@ class ThumbV4PILongThunk final : public ThumbThunk { uint32_t sizeLong() override { return 20; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; class ARMV4ABSLongBXThunk final : public ARMThunk { @@ -319,6 +358,10 @@ class ARMV4ABSLongBXThunk final : public ARMThunk { uint32_t sizeLong() override { return 12; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; class ThumbV4ABSLongBXThunk final : public ThumbThunk { @@ -329,6 +372,10 @@ class ThumbV4ABSLongBXThunk final : public ThumbThunk { uint32_t sizeLong() override { return 12; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; class ThumbV4ABSLongThunk final : public ThumbThunk { @@ -339,6 +386,10 @@ class ThumbV4ABSLongThunk final : public ThumbThunk { uint32_t sizeLong() override { return 16; } void writeLong(uint8_t *buf) override; void addSymbols(ThunkSection &isec) override; + +private: + void addLongMapSyms() override; + ThunkSection *tsec = nullptr; }; // The AVR devices need thunks for R_AVR_LO8_LDI_GS/R_AVR_HI8_LDI_GS @@ -560,6 +611,8 @@ bool AArch64Thunk::getMayUseShortThunk() { uint64_t s = getAArch64ThunkDestVA(ctx, destination, addend); uint64_t p = getThunkTargetSym()->getVA(ctx); mayUseShortThunk = llvm::isInt<28>(s - p); + if (!mayUseShortThunk) + addLongMapSyms(); return mayUseShortThunk; } @@ -602,8 +655,12 @@ void AArch64ABSLongThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__AArch64AbsLongThunk_" + destination.getName()), STT_FUNC, 0, isec); addSymbol("$x", STT_NOTYPE, 0, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 8, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void AArch64ABSLongThunk::addLongMapSyms() { + addSymbol("$d", STT_NOTYPE, 8, *tsec); } // This Thunk has a maximum range of 4Gb, this is sufficient for all programs @@ -691,11 +748,14 @@ bool ARMThunk::getMayUseShortThunk() { uint64_t s = getARMThunkDestVA(ctx, destination); if (s & 1) { mayUseShortThunk = false; + addLongMapSyms(); return false; } uint64_t p = getThunkTargetSym()->getVA(ctx); int64_t offset = s - p - 8; mayUseShortThunk = llvm::isInt<26>(offset); + if (!mayUseShortThunk) + addLongMapSyms(); return mayUseShortThunk; } @@ -729,16 +789,19 @@ bool ARMThunk::isCompatibleWith(const InputSection &isec, // (see comment for mayUseShortThunk) // && the arch supports Thumb branch range extension. bool ThumbThunk::getMayUseShortThunk() { - if (!mayUseShortThunk || !ctx.arg.armJ1J2BranchEncoding) + if (!mayUseShortThunk) return false; uint64_t s = getARMThunkDestVA(ctx, destination); - if ((s & 1) == 0) { + if ((s & 1) == 0 || !ctx.arg.armJ1J2BranchEncoding) { mayUseShortThunk = false; + addLongMapSyms(); return false; } uint64_t p = getThunkTargetSym()->getVA(ctx) & ~1; int64_t offset = s - p - 4; mayUseShortThunk = llvm::isInt<25>(offset); + if (!mayUseShortThunk) + addLongMapSyms(); return mayUseShortThunk; } @@ -856,8 +919,12 @@ void ThumbV6MABSLongThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__Thumbv6MABSLongThunk_" + destination.getName()), STT_FUNC, 1, isec); addSymbol("$t", STT_NOTYPE, 0, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 8, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ThumbV6MABSLongThunk::addLongMapSyms() { + addSymbol("$d", STT_NOTYPE, 8, *tsec); } void ThumbV6MABSXOLongThunk::writeLong(uint8_t *buf) { @@ -912,8 +979,12 @@ void ThumbV6MPILongThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__Thumbv6MPILongThunk_" + destination.getName()), STT_FUNC, 1, isec); addSymbol("$t", STT_NOTYPE, 0, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 12, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ThumbV6MPILongThunk::addLongMapSyms() { + addSymbol("$d", STT_NOTYPE, 12, *tsec); } void ARMV5LongLdrPcThunk::writeLong(uint8_t *buf) { @@ -927,8 +998,12 @@ void ARMV5LongLdrPcThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__ARMv5LongLdrPcThunk_" + destination.getName()), STT_FUNC, 0, isec); addSymbol("$a", STT_NOTYPE, 0, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 4, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ARMV5LongLdrPcThunk::addLongMapSyms() { + addSymbol("$d", STT_NOTYPE, 4, *tsec); } void ARMV4ABSLongBXThunk::writeLong(uint8_t *buf) { @@ -943,8 +1018,12 @@ void ARMV4ABSLongBXThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__ARMv4ABSLongBXThunk_" + destination.getName()), STT_FUNC, 0, isec); addSymbol("$a", STT_NOTYPE, 0, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 8, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ARMV4ABSLongBXThunk::addLongMapSyms() { + addSymbol("$d", STT_NOTYPE, 8, *tsec); } void ThumbV4ABSLongBXThunk::writeLong(uint8_t *buf) { @@ -961,9 +1040,13 @@ void ThumbV4ABSLongBXThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__Thumbv4ABSLongBXThunk_" + destination.getName()), STT_FUNC, 1, isec); addSymbol("$t", STT_NOTYPE, 0, isec); - addSymbol("$a", STT_NOTYPE, 4, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 8, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ThumbV4ABSLongBXThunk::addLongMapSyms() { + addSymbol("$a", STT_NOTYPE, 4, *tsec); + addSymbol("$d", STT_NOTYPE, 8, *tsec); } void ThumbV4ABSLongThunk::writeLong(uint8_t *buf) { @@ -981,9 +1064,13 @@ void ThumbV4ABSLongThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__Thumbv4ABSLongThunk_" + destination.getName()), STT_FUNC, 1, isec); addSymbol("$t", STT_NOTYPE, 0, isec); - addSymbol("$a", STT_NOTYPE, 4, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 12, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ThumbV4ABSLongThunk::addLongMapSyms() { + addSymbol("$a", STT_NOTYPE, 4, *tsec); + addSymbol("$d", STT_NOTYPE, 12, *tsec); } void ARMV4PILongBXThunk::writeLong(uint8_t *buf) { @@ -1000,8 +1087,12 @@ void ARMV4PILongBXThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__ARMv4PILongBXThunk_" + destination.getName()), STT_FUNC, 0, isec); addSymbol("$a", STT_NOTYPE, 0, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 12, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ARMV4PILongBXThunk::addLongMapSyms() { + addSymbol("$d", STT_NOTYPE, 12, *tsec); } void ARMV4PILongThunk::writeLong(uint8_t *buf) { @@ -1017,8 +1108,12 @@ void ARMV4PILongThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__ARMv4PILongThunk_" + destination.getName()), STT_FUNC, 0, isec); addSymbol("$a", STT_NOTYPE, 0, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 8, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ARMV4PILongThunk::addLongMapSyms() { + addSymbol("$d", STT_NOTYPE, 8, *tsec); } void ThumbV4PILongBXThunk::writeLong(uint8_t *buf) { @@ -1037,9 +1132,13 @@ void ThumbV4PILongBXThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__Thumbv4PILongBXThunk_" + destination.getName()), STT_FUNC, 1, isec); addSymbol("$t", STT_NOTYPE, 0, isec); - addSymbol("$a", STT_NOTYPE, 4, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 12, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ThumbV4PILongBXThunk::addLongMapSyms() { + addSymbol("$a", STT_NOTYPE, 4, *tsec); + addSymbol("$d", STT_NOTYPE, 12, *tsec); } void ThumbV4PILongThunk::writeLong(uint8_t *buf) { @@ -1059,9 +1158,13 @@ void ThumbV4PILongThunk::addSymbols(ThunkSection &isec) { addSymbol(ctx.saver.save("__Thumbv4PILongThunk_" + destination.getName()), STT_FUNC, 1, isec); addSymbol("$t", STT_NOTYPE, 0, isec); - addSymbol("$a", STT_NOTYPE, 4, isec); - if (!getMayUseShortThunk()) - addSymbol("$d", STT_NOTYPE, 16, isec); + tsec = &isec; + (void)getMayUseShortThunk(); +} + +void ThumbV4PILongThunk::addLongMapSyms() { + addSymbol("$a", STT_NOTYPE, 4, *tsec); + addSymbol("$d", STT_NOTYPE, 16, *tsec); } // Use the long jump which covers a range up to 8MiB. diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 67497bad7cb23..a7fbdc0790704 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -1572,8 +1572,8 @@ template void Writer::finalizeAddressDependentContent() { if (osec->addr % osec->addralign != 0) Warn(ctx) << "address (0x" << Twine::utohexstr(osec->addr) << ") of section " << osec->name - << " is not a multiple of alignment (" - << Twine(osec->addralign) << ")"; + << " is not a multiple of alignment (" << osec->addralign + << ")"; } // Sizes are no longer allowed to grow, so all allowable spills have been @@ -2794,7 +2794,7 @@ template void Writer::openFile() { if (fileSize != size_t(fileSize) || maxSize < fileSize) { std::string msg; raw_string_ostream s(msg); - s << "output file too large: " << Twine(fileSize) << " bytes\n" + s << "output file too large: " << fileSize << " bytes\n" << "section sizes:\n"; for (OutputSection *os : ctx.outputSections) s << os->name << ' ' << os->size << "\n"; diff --git a/lld/MachO/Config.h b/lld/MachO/Config.h index 41bcd58acc27f..a03561be925a8 100644 --- a/lld/MachO/Config.h +++ b/lld/MachO/Config.h @@ -166,6 +166,7 @@ struct Configuration { llvm::StringRef installName; llvm::StringRef clientName; llvm::StringRef mapFile; + llvm::StringRef ltoNewPmPasses; llvm::StringRef ltoObjPath; llvm::StringRef thinLTOJobs; llvm::StringRef umbrella; @@ -239,6 +240,7 @@ struct Configuration { SymtabPresence localSymbolsPresence = SymtabPresence::All; SymbolPatterns localSymbolPatterns; llvm::SmallVector mllvmOpts; + llvm::SmallVector passPlugins; bool zeroModTime = true; bool generateUuid = true; diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp index 53b4372435ab5..4f39613ac17de 100644 --- a/lld/MachO/Driver.cpp +++ b/lld/MachO/Driver.cpp @@ -1741,6 +1741,7 @@ bool link(ArrayRef argsArr, llvm::raw_ostream &stdoutOS, config->umbrella = arg->getValue(); } config->ltoObjPath = args.getLastArgValue(OPT_object_path_lto); + config->ltoNewPmPasses = args.getLastArgValue(OPT_lto_newpm_passes); config->thinLTOCacheDir = args.getLastArgValue(OPT_cache_path_lto); config->thinLTOCachePolicy = getLTOCachePolicy(args); config->thinLTOEmitImportsFiles = args.hasArg(OPT_thinlto_emit_imports_files); @@ -2110,6 +2111,8 @@ bool link(ArrayRef argsArr, llvm::raw_ostream &stdoutOS, config->mllvmOpts.emplace_back(arg->getValue()); } + config->passPlugins = args::getStrings(args, OPT_load_pass_plugins); + createSyntheticSections(); createSyntheticSymbols(); addSynthenticMethnames(); diff --git a/lld/MachO/LTO.cpp b/lld/MachO/LTO.cpp index 28f5290edb58e..2eeca44ecbb3c 100644 --- a/lld/MachO/LTO.cpp +++ b/lld/MachO/LTO.cpp @@ -44,6 +44,9 @@ static lto::Config createConfig() { c.Options.EmitAddrsig = config->icfLevel == ICFLevel::safe; for (StringRef C : config->mllvmOpts) c.MllvmArgs.emplace_back(C.str()); + for (StringRef pluginFn : config->passPlugins) + c.PassPlugins.push_back(std::string(pluginFn)); + c.OptPipeline = std::string(config->ltoNewPmPasses); c.CodeModel = getCodeModelFromCMModel(); c.CPU = getCPUStr(); c.MAttrs = getMAttrs(); diff --git a/lld/MachO/Options.td b/lld/MachO/Options.td index 739d1da15d466..d453ea3b9e11d 100644 --- a/lld/MachO/Options.td +++ b/lld/MachO/Options.td @@ -162,6 +162,12 @@ def no_objc_category_merging : Flag<["-"], "no_objc_category_merging">, Group; def lto_debug_pass_manager: Flag<["--"], "lto-debug-pass-manager">, HelpText<"Debug new pass manager">, Group; +def lto_newpm_passes: Joined<["--"], "lto-newpm-passes=">, + HelpText<"Passes to run during LTO">, Group; +def load_pass_plugins : Separate<["--"], "load-pass-plugin">, Group; +def load_pass_plugins_eq : Joined<["--"], "load-pass-plugin=">, + Alias(load_pass_plugins)>, + HelpText<"Load passes from plugin library">, Group; def codegen_data_generate_path : Separate<["--"], "codegen-data-generate-path">, Group; def codegen_data_generate_path_eq : Joined<["--"], "codegen-data-generate-path=">, Alias(codegen_data_generate_path)>, MetaVarName<"">, diff --git a/lld/MinGW/Options.td b/lld/MinGW/Options.td index abe5e5c82ca3f..1ff0f7bedc18a 100644 --- a/lld/MinGW/Options.td +++ b/lld/MinGW/Options.td @@ -212,7 +212,7 @@ defm guard_longjmp : B<"guard-longjmp", "Do not enable Control Flow Guard long jump hardening">; defm error_limit: EqLong<"error-limit", "Maximum number of errors to emit before stopping (0 = no limit)">; -def build_id: J<"build-id=">, HelpText<"Generate build ID note (pass none to disable)">, +def build_id: J<"build-id=">, HelpText<"Generate build ID note (pass none to disable)">, MetaVarName<"">; def : F<"build-id">, Alias, HelpText<"Alias for --build-id=">; def functionpadmin: J<"functionpadmin=">, HelpText<"Prepares an image for hotpatching">, diff --git a/lld/include/lld/Common/ErrorHandler.h b/lld/include/lld/Common/ErrorHandler.h index ee11f17893971..79e20be2bb6be 100644 --- a/lld/include/lld/Common/ErrorHandler.h +++ b/lld/include/lld/Common/ErrorHandler.h @@ -71,6 +71,7 @@ #include "lld/Common/LLVM.h" #include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/SmallString.h" #include "llvm/Support/Error.h" #include "llvm/Support/FileOutputBuffer.h" #include "llvm/Support/raw_ostream.h" @@ -151,20 +152,21 @@ void message(const Twine &msg, llvm::raw_ostream &s = outs()); void warn(const Twine &msg); uint64_t errorCount(); -enum class DiagLevel { Log, Msg, Warn, Err, Fatal }; +enum class DiagLevel { None, Log, Msg, Warn, Err, Fatal }; // A class that synchronizes thread writing to the same stream similar // std::osyncstream. class SyncStream { ErrorHandler &e; DiagLevel level; - std::string buf; + llvm::SmallString<0> buf; public: - mutable llvm::raw_string_ostream os{buf}; + mutable llvm::raw_svector_ostream os{buf}; SyncStream(ErrorHandler &e, DiagLevel level) : e(e), level(level) {} SyncStream(SyncStream &&o) : e(o.e), level(o.level), buf(std::move(o.buf)) {} ~SyncStream(); + StringRef str() { return os.str(); } }; [[noreturn]] void exitLld(int val); diff --git a/lld/test/COFF/arm64ec.test b/lld/test/COFF/arm64ec.test index e50b14ce0184c..75288e97e598d 100644 --- a/lld/test/COFF/arm64ec.test +++ b/lld/test/COFF/arm64ec.test @@ -4,6 +4,7 @@ RUN: split-file %s %t.dir && cd %t.dir RUN: llvm-mc -filetype=obj -triple=aarch64-windows arm64-data-sym.s -o arm64-data-sym.obj RUN: llvm-mc -filetype=obj -triple=arm64ec-windows arm64ec-data-sym.s -o arm64ec-data-sym.obj RUN: llvm-mc -filetype=obj -triple=x86_64-windows x86_64-data-sym.s -o x86_64-data-sym.obj +RUN: llvm-mc -filetype=obj -triple=i686-windows x86_64-data-sym.s -o i686-data-sym.obj RUN: llvm-cvtres -machine:arm64x -out:arm64x-resource.obj %S/Inputs/resource.res RUN: lld-link -out:test.dll -machine:arm64ec arm64ec-data-sym.obj -dll -noentry @@ -46,6 +47,26 @@ RUN: not lld-link -out:test.dll -machine:arm64 arm64-data-sym.obj x86_64-data-sy RUN: -dll -noentry 2>&1 | FileCheck -check-prefix=INCOMPAT3 %s INCOMPAT3: lld-link: error: x86_64-data-sym.obj: machine type x64 conflicts with arm64 +arm64ec machine type can't be inferred, it must be specified explicitly. +RUN: not lld-link -out:test.dll arm64ec-data-sym.obj \ +RUN: -dll -noentry 2>&1 | FileCheck -check-prefix=INCOMPAT4 %s +INCOMPAT4: lld-link: error: arm64ec-data-sym.obj: machine type arm64ec is ambiguous and cannot be inferred, use /machine:arm64ec or /machine:arm64x + +RUN: not lld-link -out:test.dll x86_64-data-sym.obj arm64ec-data-sym.obj \ +RUN: -dll -noentry 2>&1 | FileCheck -check-prefix=INCOMPAT4 %s + +RUN: not lld-link -out:test.dll arm64-data-sym.obj arm64ec-data-sym.obj \ +RUN: -dll -noentry 2>&1 | FileCheck -check-prefix=INCOMPAT4 %s + +RUN: not lld-link -out:test.dll i686-data-sym.obj arm64ec-data-sym.obj \ +RUN: -dll -noentry 2>&1 | FileCheck -check-prefix=INCOMPAT5 %s +INCOMPAT5: lld-link: error: arm64ec-data-sym.obj: machine type arm64ec conflicts with x86 + +arm64x can be inferred and when mixed with ARM64, the first one wins +RUN: lld-link -out:test.dll -dll -noentry arm64x-resource.obj arm64-data-sym.obj x86_64-data-sym.obj arm64ec-data-sym.obj +RUN: not lld-link -out:test.dll -dll -noentry arm64-data-sym.obj arm64x-resource.obj x86_64-data-sym.obj 2>&1 | FileCheck -check-prefix=INCOMPAT3 %s +RUN: not lld-link -out:test.dll -dll -noentry arm64-data-sym.obj arm64x-resource.obj arm64ec-data-sym.obj 2>&1 | FileCheck -check-prefix=INCOMPAT4 %s + #--- arm64ec-data-sym.s .data .globl arm64ec_data_sym diff --git a/lld/test/ELF/aarch64-thunk-bti-multipass.s b/lld/test/ELF/aarch64-thunk-bti-multipass.s index 6569d6d00ec37..4f0d7343cc6bf 100644 --- a/lld/test/ELF/aarch64-thunk-bti-multipass.s +++ b/lld/test/ELF/aarch64-thunk-bti-multipass.s @@ -40,15 +40,11 @@ _start: // CHECK-LABEL: <_start>: // CHECK-NEXT: 10001000: bl 0x10002004 <__AArch64AbsLongThunk_fn1> -/// FIXME, the 2nd ldr and udf are a result of mapping symbols being generated -/// on Thunk insertion. When that is fixed in lld they will be data statements -/// like in __AArch64AbsLongThunk_far below. // CHECK-LABEL: <__AArch64AbsLongThunk_fn1>: // CHECK-NEXT: 10002004: ldr x16, 0x1000200c <__AArch64AbsLongThunk_fn1+0x8> // CHECK-NEXT: br x16 -// CHECK-NEXT: ldr w0, 0x1000260c <__AArch64AbsLongThunk_fn1+0x608> -// CHECK-NEXT: udf #0x0 - +// CHECK-NEXT: 00 30 00 18 .word 0x18003000 +// CHECK-NEXT: 00 00 00 00 .word 0x00000000 .section .text.1, "ax", %progbits .balign 0x1000 diff --git a/lld/test/ELF/arm-rwpi-debug-relocs.s b/lld/test/ELF/arm-rwpi-debug-relocs.s new file mode 100644 index 0000000000000..2bb968d4afa9a --- /dev/null +++ b/lld/test/ELF/arm-rwpi-debug-relocs.s @@ -0,0 +1,54 @@ +/// Test that R_ARM_SBREL32 relocations in debug info are relocated as if the +/// static base register (r9) is zero. Real DWARF info will use an expression to +/// add this to the real value of the static base at runtime. + +// REQUIRES: arm +// RUN: rm -rf %t && split-file %s %t && cd %t + +// RUN: llvm-mc -filetype=obj -triple=armv7a asm.s -o obj.o +// RUN: ld.lld -T lds.ld obj.o -o exe.elf 2>&1 | FileCheck %s --implicit-check-not=warning: --allow-empty +// RUN: llvm-objdump -D exe.elf | FileCheck --check-prefix=DISASM %s + +// DISASM-LABEL: : +// DISASM-NEXT: 1000: 0000002a + +// DISASM-LABEL: : +// DISASM-NEXT: 2000: 000004d2 + +// DISASM-LABEL: <.debug_something>: +// DISASM-NEXT: 0: 00001000 +// DISASM-NEXT: ... +// DISASM-NEXT: 104: 00002000 + +//--- lds.ld +SECTIONS { + data1 0x1000 : { *(data1) } + data2 0x2000 : { *(data2) } +} + +//--- asm.s + .text + .type _start,%function + .globl _start +_start: + bx lr + .size _start, .-_start + + .section data1, "aw", %progbits + .type rw,%object + .globl rw +rw: + .long 42 + .size rw, 4 + + .section data2, "aw", %progbits + .type rw2,%object + .globl rw2 +rw2: + .long 1234 + .size rw2, 4 + + .section .debug_something, "", %progbits + .long rw(sbrel) + .space 0x100 + .long rw2(sbrel) diff --git a/lld/test/ELF/incompatible.s b/lld/test/ELF/incompatible.s index 39c25106f4d72..0d25acd857610 100644 --- a/lld/test/ELF/incompatible.s +++ b/lld/test/ELF/incompatible.s @@ -6,11 +6,11 @@ // RUN: not ld.lld %ta.o %tb.o -o /dev/null 2>&1 | \ // RUN: FileCheck --check-prefix=A-AND-B %s -// A-AND-B: b.o is incompatible with {{.*}}a.o +// A-AND-B: error: {{.*}}b.o is incompatible with {{.*}}a.o -// RUN: not ld.lld %tb.o %tc.o -o /dev/null 2>&1 | \ +// RUN: ld.lld --noinhibit-exec %tb.o %tc.o -o /dev/null 2>&1 | \ // RUN: FileCheck --check-prefix=B-AND-C %s -// B-AND-C: c.o is incompatible with {{.*}}b.o +// B-AND-C: warning: {{.*}}c.o is incompatible with {{.*}}b.o // RUN: not ld.lld %ta.o %ti686.so -o /dev/null 2>&1 | \ // RUN: FileCheck --check-prefix=A-AND-SO %s @@ -69,8 +69,8 @@ // RUN: rm -f %t.a // RUN: llvm-ar rc %t.a %tc.o // RUN: llvm-mc -filetype=obj -triple=i686-linux %s -o %td.o -// RUN: not ld.lld %t.a %td.o 2>&1 -o /dev/null | FileCheck --check-prefix=ARCHIVE %s -// ARCHIVE: {{.*}}d.o is incompatible +// RUN: ld.lld --noinhibit-exec %t.a %td.o 2>&1 -o /dev/null | FileCheck --check-prefix=ARCHIVE %s +// ARCHIVE: warning: {{.*}}d.o is incompatible{{$}} .global _start _start: .data diff --git a/lld/test/ELF/linkerscript/symbol-location.s b/lld/test/ELF/linkerscript/symbol-location.s index 4620982bf3f20..fd5cc9de048f1 100644 --- a/lld/test/ELF/linkerscript/symbol-location.s +++ b/lld/test/ELF/linkerscript/symbol-location.s @@ -2,6 +2,7 @@ # RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o # RUN: echo 'foo = _start;' > %t.script # RUN: not ld.lld -shared -T %t.script %t.o -o /dev/null 2>&1 | FileCheck %s +# RUN: not ld.lld -shared --defsym 'foo = _start' %t.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=CHECK2 ## Here we check that symbol 'foo' location is reported properly. @@ -9,6 +10,10 @@ # CHECK: >>> defined in {{.*}}.script:1 # CHECK: >>> referenced by {{.*}}.o:(.text+0x1) +# CHECK2: error: relocation R_X86_64_PC32 cannot be used against symbol 'foo' +# CHECK2: >>> defined in --defsym{{$}} +# CHECK2: >>> referenced by {{.*}}.o:(.text+0x1) + .text .globl _start _start: diff --git a/lld/test/ELF/lto/riscv-attributes.ll b/lld/test/ELF/lto/riscv-attributes.ll index 08d8ad43dd71e..b6d4ec820f951 100644 --- a/lld/test/ELF/lto/riscv-attributes.ll +++ b/lld/test/ELF/lto/riscv-attributes.ll @@ -10,10 +10,10 @@ ; CHECK: BuildAttributes { ; CHECK-NEXT: FormatVersion: 0x41 ; CHECK-NEXT: Section 1 { -; CHECK-NEXT: SectionLength: 79 +; CHECK-NEXT: SectionLength: 98 ; CHECK-NEXT: Vendor: riscv ; CHECK-NEXT: Tag: Tag_File (0x1) -; CHECK-NEXT: Size: 69 +; CHECK-NEXT: Size: 88 ; CHECK-NEXT: FileAttributes { ; CHECK-NEXT: Attribute { ; CHECK-NEXT: Tag: 4 @@ -30,7 +30,7 @@ ; CHECK-NEXT: Attribute { ; CHECK-NEXT: Tag: 5 ; CHECK-NEXT: TagName: arch -; CHECK-NEXT: Value: rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zbb1p0{{$}} +; CHECK-NEXT: Value: rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zbb1p0{{$}} ; CHECK-NEXT: } ; CHECK-NEXT: } ; CHECK-NEXT: } diff --git a/lld/test/ELF/merge-addr.s b/lld/test/ELF/merge-addr.s new file mode 100644 index 0000000000000..b36619788083b --- /dev/null +++ b/lld/test/ELF/merge-addr.s @@ -0,0 +1,63 @@ +# REQUIRES: x86 +# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o +# RUN: ld.lld %t.o -o %t.so -shared --section-start cst4=0x800 --section-start str=0x1000 +# RUN: llvm-readelf -r -S %t.so | FileCheck %s +# RUN: llvm-objdump -s %t.so | FileCheck %s --check-prefix=OBJDUMP + +# RUN: ld.lld %t.o -o %t0.so -O0 -shared --section-start cst4=0x800 --section-start str=0x1000 +# RUN: llvm-objdump -s %t0.so | FileCheck %s --check-prefix=OBJDUMP0 +# RUN: ld.lld %t.o -o %t2.so -O2 -shared --section-start cst4=0x800 --section-start str=0x1000 +# RUN: llvm-objdump -s %t2.so | FileCheck %s --check-prefix=OBJDUMP2 + +# CHECK: Name Type Address Off Size ES Flg Lk Inf Al +# CHECK: cst4 PROGBITS 0000000000000800 000800 000004 04 AM 0 0 1 +# CHECK-NEXT: str PROGBITS 0000000000001000 001000 000009 01 AMS 0 0 1 + +# CHECK: Relocation section '.rela.dyn' +# CHECK-NEXT: Offset Info Type Symbol's Value Symbol's Name + Addend +# CHECK-NEXT: R_X86_64_RELATIVE 802 +# CHECK-NEXT: R_X86_64_RELATIVE 1000 +# CHECK-NEXT: R_X86_64_RELATIVE 1006 +# CHECK-NEXT: R_X86_64_RELATIVE 1002 +# CHECK-EMPTY: + +# OBJDUMP: Contents of section str: +# OBJDUMP-NEXT: 1000 61006162 63006263 00 a.abc.bc. +# OBJDUMP: Contents of section .data: +# OBJDUMP-NEXT: 00000000 00000000 00000000 00000000 ................ +# OBJDUMP-NEXT: 00000000 00000000 ........ +# OBJDUMP: Contents of section .bar: +# OBJDUMP-NEXT: 0000 00080000 00000000 00080000 00000000 ................ + +# OBJDUMP0: Contents of section cst4: +# OBJDUMP0-NEXT: 0800 2a000000 2a000000 *...*... +# OBJDUMP0-NEXT: Contents of section str: +# OBJDUMP0-NEXT: 1000 61626300 61006263 00626300 abc.a.bc.bc. + +# OBJDUMP2: Contents of section cst4: +# OBJDUMP2-NEXT: 0800 2a000000 *... +# OBJDUMP2-NEXT: Contents of section str: +# OBJDUMP2-NEXT: 1000 61626300 6100 abc.a. + +.section cst4,"aM",@progbits,4 +.long 42 +.long 42 + +.section str,"aMS",@progbits,1 +abc: +.asciz "abc" +a: +.asciz "a" +bc: +.asciz "bc" +.asciz "bc" + +.data +.quad cst4 + 6 +.quad a +.quad bc +.quad abc + +.section .bar +.quad cst4 +.quad cst4 + 4 diff --git a/lld/test/ELF/merge-reloc.s b/lld/test/ELF/merge-reloc.s index a343d5679b58e..75a48099f5089 100644 --- a/lld/test/ELF/merge-reloc.s +++ b/lld/test/ELF/merge-reloc.s @@ -1,91 +1,57 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o -# RUN: ld.lld %t.o -r -o %t-rel -# RUN: llvm-readobj -S --section-data %t-rel | FileCheck %s +# RUN: ld.lld %t.o -r -o %t.ro +# RUN: llvm-readelf -S %t.ro | FileCheck %s +# RUN: llvm-objdump -s %t.ro | FileCheck %s --check-prefix=OBJDUMP -# When linker generates a relocatable object it does string merging in the same -# way as for regular link. It should keep SHF_MERGE flag and set proper sh_entsize -# value so that final link can perform the final merging optimization. +# RUN: ld.lld %t.o -o %t +# RUN: llvm-readelf -S %t | FileCheck %s --check-prefix=CHECK-PDE -# CHECK: Section { -# CHECK: Index: -# CHECK: Name: .rodata.1 ( -# CHECK-NEXT: Type: SHT_PROGBITS -# CHECK-NEXT: Flags [ -# CHECK-NEXT: SHF_ALLOC -# CHECK-NEXT: SHF_MERGE -# CHECK-NEXT: ] -# CHECK-NEXT: Address: -# CHECK-NEXT: Offset: -# CHECK-NEXT: Size: 4 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 4 -# CHECK-NEXT: EntrySize: 4 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: 42000000 -# CHECK-NEXT: ) -# CHECK-NEXT: } -# CHECK: Section { -# CHECK: Index: -# CHECK: Name: .rodata.2 ( -# CHECK-NEXT: Type: SHT_PROGBITS -# CHECK-NEXT: Flags [ -# CHECK-NEXT: SHF_ALLOC -# CHECK-NEXT: SHF_MERGE -# CHECK-NEXT: ] -# CHECK-NEXT: Address: -# CHECK-NEXT: Offset: -# CHECK-NEXT: Size: 8 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 8 -# CHECK-NEXT: EntrySize: 8 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: 42000000 42000000 -# CHECK-NEXT: ) -# CHECK-NEXT: } -# CHECK: Section { -# CHECK: Index: -# CHECK: Name: .data -# CHECK-NEXT: Type: SHT_PROGBITS -# CHECK-NEXT: Flags [ -# CHECK-NEXT: SHF_ALLOC -# CHECK-NEXT: SHF_WRITE -# CHECK-NEXT: ] -# CHECK-NEXT: Address: -# CHECK-NEXT: Offset: -# CHECK-NEXT: Size: 16 -# CHECK-NEXT: Link: 0 -# CHECK-NEXT: Info: 0 -# CHECK-NEXT: AddressAlignment: 1 -# CHECK-NEXT: EntrySize: 0 -# CHECK-NEXT: SectionData ( -# CHECK-NEXT: 0000: 42000000 42000000 42000000 42000000 -# CHECK-NEXT: ) -# CHECK-NEXT: } +# CHECK: [Nr] Name Type Address Off Size ES Flg Lk Inf Al +# CHECK-NEXT: [ 0] NULL 0000000000000000 000000 000000 00 0 0 0 +# CHECK-NEXT: [ 1] .text PROGBITS 0000000000000000 000040 000000 00 AX 0 0 4 +# CHECK-NEXT: [ 2] .rodata.1 PROGBITS 0000000000000000 000040 000004 04 AM 0 0 4 +# CHECK-NEXT: [ 3] .rodata.2 PROGBITS 0000000000000000 000048 000008 08 AM 0 0 8 +# CHECK-NEXT: [ 4] .rodata.cst8 PROGBITS 0000000000000000 000050 000010 08 AM 0 0 1 +# CHECK-NEXT: [ 5] .rela.rodata.cst8 RELA 0000000000000000 000068 000030 18 I 9 4 8 +# CHECK-NEXT: [ 6] .cst4 PROGBITS 0000000000000000 000060 000008 04 AM 0 0 1 +# CHECK-NEXT: [ 7] .rela.cst4 RELA 0000000000000000 000098 000030 18 I 9 6 8 + +# OBJDUMP: Contents of section .rodata.1: +# OBJDUMP-NEXT: 0000 42000000 B... +# OBJDUMP-NEXT: Contents of section .rodata.2: +# OBJDUMP-NEXT: 0000 42000000 42000000 B...B... +# OBJDUMP-NEXT: Contents of section .rodata.cst8: +# OBJDUMP-NEXT: 0000 00000000 00000000 00000000 00000000 ................ +# OBJDUMP: Contents of section .cst4: +# OBJDUMP-NEXT: 0000 00000000 00000000 ........ + +# CHECK-PDE: [ 2] .cst4 PROGBITS 0000000000200140 000140 000008 04 AM 0 0 1 - .section .rodata.1,"aM",@progbits,4 - .align 4 - .global foo foo: - .long 0x42 - .long 0x42 - .long 0x42 - .section .rodata.2,"aM",@progbits,8 - .align 8 - .global bar -bar: - .long 0x42 - .long 0x42 - .long 0x42 - .long 0x42 +.section .rodata.1,"aM",@progbits,4 +.align 4 +.long 0x42 +.long 0x42 +.long 0x42 + +.section .rodata.2,"aM",@progbits,8 +.align 8 +.long 0x42 +.long 0x42 +.long 0x42 +.long 0x42 + +## Test that we keep a SHT_REL[A] section which relocates a SHF_MERGE section +## in -r mode. The relocated SHF_MERGE section is handled as non-mergeable. +.section .rodata.cst8,"aM",@progbits,8,unique,0 +.quad foo + +.section .rodata.cst8,"aM",@progbits,8,unique,1 +.quad foo - .data - .global gar -zed: - .long 0x42 - .long 0x42 - .long 0x42 - .long 0x42 +.section .cst4,"aM",@progbits,4,unique,0 +.long foo +.section .cst4,"aM",@progbits,4,unique,1 +.long foo diff --git a/lld/test/ELF/merge-relocatable.s b/lld/test/ELF/merge-relocatable.s deleted file mode 100644 index d376f4ca0b422..0000000000000 --- a/lld/test/ELF/merge-relocatable.s +++ /dev/null @@ -1,23 +0,0 @@ -# REQUIRES: x86 - -## Test that we keep a SHT_REL[A] section which relocates a SHF_MERGE section -## in -r mode. The relocated SHF_MERGE section is handled as non-mergeable. - -# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t.o -# RUN: ld.lld -r %t.o -o %t -# RUN: llvm-readobj -S %t | FileCheck %s - -# CHECK: Name: .rodata.cst8 -# CHECK-NOT: } -# CHECK: Size: 16 -# CHECK: Name: .rela.rodata.cst8 -# CHECK-NOT: } -# CHECK: Size: 48 - -foo: - -.section .rodata.cst8,"aM",@progbits,8,unique,0 -.quad foo - -.section .rodata.cst8,"aM",@progbits,8,unique,1 -.quad foo diff --git a/lld/test/ELF/merge-shared-str.s b/lld/test/ELF/merge-shared-str.s deleted file mode 100644 index 9ecdd64e97310..0000000000000 --- a/lld/test/ELF/merge-shared-str.s +++ /dev/null @@ -1,28 +0,0 @@ -// REQUIRES: x86 -// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o -// RUN: ld.lld %t.o -o %t.so -shared -O3 -// RUN: llvm-readobj -r -S %t.so | FileCheck %s - - - .section foo,"aMS",@progbits,1 - .asciz "bar" - .asciz "ar" - - .data - .quad foo + 4 - - -// CHECK: Name: foo -// CHECK-NEXT: Type: SHT_PROGBITS -// CHECK-NEXT: Flags [ -// CHECK-NEXT: SHF_ALLOC -// CHECK-NEXT: SHF_MERGE -// CHECK-NEXT: SHF_STRINGS -// CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x260 - -// CHECK: Relocations [ -// CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x{{.*}} R_X86_64_RELATIVE - 0x261 -// CHECK-NEXT: } -// CHECK-NEXT: ] diff --git a/lld/test/ELF/merge-shared.s b/lld/test/ELF/merge-shared.s deleted file mode 100644 index 12cb738c1077e..0000000000000 --- a/lld/test/ELF/merge-shared.s +++ /dev/null @@ -1,26 +0,0 @@ -// REQUIRES: x86 -// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o -// RUN: ld.lld %t.o -o %t.so -shared -// RUN: llvm-readobj -r -S %t.so | FileCheck %s - - .section foo,"aM",@progbits,4 - .long 42 - .long 42 - - .data - .quad foo + 6 - - -// CHECK: Name: foo -// CHECK-NEXT: Type: SHT_PROGBITS -// CHECK-NEXT: Flags [ -// CHECK-NEXT: SHF_ALLOC -// CHECK-NEXT: SHF_MERGE -// CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x260 - -// CHECK: Relocations [ -// CHECK-NEXT: Section ({{.*}}) .rela.dyn { -// CHECK-NEXT: 0x{{.*}} R_X86_64_RELATIVE - 0x262 -// CHECK-NEXT: } -// CHECK-NEXT: ] diff --git a/lld/test/ELF/merge-string.s b/lld/test/ELF/merge-string.s deleted file mode 100644 index 549195d5cf805..0000000000000 --- a/lld/test/ELF/merge-string.s +++ /dev/null @@ -1,105 +0,0 @@ -// REQUIRES: x86 -// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o -// RUN: ld.lld -O 2 %t.o -o %t.so -shared -// RUN: llvm-readobj -S --section-data --symbols %t.so | FileCheck %s -// RUN: ld.lld -O 1 %t.o -o %t.so -shared -// RUN: llvm-readobj -S --section-data --symbols %t.so | FileCheck --check-prefix=NOTAIL %s -// RUN: ld.lld -O 0 %t.o -o %t.so -shared -// RUN: llvm-readobj -S --section-data --symbols %t.so | FileCheck --check-prefix=NOMERGE %s - - .section .rodata1,"aMS",@progbits,1 - .asciz "abc" -foo: - .ascii "a" -bar: - .asciz "bc" - .asciz "bc" - - .section .rodata2,"aMS",@progbits,2 - .p2align 1 -zed: - .short 20 - .short 0 - -// CHECK: Name: .rodata1 -// CHECK-NEXT: Type: SHT_PROGBITS -// CHECK-NEXT: Flags [ -// CHECK-NEXT: SHF_ALLOC -// CHECK-NEXT: SHF_MERGE -// CHECK-NEXT: SHF_STRINGS -// CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x20D -// CHECK-NEXT: Offset: 0x20D -// CHECK-NEXT: Size: 4 -// CHECK-NEXT: Link: 0 -// CHECK-NEXT: Info: 0 -// CHECK-NEXT: AddressAlignment: 1 -// CHECK-NEXT: EntrySize: 1 -// CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 61626300 |abc.| -// CHECK-NEXT: ) - -// NOTAIL: Name: .rodata1 -// NOTAIL-NEXT: Type: SHT_PROGBITS -// NOTAIL-NEXT: Flags [ -// NOTAIL-NEXT: SHF_ALLOC -// NOTAIL-NEXT: SHF_MERGE -// NOTAIL-NEXT: SHF_STRINGS -// NOTAIL-NEXT: ] -// NOTAIL-NEXT: Address: 0x20D -// NOTAIL-NEXT: Offset: 0x20D -// NOTAIL-NEXT: Size: 7 -// NOTAIL-NEXT: Link: 0 -// NOTAIL-NEXT: Info: 0 -// NOTAIL-NEXT: AddressAlignment: 1 -// NOTAIL-NEXT: EntrySize: 1 -// NOTAIL-NEXT: SectionData ( -// NOTAIL-NEXT: 0000: 61626300 626300 |abc.bc.| -// NOTAIL-NEXT: ) - -// NOMERGE: Name: .rodata1 -// NOMERGE-NEXT: Type: SHT_PROGBITS -// NOMERGE-NEXT: Flags [ -// NOMERGE-NEXT: SHF_ALLOC -// NOMERGE-NEXT: SHF_MERGE -// NOMERGE-NEXT: SHF_STRINGS -// NOMERGE-NEXT: ] -// NOMERGE-NEXT: Address: 0x20D -// NOMERGE-NEXT: Offset: 0x20D -// NOMERGE-NEXT: Size: 11 -// NOMERGE-NEXT: Link: 0 -// NOMERGE-NEXT: Info: 0 -// NOMERGE-NEXT: AddressAlignment: 1 -// NOMERGE-NEXT: EntrySize: 1 -// NOMERGE-NEXT: SectionData ( -// NOMERGE-NEXT: 0000: 61626300 61626300 626300 |abc.abc.bc.| -// NOMERGE-NEXT: ) - -// CHECK: Name: .rodata2 -// CHECK-NEXT: Type: SHT_PROGBITS -// CHECK-NEXT: Flags [ -// CHECK-NEXT: SHF_ALLOC -// CHECK-NEXT: SHF_MERGE -// CHECK-NEXT: SHF_STRINGS -// CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x212 -// CHECK-NEXT: Offset: 0x212 -// CHECK-NEXT: Size: 4 -// CHECK-NEXT: Link: 0 -// CHECK-NEXT: Info: 0 -// CHECK-NEXT: AddressAlignment: 2 -// CHECK-NEXT: EntrySize: 2 -// CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 14000000 |....| -// CHECK-NEXT: ) - - -// CHECK: Name: foo -// CHECK-NEXT: Value: 0x20D - -// CHECK: Name: bar -// CHECK-NEXT: Value: 0x20E - -// CHECK: Name: zed -// CHECK-NEXT: Value: 0x212 -// CHECK-NEXT: Size: 0 diff --git a/lld/test/ELF/merge-to-non-alloc.s b/lld/test/ELF/merge-to-non-alloc.s deleted file mode 100644 index 17e826ed5bb0c..0000000000000 --- a/lld/test/ELF/merge-to-non-alloc.s +++ /dev/null @@ -1,33 +0,0 @@ -// REQUIRES: x86 -// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o -// RUN: ld.lld %t.o -o %t.so -shared -// RUN: llvm-readobj -S --section-data --symbols %t.so | FileCheck %s - -// CHECK: Name: .bar -// CHECK-NEXT: Type: SHT_PROGBITS -// CHECK-NEXT: Flags [ -// CHECK-NEXT: ] -// CHECK-NEXT: Address: -// CHECK-NEXT: Offset: -// CHECK-NEXT: Size: 16 -// CHECK-NEXT: Link: -// CHECK-NEXT: Info: -// CHECK-NEXT: AddressAlignment: -// CHECK-NEXT: EntrySize: -// CHECK-NEXT: SectionData ( -// CHECK-NEXT: 0000: 10020000 00000000 18020000 00000000 | -// CHECK-NEXT: ) - -// CHECK: Name: foo -// CHECK-NEXT: Value: 0x210 - - .section .foo,"aM",@progbits,4 - .align 4 - .global foo - .hidden foo -foo: - .long 0x42 - - .section .bar - .quad foo - .quad foo + 8 diff --git a/lld/test/ELF/reproduce.s b/lld/test/ELF/reproduce.s index 8818a9e35f403..29dc109d5a412 100644 --- a/lld/test/ELF/reproduce.s +++ b/lld/test/ELF/reproduce.s @@ -76,11 +76,12 @@ ## Check that directory path is stripped from -o # RUN: mkdir -p %t.dir/build4/a/b/c # RUN: cd %t.dir -# RUN: ld.lld build1/foo.o -o build4/a/b/c/bar -Map build4/map --print-archive-stats=build4/stats \ +# RUN: ld.lld build1/foo.o -o build4/a/b/c/bar -Map build4/map --dependency-file=build4/bar.d --print-archive-stats=build4/stats \ # RUN: --why-extract=build4/why -shared --as-needed --reproduce=repro4.tar # RUN: tar xOf repro4.tar repro4/response.txt | FileCheck %s --check-prefix=RSP4 # RSP4: -o bar # RSP4-NEXT: -Map map +# RSP4-NEXT: --dependency-file bar.d # RSP4-NEXT: --print-archive-stats=stats # RSP4-NEXT: --why-extract=why diff --git a/lld/test/ELF/riscv-attributes.s b/lld/test/ELF/riscv-attributes.s index 057223c18418e..d003a298101cb 100644 --- a/lld/test/ELF/riscv-attributes.s +++ b/lld/test/ELF/riscv-attributes.s @@ -104,20 +104,20 @@ # UNKNOWN22: warning: unknown22a.o:(.riscv.attributes): invalid tag 0x16 at offset 0x10 # HDR: Name Type Address Off Size ES Flg Lk Inf Al -# HDR: .riscv.attributes RISCV_ATTRIBUTES 0000000000000000 000158 000047 00 0 0 1{{$}} +# HDR: .riscv.attributes RISCV_ATTRIBUTES 0000000000000000 000158 00005a 00 0 0 1{{$}} # HDR: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align # HDR: LOAD 0x000000 0x0000000000010000 0x0000000000010000 0x000158 0x000158 R 0x1000 # HDR-NEXT: GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0 -# HDR-NEXT: ATTRIBUTES 0x000158 0x0000000000000000 0x0000000000000000 0x000047 0x000047 R 0x1{{$}} +# HDR-NEXT: ATTRIBUTES 0x000158 0x0000000000000000 0x0000000000000000 0x00005a 0x00005a R 0x1{{$}} # CHECK: BuildAttributes { # CHECK-NEXT: FormatVersion: 0x41 # CHECK-NEXT: Section 1 { -# CHECK-NEXT: SectionLength: 70 +# CHECK-NEXT: SectionLength: 89 # CHECK-NEXT: Vendor: riscv # CHECK-NEXT: Tag: Tag_File (0x1) -# CHECK-NEXT: Size: 60 +# CHECK-NEXT: Size: 79 # CHECK-NEXT: FileAttributes { # CHECK-NEXT: Attribute { # CHECK-NEXT: Tag: 4 @@ -128,7 +128,7 @@ # CHECK-NEXT: Attribute { # CHECK-NEXT: Tag: 5 # CHECK-NEXT: TagName: arch -# CHECK-NEXT: Value: rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0{{$}} +# CHECK-NEXT: Value: rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0{{$}} # CHECK-NEXT: } # CHECK-NEXT: } # CHECK-NEXT: } @@ -137,10 +137,10 @@ # CHECK2: BuildAttributes { # CHECK2-NEXT: FormatVersion: 0x41 # CHECK2-NEXT: Section 1 { -# CHECK2-NEXT: SectionLength: 113 +# CHECK2-NEXT: SectionLength: 132 # CHECK2-NEXT: Vendor: riscv # CHECK2-NEXT: Tag: Tag_File (0x1) -# CHECK2-NEXT: Size: 103 +# CHECK2-NEXT: Size: 122 # CHECK2-NEXT: FileAttributes { # CHECK2-NEXT: Attribute { # CHECK2-NEXT: Tag: 4 @@ -167,7 +167,7 @@ # CHECK2-NEXT: Attribute { # CHECK2-NEXT: Tag: 5 # CHECK2-NEXT: TagName: arch -# CHECK2-NEXT: Value: rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0{{$}} +# CHECK2-NEXT: Value: rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0_zkt1p0_zve32f1p0_zve32x1p0_zvl32b1p0{{$}} # CHECK2-NEXT: } # CHECK2-NEXT: } # CHECK2-NEXT: } diff --git a/lld/test/MachO/ltopasses-extension.ll b/lld/test/MachO/ltopasses-extension.ll new file mode 100644 index 0000000000000..300f03d4cfdb6 --- /dev/null +++ b/lld/test/MachO/ltopasses-extension.ll @@ -0,0 +1,13 @@ +; REQUIRES: x86, plugins, examples + +; RUN: opt -module-summary %s -o %t.o +; RUN: %lld -dylib -%loadnewpmbye --lto-newpm-passes="goodbye" -mllvm %loadbye -mllvm -wave-goodbye %t.o -o /dev/null 2>&1 | FileCheck %s +; CHECK: Bye + +target triple = "x86_64-apple-macosx10.15.0" +target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +@junk = global i32 0 + +define ptr @somefunk() { + ret ptr @junk +} diff --git a/lldb/bindings/interface/SBThreadExtensions.i b/lldb/bindings/interface/SBThreadExtensions.i index bfcc4d17e8f82..860a2d765a669 100644 --- a/lldb/bindings/interface/SBThreadExtensions.i +++ b/lldb/bindings/interface/SBThreadExtensions.i @@ -45,6 +45,12 @@ STRING_EXTENSION_OUTSIDE(SBThread) frames.append(frame) return frames + def get_stop_reason_data(self): + return [ + self.GetStopReasonDataAtIndex(idx) + for idx in range(self.GetStopReasonDataCount()) + ] + id = property(GetThreadID, None, doc='''A read only property that returns the thread ID as an integer.''') idx = property(GetIndexID, None, doc='''A read only property that returns the thread index ID as an integer. Thread index ID values start at 1 and increment as threads come and go and can be used to uniquely identify threads.''') return_value = property(GetStopReturnValue, None, doc='''A read only property that returns an lldb object that represents the return value from the last stop (lldb.SBValue) if we just stopped due to stepping out of a function.''') @@ -56,6 +62,7 @@ STRING_EXTENSION_OUTSIDE(SBThread) queue = property(GetQueueName, None, doc='''A read only property that returns the dispatch queue name of this thread as a string.''') queue_id = property(GetQueueID, None, doc='''A read only property that returns the dispatch queue id of this thread as an integer.''') stop_reason = property(GetStopReason, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eStopReason") that represents the reason this thread stopped.''') + stop_reason_data = property(get_stop_reason_data, None, doc='''A read only property that returns the stop reason data as a list.''') is_suspended = property(IsSuspended, None, doc='''A read only property that returns a boolean value that indicates if this thread is suspended.''') is_stopped = property(IsStopped, None, doc='''A read only property that returns a boolean value that indicates if this thread is stopped but not exited.''') %} diff --git a/lldb/docs/use/aarch64-linux.md b/lldb/docs/use/aarch64-linux.md index 70432f57857a5..393838dc0bb4f 100644 --- a/lldb/docs/use/aarch64-linux.md +++ b/lldb/docs/use/aarch64-linux.md @@ -17,7 +17,7 @@ In LLDB you will be able to see the following new registers: * `z0-z31` vector registers, each one has size equal to the vector length. * `p0-p15` predicate registers, each one containing 1 bit per byte in the vector - length. Making each one vector length / 8 sized. + length. So each one is `vector length in bits / 8` bits. * `ffr` the first fault register, same size as a predicate register. * `vg`, the vector length in "granules". Each granule is 8 bytes. diff --git a/lldb/include/lldb/Expression/UserExpression.h b/lldb/include/lldb/Expression/UserExpression.h index 7ce463d2cb4e7..2fde73dafa035 100644 --- a/lldb/include/lldb/Expression/UserExpression.h +++ b/lldb/include/lldb/Expression/UserExpression.h @@ -240,11 +240,9 @@ class UserExpression : public Expression { /// definitions to be included when the expression is parsed. /// /// \param[in,out] result_valobj_sp - /// If execution is successful, the result valobj is placed here. - /// - /// \param[out] error - /// Filled in with an error in case the expression evaluation - /// fails to parse, run, or evaluated. + /// If execution is successful, the result valobj is placed + /// here. Otherwise its Error will contain an ExpressionError + /// with details about the failure mode. /// /// \param[out] fixed_expression /// If non-nullptr, the fixed expression is copied into the provided @@ -266,7 +264,7 @@ class UserExpression : public Expression { static lldb::ExpressionResults Evaluate(ExecutionContext &exe_ctx, const EvaluateExpressionOptions &options, llvm::StringRef expr_cstr, llvm::StringRef expr_prefix, - lldb::ValueObjectSP &result_valobj_sp, Status &error, + lldb::ValueObjectSP &result_valobj_sp, std::string *fixed_expression = nullptr, ValueObject *ctx_obj = nullptr); diff --git a/lldb/include/lldb/Target/Process.h b/lldb/include/lldb/Target/Process.h index b8c53a474ba6b..a184e6dd891af 100644 --- a/lldb/include/lldb/Target/Process.h +++ b/lldb/include/lldb/Target/Process.h @@ -1380,6 +1380,8 @@ class Process : public std::enable_shared_from_this, virtual bool GetProcessInfo(ProcessInstanceInfo &info); + virtual lldb_private::UUID FindModuleUUID(const llvm::StringRef path); + /// Get the exit status for a process. /// /// \return diff --git a/lldb/include/lldb/Utility/CompletionRequest.h b/lldb/include/lldb/Utility/CompletionRequest.h index 650158a197dbd..865d6db576298 100644 --- a/lldb/include/lldb/Utility/CompletionRequest.h +++ b/lldb/include/lldb/Utility/CompletionRequest.h @@ -52,8 +52,8 @@ class CompletionResult { public: Completion(llvm::StringRef completion, llvm::StringRef description, CompletionMode mode) - : m_completion(completion.str()), m_descripton(description.str()), - m_mode(mode) {} + : m_completion(completion.rtrim().str()), + m_descripton(description.rtrim().str()), m_mode(mode) {} const std::string &GetCompletion() const { return m_completion; } const std::string &GetDescription() const { return m_descripton; } CompletionMode GetMode() const { return m_mode; } diff --git a/lldb/packages/Python/lldbsuite/test/lldbutil.py b/lldb/packages/Python/lldbsuite/test/lldbutil.py index 660a3c085a908..07b5f8cc7d900 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbutil.py +++ b/lldb/packages/Python/lldbsuite/test/lldbutil.py @@ -1158,17 +1158,6 @@ def GetModuleName(i): return list(map(GetModuleName, list(range(thread.GetNumFrames())))) -def get_stack_frames(thread): - """ - Returns a sequence of stack frames for this thread. - """ - - def GetStackFrame(i): - return thread.GetFrameAtIndex(i) - - return list(map(GetStackFrame, list(range(thread.GetNumFrames())))) - - def print_stacktrace(thread, string_buffer=False): """Prints a simple stack trace of this thread.""" diff --git a/lldb/source/API/SBValue.cpp b/lldb/source/API/SBValue.cpp index b35c82250d6ba..a707b9aa7589c 100644 --- a/lldb/source/API/SBValue.cpp +++ b/lldb/source/API/SBValue.cpp @@ -380,8 +380,10 @@ const char *SBValue::GetObjectDescription() { return nullptr; llvm::Expected str = value_sp->GetObjectDescription(); - if (!str) - return ConstString("error: " + toString(str.takeError())).AsCString(); + if (!str) { + llvm::consumeError(str.takeError()); + return nullptr; + } return ConstString(*str).AsCString(); } diff --git a/lldb/source/Commands/CommandObjectTarget.cpp b/lldb/source/Commands/CommandObjectTarget.cpp index 6c870bbe33125..307f4f683e3b2 100644 --- a/lldb/source/Commands/CommandObjectTarget.cpp +++ b/lldb/source/Commands/CommandObjectTarget.cpp @@ -2200,7 +2200,7 @@ class CommandObjectTargetModulesDumpClangPCMInfo : public CommandObjectParsed { } clang::CompilerInstance compiler; - compiler.createDiagnostics(); + compiler.createDiagnostics(*FileSystem::Instance().GetVirtualFileSystem()); const char *clang_args[] = {"clang", pcm_path}; compiler.setInvocation(clang::createInvocation(clang_args)); diff --git a/lldb/source/Core/DynamicLoader.cpp b/lldb/source/Core/DynamicLoader.cpp index 68d6ab0850853..acc84dbf016fb 100644 --- a/lldb/source/Core/DynamicLoader.cpp +++ b/lldb/source/Core/DynamicLoader.cpp @@ -157,6 +157,10 @@ DynamicLoader::GetSectionListFromModule(const ModuleSP module) const { ModuleSP DynamicLoader::FindModuleViaTarget(const FileSpec &file) { Target &target = m_process->GetTarget(); ModuleSpec module_spec(file, target.GetArchitecture()); + if (UUID uuid = m_process->FindModuleUUID(file.GetPath())) { + // Process may be able to augment the module_spec with UUID, e.g. ELF core. + module_spec.GetUUID() = uuid; + } if (ModuleSP module_sp = target.GetImages().FindFirstModule(module_spec)) return module_sp; diff --git a/lldb/source/Core/FormatEntity.cpp b/lldb/source/Core/FormatEntity.cpp index 36214c173af6f..d76fc97caa013 100644 --- a/lldb/source/Core/FormatEntity.cpp +++ b/lldb/source/Core/FormatEntity.cpp @@ -410,31 +410,31 @@ static bool DumpAddressAndContent(Stream &s, const SymbolContext *sc, const Address &addr, bool print_file_addr_or_load_addr) { Target *target = Target::GetTargetFromContexts(exe_ctx, sc); + addr_t vaddr = LLDB_INVALID_ADDRESS; - if (exe_ctx && !target->GetSectionLoadList().IsEmpty()) + if (target && !target->GetSectionLoadList().IsEmpty()) vaddr = addr.GetLoadAddress(target); if (vaddr == LLDB_INVALID_ADDRESS) vaddr = addr.GetFileAddress(); + if (vaddr == LLDB_INVALID_ADDRESS) + return false; - if (vaddr != LLDB_INVALID_ADDRESS) { - int addr_width = 0; - if (exe_ctx && target) { - addr_width = target->GetArchitecture().GetAddressByteSize() * 2; - } - if (addr_width == 0) - addr_width = 16; - if (print_file_addr_or_load_addr) { - ExecutionContextScope *exe_scope = nullptr; - if (exe_ctx) - exe_scope = exe_ctx->GetBestExecutionContextScope(); - addr.Dump(&s, exe_scope, Address::DumpStyleLoadAddress, - Address::DumpStyleModuleWithFileAddress, 0); - } else { - s.Printf("0x%*.*" PRIx64, addr_width, addr_width, vaddr); - } - return true; + int addr_width = 0; + if (target) + addr_width = target->GetArchitecture().GetAddressByteSize() * 2; + if (addr_width == 0) + addr_width = 16; + + if (print_file_addr_or_load_addr) { + ExecutionContextScope *exe_scope = + exe_ctx ? exe_ctx->GetBestExecutionContextScope() : nullptr; + addr.Dump(&s, exe_scope, Address::DumpStyleLoadAddress, + Address::DumpStyleModuleWithFileAddress, 0); + } else { + s.Printf("0x%*.*" PRIx64, addr_width, addr_width, vaddr); } - return false; + + return true; } static bool DumpAddressOffsetFromFunction(Stream &s, const SymbolContext *sc, diff --git a/lldb/source/Expression/DWARFExpression.cpp b/lldb/source/Expression/DWARFExpression.cpp index f92f25ed342a9..a7126b25c1cc3 100644 --- a/lldb/source/Expression/DWARFExpression.cpp +++ b/lldb/source/Expression/DWARFExpression.cpp @@ -1853,12 +1853,25 @@ llvm::Expected DWARFExpression::Evaluate( const Value::ValueType curr_piece_source_value_type = curr_piece_source_value.GetValueType(); Scalar &scalar = curr_piece_source_value.GetScalar(); - const lldb::addr_t addr = scalar.ULongLong(LLDB_INVALID_ADDRESS); + lldb::addr_t addr = scalar.ULongLong(LLDB_INVALID_ADDRESS); switch (curr_piece_source_value_type) { case Value::ValueType::Invalid: return llvm::createStringError("invalid value type"); - case Value::ValueType::LoadAddress: - case Value::ValueType::FileAddress: { + case Value::ValueType::FileAddress: + if (target) { + curr_piece_source_value.ConvertToLoadAddress(module_sp.get(), + target); + addr = scalar.ULongLong(LLDB_INVALID_ADDRESS); + } else { + return llvm::createStringError( + "unable to convert file address 0x%" PRIx64 + " to load address " + "for DW_OP_piece(%" PRIu64 "): " + "no target available", + addr, piece_byte_size); + } + [[fallthrough]]; + case Value::ValueType::LoadAddress: { if (target) { if (curr_piece.ResizeData(piece_byte_size) == piece_byte_size) { if (target->ReadMemory(addr, curr_piece.GetBuffer().GetBytes(), diff --git a/lldb/source/Expression/REPL.cpp b/lldb/source/Expression/REPL.cpp index 56c50e346b39b..4b53537e50e62 100644 --- a/lldb/source/Expression/REPL.cpp +++ b/lldb/source/Expression/REPL.cpp @@ -339,12 +339,9 @@ void REPL::IOHandlerInputComplete(IOHandler &io_handler, std::string &code) { const char *expr_prefix = nullptr; lldb::ValueObjectSP result_valobj_sp; + lldb::ExpressionResults execution_results = UserExpression::Evaluate( + exe_ctx, expr_options, code.c_str(), expr_prefix, result_valobj_sp); Status error; - lldb::ExpressionResults execution_results = - UserExpression::Evaluate(exe_ctx, expr_options, code.c_str(), - expr_prefix, result_valobj_sp, error, - nullptr); // fixed expression - if (llvm::Error err = OnExpressionEvaluated(exe_ctx, code, expr_options, execution_results, result_valobj_sp, error)) { diff --git a/lldb/source/Expression/UserExpression.cpp b/lldb/source/Expression/UserExpression.cpp index ed3734cbb943f..f1f69ae1c89b8 100644 --- a/lldb/source/Expression/UserExpression.cpp +++ b/lldb/source/Expression/UserExpression.cpp @@ -144,9 +144,13 @@ lldb::ExpressionResults UserExpression::Evaluate(ExecutionContext &exe_ctx, const EvaluateExpressionOptions &options, llvm::StringRef expr, llvm::StringRef prefix, - lldb::ValueObjectSP &result_valobj_sp, Status &error, + lldb::ValueObjectSP &result_valobj_sp, std::string *fixed_expression, ValueObject *ctx_obj) { Log *log(GetLog(LLDBLog::Expressions | LLDBLog::Step)); + auto set_error = [&](Status error) { + result_valobj_sp = ValueObjectConstResult::Create( + exe_ctx.GetBestExecutionContextScope(), std::move(error)); + }; if (ctx_obj) { static unsigned const ctx_type_mask = lldb::TypeFlags::eTypeIsClass | @@ -155,8 +159,7 @@ UserExpression::Evaluate(ExecutionContext &exe_ctx, if (!(ctx_obj->GetTypeInfo() & ctx_type_mask)) { LLDB_LOG(log, "== [UserExpression::Evaluate] Passed a context object of " "an invalid type, can't run expressions."); - error = - Status::FromErrorString("a context object of an invalid type passed"); + set_error(Status("a context object of an invalid type passed")); return lldb::eExpressionSetupError; } } @@ -168,8 +171,8 @@ UserExpression::Evaluate(ExecutionContext &exe_ctx, LLDB_LOG(log, "== [UserExpression::Evaluate] Passed a context object of " "a reference type that can't be dereferenced, can't run " "expressions."); - error = Status::FromErrorString( - "passed context object of an reference type cannot be deferenced"); + set_error(Status( + "passed context object of an reference type cannot be deferenced")); return lldb::eExpressionSetupError; } @@ -181,37 +184,34 @@ UserExpression::Evaluate(ExecutionContext &exe_ctx, const ResultType desired_type = options.DoesCoerceToId() ? UserExpression::eResultTypeId : UserExpression::eResultTypeAny; - lldb::ExpressionResults execution_results = lldb::eExpressionSetupError; - Target *target = exe_ctx.GetTargetPtr(); if (!target) { LLDB_LOG(log, "== [UserExpression::Evaluate] Passed a NULL target, can't " "run expressions."); - error = Status::FromErrorString("expression passed a null target"); + set_error(Status("expression passed a null target")); return lldb::eExpressionSetupError; } Process *process = exe_ctx.GetProcessPtr(); - if (process == nullptr && execution_policy == eExecutionPolicyAlways) { + if (!process && execution_policy == eExecutionPolicyAlways) { LLDB_LOG(log, "== [UserExpression::Evaluate] No process, but the policy is " "eExecutionPolicyAlways"); - error = Status::FromErrorString( - "expression needed to run but couldn't: no process"); + set_error(Status("expression needed to run but couldn't: no process")); - return execution_results; + return lldb::eExpressionSetupError; } // Since we might need to allocate memory, we need to be stopped to run // an expression. - if (process != nullptr && process->GetState() != lldb::eStateStopped) { - error = Status::FromErrorStringWithFormatv( + if (process && process->GetState() != lldb::eStateStopped) { + set_error(Status::FromErrorStringWithFormatv( "unable to evaluate expression while the process is {0}: the process " "must be stopped because the expression might require allocating " "memory.", - StateAsCString(process->GetState())); - return execution_results; + StateAsCString(process->GetState()))); + return lldb::eExpressionSetupError; } // Explicitly force the IR interpreter to evaluate the expression when the @@ -251,13 +251,14 @@ UserExpression::Evaluate(ExecutionContext &exe_ctx, language = frame->GetLanguage(); } + Status error; lldb::UserExpressionSP user_expression_sp( - target->GetUserExpressionForLanguage(expr, full_prefix, language, - desired_type, options, ctx_obj, - error)); + target->GetUserExpressionForLanguage( + expr, full_prefix, language, desired_type, options, ctx_obj, error)); if (error.Fail() || !user_expression_sp) { LLDB_LOG(log, "== [UserExpression::Evaluate] Getting expression: {0} ==", error.AsCString()); + set_error(std::move(error)); return lldb::eExpressionSetupError; } @@ -268,10 +269,7 @@ UserExpression::Evaluate(ExecutionContext &exe_ctx, const bool generate_debug_info = options.GetGenerateDebugInfo(); if (options.InvokeCancelCallback(lldb::eExpressionEvaluationParse)) { - Status error = Status::FromErrorString( - "expression interrupted by callback before parse"); - result_valobj_sp = ValueObjectConstResult::Create( - exe_ctx.GetBestExecutionContextScope(), std::move(error)); + set_error(Status("expression interrupted by callback before parse")); return lldb::eExpressionInterrupted; } @@ -287,6 +285,7 @@ UserExpression::Evaluate(ExecutionContext &exe_ctx, fixed_expression = &tmp_fixed_expression; *fixed_expression = user_expression_sp->GetFixedText().str(); + lldb::ExpressionResults execution_results = lldb::eExpressionSetupError; // If there is a fixed expression, try to parse it: if (!parse_success) { @@ -358,15 +357,13 @@ UserExpression::Evaluate(ExecutionContext &exe_ctx, lldb::eExpressionSetupError, "expression needed to run but couldn't")); } else if (execution_policy == eExecutionPolicyTopLevel) { - error = Status(UserExpression::kNoResult, lldb::eErrorTypeGeneric); + set_error(Status(UserExpression::kNoResult, lldb::eErrorTypeGeneric)); return lldb::eExpressionCompleted; } else { if (options.InvokeCancelCallback(lldb::eExpressionEvaluationExecution)) { - error = Status::FromError(llvm::make_error( + set_error(Status::FromError(llvm::make_error( lldb::eExpressionInterrupted, - "expression interrupted by callback before execution")); - result_valobj_sp = ValueObjectConstResult::Create( - exe_ctx.GetBestExecutionContextScope(), std::move(error)); + "expression interrupted by callback before execution"))); return lldb::eExpressionInterrupted; } @@ -410,17 +407,14 @@ UserExpression::Evaluate(ExecutionContext &exe_ctx, } if (options.InvokeCancelCallback(lldb::eExpressionEvaluationComplete)) { - error = Status::FromError(llvm::make_error( + set_error(Status::FromError(llvm::make_error( lldb::eExpressionInterrupted, - "expression interrupted by callback after complete")); + "expression interrupted by callback after complete"))); return lldb::eExpressionInterrupted; } - if (result_valobj_sp.get() == nullptr) { - result_valobj_sp = ValueObjectConstResult::Create( - exe_ctx.GetBestExecutionContextScope(), std::move(error)); - } - + if (error.Fail()) + set_error(std::move(error)); return execution_results; } diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp index 19d41903ea57b..f1573bae2651b 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp @@ -780,7 +780,7 @@ ClangExpressionParser::ClangExpressionParser( SetupTargetOpts(*m_compiler, *target_sp); // 3. Create and install the target on the compiler. - m_compiler->createDiagnostics(); + m_compiler->createDiagnostics(m_compiler->getVirtualFileSystem()); // Limit the number of error diagnostics we emit. // A value of 0 means no limit for both LLDB and Clang. m_compiler->getDiagnostics().setErrorLimit(target_sp->GetExprErrorLimit()); diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp index a43701cba3537..887db0b8fc575 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp @@ -706,8 +706,9 @@ ClangModulesDeclVendor::Create(Target &target) { auto diag_options_up = clang::CreateAndPopulateDiagOpts(compiler_invocation_argument_cstrs); llvm::IntrusiveRefCntPtr diagnostics_engine = - clang::CompilerInstance::createDiagnostics(diag_options_up.release(), - new StoringDiagnosticConsumer); + clang::CompilerInstance::createDiagnostics( + *FileSystem::Instance().GetVirtualFileSystem(), + diag_options_up.release(), new StoringDiagnosticConsumer); Log *log = GetLog(LLDBLog::Expressions); LLDB_LOG(log, "ClangModulesDeclVendor's compiler flags {0:$[ ]}", diff --git a/lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp b/lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp index b0b17263ed6f4..6d3e5b7e5573c 100644 --- a/lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp +++ b/lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp @@ -323,15 +323,15 @@ StructuredData::ObjectSP InstrumentationRuntimeTSan::RetrieveReportData( ValueObjectSP main_value; ExecutionContext exe_ctx; - Status eval_error; frame_sp->CalculateExecutionContext(exe_ctx); ExpressionResults result = UserExpression::Evaluate( exe_ctx, options, thread_sanitizer_retrieve_report_data_command, "", - main_value, eval_error); + main_value); if (result != eExpressionCompleted) { StreamString ss; ss << "cannot evaluate ThreadSanitizer expression:\n"; - ss << eval_error.AsCString(); + if (main_value) + ss << main_value->GetError().AsCString(); Debugger::ReportWarning(ss.GetString().str(), process_sp->GetTarget().GetDebugger().GetID()); return StructuredData::ObjectSP(); diff --git a/lldb/source/Plugins/InstrumentationRuntime/UBSan/InstrumentationRuntimeUBSan.cpp b/lldb/source/Plugins/InstrumentationRuntime/UBSan/InstrumentationRuntimeUBSan.cpp index 06d455e0676b2..8c2700cf21de9 100644 --- a/lldb/source/Plugins/InstrumentationRuntime/UBSan/InstrumentationRuntimeUBSan.cpp +++ b/lldb/source/Plugins/InstrumentationRuntime/UBSan/InstrumentationRuntimeUBSan.cpp @@ -130,15 +130,15 @@ StructuredData::ObjectSP InstrumentationRuntimeUBSan::RetrieveReportData( ValueObjectSP main_value; ExecutionContext exe_ctx; - Status eval_error; frame_sp->CalculateExecutionContext(exe_ctx); ExpressionResults result = UserExpression::Evaluate( exe_ctx, options, ub_sanitizer_retrieve_report_data_command, "", - main_value, eval_error); + main_value); if (result != eExpressionCompleted) { StreamString ss; ss << "cannot evaluate UndefinedBehaviorSanitizer expression:\n"; - ss << eval_error.AsCString(); + if (main_value) + ss << main_value->GetError().AsCString(); Debugger::ReportWarning(ss.GetString().str(), process_sp->GetTarget().GetDebugger().GetID()); return StructuredData::ObjectSP(); diff --git a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp index 2f1c78d07fc01..04ce339d8f661 100644 --- a/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp +++ b/lldb/source/Plugins/InstrumentationRuntime/Utility/ReportRetriever.cpp @@ -84,15 +84,15 @@ ReportRetriever::RetrieveReportData(const ProcessSP process_sp) { ValueObjectSP return_value_sp; ExecutionContext exe_ctx; - Status eval_error; frame_sp->CalculateExecutionContext(exe_ctx); ExpressionResults result = UserExpression::Evaluate( exe_ctx, options, address_sanitizer_retrieve_report_data_command, "", - return_value_sp, eval_error); + return_value_sp); if (result != eExpressionCompleted) { StreamString ss; ss << "cannot evaluate AddressSanitizer expression:\n"; - ss << eval_error.AsCString(); + if (return_value_sp) + ss << return_value_sp->GetError().AsCString(); Debugger::ReportWarning(ss.GetString().str(), process_sp->GetTarget().GetDebugger().GetID()); return StructuredData::ObjectSP(); diff --git a/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp b/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp index 7363f606d1a72..41df0e85199ce 100644 --- a/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp +++ b/lldb/source/Plugins/MemoryHistory/asan/MemoryHistoryASan.cpp @@ -162,7 +162,6 @@ HistoryThreads MemoryHistoryASan::GetHistoryThreads(lldb::addr_t address) { ExecutionContext exe_ctx(frame_sp); ValueObjectSP return_value_sp; StreamString expr; - Status eval_error; expr.Printf(memory_history_asan_command_format, address, address); EvaluateExpressionOptions options; @@ -176,11 +175,12 @@ HistoryThreads MemoryHistoryASan::GetHistoryThreads(lldb::addr_t address) { options.SetLanguage(eLanguageTypeObjC_plus_plus); ExpressionResults expr_result = UserExpression::Evaluate( - exe_ctx, options, expr.GetString(), "", return_value_sp, eval_error); + exe_ctx, options, expr.GetString(), "", return_value_sp); if (expr_result != eExpressionCompleted) { StreamString ss; ss << "cannot evaluate AddressSanitizer expression:\n"; - ss << eval_error.AsCString(); + if (return_value_sp) + ss << return_value_sp->GetError().AsCString(); Debugger::ReportWarning(ss.GetString().str(), process_sp->GetTarget().GetDebugger().GetID()); return result; diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp index b542e237f023d..85edf4bd5494a 100644 --- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp +++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp @@ -3768,7 +3768,6 @@ void ObjectFileMachO::ParseSymtab(Symtab &symtab) { SymbolType type = eSymbolTypeInvalid; SectionSP symbol_section; - lldb::addr_t symbol_byte_size = 0; bool add_nlist = true; bool is_gsym = false; bool demangled_is_synthesized = false; @@ -4354,47 +4353,6 @@ void ObjectFileMachO::ParseSymtab(Symtab &symtab) { if (symbol_section) { const addr_t section_file_addr = symbol_section->GetFileAddress(); - if (symbol_byte_size == 0 && function_starts_count > 0) { - addr_t symbol_lookup_file_addr = nlist.n_value; - // Do an exact address match for non-ARM addresses, else get the - // closest since the symbol might be a thumb symbol which has an - // address with bit zero set. - FunctionStarts::Entry *func_start_entry = - function_starts.FindEntry(symbol_lookup_file_addr, !is_arm); - if (is_arm && func_start_entry) { - // Verify that the function start address is the symbol address - // (ARM) or the symbol address + 1 (thumb). - if (func_start_entry->addr != symbol_lookup_file_addr && - func_start_entry->addr != (symbol_lookup_file_addr + 1)) { - // Not the right entry, NULL it out... - func_start_entry = nullptr; - } - } - if (func_start_entry) { - func_start_entry->data = true; - - addr_t symbol_file_addr = func_start_entry->addr; - if (is_arm) - symbol_file_addr &= THUMB_ADDRESS_BIT_MASK; - - const FunctionStarts::Entry *next_func_start_entry = - function_starts.FindNextEntry(func_start_entry); - const addr_t section_end_file_addr = - section_file_addr + symbol_section->GetByteSize(); - if (next_func_start_entry) { - addr_t next_symbol_file_addr = next_func_start_entry->addr; - // Be sure the clear the Thumb address bit when we calculate the - // size from the current and next address - if (is_arm) - next_symbol_file_addr &= THUMB_ADDRESS_BIT_MASK; - symbol_byte_size = std::min( - next_symbol_file_addr - symbol_file_addr, - section_end_file_addr - symbol_file_addr); - } else { - symbol_byte_size = section_end_file_addr - symbol_file_addr; - } - } - } symbol_value -= section_file_addr; } @@ -4501,9 +4459,6 @@ void ObjectFileMachO::ParseSymtab(Symtab &symtab) { if (nlist.n_desc & N_WEAK_REF) sym[sym_idx].SetIsWeak(true); - if (symbol_byte_size > 0) - sym[sym_idx].SetByteSize(symbol_byte_size); - if (demangled_is_synthesized) sym[sym_idx].SetDemangledNameIsSynthesized(true); @@ -4622,23 +4577,7 @@ void ObjectFileMachO::ParseSymtab(Symtab &symtab) { Address symbol_addr; if (module_sp->ResolveFileAddress(symbol_file_addr, symbol_addr)) { SectionSP symbol_section(symbol_addr.GetSection()); - uint32_t symbol_byte_size = 0; if (symbol_section) { - const addr_t section_file_addr = symbol_section->GetFileAddress(); - const FunctionStarts::Entry *next_func_start_entry = - function_starts.FindNextEntry(func_start_entry); - const addr_t section_end_file_addr = - section_file_addr + symbol_section->GetByteSize(); - if (next_func_start_entry) { - addr_t next_symbol_file_addr = next_func_start_entry->addr; - if (is_arm) - next_symbol_file_addr &= THUMB_ADDRESS_BIT_MASK; - symbol_byte_size = std::min( - next_symbol_file_addr - symbol_file_addr, - section_end_file_addr - symbol_file_addr); - } else { - symbol_byte_size = section_end_file_addr - symbol_file_addr; - } sym[sym_idx].SetID(synthetic_sym_id++); // Don't set the name for any synthetic symbols, the Symbol // object will generate one if needed when the name is accessed @@ -4650,8 +4589,6 @@ void ObjectFileMachO::ParseSymtab(Symtab &symtab) { add_symbol_addr(symbol_addr.GetFileAddress()); if (symbol_flags) sym[sym_idx].SetFlags(symbol_flags); - if (symbol_byte_size) - sym[sym_idx].SetByteSize(symbol_byte_size); ++sym_idx; } } diff --git a/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp b/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp index 4a8f669a84ecb..befc28b09d185 100644 --- a/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp +++ b/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp @@ -536,12 +536,11 @@ Status PlatformPOSIX::EvaluateLibdlExpression( // don't do the work to trap them. expr_options.SetTimeout(process->GetUtilityExpressionTimeout()); - Status expr_error; - ExpressionResults result = - UserExpression::Evaluate(exe_ctx, expr_options, expr_cstr, expr_prefix, - result_valobj_sp, expr_error); + ExpressionResults result = UserExpression::Evaluate( + exe_ctx, expr_options, expr_cstr, expr_prefix, result_valobj_sp); if (result != eExpressionCompleted) - return expr_error; + return result_valobj_sp ? result_valobj_sp->GetError().Clone() + : Status("unknown error"); if (result_valobj_sp->GetError().Fail()) return result_valobj_sp->GetError().Clone(); diff --git a/lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp b/lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp index 3936b8367fb83..c0c26cc5f1954 100644 --- a/lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp +++ b/lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp @@ -798,13 +798,12 @@ extern "C" { options.SetTrapExceptions(false); options.SetTimeout(process->GetUtilityExpressionTimeout()); - Status error; ExpressionResults result = UserExpression::Evaluate( - context, options, expression, kLoaderDecls, value, error); + context, options, expression, kLoaderDecls, value); if (result != eExpressionCompleted) - return error; + return value ? value->GetError().Clone() : Status("unknown error"); - if (value->GetError().Fail()) + if (value && value->GetError().Fail()) return value->GetError().Clone(); return Status(); diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp index 7955594bf5d94..b3916cc913f7d 100644 --- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp +++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp @@ -224,7 +224,7 @@ Status ProcessElfCore::DoLoadCore() { ArchSpec core_arch(m_core_module_sp->GetArchitecture()); target_arch.MergeFrom(core_arch); GetTarget().SetArchitecture(target_arch); - + SetUnixSignals(UnixSignals::Create(GetArchitecture())); // Ensure we found at least one thread that was stopped on a signal. @@ -232,7 +232,7 @@ Status ProcessElfCore::DoLoadCore() { bool prstatus_signal_found = false; // Check we found a signal in a SIGINFO note. for (const auto &thread_data : m_thread_data) { - if (thread_data.signo != 0) + if (thread_data.siginfo.si_signo != 0) siginfo_signal_found = true; if (thread_data.prstatus_sig != 0) prstatus_signal_found = true; @@ -242,10 +242,10 @@ Status ProcessElfCore::DoLoadCore() { // PRSTATUS note. if (prstatus_signal_found) { for (auto &thread_data : m_thread_data) - thread_data.signo = thread_data.prstatus_sig; + thread_data.siginfo.si_signo = thread_data.prstatus_sig; } else if (m_thread_data.size() > 0) { // If all else fails force the first thread to be SIGSTOP - m_thread_data.begin()->signo = + m_thread_data.begin()->siginfo.si_signo = GetUnixSignals()->GetSignalNumberFromName("SIGSTOP"); } } @@ -276,11 +276,24 @@ Status ProcessElfCore::DoLoadCore() { } void ProcessElfCore::UpdateBuildIdForNTFileEntries() { + Log *log = GetLog(LLDBLog::Process); for (NT_FILE_Entry &entry : m_nt_file_entries) { entry.uuid = FindBuidIdInCoreMemory(entry.start); + if (log && entry.uuid.IsValid()) + LLDB_LOGF(log, "%s found UUID @ %16.16" PRIx64 ": %s \"%s\"", + __FUNCTION__, entry.start, entry.uuid.GetAsString().c_str(), + entry.path.c_str()); } } +UUID ProcessElfCore::FindModuleUUID(const llvm::StringRef path) { + // Returns the gnu uuid from matched NT_FILE entry + for (NT_FILE_Entry &entry : m_nt_file_entries) + if (path == entry.path) + return entry.uuid; + return UUID(); +} + lldb_private::DynamicLoader *ProcessElfCore::GetDynamicLoader() { if (m_dyld_up.get() == nullptr) m_dyld_up.reset(DynamicLoader::FindPlugin( @@ -493,7 +506,7 @@ static void ParseFreeBSDPrStatus(ThreadData &thread_data, else offset += 16; - thread_data.signo = data.GetU32(&offset); // pr_cursig + thread_data.siginfo.si_signo = data.GetU32(&offset); // pr_cursig thread_data.tid = data.GetU32(&offset); // pr_pid if (lp64) offset += 4; @@ -576,7 +589,7 @@ static void ParseOpenBSDProcInfo(ThreadData &thread_data, return; offset += 4; - thread_data.signo = data.GetU32(&offset); + thread_data.siginfo.si_signo = data.GetU32(&offset); } llvm::Expected> @@ -814,7 +827,7 @@ llvm::Error ProcessElfCore::parseNetBSDNotes(llvm::ArrayRef notes) { // Signal targeted at the whole process. if (siglwp == 0) { for (auto &data : m_thread_data) - data.signo = signo; + data.siginfo.si_signo = signo; } // Signal destined for a particular LWP. else { @@ -822,7 +835,7 @@ llvm::Error ProcessElfCore::parseNetBSDNotes(llvm::ArrayRef notes) { for (auto &data : m_thread_data) { if (data.tid == siglwp) { - data.signo = signo; + data.siginfo.si_signo = signo; passed = true; break; } @@ -875,7 +888,7 @@ llvm::Error ProcessElfCore::parseOpenBSDNotes(llvm::ArrayRef notes) { /// - NT_SIGINFO - Information about the signal that terminated the process /// - NT_AUXV - Process auxiliary vector /// - NT_FILE - Files mapped into memory -/// +/// /// Additionally, for each thread in the process the core file will contain at /// least the NT_PRSTATUS note, containing the thread id and general purpose /// registers. It may include additional notes for other register sets (floating @@ -925,12 +938,12 @@ llvm::Error ProcessElfCore::parseLinuxNotes(llvm::ArrayRef notes) { break; } case ELF::NT_SIGINFO: { + const lldb_private::UnixSignals &unix_signals = *GetUnixSignals(); ELFLinuxSigInfo siginfo; - Status status = siginfo.Parse(note.data, arch); + Status status = siginfo.Parse(note.data, arch, unix_signals); if (status.Fail()) return status.ToError(); - thread_data.signo = siginfo.si_signo; - thread_data.code = siginfo.si_code; + thread_data.siginfo = siginfo; break; } case ELF::NT_FILE: { @@ -1034,15 +1047,20 @@ UUID ProcessElfCore::FindBuidIdInCoreMemory(lldb::addr_t address) { std::vector note_bytes; note_bytes.resize(program_header.p_memsz); - byte_read = ReadMemory(program_header.p_vaddr, note_bytes.data(), - program_header.p_memsz, error); + // We need to slide the address of the p_vaddr as these values don't get + // relocated in memory. + const lldb::addr_t vaddr = program_header.p_vaddr + address; + byte_read = + ReadMemory(vaddr, note_bytes.data(), program_header.p_memsz, error); if (byte_read != program_header.p_memsz) continue; DataExtractor segment_data(note_bytes.data(), note_bytes.size(), GetByteOrder(), addr_size); auto notes_or_error = parseSegment(segment_data); - if (!notes_or_error) + if (!notes_or_error) { + llvm::consumeError(notes_or_error.takeError()); return invalid_uuid; + } for (const CoreNote ¬e : *notes_or_error) { if (note.info.n_namesz == 4 && note.info.n_type == llvm::ELF::NT_GNU_BUILD_ID && diff --git a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h index 280c61ed37639..a91c04a277f60 100644 --- a/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h +++ b/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h @@ -163,6 +163,8 @@ class ProcessElfCore : public lldb_private::PostMortemProcess { // Populate gnu uuid for each NT_FILE entry void UpdateBuildIdForNTFileEntries(); + lldb_private::UUID FindModuleUUID(const llvm::StringRef path) override; + // Returns the value of certain type of note of a given start address lldb_private::UUID FindBuidIdInCoreMemory(lldb::addr_t address); diff --git a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp index f2838087298ef..91552dd976925 100644 --- a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp +++ b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp @@ -9,6 +9,7 @@ #include "lldb/Target/RegisterContext.h" #include "lldb/Target/StopInfo.h" #include "lldb/Target/Target.h" +#include "lldb/Target/UnixSignals.h" #include "lldb/Target/Unwind.h" #include "lldb/Utility/DataExtractor.h" #include "lldb/Utility/LLDBLog.h" @@ -50,8 +51,8 @@ using namespace lldb_private; // Construct a Thread object with given data ThreadElfCore::ThreadElfCore(Process &process, const ThreadData &td) : Thread(process, td.tid), m_thread_name(td.name), m_thread_reg_ctx_sp(), - m_signo(td.signo), m_code(td.code), m_gpregset_data(td.gpregset), - m_notes(td.notes) {} + m_gpregset_data(td.gpregset), m_notes(td.notes), + m_siginfo(std::move(td.siginfo)) {} ThreadElfCore::~ThreadElfCore() { DestroyThread(); } @@ -246,8 +247,21 @@ bool ThreadElfCore::CalculateStopInfo() { if (!process_sp) return false; + lldb::UnixSignalsSP unix_signals_sp(process_sp->GetUnixSignals()); + if (!unix_signals_sp) + return false; + + const char *sig_description; + std::string description = m_siginfo.GetDescription(*unix_signals_sp); + if (description.empty()) + sig_description = nullptr; + else + sig_description = description.c_str(); + SetStopInfo(StopInfo::CreateStopReasonWithSignal( - *this, m_signo, /*description=*/nullptr, m_code)); + *this, m_siginfo.si_signo, sig_description, m_siginfo.si_code)); + + SetStopInfo(m_stop_info_sp); return true; } @@ -547,21 +561,64 @@ size_t ELFLinuxSigInfo::GetSize(const lldb_private::ArchSpec &arch) { } } -Status ELFLinuxSigInfo::Parse(const DataExtractor &data, const ArchSpec &arch) { +Status ELFLinuxSigInfo::Parse(const DataExtractor &data, const ArchSpec &arch, + const lldb_private::UnixSignals &unix_signals) { Status error; - if (GetSize(arch) > data.GetByteSize()) { + uint64_t size = GetSize(arch); + if (size > data.GetByteSize()) { error = Status::FromErrorStringWithFormat( "NT_SIGINFO size should be %zu, but the remaining bytes are: %" PRIu64, GetSize(arch), data.GetByteSize()); return error; } + // Set that we've parsed the siginfo from a SIGINFO note. + note_type = eNT_SIGINFO; // Parsing from a 32 bit ELF core file, and populating/reusing the structure // properly, because the struct is for the 64 bit version offset_t offset = 0; si_signo = data.GetU32(&offset); si_errno = data.GetU32(&offset); si_code = data.GetU32(&offset); + // 64b ELF have a 4 byte pad. + if (data.GetAddressByteSize() == 8) + offset += 4; + // Not every stop signal has a valid address, but that will get resolved in + // the unix_signals.GetSignalDescription() call below. + if (unix_signals.GetShouldStop(si_signo)) { + // Instead of memcpy we call all these individually as the extractor will + // handle endianness for us. + sigfault.si_addr = data.GetAddress(&offset); + sigfault.si_addr_lsb = data.GetU16(&offset); + if (data.GetByteSize() - offset >= sizeof(sigfault.bounds)) { + sigfault.bounds._addr_bnd._lower = data.GetAddress(&offset); + sigfault.bounds._addr_bnd._upper = data.GetAddress(&offset); + sigfault.bounds._pkey = data.GetU32(&offset); + } else { + // Set these to 0 so we don't use bogus data for the description. + sigfault.bounds._addr_bnd._lower = 0; + sigfault.bounds._addr_bnd._upper = 0; + sigfault.bounds._pkey = 0; + } + } return error; } + +std::string ELFLinuxSigInfo::GetDescription( + const lldb_private::UnixSignals &unix_signals) const { + if (unix_signals.GetShouldStop(si_signo) && note_type == eNT_SIGINFO) { + if (sigfault.bounds._addr_bnd._upper != 0) + return unix_signals.GetSignalDescription( + si_signo, si_code, sigfault.si_addr, sigfault.bounds._addr_bnd._lower, + sigfault.bounds._addr_bnd._upper); + else + return unix_signals.GetSignalDescription(si_signo, si_code, + sigfault.si_addr); + } + + // This looks weird, but there is an existing pattern where we don't pass a + // description to keep up with that, we return empty here, and then the above + // function will set the description whether or not this is empty. + return std::string(); +} diff --git a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h index 3fa0b8b0eedb0..4ebbaadebe9f9 100644 --- a/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h +++ b/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h @@ -35,6 +35,8 @@ class ProcessInstanceInfo; #undef si_signo #undef si_code #undef si_errno +#undef si_addr +#undef si_addr_lsb struct ELFLinuxPrStatus { int32_t si_signo; @@ -76,14 +78,36 @@ static_assert(sizeof(ELFLinuxPrStatus) == 112, "sizeof ELFLinuxPrStatus is not correct!"); struct ELFLinuxSigInfo { - int32_t si_signo; - int32_t si_code; + + int32_t si_signo; // Order matters for the first 3. int32_t si_errno; + int32_t si_code; + // Copied from siginfo_t so we don't have to include signal.h on non 'Nix + // builds. + struct { + lldb::addr_t si_addr; /* faulting insn/memory ref. */ + short int si_addr_lsb; /* Valid LSB of the reported address. */ + union { + /* used when si_code=SEGV_BNDERR */ + struct { + lldb::addr_t _lower; + lldb::addr_t _upper; + } _addr_bnd; + /* used when si_code=SEGV_PKUERR */ + uint32_t _pkey; + } bounds; + } sigfault; + + enum { eUnspecified, eNT_SIGINFO } note_type; ELFLinuxSigInfo(); lldb_private::Status Parse(const lldb_private::DataExtractor &data, - const lldb_private::ArchSpec &arch); + const lldb_private::ArchSpec &arch, + const lldb_private::UnixSignals &unix_signals); + + std::string + GetDescription(const lldb_private::UnixSignals &unix_signals) const; // Return the bytesize of the structure // 64 bit - just sizeof @@ -93,7 +117,7 @@ struct ELFLinuxSigInfo { static size_t GetSize(const lldb_private::ArchSpec &arch); }; -static_assert(sizeof(ELFLinuxSigInfo) == 12, +static_assert(sizeof(ELFLinuxSigInfo) == 56, "sizeof ELFLinuxSigInfo is not correct!"); // PRPSINFO structure's size differs based on architecture. @@ -142,10 +166,9 @@ struct ThreadData { lldb_private::DataExtractor gpregset; std::vector notes; lldb::tid_t tid; - int signo = 0; - int code = 0; - int prstatus_sig = 0; std::string name; + ELFLinuxSigInfo siginfo; + int prstatus_sig = 0; }; class ThreadElfCore : public lldb_private::Thread { @@ -176,16 +199,17 @@ class ThreadElfCore : public lldb_private::Thread { m_thread_name.clear(); } + void CreateStopFromSigInfo(const ELFLinuxSigInfo &siginfo, + const lldb_private::UnixSignals &unix_signals); + protected: // Member variables. std::string m_thread_name; lldb::RegisterContextSP m_thread_reg_ctx_sp; - int m_signo; - int m_code; - lldb_private::DataExtractor m_gpregset_data; std::vector m_notes; + ELFLinuxSigInfo m_siginfo; bool CalculateStopInfo() override; }; diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp index 37c1132c1c9f9..d9bdeb560e122 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp @@ -45,7 +45,6 @@ #include "clang/AST/Type.h" #include "clang/Basic/Specifiers.h" #include "llvm/ADT/StringExtras.h" -#include "llvm/DebugInfo/DWARF/DWARFTypePrinter.h" #include "llvm/Demangle/Demangle.h" #include @@ -827,11 +826,11 @@ std::string DWARFASTParserClang::GetDIEClassTemplateParams(DWARFDIE die) { if (llvm::StringRef(die.GetName()).contains("<")) return {}; - std::string name; - llvm::raw_string_ostream os(name); - llvm::DWARFTypePrinter type_printer(os); - type_printer.appendAndTerminateTemplateParameters(die); - return name; + TypeSystemClang::TemplateParameterInfos template_param_infos; + if (ParseTemplateParameterInfos(die, template_param_infos)) + return m_ast.PrintTemplateParams(template_param_infos); + + return {}; } void DWARFASTParserClang::MapDeclDIEToDefDIE( @@ -1619,9 +1618,9 @@ void DWARFASTParserClang::GetUniqueTypeNameAndDeclaration( case DW_TAG_structure_type: case DW_TAG_union_type: { if (const char *class_union_struct_name = parent_decl_ctx_die.GetName()) { + qualified_name.insert( + 0, GetDIEClassTemplateParams(parent_decl_ctx_die)); qualified_name.insert(0, "::"); - qualified_name.insert(0, - GetDIEClassTemplateParams(parent_decl_ctx_die)); qualified_name.insert(0, class_union_struct_name); } parent_decl_ctx_die = parent_decl_ctx_die.GetParentDeclContextDIE(); @@ -1674,12 +1673,6 @@ DWARFASTParserClang::ParseStructureLikeDIE(const SymbolContext &sc, if (attrs.name) { GetUniqueTypeNameAndDeclaration(die, cu_language, unique_typename, unique_decl); - if (log) { - dwarf->GetObjectFile()->GetModule()->LogMessage( - log, "SymbolFileDWARF({0:p}) - {1:x16}: {2} has unique name: {3} ", - static_cast(this), die.GetID(), DW_TAG_value_to_name(tag), - unique_typename.AsCString()); - } if (UniqueDWARFASTType *unique_ast_entry_type = dwarf->GetUniqueDWARFASTTypeMap().Find( unique_typename, die, unique_decl, byte_size, diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h index d92de658a49e8..235343d227122 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFBaseDIE.h @@ -24,11 +24,9 @@ class DWARFUnit; class DWARFDebugInfoEntry; class DWARFDeclContext; class SymbolFileDWARF; -class DWARFFormValue; class DWARFBaseDIE { public: - using DWARFFormValue = dwarf::DWARFFormValue; DWARFBaseDIE() = default; DWARFBaseDIE(DWARFUnit *cu, DWARFDebugInfoEntry *die) @@ -119,12 +117,6 @@ class DWARFBaseDIE { enum class Recurse : bool { no, yes }; DWARFAttributes GetAttributes(Recurse recurse = Recurse::yes) const; - // The following methods use LLVM naming convension in order to be are used by - // LLVM libraries. - dw_tag_t getTag() const { return Tag(); } - - const char *getShortName() const { return GetName(); } - protected: DWARFUnit *m_cu = nullptr; DWARFDebugInfoEntry *m_die = nullptr; diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp index 362f4c44240c7..4c9f1d8505f6e 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp @@ -572,43 +572,6 @@ bool DWARFDIE::GetDIENamesAndRanges( return false; } -// The following methods use LLVM naming convension in order to be are used by -// LLVM libraries. llvm::iterator_range DWARFDIE::children() const { return llvm::make_range(child_iterator(*this), child_iterator()); } - -DWARFDIE::child_iterator DWARFDIE::begin() const { - return child_iterator(*this); -} - -DWARFDIE::child_iterator DWARFDIE::end() const { return child_iterator(); } - -std::optional DWARFDIE::find(const dw_attr_t attr) const { - DWARFFormValue form_value; - if (m_die->GetAttributeValue(m_cu, attr, form_value, nullptr, false)) - return form_value; - return std::nullopt; -} - -std::optional DWARFDIE::getLanguage() const { - if (IsValid()) - return m_cu->GetDWARFLanguageType(); - return std::nullopt; -} - -DWARFDIE DWARFDIE::resolveReferencedType(dw_attr_t attr) const { - return GetReferencedDIE(attr); -} - -DWARFDIE DWARFDIE::resolveReferencedType(DWARFFormValue v) const { - if (IsValid()) - return v.Reference(); - return {}; -} - -DWARFDIE DWARFDIE::resolveTypeUnitReference() const { - if (DWARFDIE reference = GetReferencedDIE(DW_AT_signature)) - return reference; - return *this; -} diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h index 5c1d381930c4e..077b78eb26d0c 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h @@ -103,25 +103,8 @@ class DWARFDIE : public DWARFBaseDIE { std::optional &call_line, std::optional &call_column, DWARFExpressionList *frame_base) const; - // The following methods use LLVM naming convension in order to be are used by - // LLVM libraries. - std::optional getLanguage() const; - - DWARFDIE getParent() const { return GetParent(); } - - DWARFDIE resolveReferencedType(dw_attr_t attr) const; - - DWARFDIE resolveReferencedType(DWARFFormValue v) const; - - DWARFDIE resolveTypeUnitReference() const; - - std::optional find(const dw_attr_t attr) const; - /// The range of all the children of this DIE. llvm::iterator_range children() const; - - child_iterator begin() const; - child_iterator end() const; }; class DWARFDIE::child_iterator diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp index fd3d45cef4c5e..404e50d57a925 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp @@ -574,31 +574,6 @@ uint64_t DWARFFormValue::Reference(dw_offset_t base_offset) const { } } -std::optional DWARFFormValue::getAsUnsignedConstant() const { - if ((!IsDataForm(m_form)) || m_form == lldb_private::dwarf::DW_FORM_sdata) - return std::nullopt; - return m_value.uval; -} - -std::optional DWARFFormValue::getAsSignedConstant() const { - if ((!IsDataForm(m_form)) || - (m_form == lldb_private::dwarf::DW_FORM_udata && - uint64_t(std::numeric_limits::max()) < m_value.uval)) - return std::nullopt; - switch (m_form) { - case lldb_private::dwarf::DW_FORM_data4: - return int32_t(m_value.uval); - case lldb_private::dwarf::DW_FORM_data2: - return int16_t(m_value.uval); - case lldb_private::dwarf::DW_FORM_data1: - return int8_t(m_value.uval); - case lldb_private::dwarf::DW_FORM_sdata: - case lldb_private::dwarf::DW_FORM_data8: - default: - return m_value.sval; - } -} - const uint8_t *DWARFFormValue::BlockData() const { return m_value.data; } bool DWARFFormValue::IsBlockForm(const dw_form_t form) { diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h index 613948f2f3c9b..8ab9163e645fe 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h @@ -76,12 +76,6 @@ class DWARFFormValue { void Clear(); static bool FormIsSupported(dw_form_t form); - // The following methods use LLVM naming convension in order to be are used by - // LLVM libraries. - std::optional getAsUnsignedConstant() const; - std::optional getAsSignedConstant() const; - const char *getAsCString() const { return AsCString(); } - protected: // Compile unit where m_value was located. // It may be different from compile unit where m_value refers to. diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp index c18edd10b9681..30c890d6d0138 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp @@ -137,9 +137,19 @@ void DWARFIndex::GetTypesWithQuery( bool DWARFIndex::ProcessTypeDIEMatchQuery( TypeQuery &query, DWARFDIE die, llvm::function_ref callback) { - // Nothing to match from query - if (query.GetContextRef().size() <= 1) + // Check the language, but only if we have a language filter. + if (query.HasLanguage() && + !query.LanguageMatches(SymbolFileDWARF::GetLanguageFamily(*die.GetCU()))) + return true; // Keep iterating over index types, language mismatch. + + // Since mangled names are unique, we only need to check if the names are + // the same. + if (query.GetSearchByMangledName()) { + if (die.GetMangledName(/*substitute_name_allowed=*/false) != + query.GetTypeBasename().GetStringRef()) + return true; // Keep iterating over index types, mangled name mismatch. return callback(die); + } std::vector die_context; if (query.GetModuleSearch()) diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index 47050d86409a6..c900f330b481b 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -9,7 +9,6 @@ #include "SymbolFileDWARF.h" #include "llvm/DebugInfo/DWARF/DWARFDebugLoc.h" -#include "llvm/DebugInfo/DWARF/DWARFTypePrinter.h" #include "llvm/Support/Casting.h" #include "llvm/Support/FileUtilities.h" #include "llvm/Support/Format.h" @@ -2727,39 +2726,8 @@ void SymbolFileDWARF::FindTypes(const TypeQuery &query, TypeResults &results) { TypeQuery query_full(query); bool have_index_match = false; m_index->GetTypesWithQuery(query_full, [&](DWARFDIE die) { - // Check the language, but only if we have a language filter. - if (query.HasLanguage()) { - if (!query.LanguageMatches(GetLanguageFamily(*die.GetCU()))) - return true; // Keep iterating over index types, language mismatch. - } - - // Since mangled names are unique, we only need to check if the names are - // the same. - if (query.GetSearchByMangledName()) { - if (die.GetMangledName(/*substitute_name_allowed=*/false) != - query.GetTypeBasename().GetStringRef()) - return true; // Keep iterating over index types, mangled name mismatch. - if (Type *matching_type = ResolveType(die, true, true)) { - results.InsertUnique(matching_type->shared_from_this()); - return !results.Done(query); // Keep iterating if we aren't done. - } - return true; // Keep iterating over index types, weren't able to resolve - // this type - } - - // Check the context matches - std::vector die_context; - if (query.GetModuleSearch()) - die_context = die.GetDeclContext(); - else - die_context = die.GetTypeLookupContext(); - assert(!die_context.empty()); - if (!query.ContextMatches(die_context)) - return true; // Keep iterating over index types, context mismatch. - - // Try to resolve the type. if (Type *matching_type = ResolveType(die, true, true)) { - if (matching_type->IsTemplateType()) { + if (!query.GetSearchByMangledName() && matching_type->IsTemplateType()) { // We have to watch out for case where we lookup a type by basename and // it matches a template with simple template names. Like looking up // "Foo" and if we have simple template names then we will match @@ -2791,7 +2759,7 @@ void SymbolFileDWARF::FindTypes(const TypeQuery &query, TypeResults &results) { // With -gsimple-template-names, a templated type's DW_AT_name will not // contain the template parameters. Try again stripping '<' and anything // after, filtering out entries with template parameters that don't match. - if (!have_index_match) { + if (!have_index_match && !query.GetSearchByMangledName()) { // Create a type matcher with a compiler context that is tuned for // -gsimple-template-names. We will use this for the index lookup and the // context matching, but will use the original "match" to insert matches @@ -2805,20 +2773,22 @@ void SymbolFileDWARF::FindTypes(const TypeQuery &query, TypeResults &results) { // Copy our match's context and update the basename we are looking for // so we can use this only to compare the context correctly. m_index->GetTypesWithQuery(query_simple, [&](DWARFDIE die) { - // Check the language, but only if we have a language filter. - if (query.HasLanguage()) { - if (!query.LanguageMatches(GetLanguageFamily(*die.GetCU()))) - return true; // Keep iterating over index types, language mismatch. + if (Type *matching_type = ResolveType(die, true, true)) { + ConstString name = matching_type->GetQualifiedName(); + // We have found a type that still might not match due to template + // parameters. If we create a new TypeQuery that uses the new type's + // fully qualified name, we can find out if this type matches at all + // context levels. We can't use just the "match_simple" context + // because all template parameters were stripped off. The fully + // qualified name of the type will have the template parameters and + // will allow us to make sure it matches correctly. + TypeQuery die_query(name.GetStringRef(), + TypeQueryOptions::e_exact_match); + if (!query.ContextMatches(die_query.GetContextRef())) + return true; // Keep iterating over index types, context mismatch. + + results.InsertUnique(matching_type->shared_from_this()); } - - std::string qualified_name; - llvm::raw_string_ostream os(qualified_name); - llvm::DWARFTypePrinter type_printer(os); - type_printer.appendQualifiedName(die); - TypeQuery die_query(qualified_name, e_exact_match); - if (query.ContextMatches(die_query.GetContextRef())) - if (Type *matching_type = ResolveType(die, true, true)) - results.InsertUnique(matching_type->shared_from_this()); return !results.Done(query); // Keep iterating if we aren't done. }); if (results.Done(query)) { diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp index c0416b4d06815..0f77b2e28004e 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp +++ b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp @@ -379,18 +379,17 @@ uint32_t SymbolFileNativePDB::CalculateNumCompileUnits() { return count; } -Block &SymbolFileNativePDB::CreateBlock(PdbCompilandSymId block_id) { +Block *SymbolFileNativePDB::CreateBlock(PdbCompilandSymId block_id) { CompilandIndexItem *cii = m_index->compilands().GetCompiland(block_id.modi); CVSymbol sym = cii->m_debug_stream.readSymbolAtOffset(block_id.offset); CompUnitSP comp_unit = GetOrCreateCompileUnit(*cii); lldb::user_id_t opaque_block_uid = toOpaqueUid(block_id); - BlockSP child_block = std::make_shared(opaque_block_uid); auto ts_or_err = GetTypeSystemForLanguage(comp_unit->GetLanguage()); if (auto err = ts_or_err.takeError()) - return *child_block; + return nullptr; auto ts = *ts_or_err; if (!ts) - return *child_block; + return nullptr; PdbAstBuilder* ast_builder = ts->GetNativePDBParser(); switch (sym.kind()) { @@ -403,7 +402,7 @@ Block &SymbolFileNativePDB::CreateBlock(PdbCompilandSymId block_id) { Block &block = func->GetBlock(false); if (block.GetNumRanges() == 0) block.AddRange(Block::Range(0, func->GetAddressRange().GetByteSize())); - return block; + return █ } break; } @@ -416,13 +415,16 @@ Block &SymbolFileNativePDB::CreateBlock(PdbCompilandSymId block_id) { cantFail(SymbolDeserializer::deserializeAs(sym, block)); lldbassert(block.Parent != 0); PdbCompilandSymId parent_id(block_id.modi, block.Parent); - Block &parent_block = GetOrCreateBlock(parent_id); - Function *func = parent_block.CalculateSymbolContextFunction(); + Block *parent_block = GetOrCreateBlock(parent_id); + if (!parent_block) + return nullptr; + Function *func = parent_block->CalculateSymbolContextFunction(); lldbassert(func); lldb::addr_t block_base = m_index->MakeVirtualAddress(block.Segment, block.CodeOffset); lldb::addr_t func_base = func->GetAddressRange().GetBaseAddress().GetFileAddress(); + BlockSP child_block = std::make_shared(opaque_block_uid); if (block_base >= func_base) child_block->AddRange(Block::Range(block_base - func_base, block.CodeSize)); else { @@ -435,7 +437,7 @@ Block &SymbolFileNativePDB::CreateBlock(PdbCompilandSymId block_id) { block_id.modi, block_id.offset, block_base, block_base + block.CodeSize, func_base); } - parent_block.AddChild(child_block); + parent_block->AddChild(child_block); ast_builder->GetOrCreateBlockDecl(block_id); m_blocks.insert({opaque_block_uid, child_block}); break; @@ -445,8 +447,11 @@ Block &SymbolFileNativePDB::CreateBlock(PdbCompilandSymId block_id) { comp_unit->GetLineTable(); std::shared_ptr inline_site = m_inline_sites[opaque_block_uid]; - Block &parent_block = GetOrCreateBlock(inline_site->parent_id); - parent_block.AddChild(child_block); + Block *parent_block = GetOrCreateBlock(inline_site->parent_id); + if (!parent_block) + return nullptr; + BlockSP child_block = std::make_shared(opaque_block_uid); + parent_block->AddChild(child_block); ast_builder->GetOrCreateInlinedFunctionDecl(block_id); // Copy ranges from InlineSite to Block. for (size_t i = 0; i < inline_site->ranges.GetSize(); ++i) { @@ -469,7 +474,7 @@ Block &SymbolFileNativePDB::CreateBlock(PdbCompilandSymId block_id) { lldbassert(false && "Symbol is not a block!"); } - return *child_block; + return nullptr; } lldb::FunctionSP SymbolFileNativePDB::CreateFunction(PdbCompilandSymId func_id, @@ -997,10 +1002,10 @@ SymbolFileNativePDB::GetOrCreateCompileUnit(const CompilandIndexItem &cci) { return emplace_result.first->second; } -Block &SymbolFileNativePDB::GetOrCreateBlock(PdbCompilandSymId block_id) { +Block *SymbolFileNativePDB::GetOrCreateBlock(PdbCompilandSymId block_id) { auto iter = m_blocks.find(toOpaqueUid(block_id)); if (iter != m_blocks.end()) - return *iter->second; + return iter->second.get(); return CreateBlock(block_id); } @@ -1124,14 +1129,16 @@ uint32_t SymbolFileNativePDB::ResolveSymbolContext( } if (type == PDB_SymType::Block) { - Block &block = GetOrCreateBlock(csid); - sc.function = block.CalculateSymbolContextFunction(); + Block *block = GetOrCreateBlock(csid); + if (!block) + continue; + sc.function = block->CalculateSymbolContextFunction(); if (sc.function) { sc.function->GetBlock(true); addr_t func_base = sc.function->GetAddressRange().GetBaseAddress().GetFileAddress(); addr_t offset = file_addr - func_base; - sc.block = block.FindInnermostBlockByOffset(offset); + sc.block = block->FindInnermostBlockByOffset(offset); } } if (sc.function) @@ -1837,12 +1844,16 @@ VariableSP SymbolFileNativePDB::CreateLocalVariable(PdbCompilandSymId scope_id, PdbCompilandSymId var_id, bool is_param) { ModuleSP module = GetObjectFile()->GetModule(); - Block &block = GetOrCreateBlock(scope_id); + Block *block = GetOrCreateBlock(scope_id); + if (!block) + return nullptr; + // Get function block. - Block *func_block = █ + Block *func_block = block; while (func_block->GetParent()) { func_block = func_block->GetParent(); } + Address addr; func_block->GetStartAddress(addr); VariableInfo var_info = @@ -1875,8 +1886,8 @@ VariableSP SymbolFileNativePDB::CreateLocalVariable(PdbCompilandSymId scope_id, bool static_member = false; Variable::RangeList scope_ranges; VariableSP var_sp = std::make_shared( - toOpaqueUid(var_id), name.c_str(), name.c_str(), sftype, var_scope, - &block, scope_ranges, &decl, var_info.location, external, artificial, + toOpaqueUid(var_id), name.c_str(), name.c_str(), sftype, var_scope, block, + scope_ranges, &decl, var_info.location, external, artificial, location_is_constant_data, static_member); if (!is_param) { auto ts_or_err = GetTypeSystemForLanguage(comp_unit_sp->GetLanguage()); @@ -1935,7 +1946,9 @@ TypeSP SymbolFileNativePDB::GetOrCreateTypedef(PdbGlobalSymId id) { } size_t SymbolFileNativePDB::ParseVariablesForBlock(PdbCompilandSymId block_id) { - Block &block = GetOrCreateBlock(block_id); + Block *block = GetOrCreateBlock(block_id); + if (!block) + return 0; size_t count = 0; @@ -1977,10 +1990,10 @@ size_t SymbolFileNativePDB::ParseVariablesForBlock(PdbCompilandSymId block_id) { return 0; } - VariableListSP variables = block.GetBlockVariableList(false); + VariableListSP variables = block->GetBlockVariableList(false); if (!variables) { variables = std::make_shared(); - block.SetVariableList(variables); + block->SetVariableList(variables); } CVSymbolArray syms = limitSymbolArrayToScope( @@ -2027,7 +2040,7 @@ size_t SymbolFileNativePDB::ParseVariablesForBlock(PdbCompilandSymId block_id) { // Pass false for set_children, since we call this recursively so that the // children will call this for themselves. - block.SetDidParseVariables(true, false); + block->SetDidParseVariables(true, false); return count; } diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h index 669c44aa131ed..b0e78a243a3c2 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h +++ b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h @@ -226,7 +226,7 @@ class SymbolFileNativePDB : public SymbolFileCommon { lldb::TypeSP GetOrCreateType(PdbTypeSymId type_id); lldb::TypeSP GetOrCreateType(llvm::codeview::TypeIndex ti); lldb::VariableSP GetOrCreateGlobalVariable(PdbGlobalSymId var_id); - Block &GetOrCreateBlock(PdbCompilandSymId block_id); + Block *GetOrCreateBlock(PdbCompilandSymId block_id); lldb::VariableSP GetOrCreateLocalVariable(PdbCompilandSymId scope_id, PdbCompilandSymId var_id, bool is_param); @@ -234,7 +234,7 @@ class SymbolFileNativePDB : public SymbolFileCommon { lldb::FunctionSP CreateFunction(PdbCompilandSymId func_id, CompileUnit &comp_unit); - Block &CreateBlock(PdbCompilandSymId block_id); + Block *CreateBlock(PdbCompilandSymId block_id); lldb::VariableSP CreateLocalVariable(PdbCompilandSymId scope_id, PdbCompilandSymId var_id, bool is_param); lldb::TypeSP CreateTypedef(PdbGlobalSymId id); diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp index 5f8163211857c..1a77c7cf9161a 100644 --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp @@ -1403,6 +1403,26 @@ static TemplateParameterList *CreateTemplateParameterList( return template_param_list; } +std::string TypeSystemClang::PrintTemplateParams( + const TemplateParameterInfos &template_param_infos) { + llvm::SmallVector ignore; + clang::TemplateParameterList *template_param_list = + CreateTemplateParameterList(getASTContext(), template_param_infos, + ignore); + llvm::SmallVector args( + template_param_infos.GetArgs()); + if (template_param_infos.hasParameterPack()) { + llvm::ArrayRef pack_args = + template_param_infos.GetParameterPackArgs(); + args.append(pack_args.begin(), pack_args.end()); + } + std::string str; + llvm::raw_string_ostream os(str); + clang::printTemplateArgumentList(os, args, GetTypePrintingPolicy(), + template_param_list); + return str; +} + clang::FunctionTemplateDecl *TypeSystemClang::CreateFunctionTemplateDecl( clang::DeclContext *decl_ctx, OptionalClangModuleID owning_module, clang::FunctionDecl *func_decl, diff --git a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h index 678eaed381fd4..e39aedec7e390 100644 --- a/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h +++ b/lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h @@ -1148,6 +1148,10 @@ class TypeSystemClang : public TypeSystem { bool SetDeclIsForcefullyCompleted(const clang::TagDecl *td); + /// Return the template parameters (including surrounding <>) in string form. + std::string + PrintTemplateParams(const TemplateParameterInfos &template_param_infos); + private: /// Returns the PrintingPolicy used when generating the internal type names. /// These type names are mostly used for the formatter selection. diff --git a/lldb/source/Symbol/Block.cpp b/lldb/source/Symbol/Block.cpp index 5c7772a6db780..8746a25e3fad5 100644 --- a/lldb/source/Symbol/Block.cpp +++ b/lldb/source/Symbol/Block.cpp @@ -252,19 +252,20 @@ bool Block::GetRangeContainingAddress(const Address &addr, Function *function = CalculateSymbolContextFunction(); if (function) { const AddressRange &func_range = function->GetAddressRange(); - if (addr.GetSection() == func_range.GetBaseAddress().GetSection()) { - const addr_t addr_offset = addr.GetOffset(); - const addr_t func_offset = func_range.GetBaseAddress().GetOffset(); - if (addr_offset >= func_offset && - addr_offset < func_offset + func_range.GetByteSize()) { - addr_t offset = addr_offset - func_offset; + if (addr.GetModule() == func_range.GetBaseAddress().GetModule()) { + const addr_t file_addr = addr.GetFileAddress(); + const addr_t func_file_addr = + func_range.GetBaseAddress().GetFileAddress(); + if (file_addr >= func_file_addr && + file_addr < func_file_addr + func_range.GetByteSize()) { + addr_t offset = file_addr - func_file_addr; const Range *range_ptr = m_ranges.FindEntryThatContains(offset); if (range_ptr) { - range.GetBaseAddress() = func_range.GetBaseAddress(); - range.GetBaseAddress().SetOffset(func_offset + - range_ptr->GetRangeBase()); + range.GetBaseAddress() = + Address(func_file_addr + range_ptr->GetRangeBase(), + addr.GetModule()->GetSectionList()); range.SetByteSize(range_ptr->GetByteSize()); return true; } diff --git a/lldb/source/Symbol/SymbolContext.cpp b/lldb/source/Symbol/SymbolContext.cpp index de083e81206e2..1a291ca3c0ea7 100644 --- a/lldb/source/Symbol/SymbolContext.cpp +++ b/lldb/source/Symbol/SymbolContext.cpp @@ -102,10 +102,11 @@ bool SymbolContext::DumpStopContext( s->PutCStringColorHighlighted(name.GetStringRef(), settings); } - if (addr.IsValid()) { + if (addr_t file_addr = addr.GetFileAddress(); + file_addr != LLDB_INVALID_ADDRESS) { const addr_t function_offset = - addr.GetOffset() - - function->GetAddressRange().GetBaseAddress().GetOffset(); + file_addr - + function->GetAddressRange().GetBaseAddress().GetFileAddress(); if (!show_function_name) { // Print +offset even if offset is 0 dumped_something = true; @@ -126,7 +127,8 @@ bool SymbolContext::DumpStopContext( lldb_private::AddressRange block_range; if (inlined_block->GetRangeContainingAddress(addr, block_range)) { const addr_t inlined_function_offset = - addr.GetOffset() - block_range.GetBaseAddress().GetOffset(); + addr.GetFileAddress() - + block_range.GetBaseAddress().GetFileAddress(); if (inlined_function_offset) { s->Printf(" + %" PRIu64, inlined_function_offset); } diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index 9125ceca74a00..db33525978a16 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -6080,6 +6080,10 @@ bool Process::GetProcessInfo(ProcessInstanceInfo &info) { return platform_sp->GetProcessInfo(GetID(), info); } +lldb_private::UUID Process::FindModuleUUID(const llvm::StringRef path) { + return lldb_private::UUID(); +} + ThreadCollectionSP Process::GetHistoryThreads(lldb::addr_t addr) { ThreadCollectionSP threads; diff --git a/lldb/source/Target/StopInfo.cpp b/lldb/source/Target/StopInfo.cpp index f6387d47504e6..356917a45b7b3 100644 --- a/lldb/source/Target/StopInfo.cpp +++ b/lldb/source/Target/StopInfo.cpp @@ -932,10 +932,9 @@ class StopInfoWatchpoint : public StopInfo { expr_options.SetUnwindOnError(true); expr_options.SetIgnoreBreakpoints(true); ValueObjectSP result_value_sp; - Status error; result_code = UserExpression::Evaluate( exe_ctx, expr_options, wp_sp->GetConditionText(), - llvm::StringRef(), result_value_sp, error); + llvm::StringRef(), result_value_sp); if (result_code == eExpressionCompleted) { if (result_value_sp) { @@ -959,7 +958,10 @@ class StopInfoWatchpoint : public StopInfo { } } } else { - const char *err_str = error.AsCString(""); + const char *err_str = ""; + if (result_value_sp) + err_str = result_value_sp->GetError().AsCString(); + LLDB_LOGF(log, "Error evaluating condition: \"%s\"\n", err_str); StreamString strm; diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index d70274a4b7c7c..4bac94f35d6cf 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -2842,14 +2842,9 @@ ExpressionResults Target::EvaluateExpression( execution_results = eExpressionCompleted; } else { llvm::StringRef prefix = GetExpressionPrefixContents(); - Status error; - execution_results = UserExpression::Evaluate(exe_ctx, options, expr, prefix, - result_valobj_sp, error, - fixed_expression, ctx_obj); - // Pass up the error by wrapping it inside an error result. - if (error.Fail() && !result_valobj_sp) - result_valobj_sp = ValueObjectConstResult::Create( - exe_ctx.GetBestExecutionContextScope(), std::move(error)); + execution_results = + UserExpression::Evaluate(exe_ctx, options, expr, prefix, + result_valobj_sp, fixed_expression, ctx_obj); } if (execution_results == eExpressionCompleted) diff --git a/lldb/source/Utility/Status.cpp b/lldb/source/Utility/Status.cpp index 1d171c6b6c374..5757935fb8622 100644 --- a/lldb/source/Utility/Status.cpp +++ b/lldb/source/Utility/Status.cpp @@ -258,7 +258,11 @@ ErrorType Status::GetType() const { // Return the first only. if (result != eErrorTypeInvalid) return; - result = ErrorCodeToErrorType(error.convertToErrorCode()); + if (error.isA()) + result = static_cast(error).GetErrorType(); + else + result = ErrorCodeToErrorType(error.convertToErrorCode()); + }); return result; } diff --git a/lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py b/lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py index fac562edf9ece..0806776aa6eb0 100644 --- a/lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py +++ b/lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py @@ -184,6 +184,22 @@ def test_source_locations_from_objc_modules(self): # the first argument are probably stable enough that this test can check for them. self.assertIn("void NSLog(NSString *format", value.GetError().GetCString()) + def test_error_type(self): + """Test the error reporting in the API""" + self.build() + + (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint( + self, "// Break here", self.main_source_spec + ) + frame = thread.GetFrameAtIndex(0) + value = frame.EvaluateExpression('#error("I am error.")') + error = value.GetError() + self.assertEqual(error.GetType(), lldb.eErrorTypeExpression) + value = frame.FindVariable("f") + self.assertTrue(value.IsValid()) + desc = value.GetObjectDescription() + self.assertEqual(desc, None) + def test_command_expr_sbdata(self): """Test the structured diagnostics data""" self.build() diff --git a/lldb/test/API/commands/expression/fixits/TestFixIts.py b/lldb/test/API/commands/expression/fixits/TestFixIts.py index 1b22ed1c0077c..bfe11f6c6fcb9 100644 --- a/lldb/test/API/commands/expression/fixits/TestFixIts.py +++ b/lldb/test/API/commands/expression/fixits/TestFixIts.py @@ -53,7 +53,7 @@ def test_with_target(self): expr = "struct MyTy { int m; }; MyTy x; MyTy *ptr = &x; int m = ptr.m;" value = frame.EvaluateExpression(expr, top_level_options) # A successfully parsed top-level expression will yield an - # unknown error . If a parsing error would have happened we + # unknown error. If a parsing error would have happened we # would get a different error kind, so let's check the error # kind here. self.assertEqual(value.GetError().GetCString(), "unknown error") diff --git a/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py b/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py index 8d0de40cdd7b6..9fe787bcaa9fb 100644 --- a/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py +++ b/lldb/test/API/lang/c/stepping/TestStepAndBreakpoints.py @@ -99,9 +99,7 @@ def test_and_python_api(self): frame = thread.GetFrameAtIndex(0) current_line = frame.GetLineEntry().GetLine() current_file = frame.GetLineEntry().GetFileSpec() - current_bp = [] - current_bp.append(thread.GetStopReasonDataAtIndex(0)) - current_bp.append(thread.GetStopReasonDataAtIndex(1)) + current_bp = thread.stop_reason_data stop_id_before_expression = process.GetStopID() stop_id_before_including_expressions = process.GetStopID(True) @@ -124,9 +122,9 @@ def test_and_python_api(self): lldb.eStopReasonBreakpoint, "We still say we stopped for a breakpoint.", ) - self.assertTrue( - thread.GetStopReasonDataAtIndex(0) == current_bp[0] - and thread.GetStopReasonDataAtIndex(1) == current_bp[1], + self.assertEqual( + thread.stop_reason_data, + current_bp, "And it is the same breakpoint.", ) diff --git a/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py b/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py index 0667759a341b8..779050edb054a 100644 --- a/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py +++ b/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py @@ -2,7 +2,6 @@ Test that memory tagging features work with Linux core files. """ - import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * @@ -216,8 +215,7 @@ def test_mte_tag_fault_reason(self): self.expect( "bt", substrs=[ - "* thread #1, name = 'a.out.mte', stop reason = signal SIGSEGV: " - "sync tag check fault" + "* thread #1, name = 'a.out.mte', stop reason = SIGSEGV: sync tag check fault (fault address: 0xffff82c74010)" ], ) diff --git a/lldb/test/API/linux/aarch64/non_address_bit_memory_access/TestAArch64LinuxNonAddressBitMemoryAccess.py b/lldb/test/API/linux/aarch64/non_address_bit_memory_access/TestAArch64LinuxNonAddressBitMemoryAccess.py index d86070c37f98a..668fca1190366 100644 --- a/lldb/test/API/linux/aarch64/non_address_bit_memory_access/TestAArch64LinuxNonAddressBitMemoryAccess.py +++ b/lldb/test/API/linux/aarch64/non_address_bit_memory_access/TestAArch64LinuxNonAddressBitMemoryAccess.py @@ -6,7 +6,6 @@ API level it won't if we don't remove them there also. """ - import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * @@ -199,7 +198,13 @@ def test_non_address_bit_memory_caching(self): def test_non_address_bit_memory_corefile(self): self.runCmd("target create --core corefile") - self.expect("thread list", substrs=["stopped", "stop reason = signal SIGSEGV"]) + self.expect( + "thread list", + substrs=[ + "stopped", + "stop reason = SIGSEGV: address not mapped to object (fault address: 0x0)", + ], + ) # No caching (the program/corefile are the cache) and no writing # to memory. So just check that tagged/untagged addresses read diff --git a/lldb/test/API/symbol_ondemand/shared_library/TestSharedLibOnDemand.py b/lldb/test/API/symbol_ondemand/shared_library/TestSharedLibOnDemand.py index f1c23a58d1f48..dbb9576ed4d51 100644 --- a/lldb/test/API/symbol_ondemand/shared_library/TestSharedLibOnDemand.py +++ b/lldb/test/API/symbol_ondemand/shared_library/TestSharedLibOnDemand.py @@ -59,7 +59,7 @@ def test_source_line_breakpoint(self): lldbutil.check_breakpoint(self, bpno=1, expected_hit_count=1) thread = process.GetSelectedThread() - stack_frames = lldbutil.get_stack_frames(thread) + stack_frames = thread.frames self.assertGreater(len(stack_frames), 2) leaf_frame = stack_frames[0] @@ -97,7 +97,7 @@ def test_symbolic_breakpoint(self): lldbutil.check_breakpoint(self, bpno=1, expected_hit_count=1) thread = process.GetSelectedThread() - stack_frames = lldbutil.get_stack_frames(thread) + stack_frames = thread.frames self.assertGreater(len(stack_frames), 2) leaf_frame = stack_frames[0] diff --git a/lldb/test/Shell/Register/Core/x86-32-linux-multithread.test b/lldb/test/Shell/Register/Core/x86-32-linux-multithread.test index 62e5bb8ee32fd..eb0cf8708263c 100644 --- a/lldb/test/Shell/Register/Core/x86-32-linux-multithread.test +++ b/lldb/test/Shell/Register/Core/x86-32-linux-multithread.test @@ -1,7 +1,7 @@ # RUN: %lldb -b -s %s -c %p/Inputs/x86-32-linux-multithread.core | FileCheck %s thread list -# CHECK: * thread #1: tid = 330633, 0x080492d2, name = 'a.out', stop reason = signal SIGSEGV +# CHECK: * thread #1: tid = 330633, 0x080492d2, name = 'a.out', stop reason = SIGSEGV: address not mapped to object (fault address: 0x0) # CHECK-NEXT: thread #2: tid = 330634, 0x080492dd, stop reason = signal 0 # CHECK-NEXT: thread #3: tid = 330635, 0x080492dd, stop reason = signal 0 # CHECK-NEXT: thread #4: tid = 330632, 0xf7f59549, stop reason = signal 0 diff --git a/lldb/test/Shell/Register/Core/x86-64-linux-multithread.test b/lldb/test/Shell/Register/Core/x86-64-linux-multithread.test index ab28901cae9f2..a94a4de1c8080 100644 --- a/lldb/test/Shell/Register/Core/x86-64-linux-multithread.test +++ b/lldb/test/Shell/Register/Core/x86-64-linux-multithread.test @@ -1,7 +1,7 @@ # RUN: %lldb -b -s %s -c %p/Inputs/x86-64-linux-multithread.core | FileCheck %s thread list -# CHECK: * thread #1: tid = 329384, 0x0000000000401262, name = 'a.out', stop reason = signal SIGSEGV +# CHECK: * thread #1: tid = 329384, 0x0000000000401262, name = 'a.out', stop reason = SIGSEGV: address not mapped to object (fault address: 0x0) # CHECK-NEXT: thread #2: tid = 329385, 0x000000000040126d, stop reason = signal 0 # CHECK-NEXT: thread #3: tid = 329386, 0x000000000040126d, stop reason = signal 0 # CHECK-NEXT: thread #4: tid = 329383, 0x00007fcf5582f762, stop reason = signal 0 diff --git a/lldb/test/Shell/SymbolFile/DWARF/DW_OP_piece-O3.c b/lldb/test/Shell/SymbolFile/DWARF/DW_OP_piece-O3.c new file mode 100644 index 0000000000000..e8dd870992b8a --- /dev/null +++ b/lldb/test/Shell/SymbolFile/DWARF/DW_OP_piece-O3.c @@ -0,0 +1,27 @@ +// Check that optimized with -O3 values that have a file address can be read +// DWARF info: +// 0x00000023: DW_TAG_variable +// DW_AT_name ("array") +// DW_AT_type (0x00000032 "char[5]") +// DW_AT_location (DW_OP_piece 0x2, DW_OP_addrx 0x0, DW_OP_piece 0x1) + +// UNSUPPORTED: system-windows +// RUN: %clang_host -O3 -gdwarf %s -o %t +// RUN: %lldb %t \ +// RUN: -o "b 26" \ +// RUN: -o "r" \ +// RUN: -o "p/x array[2]" \ +// RUN: -b | FileCheck %s +// +// CHECK: (lldb) p/x array[2] +// CHECK: (char) 0x03 + +static char array[5] = {0, 1, 2, 3, 4}; + +void func() __attribute__((noinline)); +void func() { ++array[2]; }; + +int main(void) { + func(); + return 0; +} diff --git a/lldb/test/Shell/SymbolFile/DWARF/x86/discontinuous-inline-function.s b/lldb/test/Shell/SymbolFile/DWARF/x86/discontinuous-inline-function.s new file mode 100644 index 0000000000000..399f4e4db5b2f --- /dev/null +++ b/lldb/test/Shell/SymbolFile/DWARF/x86/discontinuous-inline-function.s @@ -0,0 +1,167 @@ +## Test that inline function resolution works when the function has been split +## into multiple discontinuous parts (and those parts are placed in different +## sections) + +# RUN: llvm-mc -triple x86_64-pc-linux -filetype=obj %s -o %t +# RUN: %lldb %t -o "image lookup -v -n look_me_up" -o exit | FileCheck %s + +# CHECK: 1 match found in {{.*}} +# CHECK: Summary: {{.*}}`foo + 6 [inlined] foo_inl + 1 +# CHECK-NEXT: {{.*}}`foo + 5 +# CHECK: Blocks: id = {{.*}}, ranges = [0x00000000-0x00000003)[0x00000004-0x00000008) +# CHECK-NEXT: id = {{.*}}, ranges = [0x00000001-0x00000002)[0x00000005-0x00000007), name = "foo_inl" + + .text + + .type foo,@function +foo: + nop +.Lfoo_inl: + nop +.Lfoo_inl_end: + nop +.Lfoo_end: + .size foo, .Lfoo_end-foo + +bar: + nop +.Lbar_end: + .size bar, .Lbar_end-bar + + .section .text.__part1,"ax",@progbits +foo.__part.1: + nop +.Lfoo_inl.__part.1: + nop + .type look_me_up,@function +look_me_up: + nop +.Lfoo_inl.__part.1_end: + nop +.Lfoo.__part.1_end: + .size foo.__part.1, .Lfoo.__part.1_end-foo.__part.1 + + + .section .debug_abbrev,"",@progbits + .byte 1 # Abbreviation Code + .byte 17 # DW_TAG_compile_unit + .byte 1 # DW_CHILDREN_yes + .byte 37 # DW_AT_producer + .byte 8 # DW_FORM_string + .byte 19 # DW_AT_language + .byte 5 # DW_FORM_data2 + .byte 17 # DW_AT_low_pc + .byte 1 # DW_FORM_addr + .byte 85 # DW_AT_ranges + .byte 35 # DW_FORM_rnglistx + .byte 116 # DW_AT_rnglists_base + .byte 23 # DW_FORM_sec_offset + .byte 0 # EOM(1) + .byte 0 # EOM(2) + .byte 2 # Abbreviation Code + .byte 46 # DW_TAG_subprogram + .byte 0 # DW_CHILDREN_no + .byte 3 # DW_AT_name + .byte 8 # DW_FORM_string + .byte 0 # EOM(1) + .byte 0 # EOM(2) + .byte 3 # Abbreviation Code + .byte 46 # DW_TAG_subprogram + .byte 1 # DW_CHILDREN_yes + .byte 85 # DW_AT_ranges + .byte 35 # DW_FORM_rnglistx + .byte 3 # DW_AT_name + .byte 8 # DW_FORM_string + .byte 0 # EOM(1) + .byte 0 # EOM(2) + .byte 4 # Abbreviation Code + .byte 29 # DW_TAG_inlined_subroutine + .byte 0 # DW_CHILDREN_no + .byte 85 # DW_AT_ranges + .byte 35 # DW_FORM_rnglistx + .byte 49 # DW_AT_abstract_origin + .byte 19 # DW_FORM_ref4 + .byte 0 # EOM(1) + .byte 0 # EOM(2) + .byte 0 # EOM(3) + + .section .debug_info,"",@progbits +.Lcu_begin0: + .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit +.Ldebug_info_start0: + .short 5 # DWARF version number + .byte 1 # DWARF Unit Type + .byte 8 # Address Size (in bytes) + .long .debug_abbrev # Offset Into Abbrev. Section + .byte 1 # Abbrev DW_TAG_compile_unit + .asciz "Hand-written DWARF" # DW_AT_producer + .short 29 # DW_AT_language + .quad 0 # DW_AT_low_pc + .byte 1 # DW_AT_ranges + .long .Lrnglists_table_base0 # DW_AT_rnglists_base + + .byte 3 # Abbrev DW_TAG_subprogram + .byte 2 # DW_AT_ranges + .asciz "bar" # DW_AT_name + .byte 0 # End Of Children Mark + +.Lfoo_inl_die: + .byte 2 # Abbrev DW_TAG_subprogram + .asciz "foo_inl" # DW_AT_name + + .byte 3 # Abbrev DW_TAG_subprogram + .byte 0 # DW_AT_ranges + .asciz "foo" # DW_AT_name + .byte 4 # Abbrev DW_TAG_inlined_subroutine + .byte 3 # DW_AT_ranges + .long .Lfoo_inl_die-.Lcu_begin0 # DW_AT_abstract_origin + .byte 0 # End Of Children Mark + + .byte 0 # End Of Children Mark +.Ldebug_info_end0: + + .section .debug_rnglists,"",@progbits + .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length +.Ldebug_list_header_start0: + .short 5 # Version + .byte 8 # Address size + .byte 0 # Segment selector size + .long 4 # Offset entry count +.Lrnglists_table_base0: + .long .Ldebug_ranges0-.Lrnglists_table_base0 + .long .Ldebug_ranges1-.Lrnglists_table_base0 + .long .Ldebug_ranges2-.Lrnglists_table_base0 + .long .Ldebug_ranges3-.Lrnglists_table_base0 +.Ldebug_ranges0: + .byte 6 # DW_RLE_start_end + .quad foo + .quad .Lfoo_end + .byte 6 # DW_RLE_start_end + .quad foo.__part.1 + .quad .Lfoo.__part.1_end + .byte 0 # DW_RLE_end_of_list +.Ldebug_ranges1: + .byte 6 # DW_RLE_start_end + .quad bar + .quad .Lbar_end + .byte 6 # DW_RLE_start_end + .quad foo.__part.1 + .quad .Lfoo.__part.1_end + .byte 6 # DW_RLE_start_end + .quad foo + .quad .Lfoo_end + .byte 0 # DW_RLE_end_of_list +.Ldebug_ranges2: + .byte 6 # DW_RLE_start_end + .quad bar + .quad .Lbar_end + .byte 0 # DW_RLE_end_of_list +.Ldebug_ranges3: + .byte 6 # DW_RLE_start_end + .quad .Lfoo_inl + .quad .Lfoo_inl_end + .byte 6 # DW_RLE_start_end + .quad .Lfoo_inl.__part.1 + .quad .Lfoo_inl.__part.1_end + .byte 0 # DW_RLE_end_of_list +.Ldebug_list_header_end0: diff --git a/lldb/test/Shell/SymbolFile/DWARF/x86/simplified-template-names.cpp b/lldb/test/Shell/SymbolFile/DWARF/x86/simplified-template-names.cpp deleted file mode 100644 index 328d6d2e16d59..0000000000000 --- a/lldb/test/Shell/SymbolFile/DWARF/x86/simplified-template-names.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// Test lldb is able to compute the fully qualified names on templates with -// -gsimple-template-names and -fdebug-types-section. - -// REQUIRES: lld - -// Test against logging to see if we print the fully qualified names correctly. -// RUN: %clangxx --target=x86_64-pc-linux -g -gsimple-template-names %s -c -o %t1.o -// RUN: ld.lld %t1.o -o %t1 -// RUN: %lldb %t1 -o "log enable dwarf comp" -o "target variable v3" -o exit | FileCheck %s --check-prefix=LOG - -// Test that we following DW_AT_signature correctly. If not, lldb might confuse the types of v1 and v2. -// RUN: %clangxx --target=x86_64-pc-linux -g -gsimple-template-names -fdebug-types-section %s -c -o %t2.o -// RUN: ld.lld %t2.o -o %t2 -// RUN: %lldb %t2 -o "target variable v1 v2" -o exit | FileCheck %s --check-prefix=TYPE - -// LOG: unique name: t3 >::t4 - -// TYPE: (t2 >) v1 = {} -// TYPE-NEXT: (t2 >) v2 = {} - -struct outer_struct1 { - template struct t1 {}; -}; - -struct outer_struct2 { - template struct t1 {}; -}; - -template struct t2 {}; -t2> v1; -t2> v2; - -template struct t3 { - struct t4 {}; -}; -t3>::t4 v3; diff --git a/lldb/unittests/SymbolFile/DWARF/DWARFDIETest.cpp b/lldb/unittests/SymbolFile/DWARF/DWARFDIETest.cpp index ae63e286cc155..1e4c8f3ba0778 100644 --- a/lldb/unittests/SymbolFile/DWARF/DWARFDIETest.cpp +++ b/lldb/unittests/SymbolFile/DWARF/DWARFDIETest.cpp @@ -14,7 +14,6 @@ #include "lldb/Symbol/Type.h" #include "lldb/lldb-private-enumerations.h" #include "llvm/ADT/STLExtras.h" -#include "llvm/DebugInfo/DWARF/DWARFTypePrinter.h" #include "gmock/gmock.h" #include "gtest/gtest.h" @@ -395,127 +394,3 @@ TEST(DWARFDIETest, GetContextInFunction) { EXPECT_THAT(foo_struct_die.GetTypeLookupContext(), testing::ElementsAre(make_struct("struct_t"))); } - -TEST(DWARFDIETest, TestDWARFTypePrinter) { - // Make sure we can get template parameters and qualified names correctly with - // DWARFTypePrinter when using -gsimple-template-names. - - // 0x0000000b: DW_TAG_compile_unit - // 0x0000000c: DW_TAG_base_type - // DW_AT_name ("int") - // 0x00000011: DW_TAG_structure_type - // DW_AT_name ("t1") - // 0x00000015: DW_TAG_template_type_parameter - // DW_AT_type (0x0000001f "t3") - // 0x0000001a: DW_TAG_structure_type - // DW_AT_name ("t2") - // 0x0000001e: NULL - // 0x0000001f: DW_TAG_structure_type - // DW_AT_name ("t3") - // 0x00000023: DW_TAG_template_type_parameter - // DW_AT_type (0x0000000c "int") - // 0x00000028: NULL - // 0x00000029: NULL - const char *yamldata = R"( ---- !ELF -FileHeader: - Class: ELFCLASS64 - Data: ELFDATA2LSB - Type: ET_EXEC - Machine: EM_386 -DWARF: - debug_abbrev: - - ID: 0 - Table: - - Code: 0x1 - Tag: DW_TAG_compile_unit - Children: DW_CHILDREN_yes - - Code: 0x2 - Tag: DW_TAG_base_type - Children: DW_CHILDREN_no - Attributes: - - Attribute: DW_AT_name - Form: DW_FORM_string - - Code: 0x3 - Tag: DW_TAG_structure_type - Children: DW_CHILDREN_yes - Attributes: - - Attribute: DW_AT_name - Form: DW_FORM_string - - Code: 0x4 - Tag: DW_TAG_template_type_parameter - Children: DW_CHILDREN_no - Attributes: - - Attribute: DW_AT_type - Form: DW_FORM_ref4 - - Code: 0x5 - Tag: DW_TAG_structure_type - Children: DW_CHILDREN_no - Attributes: - - Attribute: DW_AT_name - Form: DW_FORM_string - - Code: 0x6 - Tag: DW_TAG_structure_type - Children: DW_CHILDREN_yes - Attributes: - - Attribute: DW_AT_name - Form: DW_FORM_string - - Code: 0x7 - Tag: DW_TAG_template_type_parameter - Children: DW_CHILDREN_no - Attributes: - - Attribute: DW_AT_type - Form: DW_FORM_ref4 - debug_info: - - Version: 4 - AddrSize: 8 - Entries: - - AbbrCode: 0x1 - - AbbrCode: 0x2 - Values: - - Value: 0xDEADBEEFDEADBEEF - CStr: int - - AbbrCode: 0x3 - Values: - - Value: 0xDEADBEEFDEADBEEF - CStr: t1 - - AbbrCode: 0x4 - Values: - - Value: 0x0000001f # update - - AbbrCode: 0x5 - Values: - - Value: 0xDEADBEEFDEADBEEF - CStr: t2 - - AbbrCode: 0x0 - - AbbrCode: 0x6 - Values: - - Value: 0xDEADBEEFDEADBEEF - CStr: t3 - - AbbrCode: 0x7 - Values: - - Value: 0x0000000c # update - - AbbrCode: 0x0 - - AbbrCode: 0x0)"; - YAMLModuleTester t(yamldata); - auto *symbol_file = - llvm::cast(t.GetModule()->GetSymbolFile()); - DWARFUnit *unit = symbol_file->DebugInfo().GetUnitAtIndex(0); - std::string debug_str; - StreamString debug_os; - unit->Dump(&debug_os); - ASSERT_TRUE(unit); - - DWARFDIE t1_die = unit->GetDIE(0x11); - std::string template_name; - llvm::raw_string_ostream template_name_os(template_name); - llvm::DWARFTypePrinter template_name_printer(template_name_os); - template_name_printer.appendAndTerminateTemplateParameters(t1_die); - EXPECT_THAT(template_name, " >"); - - DWARFDIE t2_die = unit->GetDIE(0x1a); - std::string qualified_name; - llvm::raw_string_ostream qualified_name_os(qualified_name); - llvm::DWARFTypePrinter qualified_name_printer(qualified_name_os); - qualified_name_printer.appendQualifiedName(t2_die); - EXPECT_THAT(qualified_name, "t1 >::t2"); -} diff --git a/llvm/Maintainers.md b/llvm/Maintainers.md index 695728a0d5817..9744aa1aa43be 100644 --- a/llvm/Maintainers.md +++ b/llvm/Maintainers.md @@ -31,6 +31,11 @@ hfinkel@anl.gov (email), [hfinkel](https://github.com/hfinkel) (GitHub) Johannes Doerfert \ jdoerfert@llnl.gov (email), [jdoerfert](https://github.com/jdoerfert) (GitHub) +#### ConstraintElimination + +Florian Hahn \ +flo@fhahn.com (email), [fhahn](https://github.com/fhahn) (GitHub) + #### InferAddressSpaces Matt Arsenault \ @@ -116,8 +121,8 @@ david.trevelyan@gmail.com (email), [davidtrevelyan](https://github.com/davidtrev #### Parts of code generator not covered by someone else -Evan Cheng \ -evan.cheng@apple.com (email) +Matt Arsenault \ +Matthew.Arsenault@amd.com, arsenm2@gmail.com (email), [arsenm](https://github.com/arsenm) (GitHub) #### SelectionDAG @@ -175,8 +180,16 @@ marksl@synopsys.com (email), [markschimmel](https://github.com/markschimmel) (Gi #### ARM backend -Renato Golin \ -rengolin@systemcall.eu (email), [rengolin](https://github.com/rengolin) (GitHub) +David Green \ +david.green@arm.com (email), [davemgreen](https://github.com/davemgreen) (GitHub) \ +Oliver Stannard (Especially assembly/dissassembly) \ +oliver.stannard@arm.com (email), [ostannard](https://github.com/ostannard) (GitHub) \ +Nashe Mncube \ +nashe.mncube@arm.com (email), [nasherm](https://github.com/nasherm) (GitHub) \ +Peter Smith (Anything ABI) \ +peter.smith@arm.com (email), [smithp35](https://github.com/smithp35) (GitHub) \ +Ties Stuij (GlobalISel and early arch support) \ +ties.stuij@arm.com (email), [stuij](https://github.com/stuij) (GitHub) #### AVR backend @@ -401,11 +414,6 @@ echristo@gmail.com (email), [echristo](https://github.com/echristo) (GitHub) Anton Korobeynikov \ anton@korobeynikov.info (email), [asl](https://github.com/asl) (GitHub) -#### ARM EABI - -Anton Korobeynikov \ -anton@korobeynikov.info (email), [asl](https://github.com/asl) (GitHub) - #### LLVM Buildbot Galina Kistanova \ @@ -464,6 +472,9 @@ sabre@nondot.org (email), [lattner](https://github.com/lattner) (GitHub), clattn ### Inactive or former component maintainers Justin Bogner (mail@justinbogner.com, [bogner](https://github.com/bogner)) -- SelectionDAG \ +Evan Cheng (evan.cheng@apple.com) -- Parts of code generator not covered by someone else \ +Renato Golin (rengolin@systemcall.eu, [rengolin](https://github.com/rengolin)) -- ARM backend \ +Anton Korobeynikov (anton@korobeynikov.info, [asl](https://github.com/asl)) -- ARM EABI \ Hans Wennborg (hans@chromium.org, [zmodem](https://github.com/zmodem)) -- Release management \ ### Former maintainers of removed components diff --git a/llvm/docs/AMDGPUUsage.rst b/llvm/docs/AMDGPUUsage.rst index a25b6feddbedd..411a1209ef947 100644 --- a/llvm/docs/AMDGPUUsage.rst +++ b/llvm/docs/AMDGPUUsage.rst @@ -1397,6 +1397,29 @@ The AMDGPU backend implements the following LLVM IR intrinsics. used by hardware to control active lanes when used in EXEC register. For example, ballot(i1 true) return EXEC mask. + llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4 Emit `v_mfma_scale_f32_16x16x128_f8f6f4` to set the scale factor. The + last 4 operands correspond to the scale inputs. + + - 2-bit byte index to use for each lane for matrix A + - Matrix A scale values + - 2-bit byte index to use for each lane for matrix B + - Matrix B scale values + + llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4 Emit `v_mfma_scale_f32_32x32x64_f8f6f4` + + llvm.amdgcn.permlane16.swap Provide direct access to `v_permlane16_swap_b32` instruction on supported targets. + Swaps the values across lanes of first 2 operands. Odd rows of the first operand are + swapped with even rows of the second operand (one row is 16 lanes). + Returns a pair for the swapped registers. The first element of the return corresponds + to the swapped element of the first argument. + + + llvm.amdgcn.permlane32.swap Provide direct access to `v_permlane32_swap_b32` instruction on supported targets. + Swaps the values across lanes of first 2 operands. Rows 2 and 3 of the first operand are + swapped with rows 0 and 1 of the second operand (one row is 16 lanes). + Returns a pair for the swapped registers. The first element of the return + corresponds to the swapped element of the first argument. + ============================================== ========================================================== .. TODO:: diff --git a/llvm/docs/DirectX/DXILResources.rst b/llvm/docs/DirectX/DXILResources.rst index ad8ede9c59fbf..dcec9611d8aaa 100644 --- a/llvm/docs/DirectX/DXILResources.rst +++ b/llvm/docs/DirectX/DXILResources.rst @@ -162,9 +162,10 @@ the subsequent ``dx.op.annotateHandle`` operation in. Note that we don't have an analogue for `dx.op.createHandle`_, since ``dx.op.createHandleFromBinding`` subsumes it. -For simplicity of lowering, we match DXIL in using an index from the beginning -of the binding space rather than an index from the lower bound of the binding -itself. +We diverge from DXIL and index from the beginning of the binding rather than +indexing from the beginning of the binding space. This matches the semantics +more clearly and avoids a non-obvious invariant in what constitutes valid +arguments. .. _dx.op.createHandle: https://github.com/microsoft/DirectXShaderCompiler/blob/main/docs/DXIL.rst#resource-handles @@ -194,7 +195,7 @@ itself. * - ``%index`` - 4 - ``i32`` - - Index from the beginning of the binding space to access. + - Index from the beginning of the binding. * - ``%non-uniform`` - 5 - i1 @@ -233,6 +234,12 @@ Examples: @llvm.dx.handle.fromBinding.tdx.RawBuffer_i8_0_0t( i32 1, i32 8, i32 1, i32 0, i1 false) + ; RWBuffer Global[3] : register(u6, space5) + ; RWBuffer Buf = Global[2]; + %buf = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0) + @llvm.dx.handle.fromBinding.tdx.TypedBuffer_f32_1_0( + i32 5, i32 6, i32 3, i32 2, i1 false) + .. list-table:: ``@llvm.dx.handle.fromHeap`` :header-rows: 1 diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 9f4c90ba82a41..be5b6e2e215e6 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -21522,9 +21522,9 @@ This is an overloaded intrinsic. :: - declare <16 x i32> @llvm.vp.abs.v16i32 (<16 x i32> , <16 x i1> , i32 , i1 ) - declare @llvm.vp.abs.nxv4i32 ( , , i32 , i1 ) - declare <256 x i64> @llvm.vp.abs.v256i64 (<256 x i64> , <256 x i1> , i32 , i1 ) + declare <16 x i32> @llvm.vp.abs.v16i32 (<16 x i32> , i1 , <16 x i1> , i32 ) + declare @llvm.vp.abs.nxv4i32 ( , i1 , , i32 ) + declare <256 x i64> @llvm.vp.abs.v256i64 (<256 x i64> , i1 , <256 x i1> , i32 ) Overview: """"""""" @@ -21536,12 +21536,12 @@ Arguments: """""""""" The first argument and the result have the same vector of integer type. The -second argument is the vector mask and has the same number of elements as the -result vector type. The third argument is the explicit vector length of the -operation. The fourth argument must be a constant and is a flag to indicate -whether the result value of the '``llvm.vp.abs``' intrinsic is a -:ref:`poison value ` if the first argument is statically or -dynamically an ``INT_MIN`` value. +second argument must be a constant and is a flag to indicate whether the result +value of the '``llvm.vp.abs``' intrinsic is a :ref:`poison value ` +if the first argument is statically or dynamically an ``INT_MIN`` value. The +third argument is the vector mask and has the same number of elements as the +result vector type. The fourth argument is the explicit vector length of the +operation. Semantics: """""""""" @@ -21554,7 +21554,7 @@ Examples: .. code-block:: llvm - %r = call <4 x i32> @llvm.vp.abs.v4i32(<4 x i32> %a, <4 x i1> %mask, i32 %evl, i1 false) + %r = call <4 x i32> @llvm.vp.abs.v4i32(<4 x i32> %a, i1 false, <4 x i1> %mask, i32 %evl) ;; For all lanes below %evl, %r is lane-wise equivalent to %also.r %t = call <4 x i32> @llvm.abs.v4i32(<4 x i32> %a, i1 false) @@ -25260,9 +25260,9 @@ This is an overloaded intrinsic. :: - declare <16 x i32> @llvm.vp.ctlz.v16i32 (<16 x i32> , <16 x i1> , i32 , i1 ) - declare @llvm.vp.ctlz.nxv4i32 ( , , i32 , i1 ) - declare <256 x i64> @llvm.vp.ctlz.v256i64 (<256 x i64> , <256 x i1> , i32 , i1 ) + declare <16 x i32> @llvm.vp.ctlz.v16i32 (<16 x i32> , i1 , <16 x i1> , i32 ) + declare @llvm.vp.ctlz.nxv4i32 ( , i1 , , i32 ) + declare <256 x i64> @llvm.vp.ctlz.v256i64 (<256 x i64> , i1 , <256 x i1> , i32 ) Overview: """"""""" @@ -25274,11 +25274,11 @@ Arguments: """""""""" The first argument and the result have the same vector of integer type. The -second argument is the vector mask and has the same number of elements as the -result vector type. The third argument is the explicit vector length of the -operation. The fourth argument is a constant flag that indicates whether the -intrinsic returns a valid result if the first argument is zero. If the first -argument is zero and the fourth argument is true, the result is poison. +second argument is a constant flag that indicates whether the intrinsic returns +a valid result if the first argument is zero. The third argument is the vector +mask and has the same number of elements as the result vector type. the fourth +argument is the explicit vector length of the operation. If the first argument +is zero and the second argument is true, the result is poison. Semantics: """""""""" @@ -25291,7 +25291,7 @@ Examples: .. code-block:: llvm - %r = call <4 x i32> @llvm.vp.ctlz.v4i32(<4 x i32> %a, <4 x i1> %mask, i32 %evl, i1 false) + %r = call <4 x i32> @llvm.vp.ctlz.v4i32(<4 x i32> %a, i1 false, <4 x i1> %mask, i32 %evl) ;; For all lanes below %evl, %r is lane-wise equivalent to %also.r %t = call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %a, i1 false) @@ -25309,9 +25309,9 @@ This is an overloaded intrinsic. :: - declare <16 x i32> @llvm.vp.cttz.v16i32 (<16 x i32> , <16 x i1> , i32 , i1 ) - declare @llvm.vp.cttz.nxv4i32 ( , , i32 , i1 ) - declare <256 x i64> @llvm.vp.cttz.v256i64 (<256 x i64> , <256 x i1> , i32 , i1 ) + declare <16 x i32> @llvm.vp.cttz.v16i32 (<16 x i32> , i1 , <16 x i1> , i32 ) + declare @llvm.vp.cttz.nxv4i32 ( , i1 , , i32 ) + declare <256 x i64> @llvm.vp.cttz.v256i64 (<256 x i64> , i1 , <256 x i1> , i32 ) Overview: """"""""" @@ -25323,11 +25323,11 @@ Arguments: """""""""" The first argument and the result have the same vector of integer type. The -second argument is the vector mask and has the same number of elements as the -result vector type. The third argument is the explicit vector length of the -operation. The fourth argument is a constant flag that indicates whether the -intrinsic returns a valid result if the first argument is zero. If the first -argument is zero and the fourth argument is true, the result is poison. +second argument is a constant flag that indicates whether the intrinsic +returns a valid result if the first argument is zero. The third argument is +the vector mask and has the same number of elements as the result vector type. +The fourth argument is the explicit vector length of the operation. If the +first argument is zero and the second argument is true, the result is poison. Semantics: """""""""" @@ -25340,7 +25340,7 @@ Examples: .. code-block:: llvm - %r = call <4 x i32> @llvm.vp.cttz.v4i32(<4 x i32> %a, <4 x i1> %mask, i32 %evl, i1 false) + %r = call <4 x i32> @llvm.vp.cttz.v4i32(<4 x i32> %a, i1 false, <4 x i1> %mask, i32 %evl) ;; For all lanes below %evl, %r is lane-wise equivalent to %also.r %t = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 false) diff --git a/llvm/docs/ReleaseNotes.md b/llvm/docs/ReleaseNotes.md index d0b34c5958e02..dd68d5296376f 100644 --- a/llvm/docs/ReleaseNotes.md +++ b/llvm/docs/ReleaseNotes.md @@ -358,6 +358,34 @@ Changes to LLDB * LLDB now parses shared libraries in parallel, resulting in an average 2x speedup when attaching (only available on Darwin platforms) and launching (available on all platforms). +* On the command line, LLDB now limits tab completions to your terminal width to avoid wrapping. + + Old: + ``` + Available completions: + _regexp-attach -- Attach to process by ID or name. + _regexp-break -- Set a breakpoint using one of several shorthand + formats. + _regexp-bt -- Show backtrace of the current thread's call sta + ck. Any numeric argument displays at most that many frames. The argument 'al + l' displays all threads. Use 'settings set frame-format' to customize the pr + inting of individual frames and 'settings set thread-format' to customize th + e thread header. Frame recognizers may filter thelist. Use 'thread backtrace + -u (--unfiltered)' to see them all. + _regexp-display -- Evaluate an expression at every stop (see 'help + target stop-hook'.) + + ``` + + New: + ``` + Available completions: + _regexp-attach -- Attach to process by ID or name. + _regexp-break -- Set a breakpoint using one of several shorth... + _regexp-bt -- Show backtrace of the current thread's call ... + _regexp-display -- Evaluate an expression at every stop (see 'h... + ``` + Changes to BOLT --------------------------------- diff --git a/llvm/include/llvm-c/DebugInfo.h b/llvm/include/llvm-c/DebugInfo.h index f7d81636f4dd4..07f87d44088e7 100644 --- a/llvm/include/llvm-c/DebugInfo.h +++ b/llvm/include/llvm-c/DebugInfo.h @@ -138,6 +138,7 @@ typedef enum { LLVMDWARFSourceLanguageRuby, LLVMDWARFSourceLanguageMove, LLVMDWARFSourceLanguageHylo, + LLVMDWARFSourceLanguageMetal, // Vendor extensions: LLVMDWARFSourceLanguageMips_Assembler, diff --git a/llvm/include/llvm/ADT/SmallVectorExtras.h b/llvm/include/llvm/ADT/SmallVectorExtras.h index eea91ca81ca61..061293fae0830 100644 --- a/llvm/include/llvm/ADT/SmallVectorExtras.h +++ b/llvm/include/llvm/ADT/SmallVectorExtras.h @@ -19,12 +19,28 @@ namespace llvm { +/// Filter a range to a SmallVector with the element types deduced. +template +auto filter_to_vector(ContainerTy &&C, PredicateFn &&Pred) { + return to_vector(make_filter_range(std::forward(C), + std::forward(Pred))); +} + +/// Filter a range to a SmallVector with the element types deduced. +template +auto filter_to_vector(ContainerTy &&C, PredicateFn &&Pred) { + return to_vector(make_filter_range(std::forward(C), + std::forward(Pred))); +} + /// Map a range to a SmallVector with element types deduced from the mapping. template auto map_to_vector(ContainerTy &&C, FuncTy &&F) { return to_vector( map_range(std::forward(C), std::forward(F))); } + +/// Map a range to a SmallVector with element types deduced from the mapping. template auto map_to_vector(ContainerTy &&C, FuncTy &&F) { return to_vector( diff --git a/llvm/include/llvm/ADT/SparseSet.h b/llvm/include/llvm/ADT/SparseSet.h index c7793117ff540..d9ded9875d377 100644 --- a/llvm/include/llvm/ADT/SparseSet.h +++ b/llvm/include/llvm/ADT/SparseSet.h @@ -129,7 +129,12 @@ class SparseSet { using DenseT = SmallVector; using size_type = unsigned; DenseT Dense; - SparseT *Sparse = nullptr; + + struct Deleter { + void operator()(SparseT *S) { free(S); } + }; + std::unique_ptr Sparse; + unsigned Universe = 0; KeyFunctorT KeyIndexOf; SparseSetValFunctor ValIndexOf; @@ -144,7 +149,7 @@ class SparseSet { SparseSet() = default; SparseSet(const SparseSet &) = delete; SparseSet &operator=(const SparseSet &) = delete; - ~SparseSet() { free(Sparse); } + SparseSet(SparseSet &&) = default; /// setUniverse - Set the universe size which determines the largest key the /// set can hold. The universe must be sized before any elements can be @@ -159,11 +164,10 @@ class SparseSet { // Hysteresis prevents needless reallocations. if (U >= Universe/4 && U <= Universe) return; - free(Sparse); // The Sparse array doesn't actually need to be initialized, so malloc // would be enough here, but that will cause tools like valgrind to // complain about branching on uninitialized data. - Sparse = static_cast(safe_calloc(U, sizeof(SparseT))); + Sparse.reset(static_cast(safe_calloc(U, sizeof(SparseT)))); Universe = U; } diff --git a/llvm/include/llvm/Analysis/TargetTransformInfo.h b/llvm/include/llvm/Analysis/TargetTransformInfo.h index e37bce3118bcb..985ca1532e014 100644 --- a/llvm/include/llvm/Analysis/TargetTransformInfo.h +++ b/llvm/include/llvm/Analysis/TargetTransformInfo.h @@ -901,6 +901,12 @@ class TargetTransformInfo { bool isTargetIntrinsicWithScalarOpAtArg(Intrinsic::ID ID, unsigned ScalarOpdIdx) const; + /// Identifies if the vector form of the intrinsic is overloaded on the type + /// of the operand at index \p OpdIdx, or on the return type if \p OpdIdx is + /// -1. + bool isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, + int ScalarOpdIdx) const; + /// Estimate the overhead of scalarizing an instruction. Insert and Extract /// are set if the demanded result elements need to be inserted and/or /// extracted from vectors. @@ -1993,6 +1999,8 @@ class TargetTransformInfo::Concept { virtual bool isTargetIntrinsicTriviallyScalarizable(Intrinsic::ID ID) = 0; virtual bool isTargetIntrinsicWithScalarOpAtArg(Intrinsic::ID ID, unsigned ScalarOpdIdx) = 0; + virtual bool isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, + int ScalarOpdIdx) = 0; virtual InstructionCost getScalarizationOverhead(VectorType *Ty, const APInt &DemandedElts, bool Insert, bool Extract, @@ -2569,6 +2577,11 @@ class TargetTransformInfo::Model final : public TargetTransformInfo::Concept { return Impl.isTargetIntrinsicWithScalarOpAtArg(ID, ScalarOpdIdx); } + bool isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, + int ScalarOpdIdx) override { + return Impl.isVectorIntrinsicWithOverloadTypeAtArg(ID, ScalarOpdIdx); + } + InstructionCost getScalarizationOverhead(VectorType *Ty, const APInt &DemandedElts, bool Insert, bool Extract, diff --git a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h index 72038c090b792..38aba183f6a17 100644 --- a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h +++ b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h @@ -396,6 +396,11 @@ class TargetTransformInfoImplBase { return false; } + bool isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, + int ScalarOpdIdx) const { + return ScalarOpdIdx == -1; + } + InstructionCost getScalarizationOverhead(VectorType *Ty, const APInt &DemandedElts, bool Insert, bool Extract, diff --git a/llvm/include/llvm/Analysis/VectorUtils.h b/llvm/include/llvm/Analysis/VectorUtils.h index 467d5932cacf9..c1016dd7bdddb 100644 --- a/llvm/include/llvm/Analysis/VectorUtils.h +++ b/llvm/include/llvm/Analysis/VectorUtils.h @@ -152,7 +152,10 @@ bool isVectorIntrinsicWithScalarOpAtArg(Intrinsic::ID ID, /// Identifies if the vector form of the intrinsic is overloaded on the type of /// the operand at index \p OpdIdx, or on the return type if \p OpdIdx is -1. -bool isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, int OpdIdx); +/// \p TTI is used to consider target specific intrinsics, if no target specific +/// intrinsics will be considered then it is appropriate to pass in nullptr. +bool isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, int OpdIdx, + const TargetTransformInfo *TTI); /// Identifies if the vector form of the intrinsic that returns a struct is /// overloaded at the struct element index \p RetIdx. diff --git a/llvm/include/llvm/BinaryFormat/Dwarf.def b/llvm/include/llvm/BinaryFormat/Dwarf.def index 4aa6defdc3a41..2bb84fbc864d8 100644 --- a/llvm/include/llvm/BinaryFormat/Dwarf.def +++ b/llvm/include/llvm/BinaryFormat/Dwarf.def @@ -967,6 +967,7 @@ HANDLE_DW_LANG(0x0036, HLSL, 0, 0, DWARF) HANDLE_DW_LANG(0x0037, OpenCL_CPP, 0, 0, DWARF) HANDLE_DW_LANG(0x0038, CPP_for_OpenCL, 0, 0, DWARF) HANDLE_DW_LANG(0x0039, SYCL, 0, 0, DWARF) +HANDLE_DW_LANG(0x003d, Metal, 0, 0, DWARF) HANDLE_DW_LANG(0x0040, Ruby, 0, 0, DWARF) HANDLE_DW_LANG(0x0041, Move, 0, 0, DWARF) HANDLE_DW_LANG(0x0042, Hylo, 0, 0, DWARF) @@ -1032,6 +1033,7 @@ HANDLE_DW_LNAME(0x0025, SYCL, "SYCL", 0) // YYYYRR HANDLE_DW_LNAME(0x0026, Ruby, "Ruby", 0) // VVMMPP HANDLE_DW_LNAME(0x0027, Move, "Move", 0) // YYYYMM HANDLE_DW_LNAME(0x0028, Hylo, "Hylo", 0) +HANDLE_DW_LNAME(0x002c, Metal, "Metal", 0) // VVMMPP // DWARF attribute type encodings. HANDLE_DW_ATE(0x01, address, 2, DWARF) diff --git a/llvm/include/llvm/BinaryFormat/Dwarf.h b/llvm/include/llvm/BinaryFormat/Dwarf.h index 4657ad30eb1be..3be819c0a76ee 100644 --- a/llvm/include/llvm/BinaryFormat/Dwarf.h +++ b/llvm/include/llvm/BinaryFormat/Dwarf.h @@ -353,6 +353,8 @@ inline std::optional toDW_LANG(SourceLanguageName name, return DW_LANG_Move; case DW_LNAME_Hylo: return DW_LANG_Hylo; + case DW_LNAME_Metal: + return DW_LANG_Metal; } return {}; } @@ -479,6 +481,8 @@ toDW_LNAME(SourceLanguage language) { return {{DW_LNAME_Move, 0}}; case DW_LANG_Hylo: return {{DW_LNAME_Hylo, 0}}; + case DW_LANG_Metal: + return {{DW_LNAME_Metal, 0}}; case DW_LANG_BORLAND_Delphi: case DW_LANG_CPP_for_OpenCL: case DW_LANG_lo_user: @@ -562,6 +566,7 @@ inline bool isCPlusPlus(SourceLanguage S) { case DW_LANG_Ruby: case DW_LANG_Move: case DW_LANG_Hylo: + case DW_LANG_Metal: result = false; break; } @@ -641,6 +646,7 @@ inline bool isFortran(SourceLanguage S) { case DW_LANG_Ruby: case DW_LANG_Move: case DW_LANG_Hylo: + case DW_LANG_Metal: result = false; break; } @@ -718,6 +724,7 @@ inline bool isC(SourceLanguage S) { case DW_LANG_Ruby: case DW_LANG_Move: case DW_LANG_Hylo: + case DW_LANG_Metal: return false; } llvm_unreachable("Unknown language kind."); diff --git a/llvm/include/llvm/BinaryFormat/ELFRelocs/x86_64.def b/llvm/include/llvm/BinaryFormat/ELFRelocs/x86_64.def index 43473d47e3281..a93d92870cf32 100644 --- a/llvm/include/llvm/BinaryFormat/ELFRelocs/x86_64.def +++ b/llvm/include/llvm/BinaryFormat/ELFRelocs/x86_64.def @@ -44,3 +44,6 @@ ELF_RELOC(R_X86_64_IRELATIVE, 37) ELF_RELOC(R_X86_64_GOTPCRELX, 41) ELF_RELOC(R_X86_64_REX_GOTPCRELX, 42) ELF_RELOC(R_X86_64_CODE_4_GOTPCRELX, 43) +ELF_RELOC(R_X86_64_CODE_4_GOTTPOFF, 44) +ELF_RELOC(R_X86_64_CODE_4_GOTPC32_TLSDESC, 45) +ELF_RELOC(R_X86_64_CODE_6_GOTTPOFF, 50) diff --git a/llvm/include/llvm/Bitcode/LLVMBitCodes.h b/llvm/include/llvm/Bitcode/LLVMBitCodes.h index a0fb32f67e385..41909a8fc1d59 100644 --- a/llvm/include/llvm/Bitcode/LLVMBitCodes.h +++ b/llvm/include/llvm/Bitcode/LLVMBitCodes.h @@ -307,12 +307,12 @@ enum GlobalValueSummarySymtabCodes { // [valueid, n x stackidindex] FS_PERMODULE_CALLSITE_INFO = 26, // Summary of per-module allocation memprof metadata. - // [nummib, nummib x (alloc type, numstackids, numstackids x stackidindex), + // [nummib, nummib x (alloc type, context radix tree index), // [nummib x (numcontext x total size)]?] FS_PERMODULE_ALLOC_INFO = 27, // Summary of combined index memprof callsite metadata. - // [valueid, numstackindices, numver, - // numstackindices x stackidindex, numver x version] + // [valueid, context radix tree index, numver, + // numver x version] FS_COMBINED_CALLSITE_INFO = 28, // Summary of combined index allocation memprof metadata. // [nummib, numver, @@ -331,6 +331,10 @@ enum GlobalValueSummarySymtabCodes { // the entries must be in the exact same order as the corresponding sizes. // [nummib x (numcontext x full stack id)] FS_ALLOC_CONTEXT_IDS = 31, + // Linearized radix tree of allocation contexts. See the description above the + // CallStackRadixTreeBuilder class in ProfileData/MemProf.h for format. + // [n x entry] + FS_CONTEXT_RADIX_TREE_ARRAY = 32, }; enum MetadataCodes { diff --git a/llvm/include/llvm/CodeGen/BasicTTIImpl.h b/llvm/include/llvm/CodeGen/BasicTTIImpl.h index 3b098c42f2741..98cbb4886642b 100644 --- a/llvm/include/llvm/CodeGen/BasicTTIImpl.h +++ b/llvm/include/llvm/CodeGen/BasicTTIImpl.h @@ -277,6 +277,20 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase { E, AddressSpace, Alignment, MachineMemOperand::MONone, Fast); } + bool areInlineCompatible(const Function *Caller, + const Function *Callee) const { + const TargetMachine &TM = getTLI()->getTargetMachine(); + + const FeatureBitset &CallerBits = + TM.getSubtargetImpl(*Caller)->getFeatureBits(); + const FeatureBitset &CalleeBits = + TM.getSubtargetImpl(*Callee)->getFeatureBits(); + + // Inline a callee if its target-features are a subset of the callers + // target-features. + return (CallerBits & CalleeBits) == CalleeBits; + } + bool hasBranchDivergence(const Function *F = nullptr) { return false; } bool isSourceOfDivergence(const Value *V) { return false; } @@ -801,6 +815,11 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase { return false; } + bool isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, + int ScalarOpdIdx) const { + return ScalarOpdIdx == -1; + } + /// Helper wrapper for the DemandedElts variant of getScalarizationOverhead. InstructionCost getScalarizationOverhead(VectorType *InTy, bool Insert, bool Extract, @@ -1613,6 +1632,21 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase { return thisT()->getArithmeticInstrCost(*FOp, ICA.getReturnType(), CostKind); } + if (VPCastIntrinsic::isVPCast(ICA.getID())) { + return thisT()->getCastInstrCost( + *FOp, ICA.getReturnType(), ICA.getArgTypes()[0], + TTI::CastContextHint::None, CostKind); + } + if (VPCmpIntrinsic::isVPCmp(ICA.getID())) { + // We can only handle vp_cmp intrinsics with underlying instructions. + if (ICA.getInst()) { + assert(FOp); + auto *UI = cast(ICA.getInst()); + return thisT()->getCmpSelInstrCost(*FOp, ICA.getArgTypes()[0], + ICA.getReturnType(), + UI->getPredicate(), CostKind); + } + } } std::optional FID = @@ -2760,6 +2794,18 @@ class BasicTTIImplBase : public TargetTransformInfoImplCRTPBase { Type *ResTy, VectorType *Ty, FastMathFlags FMF, TTI::TargetCostKind CostKind) { + if (auto *FTy = dyn_cast(Ty); + FTy && IsUnsigned && Opcode == Instruction::Add && + FTy->getElementType() == IntegerType::getInt1Ty(Ty->getContext())) { + // Represent vector_reduce_add(ZExt()) as + // ZExtOrTrunc(ctpop(bitcast to in)). + auto *IntTy = + IntegerType::get(ResTy->getContext(), FTy->getNumElements()); + IntrinsicCostAttributes ICA(Intrinsic::ctpop, IntTy, {IntTy}, FMF); + return thisT()->getCastInstrCost(Instruction::BitCast, IntTy, FTy, + TTI::CastContextHint::None, CostKind) + + thisT()->getIntrinsicInstrCost(ICA, CostKind); + } // Without any native support, this is equivalent to the cost of // vecreduce.opcode(ext(Ty A)). VectorType *ExtTy = VectorType::get(ResTy, Ty); diff --git a/llvm/include/llvm/CodeGen/EdgeBundles.h b/llvm/include/llvm/CodeGen/EdgeBundles.h index b844bd307c197..6e0c301a651e3 100644 --- a/llvm/include/llvm/CodeGen/EdgeBundles.h +++ b/llvm/include/llvm/CodeGen/EdgeBundles.h @@ -18,10 +18,16 @@ #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/IntEqClasses.h" #include "llvm/CodeGen/MachineFunctionPass.h" +#include "llvm/IR/PassManager.h" namespace llvm { +class EdgeBundlesWrapperLegacy; +class EdgeBundlesAnalysis; + +class EdgeBundles { + friend class EdgeBundlesWrapperLegacy; + friend class EdgeBundlesAnalysis; -class EdgeBundles : public MachineFunctionPass { const MachineFunction *MF = nullptr; /// EC - Each edge bundle is an equivalence class. The keys are: @@ -32,10 +38,10 @@ class EdgeBundles : public MachineFunctionPass { /// Blocks - Map each bundle to a list of basic block numbers. SmallVector, 4> Blocks; -public: - static char ID; - EdgeBundles() : MachineFunctionPass(ID) {} + void init(); + EdgeBundles(MachineFunction &MF); +public: /// getBundle - Return the ingoing (Out = false) or outgoing (Out = true) /// bundle number for basic block #N unsigned getBundle(unsigned N, bool Out) const { return EC[2 * N + Out]; } @@ -52,11 +58,34 @@ class EdgeBundles : public MachineFunctionPass { /// view - Visualize the annotated bipartite CFG with Graphviz. void view() const; + // Handle invalidation for the new pass manager + bool invalidate(MachineFunction &MF, const PreservedAnalyses &PA, + MachineFunctionAnalysisManager::Invalidator &Inv); +}; + +class EdgeBundlesWrapperLegacy : public MachineFunctionPass { +public: + static char ID; + EdgeBundlesWrapperLegacy() : MachineFunctionPass(ID) {} + + EdgeBundles &getEdgeBundles() { return *Impl; } + const EdgeBundles &getEdgeBundles() const { return *Impl; } + private: - bool runOnMachineFunction(MachineFunction&) override; + std::unique_ptr Impl; + bool runOnMachineFunction(MachineFunction &MF) override; void getAnalysisUsage(AnalysisUsage&) const override; }; +class EdgeBundlesAnalysis : public AnalysisInfoMixin { + friend AnalysisInfoMixin; + static AnalysisKey Key; + +public: + using Result = EdgeBundles; + EdgeBundles run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM); +}; + } // end namespace llvm #endif diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h index f682b20816d57..2384b22c05266 100644 --- a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h +++ b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h @@ -378,6 +378,8 @@ class LegalizerHelper { LLT CastTy); LegalizeResult bitcastConcatVector(MachineInstr &MI, unsigned TypeIdx, LLT CastTy); + LegalizeResult bitcastShuffleVector(MachineInstr &MI, unsigned TypeIdx, + LLT CastTy); LegalizeResult bitcastExtractSubvector(MachineInstr &MI, unsigned TypeIdx, LLT CastTy); LegalizeResult bitcastInsertSubvector(MachineInstr &MI, unsigned TypeIdx, diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h index 8b1c11a6f4130..b681a0708db4b 100644 --- a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h +++ b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h @@ -292,6 +292,9 @@ LegalityPredicate isPointer(unsigned TypeIdx); /// True iff the specified type index is a pointer with the specified address /// space. LegalityPredicate isPointer(unsigned TypeIdx, unsigned AddrSpace); +/// True iff the specified type index is a vector of pointers (with any address +/// space). +LegalityPredicate isPointerVector(unsigned TypeIdx); /// True if the type index is a vector with element type \p EltTy LegalityPredicate elementTypeIs(unsigned TypeIdx, LLT EltTy); diff --git a/llvm/include/llvm/CodeGen/MachineFunction.h b/llvm/include/llvm/CodeGen/MachineFunction.h index bb75d5aa8cfa6..547cc26eda229 100644 --- a/llvm/include/llvm/CodeGen/MachineFunction.h +++ b/llvm/include/llvm/CodeGen/MachineFunction.h @@ -1010,7 +1010,7 @@ class LLVM_ABI MachineFunction { /// into \p MBB before \p InsertBefore. /// /// Note: Does not perform target specific adjustments; consider using - /// TargetInstrInfo::duplicate() intead. + /// TargetInstrInfo::duplicate() instead. MachineInstr & cloneMachineInstrBundle(MachineBasicBlock &MBB, MachineBasicBlock::iterator InsertBefore, diff --git a/llvm/include/llvm/CodeGen/Passes.h b/llvm/include/llvm/CodeGen/Passes.h index 7698f557c58a0..d1fac4a304cff 100644 --- a/llvm/include/llvm/CodeGen/Passes.h +++ b/llvm/include/llvm/CodeGen/Passes.h @@ -118,7 +118,7 @@ namespace llvm { extern char &MachineRegionInfoPassID; /// EdgeBundles analysis - Bundle machine CFG edges. - extern char &EdgeBundlesID; + extern char &EdgeBundlesWrapperLegacyID; /// LiveVariables pass - This pass computes the set of blocks in which each /// variable is life and sets machine operand kill flags. diff --git a/llvm/include/llvm/CodeGen/TargetInstrInfo.h b/llvm/include/llvm/CodeGen/TargetInstrInfo.h index 07b59b241d9f9..408adcd330b84 100644 --- a/llvm/include/llvm/CodeGen/TargetInstrInfo.h +++ b/llvm/include/llvm/CodeGen/TargetInstrInfo.h @@ -159,6 +159,12 @@ class TargetInstrInfo : public MCInstrInfo { return true; } + /// For a "cheap" instruction which doesn't enable additional sinking, + /// should MachineSink break a critical edge to sink it anyways? + virtual bool shouldBreakCriticalEdgeToSink(MachineInstr &MI) const { + return false; + } + protected: /// For instructions with opcodes for which the M_REMATERIALIZABLE flag is /// set, this hook lets the target specify whether the instruction is actually diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h index 2e98a4a397147..69c91835a4d9a 100644 --- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h +++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h @@ -226,8 +226,6 @@ class DWARFDie { bool addressRangeContainsAddress(const uint64_t Address) const; - std::optional getLanguage() const; - Expected getLocations(dwarf::Attribute Attr) const; diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h index 962462b827825..97ff7e8407024 100644 --- a/llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h +++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h @@ -11,7 +11,6 @@ #include "llvm/ADT/StringRef.h" #include "llvm/BinaryFormat/Dwarf.h" -#include "llvm/Support/Error.h" #include @@ -70,6 +69,7 @@ template struct DWARFTypePrinter { case dwarf::DW_TAG_union_type: case dwarf::DW_TAG_namespace: case dwarf::DW_TAG_enumeration_type: + case dwarf::DW_TAG_typedef: return true; default: break; @@ -108,11 +108,13 @@ void DWARFTypePrinter::appendArrayType(const DieType &D) { if (std::optional UpperV = C.find(dwarf::DW_AT_upper_bound)) UB = UpperV->getAsUnsignedConstant(); - if (std::optional LV = D.getLanguage()) - if ((DefaultLB = - LanguageLowerBound(static_cast(*LV)))) - if (LB && *LB == *DefaultLB) - LB = std::nullopt; + if (std::optional LV = + D.getDwarfUnit()->getUnitDIE().find(dwarf::DW_AT_language)) + if (std::optional LC = LV->getAsUnsignedConstant()) + if ((DefaultLB = + LanguageLowerBound(static_cast(*LC)))) + if (LB && *LB == *DefaultLB) + LB = std::nullopt; if (!LB && !Count && !UB) OS << "[]"; else if (!LB && (Count || UB) && DefaultLB) @@ -149,16 +151,6 @@ template DieType resolveReferencedType(DieType D, typename DieType::DWARFFormValue F) { return D.resolveReferencedType(F); } -template -const char *toString(std::optional F) { - if (F) { - llvm::Expected E = F->getAsCString(); - if (E) - return *E; - llvm::consumeError(E.takeError()); - } - return nullptr; -} } // namespace detail template @@ -248,7 +240,7 @@ DieType DWARFTypePrinter::appendUnqualifiedNameBefore( appendConstVolatileQualifierBefore(D); break; case dwarf::DW_TAG_namespace: { - if (const char *Name = detail::toString(D.find(dwarf::DW_AT_name))) + if (const char *Name = dwarf::toString(D.find(dwarf::DW_AT_name), nullptr)) OS << Name; else OS << "(anonymous namespace)"; @@ -270,7 +262,7 @@ DieType DWARFTypePrinter::appendUnqualifiedNameBefore( case DW_TAG_base_type: */ default: { - const char *NamePtr = detail::toString(D.find(dwarf::DW_AT_name)); + const char *NamePtr = dwarf::toString(D.find(dwarf::DW_AT_name), nullptr); if (!NamePtr) { appendTypeTagName(D.getTag()); return DieType(); @@ -449,7 +441,7 @@ bool DWARFTypePrinter::appendTemplateParameters(DieType D, if (T.getTag() == dwarf::DW_TAG_pointer_type || T.getTag() == dwarf::DW_TAG_reference_type) continue; - const char *RawName = detail::toString(T.find(dwarf::DW_AT_name)); + const char *RawName = dwarf::toString(T.find(dwarf::DW_AT_name), nullptr); assert(RawName); StringRef Name = RawName; auto V = C.find(dwarf::DW_AT_const_value); @@ -542,7 +534,7 @@ bool DWARFTypePrinter::appendTemplateParameters(DieType D, } if (C.getTag() == dwarf::DW_TAG_GNU_template_template_param) { const char *RawName = - detail::toString(C.find(dwarf::DW_AT_GNU_template_name)); + dwarf::toString(C.find(dwarf::DW_AT_GNU_template_name), nullptr); assert(RawName); StringRef Name = RawName; Sep(); @@ -602,7 +594,7 @@ void DWARFTypePrinter::appendConstVolatileQualifierAfter(DieType N) { decomposeConstVolatile(N, T, C, V); if (T && T.getTag() == dwarf::DW_TAG_subroutine_type) appendSubroutineNameAfter(T, detail::resolveReferencedType(T), false, - static_cast(C), static_cast(V)); + C.isValid(), V.isValid()); else appendUnqualifiedNameAfter(T, detail::resolveReferencedType(T)); } diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h b/llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h index e8c3e3414dce0..db440c378d24f 100644 --- a/llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h +++ b/llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h @@ -31,6 +31,36 @@ enum EdgeKind_aarch64 : Edge::Kind { /// Pointer64 = Edge::FirstRelocation, + /// An arm64e authenticated pointer relocation. The addend contains a 64-bit + /// struct containing the authentication parameters: + /// + /// Addend encoding: + /// int32_t addend; + /// uint16_t diversityData; + /// uint16_t hasAddressDiversity : 1; + /// uint16_t key : 2; + /// uint16_t zeroes : 12; + /// uint16_t authenticated : 1; + /// + /// Note: This means that the addend cannot be interpreted as a plain offset + /// prior to lowering. + /// + /// Authenticated pointer edges cannot be fixed up directly by JITLink as the + /// signing keys are held in the executing process. They can be removed from + /// the graph by a combination of the createEmptyPointerSigningFunction pass + /// (post-prune) and the lowerPointer64AuthEdgesToSigningFunction pass + /// (pre-fixup). Together these passes construct a signing function that will + /// be run in the executing process to write the signed pointers to the fixup + /// locations. + /// + /// Fixup expression: + /// NONE + /// + /// Errors: + /// - Failure to handle edges of this kind prior to the fixup phase will + /// result in an unsupported error during the fixup phase. + Pointer64Authenticated, + /// A plain 32-bit pointer value relocation. /// /// Fixup expression: @@ -832,6 +862,29 @@ class PLTTableManager : public TableManager { Section *StubsSection = nullptr; }; +/// Returns the name of the pointer signing function section. +const char *getPointerSigningFunctionSectionName(); + +/// Creates a pointer signing function section, block, and symbol to reserve +/// space for a signing function for this LinkGraph. Clients should insert this +/// pass in the post-prune phase, and add the paired +/// lowerPointer64AuthEdgesToSigningFunction pass to the pre-fixup phase. +/// +/// No new Pointer64Auth edges can be inserted into the graph between when this +/// pass is run and when the pass below runs (since there will not be sufficient +/// space reserved in the signing function to write the signing code for them). +Error createEmptyPointerSigningFunction(LinkGraph &G); + +/// Given a LinkGraph containing Pointer64Authenticated edges, transform those +/// edges to Pointer64 and add signing code to the pointer signing function +/// (which must already have been created by the +/// createEmptyPointerSigningFunction pass above). +/// +/// This function will add a $__ptrauth_sign section with finalization-lifetime +/// containing an anonymous function that will sign all pointers in the graph. +/// An allocation action will be added to run this function during finalization. +Error lowerPointer64AuthEdgesToSigningFunction(LinkGraph &G); + } // namespace aarch64 } // namespace jitlink } // namespace llvm diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h b/llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h index 26351ed9971cc..39a7db32258ce 100644 --- a/llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h +++ b/llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h @@ -158,6 +158,29 @@ enum EdgeKind_loongarch : Edge::Kind { /// NONE /// RequestGOTAndTransformToPageOffset12, + + /// A 36-bit PC-relative call. + /// + /// Represents a PC-relative call to a target within [-128G - 0x20000, +128G + /// - 0x20000). The target must be 4-byte aligned. For adjacent pcaddu18i+jirl + /// instruction pairs. + /// + /// Fixup expression: + /// Fixup <- (Target - Fixup + Addend) >> 2 : int36 + /// + /// Notes: + /// The '36' in the name refers to the number operand bits and follows the + /// naming convention used by the corresponding ELF relocations. Since the low + /// two bits must be zero (because of the 4-byte alignment of the target) the + /// operand is effectively a signed 38-bit number. + /// + /// Errors: + /// - The result of the unshifted part of the fixup expression must be + /// 4-byte aligned otherwise an alignment error will be returned. + /// - The result of the fixup expression must fit into an int36 otherwise an + /// out-of-range error will be returned. + /// + Call36PCRel, }; /// Returns a string name for the given loongarch edge. For debugging purposes @@ -165,8 +188,8 @@ enum EdgeKind_loongarch : Edge::Kind { const char *getEdgeKindName(Edge::Kind K); // Returns extract bits Val[Hi:Lo]. -inline uint32_t extractBits(uint32_t Val, unsigned Hi, unsigned Lo) { - return (Val & (((1UL << (Hi + 1)) - 1))) >> Lo; +inline uint32_t extractBits(uint64_t Val, unsigned Hi, unsigned Lo) { + return Hi == 63 ? Val >> Lo : (Val & (((1UL << (Hi + 1)) - 1))) >> Lo; } /// Apply fixup expression for edge to block content. @@ -247,6 +270,23 @@ inline Error applyFixup(LinkGraph &G, Block &B, const Edge &E) { *(ulittle32_t *)FixupPtr = RawInstr | Imm11_0; break; } + case Call36PCRel: { + int64_t Value = TargetAddress - FixupAddress + Addend; + + if ((Value + 0x20000) != llvm::SignExtend64(Value + 0x20000, 38)) + return makeTargetOutOfRangeError(G, B, E); + + if (!isShiftedInt<36, 2>(Value)) + return makeAlignmentError(orc::ExecutorAddr(FixupAddress), Value, 4, E); + + uint32_t Pcaddu18i = *(little32_t *)FixupPtr; + uint32_t Hi20 = extractBits(Value + (1 << 17), /*Hi=*/37, /*Lo=*/18) << 5; + *(little32_t *)FixupPtr = Pcaddu18i | Hi20; + uint32_t Jirl = *(little32_t *)(FixupPtr + 4); + uint32_t Lo16 = extractBits(Value, /*Hi=*/17, /*Lo=*/2) << 10; + *(little32_t *)(FixupPtr + 4) = Jirl | Lo16; + break; + } default: return make_error( "In graph " + G.getName() + ", section " + B.getSection().getName() + @@ -363,7 +403,8 @@ class PLTTableManager : public TableManager { static StringRef getSectionName() { return "$__STUBS"; } bool visitEdge(LinkGraph &G, Block *B, Edge &E) { - if (E.getKind() == Branch26PCRel && !E.getTarget().isDefined()) { + if ((E.getKind() == Branch26PCRel || E.getKind() == Call36PCRel) && + !E.getTarget().isDefined()) { DEBUG_WITH_TYPE("jitlink", { dbgs() << " Fixing " << G.getEdgeKindName(E.getKind()) << " edge at " << B->getFixupAddress(E) << " (" << B->getAddress() << " + " diff --git a/llvm/include/llvm/Frontend/OpenMP/OMP.td b/llvm/include/llvm/Frontend/OpenMP/OMP.td index 75e73bedd9348..bd7fb2361aaeb 100644 --- a/llvm/include/llvm/Frontend/OpenMP/OMP.td +++ b/llvm/include/llvm/Frontend/OpenMP/OMP.td @@ -769,6 +769,7 @@ def OMP_Flush : Directive<"flush"> { // OMPKinds.def. VersionedClause, VersionedClause, + VersionedClause, ]; let association = AS_None; let category = CA_Executable; diff --git a/llvm/include/llvm/IR/DerivedTypes.h b/llvm/include/llvm/IR/DerivedTypes.h index 65f9810776024..b44f4f8c8687d 100644 --- a/llvm/include/llvm/IR/DerivedTypes.h +++ b/llvm/include/llvm/IR/DerivedTypes.h @@ -228,6 +228,8 @@ class StructType : public Type { SCDB_NotContainsScalableVector = 32, SCDB_ContainsNonGlobalTargetExtType = 64, SCDB_NotContainsNonGlobalTargetExtType = 128, + SCDB_ContainsNonLocalTargetExtType = 64, + SCDB_NotContainsNonLocalTargetExtType = 128, }; /// For a named struct that actually has a name, this is a pointer to the @@ -302,6 +304,12 @@ class StructType : public Type { containsNonGlobalTargetExtType(SmallPtrSetImpl &Visited) const; using Type::containsNonGlobalTargetExtType; + /// Return true if this type is or contains a target extension type that + /// disallows being used as a local. + bool + containsNonLocalTargetExtType(SmallPtrSetImpl &Visited) const; + using Type::containsNonLocalTargetExtType; + /// Returns true if this struct contains homogeneous scalable vector types. /// Note that the definition of homogeneous scalable vector type is not /// recursive here. That means the following structure will return false @@ -798,6 +806,9 @@ class TargetExtType : public Type { HasZeroInit = 1U << 0, /// This type may be used as the value type of a global variable. CanBeGlobal = 1U << 1, + /// This type may be allocated on the stack, either as the allocated type + /// of an alloca instruction or as a byval function parameter. + CanBeLocal = 1U << 2, }; /// Returns true if the target extension type contains the given property. diff --git a/llvm/include/llvm/IR/Instruction.h b/llvm/include/llvm/IR/Instruction.h index 61dba265dc948..730baa8cc0052 100644 --- a/llvm/include/llvm/IR/Instruction.h +++ b/llvm/include/llvm/IR/Instruction.h @@ -278,6 +278,7 @@ class Instruction : public User, bool isUnaryOp() const { return isUnaryOp(getOpcode()); } bool isBinaryOp() const { return isBinaryOp(getOpcode()); } bool isIntDivRem() const { return isIntDivRem(getOpcode()); } + bool isFPDivRem() const { return isFPDivRem(getOpcode()); } bool isShift() const { return isShift(getOpcode()); } bool isCast() const { return isCast(getOpcode()); } bool isFuncletPad() const { return isFuncletPad(getOpcode()); } @@ -304,6 +305,10 @@ class Instruction : public User, return Opcode == UDiv || Opcode == SDiv || Opcode == URem || Opcode == SRem; } + static inline bool isFPDivRem(unsigned Opcode) { + return Opcode == FDiv || Opcode == FRem; + } + /// Determine if the Opcode is one of the shift instructions. static inline bool isShift(unsigned Opcode) { return Opcode >= Shl && Opcode <= AShr; diff --git a/llvm/include/llvm/IR/IntrinsicsAMDGPU.td b/llvm/include/llvm/IR/IntrinsicsAMDGPU.td index 360af786c5160..79ad9dbb67430 100644 --- a/llvm/include/llvm/IR/IntrinsicsAMDGPU.td +++ b/llvm/include/llvm/IR/IntrinsicsAMDGPU.td @@ -594,6 +594,21 @@ def int_amdgcn_ds_ordered_swap : AMDGPUDSOrderedIntrinsic; def int_amdgcn_ds_append : AMDGPUDSAppendConsumedIntrinsic; def int_amdgcn_ds_consume : AMDGPUDSAppendConsumedIntrinsic; +class AMDGPUCvtScaleF32Intrinsic : DefaultAttrsIntrinsic< + [DstTy], [Src0Ty, llvm_float_ty], [IntrNoMem, IntrSpeculatable] +>, ClangBuiltin<"__builtin_amdgcn_"#name>; + +class AMDGPUCvtScaleF32ToFP6BF6Intrinsic : DefaultAttrsIntrinsic< + [DstTy], [Src0Ty, Src1Ty, llvm_float_ty], [IntrNoMem, IntrSpeculatable] +>, ClangBuiltin<"__builtin_amdgcn_"#name>; + +def int_amdgcn_cvt_scalef32_pk32_fp6_f16 : AMDGPUCvtScaleF32Intrinsic; +def int_amdgcn_cvt_scalef32_pk32_bf6_f16 : AMDGPUCvtScaleF32Intrinsic; +def int_amdgcn_cvt_scalef32_pk32_fp6_bf16 : AMDGPUCvtScaleF32Intrinsic; +def int_amdgcn_cvt_scalef32_pk32_bf6_bf16 : AMDGPUCvtScaleF32Intrinsic; +def int_amdgcn_cvt_scalef32_2xpk16_fp6_f32 : AMDGPUCvtScaleF32ToFP6BF6Intrinsic; +def int_amdgcn_cvt_scalef32_2xpk16_bf6_f32 : AMDGPUCvtScaleF32ToFP6BF6Intrinsic; + def int_amdgcn_prng_b32 : DefaultAttrsIntrinsic< [llvm_i32_ty], [llvm_i32_ty], [IntrNoMem] >, ClangBuiltin<"__builtin_amdgcn_prng_b32">; @@ -1437,7 +1452,7 @@ def int_amdgcn_raw_ptr_buffer_atomic_cmpswap : Intrinsic< // gfx908 intrinsic def int_amdgcn_raw_buffer_atomic_fadd : AMDGPURawBufferAtomic; -// Supports float and <2 x half> on gfx908. Supports v2bf16 on gfx90a, gfx940, gfx12+. +// Supports float and <2 x half> on gfx908. Supports v2bf16 on gfx90a, gfx940, gfx950, gfx12+. def int_amdgcn_raw_ptr_buffer_atomic_fadd : AMDGPURawPtrBufferAtomic; class AMDGPUStructBufferAtomic : Intrinsic < @@ -1512,7 +1527,7 @@ def int_amdgcn_struct_ptr_buffer_atomic_cmpswap : Intrinsic< ImmArg>, IntrWillReturn, IntrNoCallback, IntrNoFree], "", [SDNPMemOperand]>, AMDGPURsrcIntrinsic<2, 0>; -// gfx908 intrinsic +// gfx908 intrinsic. Supports v2bf16 on gfx12+ and gfx950 def int_amdgcn_struct_buffer_atomic_fadd : AMDGPUStructBufferAtomic; def int_amdgcn_struct_ptr_buffer_atomic_fadd : AMDGPUStructPtrBufferAtomic; @@ -2726,6 +2741,10 @@ class AMDGPULoadIntrinsic: def int_amdgcn_global_load_tr_b64 : AMDGPULoadIntrinsic; def int_amdgcn_global_load_tr_b128 : AMDGPULoadIntrinsic; +def int_amdgcn_ds_read_tr4_b64 : AMDGPULoadIntrinsic; +def int_amdgcn_ds_read_tr6_b96 : AMDGPULoadIntrinsic; +def int_amdgcn_ds_read_tr8_b64 : AMDGPULoadIntrinsic; +def int_amdgcn_ds_read_tr16_b64 : AMDGPULoadIntrinsic; // i32 @llvm.amdgcn.wave.id() def int_amdgcn_wave_id : @@ -2801,6 +2820,24 @@ def int_amdgcn_fdot2_f32_bf16 : [IntrNoMem, IntrSpeculatable, ImmArg>] >; +// f32 %r = llvm.amdgcn.fdot2c.f32.bf16(v2bf16 %a, v2bf16 %b, f32 %c, i1 %clamp) +// %r = %a[0] * %b[0] + %a[1] * %b[1] + c +// TODO: This actually is similar to llvm.amdgcn.fdot2 intrinsics which produces +// v_dot2c_f32_f16 on gfx940. Maybe we can consolidate these. + +def int_amdgcn_fdot2c_f32_bf16 : + ClangBuiltin<"__builtin_amdgcn_fdot2c_f32_bf16">, + DefaultAttrsIntrinsic< + [llvm_float_ty], // %r + [ + llvm_v2bf16_ty, // %a + llvm_v2bf16_ty, // %b + llvm_float_ty, // %c + llvm_i1_ty // %clamp + ], + [IntrNoMem, IntrSpeculatable, ImmArg>] + >; + // i32 %r = llvm.amdgcn.sdot2(v2i16 %a, v2i16 %b, i32 %c, i1 %clamp) // %r = %a[0] * %b[0] + %a[1] * %b[1] + %c def int_amdgcn_sdot2 : @@ -2968,6 +3005,33 @@ class AMDGPUMfmaIntrinsic : [IntrConvergent, IntrNoMem, ImmArg>, ImmArg>, ImmArg>]>; + +// srcA's format is determined by cbsz. srcB's format is determined by +// blgp. +// +// These should be <8 x i32> for f8 formats, <6 x i32> for f6 formats, +// and <4 x i32> for f4 formats. It is invalid to use a format that +// requires more registers than the corresponding vector type (e.g. it +// is illegal to use <6 x i32> in operand 0 if cbsz specifies an f8 +// format that requires 8 registers). +class AMDGPUMfmaScaleIntrinsic : + DefaultAttrsIntrinsic<[DestTy], + [llvm_anyvector_ty, llvm_anyvector_ty, DestTy, + llvm_i32_ty, // cbsz + llvm_i32_ty, // blgp + // llvm_i1_ty, // TODO: neg_src2 + // llvm_i1_ty, // TODO: abs_src2 + // llvm_i1_ty, // TODO: clamp + llvm_i32_ty, // op_sel (A matrix scale, 2-bits) // TODO: Make i2? + llvm_i32_ty, // v_mfma_ld_scale_b32 src0 (A matrix scale) + llvm_i32_ty, // op_sel (B matrix scale, 2-bits) // TODO: Make i2? + llvm_i32_ty // v_mfma_ld_scale_b32 src1 (B matrix scale) + ], + [IntrConvergent, IntrNoMem, + ImmArg>, ImmArg>, + ImmArg>, ImmArg> + ]>; + defset list AMDGPUMFMAIntrinsics908 = { def int_amdgcn_mfma_f32_32x32x1f32 : AMDGPUMfmaIntrinsic; def int_amdgcn_mfma_f32_16x16x1f32 : AMDGPUMfmaIntrinsic; @@ -3117,10 +3181,52 @@ def int_amdgcn_cvt_sr_fp8_f32 : ClangBuiltin<"__builtin_amdgcn_cvt_sr_fp8_f32">, defset list AMDGPUMFMAIntrinsics950 = { def int_amdgcn_mfma_f32_16x16x32_f16 : AMDGPUMfmaIntrinsic; def int_amdgcn_mfma_f32_32x32x16_f16 : AMDGPUMfmaIntrinsic; - +def int_amdgcn_mfma_i32_16x16x64_i8 : AMDGPUMfmaIntrinsic; +def int_amdgcn_mfma_i32_32x32x32_i8 : AMDGPUMfmaIntrinsic; +def int_amdgcn_mfma_f32_16x16x32_bf16 : AMDGPUMfmaIntrinsic; def int_amdgcn_mfma_f32_32x32x16_bf16 : AMDGPUMfmaIntrinsic; +def int_amdgcn_mfma_scale_f32_16x16x128_f8f6f4 : AMDGPUMfmaScaleIntrinsic; +def int_amdgcn_mfma_scale_f32_32x32x64_f8f6f4 : AMDGPUMfmaScaleIntrinsic; +def int_amdgcn_smfmac_f32_16x16x64_f16 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_32x32x32_f16 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_16x16x64_bf16 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_32x32x32_bf16 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_i32_16x16x128_i8 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_i32_32x32x64_i8 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_16x16x128_bf8_bf8 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_16x16x128_bf8_fp8 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_16x16x128_fp8_bf8 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_16x16x128_fp8_fp8 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_32x32x64_bf8_bf8 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_32x32x64_bf8_fp8 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_32x32x64_fp8_bf8 : AMDGPUMSmfmacIntrinsic; +def int_amdgcn_smfmac_f32_32x32x64_fp8_fp8 : AMDGPUMSmfmacIntrinsic; } +// { vdst_new, vsrc_new } llvm.amdgcn.permlane16.swap +def int_amdgcn_permlane16_swap : + Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, + llvm_i1_ty, llvm_i1_ty], + [IntrNoMem, IntrConvergent, IntrWillReturn, + ImmArg>, ImmArg>, IntrNoCallback, IntrNoFree]>; + +// { vdst_new, vsrc_new } llvm.amdgcn.permlane32.swap +def int_amdgcn_permlane32_swap : + Intrinsic<[llvm_i32_ty, llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, + llvm_i1_ty, llvm_i1_ty], + [IntrNoMem, IntrConvergent, IntrWillReturn, + ImmArg>, ImmArg>, IntrNoCallback, IntrNoFree]>; + +// llvm.amdgcn.ashr_pk_i8_i32 int vdst, int src0, int src1 int src2 +def int_amdgcn_ashr_pk_i8_i32 : ClangBuiltin<"__builtin_amdgcn_ashr_pk_i8_i32">, + DefaultAttrsIntrinsic<[llvm_i16_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], + [IntrNoMem, IntrSpeculatable]>; + +// llvm.amdgcn.ashr_pk_u8_i32 int vdst, int src0, int src1 int src2 +def int_amdgcn_ashr_pk_u8_i32 : ClangBuiltin<"__builtin_amdgcn_ashr_pk_u8_i32">, + DefaultAttrsIntrinsic<[llvm_i16_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], + [IntrNoMem, IntrSpeculatable]>; + //===----------------------------------------------------------------------===// // Special Intrinsics for backend internal use only. No frontend // should emit calls to these. diff --git a/llvm/include/llvm/IR/IntrinsicsDirectX.td b/llvm/include/llvm/IR/IntrinsicsDirectX.td index 48a9595f844f0..bf49ec6f6c649 100644 --- a/llvm/include/llvm/IR/IntrinsicsDirectX.td +++ b/llvm/include/llvm/IR/IntrinsicsDirectX.td @@ -37,7 +37,7 @@ def int_dx_typedBufferStore : DefaultAttrsIntrinsic<[], [llvm_any_ty, llvm_i32_ty, llvm_anyvector_ty], [IntrWriteMem]>; -def int_dx_updateCounter +def int_dx_bufferUpdateCounter : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_any_ty, llvm_i8_ty], [IntrInaccessibleMemOrArgMemOnly]>; @@ -46,6 +46,7 @@ def int_dx_cast_handle : Intrinsic<[llvm_any_ty], [llvm_any_ty]>; def int_dx_all : DefaultAttrsIntrinsic<[llvm_i1_ty], [llvm_any_ty], [IntrNoMem]>; def int_dx_any : DefaultAttrsIntrinsic<[llvm_i1_ty], [llvm_any_ty], [IntrNoMem]>; +def int_dx_asdouble : DefaultAttrsIntrinsic<[LLVMScalarOrSameVectorWidth<0, llvm_double_ty>], [llvm_anyint_ty, LLVMMatchType<0>], [IntrNoMem]>; def int_dx_uclamp : DefaultAttrsIntrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; def int_dx_sclamp : DefaultAttrsIntrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; def int_dx_nclamp : DefaultAttrsIntrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>, LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>; @@ -94,6 +95,7 @@ def int_dx_umad : DefaultAttrsIntrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, LLV def int_dx_normalize : DefaultAttrsIntrinsic<[LLVMMatchType<0>], [llvm_anyfloat_ty], [IntrNoMem]>; def int_dx_rsqrt : DefaultAttrsIntrinsic<[llvm_anyfloat_ty], [LLVMMatchType<0>], [IntrNoMem]>; def int_dx_wave_active_countbits : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i1_ty], [IntrConvergent, IntrNoMem]>; +def int_dx_wave_any : DefaultAttrsIntrinsic<[llvm_i1_ty], [llvm_i1_ty], [IntrConvergent, IntrNoMem]>; def int_dx_wave_getlaneindex : DefaultAttrsIntrinsic<[llvm_i32_ty], [], [IntrConvergent, IntrNoMem]>; def int_dx_wave_is_first_lane : DefaultAttrsIntrinsic<[llvm_i1_ty], [], [IntrConvergent]>; def int_dx_wave_readlane : DefaultAttrsIntrinsic<[llvm_any_ty], [LLVMMatchType<0>, llvm_i32_ty], [IntrConvergent, IntrNoMem]>; diff --git a/llvm/include/llvm/IR/IntrinsicsSPIRV.td b/llvm/include/llvm/IR/IntrinsicsSPIRV.td index d583ea0f603c5..17b70062e58fa 100644 --- a/llvm/include/llvm/IR/IntrinsicsSPIRV.td +++ b/llvm/include/llvm/IR/IntrinsicsSPIRV.td @@ -86,6 +86,7 @@ let TargetPrefix = "spv" in { def int_spv_dot4add_i8packed : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_spv_dot4add_u8packed : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; def int_spv_wave_active_countbits : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i1_ty], [IntrConvergent, IntrNoMem]>; + def int_spv_wave_any : DefaultAttrsIntrinsic<[llvm_i1_ty], [llvm_i1_ty], [IntrConvergent, IntrNoMem]>; def int_spv_wave_is_first_lane : DefaultAttrsIntrinsic<[llvm_i1_ty], [], [IntrConvergent]>; def int_spv_wave_readlane : DefaultAttrsIntrinsic<[llvm_any_ty], [LLVMMatchType<0>, llvm_i32_ty], [IntrConvergent, IntrNoMem]>; def int_spv_sign : DefaultAttrsIntrinsic<[LLVMScalarOrSameVectorWidth<0, llvm_i32_ty>], [llvm_any_ty], [IntrNoMem]>; @@ -105,9 +106,14 @@ let TargetPrefix = "spv" in { [llvm_any_ty], [llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i32_ty, llvm_i1_ty], [IntrNoMem]>; + def int_spv_firstbituhigh : DefaultAttrsIntrinsic<[LLVMScalarOrSameVectorWidth<0, llvm_i32_ty>], [llvm_anyint_ty], [IntrNoMem]>; def int_spv_firstbitshigh : DefaultAttrsIntrinsic<[LLVMScalarOrSameVectorWidth<0, llvm_i32_ty>], [llvm_anyint_ty], [IntrNoMem]>; + def int_spv_bufferUpdateCounter + : DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_any_ty, llvm_i8_ty], + [IntrInaccessibleMemOrArgMemOnly]>; + // Read a value from the image buffer. It does not translate directly to a // single OpImageRead because the result type is not necessarily a 4 element // vector. diff --git a/llvm/include/llvm/IR/Module.h b/llvm/include/llvm/IR/Module.h index 528e19af5518d..12b50fc506516 100644 --- a/llvm/include/llvm/IR/Module.h +++ b/llvm/include/llvm/IR/Module.h @@ -256,9 +256,12 @@ class LLVM_ABI Module { /// The module destructor. This will dropAllReferences. ~Module(); -/// @} -/// @name Module Level Accessors -/// @{ + /// Move assignment. + Module &operator=(Module &&Other); + + /// @} + /// @name Module Level Accessors + /// @{ /// Get the module identifier which is, essentially, the name of the module. /// @returns the module identifier as a string diff --git a/llvm/include/llvm/IR/ModuleSummaryIndex.h b/llvm/include/llvm/IR/ModuleSummaryIndex.h index 39c60229aa1d8..a4eb75ceb6930 100644 --- a/llvm/include/llvm/IR/ModuleSummaryIndex.h +++ b/llvm/include/llvm/IR/ModuleSummaryIndex.h @@ -1315,7 +1315,7 @@ using GVSummaryPtrSet = std::unordered_set; /// Map of a type GUID to type id string and summary (multimap used /// in case of GUID conflicts). using TypeIdSummaryMapTy = - std::multimap>; + std::multimap>; /// The following data structures summarize type metadata information. /// For type metadata overview see https://llvm.org/docs/TypeMetadata.html. @@ -1351,6 +1351,9 @@ class ModuleSummaryIndex { /// Holds strings for combined index, mapping to the corresponding module ID. ModulePathStringTableTy ModulePathStringTable; + BumpPtrAllocator TypeIdSaverAlloc; + UniqueStringSaver TypeIdSaver; + /// Mapping from type identifier GUIDs to type identifier and its summary /// information. Produced by thin link. TypeIdSummaryMapTy TypeIdMap; @@ -1359,7 +1362,7 @@ class ModuleSummaryIndex { /// with that type identifier's metadata. Produced by per module summary /// analysis and consumed by thin link. For more information, see description /// above where TypeIdCompatibleVtableInfo is defined. - std::map> + std::map> TypeIdCompatibleVtableMap; /// Mapping from original ID to GUID. If original ID can map to multiple @@ -1455,8 +1458,9 @@ class ModuleSummaryIndex { // See HaveGVs variable comment. ModuleSummaryIndex(bool HaveGVs, bool EnableSplitLTOUnit = false, bool UnifiedLTO = false) - : HaveGVs(HaveGVs), EnableSplitLTOUnit(EnableSplitLTOUnit), - UnifiedLTO(UnifiedLTO), Saver(Alloc) {} + : TypeIdSaver(TypeIdSaverAlloc), HaveGVs(HaveGVs), + EnableSplitLTOUnit(EnableSplitLTOUnit), UnifiedLTO(UnifiedLTO), + Saver(Alloc) {} // Current version for the module summary in bitcode files. // The BitcodeSummaryVersion should be bumped whenever we introduce changes @@ -1829,8 +1833,8 @@ class ModuleSummaryIndex { for (auto &[GUID, TypeIdPair] : make_range(TidIter)) if (TypeIdPair.first == TypeId) return TypeIdPair.second; - auto It = TypeIdMap.insert( - {GlobalValue::getGUID(TypeId), {std::string(TypeId), TypeIdSummary()}}); + auto It = TypeIdMap.insert({GlobalValue::getGUID(TypeId), + {TypeIdSaver.save(TypeId), TypeIdSummary()}}); return It->second.second; } @@ -1859,7 +1863,7 @@ class ModuleSummaryIndex { /// the ThinLTO backends. TypeIdCompatibleVtableInfo & getOrInsertTypeIdCompatibleVtableSummary(StringRef TypeId) { - return TypeIdCompatibleVtableMap[std::string(TypeId)]; + return TypeIdCompatibleVtableMap[TypeIdSaver.save(TypeId)]; } /// For the given \p TypeId, this returns the TypeIdCompatibleVtableMap diff --git a/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h b/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h index 7c405025630c9..b23fd4a72c93b 100644 --- a/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h +++ b/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h @@ -313,11 +313,11 @@ template <> struct CustomMappingTraits { static void inputOne(IO &io, StringRef Key, TypeIdSummaryMapTy &V) { TypeIdSummary TId; io.mapRequired(Key.str().c_str(), TId); - V.insert({GlobalValue::getGUID(Key), {std::string(Key), TId}}); + V.insert({GlobalValue::getGUID(Key), {Key, TId}}); } static void output(IO &io, TypeIdSummaryMapTy &V) { for (auto &TidIter : V) - io.mapRequired(TidIter.second.first.c_str(), TidIter.second.second); + io.mapRequired(TidIter.second.first.str().c_str(), TidIter.second.second); } }; @@ -327,7 +327,21 @@ template <> struct MappingTraits { if (!io.outputting()) CustomMappingTraits::fixAliaseeLinks( index.GlobalValueMap); - io.mapOptional("TypeIdMap", index.TypeIdMap); + + if (io.outputting()) { + io.mapOptional("TypeIdMap", index.TypeIdMap); + } else { + TypeIdSummaryMapTy TypeIdMap; + io.mapOptional("TypeIdMap", TypeIdMap); + for (auto &[TypeGUID, TypeIdSummaryMap] : TypeIdMap) { + // Save type id references in index and point TypeIdMap to use the + // references owned by index. + StringRef KeyRef = index.TypeIdSaver.save(TypeIdSummaryMap.first); + index.TypeIdMap.insert( + {TypeGUID, {KeyRef, std::move(TypeIdSummaryMap.second)}}); + } + } + io.mapOptional("WithGlobalValueDeadStripping", index.WithGlobalValueDeadStripping); diff --git a/llvm/include/llvm/IR/PatternMatch.h b/llvm/include/llvm/IR/PatternMatch.h index 0d6df72790632..fc4c0124d00b8 100644 --- a/llvm/include/llvm/IR/PatternMatch.h +++ b/llvm/include/llvm/IR/PatternMatch.h @@ -1716,7 +1716,8 @@ template struct TwoOps_match { }; /// Matches instructions with Opcode and three operands. -template +template struct ThreeOps_match { T0 Op1; T1 Op2; @@ -1728,8 +1729,12 @@ struct ThreeOps_match { template bool match(OpTy *V) { if (V->getValueID() == Value::InstructionVal + Opcode) { auto *I = cast(V); - return Op1.match(I->getOperand(0)) && Op2.match(I->getOperand(1)) && - Op3.match(I->getOperand(2)); + if (!Op1.match(I->getOperand(0))) + return false; + if (Op2.match(I->getOperand(1)) && Op3.match(I->getOperand(2))) + return true; + return CommutableOp2Op3 && Op2.match(I->getOperand(2)) && + Op3.match(I->getOperand(1)); } return false; } @@ -1781,6 +1786,14 @@ m_SelectCst(const Cond &C) { return m_Select(C, m_ConstantInt(), m_ConstantInt()); } +/// Match Select(C, LHS, RHS) or Select(C, RHS, LHS) +template +inline ThreeOps_match +m_c_Select(const LHS &L, const RHS &R) { + return ThreeOps_match(m_Value(), L, R); +} + /// Matches FreezeInst. template inline OneOps_match m_Freeze(const OpTy &Op) { diff --git a/llvm/include/llvm/IR/Type.h b/llvm/include/llvm/IR/Type.h index 000fdee45bb86..6dadf158a739f 100644 --- a/llvm/include/llvm/IR/Type.h +++ b/llvm/include/llvm/IR/Type.h @@ -215,6 +215,12 @@ class Type { containsNonGlobalTargetExtType(SmallPtrSetImpl &Visited) const; bool containsNonGlobalTargetExtType() const; + /// Return true if this type is or contains a target extension type that + /// disallows being used as a local. + bool + containsNonLocalTargetExtType(SmallPtrSetImpl &Visited) const; + bool containsNonLocalTargetExtType() const; + /// Return true if this is a FP type or a vector of FP. bool isFPOrFPVectorTy() const { return getScalarType()->isFloatingPointTy(); } diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h index af93d5e989f65..e883aae275868 100644 --- a/llvm/include/llvm/InitializePasses.h +++ b/llvm/include/llvm/InitializePasses.h @@ -102,7 +102,7 @@ void initializeEarlyIfConverterLegacyPass(PassRegistry &); void initializeEarlyIfPredicatorPass(PassRegistry &); void initializeEarlyMachineLICMPass(PassRegistry &); void initializeEarlyTailDuplicateLegacyPass(PassRegistry &); -void initializeEdgeBundlesPass(PassRegistry &); +void initializeEdgeBundlesWrapperLegacyPass(PassRegistry &); void initializeEHContGuardCatchretPass(PassRegistry &); void initializeExpandLargeFpConvertLegacyPassPass(PassRegistry &); void initializeExpandLargeDivRemLegacyPassPass(PassRegistry &); diff --git a/llvm/include/llvm/MC/MCRegisterInfo.h b/llvm/include/llvm/MC/MCRegisterInfo.h index 73f29d0f521ed..6db42878d2e52 100644 --- a/llvm/include/llvm/MC/MCRegisterInfo.h +++ b/llvm/include/llvm/MC/MCRegisterInfo.h @@ -129,9 +129,6 @@ struct MCRegisterDesc { // Is true for constant registers. bool IsConstant; - - // Is true for artificial registers. - bool IsArtificial; }; /// MCRegisterInfo base class - We assume that the target defines a static @@ -399,11 +396,6 @@ class MCRegisterInfo { /// Returns true if the given register is constant. bool isConstant(MCRegister RegNo) const { return get(RegNo).IsConstant; } - /// Returns true if the given register is artificial, which means it - /// represents a regunit that is not separately addressable but still needs to - /// be modelled, such as the top 16-bits of a 32-bit GPR. - bool isArtificial(MCRegister RegNo) const { return get(RegNo).IsArtificial; } - /// Return the number of registers this target has (useful for /// sizing arrays holding per register information) unsigned getNumRegs() const { diff --git a/llvm/include/llvm/Object/ELFTypes.h b/llvm/include/llvm/Object/ELFTypes.h index 0f8c73f81cfa6..87e4dbe448091 100644 --- a/llvm/include/llvm/Object/ELFTypes.h +++ b/llvm/include/llvm/Object/ELFTypes.h @@ -830,6 +830,7 @@ struct BBAddrMap { bool BBFreq : 1; bool BrProb : 1; bool MultiBBRange : 1; + bool OmitBBEntries : 1; bool hasPGOAnalysis() const { return FuncEntryCount || BBFreq || BrProb; } @@ -840,7 +841,8 @@ struct BBAddrMap { return (static_cast(FuncEntryCount) << 0) | (static_cast(BBFreq) << 1) | (static_cast(BrProb) << 2) | - (static_cast(MultiBBRange) << 3); + (static_cast(MultiBBRange) << 3) | + (static_cast(OmitBBEntries) << 4); } // Decodes from minimum bit width representation and validates no @@ -848,7 +850,8 @@ struct BBAddrMap { static Expected decode(uint8_t Val) { Features Feat{ static_cast(Val & (1 << 0)), static_cast(Val & (1 << 1)), - static_cast(Val & (1 << 2)), static_cast(Val & (1 << 3))}; + static_cast(Val & (1 << 2)), static_cast(Val & (1 << 3)), + static_cast(Val & (1 << 4))}; if (Feat.encode() != Val) return createStringError( std::error_code(), "invalid encoding for BBAddrMap::Features: 0x%x", @@ -857,9 +860,10 @@ struct BBAddrMap { } bool operator==(const Features &Other) const { - return std::tie(FuncEntryCount, BBFreq, BrProb, MultiBBRange) == + return std::tie(FuncEntryCount, BBFreq, BrProb, MultiBBRange, + OmitBBEntries) == std::tie(Other.FuncEntryCount, Other.BBFreq, Other.BrProb, - Other.MultiBBRange); + Other.MultiBBRange, Other.OmitBBEntries); } }; diff --git a/llvm/include/llvm/Passes/MachinePassRegistry.def b/llvm/include/llvm/Passes/MachinePassRegistry.def index 851561f6b769b..cb1c295d82478 100644 --- a/llvm/include/llvm/Passes/MachinePassRegistry.def +++ b/llvm/include/llvm/Passes/MachinePassRegistry.def @@ -97,6 +97,7 @@ LOOP_PASS("loop-term-fold", LoopTermFoldPass()) // LiveVariables can be removed completely, and LiveIntervals can be directly // computed. (We still either need to regenerate kill flags after regalloc, or // preferably fix the scavenger to not depend on them). +MACHINE_FUNCTION_ANALYSIS("edge-bundles", EdgeBundlesAnalysis()) MACHINE_FUNCTION_ANALYSIS("live-intervals", LiveIntervalsAnalysis()) MACHINE_FUNCTION_ANALYSIS("live-reg-matrix", LiveRegMatrixAnalysis()) MACHINE_FUNCTION_ANALYSIS("live-vars", LiveVariablesAnalysis()) @@ -114,7 +115,6 @@ MACHINE_FUNCTION_ANALYSIS("pass-instrumentation", PassInstrumentationAnalysis(PI MACHINE_FUNCTION_ANALYSIS("slot-indexes", SlotIndexesAnalysis()) MACHINE_FUNCTION_ANALYSIS("virtregmap", VirtRegMapAnalysis()) // MACHINE_FUNCTION_ANALYSIS("live-stacks", LiveStacksPass()) -// MACHINE_FUNCTION_ANALYSIS("edge-bundles", EdgeBundlesAnalysis()) // MACHINE_FUNCTION_ANALYSIS("lazy-machine-bfi", // LazyMachineBlockFrequencyInfoAnalysis()) // MACHINE_FUNCTION_ANALYSIS("machine-loops", MachineLoopInfoAnalysis()) diff --git a/llvm/include/llvm/ProfileData/InstrProfReader.h b/llvm/include/llvm/ProfileData/InstrProfReader.h index 058b9a1ce02e0..1fad2343e2c96 100644 --- a/llvm/include/llvm/ProfileData/InstrProfReader.h +++ b/llvm/include/llvm/ProfileData/InstrProfReader.h @@ -686,7 +686,7 @@ class IndexedMemProfReader { // The number of elements in the radix tree array. unsigned RadixTreeSize = 0; - Error deserializeV12(const unsigned char *Start, const unsigned char *Ptr); + Error deserializeV2(const unsigned char *Start, const unsigned char *Ptr); Error deserializeV3(const unsigned char *Start, const unsigned char *Ptr); public: diff --git a/llvm/include/llvm/ProfileData/MemProf.h b/llvm/include/llvm/ProfileData/MemProf.h index f97fbd4bd6441..dd4d90864a08c 100644 --- a/llvm/include/llvm/ProfileData/MemProf.h +++ b/llvm/include/llvm/ProfileData/MemProf.h @@ -25,8 +25,6 @@ struct MemProfRecord; // The versions of the indexed MemProf format enum IndexedVersion : uint64_t { - // Version 1: Added a version field to the header. - Version1 = 1, // Version 2: Added a call stack table. Version2 = 2, // Version 3: Added a radix tree for call stacks. Switched to linear IDs for @@ -34,7 +32,7 @@ enum IndexedVersion : uint64_t { Version3 = 3, }; -constexpr uint64_t MinimumSupportedVersion = Version1; +constexpr uint64_t MinimumSupportedVersion = Version2; constexpr uint64_t MaximumSupportedVersion = Version3; // Verify that the minimum and maximum satisfy the obvious constraint. @@ -391,14 +389,6 @@ struct AllocationInfo { PortableMemInfoBlock Info; AllocationInfo() = default; - AllocationInfo( - const IndexedAllocationInfo &IndexedAI, - llvm::function_ref IdToFrameCallback) { - for (const FrameId &Id : IndexedAI.CallStack) { - CallStack.push_back(IdToFrameCallback(Id)); - } - Info = IndexedAI.Info; - } void printYAML(raw_ostream &OS) const { OS << " -\n"; @@ -486,20 +476,6 @@ struct MemProfRecord { llvm::SmallVector> CallSites; MemProfRecord() = default; - MemProfRecord( - const IndexedMemProfRecord &Record, - llvm::function_ref IdToFrameCallback) { - for (const IndexedAllocationInfo &IndexedAI : Record.AllocSites) { - AllocSites.emplace_back(IndexedAI, IdToFrameCallback); - } - for (const ArrayRef Site : Record.CallSites) { - std::vector Frames; - for (const FrameId Id : Site) { - Frames.push_back(IdToFrameCallback(Id)); - } - CallSites.push_back(Frames); - } - } // Prints out the contents of the memprof record in YAML. void print(llvm::raw_ostream &OS) const { @@ -1141,21 +1117,20 @@ template class CallStackRadixTreeBuilder { // Encode a call stack into RadixArray. Return the starting index within // RadixArray. - LinearCallStackId - encodeCallStack(const llvm::SmallVector *CallStack, - const llvm::SmallVector *Prev, - std::optional> - MemProfFrameIndexes); + LinearCallStackId encodeCallStack( + const llvm::SmallVector *CallStack, + const llvm::SmallVector *Prev, + const llvm::DenseMap *MemProfFrameIndexes); public: CallStackRadixTreeBuilder() = default; // Build a radix tree array. - void build(llvm::MapVector> - &&MemProfCallStackData, - std::optional> - MemProfFrameIndexes, - llvm::DenseMap &FrameHistogram); + void + build(llvm::MapVector> + &&MemProfCallStackData, + const llvm::DenseMap *MemProfFrameIndexes, + llvm::DenseMap &FrameHistogram); ArrayRef getRadixArray() const { return RadixArray; } @@ -1163,18 +1138,6 @@ template class CallStackRadixTreeBuilder { return std::move(CallStackPos); } }; - -// Verify that each CallStackId is computed with hashCallStack. This function -// is intended to help transition from CallStack to CSId in -// IndexedAllocationInfo. -void verifyIndexedMemProfRecord(const IndexedMemProfRecord &Record); - -// Verify that each CallStackId is computed with hashCallStack. This function -// is intended to help transition from CallStack to CSId in -// IndexedAllocationInfo. -void verifyFunctionProfileData( - const llvm::MapVector - &FunctionProfileData); } // namespace memprof } // namespace llvm diff --git a/llvm/include/llvm/ProfileData/MemProfReader.h b/llvm/include/llvm/ProfileData/MemProfReader.h index 57ddcbf350060..caf404d95d865 100644 --- a/llvm/include/llvm/ProfileData/MemProfReader.h +++ b/llvm/include/llvm/ProfileData/MemProfReader.h @@ -46,26 +46,6 @@ class MemProfReader { return Iterator(this); } - // Return a const reference to the internal Id to Frame mappings. - LLVM_DEPRECATED("Use takeMemProfData instead", "takeMemProfData") - const llvm::DenseMap &getFrameMapping() const { - return IdToFrame; - } - - // Return a const reference to the internal Id to call stacks. - LLVM_DEPRECATED("Use takeMemProfData instead", "takeMemProfData") - const llvm::DenseMap> & - getCallStacks() const { - return CSIdToCallStack; - } - - // Return a const reference to the internal function profile data. - LLVM_DEPRECATED("Use takeMemProfData instead", "takeMemProfData") - const llvm::MapVector & - getProfileData() const { - return FunctionProfileData; - } - // Take the complete profile data. IndexedMemProfData takeMemProfData() { // TODO: Once we replace the three member variables, namely IdToFrame, @@ -116,24 +96,6 @@ class MemProfReader { MemProfReader() = default; virtual ~MemProfReader() = default; - // Initialize the MemProfReader with the frame mappings and profile contents. - LLVM_DEPRECATED("Construct MemProfReader with IndexedMemProfData", - "MemProfReader") - MemProfReader( - llvm::DenseMap FrameIdMap, - llvm::MapVector ProfData); - - // Initialize the MemProfReader with the frame mappings, call stack mappings, - // and profile contents. - LLVM_DEPRECATED("Construct MemProfReader with IndexedMemProfData", - "MemProfReader") - MemProfReader( - llvm::DenseMap FrameIdMap, - llvm::DenseMap> CSIdMap, - llvm::MapVector ProfData) - : IdToFrame(std::move(FrameIdMap)), CSIdToCallStack(std::move(CSIdMap)), - FunctionProfileData(std::move(ProfData)) {} - // Initialize the MemProfReader with the given MemProf profile. MemProfReader(IndexedMemProfData MemProfData) { for (const auto &[FrameId, F] : MemProfData.Frames) diff --git a/llvm/include/llvm/SandboxIR/Region.h b/llvm/include/llvm/SandboxIR/Region.h index 67411f3fb741d..8133e01734ea7 100644 --- a/llvm/include/llvm/SandboxIR/Region.h +++ b/llvm/include/llvm/SandboxIR/Region.h @@ -63,6 +63,11 @@ class Region { Context &Ctx; + /// ID (for later deregistration) of the "create instruction" callback. + Context::CallbackID CreateInstCB; + /// ID (for later deregistration) of the "erase instruction" callback. + Context::CallbackID EraseInstCB; + // TODO: Add cost modeling. // TODO: Add a way to encode/decode region info to/from metadata. diff --git a/llvm/include/llvm/Target/TargetSelectionDAG.td b/llvm/include/llvm/Target/TargetSelectionDAG.td index e4485d997c34c..7bb6c3156c43e 100644 --- a/llvm/include/llvm/Target/TargetSelectionDAG.td +++ b/llvm/include/llvm/Target/TargetSelectionDAG.td @@ -118,6 +118,10 @@ def SDTIntBinOp : SDTypeProfile<1, 2, [ // add, and, or, xor, udiv, etc. def SDTIntShiftOp : SDTypeProfile<1, 2, [ // shl, sra, srl SDTCisSameAs<0, 1>, SDTCisInt<0>, SDTCisInt<2> ]>; +def SDTIntShiftPairOp : SDTypeProfile<2, 3, [ // shl_parts, sra_parts, srl_parts + SDTCisInt<0>, SDTCisSameAs<1, 0>, + SDTCisSameAs<2, 0>, SDTCisSameAs<3, 0>, SDTCisInt<4> +]>; def SDTIntShiftDOp: SDTypeProfile<1, 3, [ // fshl, fshr SDTCisSameAs<0, 1>, SDTCisSameAs<0, 2>, SDTCisInt<0>, SDTCisInt<3> ]>; @@ -422,6 +426,9 @@ def sra : SDNode<"ISD::SRA" , SDTIntShiftOp>; def shl : SDNode<"ISD::SHL" , SDTIntShiftOp>; def rotl : SDNode<"ISD::ROTL" , SDTIntShiftOp>; def rotr : SDNode<"ISD::ROTR" , SDTIntShiftOp>; +def shl_parts : SDNode<"ISD::SHL_PARTS" , SDTIntShiftPairOp>; +def sra_parts : SDNode<"ISD::SRA_PARTS" , SDTIntShiftPairOp>; +def srl_parts : SDNode<"ISD::SRL_PARTS" , SDTIntShiftPairOp>; def fshl : SDNode<"ISD::FSHL" , SDTIntShiftDOp>; def fshr : SDNode<"ISD::FSHR" , SDTIntShiftDOp>; def and : SDNode<"ISD::AND" , SDTIntBinOp, diff --git a/llvm/include/llvm/TargetParser/LoongArchTargetParser.def b/llvm/include/llvm/TargetParser/LoongArchTargetParser.def index 6cd2018b7b59c..324d5c18e6dea 100644 --- a/llvm/include/llvm/TargetParser/LoongArchTargetParser.def +++ b/llvm/include/llvm/TargetParser/LoongArchTargetParser.def @@ -12,6 +12,7 @@ LOONGARCH_FEATURE("+lvz", FK_LVZ) LOONGARCH_FEATURE("+ual", FK_UAL) LOONGARCH_FEATURE("+frecipe", FK_FRECIPE) LOONGARCH_FEATURE("+lam-bh", FK_LAM_BH) +LOONGARCH_FEATURE("+ld-seq-sa", FK_LD_SEQ_SA) #undef LOONGARCH_FEATURE @@ -21,6 +22,6 @@ LOONGARCH_FEATURE("+lam-bh", FK_LAM_BH) LOONGARCH_ARCH("loongarch64", AK_LOONGARCH64, FK_64BIT | FK_FP32 | FK_FP64 | FK_UAL) LOONGARCH_ARCH("la464", AK_LA464, FK_64BIT | FK_FP32 | FK_FP64 | FK_LSX | FK_LASX | FK_UAL) -LOONGARCH_ARCH("la664", AK_LA664, FK_64BIT | FK_FP32 | FK_FP64 | FK_LSX | FK_LASX | FK_UAL | FK_FRECIPE | FK_LAM_BH) +LOONGARCH_ARCH("la664", AK_LA664, FK_64BIT | FK_FP32 | FK_FP64 | FK_LSX | FK_LASX | FK_UAL | FK_FRECIPE | FK_LAM_BH | FK_LD_SEQ_SA) #undef LOONGARCH_ARCH diff --git a/llvm/include/llvm/TargetParser/LoongArchTargetParser.h b/llvm/include/llvm/TargetParser/LoongArchTargetParser.h index b5be03b1b67fb..00957b84ab576 100644 --- a/llvm/include/llvm/TargetParser/LoongArchTargetParser.h +++ b/llvm/include/llvm/TargetParser/LoongArchTargetParser.h @@ -53,6 +53,10 @@ enum FeatureKind : uint32_t { // Atomic memory swap and add instructions for byte and half word are // available. FK_LAM_BH = 1 << 10, + + // Do not generate load-load barrier instructions (dbar 0x700). + FK_LD_SEQ_SA = 1 << 12, + }; struct FeatureInfo { diff --git a/llvm/include/llvm/TargetParser/RISCVTargetParser.h b/llvm/include/llvm/TargetParser/RISCVTargetParser.h index c75778952e0f5..c237e1ddd6b38 100644 --- a/llvm/include/llvm/TargetParser/RISCVTargetParser.h +++ b/llvm/include/llvm/TargetParser/RISCVTargetParser.h @@ -32,6 +32,21 @@ struct RISCVExtensionBitmask { }; } // namespace RISCVExtensionBitmaskTable +struct CPUModel { + uint32_t MVendorID; + uint64_t MArchID; + uint64_t MImpID; +}; + +struct CPUInfo { + StringLiteral Name; + StringLiteral DefaultMarch; + bool FastScalarUnalignedAccess; + bool FastVectorUnalignedAccess; + CPUModel Model; + bool is64Bit() const { return DefaultMarch.starts_with("rv64"); } +}; + // We use 64 bits as the known part in the scalable vector types. static constexpr unsigned RVVBitsPerBlock = 64; @@ -45,6 +60,8 @@ void fillValidCPUArchList(SmallVectorImpl &Values, bool IsRV64); void fillValidTuneCPUArchList(SmallVectorImpl &Values, bool IsRV64); bool hasFastScalarUnalignedAccess(StringRef CPU); bool hasFastVectorUnalignedAccess(StringRef CPU); +bool hasValidCPUModel(StringRef CPU); +CPUModel getCPUModel(StringRef CPU); } // namespace RISCV diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h index 779bd9017d7f1..3a1a962003abf 100644 --- a/llvm/include/llvm/TargetParser/Triple.h +++ b/llvm/include/llvm/TargetParser/Triple.h @@ -268,6 +268,7 @@ class Triple { MuslF32, MuslSF, MuslX32, + LLVM, MSVC, Itanium, diff --git a/llvm/lib/Analysis/MemoryBuiltins.cpp b/llvm/lib/Analysis/MemoryBuiltins.cpp index cd8594d670502..4028d5f4e2e1b 100644 --- a/llvm/lib/Analysis/MemoryBuiltins.cpp +++ b/llvm/lib/Analysis/MemoryBuiltins.cpp @@ -565,10 +565,7 @@ static APInt getSizeWithOverflow(const SizeOffsetAPInt &Data) { APInt Size = Data.Size; APInt Offset = Data.Offset; - assert(!Offset.isNegative() && - "size for a pointer before the allocated object is ambiguous"); - - if (Size.ult(Offset)) + if (Offset.isNegative() || Size.ult(Offset)) return APInt::getZero(Size.getBitWidth()); return Size - Offset; @@ -756,10 +753,14 @@ OffsetSpan ObjectSizeOffsetVisitor::computeImpl(Value *V) { } // We end up pointing on a location that's outside of the original object. - // This is UB, and we'd rather return an empty location then. if (ORT.knownBefore() && ORT.Before.isNegative()) { - ORT.Before = APInt::getZero(ORT.Before.getBitWidth()); - ORT.After = APInt::getZero(ORT.Before.getBitWidth()); + // This is UB, and we'd rather return an empty location then. + if (Options.EvalMode == ObjectSizeOpts::Mode::Min || + Options.EvalMode == ObjectSizeOpts::Mode::Max) { + ORT.Before = APInt::getZero(ORT.Before.getBitWidth()); + ORT.After = APInt::getZero(ORT.Before.getBitWidth()); + } + // Otherwise it's fine, caller can handle negative offset. } return ORT; } diff --git a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp index c40bbd9e18e79..dec5ee5361ca3 100644 --- a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp +++ b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp @@ -1066,40 +1066,18 @@ bool MemoryDependenceResults::getNonLocalPointerDepFromBB( // Invariant loads don't participate in caching. Thus no need to reconcile. if (!isInvariantLoad && !Pair.second) { if (CacheInfo->Size != Loc.Size) { - bool ThrowOutEverything; - if (CacheInfo->Size.hasValue() && Loc.Size.hasValue()) { - // FIXME: We may be able to do better in the face of results with mixed - // precision. We don't appear to get them in practice, though, so just - // be conservative. - ThrowOutEverything = - CacheInfo->Size.isPrecise() != Loc.Size.isPrecise() || - !TypeSize::isKnownGE(CacheInfo->Size.getValue(), - Loc.Size.getValue()); - } else { - // For our purposes, unknown size > all others. - ThrowOutEverything = !Loc.Size.hasValue(); - } - - if (ThrowOutEverything) { - // The query's Size is greater than the cached one. Throw out the - // cached data and proceed with the query at the greater size. - CacheInfo->Pair = BBSkipFirstBlockPair(); - CacheInfo->Size = Loc.Size; - for (auto &Entry : CacheInfo->NonLocalDeps) - if (Instruction *Inst = Entry.getResult().getInst()) - RemoveFromReverseMap(ReverseNonLocalPtrDeps, Inst, CacheKey); - CacheInfo->NonLocalDeps.clear(); - // The cache is cleared (in the above line) so we will have lost - // information about blocks we have already visited. We therefore must - // assume that the cache information is incomplete. - IsIncomplete = true; - } else { - // This query's Size is less than the cached one. Conservatively restart - // the query using the greater size. - return getNonLocalPointerDepFromBB( - QueryInst, Pointer, Loc.getWithNewSize(CacheInfo->Size), isLoad, - StartBB, Result, Visited, SkipFirstBlock, IsIncomplete); - } + // The query's Size is not equal to the cached one. Throw out the cached + // data and proceed with the query with the new size. + CacheInfo->Pair = BBSkipFirstBlockPair(); + CacheInfo->Size = Loc.Size; + for (auto &Entry : CacheInfo->NonLocalDeps) + if (Instruction *Inst = Entry.getResult().getInst()) + RemoveFromReverseMap(ReverseNonLocalPtrDeps, Inst, CacheKey); + CacheInfo->NonLocalDeps.clear(); + // The cache is cleared (in the above line) so we will have lost + // information about blocks we have already visited. We therefore must + // assume that the cache information is incomplete. + IsIncomplete = true; } // If the query's AATags are inconsistent with the cached one, diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 376f260846bba..c3f296b9ff334 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -6314,8 +6314,10 @@ APInt ScalarEvolution::getConstantMultipleImpl(const SCEV *S) { return getConstantMultiple(Z->getOperand()).zext(BitWidth); } case scSignExtend: { + // Only multiples that are a power of 2 will hold after sext. const SCEVSignExtendExpr *E = cast(S); - return getConstantMultiple(E->getOperand()).sext(BitWidth); + uint32_t TZ = getMinTrailingZeros(E->getOperand()); + return GetShiftedByZeros(TZ); } case scMulExpr: { const SCEVMulExpr *M = cast(S); diff --git a/llvm/lib/Analysis/TargetTransformInfo.cpp b/llvm/lib/Analysis/TargetTransformInfo.cpp index 174e5e87abe53..1fb2b9836de0c 100644 --- a/llvm/lib/Analysis/TargetTransformInfo.cpp +++ b/llvm/lib/Analysis/TargetTransformInfo.cpp @@ -615,6 +615,11 @@ bool TargetTransformInfo::isTargetIntrinsicWithScalarOpAtArg( return TTIImpl->isTargetIntrinsicWithScalarOpAtArg(ID, ScalarOpdIdx); } +bool TargetTransformInfo::isVectorIntrinsicWithOverloadTypeAtArg( + Intrinsic::ID ID, int ScalarOpdIdx) const { + return TTIImpl->isVectorIntrinsicWithOverloadTypeAtArg(ID, ScalarOpdIdx); +} + InstructionCost TargetTransformInfo::getScalarizationOverhead( VectorType *Ty, const APInt &DemandedElts, bool Insert, bool Extract, TTI::TargetCostKind CostKind) const { diff --git a/llvm/lib/Analysis/VectorUtils.cpp b/llvm/lib/Analysis/VectorUtils.cpp index 15e325a0fffca..1789671276ffa 100644 --- a/llvm/lib/Analysis/VectorUtils.cpp +++ b/llvm/lib/Analysis/VectorUtils.cpp @@ -133,10 +133,13 @@ bool llvm::isVectorIntrinsicWithScalarOpAtArg(Intrinsic::ID ID, } } -bool llvm::isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, - int OpdIdx) { +bool llvm::isVectorIntrinsicWithOverloadTypeAtArg( + Intrinsic::ID ID, int OpdIdx, const TargetTransformInfo *TTI) { assert(ID != Intrinsic::not_intrinsic && "Not an intrinsic!"); + if (TTI && Intrinsic::isTargetIntrinsic(ID)) + return TTI->isVectorIntrinsicWithOverloadTypeAtArg(ID, OpdIdx); + switch (ID) { case Intrinsic::fptosi_sat: case Intrinsic::fptoui_sat: diff --git a/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp b/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp index 8f79ccdb9ff75..032c0de3c7a00 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp @@ -329,6 +329,7 @@ GetCodeName(unsigned CodeID, unsigned BlockID, STRINGIFY_CODE(FS, COMBINED_ALLOC_INFO) STRINGIFY_CODE(FS, STACK_IDS) STRINGIFY_CODE(FS, ALLOC_CONTEXT_IDS) + STRINGIFY_CODE(FS, CONTEXT_RADIX_TREE_ARRAY) } case bitc::METADATA_ATTACHMENT_ID: switch (CodeID) { diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 3e6abacac2726..11fbe6e6158ee 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -987,6 +987,10 @@ class ModuleSummaryIndexBitcodeReader : public BitcodeReaderBase { /// ids from the lists in the callsite and alloc entries to the index. std::vector StackIds; + /// Linearized radix tree of allocation contexts. See the description above + /// the CallStackRadixTreeBuilder class in ProfileData/MemProf.h for format. + std::vector RadixArray; + public: ModuleSummaryIndexBitcodeReader( BitstreamCursor Stream, StringRef Strtab, ModuleSummaryIndex &TheIndex, @@ -1013,6 +1017,8 @@ class ModuleSummaryIndexBitcodeReader : public BitcodeReaderBase { TypeIdCompatibleVtableInfo &TypeId); std::vector parseParamAccesses(ArrayRef Record); + SmallVector parseAllocInfoContext(ArrayRef Record, + unsigned &I); template std::pair @@ -7544,6 +7550,48 @@ void ModuleSummaryIndexBitcodeReader::parseTypeIdCompatibleVtableSummaryRecord( parseTypeIdCompatibleVtableInfo(Record, Slot, TypeId); } +SmallVector ModuleSummaryIndexBitcodeReader::parseAllocInfoContext( + ArrayRef Record, unsigned &I) { + SmallVector StackIdList; + // For backwards compatibility with old format before radix tree was + // used, simply see if we found a radix tree array record (and thus if + // the RadixArray is non-empty). + if (RadixArray.empty()) { + unsigned NumStackEntries = Record[I++]; + assert(Record.size() - I >= NumStackEntries); + StackIdList.reserve(NumStackEntries); + for (unsigned J = 0; J < NumStackEntries; J++) { + assert(Record[I] < StackIds.size()); + StackIdList.push_back( + TheIndex.addOrGetStackIdIndex(StackIds[Record[I++]])); + } + } else { + unsigned RadixIndex = Record[I++]; + // See the comments above CallStackRadixTreeBuilder in ProfileData/MemProf.h + // for a detailed description of the radix tree array format. Briefly, the + // first entry will be the number of frames, any negative values are the + // negative of the offset of the next frame, and otherwise the frames are in + // increasing linear order. + assert(RadixIndex < RadixArray.size()); + unsigned NumStackIds = RadixArray[RadixIndex++]; + StackIdList.reserve(NumStackIds); + while (NumStackIds--) { + assert(RadixIndex < RadixArray.size()); + unsigned Elem = RadixArray[RadixIndex]; + if (static_cast>(Elem) < 0) { + RadixIndex = RadixIndex - Elem; + assert(RadixIndex < RadixArray.size()); + Elem = RadixArray[RadixIndex]; + // We shouldn't encounter a second offset in a row. + assert(static_cast>(Elem) >= 0); + } + RadixIndex++; + StackIdList.push_back(TheIndex.addOrGetStackIdIndex(StackIds[Elem])); + } + } + return StackIdList; +} + static void setSpecialRefs(SmallVectorImpl &Refs, unsigned ROCnt, unsigned WOCnt) { // Readonly and writeonly refs are in the end of the refs list. @@ -8010,6 +8058,11 @@ Error ModuleSummaryIndexBitcodeReader::parseEntireSummary(unsigned ID) { break; } + case bitc::FS_CONTEXT_RADIX_TREE_ARRAY: { // [n x entry] + RadixArray = ArrayRef(Record); + break; + } + case bitc::FS_PERMODULE_CALLSITE_INFO: { unsigned ValueID = Record[0]; SmallVector StackIdList; @@ -8065,14 +8118,7 @@ Error ModuleSummaryIndexBitcodeReader::parseEntireSummary(unsigned ID) { (Version < 10 && I < Record.size())) { assert(Record.size() - I >= 2); AllocationType AllocType = (AllocationType)Record[I++]; - unsigned NumStackEntries = Record[I++]; - assert(Record.size() - I >= NumStackEntries); - SmallVector StackIdList; - for (unsigned J = 0; J < NumStackEntries; J++) { - assert(Record[I] < StackIds.size()); - StackIdList.push_back( - TheIndex.addOrGetStackIdIndex(StackIds[Record[I++]])); - } + auto StackIdList = parseAllocInfoContext(Record, I); MIBs.push_back(MIBInfo(AllocType, std::move(StackIdList))); } // We either have nothing left or at least NumMIBs context size info @@ -8123,14 +8169,7 @@ Error ModuleSummaryIndexBitcodeReader::parseEntireSummary(unsigned ID) { while (MIBsRead++ < NumMIBs) { assert(Record.size() - I >= 2); AllocationType AllocType = (AllocationType)Record[I++]; - unsigned NumStackEntries = Record[I++]; - assert(Record.size() - I >= NumStackEntries); - SmallVector StackIdList; - for (unsigned J = 0; J < NumStackEntries; J++) { - assert(Record[I] < StackIds.size()); - StackIdList.push_back( - TheIndex.addOrGetStackIdIndex(StackIds[Record[I++]])); - } + auto StackIdList = parseAllocInfoContext(Record, I); MIBs.push_back(MIBInfo(AllocType, std::move(StackIdList))); } assert(Record.size() - I >= NumVersions); diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp index 80e12bef502ac..63f4e34074e06 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -60,6 +60,7 @@ #include "llvm/MC/StringTableBuilder.h" #include "llvm/MC/TargetRegistry.h" #include "llvm/Object/IRSymtab.h" +#include "llvm/ProfileData/MemProf.h" #include "llvm/Support/AtomicOrdering.h" #include "llvm/Support/Casting.h" #include "llvm/Support/CommandLine.h" @@ -83,6 +84,7 @@ #include using namespace llvm; +using namespace llvm::memprof; static cl::opt IndexThreshold("bitcode-mdindex-threshold", cl::Hidden, cl::init(25), @@ -231,7 +233,8 @@ class ModuleBitcodeWriterBase : public BitcodeWriterBase { SmallVector &NameVals, GlobalValueSummary *Summary, unsigned ValueID, unsigned FSCallsAbbrev, unsigned FSCallsProfileAbbrev, unsigned CallsiteAbbrev, unsigned AllocAbbrev, unsigned ContextIdAbbvId, - const Function &F); + const Function &F, DenseMap &CallStackPos, + CallStackId &CallStackCount); void writeModuleLevelReferences(const GlobalVariable &V, SmallVector &NameVals, unsigned FSModRefsAbbrev, @@ -4165,7 +4168,7 @@ static void writeWholeProgramDevirtResolution( static void writeTypeIdSummaryRecord(SmallVector &NameVals, StringTableBuilder &StrtabBuilder, - const std::string &Id, + StringRef Id, const TypeIdSummary &Summary) { NameVals.push_back(StrtabBuilder.add(Id)); NameVals.push_back(Id.size()); @@ -4184,7 +4187,7 @@ static void writeTypeIdSummaryRecord(SmallVector &NameVals, static void writeTypeIdCompatibleVtableSummaryRecord( SmallVector &NameVals, StringTableBuilder &StrtabBuilder, - const std::string &Id, const TypeIdCompatibleVtableInfo &Summary, + StringRef Id, const TypeIdCompatibleVtableInfo &Summary, ValueEnumerator &VE) { NameVals.push_back(StrtabBuilder.add(Id)); NameVals.push_back(Id.size()); @@ -4195,12 +4198,58 @@ static void writeTypeIdCompatibleVtableSummaryRecord( } } +// Adds the allocation contexts to the CallStacks map. We simply use the +// size at the time the context was added as the CallStackId. This works because +// when we look up the call stacks later on we process the function summaries +// and their allocation records in the same exact order. +static void collectMemProfCallStacks( + FunctionSummary *FS, std::function GetStackIndex, + MapVector> &CallStacks) { + // The interfaces in ProfileData/MemProf.h use a type alias for a stack frame + // id offset into the index of the full stack frames. The ModuleSummaryIndex + // currently uses unsigned. Make sure these stay in sync. + static_assert(std::is_same_v); + for (auto &AI : FS->allocs()) { + for (auto &MIB : AI.MIBs) { + SmallVector StackIdIndices; + StackIdIndices.reserve(MIB.StackIdIndices.size()); + for (auto Id : MIB.StackIdIndices) + StackIdIndices.push_back(GetStackIndex(Id)); + // The CallStackId is the size at the time this context was inserted. + CallStacks.insert({CallStacks.size(), StackIdIndices}); + } + } +} + +// Build the radix tree from the accumulated CallStacks, write out the resulting +// linearized radix tree array, and return the map of call stack positions into +// this array for use when writing the allocation records. The returned map is +// indexed by a CallStackId which in this case is implicitly determined by the +// order of function summaries and their allocation infos being written. +static DenseMap writeMemoryProfileRadixTree( + MapVector> &&CallStacks, + BitstreamWriter &Stream, unsigned RadixAbbrev) { + assert(!CallStacks.empty()); + DenseMap FrameHistogram = + computeFrameHistogram(CallStacks); + CallStackRadixTreeBuilder Builder; + // We don't need a MemProfFrameIndexes map as we have already converted the + // full stack id hash to a linear offset into the StackIds array. + Builder.build(std::move(CallStacks), /*MemProfFrameIndexes=*/nullptr, + FrameHistogram); + Stream.EmitRecord(bitc::FS_CONTEXT_RADIX_TREE_ARRAY, Builder.getRadixArray(), + RadixAbbrev); + return Builder.takeCallStackPos(); +} + static void writeFunctionHeapProfileRecords( BitstreamWriter &Stream, FunctionSummary *FS, unsigned CallsiteAbbrev, unsigned AllocAbbrev, unsigned ContextIdAbbvId, bool PerModule, std::function GetValueID, std::function GetStackIndex, - bool WriteContextSizeInfoIndex) { + bool WriteContextSizeInfoIndex, + DenseMap &CallStackPos, + CallStackId &CallStackCount) { SmallVector Record; for (auto &CI : FS->callsites()) { @@ -4234,9 +4283,9 @@ static void writeFunctionHeapProfileRecords( Record.push_back(AI.Versions.size()); for (auto &MIB : AI.MIBs) { Record.push_back((uint8_t)MIB.AllocType); - Record.push_back(MIB.StackIdIndices.size()); - for (auto Id : MIB.StackIdIndices) - Record.push_back(GetStackIndex(Id)); + // Record the index into the radix tree array for this context. + assert(CallStackCount <= CallStackPos.size()); + Record.push_back(CallStackPos[CallStackCount++]); } if (!PerModule) { for (auto V : AI.Versions) @@ -4282,7 +4331,9 @@ void ModuleBitcodeWriterBase::writePerModuleFunctionSummaryRecord( SmallVector &NameVals, GlobalValueSummary *Summary, unsigned ValueID, unsigned FSCallsRelBFAbbrev, unsigned FSCallsProfileAbbrev, unsigned CallsiteAbbrev, - unsigned AllocAbbrev, unsigned ContextIdAbbvId, const Function &F) { + unsigned AllocAbbrev, unsigned ContextIdAbbvId, const Function &F, + DenseMap &CallStackPos, + CallStackId &CallStackCount) { NameVals.push_back(ValueID); FunctionSummary *FS = cast(Summary); @@ -4297,7 +4348,7 @@ void ModuleBitcodeWriterBase::writePerModuleFunctionSummaryRecord( /*PerModule*/ true, /*GetValueId*/ [&](const ValueInfo &VI) { return getValueId(VI); }, /*GetStackIndex*/ [&](unsigned I) { return I; }, - /*WriteContextSizeInfoIndex*/ true); + /*WriteContextSizeInfoIndex*/ true, CallStackPos, CallStackCount); auto SpecialRefCnts = FS->specialRefCounts(); NameVals.push_back(getEncodedGVSummaryFlags(FS->flags())); @@ -4530,12 +4581,54 @@ void ModuleBitcodeWriterBase::writePerModuleGlobalValueSummary() { Abbv = std::make_shared(); Abbv->Add(BitCodeAbbrevOp(bitc::FS_PERMODULE_ALLOC_INFO)); Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 4)); // nummib - // n x (alloc type, numstackids, numstackids x stackidindex) + // n x (alloc type, context radix tree index) // optional: nummib x (numcontext x total size) Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array)); Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); unsigned AllocAbbrev = Stream.EmitAbbrev(std::move(Abbv)); + Abbv = std::make_shared(); + Abbv->Add(BitCodeAbbrevOp(bitc::FS_CONTEXT_RADIX_TREE_ARRAY)); + // n x entry + Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array)); + Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); + unsigned RadixAbbrev = Stream.EmitAbbrev(std::move(Abbv)); + + // First walk through all the functions and collect the allocation contexts in + // their associated summaries, for use in constructing a radix tree of + // contexts. Note that we need to do this in the same order as the functions + // are processed further below since the call stack positions in the resulting + // radix tree array are identified based on this order. + MapVector> CallStacks; + for (const Function &F : M) { + // Summary emission does not support anonymous functions, they have to be + // renamed using the anonymous function renaming pass. + if (!F.hasName()) + report_fatal_error("Unexpected anonymous function when writing summary"); + + ValueInfo VI = Index->getValueInfo(F.getGUID()); + if (!VI || VI.getSummaryList().empty()) { + // Only declarations should not have a summary (a declaration might + // however have a summary if the def was in module level asm). + assert(F.isDeclaration()); + continue; + } + auto *Summary = VI.getSummaryList()[0].get(); + FunctionSummary *FS = cast(Summary); + collectMemProfCallStacks( + FS, /*GetStackIndex*/ [](unsigned I) { return I; }, CallStacks); + } + // Finalize the radix tree, write it out, and get the map of positions in the + // linearized tree array. + DenseMap CallStackPos; + if (!CallStacks.empty()) { + CallStackPos = + writeMemoryProfileRadixTree(std::move(CallStacks), Stream, RadixAbbrev); + } + + // Keep track of the current index into the CallStackPos map. + CallStackId CallStackCount = 0; + SmallVector NameVals; // Iterate over the list of functions instead of the Index to // ensure the ordering is stable. @@ -4555,7 +4648,8 @@ void ModuleBitcodeWriterBase::writePerModuleGlobalValueSummary() { auto *Summary = VI.getSummaryList()[0].get(); writePerModuleFunctionSummaryRecord( NameVals, Summary, VE.getValueID(&F), FSCallsRelBFAbbrev, - FSCallsProfileAbbrev, CallsiteAbbrev, AllocAbbrev, ContextIdAbbvId, F); + FSCallsProfileAbbrev, CallsiteAbbrev, AllocAbbrev, ContextIdAbbvId, F, + CallStackPos, CallStackCount); } // Capture references from GlobalVariable initializers, which are outside @@ -4692,13 +4786,20 @@ void IndexBitcodeWriter::writeCombinedGlobalValueSummary() { Abbv->Add(BitCodeAbbrevOp(bitc::FS_COMBINED_ALLOC_INFO)); Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 4)); // nummib Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 4)); // numver - // nummib x (alloc type, numstackids, numstackids x stackidindex), + // nummib x (alloc type, context radix tree index), // numver x version // optional: nummib x total size Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array)); Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); unsigned AllocAbbrev = Stream.EmitAbbrev(std::move(Abbv)); + Abbv = std::make_shared(); + Abbv->Add(BitCodeAbbrevOp(bitc::FS_CONTEXT_RADIX_TREE_ARRAY)); + // n x entry + Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array)); + Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); + unsigned RadixAbbrev = Stream.EmitAbbrev(std::move(Abbv)); + auto shouldImportValueAsDecl = [&](GlobalValueSummary *GVS) -> bool { if (DecSummaries == nullptr) return false; @@ -4735,6 +4836,41 @@ void IndexBitcodeWriter::writeCombinedGlobalValueSummary() { NameVals.clear(); }; + // First walk through all the functions and collect the allocation contexts in + // their associated summaries, for use in constructing a radix tree of + // contexts. Note that we need to do this in the same order as the functions + // are processed further below since the call stack positions in the resulting + // radix tree array are identified based on this order. + MapVector> CallStacks; + forEachSummary([&](GVInfo I, bool IsAliasee) { + GlobalValueSummary *S = I.second; + assert(S); + auto *FS = dyn_cast(S); + if (!FS) + return; + collectMemProfCallStacks( + FS, + /*GetStackIndex*/ + [&](unsigned I) { + // Get the corresponding index into the list of StackIds actually + // being written for this combined index (which may be a subset in + // the case of distributed indexes). + assert(StackIdIndicesToIndex.contains(I)); + return StackIdIndicesToIndex[I]; + }, + CallStacks); + }); + // Finalize the radix tree, write it out, and get the map of positions in the + // linearized tree array. + DenseMap CallStackPos; + if (!CallStacks.empty()) { + CallStackPos = + writeMemoryProfileRadixTree(std::move(CallStacks), Stream, RadixAbbrev); + } + + // Keep track of the current index into the CallStackPos map. + CallStackId CallStackCount = 0; + DenseSet DefOrUseGUIDs; forEachSummary([&](GVInfo I, bool IsAliasee) { GlobalValueSummary *S = I.second; @@ -4813,7 +4949,7 @@ void IndexBitcodeWriter::writeCombinedGlobalValueSummary() { assert(StackIdIndicesToIndex.contains(I)); return StackIdIndicesToIndex[I]; }, - /*WriteContextSizeInfoIndex*/ false); + /*WriteContextSizeInfoIndex*/ false, CallStackPos, CallStackCount); NameVals.push_back(*ValueId); assert(ModuleIdMap.count(FS->modulePath())); diff --git a/llvm/lib/Bitcode/Writer/CMakeLists.txt b/llvm/lib/Bitcode/Writer/CMakeLists.txt index 1cc1802bc9aaf..2c508ca9fae95 100644 --- a/llvm/lib/Bitcode/Writer/CMakeLists.txt +++ b/llvm/lib/Bitcode/Writer/CMakeLists.txt @@ -12,6 +12,7 @@ add_llvm_component_library(LLVMBitWriter Core MC Object + ProfileData Support TargetParser ) diff --git a/llvm/lib/CGData/StableFunctionMap.cpp b/llvm/lib/CGData/StableFunctionMap.cpp index fe7be0c0b6e7b..4afe77d78a4fe 100644 --- a/llvm/lib/CGData/StableFunctionMap.cpp +++ b/llvm/lib/CGData/StableFunctionMap.cpp @@ -14,6 +14,7 @@ //===----------------------------------------------------------------------===// #include "llvm/CGData/StableFunctionMap.h" +#include "llvm/ADT/SmallSet.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Debug.h" @@ -35,21 +36,30 @@ static cl::opt GlobalMergingMaxParams( cl::desc( "The maximum number of parameters allowed when merging functions."), cl::init(std::numeric_limits::max()), cl::Hidden); -static cl::opt GlobalMergingParamOverhead( +static cl::opt GlobalMergingSkipNoParams( + "global-merging-skip-no-params", + cl::desc("Skip merging functions with no parameters."), cl::init(true), + cl::Hidden); +static cl::opt GlobalMergingInstOverhead( + "global-merging-inst-overhead", + cl::desc("The overhead cost associated with each instruction when lowering " + "to machine instruction."), + cl::init(1.2), cl::Hidden); +static cl::opt GlobalMergingParamOverhead( "global-merging-param-overhead", cl::desc("The overhead cost associated with each parameter when merging " "functions."), - cl::init(2), cl::Hidden); -static cl::opt + cl::init(2.0), cl::Hidden); +static cl::opt GlobalMergingCallOverhead("global-merging-call-overhead", cl::desc("The overhead cost associated with each " "function call when merging functions."), - cl::init(1), cl::Hidden); -static cl::opt GlobalMergingExtraThreshold( + cl::init(1.0), cl::Hidden); +static cl::opt GlobalMergingExtraThreshold( "global-merging-extra-threshold", cl::desc("An additional cost threshold that must be exceeded for merging " "to be considered beneficial."), - cl::init(0), cl::Hidden); + cl::init(0.0), cl::Hidden); unsigned StableFunctionMap::getIdOrCreateForName(StringRef Name) { auto It = NameToId.find(Name); @@ -160,21 +170,32 @@ static bool isProfitable( if (InstCount < GlobalMergingMinInstrs) return false; - unsigned ParamCount = SFS[0]->IndexOperandHashMap->size(); - if (ParamCount > GlobalMergingMaxParams) - return false; - - unsigned Benefit = InstCount * (StableFunctionCount - 1); - unsigned Cost = - (GlobalMergingParamOverhead * ParamCount + GlobalMergingCallOverhead) * - StableFunctionCount + - GlobalMergingExtraThreshold; + double Cost = 0.0; + SmallSet UniqueHashVals; + for (auto &SF : SFS) { + UniqueHashVals.clear(); + for (auto &[IndexPair, Hash] : *SF->IndexOperandHashMap) + UniqueHashVals.insert(Hash); + unsigned ParamCount = UniqueHashVals.size(); + if (ParamCount > GlobalMergingMaxParams) + return false; + // Theoretically, if ParamCount is 0, it results in identical code folding + // (ICF), which we can skip merging here since the linker already handles + // ICF. This pass would otherwise introduce unnecessary thunks that are + // merely direct jumps. However, enabling this could be beneficial depending + // on downstream passes, so we provide an option for it. + if (GlobalMergingSkipNoParams && ParamCount == 0) + return false; + Cost += ParamCount * GlobalMergingParamOverhead + GlobalMergingCallOverhead; + } + Cost += GlobalMergingExtraThreshold; + double Benefit = + InstCount * (StableFunctionCount - 1) * GlobalMergingInstOverhead; bool Result = Benefit > Cost; LLVM_DEBUG(dbgs() << "isProfitable: Hash = " << SFS[0]->Hash << ", " << "StableFunctionCount = " << StableFunctionCount << ", InstCount = " << InstCount - << ", ParamCount = " << ParamCount << ", Benefit = " << Benefit << ", Cost = " << Cost << ", Result = " << (Result ? "true" : "false") << "\n"); return Result; diff --git a/llvm/lib/CodeGen/Analysis.cpp b/llvm/lib/CodeGen/Analysis.cpp index f77b733c6c8f6..e7b9417de8c9f 100644 --- a/llvm/lib/CodeGen/Analysis.cpp +++ b/llvm/lib/CodeGen/Analysis.cpp @@ -596,10 +596,10 @@ bool llvm::attributesPermitTailCall(const Function *F, const Instruction *I, // Following attributes are completely benign as far as calling convention // goes, they shouldn't affect whether the call is a tail call. - for (const auto &Attr : - {Attribute::Alignment, Attribute::Dereferenceable, - Attribute::DereferenceableOrNull, Attribute::NoAlias, - Attribute::NonNull, Attribute::NoUndef, Attribute::Range}) { + for (const auto &Attr : {Attribute::Alignment, Attribute::Dereferenceable, + Attribute::DereferenceableOrNull, Attribute::NoAlias, + Attribute::NonNull, Attribute::NoUndef, + Attribute::Range, Attribute::NoFPClass}) { CallerAttrs.removeAttribute(Attr); CalleeAttrs.removeAttribute(Attr); } diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index ff9be3dc24ce5..3072edc5088e2 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -161,6 +161,13 @@ static cl::bits PgoAnalysisMapFeatures( "Enable extended information within the SHT_LLVM_BB_ADDR_MAP that is " "extracted from PGO related analysis.")); +static cl::opt BBAddrMapSkipEmitBBEntries( + "basic-block-address-map-skip-bb-entries", + cl::desc("Skip emitting basic block entries in the SHT_LLVM_BB_ADDR_MAP " + "section. It's used to save binary size when BB entries are " + "unnecessary for some PGOAnalysisMap features."), + cl::Hidden, cl::init(false)); + static cl::opt EmitJumpTableSizesSection( "emit-jump-table-sizes-section", cl::desc("Emit a section containing jump table addresses and sizes"), @@ -1411,8 +1418,15 @@ getBBAddrMapFeature(const MachineFunction &MF, int NumMBBSectionRanges) { bool BrProbEnabled = AllFeatures || (!NoFeatures && PgoAnalysisMapFeatures.isSet(PGOMapFeaturesEnum::BrProb)); + + if ((BBFreqEnabled || BrProbEnabled) && BBAddrMapSkipEmitBBEntries) { + MF.getFunction().getContext().emitError( + "BB entries info is required for BBFreq and BrProb " + "features"); + } return {FuncEntryCountEnabled, BBFreqEnabled, BrProbEnabled, - MF.hasBBSections() && NumMBBSectionRanges > 1}; + MF.hasBBSections() && NumMBBSectionRanges > 1, + static_cast(BBAddrMapSkipEmitBBEntries)}; } void AsmPrinter::emitBBAddrMapSection(const MachineFunction &MF) { @@ -1469,24 +1483,28 @@ void AsmPrinter::emitBBAddrMapSection(const MachineFunction &MF) { OutStreamer->emitULEB128IntValue(MBBSectionNumBlocks[MBB.getSectionID()]); PrevMBBEndSymbol = MBBSymbol; } - // TODO: Remove this check when version 1 is deprecated. - if (BBAddrMapVersion > 1) { - OutStreamer->AddComment("BB id"); - // Emit the BB ID for this basic block. - // We only emit BaseID since CloneID is unset for - // -basic-block-adress-map. - // TODO: Emit the full BBID when labels and sections can be mixed - // together. - OutStreamer->emitULEB128IntValue(MBB.getBBID()->BaseID); + + if (!Features.OmitBBEntries) { + // TODO: Remove this check when version 1 is deprecated. + if (BBAddrMapVersion > 1) { + OutStreamer->AddComment("BB id"); + // Emit the BB ID for this basic block. + // We only emit BaseID since CloneID is unset for + // -basic-block-adress-map. + // TODO: Emit the full BBID when labels and sections can be mixed + // together. + OutStreamer->emitULEB128IntValue(MBB.getBBID()->BaseID); + } + // Emit the basic block offset relative to the end of the previous block. + // This is zero unless the block is padded due to alignment. + emitLabelDifferenceAsULEB128(MBBSymbol, PrevMBBEndSymbol); + // Emit the basic block size. When BBs have alignments, their size cannot + // always be computed from their offsets. + emitLabelDifferenceAsULEB128(MBB.getEndSymbol(), MBBSymbol); + // Emit the Metadata. + OutStreamer->emitULEB128IntValue(getBBAddrMapMetadata(MBB)); } - // Emit the basic block offset relative to the end of the previous block. - // This is zero unless the block is padded due to alignment. - emitLabelDifferenceAsULEB128(MBBSymbol, PrevMBBEndSymbol); - // Emit the basic block size. When BBs have alignments, their size cannot - // always be computed from their offsets. - emitLabelDifferenceAsULEB128(MBB.getEndSymbol(), MBBSymbol); - // Emit the Metadata. - OutStreamer->emitULEB128IntValue(getBBAddrMapMetadata(MBB)); + PrevMBBEndSymbol = MBB.getEndSymbol(); } diff --git a/llvm/lib/CodeGen/EdgeBundles.cpp b/llvm/lib/CodeGen/EdgeBundles.cpp index d3d2bfc616eb5..f433539698349 100644 --- a/llvm/lib/CodeGen/EdgeBundles.cpp +++ b/llvm/lib/CodeGen/EdgeBundles.cpp @@ -26,20 +26,35 @@ static cl::opt ViewEdgeBundles("view-edge-bundles", cl::Hidden, cl::desc("Pop up a window to show edge bundle graphs")); -char EdgeBundles::ID = 0; +char EdgeBundlesWrapperLegacy::ID = 0; -INITIALIZE_PASS(EdgeBundles, "edge-bundles", "Bundle Machine CFG Edges", - /* cfg = */true, /* is_analysis = */ true) +INITIALIZE_PASS(EdgeBundlesWrapperLegacy, "edge-bundles", + "Bundle Machine CFG Edges", + /* cfg = */ true, /* is_analysis = */ true) -char &llvm::EdgeBundlesID = EdgeBundles::ID; +char &llvm::EdgeBundlesWrapperLegacyID = EdgeBundlesWrapperLegacy::ID; -void EdgeBundles::getAnalysisUsage(AnalysisUsage &AU) const { +void EdgeBundlesWrapperLegacy::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); MachineFunctionPass::getAnalysisUsage(AU); } -bool EdgeBundles::runOnMachineFunction(MachineFunction &mf) { - MF = &mf; +AnalysisKey EdgeBundlesAnalysis::Key; + +EdgeBundles EdgeBundlesAnalysis::run(MachineFunction &MF, + MachineFunctionAnalysisManager &MFAM) { + EdgeBundles Impl(MF); + return Impl; +} + +bool EdgeBundlesWrapperLegacy::runOnMachineFunction(MachineFunction &MF) { + Impl.reset(new EdgeBundles(MF)); + return false; +} + +EdgeBundles::EdgeBundles(MachineFunction &MF) : MF(&MF) { init(); } + +void EdgeBundles::init() { EC.clear(); EC.grow(2 * MF->getNumBlockIDs()); @@ -64,8 +79,6 @@ bool EdgeBundles::runOnMachineFunction(MachineFunction &mf) { if (b1 != b0) Blocks[b1].push_back(i); } - - return false; } namespace llvm { @@ -100,3 +113,11 @@ raw_ostream &WriteGraph<>(raw_ostream &O, const EdgeBundles &G, void EdgeBundles::view() const { ViewGraph(*this, "EdgeBundles"); } + +bool EdgeBundles::invalidate(MachineFunction &MF, const PreservedAnalyses &PA, + MachineFunctionAnalysisManager::Invalidator &Inv) { + // Invalidated when CFG is not preserved + auto PAC = PA.getChecker(); + return !PAC.preserved() && !PAC.preservedSet() && + !PAC.preservedSet>(); +} diff --git a/llvm/lib/CodeGen/ExpandVectorPredication.cpp b/llvm/lib/CodeGen/ExpandVectorPredication.cpp index 4274c1347d648..5ca223852cbde 100644 --- a/llvm/lib/CodeGen/ExpandVectorPredication.cpp +++ b/llvm/lib/CodeGen/ExpandVectorPredication.cpp @@ -175,8 +175,7 @@ struct CachingVPExpander { VPIntrinsic &PI); /// Lower this VP int call to a unpredicated int call. - Value *expandPredicationToIntCall(IRBuilder<> &Builder, VPIntrinsic &PI, - unsigned UnpredicatedIntrinsicID); + Value *expandPredicationToIntCall(IRBuilder<> &Builder, VPIntrinsic &PI); /// Lower this VP fp call to a unpredicated fp call. Value *expandPredicationToFPCall(IRBuilder<> &Builder, VPIntrinsic &PI, @@ -287,33 +286,19 @@ CachingVPExpander::expandPredicationInBinaryOperator(IRBuilder<> &Builder, return NewBinOp; } -Value *CachingVPExpander::expandPredicationToIntCall( - IRBuilder<> &Builder, VPIntrinsic &VPI, unsigned UnpredicatedIntrinsicID) { - switch (UnpredicatedIntrinsicID) { - case Intrinsic::abs: - case Intrinsic::smax: - case Intrinsic::smin: - case Intrinsic::umax: - case Intrinsic::umin: { - Value *Op0 = VPI.getOperand(0); - Value *Op1 = VPI.getOperand(1); - Value *NewOp = Builder.CreateIntrinsic( - UnpredicatedIntrinsicID, {VPI.getType()}, {Op0, Op1}, - /*FMFSource=*/nullptr, VPI.getName()); - replaceOperation(*NewOp, VPI); - return NewOp; - } - case Intrinsic::bswap: - case Intrinsic::bitreverse: { - Value *Op = VPI.getOperand(0); - Value *NewOp = - Builder.CreateIntrinsic(UnpredicatedIntrinsicID, {VPI.getType()}, {Op}, - /*FMFSource=*/nullptr, VPI.getName()); - replaceOperation(*NewOp, VPI); - return NewOp; - } +Value *CachingVPExpander::expandPredicationToIntCall(IRBuilder<> &Builder, + VPIntrinsic &VPI) { + std::optional FID = VPI.getFunctionalIntrinsicID(); + if (!FID) + return nullptr; + SmallVector Argument; + for (unsigned i = 0; i < VPI.getNumOperands() - 3; i++) { + Argument.push_back(VPI.getOperand(i)); } - return nullptr; + Value *NewOp = Builder.CreateIntrinsic(FID.value(), {VPI.getType()}, Argument, + /*FMFSource=*/nullptr, VPI.getName()); + replaceOperation(*NewOp, VPI); + return NewOp; } Value *CachingVPExpander::expandPredicationToFPCall( @@ -323,20 +308,15 @@ Value *CachingVPExpander::expandPredicationToFPCall( switch (UnpredicatedIntrinsicID) { case Intrinsic::fabs: - case Intrinsic::sqrt: { - Value *Op0 = VPI.getOperand(0); - Value *NewOp = - Builder.CreateIntrinsic(UnpredicatedIntrinsicID, {VPI.getType()}, {Op0}, - /*FMFSource=*/nullptr, VPI.getName()); - replaceOperation(*NewOp, VPI); - return NewOp; - } + case Intrinsic::sqrt: case Intrinsic::maxnum: case Intrinsic::minnum: { - Value *Op0 = VPI.getOperand(0); - Value *Op1 = VPI.getOperand(1); + SmallVector Argument; + for (unsigned i = 0; i < VPI.getNumOperands() - 3; i++) { + Argument.push_back(VPI.getOperand(i)); + } Value *NewOp = Builder.CreateIntrinsic( - UnpredicatedIntrinsicID, {VPI.getType()}, {Op0, Op1}, + UnpredicatedIntrinsicID, {VPI.getType()}, Argument, /*FMFSource=*/nullptr, VPI.getName()); replaceOperation(*NewOp, VPI); return NewOp; @@ -438,56 +418,13 @@ CachingVPExpander::expandPredicationInReduction(IRBuilder<> &Builder, Value *CachingVPExpander::expandPredicationToCastIntrinsic(IRBuilder<> &Builder, VPIntrinsic &VPI) { - Value *CastOp = nullptr; - switch (VPI.getIntrinsicID()) { - default: - llvm_unreachable("Not a VP cast intrinsic"); - case Intrinsic::vp_sext: - CastOp = - Builder.CreateSExt(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - case Intrinsic::vp_zext: - CastOp = - Builder.CreateZExt(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - case Intrinsic::vp_trunc: - CastOp = - Builder.CreateTrunc(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - case Intrinsic::vp_inttoptr: - CastOp = - Builder.CreateIntToPtr(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - case Intrinsic::vp_ptrtoint: - CastOp = - Builder.CreatePtrToInt(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - case Intrinsic::vp_fptosi: - CastOp = - Builder.CreateFPToSI(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; + Intrinsic::ID VPID = VPI.getIntrinsicID(); + unsigned CastOpcode = VPIntrinsic::getFunctionalOpcodeForVP(VPID).value(); + assert(Instruction::isCast(CastOpcode)); + Value *CastOp = + Builder.CreateCast(Instruction::CastOps(CastOpcode), VPI.getOperand(0), + VPI.getType(), VPI.getName()); - case Intrinsic::vp_fptoui: - CastOp = - Builder.CreateFPToUI(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - case Intrinsic::vp_sitofp: - CastOp = - Builder.CreateSIToFP(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - case Intrinsic::vp_uitofp: - CastOp = - Builder.CreateUIToFP(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - case Intrinsic::vp_fptrunc: - CastOp = - Builder.CreateFPTrunc(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - case Intrinsic::vp_fpext: - CastOp = - Builder.CreateFPExt(VPI.getOperand(0), VPI.getType(), VPI.getName()); - break; - } replaceOperation(*CastOp, VPI); return CastOp; } @@ -672,8 +609,7 @@ Value *CachingVPExpander::expandPredication(VPIntrinsic &VPI) { case Intrinsic::vp_umin: case Intrinsic::vp_bswap: case Intrinsic::vp_bitreverse: - return expandPredicationToIntCall(Builder, VPI, - VPI.getFunctionalIntrinsicID().value()); + return expandPredicationToIntCall(Builder, VPI); case Intrinsic::vp_fabs: case Intrinsic::vp_sqrt: case Intrinsic::vp_maxnum: diff --git a/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp b/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp index a700d866afa4e..30cd3ce3baa50 100644 --- a/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp +++ b/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp @@ -148,9 +148,8 @@ void GISelKnownBits::computeKnownBitsImpl(Register R, KnownBits &Known, LLT DstTy = MRI.getType(R); // Handle the case where this is called on a register that does not have a - // type constraint (i.e. it has a register class constraint instead). This is - // unlikely to occur except by looking through copies but it is possible for - // the initial register being queried to be in this state. + // type constraint. For example, it may be post-ISel or this target might not + // preserve the type when early-selecting instructions. if (!DstTy.isValid()) { Known = KnownBits(); return; @@ -537,7 +536,7 @@ void GISelKnownBits::computeKnownBitsImpl(Register R, KnownBits &Known, computeKnownBitsImpl(SrcReg, SrcOpKnown, SubDemandedElts, Depth + 1); if (SrcTy.isVector()) - Known = SrcOpKnown; + Known = std::move(SrcOpKnown); else Known = SrcOpKnown.extractBits(BitWidth, BitWidth * DstIdx); break; diff --git a/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp b/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp index b7541effafe5c..30c2d089c3121 100644 --- a/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp +++ b/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp @@ -101,6 +101,12 @@ LegalityPredicate LegalityPredicates::isPointer(unsigned TypeIdx, }; } +LegalityPredicate LegalityPredicates::isPointerVector(unsigned TypeIdx) { + return [=](const LegalityQuery &Query) { + return Query.Types[TypeIdx].isPointerVector(); + }; +} + LegalityPredicate LegalityPredicates::elementTypeIs(unsigned TypeIdx, LLT EltTy) { return [=](const LegalityQuery &Query) { diff --git a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp index 062dbbe904de3..abfca50a22bf1 100644 --- a/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp +++ b/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp @@ -499,6 +499,8 @@ static RTLIB::Libcall getRTLibDesc(unsigned Opcode, unsigned Size) { RTLIBCASE(LLRINT_F); } llvm_unreachable("Unknown libcall function"); +#undef RTLIBCASE_INT +#undef RTLIBCASE } /// True if an instruction is in tail position in its caller. Intended for @@ -3697,6 +3699,41 @@ LegalizerHelper::bitcastConcatVector(MachineInstr &MI, unsigned TypeIdx, return Legalized; } +// This bitcasts a shuffle vector to a different type currently of the same +// element size. Mostly used to legalize ptr vectors, where ptrtoint/inttoptr +// will be used instead. +// +// <16 x p0> = G_CONCAT_VECTORS <4 x p0>, <4 x p0>, mask +// ===> +// <4 x s64> = G_PTRTOINT <4 x p0> +// <4 x s64> = G_PTRTOINT <4 x p0> +// <16 x s64> = G_CONCAT_VECTORS <4 x s64>, <4 x s64>, mask +// <16 x p0> = G_INTTOPTR <16 x s64> +LegalizerHelper::LegalizeResult +LegalizerHelper::bitcastShuffleVector(MachineInstr &MI, unsigned TypeIdx, + LLT CastTy) { + auto ShuffleMI = cast(&MI); + LLT DstTy = MRI.getType(ShuffleMI->getReg(0)); + LLT SrcTy = MRI.getType(ShuffleMI->getReg(1)); + + // We currently only handle vectors of the same size. + if (TypeIdx != 0 || + CastTy.getScalarSizeInBits() != DstTy.getScalarSizeInBits() || + CastTy.getElementCount() != DstTy.getElementCount()) + return UnableToLegalize; + + LLT NewSrcTy = SrcTy.changeElementType(CastTy.getScalarType()); + + auto Inp1 = MIRBuilder.buildCast(NewSrcTy, ShuffleMI->getReg(1)); + auto Inp2 = MIRBuilder.buildCast(NewSrcTy, ShuffleMI->getReg(2)); + auto Shuf = + MIRBuilder.buildShuffleVector(CastTy, Inp1, Inp2, ShuffleMI->getMask()); + MIRBuilder.buildCast(ShuffleMI->getReg(0), Shuf); + + MI.eraseFromParent(); + return Legalized; +} + /// This attempts to bitcast G_EXTRACT_SUBVECTOR to CastTy. /// /// = G_EXTRACT_SUBVECTOR , N @@ -4133,6 +4170,8 @@ LegalizerHelper::bitcast(MachineInstr &MI, unsigned TypeIdx, LLT CastTy) { return bitcastInsertVectorElt(MI, TypeIdx, CastTy); case TargetOpcode::G_CONCAT_VECTORS: return bitcastConcatVector(MI, TypeIdx, CastTy); + case TargetOpcode::G_SHUFFLE_VECTOR: + return bitcastShuffleVector(MI, TypeIdx, CastTy); case TargetOpcode::G_EXTRACT_SUBVECTOR: return bitcastExtractSubvector(MI, TypeIdx, CastTy); case TargetOpcode::G_INSERT_SUBVECTOR: diff --git a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp index d910e33ac40f6..be347006a81f9 100644 --- a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp +++ b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp @@ -600,12 +600,13 @@ MachineInstrBuilder MachineIRBuilder::buildCast(const DstOp &Dst, return buildCopy(Dst, Src); unsigned Opcode; - if (SrcTy.isPointer() && DstTy.isScalar()) + if (SrcTy.isPointerOrPointerVector()) Opcode = TargetOpcode::G_PTRTOINT; - else if (DstTy.isPointer() && SrcTy.isScalar()) + else if (DstTy.isPointerOrPointerVector()) Opcode = TargetOpcode::G_INTTOPTR; else { - assert(!SrcTy.isPointer() && !DstTy.isPointer() && "n G_ADDRCAST yet"); + assert(!SrcTy.isPointerOrPointerVector() && + !DstTy.isPointerOrPointerVector() && "no G_ADDRCAST yet"); Opcode = TargetOpcode::G_BITCAST; } diff --git a/llvm/lib/CodeGen/GlobalMergeFunctions.cpp b/llvm/lib/CodeGen/GlobalMergeFunctions.cpp index c8f1b98c9a18e..470582885fab0 100644 --- a/llvm/lib/CodeGen/GlobalMergeFunctions.cpp +++ b/llvm/lib/CodeGen/GlobalMergeFunctions.cpp @@ -405,12 +405,13 @@ static ParamLocsVecTy computeParamInfo( } ParamLocsVecTy ParamLocsVec; - for (auto &[HashSeq, Locs] : HashSeqToLocs) { + for (auto &[HashSeq, Locs] : HashSeqToLocs) ParamLocsVec.push_back(std::move(Locs)); - llvm::sort(ParamLocsVec, [&](const ParamLocs &L, const ParamLocs &R) { - return L[0] < R[0]; - }); - } + + llvm::sort(ParamLocsVec, [&](const ParamLocs &L, const ParamLocs &R) { + return L[0] < R[0]; + }); + return ParamLocsVec; } diff --git a/llvm/lib/CodeGen/InitUndef.cpp b/llvm/lib/CodeGen/InitUndef.cpp index d8b3190f31003..d4ac131a32a95 100644 --- a/llvm/lib/CodeGen/InitUndef.cpp +++ b/llvm/lib/CodeGen/InitUndef.cpp @@ -164,14 +164,6 @@ bool InitUndef::handleSubReg(MachineFunction &MF, MachineInstr &MI, TRI->getCoveringSubRegIndexes(*MRI, TargetRegClass, NeedDef, SubRegIndexNeedInsert); - // It's not possible to create the INIT_UNDEF when there is no register - // class associated for the subreg. This may happen for artificial subregs - // that are not directly addressable. - if (any_of(SubRegIndexNeedInsert, [&](unsigned Ind) -> bool { - return !TRI->getSubRegisterClass(TargetRegClass, Ind); - })) - continue; - Register LatestReg = Reg; for (auto ind : SubRegIndexNeedInsert) { Changed = true; diff --git a/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp b/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp index a9d28a39c4418..748dd0ca9858e 100644 --- a/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp +++ b/llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp @@ -2927,7 +2927,7 @@ std::optional InstrRefBasedLDV::pickOperandPHILoc( SmallVector NewCandidates; std::set_intersection(CandidateLocs.begin(), CandidateLocs.end(), LocVec.begin(), LocVec.end(), std::inserter(NewCandidates, NewCandidates.begin())); - CandidateLocs = NewCandidates; + CandidateLocs = std::move(NewCandidates); } if (CandidateLocs.empty()) return std::nullopt; diff --git a/llvm/lib/CodeGen/MIRPrinter.cpp b/llvm/lib/CodeGen/MIRPrinter.cpp index 658bbe0e577e5..c8f6341c1224d 100644 --- a/llvm/lib/CodeGen/MIRPrinter.cpp +++ b/llvm/lib/CodeGen/MIRPrinter.cpp @@ -345,7 +345,7 @@ void MIRPrinter::convert(yaml::MachineFunction &YamlMF, if (PreferredReg) printRegMIR(PreferredReg, VReg.PreferredRegister, TRI); printRegFlags(Reg, VReg.RegisterFlags, MF, TRI); - YamlMF.VirtualRegisters.push_back(VReg); + YamlMF.VirtualRegisters.push_back(std::move(VReg)); } // Print the live ins. @@ -354,7 +354,7 @@ void MIRPrinter::convert(yaml::MachineFunction &YamlMF, printRegMIR(LI.first, LiveIn.Register, TRI); if (LI.second) printRegMIR(LI.second, LiveIn.VirtualRegister, TRI); - YamlMF.LiveIns.push_back(LiveIn); + YamlMF.LiveIns.push_back(std::move(LiveIn)); } // Prints the callee saved registers. @@ -364,9 +364,9 @@ void MIRPrinter::convert(yaml::MachineFunction &YamlMF, for (const MCPhysReg *I = CalleeSavedRegs; *I; ++I) { yaml::FlowStringValue Reg; printRegMIR(*I, Reg, TRI); - CalleeSavedRegisters.push_back(Reg); + CalleeSavedRegisters.push_back(std::move(Reg)); } - YamlMF.CalleeSavedRegisters = CalleeSavedRegisters; + YamlMF.CalleeSavedRegisters = std::move(CalleeSavedRegisters); } } diff --git a/llvm/lib/CodeGen/MachineFunctionSplitter.cpp b/llvm/lib/CodeGen/MachineFunctionSplitter.cpp index ba0015d3ddacb..c31454a8affda 100644 --- a/llvm/lib/CodeGen/MachineFunctionSplitter.cpp +++ b/llvm/lib/CodeGen/MachineFunctionSplitter.cpp @@ -28,6 +28,7 @@ #include "llvm/Analysis/EHUtils.h" #include "llvm/Analysis/ProfileSummaryInfo.h" #include "llvm/CodeGen/BasicBlockSectionUtils.h" +#include "llvm/CodeGen/BasicBlockSectionsProfileReader.h" #include "llvm/CodeGen/MachineBasicBlock.h" #include "llvm/CodeGen/MachineBlockFrequencyInfo.h" #include "llvm/CodeGen/MachineFunction.h" @@ -128,6 +129,9 @@ static bool isColdBlock(const MachineBasicBlock &MBB, } bool MachineFunctionSplitter::runOnMachineFunction(MachineFunction &MF) { + // Do not split functions when -basic-block-sections=all is specified. + if (MF.getTarget().getBBSectionsType() == llvm::BasicBlockSection::All) + return false; // We target functions with profile data. Static information in the form // of exception handling code may be split to cold if user passes the // mfs-split-ehcode flag. @@ -139,6 +143,14 @@ bool MachineFunctionSplitter::runOnMachineFunction(MachineFunction &MF) { if (!TII.isFunctionSafeToSplit(MF)) return false; + // Do not split functions with BasicBlockSections profiles as they will + // be split by the BasicBlockSections pass. + auto BBSectionsProfile = + getAnalysisIfAvailable(); + if (BBSectionsProfile != nullptr && + BBSectionsProfile->getBBSPR().isFunctionHot(MF.getName())) + return false; + // Renumbering blocks here preserves the order of the blocks as // sortBasicBlocksAndUpdateBranches uses the numeric identifier to sort // blocks. Preserving the order of blocks is essential to retaining decisions @@ -201,6 +213,7 @@ void MachineFunctionSplitter::getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired(); AU.addRequired(); AU.addRequired(); + AU.addUsedIfAvailable(); } char MachineFunctionSplitter::ID = 0; diff --git a/llvm/lib/CodeGen/MachineLICM.cpp b/llvm/lib/CodeGen/MachineLICM.cpp index 48c901b8d06d6..d21059189b184 100644 --- a/llvm/lib/CodeGen/MachineLICM.cpp +++ b/llvm/lib/CodeGen/MachineLICM.cpp @@ -151,7 +151,7 @@ namespace { if (Inserted) { SmallVector ExitBlocks; CurLoop->getExitBlocks(ExitBlocks); - It->second = ExitBlocks; + It->second = std::move(ExitBlocks); } return is_contained(It->second, MBB); } @@ -1501,7 +1501,7 @@ void MachineLICMImpl::InitializeLoadsHoistableLoops() { if (!AllowedToHoistLoads[Loop]) continue; for (auto &MI : *MBB) { - if (!MI.mayStore() && !MI.isCall() && + if (!MI.isLoadFoldBarrier() && !MI.mayStore() && !MI.isCall() && !(MI.mayLoad() && MI.hasOrderedMemoryRef())) continue; for (MachineLoop *L = Loop; L != nullptr; L = L->getParentLoop()) diff --git a/llvm/lib/CodeGen/MachineSink.cpp b/llvm/lib/CodeGen/MachineSink.cpp index 0def107f6306d..7d0bedab7cdab 100644 --- a/llvm/lib/CodeGen/MachineSink.cpp +++ b/llvm/lib/CodeGen/MachineSink.cpp @@ -958,7 +958,9 @@ bool MachineSinking::isWorthBreakingCriticalEdge( } } - return false; + // Let the target decide if it's worth breaking this + // critical edge for a "cheap" instruction. + return TII->shouldBreakCriticalEdgeToSink(MI); } bool MachineSinking::isLegalToBreakCriticalEdge(MachineInstr &MI, diff --git a/llvm/lib/CodeGen/MachineVerifier.cpp b/llvm/lib/CodeGen/MachineVerifier.cpp index 3910046a1652b..b08a93ae9a6d5 100644 --- a/llvm/lib/CodeGen/MachineVerifier.cpp +++ b/llvm/lib/CodeGen/MachineVerifier.cpp @@ -3033,7 +3033,11 @@ void MachineVerifier::checkLiveness(const MachineOperand *MO, unsigned MONum) { if (!MOP.getReg().isPhysical()) continue; - if (llvm::is_contained(TRI->subregs(MOP.getReg()), Reg)) + if (MOP.getReg() != Reg && + all_of(TRI->regunits(Reg), [&](const MCRegUnit RegUnit) { + return llvm::is_contained(TRI->regunits(MOP.getReg()), + RegUnit); + })) Bad = false; } } diff --git a/llvm/lib/CodeGen/RegAllocGreedy.cpp b/llvm/lib/CodeGen/RegAllocGreedy.cpp index 80f7af1eaebbe..3542bfe18af46 100644 --- a/llvm/lib/CodeGen/RegAllocGreedy.cpp +++ b/llvm/lib/CodeGen/RegAllocGreedy.cpp @@ -161,7 +161,7 @@ INITIALIZE_PASS_DEPENDENCY(MachineDominatorTreeWrapperPass) INITIALIZE_PASS_DEPENDENCY(MachineLoopInfoWrapperPass) INITIALIZE_PASS_DEPENDENCY(VirtRegMapWrapperLegacy) INITIALIZE_PASS_DEPENDENCY(LiveRegMatrixWrapperLegacy) -INITIALIZE_PASS_DEPENDENCY(EdgeBundles) +INITIALIZE_PASS_DEPENDENCY(EdgeBundlesWrapperLegacy) INITIALIZE_PASS_DEPENDENCY(SpillPlacement) INITIALIZE_PASS_DEPENDENCY(MachineOptimizationRemarkEmitterPass) INITIALIZE_PASS_DEPENDENCY(RegAllocEvictionAdvisorAnalysis) @@ -216,7 +216,7 @@ void RAGreedy::getAnalysisUsage(AnalysisUsage &AU) const { AU.addPreserved(); AU.addRequired(); AU.addPreserved(); - AU.addRequired(); + AU.addRequired(); AU.addRequired(); AU.addRequired(); AU.addRequired(); @@ -2730,7 +2730,7 @@ bool RAGreedy::runOnMachineFunction(MachineFunction &mf) { DomTree = &getAnalysis().getDomTree(); ORE = &getAnalysis().getORE(); Loops = &getAnalysis().getLI(); - Bundles = &getAnalysis(); + Bundles = &getAnalysis().getEdgeBundles(); SpillPlacer = &getAnalysis(); DebugVars = &getAnalysis(); diff --git a/llvm/lib/CodeGen/RegisterCoalescer.cpp b/llvm/lib/CodeGen/RegisterCoalescer.cpp index 073ce367af1b8..2e1f498c090d1 100644 --- a/llvm/lib/CodeGen/RegisterCoalescer.cpp +++ b/llvm/lib/CodeGen/RegisterCoalescer.cpp @@ -1374,27 +1374,6 @@ bool RegisterCoalescer::reMaterializeTrivialDef(const CoalescerPair &CP, MachineInstr &NewMI = *std::prev(MII); NewMI.setDebugLoc(DL); - // In a situation like the following: - // - // undef %2.subreg:reg = INST %1:reg ; DefMI (rematerializable), - // ; DefSubIdx = subreg - // %3:reg = COPY %2 ; SrcIdx = DstIdx = 0 - // .... = SOMEINSTR %3:reg - // - // there are no subranges for %3 so after rematerialization we need - // to explicitly create them. Undefined subranges are removed later on. - if (DstReg.isVirtual() && DefSubIdx && !CP.getSrcIdx() && !CP.getDstIdx() && - MRI->shouldTrackSubRegLiveness(DstReg)) { - LiveInterval &DstInt = LIS->getInterval(DstReg); - if (!DstInt.hasSubRanges()) { - LaneBitmask FullMask = MRI->getMaxLaneMaskForVReg(DstReg); - LaneBitmask UsedLanes = TRI->getSubRegIndexLaneMask(DefSubIdx); - LaneBitmask UnusedLanes = FullMask & ~UsedLanes; - DstInt.createSubRangeFrom(LIS->getVNInfoAllocator(), UsedLanes, DstInt); - DstInt.createSubRangeFrom(LIS->getVNInfoAllocator(), UnusedLanes, DstInt); - } - } - // In a situation like the following: // %0:subreg = instr ; DefMI, subreg = DstIdx // %1 = copy %0:subreg ; CopyMI, SrcIdx = 0 @@ -1507,7 +1486,6 @@ bool RegisterCoalescer::reMaterializeTrivialDef(const CoalescerPair &CP, NewRC = TRI->getCommonSubClass(NewRC, DefRC); assert(NewRC && "subreg chosen for remat incompatible with instruction"); } - // Remap subranges to new lanemask and change register class. LiveInterval &DstInt = LIS->getInterval(DstReg); for (LiveInterval::SubRange &SR : DstInt.subranges()) { diff --git a/llvm/lib/CodeGen/ReplaceWithVeclib.cpp b/llvm/lib/CodeGen/ReplaceWithVeclib.cpp index 7f3c5cf6cb443..8d457f58e6eed 100644 --- a/llvm/lib/CodeGen/ReplaceWithVeclib.cpp +++ b/llvm/lib/CodeGen/ReplaceWithVeclib.cpp @@ -110,7 +110,8 @@ static bool replaceWithCallToVeclib(const TargetLibraryInfo &TLI, // OloadTys collects types used in scalar intrinsic overload name. SmallVector OloadTys; - if (!RetTy->isVoidTy() && isVectorIntrinsicWithOverloadTypeAtArg(IID, -1)) + if (!RetTy->isVoidTy() && + isVectorIntrinsicWithOverloadTypeAtArg(IID, -1, /*TTI=*/nullptr)) OloadTys.push_back(ScalarRetTy); // Compute the argument types of the corresponding scalar call and check that @@ -118,7 +119,8 @@ static bool replaceWithCallToVeclib(const TargetLibraryInfo &TLI, SmallVector ScalarArgTypes; for (auto Arg : enumerate(II->args())) { auto *ArgTy = Arg.value()->getType(); - bool IsOloadTy = isVectorIntrinsicWithOverloadTypeAtArg(IID, Arg.index()); + bool IsOloadTy = isVectorIntrinsicWithOverloadTypeAtArg(IID, Arg.index(), + /*TTI=*/nullptr); if (isVectorIntrinsicWithScalarOpAtArg(IID, Arg.index())) { ScalarArgTypes.push_back(ArgTy); if (IsOloadTy) diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index 6059229cd6d9a..521829675ae7c 100644 --- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -149,6 +149,11 @@ static cl::opt EnableVectorFCopySignExtendRound( cl::desc( "Enable merging extends and rounds into FCOPYSIGN on vector types")); +static cl::opt + MaxSteps("has-predecessor-max-steps", cl::Hidden, cl::init(8192), + cl::desc("DAG combiner limit number of steps when searching DAG " + "for predecessor nodes")); + namespace { class DAGCombiner { @@ -18911,7 +18916,6 @@ bool DAGCombiner::CombineToPreIndexedLoadStore(SDNode *N) { // can be folded with this one. We should do this to avoid having to keep // a copy of the original base pointer. SmallVector OtherUses; - constexpr unsigned int MaxSteps = 8192; if (isa(Offset)) for (SDNode::use_iterator UI = BasePtr->use_begin(), UE = BasePtr->use_end(); @@ -19089,7 +19093,7 @@ static bool shouldCombineToPostInc(SDNode *N, SDValue Ptr, SDNode *PtrUse, IsMasked, OtherPtr, TLI)) { SmallVector Worklist; Worklist.push_back(Use); - if (SDNode::hasPredecessorHelper(N, Visited, Worklist)) + if (SDNode::hasPredecessorHelper(N, Visited, Worklist, MaxSteps)) return false; } } @@ -19130,7 +19134,6 @@ static SDNode *getPostIndexedLoadStoreOp(SDNode *N, bool &IsLoad, // Check for #2. SmallPtrSet Visited; SmallVector Worklist; - constexpr unsigned int MaxSteps = 8192; // Ptr is predecessor to both N and Op. Visited.insert(Ptr.getNode()); Worklist.push_back(N); diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 1480bd98c685e..63536336e9622 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -2330,10 +2330,10 @@ SDValue SelectionDAGLegalize::expandLdexp(SDNode *Node) const { const APFloat::ExponentType MinExpVal = APFloat::semanticsMinExponent(FltSem); const int Precision = APFloat::semanticsPrecision(FltSem); - const SDValue MaxExp = DAG.getConstant(MaxExpVal, dl, ExpVT); - const SDValue MinExp = DAG.getConstant(MinExpVal, dl, ExpVT); + const SDValue MaxExp = DAG.getSignedConstant(MaxExpVal, dl, ExpVT); + const SDValue MinExp = DAG.getSignedConstant(MinExpVal, dl, ExpVT); - const SDValue DoubleMaxExp = DAG.getConstant(2 * MaxExpVal, dl, ExpVT); + const SDValue DoubleMaxExp = DAG.getSignedConstant(2 * MaxExpVal, dl, ExpVT); const APFloat One(FltSem, "1.0"); APFloat ScaleUpK = scalbn(One, MaxExpVal, APFloat::rmNearestTiesToEven); @@ -2375,7 +2375,7 @@ SDValue SelectionDAGLegalize::expandLdexp(SDNode *Node) const { SDValue IncN0 = DAG.getNode(ISD::ADD, dl, ExpVT, N, Increment0, NUW_NSW); SDValue ClampMinVal = - DAG.getConstant(3 * MinExpVal + 2 * Precision, dl, ExpVT); + DAG.getSignedConstant(3 * MinExpVal + 2 * Precision, dl, ExpVT); SDValue ClampN_Small = DAG.getNode(ISD::SMAX, dl, ExpVT, N, ClampMinVal); SDValue IncN1 = DAG.getNode(ISD::ADD, dl, ExpVT, ClampN_Small, Increment1, NSW); @@ -2385,8 +2385,8 @@ SDValue SelectionDAGLegalize::expandLdexp(SDNode *Node) const { SDValue ScaleDown1 = DAG.getNode(ISD::FMUL, dl, VT, ScaleDown0, ScaleDownVal); SDValue ScaleDownTwice = DAG.getSetCC( - dl, SetCCVT, N, DAG.getConstant(2 * MinExpVal + Precision, dl, ExpVT), - ISD::SETULT); + dl, SetCCVT, N, + DAG.getSignedConstant(2 * MinExpVal + Precision, dl, ExpVT), ISD::SETULT); SDValue SelectN_Small = DAG.getNode(ISD::SELECT, dl, ExpVT, ScaleDownTwice, IncN1, IncN0); @@ -5277,7 +5277,7 @@ void SelectionDAGLegalize::PromoteNode(SDNode *Node) { Tmp1 = DAG.getNode(TruncOp, dl, Node->getValueType(0), Tmp1); else Tmp1 = DAG.getNode(TruncOp, dl, Node->getValueType(0), Tmp1, - DAG.getIntPtrConstant(0, dl)); + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); Results.push_back(Tmp1); break; } @@ -5425,7 +5425,8 @@ void SelectionDAGLegalize::PromoteNode(SDNode *Node) { Tmp1 = DAG.getNode(Node->getOpcode(), dl, {NVT, MVT::Other}, {Tmp3, Tmp1, Tmp2}); Tmp1 = DAG.getNode(ISD::STRICT_FP_ROUND, dl, {OVT, MVT::Other}, - {Tmp1.getValue(1), Tmp1, DAG.getIntPtrConstant(0, dl)}); + {Tmp1.getValue(1), Tmp1, + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}); Results.push_back(Tmp1); Results.push_back(Tmp1.getValue(1)); break; @@ -5450,7 +5451,8 @@ void SelectionDAGLegalize::PromoteNode(SDNode *Node) { Tmp4 = DAG.getNode(Node->getOpcode(), dl, {NVT, MVT::Other}, {Tmp4, Tmp1, Tmp2, Tmp3}); Tmp4 = DAG.getNode(ISD::STRICT_FP_ROUND, dl, {OVT, MVT::Other}, - {Tmp4.getValue(1), Tmp4, DAG.getIntPtrConstant(0, dl)}); + {Tmp4.getValue(1), Tmp4, + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}); Results.push_back(Tmp4); Results.push_back(Tmp4.getValue(1)); break; @@ -5472,13 +5474,27 @@ void SelectionDAGLegalize::PromoteNode(SDNode *Node) { DAG.getIntPtrConstant(isTrunc, dl, /*isTarget=*/true))); break; } + case ISD::STRICT_FLDEXP: { + Tmp1 = DAG.getNode(ISD::STRICT_FP_EXTEND, dl, {NVT, MVT::Other}, + {Node->getOperand(0), Node->getOperand(1)}); + Tmp2 = Node->getOperand(2); + Tmp3 = DAG.getNode(ISD::STRICT_FLDEXP, dl, {NVT, MVT::Other}, + {Tmp1.getValue(1), Tmp1, Tmp2}); + Tmp4 = DAG.getNode(ISD::STRICT_FP_ROUND, dl, {OVT, MVT::Other}, + {Tmp3.getValue(1), Tmp3, + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}); + Results.push_back(Tmp4); + Results.push_back(Tmp4.getValue(1)); + break; + } case ISD::STRICT_FPOWI: Tmp1 = DAG.getNode(ISD::STRICT_FP_EXTEND, dl, {NVT, MVT::Other}, {Node->getOperand(0), Node->getOperand(1)}); Tmp2 = DAG.getNode(Node->getOpcode(), dl, {NVT, MVT::Other}, {Tmp1.getValue(1), Tmp1, Node->getOperand(2)}); Tmp3 = DAG.getNode(ISD::STRICT_FP_ROUND, dl, {OVT, MVT::Other}, - {Tmp2.getValue(1), Tmp2, DAG.getIntPtrConstant(0, dl)}); + {Tmp2.getValue(1), Tmp2, + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}); Results.push_back(Tmp3); Results.push_back(Tmp3.getValue(1)); break; @@ -5562,7 +5578,8 @@ void SelectionDAGLegalize::PromoteNode(SDNode *Node) { Tmp2 = DAG.getNode(Node->getOpcode(), dl, {NVT, MVT::Other}, {Tmp1.getValue(1), Tmp1}); Tmp3 = DAG.getNode(ISD::STRICT_FP_ROUND, dl, {OVT, MVT::Other}, - {Tmp2.getValue(1), Tmp2, DAG.getIntPtrConstant(0, dl)}); + {Tmp2.getValue(1), Tmp2, + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}); Results.push_back(Tmp3); Results.push_back(Tmp3.getValue(1)); break; diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp index 648719bcabc37..7b9f544a5f9a4 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp @@ -2577,6 +2577,7 @@ SDValue DAGTypeLegalizer::PromoteIntOp_ExpOp(SDNode *N) { bool IsPowI = N->getOpcode() == ISD::FPOWI || N->getOpcode() == ISD::STRICT_FPOWI; + unsigned OpOffset = IsStrict ? 1 : 0; // The integer operand is the last operand in FPOWI (or FLDEXP) (so the result // and floating point operand is already type legalized). @@ -2584,8 +2585,9 @@ SDValue DAGTypeLegalizer::PromoteIntOp_ExpOp(SDNode *N) { : RTLIB::getLDEXP(N->getValueType(0)); if (LC == RTLIB::UNKNOWN_LIBCALL || !TLI.getLibcallName(LC)) { - SDValue Op = SExtPromotedInteger(N->getOperand(1)); - return SDValue(DAG.UpdateNodeOperands(N, N->getOperand(0), Op), 0); + SmallVector NewOps(N->ops()); + NewOps[1 + OpOffset] = SExtPromotedInteger(N->getOperand(1 + OpOffset)); + return SDValue(DAG.UpdateNodeOperands(N, NewOps), 0); } // We can't just promote the exponent type in FPOWI, since we want to lower @@ -2594,7 +2596,6 @@ SDValue DAGTypeLegalizer::PromoteIntOp_ExpOp(SDNode *N) { // we rewrite to a libcall here directly, letting makeLibCall handle promotion // if the target accepts it according to shouldSignExtendTypeInLibCall. - unsigned OpOffset = IsStrict ? 1 : 0; // The exponent should fit in a sizeof(int) type for the libcall to be valid. assert(DAG.getLibInfo().getIntSize() == N->getOperand(1 + OpOffset).getValueType().getSizeInBits() && diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp index eccda73548e87..465128099f444 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp @@ -3235,6 +3235,7 @@ bool DAGTypeLegalizer::SplitVectorOperand(SDNode *N, unsigned OpNo) { case ISD::VP_SETCC: case ISD::STRICT_FSETCC: + case ISD::STRICT_FSETCCS: case ISD::SETCC: Res = SplitVecOp_VSETCC(N); break; case ISD::BITCAST: Res = SplitVecOp_BITCAST(N); break; case ISD::EXTRACT_SUBVECTOR: Res = SplitVecOp_EXTRACT_SUBVECTOR(N); break; @@ -4236,7 +4237,8 @@ SDValue DAGTypeLegalizer::SplitVecOp_TruncateHelper(SDNode *N) { } SDValue DAGTypeLegalizer::SplitVecOp_VSETCC(SDNode *N) { - bool isStrict = N->getOpcode() == ISD::STRICT_FSETCC; + unsigned Opc = N->getOpcode(); + bool isStrict = Opc == ISD::STRICT_FSETCC || Opc == ISD::STRICT_FSETCCS; assert(N->getValueType(0).isVector() && N->getOperand(isStrict ? 1 : 0).getValueType().isVector() && "Operand types must be vectors"); @@ -4252,21 +4254,19 @@ SDValue DAGTypeLegalizer::SplitVecOp_VSETCC(SDNode *N) { EVT PartResVT = EVT::getVectorVT(Context, MVT::i1, PartEltCnt); EVT WideResVT = EVT::getVectorVT(Context, MVT::i1, PartEltCnt*2); - if (N->getOpcode() == ISD::SETCC) { + if (Opc == ISD::SETCC) { LoRes = DAG.getNode(ISD::SETCC, DL, PartResVT, Lo0, Lo1, N->getOperand(2)); HiRes = DAG.getNode(ISD::SETCC, DL, PartResVT, Hi0, Hi1, N->getOperand(2)); - } else if (N->getOpcode() == ISD::STRICT_FSETCC) { - LoRes = DAG.getNode(ISD::STRICT_FSETCC, DL, - DAG.getVTList(PartResVT, N->getValueType(1)), + } else if (isStrict) { + LoRes = DAG.getNode(Opc, DL, DAG.getVTList(PartResVT, N->getValueType(1)), N->getOperand(0), Lo0, Lo1, N->getOperand(3)); - HiRes = DAG.getNode(ISD::STRICT_FSETCC, DL, - DAG.getVTList(PartResVT, N->getValueType(1)), + HiRes = DAG.getNode(Opc, DL, DAG.getVTList(PartResVT, N->getValueType(1)), N->getOperand(0), Hi0, Hi1, N->getOperand(3)); SDValue NewChain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, LoRes.getValue(1), HiRes.getValue(1)); ReplaceValueWith(SDValue(N, 1), NewChain); } else { - assert(N->getOpcode() == ISD::VP_SETCC && "Expected VP_SETCC opcode"); + assert(Opc == ISD::VP_SETCC && "Expected VP_SETCC opcode"); SDValue MaskLo, MaskHi, EVLLo, EVLHi; std::tie(MaskLo, MaskHi) = SplitMask(N->getOperand(3)); std::tie(EVLLo, EVLHi) = diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 3a8ec3c6105bc..7c5ed04830b16 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -1460,7 +1460,7 @@ SelectionDAG::getStrictFPExtendOrRound(SDValue Op, SDValue Chain, VT.bitsGT(Op.getValueType()) ? getNode(ISD::STRICT_FP_EXTEND, DL, {VT, MVT::Other}, {Chain, Op}) : getNode(ISD::STRICT_FP_ROUND, DL, {VT, MVT::Other}, - {Chain, Op, getIntPtrConstant(0, DL)}); + {Chain, Op, getIntPtrConstant(0, DL, /*isTarget=*/true)}); return std::pair(Res, SDValue(Res.getNode(), 1)); } @@ -7355,11 +7355,10 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, EVT VT, return N1; break; case ISD::FP_ROUND: - assert(VT.isFloatingPoint() && - N1.getValueType().isFloatingPoint() && - VT.bitsLE(N1.getValueType()) && - N2C && (N2C->getZExtValue() == 0 || N2C->getZExtValue() == 1) && - "Invalid FP_ROUND!"); + assert(VT.isFloatingPoint() && N1.getValueType().isFloatingPoint() && + VT.bitsLE(N1.getValueType()) && N2C && + (N2C->getZExtValue() == 0 || N2C->getZExtValue() == 1) && + N2.getOpcode() == ISD::TargetConstant && "Invalid FP_ROUND!"); if (N1.getValueType() == VT) return N1; // noop conversion. break; case ISD::AssertSext: @@ -10542,7 +10541,7 @@ SDValue SelectionDAG::getNode(unsigned Opcode, const SDLoc &DL, SDVTList VTList, assert(VTList.VTs[0].isFloatingPoint() && Ops[1].getValueType().isFloatingPoint() && VTList.VTs[0].bitsLT(Ops[1].getValueType()) && - isa(Ops[2]) && + Ops[2].getOpcode() == ISD::TargetConstant && (Ops[2]->getAsZExtVal() == 0 || Ops[2]->getAsZExtVal() == 1) && "Invalid STRICT_FP_ROUND!"); break; diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp index 8fbab337cab6f..bd4bcadb57d7a 100644 --- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -61,10 +61,10 @@ bool TargetLowering::isInTailCallPosition(SelectionDAG &DAG, SDNode *Node, // the return. Ignore following attributes because they don't affect the // call sequence. AttrBuilder CallerAttrs(F.getContext(), F.getAttributes().getRetAttrs()); - for (const auto &Attr : - {Attribute::Alignment, Attribute::Dereferenceable, - Attribute::DereferenceableOrNull, Attribute::NoAlias, - Attribute::NonNull, Attribute::NoUndef, Attribute::Range}) + for (const auto &Attr : {Attribute::Alignment, Attribute::Dereferenceable, + Attribute::DereferenceableOrNull, Attribute::NoAlias, + Attribute::NonNull, Attribute::NoUndef, + Attribute::Range, Attribute::NoFPClass}) CallerAttrs.removeAttribute(Attr); if (CallerAttrs.hasAttributes()) diff --git a/llvm/lib/CodeGen/SpillPlacement.cpp b/llvm/lib/CodeGen/SpillPlacement.cpp index 9f91ee4934159..318e2b19322bb 100644 --- a/llvm/lib/CodeGen/SpillPlacement.cpp +++ b/llvm/lib/CodeGen/SpillPlacement.cpp @@ -50,14 +50,14 @@ char &llvm::SpillPlacementID = SpillPlacement::ID; INITIALIZE_PASS_BEGIN(SpillPlacement, DEBUG_TYPE, "Spill Code Placement Analysis", true, true) -INITIALIZE_PASS_DEPENDENCY(EdgeBundles) +INITIALIZE_PASS_DEPENDENCY(EdgeBundlesWrapperLegacy) INITIALIZE_PASS_END(SpillPlacement, DEBUG_TYPE, "Spill Code Placement Analysis", true, true) void SpillPlacement::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); AU.addRequired(); - AU.addRequiredTransitive(); + AU.addRequiredTransitive(); MachineFunctionPass::getAnalysisUsage(AU); } @@ -191,7 +191,7 @@ struct SpillPlacement::Node { bool SpillPlacement::runOnMachineFunction(MachineFunction &mf) { MF = &mf; - bundles = &getAnalysis(); + bundles = &getAnalysis().getEdgeBundles(); assert(!nodes && "Leaking node array"); nodes = new Node[bundles->getNumBundles()]; diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp index a6159a38753cf..d407e9f0871d4 100644 --- a/llvm/lib/CodeGen/TargetPassConfig.cpp +++ b/llvm/lib/CodeGen/TargetPassConfig.cpp @@ -1235,13 +1235,13 @@ void TargetPassConfig::addMachinePasses() { addPass(createMIRAddFSDiscriminatorsPass( sampleprof::FSDiscriminatorPass::PassLast)); - bool NeedsBBSections = - TM->getBBSectionsType() != llvm::BasicBlockSection::None; - // Machine function splitter uses the basic block sections feature. Both - // cannot be enabled at the same time. We do not apply machine function - // splitter if -basic-block-sections is requested. - if (!NeedsBBSections && (TM->Options.EnableMachineFunctionSplitter || - EnableMachineFunctionSplitter)) { + // Machine function splitter uses the basic block sections feature. + // When used along with `-basic-block-sections=`, the basic-block-sections + // feature takes precedence. This means functions eligible for + // basic-block-sections optimizations (`=all`, or `=list=` with function + // included in the list profile) will get that optimization instead. + if (TM->Options.EnableMachineFunctionSplitter || + EnableMachineFunctionSplitter) { const std::string ProfileFile = getFSProfileFile(TM); if (!ProfileFile.empty()) { if (EnableFSDiscriminator) { @@ -1260,7 +1260,8 @@ void TargetPassConfig::addMachinePasses() { } // We run the BasicBlockSections pass if either we need BB sections or BB // address map (or both). - if (NeedsBBSections || TM->Options.BBAddrMap) { + if (TM->getBBSectionsType() != llvm::BasicBlockSection::None || + TM->Options.BBAddrMap) { if (TM->getBBSectionsType() == llvm::BasicBlockSection::List) { addPass(llvm::createBasicBlockSectionsProfileReaderWrapperPass( TM->getBBSectionsFuncListBuf())); diff --git a/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp b/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp index a0ce7810f91b0..dcce484a7a37e 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp @@ -413,15 +413,6 @@ bool DWARFDie::addressRangeContainsAddress(const uint64_t Address) const { return false; } -std::optional DWARFDie::getLanguage() const { - if (isValid()) { - if (std::optional LV = - U->getUnitDIE().find(dwarf::DW_AT_language)) - return LV->getAsUnsignedConstant(); - } - return std::nullopt; -} - Expected DWARFDie::getLocations(dwarf::Attribute Attr) const { std::optional Location = find(Attr); diff --git a/llvm/lib/ExecutionEngine/JITLink/ELF_loongarch.cpp b/llvm/lib/ExecutionEngine/JITLink/ELF_loongarch.cpp index aa9385fcb183d..42fcfebd12d61 100644 --- a/llvm/lib/ExecutionEngine/JITLink/ELF_loongarch.cpp +++ b/llvm/lib/ExecutionEngine/JITLink/ELF_loongarch.cpp @@ -68,6 +68,8 @@ class ELFLinkGraphBuilder_loongarch : public ELFLinkGraphBuilder { return RequestGOTAndTransformToPage20; case ELF::R_LARCH_GOT_PC_LO12: return RequestGOTAndTransformToPageOffset12; + case ELF::R_LARCH_CALL36: + return Call36PCRel; } return make_error( diff --git a/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp b/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp index 125c6373f82d9..6a947828a5e61 100644 --- a/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp +++ b/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp @@ -28,8 +28,8 @@ class MachOLinkGraphBuilder_arm64 : public MachOLinkGraphBuilder { public: MachOLinkGraphBuilder_arm64(const object::MachOObjectFile &Obj, SubtargetFeatures Features) - : MachOLinkGraphBuilder(Obj, Triple("arm64-apple-darwin"), - std::move(Features), aarch64::getEdgeKindName), + : MachOLinkGraphBuilder(Obj, getObjectTriple(Obj), std::move(Features), + aarch64::getEdgeKindName), NumSymbols(Obj.getSymtabLoadCommand().nsyms) {} private: @@ -38,6 +38,7 @@ class MachOLinkGraphBuilder_arm64 : public MachOLinkGraphBuilder { MachOPointer32, MachOPointer64, MachOPointer64Anon, + MachOPointer64Authenticated, MachOPage21, MachOPageOffset12, MachOGOTPage21, @@ -53,6 +54,18 @@ class MachOLinkGraphBuilder_arm64 : public MachOLinkGraphBuilder { MachONegDelta64, }; + static Triple getObjectTriple(const object::MachOObjectFile &Obj) { + // Get the CPU sub-type from the header. + // jitLink_MachO should already have validated that the buffer is big enough + // to cover a mach_header64 so this is safe. + uint32_t CPUSubType = + *(const support::ulittle32_t *)(Obj.getData().data() + 8); + CPUSubType &= ~MachO::CPU_SUBTYPE_MASK; + if (CPUSubType == MachO::CPU_SUBTYPE_ARM64E) + return Triple("arm64e-apple-darwin"); + return Triple("arm64-apple-darwin"); + } + static Expected getRelocationKind(const MachO::relocation_info &RI) { switch (RI.r_type) { @@ -103,6 +116,10 @@ class MachOLinkGraphBuilder_arm64 : public MachOLinkGraphBuilder { if (!RI.r_pcrel && !RI.r_extern && RI.r_length == 2) return MachOPairedAddend; break; + case MachO::ARM64_RELOC_AUTHENTICATED_POINTER: + if (!RI.r_pcrel && RI.r_extern && RI.r_length == 3) + return MachOPointer64Authenticated; + break; case MachO::ARM64_RELOC_TLVP_LOAD_PAGE21: if (RI.r_pcrel && RI.r_extern && RI.r_length == 2) return MachOTLVPage21; @@ -366,12 +383,15 @@ class MachOLinkGraphBuilder_arm64 : public MachOLinkGraphBuilder { Kind = aarch64::Pointer32; break; case MachOPointer64: + case MachOPointer64Authenticated: if (auto TargetSymbolOrErr = findSymbolByIndex(RI.r_symbolnum)) TargetSymbol = TargetSymbolOrErr->GraphSymbol; else return TargetSymbolOrErr.takeError(); Addend = *(const ulittle64_t *)FixupContent; - Kind = aarch64::Pointer64; + Kind = *MachORelocKind == MachOPointer64 + ? aarch64::Pointer64 + : aarch64::Pointer64Authenticated; break; case MachOPointer64Anon: { orc::ExecutorAddr TargetAddress(*(const ulittle64_t *)FixupContent); @@ -493,6 +513,8 @@ class MachOLinkGraphBuilder_arm64 : public MachOLinkGraphBuilder { return "MachOPointer64"; case MachOPointer64Anon: return "MachOPointer64Anon"; + case MachOPointer64Authenticated: + return "MachOPointer64Authenticated"; case MachOPage21: return "MachOPage21"; case MachOPageOffset12: @@ -572,6 +594,35 @@ createLinkGraphFromMachOObject_arm64(MemoryBufferRef ObjectBuffer) { .buildGraph(); } +static Error applyPACSigningToModInitPointers(LinkGraph &G) { + assert(G.getTargetTriple().getSubArch() == Triple::AArch64SubArch_arm64e && + "PAC signing only valid for arm64e"); + + if (auto *ModInitSec = G.findSectionByName("__DATA,__mod_init_func")) { + for (auto *B : ModInitSec->blocks()) { + for (auto &E : B->edges()) { + if (E.getKind() == aarch64::Pointer64) { + + // Check that we have room to encode pointer signing bits. + if (E.getAddend() >> 32) + return make_error( + "In " + G.getName() + ", __mod_init_func pointer at " + + formatv("{0:x}", B->getFixupAddress(E).getValue()) + + " has data in high bits of addend (addend >= 2^32)"); + + // Change edge to Pointer64Authenticated, encode signing: + // key = asia, discriminator = 0, diversity = 0. + Edge::AddendT SigningBits = 0x1ULL << 63; + E.setKind(aarch64::Pointer64Authenticated); + E.setAddend(E.getAddend() | SigningBits); + } + } + } + } + + return Error::success(); +} + void link_MachO_arm64(std::unique_ptr G, std::unique_ptr Ctx) { @@ -601,6 +652,15 @@ void link_MachO_arm64(std::unique_ptr G, // Add an in-place GOT/Stubs pass. Config.PostPrunePasses.push_back(buildTables_MachO_arm64); + + // If this is an arm64e graph then add pointer signing passes. + if (G->getTargetTriple().isArm64e()) { + Config.PostPrunePasses.push_back(applyPACSigningToModInitPointers); + Config.PostPrunePasses.push_back( + aarch64::createEmptyPointerSigningFunction); + Config.PreFixupPasses.push_back( + aarch64::lowerPointer64AuthEdgesToSigningFunction); + } } if (auto Err = Ctx->modifyPassConfig(*G, Config)) diff --git a/llvm/lib/ExecutionEngine/JITLink/aarch64.cpp b/llvm/lib/ExecutionEngine/JITLink/aarch64.cpp index 4d3c19574a23c..a79dbd5e4494f 100644 --- a/llvm/lib/ExecutionEngine/JITLink/aarch64.cpp +++ b/llvm/lib/ExecutionEngine/JITLink/aarch64.cpp @@ -12,6 +12,8 @@ #include "llvm/ExecutionEngine/JITLink/aarch64.h" +#include "llvm/Support/BinaryStreamWriter.h" + #define DEBUG_TYPE "jitlink" namespace llvm { @@ -80,6 +82,280 @@ const char *getEdgeKindName(Edge::Kind R) { } } +// Write a 64-bit GPR -> GPR move. +template +static Error writeMovRegRegSeq(AppendFtor &Append, uint64_t DstReg, + uint64_t SrcReg) { + assert(DstReg < 32 && "Dst reg out of range"); + assert(SrcReg < 32 && "Src reg out of range"); + + if (DstReg == SrcReg) + return Error::success(); + + constexpr uint32_t MOVGPR64Template = 0xaa0003e0; + constexpr uint32_t DstRegIndex = 0; + constexpr uint32_t SrcRegIndex = 16; + uint32_t Instr = MOVGPR64Template; + Instr |= DstReg << DstRegIndex; + Instr |= SrcReg << SrcRegIndex; + return Append(Instr); +} + +// Generate a sequence of imm writes to assign the given value. +template +static Error writeMovRegImm64Seq(AppendFtor &Append, uint64_t Reg, + uint64_t Imm) { + assert(Reg < 32 && "Invalid register number"); + + constexpr uint32_t MovRegImm64Template = 0xd2800000; + constexpr unsigned PreserveBitIndex = 29; + constexpr unsigned ShiftBitsIndex = 21; + constexpr unsigned ImmBitsIndex = 5; + + bool PreserveRegValue = false; + for (unsigned I = 0; I != 4; ++I) { + uint32_t ImmBits = Imm & 0xffff; + Imm >>= 16; + + // Skip any all-zero immediates after the first one. + if (PreserveRegValue && !ImmBits) + continue; + + uint32_t Instr = MovRegImm64Template; + Instr |= PreserveRegValue << PreserveBitIndex; + Instr |= (I << ShiftBitsIndex); + Instr |= ImmBits << ImmBitsIndex; + Instr |= Reg; + if (auto Err = Append(Instr)) + return Err; + PreserveRegValue = true; + } + + return Error::success(); +} + +template +static Error +writePACSignSeq(AppendFtor &Append, unsigned DstReg, orc::ExecutorAddr RawAddr, + unsigned RawAddrReg, unsigned DiscriminatorReg, unsigned Key, + uint64_t EncodedDiscriminator, bool AddressDiversify) { + assert(DstReg < 32 && "DstReg out of range"); + assert(RawAddrReg < 32 && "AddrReg out of range"); + assert(DiscriminatorReg < 32 && "DiscriminatorReg out of range"); + assert(EncodedDiscriminator < 0x10000 && "EncodedDiscriminator out of range"); + + if (AddressDiversify) { + // Move the address into the discriminator register. + if (auto Err = writeMovRegRegSeq(Append, DiscriminatorReg, RawAddrReg)) + return Err; + // Blend encoded discriminator if there is one. + if (EncodedDiscriminator) { + constexpr uint32_t MOVKTemplate = 0xf2e00000; + constexpr unsigned ImmIndex = 5; + uint32_t BlendInstr = MOVKTemplate; + BlendInstr |= EncodedDiscriminator << ImmIndex; + BlendInstr |= DiscriminatorReg; + if (auto Err = Append(BlendInstr)) + return Err; + } + } else if (EncodedDiscriminator) { + // Move the encoded discriminator into the discriminator register. + if (auto Err = + writeMovRegImm64Seq(Append, DiscriminatorReg, EncodedDiscriminator)) + return Err; + } else + DiscriminatorReg = 31; // WZR + + constexpr uint32_t PACTemplate = 0xdac10000; + constexpr unsigned ZBitIndex = 13; + constexpr unsigned KeyIndex = 10; + constexpr unsigned DiscriminatorRegIndex = 5; + + uint32_t Instr = PACTemplate; + Instr |= (DiscriminatorReg == 31) << ZBitIndex; + Instr |= Key << KeyIndex; + Instr |= DiscriminatorReg << DiscriminatorRegIndex; + Instr |= DstReg; + + return Append(Instr); +} + +template +static Error writeStoreRegSeq(AppendFtor &Append, unsigned DstLocReg, + unsigned SrcReg) { + assert(DstLocReg < 32 && "DstLocReg out of range"); + assert(SrcReg < 32 && "SrcReg out of range"); + + constexpr uint32_t STRTemplate = 0xf9000000; + constexpr unsigned DstLocRegIndex = 5; + constexpr unsigned SrcRegIndex = 0; + + uint32_t Instr = STRTemplate; + Instr |= DstLocReg << DstLocRegIndex; + Instr |= SrcReg << SrcRegIndex; + + return Append(Instr); +} + +const char *getPointerSigningFunctionSectionName() { return "$__ptrauth_sign"; } + +/// Creates a pointer signing function section, block, and symbol to reserve +/// space for a signing function for this LinkGraph. Clients should insert this +/// pass in the post-prune phase, and add the paired +/// lowerPointer64AuthEdgesToSigningFunction pass to the pre-fixup phase. +Error createEmptyPointerSigningFunction(LinkGraph &G) { + LLVM_DEBUG({ + dbgs() << "Creating empty pointer signing function for " << G.getName() + << "\n"; + }); + + // FIXME: We could put a tighter bound on this if we inspected the ptrauth + // info encoded in the addend -- the only actually unknown quantity is the + // fixup location, and we can probably put constraints even on that. + size_t NumPtrAuthFixupLocations = 0; + for (auto *B : G.blocks()) + for (auto &E : B->edges()) + NumPtrAuthFixupLocations += + E.getKind() == aarch64::Pointer64Authenticated; + + constexpr size_t MaxPtrSignSeqLength = + 4 + // To materialize the value to sign. + 4 + // To materialize the fixup location. + 3 + // To copy, blend discriminator, and sign + 1; // To store the result. + + // The maximum number of signing instructions required is the maximum per + // location, times the number of locations, plus three instructions to + // materialize the return value and return. + size_t NumSigningInstrs = NumPtrAuthFixupLocations * MaxPtrSignSeqLength + 3; + + // Create signing function section. + auto &SigningSection = + G.createSection(getPointerSigningFunctionSectionName(), + orc::MemProt::Read | orc::MemProt::Exec); + SigningSection.setMemLifetime(orc::MemLifetime::Finalize); + + size_t SigningFunctionSize = NumSigningInstrs * 4; + auto &SigningFunctionBlock = G.createMutableContentBlock( + SigningSection, G.allocateBuffer(SigningFunctionSize), + orc::ExecutorAddr(), 4, 0); + G.addAnonymousSymbol(SigningFunctionBlock, 0, SigningFunctionBlock.getSize(), + true, true); + + LLVM_DEBUG({ + dbgs() << " " << NumPtrAuthFixupLocations << " location(s) to sign, up to " + << NumSigningInstrs << " instructions required (" + << formatv("{0:x}", SigningFunctionBlock.getSize()) << " bytes)\n"; + }); + + return Error::success(); +} + +/// Given a LinkGraph containing Pointer64Auth edges, transform those edges to +/// Pointer64 and add code to sign the pointers in the executor. +/// +/// This function will add a $__ptrauth_sign section with finalization-lifetime +/// containing an anonymous function that will sign all pointers in the graph. +/// An allocation action will be added to run this function during finalization. +Error lowerPointer64AuthEdgesToSigningFunction(LinkGraph &G) { + LLVM_DEBUG({ + dbgs() << "Writing pointer signing function for " << G.getName() << "\n"; + }); + + constexpr unsigned Reg1 = 8; // Holds pointer value to sign. + constexpr unsigned Reg2 = 9; // Holds fixup address. + constexpr unsigned Reg3 = 10; // Temporary for discriminator value if needed. + + // Find the signing function. + auto *SigningSection = + G.findSectionByName(getPointerSigningFunctionSectionName()); + assert(SigningSection && "Siging section missing"); + assert(SigningSection->blocks_size() == 1 && + "Unexpected number of blocks in signing section"); + assert(SigningSection->symbols_size() == 1 && + "Unexpected number of symbols in signing section"); + + auto &SigningFunctionSym = **SigningSection->symbols().begin(); + auto &SigningFunctionBlock = SigningFunctionSym.getBlock(); + auto SigningFunctionBuf = SigningFunctionBlock.getAlreadyMutableContent(); + + // Write the instructions to the block content. + BinaryStreamWriter InstrWriter( + {reinterpret_cast(SigningFunctionBuf.data()), + SigningFunctionBuf.size()}, + G.getEndianness()); + + auto AppendInstr = [&](uint32_t Instr) { + return InstrWriter.writeInteger(Instr); + }; + + for (auto *B : G.blocks()) { + for (auto EI = B->edges().begin(); EI != B->edges().end();) { + auto &E = *EI; + if (E.getKind() == aarch64::Pointer64Authenticated) { + uint64_t EncodedInfo = E.getAddend(); + int32_t RealAddend = (uint32_t)(EncodedInfo & 0xffffffff); + uint32_t InitialDiscriminator = (EncodedInfo >> 32) & 0xffff; + bool AddressDiversify = (EncodedInfo >> 48) & 0x1; + uint32_t Key = (EncodedInfo >> 49) & 0x3; + uint32_t HighBits = EncodedInfo >> 51; + auto ValueToSign = E.getTarget().getAddress() + RealAddend; + + if (HighBits != 0x1000) + return make_error( + "Pointer64Auth edge at " + + formatv("{0:x}", B->getFixupAddress(E).getValue()) + + " has invalid encoded addend " + formatv("{0:x}", EncodedInfo)); + +#ifndef NDEBUG + const char *const KeyNames[] = {"IA", "IB", "DA", "DB"}; +#endif // NDEBUG + LLVM_DEBUG({ + dbgs() << " " << B->getFixupAddress(E) << " <- " << ValueToSign + << " : key = " << KeyNames[Key] << ", discriminator = " + << formatv("{0:x4}", InitialDiscriminator) + << ", address diversified = " + << (AddressDiversify ? "yes" : "no") << "\n"; + }); + + // Materialize pointer value. + cantFail( + writeMovRegImm64Seq(AppendInstr, Reg1, ValueToSign.getValue())); + + // Materialize fixup pointer. + cantFail(writeMovRegImm64Seq(AppendInstr, Reg2, + B->getFixupAddress(E).getValue())); + + // Write signing instruction(s). + cantFail(writePACSignSeq(AppendInstr, Reg1, ValueToSign, Reg2, Reg3, + Key, InitialDiscriminator, AddressDiversify)); + + // Store signed pointer. + cantFail(writeStoreRegSeq(AppendInstr, Reg2, Reg1)); + + // Remove this edge. + EI = B->removeEdge(EI); + } else + ++EI; + } + } + + // Write epilogue. x0 = 0, x1 = 1 is an SPS serialized Error::success value. + constexpr uint32_t RETInstr = 0xd65f03c0; + cantFail(writeMovRegImm64Seq(AppendInstr, 0, 0)); // mov x0, #0 + cantFail(writeMovRegImm64Seq(AppendInstr, 1, 1)); // mov x1, #1 + cantFail(AppendInstr(RETInstr)); // ret + + // Add an allocation action to call the signing function. + using namespace orc::shared; + G.allocActions().push_back( + {cantFail(WrapperFunctionCall::Create>( + SigningFunctionSym.getAddress())), + {}}); + + return Error::success(); +} + } // namespace aarch64 } // namespace jitlink } // namespace llvm diff --git a/llvm/lib/ExecutionEngine/JITLink/loongarch.cpp b/llvm/lib/ExecutionEngine/JITLink/loongarch.cpp index d1e44ec187cc8..010c0ed6713d4 100644 --- a/llvm/lib/ExecutionEngine/JITLink/loongarch.cpp +++ b/llvm/lib/ExecutionEngine/JITLink/loongarch.cpp @@ -49,6 +49,7 @@ const char *getEdgeKindName(Edge::Kind K) { KIND_NAME_CASE(PageOffset12) KIND_NAME_CASE(RequestGOTAndTransformToPage20) KIND_NAME_CASE(RequestGOTAndTransformToPageOffset12) + KIND_NAME_CASE(Call36PCRel) default: return getGenericEdgeKindName(K); } diff --git a/llvm/lib/Frontend/Offloading/OffloadWrapper.cpp b/llvm/lib/Frontend/Offloading/OffloadWrapper.cpp index 8b6f9ea1f4cca..d616b4058b7bb 100644 --- a/llvm/lib/Frontend/Offloading/OffloadWrapper.cpp +++ b/llvm/lib/Frontend/Offloading/OffloadWrapper.cpp @@ -575,7 +575,7 @@ void createRegisterFatbinFunction(Module &M, GlobalVariable *FatbinDesc, // Create the destructor to unregister the image with the runtime. We cannot // use a standard global destructor after CUDA 9.2 so this must be called by - // `atexit()` intead. + // `atexit()` instead. IRBuilder<> DtorBuilder(BasicBlock::Create(C, "entry", DtorFunc)); LoadInst *BinaryHandle = DtorBuilder.CreateAlignedLoad( PtrTy, BinaryHandleGlobal, diff --git a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp index 59d34f67f8cfb..ef192813679ba 100644 --- a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp +++ b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp @@ -6962,8 +6962,7 @@ static Function *emitTargetTaskProxyFunction(OpenMPIRBuilder &OMPBuilder, assert(ArgStructAlloca && "Unable to find the alloca instruction corresponding to arguments " "for extracted function"); - auto *ArgStructType = - dyn_cast(ArgStructAlloca->getAllocatedType()); + auto *ArgStructType = cast(ArgStructAlloca->getAllocatedType()); AllocaInst *NewArgStructAlloca = Builder.CreateAlloca(ArgStructType, nullptr, "structArg"); diff --git a/llvm/lib/IR/AsmWriter.cpp b/llvm/lib/IR/AsmWriter.cpp index f6a5bc10ff3b2..f8183774f4056 100644 --- a/llvm/lib/IR/AsmWriter.cpp +++ b/llvm/lib/IR/AsmWriter.cpp @@ -1741,6 +1741,24 @@ static void WriteConstantInternal(raw_ostream &Out, const Constant *CV, } if (const ConstantExpr *CE = dyn_cast(CV)) { + // Use the same shorthand for splat vector (i.e. "splat(Ty val)") as is + // permitted on IR input to reduce the output changes when enabling + // UseConstant{Int,FP}ForScalableSplat. + // TODO: Remove this block when the UseConstant{Int,FP}ForScalableSplat + // options are removed. + if (CE->getOpcode() == Instruction::ShuffleVector) { + if (auto *SplatVal = CE->getSplatValue()) { + if (isa(SplatVal) || isa(SplatVal)) { + Out << "splat ("; + WriterCtx.TypePrinter->print(SplatVal->getType(), Out); + Out << ' '; + WriteAsOperandInternal(Out, SplatVal, WriterCtx); + Out << ')'; + return; + } + } + } + Out << CE->getOpcodeName(); WriteOptimizationInfo(Out, CE); Out << " ("; diff --git a/llvm/lib/IR/ConstantFold.cpp b/llvm/lib/IR/ConstantFold.cpp index 2dbc6785c08b9..3a04f81315e6c 100644 --- a/llvm/lib/IR/ConstantFold.cpp +++ b/llvm/lib/IR/ConstantFold.cpp @@ -71,50 +71,51 @@ static Constant *FoldBitCast(Constant *V, Type *DestTy) { if (SrcTy == DestTy) return V; // no-op cast - // Handle casts from one vector constant to another. We know that the src - // and dest type have the same size (otherwise its an illegal cast). - if (VectorType *DestPTy = dyn_cast(DestTy)) { - if (V->isAllOnesValue()) - return Constant::getAllOnesValue(DestTy); + if (V->isAllOnesValue()) + return Constant::getAllOnesValue(DestTy); + // Handle ConstantInt -> ConstantFP + if (ConstantInt *CI = dyn_cast(V)) { // Canonicalize scalar-to-vector bitcasts into vector-to-vector bitcasts // This allows for other simplifications (although some of them // can only be handled by Analysis/ConstantFolding.cpp). - if (!isa(SrcTy)) - if (isa(V) || isa(V)) - return ConstantExpr::getBitCast(ConstantVector::get(V), DestPTy); - return nullptr; - } + if (isa(DestTy) && !isa(SrcTy)) + return ConstantExpr::getBitCast(ConstantVector::get(V), DestTy); - // Handle integral constant input. - if (ConstantInt *CI = dyn_cast(V)) { + // Make sure dest type is compatible with the folded fp constant. // See note below regarding the PPC_FP128 restriction. - if (DestTy->isFloatingPointTy() && !DestTy->isPPC_FP128Ty()) - return ConstantFP::get(DestTy->getContext(), - APFloat(DestTy->getFltSemantics(), - CI->getValue())); + if (!DestTy->isFPOrFPVectorTy() || DestTy->isPPC_FP128Ty() || + DestTy->getScalarSizeInBits() != SrcTy->getScalarSizeInBits()) + return nullptr; - // Otherwise, can't fold this (vector?) - return nullptr; + return ConstantFP::get( + DestTy, + APFloat(DestTy->getScalarType()->getFltSemantics(), CI->getValue())); } - // Handle ConstantFP input: FP -> Integral. + // Handle ConstantFP -> ConstantInt if (ConstantFP *FP = dyn_cast(V)) { + // Canonicalize scalar-to-vector bitcasts into vector-to-vector bitcasts + // This allows for other simplifications (although some of them + // can only be handled by Analysis/ConstantFolding.cpp). + if (isa(DestTy) && !isa(SrcTy)) + return ConstantExpr::getBitCast(ConstantVector::get(V), DestTy); + // PPC_FP128 is really the sum of two consecutive doubles, where the first // double is always stored first in memory, regardless of the target // endianness. The memory layout of i128, however, depends on the target // endianness, and so we can't fold this without target endianness // information. This should instead be handled by // Analysis/ConstantFolding.cpp - if (FP->getType()->isPPC_FP128Ty()) + if (SrcTy->isPPC_FP128Ty()) return nullptr; // Make sure dest type is compatible with the folded integer constant. - if (!DestTy->isIntegerTy()) + if (!DestTy->isIntOrIntVectorTy() || + DestTy->getScalarSizeInBits() != SrcTy->getScalarSizeInBits()) return nullptr; - return ConstantInt::get(FP->getContext(), - FP->getValueAPF().bitcastToAPInt()); + return ConstantInt::get(DestTy, FP->getValueAPF().bitcastToAPInt()); } return nullptr; diff --git a/llvm/lib/IR/Constants.cpp b/llvm/lib/IR/Constants.cpp index 3d6c4ad780dc2..95832ed0b8951 100644 --- a/llvm/lib/IR/Constants.cpp +++ b/llvm/lib/IR/Constants.cpp @@ -1699,6 +1699,10 @@ Constant *Constant::getSplatValue(bool AllowPoison) const { assert(this->getType()->isVectorTy() && "Only valid for vectors!"); if (isa(this)) return getNullValue(cast(getType())->getElementType()); + if (auto *CI = dyn_cast(this)) + return ConstantInt::get(getContext(), CI->getValue()); + if (auto *CFP = dyn_cast(this)) + return ConstantFP::get(getContext(), CFP->getValue()); if (const ConstantDataVector *CV = dyn_cast(this)) return CV->getSplatValue(); if (const ConstantVector *CV = dyn_cast(this)) diff --git a/llvm/lib/IR/DIBuilder.cpp b/llvm/lib/IR/DIBuilder.cpp index 3af397bfc9ad1..b240a2a39de36 100644 --- a/llvm/lib/IR/DIBuilder.cpp +++ b/llvm/lib/IR/DIBuilder.cpp @@ -139,7 +139,7 @@ DICompileUnit *DIBuilder::createCompileUnit( DICompileUnit::DebugNameTableKind NameTableKind, bool RangesBaseAddress, StringRef SysRoot, StringRef SDK) { - assert(((Lang <= dwarf::DW_LANG_Mojo && Lang >= dwarf::DW_LANG_C89) || + assert(((Lang <= dwarf::DW_LANG_Metal && Lang >= dwarf::DW_LANG_C89) || (Lang <= dwarf::DW_LANG_hi_user && Lang >= dwarf::DW_LANG_lo_user)) && "Invalid Language tag"); diff --git a/llvm/lib/IR/Instructions.cpp b/llvm/lib/IR/Instructions.cpp index 7350c65b35fb7..065ce3a017283 100644 --- a/llvm/lib/IR/Instructions.cpp +++ b/llvm/lib/IR/Instructions.cpp @@ -1752,8 +1752,17 @@ bool ShuffleVectorInst::isValidOperands(const Value *V1, const Value *V2, if (isa(Mask) || isa(Mask)) return true; + // NOTE: Through vector ConstantInt we have the potential to support more + // than just zero splat masks but that requires a LangRef change. + if (isa(MaskTy)) + return false; + + unsigned V1Size = cast(V1->getType())->getNumElements(); + + if (const auto *CI = dyn_cast(Mask)) + return !CI->uge(V1Size * 2); + if (const auto *MV = dyn_cast(Mask)) { - unsigned V1Size = cast(V1->getType())->getNumElements(); for (Value *Op : MV->operands()) { if (auto *CI = dyn_cast(Op)) { if (CI->uge(V1Size*2)) @@ -1766,7 +1775,6 @@ bool ShuffleVectorInst::isValidOperands(const Value *V1, const Value *V2, } if (const auto *CDS = dyn_cast(Mask)) { - unsigned V1Size = cast(V1->getType())->getNumElements(); for (unsigned i = 0, e = cast(MaskTy)->getNumElements(); i != e; ++i) if (CDS->getElementAsInteger(i) >= V1Size*2) diff --git a/llvm/lib/IR/Module.cpp b/llvm/lib/IR/Module.cpp index 7f5c0159e1764..c7b9f8744d8d3 100644 --- a/llvm/lib/IR/Module.cpp +++ b/llvm/lib/IR/Module.cpp @@ -77,6 +77,41 @@ Module::Module(StringRef MID, LLVMContext &C) Context.addModule(this); } +Module &Module::operator=(Module &&Other) { + assert(&Context == &Other.Context && "Module must be in the same Context"); + + dropAllReferences(); + + ModuleID = std::move(Other.ModuleID); + SourceFileName = std::move(Other.SourceFileName); + IsNewDbgInfoFormat = std::move(Other.IsNewDbgInfoFormat); + + GlobalList.clear(); + GlobalList.splice(GlobalList.begin(), Other.GlobalList); + + FunctionList.clear(); + FunctionList.splice(FunctionList.begin(), Other.FunctionList); + + AliasList.clear(); + AliasList.splice(AliasList.begin(), Other.AliasList); + + IFuncList.clear(); + IFuncList.splice(IFuncList.begin(), Other.IFuncList); + + NamedMDList.clear(); + NamedMDList.splice(NamedMDList.begin(), Other.NamedMDList); + GlobalScopeAsm = std::move(Other.GlobalScopeAsm); + OwnedMemoryBuffer = std::move(Other.OwnedMemoryBuffer); + Materializer = std::move(Other.Materializer); + TargetTriple = std::move(Other.TargetTriple); + DL = std::move(Other.DL); + CurrentIntrinsicIds = std::move(Other.CurrentIntrinsicIds); + UniquedIntrinsicNames = std::move(Other.UniquedIntrinsicNames); + ModuleFlags = std::move(Other.ModuleFlags); + Context.addModule(this); + return *this; +} + Module::~Module() { Context.removeModule(this); dropAllReferences(); diff --git a/llvm/lib/IR/Operator.cpp b/llvm/lib/IR/Operator.cpp index 199eb4d90f556..e1580cf760969 100644 --- a/llvm/lib/IR/Operator.cpp +++ b/llvm/lib/IR/Operator.cpp @@ -136,7 +136,9 @@ bool GEPOperator::accumulateConstantOffset( bool UsedExternalAnalysis = false; auto AccumulateOffset = [&](APInt Index, uint64_t Size) -> bool { Index = Index.sextOrTrunc(Offset.getBitWidth()); - APInt IndexedSize = APInt(Offset.getBitWidth(), Size); + // Truncate if type size exceeds index space. + APInt IndexedSize(Offset.getBitWidth(), Size, /*isSigned=*/false, + /*implcitTrunc=*/true); // For array or vector indices, scale the index by the size of the type. if (!UsedExternalAnalysis) { Offset += Index * IndexedSize; @@ -210,7 +212,9 @@ bool GEPOperator::collectOffset( auto CollectConstantOffset = [&](APInt Index, uint64_t Size) { Index = Index.sextOrTrunc(BitWidth); - APInt IndexedSize = APInt(BitWidth, Size); + // Truncate if type size exceeds index space. + APInt IndexedSize(BitWidth, Size, /*isSigned=*/false, + /*implcitTrunc=*/true); ConstantOffset += Index * IndexedSize; }; @@ -248,7 +252,9 @@ bool GEPOperator::collectOffset( if (STy || ScalableType) return false; - APInt IndexedSize = APInt(BitWidth, GTI.getSequentialElementStride(DL)); + // Truncate if type size exceeds index space. + APInt IndexedSize(BitWidth, GTI.getSequentialElementStride(DL), + /*isSigned=*/false, /*implicitTrunc=*/true); // Insert an initial offset of 0 for V iff none exists already, then // increment the offset by IndexedSize. if (!IndexedSize.isZero()) { diff --git a/llvm/lib/IR/Type.cpp b/llvm/lib/IR/Type.cpp index 75f4751ea4f14..ac6b8b4c19700 100644 --- a/llvm/lib/IR/Type.cpp +++ b/llvm/lib/IR/Type.cpp @@ -88,6 +88,22 @@ bool Type::containsNonGlobalTargetExtType() const { return containsNonGlobalTargetExtType(Visited); } +bool Type::containsNonLocalTargetExtType( + SmallPtrSetImpl &Visited) const { + if (const auto *ATy = dyn_cast(this)) + return ATy->getElementType()->containsNonLocalTargetExtType(Visited); + if (const auto *STy = dyn_cast(this)) + return STy->containsNonLocalTargetExtType(Visited); + if (auto *TT = dyn_cast(this)) + return !TT->hasProperty(TargetExtType::CanBeLocal); + return false; +} + +bool Type::containsNonLocalTargetExtType() const { + SmallPtrSet Visited; + return containsNonLocalTargetExtType(Visited); +} + const fltSemantics &Type::getFltSemantics() const { switch (getTypeID()) { case HalfTyID: return APFloat::IEEEhalf(); @@ -469,6 +485,34 @@ bool StructType::containsNonGlobalTargetExtType( return false; } +bool StructType::containsNonLocalTargetExtType( + SmallPtrSetImpl &Visited) const { + if ((getSubclassData() & SCDB_ContainsNonLocalTargetExtType) != 0) + return true; + + if ((getSubclassData() & SCDB_NotContainsNonLocalTargetExtType) != 0) + return false; + + if (!Visited.insert(this).second) + return false; + + for (Type *Ty : elements()) { + if (Ty->containsNonLocalTargetExtType(Visited)) { + const_cast(this)->setSubclassData( + getSubclassData() | SCDB_ContainsNonLocalTargetExtType); + return true; + } + } + + // For structures that are opaque, return false but do not set the + // SCDB_NotContainsNonLocalTargetExtType flag since it may gain non-local + // target extension types when it becomes non-opaque. + if (!isOpaque()) + const_cast(this)->setSubclassData( + getSubclassData() | SCDB_NotContainsNonLocalTargetExtType); + return false; +} + bool StructType::containsHomogeneousScalableVectorTypes() const { if (getNumElements() <= 0 || !isa(elements().front())) return false; @@ -922,15 +966,18 @@ static TargetTypeInfo getTargetTypeInfo(const TargetExtType *Ty) { LLVMContext &C = Ty->getContext(); StringRef Name = Ty->getName(); if (Name == "spirv.Image") - return TargetTypeInfo(PointerType::get(C, 0), TargetExtType::CanBeGlobal); + return TargetTypeInfo(PointerType::get(C, 0), TargetExtType::CanBeGlobal, + TargetExtType::CanBeLocal); if (Name.starts_with("spirv.")) return TargetTypeInfo(PointerType::get(C, 0), TargetExtType::HasZeroInit, - TargetExtType::CanBeGlobal); + TargetExtType::CanBeGlobal, + TargetExtType::CanBeLocal); // Opaque types in the AArch64 name space. if (Name == "aarch64.svcount") return TargetTypeInfo(ScalableVectorType::get(Type::getInt1Ty(C), 16), - TargetExtType::HasZeroInit); + TargetExtType::HasZeroInit, + TargetExtType::CanBeLocal); // RISC-V vector tuple type. The layout is represented as the type that needs // the same number of vector registers(VREGS) as this tuple type, represented @@ -942,12 +989,14 @@ static TargetTypeInfo getTargetTypeInfo(const TargetExtType *Ty) { RISCV::RVVBitsPerBlock / 8) * Ty->getIntParameter(0); return TargetTypeInfo( - ScalableVectorType::get(Type::getInt8Ty(C), TotalNumElts)); + ScalableVectorType::get(Type::getInt8Ty(C), TotalNumElts), + TargetExtType::CanBeLocal); } // DirectX resources if (Name.starts_with("dx.")) - return TargetTypeInfo(PointerType::get(C, 0), TargetExtType::CanBeGlobal); + return TargetTypeInfo(PointerType::get(C, 0), TargetExtType::CanBeGlobal, + TargetExtType::CanBeLocal); // Opaque types in the AMDGPU name space. if (Name == "amdgcn.named.barrier") { diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp index 21b8816081a0b..88a895027ddfa 100644 --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -2026,11 +2026,15 @@ void Verifier::verifyParameterAttrs(AttributeSet Attrs, Type *Ty, "huge alignment values are unsupported", V); } if (Attrs.hasAttribute(Attribute::ByVal)) { + Type *ByValTy = Attrs.getByValType(); SmallPtrSet Visited; - Check(Attrs.getByValType()->isSized(&Visited), + Check(ByValTy->isSized(&Visited), "Attribute 'byval' does not support unsized types!", V); - Check(DL.getTypeAllocSize(Attrs.getByValType()).getKnownMinValue() < - (1ULL << 32), + // Check if it is or contains a target extension type that disallows being + // used on the stack. + Check(!ByValTy->containsNonLocalTargetExtType(), + "'byval' argument has illegal target extension type", V); + Check(DL.getTypeAllocSize(ByValTy).getKnownMinValue() < (1ULL << 32), "huge 'byval' arguments are unsupported", V); } if (Attrs.hasAttribute(Attribute::ByRef)) { @@ -4323,9 +4327,13 @@ void Verifier::verifySwiftErrorValue(const Value *SwiftErrorVal) { } void Verifier::visitAllocaInst(AllocaInst &AI) { + Type *Ty = AI.getAllocatedType(); SmallPtrSet Visited; - Check(AI.getAllocatedType()->isSized(&Visited), - "Cannot allocate unsized type", &AI); + Check(Ty->isSized(&Visited), "Cannot allocate unsized type", &AI); + // Check if it's a target extension type that disallows being used on the + // stack. + Check(!Ty->containsNonLocalTargetExtType(), + "Alloca has illegal target extension type", &AI); Check(AI.getArraySize()->getType()->isIntegerTy(), "Alloca array size must have integer type", &AI); if (MaybeAlign A = AI.getAlign()) { @@ -4334,8 +4342,7 @@ void Verifier::visitAllocaInst(AllocaInst &AI) { } if (AI.isSwiftError()) { - Check(AI.getAllocatedType()->isPointerTy(), - "swifterror alloca must have pointer type", &AI); + Check(Ty->isPointerTy(), "swifterror alloca must have pointer type", &AI); Check(!AI.isArrayAllocation(), "swifterror alloca must not be array allocation", &AI); verifySwiftErrorValue(&AI); @@ -6378,6 +6385,55 @@ void Verifier::visitIntrinsicCall(Intrinsic::ID ID, CallBase &Call) { "llvm.amdgcn.s.prefetch.data only supports global or constant memory"); break; } + case Intrinsic::amdgcn_mfma_scale_f32_16x16x128_f8f6f4: + case Intrinsic::amdgcn_mfma_scale_f32_32x32x64_f8f6f4: { + Value *Src0 = Call.getArgOperand(0); + Value *Src1 = Call.getArgOperand(1); + + uint64_t CBSZ = cast(Call.getArgOperand(3))->getZExtValue(); + uint64_t BLGP = cast(Call.getArgOperand(4))->getZExtValue(); + Check(CBSZ <= 4, "invalid value for cbsz format", Call, + Call.getArgOperand(3)); + Check(BLGP <= 4, "invalid value for blgp format", Call, + Call.getArgOperand(4)); + + // AMDGPU::MFMAScaleFormats values + auto getFormatNumRegs = [](unsigned FormatVal) { + switch (FormatVal) { + case 0: + case 1: + return 8u; + case 2: + case 3: + return 6u; + case 4: + return 4u; + default: + llvm_unreachable("invalid format value"); + } + }; + + auto isValidSrcASrcBVector = [](FixedVectorType *Ty) { + if (!Ty || !Ty->getElementType()->isIntegerTy(32)) + return false; + unsigned NumElts = Ty->getNumElements(); + return NumElts == 4 || NumElts == 6 || NumElts == 8; + }; + + auto *Src0Ty = dyn_cast(Src0->getType()); + auto *Src1Ty = dyn_cast(Src1->getType()); + Check(isValidSrcASrcBVector(Src0Ty), + "operand 0 must be 4, 6 or 8 element i32 vector", &Call, Src0); + Check(isValidSrcASrcBVector(Src1Ty), + "operand 1 must be 4, 6 or 8 element i32 vector", &Call, Src1); + + // Permit excess registers for the format. + Check(Src0Ty->getNumElements() >= getFormatNumRegs(CBSZ), + "invalid vector type for format", &Call, Src0, Call.getArgOperand(3)); + Check(Src1Ty->getNumElements() >= getFormatNumRegs(BLGP), + "invalid vector type for format", &Call, Src1, Call.getArgOperand(5)); + break; + } case Intrinsic::nvvm_setmaxnreg_inc_sync_aligned_u32: case Intrinsic::nvvm_setmaxnreg_dec_sync_aligned_u32: { Value *V = Call.getArgOperand(0); diff --git a/llvm/lib/Linker/IRMover.cpp b/llvm/lib/Linker/IRMover.cpp index 4bb0ddf891744..a0c3f2c5b0baf 100644 --- a/llvm/lib/Linker/IRMover.cpp +++ b/llvm/lib/Linker/IRMover.cpp @@ -1430,11 +1430,15 @@ Error IRLinker::linkModuleFlagsMetadata() { llvm_unreachable("not possible"); case Module::Error: { // Emit an error if the values differ. - if (SrcOp->getOperand(2) != DstOp->getOperand(2)) - return stringErr("linking module flags '" + ID->getString() + - "': IDs have conflicting values in '" + - SrcM->getModuleIdentifier() + "' and '" + - DstM.getModuleIdentifier() + "'"); + if (SrcOp->getOperand(2) != DstOp->getOperand(2)) { + std::string Str; + raw_string_ostream(Str) + << "linking module flags '" << ID->getString() + << "': IDs have conflicting values: '" << *SrcOp->getOperand(2) + << "' from " << SrcM->getModuleIdentifier() << ", and '" + << *DstOp->getOperand(2) << "' from " + DstM.getModuleIdentifier(); + return stringErr(Str); + } continue; } case Module::Warning: { diff --git a/llvm/lib/MCA/HardwareUnits/RegisterFile.cpp b/llvm/lib/MCA/HardwareUnits/RegisterFile.cpp index cfab40a1c1595..3c1c35adf8897 100644 --- a/llvm/lib/MCA/HardwareUnits/RegisterFile.cpp +++ b/llvm/lib/MCA/HardwareUnits/RegisterFile.cpp @@ -24,11 +24,6 @@ namespace mca { const unsigned WriteRef::INVALID_IID = std::numeric_limits::max(); -static std::function -isNonArtificial(const MCRegisterInfo &MRI) { - return [&MRI](MCPhysReg R) { return !MRI.isArtificial(R); }; -} - WriteRef::WriteRef(unsigned SourceIndex, WriteState *WS) : IID(SourceIndex), WriteBackCycle(), WriteResID(), RegisterID(), Write(WS) {} @@ -287,8 +282,7 @@ void RegisterFile::addRegisterWrite(WriteRef Write, MCPhysReg ZeroRegisterID = WS.clearsSuperRegisters() ? RegID : WS.getRegisterID(); ZeroRegisters.setBitVal(ZeroRegisterID, IsWriteZero); - for (MCPhysReg I : - make_filter_range(MRI.subregs(ZeroRegisterID), isNonArtificial(MRI))) + for (MCPhysReg I : MRI.subregs(ZeroRegisterID)) ZeroRegisters.setBitVal(I, IsWriteZero); // If this move has been eliminated, then method tryEliminateMoveOrSwap should @@ -310,8 +304,7 @@ void RegisterFile::addRegisterWrite(WriteRef Write, // Update the mapping for register RegID including its sub-registers. RegisterMappings[RegID].first = Write; RegisterMappings[RegID].second.AliasRegID = 0U; - for (MCPhysReg I : - make_filter_range(MRI.subregs(RegID), isNonArtificial(MRI))) { + for (MCPhysReg I : MRI.subregs(RegID)) { RegisterMappings[I].first = Write; RegisterMappings[I].second.AliasRegID = 0U; } @@ -479,8 +472,7 @@ bool RegisterFile::tryEliminateMoveOrSwap(MutableArrayRef Writes, AliasedReg = RMAlias.AliasRegID; RegisterMappings[AliasReg].second.AliasRegID = AliasedReg; - for (MCPhysReg I : - make_filter_range(MRI.subregs(AliasReg), isNonArtificial(MRI))) + for (MCPhysReg I : MRI.subregs(AliasReg)) RegisterMappings[I].second.AliasRegID = AliasedReg; if (ZeroRegisters[RS.getRegisterID()]) { diff --git a/llvm/lib/Object/ELF.cpp b/llvm/lib/Object/ELF.cpp index 545a672c05c8a..b6d0699ee4fe0 100644 --- a/llvm/lib/Object/ELF.cpp +++ b/llvm/lib/Object/ELF.cpp @@ -851,29 +851,31 @@ decodeBBAddrMapImpl(const ELFFile &EF, NumBlocksInBBRange = readULEB128As(Data, Cur, ULEBSizeErr); } std::vector BBEntries; - for (uint32_t BlockIndex = 0; !MetadataDecodeErr && !ULEBSizeErr && Cur && - (BlockIndex < NumBlocksInBBRange); - ++BlockIndex) { - uint32_t ID = Version >= 2 - ? readULEB128As(Data, Cur, ULEBSizeErr) - : BlockIndex; - uint32_t Offset = readULEB128As(Data, Cur, ULEBSizeErr); - uint32_t Size = readULEB128As(Data, Cur, ULEBSizeErr); - uint32_t MD = readULEB128As(Data, Cur, ULEBSizeErr); - if (Version >= 1) { - // Offset is calculated relative to the end of the previous BB. - Offset += PrevBBEndOffset; - PrevBBEndOffset = Offset + Size; - } - Expected MetadataOrErr = - BBAddrMap::BBEntry::Metadata::decode(MD); - if (!MetadataOrErr) { - MetadataDecodeErr = MetadataOrErr.takeError(); - break; + if (!FeatEnable.OmitBBEntries) { + for (uint32_t BlockIndex = 0; !MetadataDecodeErr && !ULEBSizeErr && + Cur && (BlockIndex < NumBlocksInBBRange); + ++BlockIndex) { + uint32_t ID = Version >= 2 + ? readULEB128As(Data, Cur, ULEBSizeErr) + : BlockIndex; + uint32_t Offset = readULEB128As(Data, Cur, ULEBSizeErr); + uint32_t Size = readULEB128As(Data, Cur, ULEBSizeErr); + uint32_t MD = readULEB128As(Data, Cur, ULEBSizeErr); + if (Version >= 1) { + // Offset is calculated relative to the end of the previous BB. + Offset += PrevBBEndOffset; + PrevBBEndOffset = Offset + Size; + } + Expected MetadataOrErr = + BBAddrMap::BBEntry::Metadata::decode(MD); + if (!MetadataOrErr) { + MetadataDecodeErr = MetadataOrErr.takeError(); + break; + } + BBEntries.push_back({ID, Offset, Size, *MetadataOrErr}); } - BBEntries.push_back({ID, Offset, Size, *MetadataOrErr}); + TotalNumBlocks += BBEntries.size(); } - TotalNumBlocks += BBEntries.size(); BBRangeEntries.push_back({RangeBaseAddress, std::move(BBEntries)}); } FunctionEntries.push_back({std::move(BBRangeEntries)}); diff --git a/llvm/lib/ObjectYAML/ELFEmitter.cpp b/llvm/lib/ObjectYAML/ELFEmitter.cpp index 3214adf744bd9..476334024151a 100644 --- a/llvm/lib/ObjectYAML/ELFEmitter.cpp +++ b/llvm/lib/ObjectYAML/ELFEmitter.cpp @@ -1497,7 +1497,7 @@ void ELFState::writeSectionContent( BBR.NumBlocks.value_or(BBR.BBEntries ? BBR.BBEntries->size() : 0); SHeader.sh_size += sizeof(uintX_t) + CBA.writeULEB128(NumBlocks); // Write all BBEntries in this BBRange. - if (!BBR.BBEntries) + if (!BBR.BBEntries || FeatureOrErr->OmitBBEntries) continue; for (const ELFYAML::BBAddrMapEntry::BBEntry &BBE : *BBR.BBEntries) { ++TotalNumBlocks; diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp index bc6b449d22abe..cf7ceed63607a 100644 --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -85,6 +85,7 @@ #include "llvm/CodeGen/DeadMachineInstructionElim.h" #include "llvm/CodeGen/DwarfEHPrepare.h" #include "llvm/CodeGen/EarlyIfConversion.h" +#include "llvm/CodeGen/EdgeBundles.h" #include "llvm/CodeGen/ExpandLargeDivRem.h" #include "llvm/CodeGen/ExpandLargeFpConvert.h" #include "llvm/CodeGen/ExpandMemCmp.h" diff --git a/llvm/lib/ProfileData/InstrProfReader.cpp b/llvm/lib/ProfileData/InstrProfReader.cpp index e43f3ac9f08d4..7663852236594 100644 --- a/llvm/lib/ProfileData/InstrProfReader.cpp +++ b/llvm/lib/ProfileData/InstrProfReader.cpp @@ -1225,8 +1225,8 @@ IndexedInstrProfReader::readSummary(IndexedInstrProf::ProfVersion Version, } } -Error IndexedMemProfReader::deserializeV12(const unsigned char *Start, - const unsigned char *Ptr) { +Error IndexedMemProfReader::deserializeV2(const unsigned char *Start, + const unsigned char *Ptr) { // The value returned from RecordTableGenerator.Emit. const uint64_t RecordTableOffset = support::endian::readNext(Ptr); @@ -1322,8 +1322,7 @@ Error IndexedMemProfReader::deserialize(const unsigned char *Start, const uint64_t FirstWord = support::endian::readNext(Ptr); - if (FirstWord == memprof::Version1 || FirstWord == memprof::Version2 || - FirstWord == memprof::Version3) { + if (FirstWord == memprof::Version2 || FirstWord == memprof::Version3) { // Everything is good. We can proceed to deserialize the rest. Version = static_cast(FirstWord); } else { @@ -1336,9 +1335,8 @@ Error IndexedMemProfReader::deserialize(const unsigned char *Start, } switch (Version) { - case memprof::Version1: case memprof::Version2: - if (Error E = deserializeV12(Start, Ptr)) + if (Error E = deserializeV2(Start, Ptr)) return E; break; case memprof::Version3: @@ -1347,18 +1345,6 @@ Error IndexedMemProfReader::deserialize(const unsigned char *Start, break; } -#ifdef EXPENSIVE_CHECKS - // Go through all the records and verify that CSId has been correctly - // populated. Do this only under EXPENSIVE_CHECKS. Otherwise, we - // would defeat the purpose of OnDiskIterableChainedHashTable. - // Note that we can compare CSId against actual call stacks only for - // Version0 and Version1 because IndexedAllocationInfo::CallStack and - // IndexedMemProfRecord::CallSites are not populated in Version2. - if (Version <= memprof::Version1) - for (const auto &Record : MemProfRecordTable->data()) - verifyIndexedMemProfRecord(Record); -#endif - return Error::success(); } @@ -1558,25 +1544,6 @@ Expected IndexedInstrProfReader::getInstrProfRecord( return error(instrprof_error::unknown_function); } -static Expected -getMemProfRecordV0(const memprof::IndexedMemProfRecord &IndexedRecord, - MemProfFrameHashTable &MemProfFrameTable) { - memprof::FrameIdConverter FrameIdConv( - MemProfFrameTable); - - memprof::MemProfRecord Record = - memprof::MemProfRecord(IndexedRecord, FrameIdConv); - - // Check that all frame ids were successfully converted to frames. - if (FrameIdConv.LastUnmappedId) { - return make_error(instrprof_error::hash_mismatch, - "memprof frame not found for frame id " + - Twine(*FrameIdConv.LastUnmappedId)); - } - - return Record; -} - static Expected getMemProfRecordV2(const memprof::IndexedMemProfRecord &IndexedRecord, MemProfFrameHashTable &MemProfFrameTable, @@ -1631,11 +1598,6 @@ IndexedMemProfReader::getMemProfRecord(const uint64_t FuncNameHash) const { const memprof::IndexedMemProfRecord &IndexedRecord = *Iter; switch (Version) { - case memprof::Version1: - assert(MemProfFrameTable && "MemProfFrameTable must be available"); - assert(!MemProfCallStackTable && - "MemProfCallStackTable must not be available"); - return getMemProfRecordV0(IndexedRecord, *MemProfFrameTable); case memprof::Version2: assert(MemProfFrameTable && "MemProfFrameTable must be available"); assert(MemProfCallStackTable && "MemProfCallStackTable must be available"); diff --git a/llvm/lib/ProfileData/InstrProfWriter.cpp b/llvm/lib/ProfileData/InstrProfWriter.cpp index d90629ad57f5b..d8ab18d213e3d 100644 --- a/llvm/lib/ProfileData/InstrProfWriter.cpp +++ b/llvm/lib/ProfileData/InstrProfWriter.cpp @@ -351,9 +351,14 @@ bool InstrProfWriter::addMemProfCallStack( bool InstrProfWriter::addMemProfData(memprof::IndexedMemProfData Incoming, function_ref Warn) { - // TODO: Once we remove support for MemProf format Version V1, assert that - // the three components (frames, call stacks, and records) are either all - // empty or populated. + // Return immediately if everything is empty. + if (Incoming.Frames.empty() && Incoming.CallStacks.empty() && + Incoming.Records.empty()) + return true; + + // Otherwise, every component must be non-empty. + assert(!Incoming.Frames.empty() && !Incoming.CallStacks.empty() && + !Incoming.Records.empty()); if (MemProfData.Frames.empty()) MemProfData.Frames = std::move(Incoming.Frames); @@ -636,7 +641,7 @@ writeMemProfCallStackArray( MemProfCallStackIndexes; memprof::CallStackRadixTreeBuilder Builder; - Builder.build(std::move(MemProfCallStackData), MemProfFrameIndexes, + Builder.build(std::move(MemProfCallStackData), &MemProfFrameIndexes, FrameHistogram); for (auto I : Builder.getRadixArray()) OS.write32(I); @@ -649,41 +654,6 @@ writeMemProfCallStackArray( return MemProfCallStackIndexes; } -// Write out MemProf Version1 as follows: -// uint64_t Version (NEW in V1) -// uint64_t RecordTableOffset = RecordTableGenerator.Emit -// uint64_t FramePayloadOffset = Offset for the frame payload -// uint64_t FrameTableOffset = FrameTableGenerator.Emit -// uint64_t Num schema entries -// uint64_t Schema entry 0 -// uint64_t Schema entry 1 -// .... -// uint64_t Schema entry N - 1 -// OnDiskChainedHashTable MemProfRecordData -// OnDiskChainedHashTable MemProfFrameData -static Error writeMemProfV1(ProfOStream &OS, - memprof::IndexedMemProfData &MemProfData) { - OS.write(memprof::Version1); - uint64_t HeaderUpdatePos = OS.tell(); - OS.write(0ULL); // Reserve space for the memprof record table offset. - OS.write(0ULL); // Reserve space for the memprof frame payload offset. - OS.write(0ULL); // Reserve space for the memprof frame table offset. - - auto Schema = memprof::getFullSchema(); - writeMemProfSchema(OS, Schema); - - uint64_t RecordTableOffset = - writeMemProfRecords(OS, MemProfData.Records, &Schema, memprof::Version1); - - uint64_t FramePayloadOffset = OS.tell(); - uint64_t FrameTableOffset = writeMemProfFrames(OS, MemProfData.Frames); - - uint64_t Header[] = {RecordTableOffset, FramePayloadOffset, FrameTableOffset}; - OS.patch({{HeaderUpdatePos, Header}}); - - return Error::success(); -} - // Write out MemProf Version2 as follows: // uint64_t Version // uint64_t RecordTableOffset = RecordTableGenerator.Emit @@ -805,8 +775,6 @@ static Error writeMemProf(ProfOStream &OS, memprof::IndexedVersion MemProfVersionRequested, bool MemProfFullSchema) { switch (MemProfVersionRequested) { - case memprof::Version1: - return writeMemProfV1(OS, MemProfData); case memprof::Version2: return writeMemProfV2(OS, MemProfData, MemProfFullSchema); case memprof::Version3: diff --git a/llvm/lib/ProfileData/MemProf.cpp b/llvm/lib/ProfileData/MemProf.cpp index 9d5ac748d7975..1c240c3858cc7 100644 --- a/llvm/lib/ProfileData/MemProf.cpp +++ b/llvm/lib/ProfileData/MemProf.cpp @@ -23,18 +23,6 @@ MemProfSchema getHotColdSchema() { Meta::TotalLifetimeAccessDensity}; } -static size_t serializedSizeV0(const IndexedAllocationInfo &IAI, - const MemProfSchema &Schema) { - size_t Size = 0; - // The number of frames to serialize. - Size += sizeof(uint64_t); - // The callstack frame ids. - Size += sizeof(FrameId) * IAI.CallStack.size(); - // The size of the payload. - Size += PortableMemInfoBlock::serializedSize(Schema); - return Size; -} - static size_t serializedSizeV2(const IndexedAllocationInfo &IAI, const MemProfSchema &Schema) { size_t Size = 0; @@ -58,8 +46,6 @@ static size_t serializedSizeV3(const IndexedAllocationInfo &IAI, size_t IndexedAllocationInfo::serializedSize(const MemProfSchema &Schema, IndexedVersion Version) const { switch (Version) { - case Version1: - return serializedSizeV0(*this, Schema); case Version2: return serializedSizeV2(*this, Schema); case Version3: @@ -68,23 +54,6 @@ size_t IndexedAllocationInfo::serializedSize(const MemProfSchema &Schema, llvm_unreachable("unsupported MemProf version"); } -static size_t serializedSizeV1(const IndexedMemProfRecord &Record, - const MemProfSchema &Schema) { - // The number of alloc sites to serialize. - size_t Result = sizeof(uint64_t); - for (const IndexedAllocationInfo &N : Record.AllocSites) - Result += N.serializedSize(Schema, Version1); - - // The number of callsites we have information for. - Result += sizeof(uint64_t); - for (const auto &Frames : Record.CallSites) { - // The number of frame ids to serialize. - Result += sizeof(uint64_t); - Result += Frames.size() * sizeof(FrameId); - } - return Result; -} - static size_t serializedSizeV2(const IndexedMemProfRecord &Record, const MemProfSchema &Schema) { // The number of alloc sites to serialize. @@ -116,8 +85,6 @@ static size_t serializedSizeV3(const IndexedMemProfRecord &Record, size_t IndexedMemProfRecord::serializedSize(const MemProfSchema &Schema, IndexedVersion Version) const { switch (Version) { - case Version1: - return serializedSizeV1(*this, Schema); case Version2: return serializedSizeV2(*this, Schema); case Version3: @@ -126,29 +93,6 @@ size_t IndexedMemProfRecord::serializedSize(const MemProfSchema &Schema, llvm_unreachable("unsupported MemProf version"); } -static void serializeV1(const IndexedMemProfRecord &Record, - const MemProfSchema &Schema, raw_ostream &OS) { - using namespace support; - - endian::Writer LE(OS, llvm::endianness::little); - - LE.write(Record.AllocSites.size()); - for (const IndexedAllocationInfo &N : Record.AllocSites) { - LE.write(N.CallStack.size()); - for (const FrameId &Id : N.CallStack) - LE.write(Id); - N.Info.serialize(Schema, OS); - } - - // Related contexts. - LE.write(Record.CallSites.size()); - for (const auto &Frames : Record.CallSites) { - LE.write(Frames.size()); - for (const FrameId &Id : Frames) - LE.write(Id); - } -} - static void serializeV2(const IndexedMemProfRecord &Record, const MemProfSchema &Schema, raw_ostream &OS) { using namespace support; @@ -195,9 +139,6 @@ void IndexedMemProfRecord::serialize( llvm::DenseMap *MemProfCallStackIndexes) const { switch (Version) { - case Version1: - serializeV1(*this, Schema, OS); - return; case Version2: serializeV2(*this, Schema, OS); return; @@ -208,50 +149,6 @@ void IndexedMemProfRecord::serialize( llvm_unreachable("unsupported MemProf version"); } -static IndexedMemProfRecord deserializeV1(const MemProfSchema &Schema, - const unsigned char *Ptr) { - using namespace support; - - IndexedMemProfRecord Record; - - // Read the meminfo nodes. - const uint64_t NumNodes = - endian::readNext(Ptr); - for (uint64_t I = 0; I < NumNodes; I++) { - IndexedAllocationInfo Node; - const uint64_t NumFrames = - endian::readNext(Ptr); - for (uint64_t J = 0; J < NumFrames; J++) { - const FrameId Id = - endian::readNext(Ptr); - Node.CallStack.push_back(Id); - } - Node.CSId = hashCallStack(Node.CallStack); - Node.Info.deserialize(Schema, Ptr); - Ptr += PortableMemInfoBlock::serializedSize(Schema); - Record.AllocSites.push_back(Node); - } - - // Read the callsite information. - const uint64_t NumCtxs = - endian::readNext(Ptr); - for (uint64_t J = 0; J < NumCtxs; J++) { - const uint64_t NumFrames = - endian::readNext(Ptr); - llvm::SmallVector Frames; - Frames.reserve(NumFrames); - for (uint64_t K = 0; K < NumFrames; K++) { - const FrameId Id = - endian::readNext(Ptr); - Frames.push_back(Id); - } - Record.CallSites.push_back(Frames); - Record.CallSiteIds.push_back(hashCallStack(Frames)); - } - - return Record; -} - static IndexedMemProfRecord deserializeV2(const MemProfSchema &Schema, const unsigned char *Ptr) { using namespace support; @@ -324,8 +221,6 @@ IndexedMemProfRecord::deserialize(const MemProfSchema &Schema, const unsigned char *Ptr, IndexedVersion Version) { switch (Version) { - case Version1: - return deserializeV1(Schema, Ptr); case Version2: return deserializeV2(Schema, Ptr); case Version3: @@ -440,8 +335,7 @@ template LinearCallStackId CallStackRadixTreeBuilder::encodeCallStack( const llvm::SmallVector *CallStack, const llvm::SmallVector *Prev, - std::optional> - MemProfFrameIndexes) { + const llvm::DenseMap *MemProfFrameIndexes) { // Compute the length of the common root prefix between Prev and CallStack. uint32_t CommonLen = 0; if (Prev) { @@ -486,8 +380,7 @@ template void CallStackRadixTreeBuilder::build( llvm::MapVector> &&MemProfCallStackData, - std::optional> - MemProfFrameIndexes, + const llvm::DenseMap *MemProfFrameIndexes, llvm::DenseMap &FrameHistogram) { // Take the vector portion of MemProfCallStackData. The vector is exactly // what we need to sort. Also, we no longer need its lookup capability. @@ -615,6 +508,7 @@ void CallStackRadixTreeBuilder::build( // Explicitly instantiate class with the utilized FrameIdTy. template class CallStackRadixTreeBuilder; +template class CallStackRadixTreeBuilder; template llvm::DenseMap @@ -637,22 +531,9 @@ computeFrameHistogram(llvm::MapVector> template llvm::DenseMap computeFrameHistogram( llvm::MapVector> &MemProfCallStackData); - -void verifyIndexedMemProfRecord(const IndexedMemProfRecord &Record) { - for (const auto &AS : Record.AllocSites) { - assert(AS.CSId == hashCallStack(AS.CallStack)); - (void)AS; - } -} - -void verifyFunctionProfileData( - const llvm::MapVector - &FunctionProfileData) { - for (const auto &[GUID, Record] : FunctionProfileData) { - (void)GUID; - verifyIndexedMemProfRecord(Record); - } -} - +template llvm::DenseMap +computeFrameHistogram( + llvm::MapVector> + &MemProfCallStackData); } // namespace memprof } // namespace llvm diff --git a/llvm/lib/ProfileData/MemProfReader.cpp b/llvm/lib/ProfileData/MemProfReader.cpp index de5b4c23c58a0..6c5cf823fb9e0 100644 --- a/llvm/lib/ProfileData/MemProfReader.cpp +++ b/llvm/lib/ProfileData/MemProfReader.cpp @@ -228,28 +228,6 @@ std::string getBuildIdString(const SegmentEntry &Entry) { } } // namespace -MemProfReader::MemProfReader( - llvm::DenseMap FrameIdMap, - llvm::MapVector ProfData) - : IdToFrame(std::move(FrameIdMap)), - FunctionProfileData(std::move(ProfData)) { - // Populate CSId in each IndexedAllocationInfo and IndexedMemProfRecord - // while storing CallStack in CSIdToCallStack. - for (auto &KV : FunctionProfileData) { - IndexedMemProfRecord &Record = KV.second; - for (auto &AS : Record.AllocSites) { - CallStackId CSId = hashCallStack(AS.CallStack); - AS.CSId = CSId; - CSIdToCallStack.insert({CSId, AS.CallStack}); - } - for (auto &CS : Record.CallSites) { - CallStackId CSId = hashCallStack(CS); - Record.CallSiteIds.push_back(CSId); - CSIdToCallStack.insert({CSId, CS}); - } - } -} - Expected> RawMemProfReader::create(const Twine &Path, const StringRef ProfiledBinary, bool KeepName) { @@ -549,8 +527,6 @@ Error RawMemProfReader::mapRawProfileToRecords() { } } - verifyFunctionProfileData(FunctionProfileData); - return Error::success(); } diff --git a/llvm/lib/SandboxIR/Region.cpp b/llvm/lib/SandboxIR/Region.cpp index b6292f3b24b87..1455012440f90 100644 --- a/llvm/lib/SandboxIR/Region.cpp +++ b/llvm/lib/SandboxIR/Region.cpp @@ -15,9 +15,17 @@ Region::Region(Context &Ctx) : Ctx(Ctx) { LLVMContext &LLVMCtx = Ctx.LLVMCtx; auto *RegionStrMD = MDString::get(LLVMCtx, RegionStr); RegionMDN = MDNode::getDistinct(LLVMCtx, {RegionStrMD}); + + CreateInstCB = Ctx.registerCreateInstrCallback( + [this](Instruction *NewInst) { add(NewInst); }); + EraseInstCB = Ctx.registerEraseInstrCallback( + [this](Instruction *ErasedInst) { remove(ErasedInst); }); } -Region::~Region() {} +Region::~Region() { + Ctx.unregisterCreateInstrCallback(CreateInstCB); + Ctx.unregisterEraseInstrCallback(EraseInstCB); +} void Region::add(Instruction *I) { Insts.insert(I); diff --git a/llvm/lib/Support/Compression.cpp b/llvm/lib/Support/Compression.cpp index badaf68ab59cd..3979ca6acaf74 100644 --- a/llvm/lib/Support/Compression.cpp +++ b/llvm/lib/Support/Compression.cpp @@ -206,12 +206,13 @@ Error zstd::decompress(ArrayRef Input, uint8_t *Output, const size_t Res = ::ZSTD_decompress( Output, UncompressedSize, (const uint8_t *)Input.data(), Input.size()); UncompressedSize = Res; + if (ZSTD_isError(Res)) + return make_error(ZSTD_getErrorName(Res), + inconvertibleErrorCode()); // Tell MemorySanitizer that zstd output buffer is fully initialized. // This avoids a false report when running LLVM with uninstrumented ZLib. __msan_unpoison(Output, UncompressedSize); - return ZSTD_isError(Res) ? make_error(ZSTD_getErrorName(Res), - inconvertibleErrorCode()) - : Error::success(); + return Error::success(); } Error zstd::decompress(ArrayRef Input, diff --git a/llvm/lib/Support/InitLLVM.cpp b/llvm/lib/Support/InitLLVM.cpp index eb89f6f8915cb..50f7a43cc34a7 100644 --- a/llvm/lib/Support/InitLLVM.cpp +++ b/llvm/lib/Support/InitLLVM.cpp @@ -8,6 +8,7 @@ #include "llvm/Support/InitLLVM.h" #include "llvm/ADT/StringRef.h" +#include "llvm/Support/AutoConvert.h" #include "llvm/Support/Error.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/ManagedStatic.h" diff --git a/llvm/lib/Support/raw_ostream.cpp b/llvm/lib/Support/raw_ostream.cpp index 91fb4dbf16720..5d30c797ebf5b 100644 --- a/llvm/lib/Support/raw_ostream.cpp +++ b/llvm/lib/Support/raw_ostream.cpp @@ -13,6 +13,7 @@ #include "llvm/Support/raw_ostream.h" #include "llvm/ADT/StringExtras.h" #include "llvm/Config/config.h" +#include "llvm/Support/AutoConvert.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/Duration.h" #include "llvm/Support/ErrorHandling.h" diff --git a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp index 216244950ba9e..d6673969aa305 100644 --- a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp +++ b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp @@ -1010,7 +1010,7 @@ void AArch64FrameLowering::emitZeroCallUsedRegs(BitVector RegsToZero, BitVector GPRsToZero(TRI.getNumRegs()); BitVector FPRsToZero(TRI.getNumRegs()); - bool HasSVE = STI.hasSVE(); + bool HasSVE = STI.isSVEorStreamingSVEAvailable(); for (MCRegister Reg : RegsToZero.set_bits()) { if (TRI.isGeneralPurposeRegister(MF, Reg)) { // For GPRs, we only care to clear out the 64-bit register. diff --git a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp index 10dad7675f4ea..8512fd9ae4017 100644 --- a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp +++ b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp @@ -32,7 +32,7 @@ using namespace llvm; #define PASS_NAME "AArch64 Instruction Selection" // https://github.com/llvm/llvm-project/issues/114425 -#if defined(_WIN32) && !defined(__clang__) && !defined(NDEBUG) +#if defined(_MSC_VER) && !defined(__clang__) && !defined(NDEBUG) #pragma inline_depth(0) #endif diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp index 7ab3fc06715ec..e1be825fcf7bf 100644 --- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp +++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp @@ -4901,13 +4901,14 @@ SDValue AArch64TargetLowering::LowerVectorINT_TO_FP(SDValue Op, if (IsStrict) { SDValue Val = DAG.getNode(Op.getOpcode(), dl, {F32, MVT::Other}, {Op.getOperand(0), In}); - return DAG.getNode( - ISD::STRICT_FP_ROUND, dl, {Op.getValueType(), MVT::Other}, - {Val.getValue(1), Val.getValue(0), DAG.getIntPtrConstant(0, dl)}); + return DAG.getNode(ISD::STRICT_FP_ROUND, dl, + {Op.getValueType(), MVT::Other}, + {Val.getValue(1), Val.getValue(0), + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}); } return DAG.getNode(ISD::FP_ROUND, dl, Op.getValueType(), DAG.getNode(Op.getOpcode(), dl, F32, In), - DAG.getIntPtrConstant(0, dl)); + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); } uint64_t VTSize = VT.getFixedSizeInBits(); @@ -4919,9 +4920,9 @@ SDValue AArch64TargetLowering::LowerVectorINT_TO_FP(SDValue Op, if (IsStrict) { In = DAG.getNode(Opc, dl, {CastVT, MVT::Other}, {Op.getOperand(0), In}); - return DAG.getNode( - ISD::STRICT_FP_ROUND, dl, {VT, MVT::Other}, - {In.getValue(1), In.getValue(0), DAG.getIntPtrConstant(0, dl)}); + return DAG.getNode(ISD::STRICT_FP_ROUND, dl, {VT, MVT::Other}, + {In.getValue(1), In.getValue(0), + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}); } In = DAG.getNode(Opc, dl, CastVT, In); return DAG.getNode(ISD::FP_ROUND, dl, VT, In, @@ -4969,13 +4970,14 @@ SDValue AArch64TargetLowering::LowerINT_TO_FP(SDValue Op, if (IsStrict) { SDValue Val = DAG.getNode(Op.getOpcode(), dl, {PromoteVT, MVT::Other}, {Op.getOperand(0), SrcVal}); - return DAG.getNode( - ISD::STRICT_FP_ROUND, dl, {Op.getValueType(), MVT::Other}, - {Val.getValue(1), Val.getValue(0), DAG.getIntPtrConstant(0, dl)}); + return DAG.getNode(ISD::STRICT_FP_ROUND, dl, + {Op.getValueType(), MVT::Other}, + {Val.getValue(1), Val.getValue(0), + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}); } return DAG.getNode(ISD::FP_ROUND, dl, Op.getValueType(), DAG.getNode(Op.getOpcode(), dl, PromoteVT, SrcVal), - DAG.getIntPtrConstant(0, dl)); + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); }; if (Op.getValueType() == MVT::bf16) { @@ -5067,12 +5069,13 @@ SDValue AArch64TargetLowering::LowerINT_TO_FP(SDValue Op, DAG.getNode(ISD::OR, DL, MVT::i64, RoundedBits, NeedsAdjustment); SDValue Adjusted = DAG.getNode(ISD::BITCAST, DL, MVT::f64, AdjustedBits); return IsStrict - ? DAG.getNode(ISD::STRICT_FP_ROUND, DL, - {Op.getValueType(), MVT::Other}, - {Rounded.getValue(1), Adjusted, - DAG.getIntPtrConstant(0, DL)}) + ? DAG.getNode( + ISD::STRICT_FP_ROUND, DL, + {Op.getValueType(), MVT::Other}, + {Rounded.getValue(1), Adjusted, + DAG.getIntPtrConstant(0, DL, /*isTarget=*/true)}) : DAG.getNode(ISD::FP_ROUND, DL, Op.getValueType(), Adjusted, - DAG.getIntPtrConstant(0, DL, true)); + DAG.getIntPtrConstant(0, DL, /*isTarget=*/true)); } } @@ -7109,7 +7112,7 @@ static SDValue LowerFLDEXP(SDValue Op, SelectionDAG &DAG) { DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, X.getValueType(), FScale, Zero); if (X.getValueType() != XScalarTy) Final = DAG.getNode(ISD::FP_ROUND, DL, XScalarTy, Final, - DAG.getIntPtrConstant(1, SDLoc(Op))); + DAG.getIntPtrConstant(1, SDLoc(Op), /*isTarget=*/true)); return Final; } @@ -29211,6 +29214,11 @@ SDValue AArch64TargetLowering::LowerFixedLengthVECTOR_SHUFFLEToSVE( } } + // Try to widen the shuffle before generating a possibly expensive SVE TBL. + // This may allow the shuffle to be matched as something cheaper like ZIP1. + if (SDValue WideOp = tryWidenMaskForShuffle(Op, DAG)) + return WideOp; + // Avoid producing TBL instruction if we don't know SVE register minimal size, // unless NEON is not available and we can assume minimal SVE register size is // 128-bits. diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp b/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp index a470c03efd5eb..8a3ed10b8e0bd 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp @@ -9700,13 +9700,20 @@ void AArch64InstrInfo::buildClearRegister(Register Reg, MachineBasicBlock &MBB, if (TRI.isGeneralPurposeRegister(MF, Reg)) { BuildMI(MBB, Iter, DL, get(AArch64::MOVZXi), Reg).addImm(0).addImm(0); - } else if (STI.hasSVE()) { + } else if (STI.isSVEorStreamingSVEAvailable()) { BuildMI(MBB, Iter, DL, get(AArch64::DUP_ZI_D), Reg) .addImm(0) .addImm(0); - } else { + } else if (STI.isNeonAvailable()) { BuildMI(MBB, Iter, DL, get(AArch64::MOVIv2d_ns), Reg) .addImm(0); + } else { + // This is a streaming-compatible function without SVE. We don't have full + // Neon (just FPRs), so we can at most use the first 64-bit sub-register. + // So given `movi v..` would be illegal use `fmov d..` instead. + assert(STI.hasNEON() && "Expected to have NEON."); + Register Reg64 = TRI.getSubReg(Reg, AArch64::dsub); + BuildMI(MBB, Iter, DL, get(AArch64::FMOVD0), Reg64); } } diff --git a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp index 4f46ca1538db2..ab00da51cf4fa 100644 --- a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp +++ b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp @@ -1540,10 +1540,7 @@ static bool canRenameMOP(const MachineOperand &MOP, // Note that this relies on the structure of the AArch64 register file. In // particular, a subregister cannot be written without overwriting the // whole register. - if (RegClass->HasDisjunctSubRegs && RegClass->CoveredBySubRegs && - (TRI->getSubRegisterClass(RegClass, AArch64::dsub0) || - TRI->getSubRegisterClass(RegClass, AArch64::qsub0) || - TRI->getSubRegisterClass(RegClass, AArch64::zsub0))) { + if (RegClass->HasDisjunctSubRegs) { LLVM_DEBUG( dbgs() << " Cannot rename operands with multiple disjunct subregisters (" diff --git a/llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp b/llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp index 94a49bde74fd6..36a7becbc76d3 100644 --- a/llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp +++ b/llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp @@ -205,7 +205,7 @@ bool AArch64MIPeepholeOpt::visitAND( // // The mov pseudo instruction could be expanded to multiple mov instructions // later. Let's try to split the constant operand of mov instruction into two - // bitmask immediates. It makes only two AND instructions intead of multiple + // bitmask immediates. It makes only two AND instructions instead of multiple // mov + and instructions. return splitTwoPartImm( @@ -389,7 +389,7 @@ bool AArch64MIPeepholeOpt::visitADDSUB( // // The mov pseudo instruction could be expanded to multiple mov instructions // later. Let's try to split the constant operand of mov instruction into two - // legal add/sub immediates. It makes only two ADD/SUB instructions intead of + // legal add/sub immediates. It makes only two ADD/SUB instructions instead of // multiple `mov` + `and/sub` instructions. // We can sometimes have ADDWrr WZR, MULi32imm that have not been constant diff --git a/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp b/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp index f13c162776a9b..380f37df0bc2b 100644 --- a/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp @@ -423,57 +423,6 @@ AArch64RegisterInfo::explainReservedReg(const MachineFunction &MF, return {}; } -static const MCPhysReg ReservedHi[] = { - AArch64::B0_HI, AArch64::B1_HI, AArch64::B2_HI, AArch64::B3_HI, - AArch64::B4_HI, AArch64::B5_HI, AArch64::B6_HI, AArch64::B7_HI, - AArch64::B8_HI, AArch64::B9_HI, AArch64::B10_HI, AArch64::B11_HI, - AArch64::B12_HI, AArch64::B13_HI, AArch64::B14_HI, AArch64::B15_HI, - AArch64::B16_HI, AArch64::B17_HI, AArch64::B18_HI, AArch64::B19_HI, - AArch64::B20_HI, AArch64::B21_HI, AArch64::B22_HI, AArch64::B23_HI, - AArch64::B24_HI, AArch64::B25_HI, AArch64::B26_HI, AArch64::B27_HI, - AArch64::B28_HI, AArch64::B29_HI, AArch64::B30_HI, AArch64::B31_HI, - AArch64::H0_HI, AArch64::H1_HI, AArch64::H2_HI, AArch64::H3_HI, - AArch64::H4_HI, AArch64::H5_HI, AArch64::H6_HI, AArch64::H7_HI, - AArch64::H8_HI, AArch64::H9_HI, AArch64::H10_HI, AArch64::H11_HI, - AArch64::H12_HI, AArch64::H13_HI, AArch64::H14_HI, AArch64::H15_HI, - AArch64::H16_HI, AArch64::H17_HI, AArch64::H18_HI, AArch64::H19_HI, - AArch64::H20_HI, AArch64::H21_HI, AArch64::H22_HI, AArch64::H23_HI, - AArch64::H24_HI, AArch64::H25_HI, AArch64::H26_HI, AArch64::H27_HI, - AArch64::H28_HI, AArch64::H29_HI, AArch64::H30_HI, AArch64::H31_HI, - AArch64::S0_HI, AArch64::S1_HI, AArch64::S2_HI, AArch64::S3_HI, - AArch64::S4_HI, AArch64::S5_HI, AArch64::S6_HI, AArch64::S7_HI, - AArch64::S8_HI, AArch64::S9_HI, AArch64::S10_HI, AArch64::S11_HI, - AArch64::S12_HI, AArch64::S13_HI, AArch64::S14_HI, AArch64::S15_HI, - AArch64::S16_HI, AArch64::S17_HI, AArch64::S18_HI, AArch64::S19_HI, - AArch64::S20_HI, AArch64::S21_HI, AArch64::S22_HI, AArch64::S23_HI, - AArch64::S24_HI, AArch64::S25_HI, AArch64::S26_HI, AArch64::S27_HI, - AArch64::S28_HI, AArch64::S29_HI, AArch64::S30_HI, AArch64::S31_HI, - AArch64::D0_HI, AArch64::D1_HI, AArch64::D2_HI, AArch64::D3_HI, - AArch64::D4_HI, AArch64::D5_HI, AArch64::D6_HI, AArch64::D7_HI, - AArch64::D8_HI, AArch64::D9_HI, AArch64::D10_HI, AArch64::D11_HI, - AArch64::D12_HI, AArch64::D13_HI, AArch64::D14_HI, AArch64::D15_HI, - AArch64::D16_HI, AArch64::D17_HI, AArch64::D18_HI, AArch64::D19_HI, - AArch64::D20_HI, AArch64::D21_HI, AArch64::D22_HI, AArch64::D23_HI, - AArch64::D24_HI, AArch64::D25_HI, AArch64::D26_HI, AArch64::D27_HI, - AArch64::D28_HI, AArch64::D29_HI, AArch64::D30_HI, AArch64::D31_HI, - AArch64::Q0_HI, AArch64::Q1_HI, AArch64::Q2_HI, AArch64::Q3_HI, - AArch64::Q4_HI, AArch64::Q5_HI, AArch64::Q6_HI, AArch64::Q7_HI, - AArch64::Q8_HI, AArch64::Q9_HI, AArch64::Q10_HI, AArch64::Q11_HI, - AArch64::Q12_HI, AArch64::Q13_HI, AArch64::Q14_HI, AArch64::Q15_HI, - AArch64::Q16_HI, AArch64::Q17_HI, AArch64::Q18_HI, AArch64::Q19_HI, - AArch64::Q20_HI, AArch64::Q21_HI, AArch64::Q22_HI, AArch64::Q23_HI, - AArch64::Q24_HI, AArch64::Q25_HI, AArch64::Q26_HI, AArch64::Q27_HI, - AArch64::Q28_HI, AArch64::Q29_HI, AArch64::Q30_HI, AArch64::Q31_HI, - AArch64::W0_HI, AArch64::W1_HI, AArch64::W2_HI, AArch64::W3_HI, - AArch64::W4_HI, AArch64::W5_HI, AArch64::W6_HI, AArch64::W7_HI, - AArch64::W8_HI, AArch64::W9_HI, AArch64::W10_HI, AArch64::W11_HI, - AArch64::W12_HI, AArch64::W13_HI, AArch64::W14_HI, AArch64::W15_HI, - AArch64::W16_HI, AArch64::W17_HI, AArch64::W18_HI, AArch64::W19_HI, - AArch64::W20_HI, AArch64::W21_HI, AArch64::W22_HI, AArch64::W23_HI, - AArch64::W24_HI, AArch64::W25_HI, AArch64::W26_HI, AArch64::W27_HI, - AArch64::W28_HI, AArch64::W29_HI, AArch64::W30_HI, AArch64::WSP_HI, - AArch64::WZR_HI}; - BitVector AArch64RegisterInfo::getStrictlyReservedRegs(const MachineFunction &MF) const { const AArch64FrameLowering *TFI = getFrameLowering(MF); @@ -540,10 +489,7 @@ AArch64RegisterInfo::getStrictlyReservedRegs(const MachineFunction &MF) const { markSuperRegs(Reserved, AArch64::W28); } - for (Register R : ReservedHi) - Reserved.set(R); - - assert(checkAllSuperRegsMarked(Reserved, ReservedHi)); + assert(checkAllSuperRegsMarked(Reserved)); return Reserved; } @@ -567,7 +513,7 @@ AArch64RegisterInfo::getReservedRegs(const MachineFunction &MF) const { markSuperRegs(Reserved, AArch64::LR); } - assert(checkAllSuperRegsMarked(Reserved, ReservedHi)); + assert(checkAllSuperRegsMarked(Reserved)); return Reserved; } diff --git a/llvm/lib/Target/AArch64/AArch64RegisterInfo.td b/llvm/lib/Target/AArch64/AArch64RegisterInfo.td index 4fec120391f01..ed16a007b49cf 100644 --- a/llvm/lib/Target/AArch64/AArch64RegisterInfo.td +++ b/llvm/lib/Target/AArch64/AArch64RegisterInfo.td @@ -20,49 +20,33 @@ class AArch64Reg enc, string n, list subregs = [], let Namespace = "AArch64" in { // SubRegIndexes for GPR registers - def sub_32 : SubRegIndex<32>; - def sube64 : SubRegIndex<64>; - def subo64 : SubRegIndex<64>; - def sube32 : SubRegIndex<32>; - def subo32 : SubRegIndex<32>; + def sub_32 : SubRegIndex<32>; + def sube64 : SubRegIndex<64>; + def subo64 : SubRegIndex<64>; + def sube32 : SubRegIndex<32>; + def subo32 : SubRegIndex<32>; // SubRegIndexes for FPR/Vector registers - def bsub : SubRegIndex<8, 0>; - def hsub : SubRegIndex<16, 0>; - def ssub : SubRegIndex<32, 0>; - def dsub : SubRegIndex<64, 0>; - def zsub : SubRegIndex<128, 0>; - - // The _hi SubRegIndexes describe the high bits of a register which are not - // separately addressable. They need to be described so that partially - // overlapping registers end up with a different lane mask. This is required - // to enable subreg liveness tracking. - // - // For example: 8-bit B0 is a sub-register of 16-bit H0. - // * B0 is described with 'bsub'. - // * H0 is described with 'bsub + bsub_hi' == 'hsub'. - def bsub_hi : SubRegIndex<8, 8>; - def hsub_hi : SubRegIndex<16, 16>; - def ssub_hi : SubRegIndex<32, 32>; - def dsub_hi : SubRegIndex<64, 64>; - def zsub_hi : SubRegIndex<-1, 128>; - // sub_32_hi describes the top 32 bits in e.g. X0 - def sub_32_hi : SubRegIndex<32, 32>; + def bsub : SubRegIndex<8>; + def hsub : SubRegIndex<16>; + def ssub : SubRegIndex<32>; + def dsub : SubRegIndex<64>; + def zsub : SubRegIndex<128>; // Note: Code depends on these having consecutive numbers - def zsub0 : SubRegIndex<-1>; - def zsub1 : SubRegIndex<-1>; - def zsub2 : SubRegIndex<-1>; - def zsub3 : SubRegIndex<-1>; - // Note: Code depends on these having consecutive numbers - def qsub0 : SubRegIndex<128>; - def qsub1 : ComposedSubRegIndex; - def qsub2 : ComposedSubRegIndex; - def qsub3 : ComposedSubRegIndex; + def zsub0 : SubRegIndex<128, -1>; + def zsub1 : SubRegIndex<128, -1>; + def zsub2 : SubRegIndex<128, -1>; + def zsub3 : SubRegIndex<128, -1>; // Note: Code depends on these having consecutive numbers def dsub0 : SubRegIndex<64>; - def dsub1 : ComposedSubRegIndex; - def dsub2 : ComposedSubRegIndex; - def dsub3 : ComposedSubRegIndex; + def dsub1 : SubRegIndex<64>; + def dsub2 : SubRegIndex<64>; + def dsub3 : SubRegIndex<64>; + // Note: Code depends on these having consecutive numbers + def qsub0 : SubRegIndex<128>; + def qsub1 : SubRegIndex<128>; + def qsub2 : SubRegIndex<128>; + def qsub3 : SubRegIndex<128>; // SubRegIndexes for SME Matrix tiles def zasubb : SubRegIndex<2048>; // (16 x 16)/1 bytes = 2048 bits @@ -76,10 +60,10 @@ let Namespace = "AArch64" in { def zasubq1 : SubRegIndex<128>; // (16 x 16)/16 bytes = 128 bits // SubRegIndexes for SVE Predicates - def psub : SubRegIndex<-1>; + def psub : SubRegIndex<16>; // Note: Code depends on these having consecutive numbers - def psub0 : SubRegIndex<-1>; - def psub1 : SubRegIndex<-1>; + def psub0 : SubRegIndex<16, -1>; + def psub1 : SubRegIndex<16, -1>; } let Namespace = "AArch64" in { @@ -90,14 +74,6 @@ let Namespace = "AArch64" in { //===----------------------------------------------------------------------===// // Registers //===----------------------------------------------------------------------===// - -foreach i = 0-30 in { - // Define W0_HI, W1_HI, .. W30_HI - def W#i#_HI : AArch64Reg<-1, "w"#i#"_hi"> { let isArtificial = 1; } -} -def WSP_HI : AArch64Reg<-1, "wsp_hi"> { let isArtificial = 1; } -def WZR_HI : AArch64Reg<-1, "wzr_hi"> { let isArtificial = 1; } - def W0 : AArch64Reg<0, "w0" >, DwarfRegNum<[0]>; def W1 : AArch64Reg<1, "w1" >, DwarfRegNum<[1]>; def W2 : AArch64Reg<2, "w2" >, DwarfRegNum<[2]>; @@ -130,42 +106,44 @@ def W28 : AArch64Reg<28, "w28">, DwarfRegNum<[28]>; def W29 : AArch64Reg<29, "w29">, DwarfRegNum<[29]>; def W30 : AArch64Reg<30, "w30">, DwarfRegNum<[30]>; def WSP : AArch64Reg<31, "wsp">, DwarfRegNum<[31]>; -def WZR : AArch64Reg<31, "wzr">, DwarfRegAlias { let isConstant = true; } - -let SubRegIndices = [sub_32, sub_32_hi], CoveredBySubRegs = 1 in { -def X0 : AArch64Reg<0, "x0", [W0, W0_HI]>, DwarfRegAlias; -def X1 : AArch64Reg<1, "x1", [W1, W1_HI]>, DwarfRegAlias; -def X2 : AArch64Reg<2, "x2", [W2, W2_HI]>, DwarfRegAlias; -def X3 : AArch64Reg<3, "x3", [W3, W3_HI]>, DwarfRegAlias; -def X4 : AArch64Reg<4, "x4", [W4, W4_HI]>, DwarfRegAlias; -def X5 : AArch64Reg<5, "x5", [W5, W5_HI]>, DwarfRegAlias; -def X6 : AArch64Reg<6, "x6", [W6, W6_HI]>, DwarfRegAlias; -def X7 : AArch64Reg<7, "x7", [W7, W7_HI]>, DwarfRegAlias; -def X8 : AArch64Reg<8, "x8", [W8, W8_HI]>, DwarfRegAlias; -def X9 : AArch64Reg<9, "x9", [W9, W9_HI]>, DwarfRegAlias; -def X10 : AArch64Reg<10, "x10", [W10, W10_HI]>, DwarfRegAlias; -def X11 : AArch64Reg<11, "x11", [W11, W11_HI]>, DwarfRegAlias; -def X12 : AArch64Reg<12, "x12", [W12, W12_HI]>, DwarfRegAlias; -def X13 : AArch64Reg<13, "x13", [W13, W13_HI]>, DwarfRegAlias; -def X14 : AArch64Reg<14, "x14", [W14, W14_HI]>, DwarfRegAlias; -def X15 : AArch64Reg<15, "x15", [W15, W15_HI]>, DwarfRegAlias; -def X16 : AArch64Reg<16, "x16", [W16, W16_HI]>, DwarfRegAlias; -def X17 : AArch64Reg<17, "x17", [W17, W17_HI]>, DwarfRegAlias; -def X18 : AArch64Reg<18, "x18", [W18, W18_HI]>, DwarfRegAlias; -def X19 : AArch64Reg<19, "x19", [W19, W19_HI]>, DwarfRegAlias; -def X20 : AArch64Reg<20, "x20", [W20, W20_HI]>, DwarfRegAlias; -def X21 : AArch64Reg<21, "x21", [W21, W21_HI]>, DwarfRegAlias; -def X22 : AArch64Reg<22, "x22", [W22, W22_HI]>, DwarfRegAlias; -def X23 : AArch64Reg<23, "x23", [W23, W23_HI]>, DwarfRegAlias; -def X24 : AArch64Reg<24, "x24", [W24, W24_HI]>, DwarfRegAlias; -def X25 : AArch64Reg<25, "x25", [W25, W25_HI]>, DwarfRegAlias; -def X26 : AArch64Reg<26, "x26", [W26, W26_HI]>, DwarfRegAlias; -def X27 : AArch64Reg<27, "x27", [W27, W27_HI]>, DwarfRegAlias; -def X28 : AArch64Reg<28, "x28", [W28, W28_HI]>, DwarfRegAlias; -def FP : AArch64Reg<29, "x29", [W29, W29_HI]>, DwarfRegAlias; -def LR : AArch64Reg<30, "x30", [W30, W30_HI]>, DwarfRegAlias; -def SP : AArch64Reg<31, "sp", [WSP, WSP_HI]>, DwarfRegAlias; -def XZR : AArch64Reg<31, "xzr", [WZR, WZR_HI]>, DwarfRegAlias { let isConstant = true; } +let isConstant = true in +def WZR : AArch64Reg<31, "wzr">, DwarfRegAlias; + +let SubRegIndices = [sub_32] in { +def X0 : AArch64Reg<0, "x0", [W0]>, DwarfRegAlias; +def X1 : AArch64Reg<1, "x1", [W1]>, DwarfRegAlias; +def X2 : AArch64Reg<2, "x2", [W2]>, DwarfRegAlias; +def X3 : AArch64Reg<3, "x3", [W3]>, DwarfRegAlias; +def X4 : AArch64Reg<4, "x4", [W4]>, DwarfRegAlias; +def X5 : AArch64Reg<5, "x5", [W5]>, DwarfRegAlias; +def X6 : AArch64Reg<6, "x6", [W6]>, DwarfRegAlias; +def X7 : AArch64Reg<7, "x7", [W7]>, DwarfRegAlias; +def X8 : AArch64Reg<8, "x8", [W8]>, DwarfRegAlias; +def X9 : AArch64Reg<9, "x9", [W9]>, DwarfRegAlias; +def X10 : AArch64Reg<10, "x10", [W10]>, DwarfRegAlias; +def X11 : AArch64Reg<11, "x11", [W11]>, DwarfRegAlias; +def X12 : AArch64Reg<12, "x12", [W12]>, DwarfRegAlias; +def X13 : AArch64Reg<13, "x13", [W13]>, DwarfRegAlias; +def X14 : AArch64Reg<14, "x14", [W14]>, DwarfRegAlias; +def X15 : AArch64Reg<15, "x15", [W15]>, DwarfRegAlias; +def X16 : AArch64Reg<16, "x16", [W16]>, DwarfRegAlias; +def X17 : AArch64Reg<17, "x17", [W17]>, DwarfRegAlias; +def X18 : AArch64Reg<18, "x18", [W18]>, DwarfRegAlias; +def X19 : AArch64Reg<19, "x19", [W19]>, DwarfRegAlias; +def X20 : AArch64Reg<20, "x20", [W20]>, DwarfRegAlias; +def X21 : AArch64Reg<21, "x21", [W21]>, DwarfRegAlias; +def X22 : AArch64Reg<22, "x22", [W22]>, DwarfRegAlias; +def X23 : AArch64Reg<23, "x23", [W23]>, DwarfRegAlias; +def X24 : AArch64Reg<24, "x24", [W24]>, DwarfRegAlias; +def X25 : AArch64Reg<25, "x25", [W25]>, DwarfRegAlias; +def X26 : AArch64Reg<26, "x26", [W26]>, DwarfRegAlias; +def X27 : AArch64Reg<27, "x27", [W27]>, DwarfRegAlias; +def X28 : AArch64Reg<28, "x28", [W28]>, DwarfRegAlias; +def FP : AArch64Reg<29, "x29", [W29]>, DwarfRegAlias; +def LR : AArch64Reg<30, "x30", [W30]>, DwarfRegAlias; +def SP : AArch64Reg<31, "sp", [WSP]>, DwarfRegAlias; +let isConstant = true in +def XZR : AArch64Reg<31, "xzr", [WZR]>, DwarfRegAlias; } // Condition code register. @@ -316,14 +294,6 @@ def CCR : RegisterClass<"AArch64", [i32], 32, (add NZCV)> { // Floating Point Scalar Registers //===----------------------------------------------------------------------===// -foreach i = 0-31 in { - def B#i#_HI : AArch64Reg<-1, "b"#i#"_hi"> { let isArtificial = 1; } - def H#i#_HI : AArch64Reg<-1, "h"#i#"_hi"> { let isArtificial = 1; } - def S#i#_HI : AArch64Reg<-1, "s"#i#"_hi"> { let isArtificial = 1; } - def D#i#_HI : AArch64Reg<-1, "d"#i#"_hi"> { let isArtificial = 1; } - def Q#i#_HI : AArch64Reg<-1, "q"#i#"_hi"> { let isArtificial = 1; } -} - def B0 : AArch64Reg<0, "b0">, DwarfRegNum<[64]>; def B1 : AArch64Reg<1, "b1">, DwarfRegNum<[65]>; def B2 : AArch64Reg<2, "b2">, DwarfRegNum<[66]>; @@ -357,144 +327,144 @@ def B29 : AArch64Reg<29, "b29">, DwarfRegNum<[93]>; def B30 : AArch64Reg<30, "b30">, DwarfRegNum<[94]>; def B31 : AArch64Reg<31, "b31">, DwarfRegNum<[95]>; -let SubRegIndices = [bsub, bsub_hi] in { -def H0 : AArch64Reg<0, "h0", [B0, B0_HI]>, DwarfRegAlias; -def H1 : AArch64Reg<1, "h1", [B1, B1_HI]>, DwarfRegAlias; -def H2 : AArch64Reg<2, "h2", [B2, B2_HI]>, DwarfRegAlias; -def H3 : AArch64Reg<3, "h3", [B3, B3_HI]>, DwarfRegAlias; -def H4 : AArch64Reg<4, "h4", [B4, B4_HI]>, DwarfRegAlias; -def H5 : AArch64Reg<5, "h5", [B5, B5_HI]>, DwarfRegAlias; -def H6 : AArch64Reg<6, "h6", [B6, B6_HI]>, DwarfRegAlias; -def H7 : AArch64Reg<7, "h7", [B7, B7_HI]>, DwarfRegAlias; -def H8 : AArch64Reg<8, "h8", [B8, B8_HI]>, DwarfRegAlias; -def H9 : AArch64Reg<9, "h9", [B9, B9_HI]>, DwarfRegAlias; -def H10 : AArch64Reg<10, "h10", [B10, B10_HI]>, DwarfRegAlias; -def H11 : AArch64Reg<11, "h11", [B11, B11_HI]>, DwarfRegAlias; -def H12 : AArch64Reg<12, "h12", [B12, B12_HI]>, DwarfRegAlias; -def H13 : AArch64Reg<13, "h13", [B13, B13_HI]>, DwarfRegAlias; -def H14 : AArch64Reg<14, "h14", [B14, B14_HI]>, DwarfRegAlias; -def H15 : AArch64Reg<15, "h15", [B15, B15_HI]>, DwarfRegAlias; -def H16 : AArch64Reg<16, "h16", [B16, B16_HI]>, DwarfRegAlias; -def H17 : AArch64Reg<17, "h17", [B17, B17_HI]>, DwarfRegAlias; -def H18 : AArch64Reg<18, "h18", [B18, B18_HI]>, DwarfRegAlias; -def H19 : AArch64Reg<19, "h19", [B19, B19_HI]>, DwarfRegAlias; -def H20 : AArch64Reg<20, "h20", [B20, B20_HI]>, DwarfRegAlias; -def H21 : AArch64Reg<21, "h21", [B21, B21_HI]>, DwarfRegAlias; -def H22 : AArch64Reg<22, "h22", [B22, B22_HI]>, DwarfRegAlias; -def H23 : AArch64Reg<23, "h23", [B23, B23_HI]>, DwarfRegAlias; -def H24 : AArch64Reg<24, "h24", [B24, B24_HI]>, DwarfRegAlias; -def H25 : AArch64Reg<25, "h25", [B25, B25_HI]>, DwarfRegAlias; -def H26 : AArch64Reg<26, "h26", [B26, B26_HI]>, DwarfRegAlias; -def H27 : AArch64Reg<27, "h27", [B27, B27_HI]>, DwarfRegAlias; -def H28 : AArch64Reg<28, "h28", [B28, B28_HI]>, DwarfRegAlias; -def H29 : AArch64Reg<29, "h29", [B29, B29_HI]>, DwarfRegAlias; -def H30 : AArch64Reg<30, "h30", [B30, B30_HI]>, DwarfRegAlias; -def H31 : AArch64Reg<31, "h31", [B31, B31_HI]>, DwarfRegAlias; -} - -let SubRegIndices = [hsub, hsub_hi] in { -def S0 : AArch64Reg<0, "s0", [H0, H0_HI]>, DwarfRegAlias; -def S1 : AArch64Reg<1, "s1", [H1, H1_HI]>, DwarfRegAlias; -def S2 : AArch64Reg<2, "s2", [H2, H2_HI]>, DwarfRegAlias; -def S3 : AArch64Reg<3, "s3", [H3, H3_HI]>, DwarfRegAlias; -def S4 : AArch64Reg<4, "s4", [H4, H4_HI]>, DwarfRegAlias; -def S5 : AArch64Reg<5, "s5", [H5, H5_HI]>, DwarfRegAlias; -def S6 : AArch64Reg<6, "s6", [H6, H6_HI]>, DwarfRegAlias; -def S7 : AArch64Reg<7, "s7", [H7, H7_HI]>, DwarfRegAlias; -def S8 : AArch64Reg<8, "s8", [H8, H8_HI]>, DwarfRegAlias; -def S9 : AArch64Reg<9, "s9", [H9, H9_HI]>, DwarfRegAlias; -def S10 : AArch64Reg<10, "s10", [H10, H10_HI]>, DwarfRegAlias; -def S11 : AArch64Reg<11, "s11", [H11, H11_HI]>, DwarfRegAlias; -def S12 : AArch64Reg<12, "s12", [H12, H12_HI]>, DwarfRegAlias; -def S13 : AArch64Reg<13, "s13", [H13, H13_HI]>, DwarfRegAlias; -def S14 : AArch64Reg<14, "s14", [H14, H14_HI]>, DwarfRegAlias; -def S15 : AArch64Reg<15, "s15", [H15, H15_HI]>, DwarfRegAlias; -def S16 : AArch64Reg<16, "s16", [H16, H16_HI]>, DwarfRegAlias; -def S17 : AArch64Reg<17, "s17", [H17, H17_HI]>, DwarfRegAlias; -def S18 : AArch64Reg<18, "s18", [H18, H18_HI]>, DwarfRegAlias; -def S19 : AArch64Reg<19, "s19", [H19, H19_HI]>, DwarfRegAlias; -def S20 : AArch64Reg<20, "s20", [H20, H20_HI]>, DwarfRegAlias; -def S21 : AArch64Reg<21, "s21", [H21, H21_HI]>, DwarfRegAlias; -def S22 : AArch64Reg<22, "s22", [H22, H22_HI]>, DwarfRegAlias; -def S23 : AArch64Reg<23, "s23", [H23, H23_HI]>, DwarfRegAlias; -def S24 : AArch64Reg<24, "s24", [H24, H24_HI]>, DwarfRegAlias; -def S25 : AArch64Reg<25, "s25", [H25, H25_HI]>, DwarfRegAlias; -def S26 : AArch64Reg<26, "s26", [H26, H26_HI]>, DwarfRegAlias; -def S27 : AArch64Reg<27, "s27", [H27, H27_HI]>, DwarfRegAlias; -def S28 : AArch64Reg<28, "s28", [H28, H28_HI]>, DwarfRegAlias; -def S29 : AArch64Reg<29, "s29", [H29, H29_HI]>, DwarfRegAlias; -def S30 : AArch64Reg<30, "s30", [H30, H30_HI]>, DwarfRegAlias; -def S31 : AArch64Reg<31, "s31", [H31, H31_HI]>, DwarfRegAlias; -} - -let SubRegIndices = [ssub, ssub_hi], RegAltNameIndices = [vreg, vlist1] in { -def D0 : AArch64Reg<0, "d0", [S0, S0_HI], ["v0", ""]>, DwarfRegAlias; -def D1 : AArch64Reg<1, "d1", [S1, S1_HI], ["v1", ""]>, DwarfRegAlias; -def D2 : AArch64Reg<2, "d2", [S2, S2_HI], ["v2", ""]>, DwarfRegAlias; -def D3 : AArch64Reg<3, "d3", [S3, S3_HI], ["v3", ""]>, DwarfRegAlias; -def D4 : AArch64Reg<4, "d4", [S4, S4_HI], ["v4", ""]>, DwarfRegAlias; -def D5 : AArch64Reg<5, "d5", [S5, S5_HI], ["v5", ""]>, DwarfRegAlias; -def D6 : AArch64Reg<6, "d6", [S6, S6_HI], ["v6", ""]>, DwarfRegAlias; -def D7 : AArch64Reg<7, "d7", [S7, S7_HI], ["v7", ""]>, DwarfRegAlias; -def D8 : AArch64Reg<8, "d8", [S8, S8_HI], ["v8", ""]>, DwarfRegAlias; -def D9 : AArch64Reg<9, "d9", [S9, S9_HI], ["v9", ""]>, DwarfRegAlias; -def D10 : AArch64Reg<10, "d10", [S10, S10_HI], ["v10", ""]>, DwarfRegAlias; -def D11 : AArch64Reg<11, "d11", [S11, S11_HI], ["v11", ""]>, DwarfRegAlias; -def D12 : AArch64Reg<12, "d12", [S12, S12_HI], ["v12", ""]>, DwarfRegAlias; -def D13 : AArch64Reg<13, "d13", [S13, S13_HI], ["v13", ""]>, DwarfRegAlias; -def D14 : AArch64Reg<14, "d14", [S14, S14_HI], ["v14", ""]>, DwarfRegAlias; -def D15 : AArch64Reg<15, "d15", [S15, S15_HI], ["v15", ""]>, DwarfRegAlias; -def D16 : AArch64Reg<16, "d16", [S16, S16_HI], ["v16", ""]>, DwarfRegAlias; -def D17 : AArch64Reg<17, "d17", [S17, S17_HI], ["v17", ""]>, DwarfRegAlias; -def D18 : AArch64Reg<18, "d18", [S18, S18_HI], ["v18", ""]>, DwarfRegAlias; -def D19 : AArch64Reg<19, "d19", [S19, S19_HI], ["v19", ""]>, DwarfRegAlias; -def D20 : AArch64Reg<20, "d20", [S20, S20_HI], ["v20", ""]>, DwarfRegAlias; -def D21 : AArch64Reg<21, "d21", [S21, S21_HI], ["v21", ""]>, DwarfRegAlias; -def D22 : AArch64Reg<22, "d22", [S22, S22_HI], ["v22", ""]>, DwarfRegAlias; -def D23 : AArch64Reg<23, "d23", [S23, S23_HI], ["v23", ""]>, DwarfRegAlias; -def D24 : AArch64Reg<24, "d24", [S24, S24_HI], ["v24", ""]>, DwarfRegAlias; -def D25 : AArch64Reg<25, "d25", [S25, S25_HI], ["v25", ""]>, DwarfRegAlias; -def D26 : AArch64Reg<26, "d26", [S26, S26_HI], ["v26", ""]>, DwarfRegAlias; -def D27 : AArch64Reg<27, "d27", [S27, S27_HI], ["v27", ""]>, DwarfRegAlias; -def D28 : AArch64Reg<28, "d28", [S28, S28_HI], ["v28", ""]>, DwarfRegAlias; -def D29 : AArch64Reg<29, "d29", [S29, S29_HI], ["v29", ""]>, DwarfRegAlias; -def D30 : AArch64Reg<30, "d30", [S30, S30_HI], ["v30", ""]>, DwarfRegAlias; -def D31 : AArch64Reg<31, "d31", [S31, S31_HI], ["v31", ""]>, DwarfRegAlias; -} - -let SubRegIndices = [dsub, dsub_hi], RegAltNameIndices = [vreg, vlist1] in { -def Q0 : AArch64Reg<0, "q0", [D0, D0_HI], ["v0", ""]>, DwarfRegAlias; -def Q1 : AArch64Reg<1, "q1", [D1, D1_HI], ["v1", ""]>, DwarfRegAlias; -def Q2 : AArch64Reg<2, "q2", [D2, D2_HI], ["v2", ""]>, DwarfRegAlias; -def Q3 : AArch64Reg<3, "q3", [D3, D3_HI], ["v3", ""]>, DwarfRegAlias; -def Q4 : AArch64Reg<4, "q4", [D4, D4_HI], ["v4", ""]>, DwarfRegAlias; -def Q5 : AArch64Reg<5, "q5", [D5, D5_HI], ["v5", ""]>, DwarfRegAlias; -def Q6 : AArch64Reg<6, "q6", [D6, D6_HI], ["v6", ""]>, DwarfRegAlias; -def Q7 : AArch64Reg<7, "q7", [D7, D7_HI], ["v7", ""]>, DwarfRegAlias; -def Q8 : AArch64Reg<8, "q8", [D8, D8_HI], ["v8", ""]>, DwarfRegAlias; -def Q9 : AArch64Reg<9, "q9", [D9, D9_HI], ["v9", ""]>, DwarfRegAlias; -def Q10 : AArch64Reg<10, "q10", [D10, D10_HI], ["v10", ""]>, DwarfRegAlias; -def Q11 : AArch64Reg<11, "q11", [D11, D11_HI], ["v11", ""]>, DwarfRegAlias; -def Q12 : AArch64Reg<12, "q12", [D12, D12_HI], ["v12", ""]>, DwarfRegAlias; -def Q13 : AArch64Reg<13, "q13", [D13, D13_HI], ["v13", ""]>, DwarfRegAlias; -def Q14 : AArch64Reg<14, "q14", [D14, D14_HI], ["v14", ""]>, DwarfRegAlias; -def Q15 : AArch64Reg<15, "q15", [D15, D15_HI], ["v15", ""]>, DwarfRegAlias; -def Q16 : AArch64Reg<16, "q16", [D16, D16_HI], ["v16", ""]>, DwarfRegAlias; -def Q17 : AArch64Reg<17, "q17", [D17, D17_HI], ["v17", ""]>, DwarfRegAlias; -def Q18 : AArch64Reg<18, "q18", [D18, D18_HI], ["v18", ""]>, DwarfRegAlias; -def Q19 : AArch64Reg<19, "q19", [D19, D19_HI], ["v19", ""]>, DwarfRegAlias; -def Q20 : AArch64Reg<20, "q20", [D20, D20_HI], ["v20", ""]>, DwarfRegAlias; -def Q21 : AArch64Reg<21, "q21", [D21, D21_HI], ["v21", ""]>, DwarfRegAlias; -def Q22 : AArch64Reg<22, "q22", [D22, D22_HI], ["v22", ""]>, DwarfRegAlias; -def Q23 : AArch64Reg<23, "q23", [D23, D23_HI], ["v23", ""]>, DwarfRegAlias; -def Q24 : AArch64Reg<24, "q24", [D24, D24_HI], ["v24", ""]>, DwarfRegAlias; -def Q25 : AArch64Reg<25, "q25", [D25, D25_HI], ["v25", ""]>, DwarfRegAlias; -def Q26 : AArch64Reg<26, "q26", [D26, D26_HI], ["v26", ""]>, DwarfRegAlias; -def Q27 : AArch64Reg<27, "q27", [D27, D27_HI], ["v27", ""]>, DwarfRegAlias; -def Q28 : AArch64Reg<28, "q28", [D28, D28_HI], ["v28", ""]>, DwarfRegAlias; -def Q29 : AArch64Reg<29, "q29", [D29, D29_HI], ["v29", ""]>, DwarfRegAlias; -def Q30 : AArch64Reg<30, "q30", [D30, D30_HI], ["v30", ""]>, DwarfRegAlias; -def Q31 : AArch64Reg<31, "q31", [D31, D31_HI], ["v31", ""]>, DwarfRegAlias; +let SubRegIndices = [bsub] in { +def H0 : AArch64Reg<0, "h0", [B0]>, DwarfRegAlias; +def H1 : AArch64Reg<1, "h1", [B1]>, DwarfRegAlias; +def H2 : AArch64Reg<2, "h2", [B2]>, DwarfRegAlias; +def H3 : AArch64Reg<3, "h3", [B3]>, DwarfRegAlias; +def H4 : AArch64Reg<4, "h4", [B4]>, DwarfRegAlias; +def H5 : AArch64Reg<5, "h5", [B5]>, DwarfRegAlias; +def H6 : AArch64Reg<6, "h6", [B6]>, DwarfRegAlias; +def H7 : AArch64Reg<7, "h7", [B7]>, DwarfRegAlias; +def H8 : AArch64Reg<8, "h8", [B8]>, DwarfRegAlias; +def H9 : AArch64Reg<9, "h9", [B9]>, DwarfRegAlias; +def H10 : AArch64Reg<10, "h10", [B10]>, DwarfRegAlias; +def H11 : AArch64Reg<11, "h11", [B11]>, DwarfRegAlias; +def H12 : AArch64Reg<12, "h12", [B12]>, DwarfRegAlias; +def H13 : AArch64Reg<13, "h13", [B13]>, DwarfRegAlias; +def H14 : AArch64Reg<14, "h14", [B14]>, DwarfRegAlias; +def H15 : AArch64Reg<15, "h15", [B15]>, DwarfRegAlias; +def H16 : AArch64Reg<16, "h16", [B16]>, DwarfRegAlias; +def H17 : AArch64Reg<17, "h17", [B17]>, DwarfRegAlias; +def H18 : AArch64Reg<18, "h18", [B18]>, DwarfRegAlias; +def H19 : AArch64Reg<19, "h19", [B19]>, DwarfRegAlias; +def H20 : AArch64Reg<20, "h20", [B20]>, DwarfRegAlias; +def H21 : AArch64Reg<21, "h21", [B21]>, DwarfRegAlias; +def H22 : AArch64Reg<22, "h22", [B22]>, DwarfRegAlias; +def H23 : AArch64Reg<23, "h23", [B23]>, DwarfRegAlias; +def H24 : AArch64Reg<24, "h24", [B24]>, DwarfRegAlias; +def H25 : AArch64Reg<25, "h25", [B25]>, DwarfRegAlias; +def H26 : AArch64Reg<26, "h26", [B26]>, DwarfRegAlias; +def H27 : AArch64Reg<27, "h27", [B27]>, DwarfRegAlias; +def H28 : AArch64Reg<28, "h28", [B28]>, DwarfRegAlias; +def H29 : AArch64Reg<29, "h29", [B29]>, DwarfRegAlias; +def H30 : AArch64Reg<30, "h30", [B30]>, DwarfRegAlias; +def H31 : AArch64Reg<31, "h31", [B31]>, DwarfRegAlias; +} + +let SubRegIndices = [hsub] in { +def S0 : AArch64Reg<0, "s0", [H0]>, DwarfRegAlias; +def S1 : AArch64Reg<1, "s1", [H1]>, DwarfRegAlias; +def S2 : AArch64Reg<2, "s2", [H2]>, DwarfRegAlias; +def S3 : AArch64Reg<3, "s3", [H3]>, DwarfRegAlias; +def S4 : AArch64Reg<4, "s4", [H4]>, DwarfRegAlias; +def S5 : AArch64Reg<5, "s5", [H5]>, DwarfRegAlias; +def S6 : AArch64Reg<6, "s6", [H6]>, DwarfRegAlias; +def S7 : AArch64Reg<7, "s7", [H7]>, DwarfRegAlias; +def S8 : AArch64Reg<8, "s8", [H8]>, DwarfRegAlias; +def S9 : AArch64Reg<9, "s9", [H9]>, DwarfRegAlias; +def S10 : AArch64Reg<10, "s10", [H10]>, DwarfRegAlias; +def S11 : AArch64Reg<11, "s11", [H11]>, DwarfRegAlias; +def S12 : AArch64Reg<12, "s12", [H12]>, DwarfRegAlias; +def S13 : AArch64Reg<13, "s13", [H13]>, DwarfRegAlias; +def S14 : AArch64Reg<14, "s14", [H14]>, DwarfRegAlias; +def S15 : AArch64Reg<15, "s15", [H15]>, DwarfRegAlias; +def S16 : AArch64Reg<16, "s16", [H16]>, DwarfRegAlias; +def S17 : AArch64Reg<17, "s17", [H17]>, DwarfRegAlias; +def S18 : AArch64Reg<18, "s18", [H18]>, DwarfRegAlias; +def S19 : AArch64Reg<19, "s19", [H19]>, DwarfRegAlias; +def S20 : AArch64Reg<20, "s20", [H20]>, DwarfRegAlias; +def S21 : AArch64Reg<21, "s21", [H21]>, DwarfRegAlias; +def S22 : AArch64Reg<22, "s22", [H22]>, DwarfRegAlias; +def S23 : AArch64Reg<23, "s23", [H23]>, DwarfRegAlias; +def S24 : AArch64Reg<24, "s24", [H24]>, DwarfRegAlias; +def S25 : AArch64Reg<25, "s25", [H25]>, DwarfRegAlias; +def S26 : AArch64Reg<26, "s26", [H26]>, DwarfRegAlias; +def S27 : AArch64Reg<27, "s27", [H27]>, DwarfRegAlias; +def S28 : AArch64Reg<28, "s28", [H28]>, DwarfRegAlias; +def S29 : AArch64Reg<29, "s29", [H29]>, DwarfRegAlias; +def S30 : AArch64Reg<30, "s30", [H30]>, DwarfRegAlias; +def S31 : AArch64Reg<31, "s31", [H31]>, DwarfRegAlias; +} + +let SubRegIndices = [ssub], RegAltNameIndices = [vreg, vlist1] in { +def D0 : AArch64Reg<0, "d0", [S0], ["v0", ""]>, DwarfRegAlias; +def D1 : AArch64Reg<1, "d1", [S1], ["v1", ""]>, DwarfRegAlias; +def D2 : AArch64Reg<2, "d2", [S2], ["v2", ""]>, DwarfRegAlias; +def D3 : AArch64Reg<3, "d3", [S3], ["v3", ""]>, DwarfRegAlias; +def D4 : AArch64Reg<4, "d4", [S4], ["v4", ""]>, DwarfRegAlias; +def D5 : AArch64Reg<5, "d5", [S5], ["v5", ""]>, DwarfRegAlias; +def D6 : AArch64Reg<6, "d6", [S6], ["v6", ""]>, DwarfRegAlias; +def D7 : AArch64Reg<7, "d7", [S7], ["v7", ""]>, DwarfRegAlias; +def D8 : AArch64Reg<8, "d8", [S8], ["v8", ""]>, DwarfRegAlias; +def D9 : AArch64Reg<9, "d9", [S9], ["v9", ""]>, DwarfRegAlias; +def D10 : AArch64Reg<10, "d10", [S10], ["v10", ""]>, DwarfRegAlias; +def D11 : AArch64Reg<11, "d11", [S11], ["v11", ""]>, DwarfRegAlias; +def D12 : AArch64Reg<12, "d12", [S12], ["v12", ""]>, DwarfRegAlias; +def D13 : AArch64Reg<13, "d13", [S13], ["v13", ""]>, DwarfRegAlias; +def D14 : AArch64Reg<14, "d14", [S14], ["v14", ""]>, DwarfRegAlias; +def D15 : AArch64Reg<15, "d15", [S15], ["v15", ""]>, DwarfRegAlias; +def D16 : AArch64Reg<16, "d16", [S16], ["v16", ""]>, DwarfRegAlias; +def D17 : AArch64Reg<17, "d17", [S17], ["v17", ""]>, DwarfRegAlias; +def D18 : AArch64Reg<18, "d18", [S18], ["v18", ""]>, DwarfRegAlias; +def D19 : AArch64Reg<19, "d19", [S19], ["v19", ""]>, DwarfRegAlias; +def D20 : AArch64Reg<20, "d20", [S20], ["v20", ""]>, DwarfRegAlias; +def D21 : AArch64Reg<21, "d21", [S21], ["v21", ""]>, DwarfRegAlias; +def D22 : AArch64Reg<22, "d22", [S22], ["v22", ""]>, DwarfRegAlias; +def D23 : AArch64Reg<23, "d23", [S23], ["v23", ""]>, DwarfRegAlias; +def D24 : AArch64Reg<24, "d24", [S24], ["v24", ""]>, DwarfRegAlias; +def D25 : AArch64Reg<25, "d25", [S25], ["v25", ""]>, DwarfRegAlias; +def D26 : AArch64Reg<26, "d26", [S26], ["v26", ""]>, DwarfRegAlias; +def D27 : AArch64Reg<27, "d27", [S27], ["v27", ""]>, DwarfRegAlias; +def D28 : AArch64Reg<28, "d28", [S28], ["v28", ""]>, DwarfRegAlias; +def D29 : AArch64Reg<29, "d29", [S29], ["v29", ""]>, DwarfRegAlias; +def D30 : AArch64Reg<30, "d30", [S30], ["v30", ""]>, DwarfRegAlias; +def D31 : AArch64Reg<31, "d31", [S31], ["v31", ""]>, DwarfRegAlias; +} + +let SubRegIndices = [dsub], RegAltNameIndices = [vreg, vlist1] in { +def Q0 : AArch64Reg<0, "q0", [D0], ["v0", ""]>, DwarfRegAlias; +def Q1 : AArch64Reg<1, "q1", [D1], ["v1", ""]>, DwarfRegAlias; +def Q2 : AArch64Reg<2, "q2", [D2], ["v2", ""]>, DwarfRegAlias; +def Q3 : AArch64Reg<3, "q3", [D3], ["v3", ""]>, DwarfRegAlias; +def Q4 : AArch64Reg<4, "q4", [D4], ["v4", ""]>, DwarfRegAlias; +def Q5 : AArch64Reg<5, "q5", [D5], ["v5", ""]>, DwarfRegAlias; +def Q6 : AArch64Reg<6, "q6", [D6], ["v6", ""]>, DwarfRegAlias; +def Q7 : AArch64Reg<7, "q7", [D7], ["v7", ""]>, DwarfRegAlias; +def Q8 : AArch64Reg<8, "q8", [D8], ["v8", ""]>, DwarfRegAlias; +def Q9 : AArch64Reg<9, "q9", [D9], ["v9", ""]>, DwarfRegAlias; +def Q10 : AArch64Reg<10, "q10", [D10], ["v10", ""]>, DwarfRegAlias; +def Q11 : AArch64Reg<11, "q11", [D11], ["v11", ""]>, DwarfRegAlias; +def Q12 : AArch64Reg<12, "q12", [D12], ["v12", ""]>, DwarfRegAlias; +def Q13 : AArch64Reg<13, "q13", [D13], ["v13", ""]>, DwarfRegAlias; +def Q14 : AArch64Reg<14, "q14", [D14], ["v14", ""]>, DwarfRegAlias; +def Q15 : AArch64Reg<15, "q15", [D15], ["v15", ""]>, DwarfRegAlias; +def Q16 : AArch64Reg<16, "q16", [D16], ["v16", ""]>, DwarfRegAlias; +def Q17 : AArch64Reg<17, "q17", [D17], ["v17", ""]>, DwarfRegAlias; +def Q18 : AArch64Reg<18, "q18", [D18], ["v18", ""]>, DwarfRegAlias; +def Q19 : AArch64Reg<19, "q19", [D19], ["v19", ""]>, DwarfRegAlias; +def Q20 : AArch64Reg<20, "q20", [D20], ["v20", ""]>, DwarfRegAlias; +def Q21 : AArch64Reg<21, "q21", [D21], ["v21", ""]>, DwarfRegAlias; +def Q22 : AArch64Reg<22, "q22", [D22], ["v22", ""]>, DwarfRegAlias; +def Q23 : AArch64Reg<23, "q23", [D23], ["v23", ""]>, DwarfRegAlias; +def Q24 : AArch64Reg<24, "q24", [D24], ["v24", ""]>, DwarfRegAlias; +def Q25 : AArch64Reg<25, "q25", [D25], ["v25", ""]>, DwarfRegAlias; +def Q26 : AArch64Reg<26, "q26", [D26], ["v26", ""]>, DwarfRegAlias; +def Q27 : AArch64Reg<27, "q27", [D27], ["v27", ""]>, DwarfRegAlias; +def Q28 : AArch64Reg<28, "q28", [D28], ["v28", ""]>, DwarfRegAlias; +def Q29 : AArch64Reg<29, "q29", [D29], ["v29", ""]>, DwarfRegAlias; +def Q30 : AArch64Reg<30, "q30", [D30], ["v30", ""]>, DwarfRegAlias; +def Q31 : AArch64Reg<31, "q31", [D31], ["v31", ""]>, DwarfRegAlias; } def FPR8 : RegisterClass<"AArch64", [i8], 8, (sequence "B%u", 0, 31)> { @@ -902,39 +872,39 @@ let SubRegIndices = [psub] in { } // SVE variable-size vector registers -let SubRegIndices = [zsub, zsub_hi] in { -def Z0 : AArch64Reg<0, "z0", [Q0, Q0_HI]>, DwarfRegNum<[96]>; -def Z1 : AArch64Reg<1, "z1", [Q1, Q1_HI]>, DwarfRegNum<[97]>; -def Z2 : AArch64Reg<2, "z2", [Q2, Q2_HI]>, DwarfRegNum<[98]>; -def Z3 : AArch64Reg<3, "z3", [Q3, Q3_HI]>, DwarfRegNum<[99]>; -def Z4 : AArch64Reg<4, "z4", [Q4, Q4_HI]>, DwarfRegNum<[100]>; -def Z5 : AArch64Reg<5, "z5", [Q5, Q5_HI]>, DwarfRegNum<[101]>; -def Z6 : AArch64Reg<6, "z6", [Q6, Q6_HI]>, DwarfRegNum<[102]>; -def Z7 : AArch64Reg<7, "z7", [Q7, Q7_HI]>, DwarfRegNum<[103]>; -def Z8 : AArch64Reg<8, "z8", [Q8, Q8_HI]>, DwarfRegNum<[104]>; -def Z9 : AArch64Reg<9, "z9", [Q9, Q9_HI]>, DwarfRegNum<[105]>; -def Z10 : AArch64Reg<10, "z10", [Q10, Q10_HI]>, DwarfRegNum<[106]>; -def Z11 : AArch64Reg<11, "z11", [Q11, Q11_HI]>, DwarfRegNum<[107]>; -def Z12 : AArch64Reg<12, "z12", [Q12, Q12_HI]>, DwarfRegNum<[108]>; -def Z13 : AArch64Reg<13, "z13", [Q13, Q13_HI]>, DwarfRegNum<[109]>; -def Z14 : AArch64Reg<14, "z14", [Q14, Q14_HI]>, DwarfRegNum<[110]>; -def Z15 : AArch64Reg<15, "z15", [Q15, Q15_HI]>, DwarfRegNum<[111]>; -def Z16 : AArch64Reg<16, "z16", [Q16, Q16_HI]>, DwarfRegNum<[112]>; -def Z17 : AArch64Reg<17, "z17", [Q17, Q17_HI]>, DwarfRegNum<[113]>; -def Z18 : AArch64Reg<18, "z18", [Q18, Q18_HI]>, DwarfRegNum<[114]>; -def Z19 : AArch64Reg<19, "z19", [Q19, Q19_HI]>, DwarfRegNum<[115]>; -def Z20 : AArch64Reg<20, "z20", [Q20, Q20_HI]>, DwarfRegNum<[116]>; -def Z21 : AArch64Reg<21, "z21", [Q21, Q21_HI]>, DwarfRegNum<[117]>; -def Z22 : AArch64Reg<22, "z22", [Q22, Q22_HI]>, DwarfRegNum<[118]>; -def Z23 : AArch64Reg<23, "z23", [Q23, Q23_HI]>, DwarfRegNum<[119]>; -def Z24 : AArch64Reg<24, "z24", [Q24, Q24_HI]>, DwarfRegNum<[120]>; -def Z25 : AArch64Reg<25, "z25", [Q25, Q25_HI]>, DwarfRegNum<[121]>; -def Z26 : AArch64Reg<26, "z26", [Q26, Q26_HI]>, DwarfRegNum<[122]>; -def Z27 : AArch64Reg<27, "z27", [Q27, Q27_HI]>, DwarfRegNum<[123]>; -def Z28 : AArch64Reg<28, "z28", [Q28, Q28_HI]>, DwarfRegNum<[124]>; -def Z29 : AArch64Reg<29, "z29", [Q29, Q29_HI]>, DwarfRegNum<[125]>; -def Z30 : AArch64Reg<30, "z30", [Q30, Q30_HI]>, DwarfRegNum<[126]>; -def Z31 : AArch64Reg<31, "z31", [Q31, Q31_HI]>, DwarfRegNum<[127]>; +let SubRegIndices = [zsub] in { +def Z0 : AArch64Reg<0, "z0", [Q0]>, DwarfRegNum<[96]>; +def Z1 : AArch64Reg<1, "z1", [Q1]>, DwarfRegNum<[97]>; +def Z2 : AArch64Reg<2, "z2", [Q2]>, DwarfRegNum<[98]>; +def Z3 : AArch64Reg<3, "z3", [Q3]>, DwarfRegNum<[99]>; +def Z4 : AArch64Reg<4, "z4", [Q4]>, DwarfRegNum<[100]>; +def Z5 : AArch64Reg<5, "z5", [Q5]>, DwarfRegNum<[101]>; +def Z6 : AArch64Reg<6, "z6", [Q6]>, DwarfRegNum<[102]>; +def Z7 : AArch64Reg<7, "z7", [Q7]>, DwarfRegNum<[103]>; +def Z8 : AArch64Reg<8, "z8", [Q8]>, DwarfRegNum<[104]>; +def Z9 : AArch64Reg<9, "z9", [Q9]>, DwarfRegNum<[105]>; +def Z10 : AArch64Reg<10, "z10", [Q10]>, DwarfRegNum<[106]>; +def Z11 : AArch64Reg<11, "z11", [Q11]>, DwarfRegNum<[107]>; +def Z12 : AArch64Reg<12, "z12", [Q12]>, DwarfRegNum<[108]>; +def Z13 : AArch64Reg<13, "z13", [Q13]>, DwarfRegNum<[109]>; +def Z14 : AArch64Reg<14, "z14", [Q14]>, DwarfRegNum<[110]>; +def Z15 : AArch64Reg<15, "z15", [Q15]>, DwarfRegNum<[111]>; +def Z16 : AArch64Reg<16, "z16", [Q16]>, DwarfRegNum<[112]>; +def Z17 : AArch64Reg<17, "z17", [Q17]>, DwarfRegNum<[113]>; +def Z18 : AArch64Reg<18, "z18", [Q18]>, DwarfRegNum<[114]>; +def Z19 : AArch64Reg<19, "z19", [Q19]>, DwarfRegNum<[115]>; +def Z20 : AArch64Reg<20, "z20", [Q20]>, DwarfRegNum<[116]>; +def Z21 : AArch64Reg<21, "z21", [Q21]>, DwarfRegNum<[117]>; +def Z22 : AArch64Reg<22, "z22", [Q22]>, DwarfRegNum<[118]>; +def Z23 : AArch64Reg<23, "z23", [Q23]>, DwarfRegNum<[119]>; +def Z24 : AArch64Reg<24, "z24", [Q24]>, DwarfRegNum<[120]>; +def Z25 : AArch64Reg<25, "z25", [Q25]>, DwarfRegNum<[121]>; +def Z26 : AArch64Reg<26, "z26", [Q26]>, DwarfRegNum<[122]>; +def Z27 : AArch64Reg<27, "z27", [Q27]>, DwarfRegNum<[123]>; +def Z28 : AArch64Reg<28, "z28", [Q28]>, DwarfRegNum<[124]>; +def Z29 : AArch64Reg<29, "z29", [Q29]>, DwarfRegNum<[125]>; +def Z30 : AArch64Reg<30, "z30", [Q30]>, DwarfRegNum<[126]>; +def Z31 : AArch64Reg<31, "z31", [Q31]>, DwarfRegNum<[127]>; } // Enum describing the element size for destructive @@ -1979,15 +1949,6 @@ def svcr_op : Operand, TImmLeaf; - def B_HI_DummyRC : RegisterClass<"AArch64", [untyped], 0, (sequence "B%u_HI", 0, 31)>; - def H_HI_DummyRC : RegisterClass<"AArch64", [untyped], 0, (sequence "H%u_HI", 0, 31)>; - def S_HI_DummyRC : RegisterClass<"AArch64", [untyped], 0, (sequence "S%u_HI", 0, 31)>; - def D_HI_DummyRC : RegisterClass<"AArch64", [untyped], 0, (sequence "D%u_HI", 0, 31)>; - def Q_HI_DummyRC : RegisterClass<"AArch64", [untyped], 0, (sequence "Q%u_HI", 0, 31)>; -} - //===----------------------------------------------------------------------===// // Register categories. // diff --git a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp index ec7bb71fd111f..7a1e401bca18c 100644 --- a/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp @@ -266,16 +266,7 @@ bool AArch64TTIImpl::areInlineCompatible(const Function *Caller, return false; } - const TargetMachine &TM = getTLI()->getTargetMachine(); - - const FeatureBitset &CallerBits = - TM.getSubtargetImpl(*Caller)->getFeatureBits(); - const FeatureBitset &CalleeBits = - TM.getSubtargetImpl(*Callee)->getFeatureBits(); - - // Inline a callee if its target-features are a subset of the callers - // target-features. - return (CallerBits & CalleeBits) == CalleeBits; + return BaseT::areInlineCompatible(Caller, Callee); } bool AArch64TTIImpl::areTypesABICompatible( diff --git a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp index c8f01068f7218..ad31f29c04599 100644 --- a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp +++ b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp @@ -840,13 +840,15 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) getActionDefinitionsBuilder(G_PTRTOINT) .legalFor({{s64, p0}, {v2s64, v2p0}}) .widenScalarToNextPow2(0, 64) - .clampScalar(0, s64, s64); + .clampScalar(0, s64, s64) + .clampMaxNumElements(0, s64, 2); getActionDefinitionsBuilder(G_INTTOPTR) .unsupportedIf([&](const LegalityQuery &Query) { return Query.Types[0].getSizeInBits() != Query.Types[1].getSizeInBits(); }) - .legalFor({{p0, s64}, {v2p0, v2s64}}); + .legalFor({{p0, s64}, {v2p0, v2s64}}) + .clampMaxNumElements(1, s64, 2); // Casts for 32 and 64-bit width type are just copies. // Same for 128-bit width type, except they are on the FPR bank. @@ -1053,7 +1055,7 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) if (DstTy != SrcTy) return false; return llvm::is_contained( - {v2s64, v2p0, v2s32, v4s32, v4s16, v16s8, v8s8, v8s16}, DstTy); + {v2s64, v2s32, v4s32, v4s16, v16s8, v8s8, v8s16}, DstTy); }) // G_SHUFFLE_VECTOR can have scalar sources (from 1 x s vectors), we // just want those lowered into G_BUILD_VECTOR @@ -1079,7 +1081,12 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) .clampNumElements(0, v8s8, v16s8) .clampNumElements(0, v4s16, v8s16) .clampNumElements(0, v4s32, v4s32) - .clampNumElements(0, v2s64, v2s64); + .clampNumElements(0, v2s64, v2s64) + .bitcastIf(isPointerVector(0), [=](const LegalityQuery &Query) { + // Bitcast pointers vector to i64. + const LLT DstTy = Query.Types[0]; + return std::pair(0, LLT::vector(DstTy.getElementCount(), 64)); + }); getActionDefinitionsBuilder(G_CONCAT_VECTORS) .legalFor({{v4s32, v2s32}, {v8s16, v4s16}, {v16s8, v8s8}}) @@ -1296,6 +1303,7 @@ AArch64LegalizerInfo::AArch64LegalizerInfo(const AArch64Subtarget &ST) .clampNumElements(0, v4s16, v8s16) .clampNumElements(0, v2s32, v4s32) .clampMaxNumElements(0, s64, 2) + .scalarizeIf(scalarOrEltWiderThan(0, 64), 0) .moreElementsToNextPow2(0) .lower(); diff --git a/llvm/lib/Target/AMDGPU/AMDGPU.td b/llvm/lib/Target/AMDGPU/AMDGPU.td index d3543015d667f..83a74b4a43590 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPU.td +++ b/llvm/lib/Target/AMDGPU/AMDGPU.td @@ -149,6 +149,12 @@ def FeatureMinimum3Maximum3F16 : SubtargetFeature<"minimum3-maximum3-f16", "Has v_minimum3_f16 and v_maximum3_f16 instructions" >; +def FeatureMinimum3Maximum3PKF16 : SubtargetFeature<"minimum3-maximum3-pkf16", + "HasMinimum3Maximum3PKF16", + "true", + "Has v_pk_minimum3_f16 and v_pk_maximum3_f16 instructions" +>; + def FeatureSupportsXNACK : SubtargetFeature<"xnack-support", "SupportsXNACK", "true", @@ -372,10 +378,69 @@ def FeatureGFX940Insts : SubtargetFeature<"gfx940-insts", "Additional instructions for GFX940+" >; +def FeaturePermlane16Swap : SubtargetFeature<"permlane16-swap", + "HasPermlane16Swap", + "true", + "Has v_permlane16_swap_b32 instructions" +>; + +def FeaturePermlane32Swap : SubtargetFeature<"permlane32-swap", + "HasPermlane32Swap", + "true", + "Has v_permlane32_swap_b32 instructions" +>; + +def FeatureFP8ConversionScaleInsts : SubtargetFeature<"fp8-cvt-scale-insts", + "HasFP8ConversionScaleInsts", + "true", + "Has fp8 conversion scale instructions" +>; + +def FeatureBF8ConversionScaleInsts : SubtargetFeature<"bf8-cvt-scale-insts", + "HasBF8ConversionScaleInsts", + "true", + "Has bf8 conversion scale instructions" +>; + +def FeatureFP4ConversionScaleInsts : SubtargetFeature<"fp4-cvt-scale-insts", + "HasFP4ConversionScaleInsts", + "true", + "Has fp4 conversion scale instructions" +>; + +def FeatureFP6BF6ConversionScaleInsts : SubtargetFeature<"fp6bf6-cvt-scale-insts", + "HasFP6BF6ConversionScaleInsts", + "true", + "Has fp6 and bf6 conversion scale instructions" +>; + +def FeatureF16BF16ToFP6BF6ConversionScaleInsts : SubtargetFeature<"f16bf16-to-fp6bf6-cvt-scale-insts", + "HasF16BF16ToFP6BF6ConversionScaleInsts", + "true", + "Has f16bf16 to fp6bf6 conversion scale instructions" +>; + +def FeatureAshrPkInsts : SubtargetFeature<"ashr-pk-insts", + "HasAshrPkInsts", + "true", + "Has Arithmetic Shift Pack instructions" +>; + def FeatureGFX950Insts : SubtargetFeature<"gfx950-insts", "GFX950Insts", "true", - "Additional instructions for GFX950+" + "Additional instructions for GFX950+", + [FeaturePermlane16Swap, + FeaturePermlane32Swap, + FeatureAshrPkInsts, + FeatureFP8ConversionScaleInsts, + FeatureBF8ConversionScaleInsts, + FeatureFP4ConversionScaleInsts, + FeatureFP6BF6ConversionScaleInsts, + FeatureF16BF16ToFP6BF6ConversionScaleInsts, + FeatureMinimum3Maximum3F32, + FeatureMinimum3Maximum3PKF16 + ] >; def FeatureGFX10Insts : SubtargetFeature<"gfx10-insts", @@ -676,7 +741,7 @@ def FeatureDot8Insts : SubtargetFeature<"dot8-insts", def FeatureDot9Insts : SubtargetFeature<"dot9-insts", "HasDot9Insts", "true", - "Has v_dot2_f16_f16, v_dot2_bf16_bf16, v_dot2_f32_bf16 instructions" + "Has v_dot2_f16_f16, v_dot2_bf16_bf16 instructions" >; def FeatureDot10Insts : SubtargetFeature<"dot10-insts", @@ -691,6 +756,19 @@ def FeatureDot11Insts : SubtargetFeature<"dot11-insts", "Has v_dot4_f32_fp8_fp8, v_dot4_f32_fp8_bf8, v_dot4_f32_bf8_fp8, v_dot4_f32_bf8_bf8 instructions" >; +def FeatureDot12Insts : SubtargetFeature<"dot12-insts", + "HasDot12Insts", + "true", + "Has v_dot2_f32_bf16 instructions" +>; + +def FeatureDot13Insts : SubtargetFeature<"dot13-insts", + "HasDot13Insts", + "true", + "Has v_dot2c_f32_bf16 instructions" +>; + + def FeatureMAIInsts : SubtargetFeature<"mai-insts", "HasMAIInsts", "true", @@ -984,6 +1062,12 @@ def FeatureVmemWriteVgprInOrder : SubtargetFeature<"vmem-write-vgpr-in-order", "VMEM instructions of the same type write VGPR results in order" >; +def FeatureBitOp3Insts : SubtargetFeature<"bitop3-insts", + "HasBitOp3Insts", + "true", + "Has v_bitop3_b32/v_bitop3_b16 instructions" +>; + def FeaturePrngInst : SubtargetFeature<"prng-inst", "HasPrngInst", "true", @@ -1511,7 +1595,15 @@ def FeatureISAVersion9_5_Common : FeatureSet< FeatureCvtFP8VOP1Bug, FeatureGFX950Insts, FeaturePrngInst, - FeatureBF16ConversionInsts + FeatureBF16ConversionInsts, + FeatureBitOp3Insts, + FeatureFP8ConversionScaleInsts, + FeatureBF8ConversionScaleInsts, + FeatureFP4ConversionScaleInsts, + FeatureFP6BF6ConversionScaleInsts, + FeatureDot12Insts, + FeatureDot13Insts, + FeatureAtomicBufferPkAddBF16Inst ])>; def FeatureISAVersion9_4_0 : FeatureSet< @@ -1639,6 +1731,7 @@ def FeatureISAVersion11_Common : FeatureSet< FeatureDot8Insts, FeatureDot9Insts, FeatureDot10Insts, + FeatureDot12Insts, FeatureNSAEncoding, FeaturePartialNSAEncoding, FeatureShaderCyclesRegister, @@ -1722,6 +1815,7 @@ def FeatureISAVersion12 : FeatureSet< FeatureDot9Insts, FeatureDot10Insts, FeatureDot11Insts, + FeatureDot12Insts, FeatureNSAEncoding, FeaturePartialNSAEncoding, FeatureShaderCyclesHiLoRegisters, @@ -1987,6 +2081,14 @@ def HasGFX950Insts : Predicate<"Subtarget->hasGFX950Insts()">, AssemblerPredicate<(all_of FeatureGFX950Insts)>; +def HasPermlane16Swap : + Predicate<"Subtarget->hasPermlane16Swap()">, + AssemblerPredicate<(all_of FeaturePermlane16Swap)>; + +def HasPermlane32Swap : + Predicate<"Subtarget->hasPermlane32Swap()">, + AssemblerPredicate<(all_of FeaturePermlane32Swap)>; + def isGFX8GFX9NotGFX940 : Predicate<"!Subtarget->hasGFX940Insts() &&" "(Subtarget->getGeneration() == AMDGPUSubtarget::VOLCANIC_ISLANDS ||" @@ -2051,6 +2153,10 @@ def HasMinimum3Maximum3F16 : Predicate<"Subtarget->hasMinimum3Maximum3F16()">, AssemblerPredicate<(all_of FeatureMinimum3Maximum3F16)>; +def HasMinimum3Maximum3PKF16 : + Predicate<"Subtarget->hasMinimum3Maximum3PKF16()">, + AssemblerPredicate<(all_of FeatureMinimum3Maximum3PKF16)>; + def HasFlatAddressSpace : Predicate<"Subtarget->hasFlatAddressSpace()">, AssemblerPredicate<(all_of FeatureFlatAddressSpace)>; @@ -2286,6 +2392,12 @@ def HasDot10Insts : Predicate<"Subtarget->hasDot10Insts()">, def HasDot11Insts : Predicate<"Subtarget->hasDot11Insts()">, AssemblerPredicate<(all_of FeatureDot11Insts)>; +def HasDot12Insts : Predicate<"Subtarget->hasDot12Insts()">, + AssemblerPredicate<(all_of FeatureDot12Insts)>; + +def HasDot13Insts : Predicate<"Subtarget->hasDot13Insts()">, + AssemblerPredicate<(all_of FeatureDot13Insts)>; + def HasGetWaveIdInst : Predicate<"Subtarget->hasGetWaveIdInst()">, AssemblerPredicate<(all_of FeatureGetWaveIdInst)>; @@ -2371,9 +2483,27 @@ def HasSALUFloatInsts : Predicate<"Subtarget->hasSALUFloatInsts()">, def HasPseudoScalarTrans : Predicate<"Subtarget->hasPseudoScalarTrans()">, AssemblerPredicate<(all_of FeaturePseudoScalarTrans)>; +def HasBitOp3Insts : Predicate<"Subtarget->hasBitOp3Insts()">, + AssemblerPredicate<(all_of FeatureBitOp3Insts)>; + def HasPrngInst : Predicate<"Subtarget->hasPrngInst()">, AssemblerPredicate<(all_of FeaturePrngInst)>; +def HasFP8ConversionScaleInsts : Predicate<"Subtarget->hasFP8ConversionScaleInsts()">, + AssemblerPredicate<(all_of FeatureFP8ConversionScaleInsts)>; + +def HasBF8ConversionScaleInsts : Predicate<"Subtarget->hasBF8ConversionScaleInsts()">, + AssemblerPredicate<(all_of FeatureBF8ConversionScaleInsts)>; + +def HasFP4ConversionScaleInsts : Predicate<"Subtarget->hasFP4ConversionScaleInsts()">, + AssemblerPredicate<(all_of FeatureFP4ConversionScaleInsts)>; + +def HasFP6BF6ConversionScaleInsts : Predicate<"Subtarget->hasFP6BF6ConversionScaleInsts()">, + AssemblerPredicate<(all_of FeatureFP6BF6ConversionScaleInsts)>; + +def HasF16BF16ToFP6BF6ConversionScaleInsts : Predicate<"Subtarget->hasF16BF16ToFP6BF6ConversionScaleInsts()">, + AssemblerPredicate<(all_of FeatureF16BF16ToFP6BF6ConversionScaleInsts)>; + def HasGDS : Predicate<"Subtarget->hasGDS()">; def HasGWS : Predicate<"Subtarget->hasGWS()">; @@ -2388,6 +2518,9 @@ def HasScalarDwordx3Loads : Predicate<"Subtarget->hasScalarDwordx3Loads()">; def HasXF32Insts : Predicate<"Subtarget->hasXF32Insts()">, AssemblerPredicate<(all_of FeatureXF32Insts)>; +def HasAshrPkInsts : Predicate<"Subtarget->hasAshrPkInsts()">, + AssemblerPredicate<(all_of FeatureAshrPkInsts)>; + // Include AMDGPU TD files include "SISchedule.td" include "GCNProcessors.td" diff --git a/llvm/lib/Target/AMDGPU/AMDGPUGISel.td b/llvm/lib/Target/AMDGPU/AMDGPUGISel.td index d348f489d95dd..1b909568fc555 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUGISel.td +++ b/llvm/lib/Target/AMDGPU/AMDGPUGISel.td @@ -395,6 +395,9 @@ def gi_as_i8timm : GICustomOperandRenderer<"renderTruncTImm">, def gi_as_i1timm : GICustomOperandRenderer<"renderTruncTImm">, GISDNodeXFormEquiv; +def gi_as_i1timm_zext : GICustomOperandRenderer<"renderZextBoolTImm">, + GISDNodeXFormEquiv; + def gi_NegateImm : GICustomOperandRenderer<"renderNegateImm">, GISDNodeXFormEquiv; @@ -423,3 +426,6 @@ def gi_fp_pow2_to_exponent : GICustomOperandRenderer<"renderFPPow2ToExponent">, def gi_as_hw_round_mode : GICustomOperandRenderer<"renderRoundMode">, GISDNodeXFormEquiv; + +def gi_MFMALdScaleModifierOp : GICustomOperandRenderer<"renderScaledMAIIntrinsicOperand">, + GISDNodeXFormEquiv; diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp index 151d56292b53d..7d78e9cd7eab6 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp @@ -408,7 +408,8 @@ SDNode *AMDGPUDAGToDAGISel::glueCopyToM0LDSInit(SDNode *N) const { unsigned AS = cast(N)->getAddressSpace(); if (AS == AMDGPUAS::LOCAL_ADDRESS) { if (Subtarget->ldsRequiresM0Init()) - return glueCopyToM0(N, CurDAG->getTargetConstant(-1, SDLoc(N), MVT::i32)); + return glueCopyToM0( + N, CurDAG->getSignedTargetConstant(-1, SDLoc(N), MVT::i32)); } else if (AS == AMDGPUAS::REGION_ADDRESS) { MachineFunction &MF = CurDAG->getMachineFunction(); unsigned Value = MF.getInfo()->getGDSSize(); @@ -1724,7 +1725,7 @@ bool AMDGPUDAGToDAGISel::SelectFlatOffsetImpl(SDNode *N, SDValue Addr, } VAddr = Addr; - Offset = CurDAG->getTargetConstant(OffsetVal, SDLoc(), MVT::i32); + Offset = CurDAG->getSignedTargetConstant(OffsetVal, SDLoc(), MVT::i32); return true; } @@ -1832,7 +1833,7 @@ bool AMDGPUDAGToDAGISel::SelectGlobalSAddr(SDNode *N, } if (SAddr) { - Offset = CurDAG->getTargetConstant(ImmOffset, SDLoc(), MVT::i32); + Offset = CurDAG->getSignedTargetConstant(ImmOffset, SDLoc(), MVT::i32); return true; } } @@ -1848,7 +1849,7 @@ bool AMDGPUDAGToDAGISel::SelectGlobalSAddr(SDNode *N, CurDAG->getMachineNode(AMDGPU::V_MOV_B32_e32, SDLoc(Addr), MVT::i32, CurDAG->getTargetConstant(0, SDLoc(), MVT::i32)); VOffset = SDValue(VMov, 0); - Offset = CurDAG->getTargetConstant(ImmOffset, SDLoc(), MVT::i32); + Offset = CurDAG->getSignedTargetConstant(ImmOffset, SDLoc(), MVT::i32); return true; } @@ -1903,13 +1904,13 @@ bool AMDGPUDAGToDAGISel::SelectScratchSAddr(SDNode *Parent, SDValue Addr, SDValue AddOffset = SAddr.getOpcode() == ISD::TargetFrameIndex ? getMaterializedScalarImm32(Lo_32(RemainderOffset), DL) - : CurDAG->getTargetConstant(RemainderOffset, DL, MVT::i32); + : CurDAG->getSignedTargetConstant(RemainderOffset, DL, MVT::i32); SAddr = SDValue(CurDAG->getMachineNode(AMDGPU::S_ADD_I32, DL, MVT::i32, SAddr, AddOffset), 0); } - Offset = CurDAG->getTargetConstant(COffsetVal, DL, MVT::i32); + Offset = CurDAG->getSignedTargetConstant(COffsetVal, DL, MVT::i32); return true; } @@ -2058,7 +2059,7 @@ bool AMDGPUDAGToDAGISel::SelectSMRDOffset(SDValue ByteOffsetNode, std::optional EncodedOffset = AMDGPU::getSMRDEncodedOffset( *Subtarget, ByteOffset, IsBuffer, HasSOffset); if (EncodedOffset && Offset && !Imm32Only) { - *Offset = CurDAG->getTargetConstant(*EncodedOffset, SL, MVT::i32); + *Offset = CurDAG->getSignedTargetConstant(*EncodedOffset, SL, MVT::i32); return true; } @@ -2777,6 +2778,31 @@ void AMDGPUDAGToDAGISel::SelectINTRINSIC_WO_CHAIN(SDNode *N) { case Intrinsic::amdgcn_interp_p1_f16: SelectInterpP1F16(N); return; + case Intrinsic::amdgcn_permlane16_swap: + case Intrinsic::amdgcn_permlane32_swap: { + if ((IntrID == Intrinsic::amdgcn_permlane16_swap && + !Subtarget->hasPermlane16Swap()) || + (IntrID == Intrinsic::amdgcn_permlane32_swap && + !Subtarget->hasPermlane32Swap())) { + SelectCode(N); // Hit the default error + return; + } + + Opcode = IntrID == Intrinsic::amdgcn_permlane16_swap + ? AMDGPU::V_PERMLANE16_SWAP_B32_e64 + : AMDGPU::V_PERMLANE32_SWAP_B32_e64; + + SmallVector NewOps(N->op_begin() + 1, N->op_end()); + if (ConvGlueNode) + NewOps.push_back(SDValue(ConvGlueNode, 0)); + + bool FI = N->getConstantOperandVal(3); + NewOps[2] = CurDAG->getTargetConstant( + FI ? AMDGPU::DPP::DPP_FI_1 : AMDGPU::DPP::DPP_FI_0, SDLoc(), MVT::i32); + + CurDAG->SelectNodeTo(N, Opcode, N->getVTList(), NewOps); + return; + } default: SelectCode(N); break; diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp index 3cc4bd92f6471..d77508227b076 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp @@ -2333,7 +2333,7 @@ SDValue AMDGPUTargetLowering::LowerSDIVREM(SDValue Op, SDValue RHS = Op.getOperand(1); SDValue Zero = DAG.getConstant(0, DL, VT); - SDValue NegOne = DAG.getConstant(-1, DL, VT); + SDValue NegOne = DAG.getAllOnesConstant(DL, VT); if (VT == MVT::i32) { if (SDValue Res = LowerDIVREM24(Op, DAG, true)) @@ -3794,7 +3794,11 @@ static SDValue constantFoldBFE(SelectionDAG &DAG, IntTy Src0, uint32_t Offset, if (Width + Offset < 32) { uint32_t Shl = static_cast(Src0) << (32 - Offset - Width); IntTy Result = static_cast(Shl) >> (32 - Width); - return DAG.getConstant(Result, DL, MVT::i32); + if constexpr (std::is_signed_v) { + return DAG.getSignedConstant(Result, DL, MVT::i32); + } else { + return DAG.getConstant(Result, DL, MVT::i32); + } } return DAG.getConstant(Src0 >> Offset, DL, MVT::i32); diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp b/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp index 28d215e7b3de9..18a09c39a0638 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp @@ -1024,6 +1024,12 @@ GCNTTIImpl::instCombineIntrinsic(InstCombiner &IC, IntrinsicInst &II) const { } break; } + case Intrinsic::amdgcn_wavefrontsize: { + if (ST->isWaveSizeKnown()) + return IC.replaceInstUsesWith( + II, ConstantInt::get(II.getType(), ST->getWavefrontSize())); + break; + } case Intrinsic::amdgcn_wqm_vote: { // wqm_vote is identity when the argument is constant. if (!isa(II.getArgOperand(0))) @@ -1258,6 +1264,63 @@ GCNTTIImpl::instCombineIntrinsic(InstCombiner &IC, IntrinsicInst &II) const { if (isa(Src)) { return IC.replaceInstUsesWith(II, Src); } + return std::nullopt; + } + case Intrinsic::amdgcn_mfma_scale_f32_16x16x128_f8f6f4: + case Intrinsic::amdgcn_mfma_scale_f32_32x32x64_f8f6f4: { + Value *Src0 = II.getArgOperand(0); + Value *Src1 = II.getArgOperand(1); + uint64_t CBSZ = cast(II.getArgOperand(3))->getZExtValue(); + uint64_t BLGP = cast(II.getArgOperand(4))->getZExtValue(); + auto *Src0Ty = cast(Src0->getType()); + auto *Src1Ty = cast(Src1->getType()); + + auto getFormatNumRegs = [](unsigned FormatVal) { + switch (FormatVal) { + case AMDGPU::MFMAScaleFormats::FP6_E2M3: + case AMDGPU::MFMAScaleFormats::FP6_E3M2: + return 6u; + case AMDGPU::MFMAScaleFormats::FP4_E2M1: + return 4u; + case AMDGPU::MFMAScaleFormats::FP8_E4M3: + case AMDGPU::MFMAScaleFormats::FP8_E5M2: + return 8u; + default: + llvm_unreachable("invalid format value"); + } + }; + + bool MadeChange = false; + unsigned Src0NumElts = getFormatNumRegs(CBSZ); + unsigned Src1NumElts = getFormatNumRegs(BLGP); + + // Depending on the used format, fewer registers are required so shrink the + // vector type. + if (Src0Ty->getNumElements() > Src0NumElts) { + Src0 = IC.Builder.CreateExtractVector( + FixedVectorType::get(Src0Ty->getElementType(), Src0NumElts), Src0, + IC.Builder.getInt64(0)); + MadeChange = true; + } + + if (Src1Ty->getNumElements() > Src1NumElts) { + Src1 = IC.Builder.CreateExtractVector( + FixedVectorType::get(Src0Ty->getElementType(), Src1NumElts), Src1, + IC.Builder.getInt64(0)); + MadeChange = true; + } + + if (!MadeChange) + return std::nullopt; + + SmallVector Args(II.args()); + Args[0] = Src0; + Args[1] = Src1; + + CallInst *NewII = IC.Builder.CreateIntrinsic( + IID, {Src0->getType(), Src1->getType()}, Args, &II); + NewII->takeName(&II); + return IC.replaceInstUsesWith(II, NewII); } } if (const AMDGPU::ImageDimIntrinsicInfo *ImageDimIntr = diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td index 702f6e67c5527..bec294a945d2f 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td +++ b/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td @@ -100,8 +100,8 @@ def AMDGPUtc_return_chain: SDNode<"AMDGPUISD::TC_RETURN_CHAIN", >; def AMDGPUtrap : SDNode<"AMDGPUISD::TRAP", - SDTypeProfile<0, -1, [SDTCisVT<0, i16>]>, - [SDNPHasChain, SDNPVariadic, SDNPSideEffect, SDNPInGlue] + SDTypeProfile<0, 1, [SDTCisVT<0, i16>]>, + [SDNPHasChain, SDNPVariadic, SDNPSideEffect, SDNPOptInGlue] >; def AMDGPUconstdata_ptr : SDNode< diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp b/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp index 3522ece24f1c4..39bec6c7f2f56 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp @@ -1090,7 +1090,24 @@ bool AMDGPUInstructionSelector::selectG_INTRINSIC(MachineInstr &I) const { case Intrinsic::amdgcn_smfmac_f32_32x32x32_bf8_fp8: case Intrinsic::amdgcn_smfmac_f32_32x32x32_fp8_bf8: case Intrinsic::amdgcn_smfmac_f32_32x32x32_fp8_fp8: + case Intrinsic::amdgcn_smfmac_f32_16x16x64_f16: + case Intrinsic::amdgcn_smfmac_f32_32x32x32_f16: + case Intrinsic::amdgcn_smfmac_f32_16x16x64_bf16: + case Intrinsic::amdgcn_smfmac_f32_32x32x32_bf16: + case Intrinsic::amdgcn_smfmac_i32_16x16x128_i8: + case Intrinsic::amdgcn_smfmac_i32_32x32x64_i8: + case Intrinsic::amdgcn_smfmac_f32_16x16x128_bf8_bf8: + case Intrinsic::amdgcn_smfmac_f32_16x16x128_bf8_fp8: + case Intrinsic::amdgcn_smfmac_f32_16x16x128_fp8_bf8: + case Intrinsic::amdgcn_smfmac_f32_16x16x128_fp8_fp8: + case Intrinsic::amdgcn_smfmac_f32_32x32x64_bf8_bf8: + case Intrinsic::amdgcn_smfmac_f32_32x32x64_bf8_fp8: + case Intrinsic::amdgcn_smfmac_f32_32x32x64_fp8_bf8: + case Intrinsic::amdgcn_smfmac_f32_32x32x64_fp8_fp8: return selectSMFMACIntrin(I); + case Intrinsic::amdgcn_permlane16_swap: + case Intrinsic::amdgcn_permlane32_swap: + return selectPermlaneSwapIntrin(I, IntrinsicID); default: return selectImpl(I, *CoverageInfo); } @@ -1104,10 +1121,13 @@ static int getV_CMPOpcode(CmpInst::Predicate P, unsigned Size, if (Size == 16 && !ST.has16BitInsts()) return -1; - const auto Select = [&](unsigned S16Opc, unsigned TrueS16Opc, unsigned S32Opc, + const auto Select = [&](unsigned S16Opc, unsigned TrueS16Opc, + unsigned FakeS16Opc, unsigned S32Opc, unsigned S64Opc) { if (Size == 16) - return ST.hasTrue16BitInsts() ? TrueS16Opc : S16Opc; + return ST.hasTrue16BitInsts() + ? ST.useRealTrue16Insts() ? TrueS16Opc : FakeS16Opc + : S16Opc; if (Size == 32) return S32Opc; return S64Opc; @@ -1118,83 +1138,109 @@ static int getV_CMPOpcode(CmpInst::Predicate P, unsigned Size, llvm_unreachable("Unknown condition code!"); case CmpInst::ICMP_NE: return Select(AMDGPU::V_CMP_NE_U16_e64, AMDGPU::V_CMP_NE_U16_t16_e64, - AMDGPU::V_CMP_NE_U32_e64, AMDGPU::V_CMP_NE_U64_e64); + AMDGPU::V_CMP_NE_U16_fake16_e64, AMDGPU::V_CMP_NE_U32_e64, + AMDGPU::V_CMP_NE_U64_e64); case CmpInst::ICMP_EQ: return Select(AMDGPU::V_CMP_EQ_U16_e64, AMDGPU::V_CMP_EQ_U16_t16_e64, - AMDGPU::V_CMP_EQ_U32_e64, AMDGPU::V_CMP_EQ_U64_e64); + AMDGPU::V_CMP_EQ_U16_fake16_e64, AMDGPU::V_CMP_EQ_U32_e64, + AMDGPU::V_CMP_EQ_U64_e64); case CmpInst::ICMP_SGT: return Select(AMDGPU::V_CMP_GT_I16_e64, AMDGPU::V_CMP_GT_I16_t16_e64, - AMDGPU::V_CMP_GT_I32_e64, AMDGPU::V_CMP_GT_I64_e64); + AMDGPU::V_CMP_GT_I16_fake16_e64, AMDGPU::V_CMP_GT_I32_e64, + AMDGPU::V_CMP_GT_I64_e64); case CmpInst::ICMP_SGE: return Select(AMDGPU::V_CMP_GE_I16_e64, AMDGPU::V_CMP_GE_I16_t16_e64, - AMDGPU::V_CMP_GE_I32_e64, AMDGPU::V_CMP_GE_I64_e64); + AMDGPU::V_CMP_GE_I16_fake16_e64, AMDGPU::V_CMP_GE_I32_e64, + AMDGPU::V_CMP_GE_I64_e64); case CmpInst::ICMP_SLT: return Select(AMDGPU::V_CMP_LT_I16_e64, AMDGPU::V_CMP_LT_I16_t16_e64, - AMDGPU::V_CMP_LT_I32_e64, AMDGPU::V_CMP_LT_I64_e64); + AMDGPU::V_CMP_LT_I16_fake16_e64, AMDGPU::V_CMP_LT_I32_e64, + AMDGPU::V_CMP_LT_I64_e64); case CmpInst::ICMP_SLE: return Select(AMDGPU::V_CMP_LE_I16_e64, AMDGPU::V_CMP_LE_I16_t16_e64, - AMDGPU::V_CMP_LE_I32_e64, AMDGPU::V_CMP_LE_I64_e64); + AMDGPU::V_CMP_LE_I16_fake16_e64, AMDGPU::V_CMP_LE_I32_e64, + AMDGPU::V_CMP_LE_I64_e64); case CmpInst::ICMP_UGT: return Select(AMDGPU::V_CMP_GT_U16_e64, AMDGPU::V_CMP_GT_U16_t16_e64, - AMDGPU::V_CMP_GT_U32_e64, AMDGPU::V_CMP_GT_U64_e64); + AMDGPU::V_CMP_GT_U16_fake16_e64, AMDGPU::V_CMP_GT_U32_e64, + AMDGPU::V_CMP_GT_U64_e64); case CmpInst::ICMP_UGE: return Select(AMDGPU::V_CMP_GE_U16_e64, AMDGPU::V_CMP_GE_U16_t16_e64, - AMDGPU::V_CMP_GE_U32_e64, AMDGPU::V_CMP_GE_U64_e64); + AMDGPU::V_CMP_GE_U16_fake16_e64, AMDGPU::V_CMP_GE_U32_e64, + AMDGPU::V_CMP_GE_U64_e64); case CmpInst::ICMP_ULT: return Select(AMDGPU::V_CMP_LT_U16_e64, AMDGPU::V_CMP_LT_U16_t16_e64, - AMDGPU::V_CMP_LT_U32_e64, AMDGPU::V_CMP_LT_U64_e64); + AMDGPU::V_CMP_LT_U16_fake16_e64, AMDGPU::V_CMP_LT_U32_e64, + AMDGPU::V_CMP_LT_U64_e64); case CmpInst::ICMP_ULE: return Select(AMDGPU::V_CMP_LE_U16_e64, AMDGPU::V_CMP_LE_U16_t16_e64, - AMDGPU::V_CMP_LE_U32_e64, AMDGPU::V_CMP_LE_U64_e64); + AMDGPU::V_CMP_LE_U16_fake16_e64, AMDGPU::V_CMP_LE_U32_e64, + AMDGPU::V_CMP_LE_U64_e64); case CmpInst::FCMP_OEQ: return Select(AMDGPU::V_CMP_EQ_F16_e64, AMDGPU::V_CMP_EQ_F16_t16_e64, - AMDGPU::V_CMP_EQ_F32_e64, AMDGPU::V_CMP_EQ_F64_e64); + AMDGPU::V_CMP_EQ_F16_fake16_e64, AMDGPU::V_CMP_EQ_F32_e64, + AMDGPU::V_CMP_EQ_F64_e64); case CmpInst::FCMP_OGT: return Select(AMDGPU::V_CMP_GT_F16_e64, AMDGPU::V_CMP_GT_F16_t16_e64, - AMDGPU::V_CMP_GT_F32_e64, AMDGPU::V_CMP_GT_F64_e64); + AMDGPU::V_CMP_GT_F16_fake16_e64, AMDGPU::V_CMP_GT_F32_e64, + AMDGPU::V_CMP_GT_F64_e64); case CmpInst::FCMP_OGE: return Select(AMDGPU::V_CMP_GE_F16_e64, AMDGPU::V_CMP_GE_F16_t16_e64, - AMDGPU::V_CMP_GE_F32_e64, AMDGPU::V_CMP_GE_F64_e64); + AMDGPU::V_CMP_GE_F16_fake16_e64, AMDGPU::V_CMP_GE_F32_e64, + AMDGPU::V_CMP_GE_F64_e64); case CmpInst::FCMP_OLT: return Select(AMDGPU::V_CMP_LT_F16_e64, AMDGPU::V_CMP_LT_F16_t16_e64, - AMDGPU::V_CMP_LT_F32_e64, AMDGPU::V_CMP_LT_F64_e64); + AMDGPU::V_CMP_LT_F16_fake16_e64, AMDGPU::V_CMP_LT_F32_e64, + AMDGPU::V_CMP_LT_F64_e64); case CmpInst::FCMP_OLE: return Select(AMDGPU::V_CMP_LE_F16_e64, AMDGPU::V_CMP_LE_F16_t16_e64, - AMDGPU::V_CMP_LE_F32_e64, AMDGPU::V_CMP_LE_F64_e64); + AMDGPU::V_CMP_LE_F16_fake16_e64, AMDGPU::V_CMP_LE_F32_e64, + AMDGPU::V_CMP_LE_F64_e64); case CmpInst::FCMP_ONE: return Select(AMDGPU::V_CMP_NEQ_F16_e64, AMDGPU::V_CMP_NEQ_F16_t16_e64, - AMDGPU::V_CMP_NEQ_F32_e64, AMDGPU::V_CMP_NEQ_F64_e64); + AMDGPU::V_CMP_NEQ_F16_fake16_e64, AMDGPU::V_CMP_NEQ_F32_e64, + AMDGPU::V_CMP_NEQ_F64_e64); case CmpInst::FCMP_ORD: return Select(AMDGPU::V_CMP_O_F16_e64, AMDGPU::V_CMP_O_F16_t16_e64, - AMDGPU::V_CMP_O_F32_e64, AMDGPU::V_CMP_O_F64_e64); + AMDGPU::V_CMP_O_F16_fake16_e64, AMDGPU::V_CMP_O_F32_e64, + AMDGPU::V_CMP_O_F64_e64); case CmpInst::FCMP_UNO: return Select(AMDGPU::V_CMP_U_F16_e64, AMDGPU::V_CMP_U_F16_t16_e64, - AMDGPU::V_CMP_U_F32_e64, AMDGPU::V_CMP_U_F64_e64); + AMDGPU::V_CMP_U_F16_fake16_e64, AMDGPU::V_CMP_U_F32_e64, + AMDGPU::V_CMP_U_F64_e64); case CmpInst::FCMP_UEQ: return Select(AMDGPU::V_CMP_NLG_F16_e64, AMDGPU::V_CMP_NLG_F16_t16_e64, - AMDGPU::V_CMP_NLG_F32_e64, AMDGPU::V_CMP_NLG_F64_e64); + AMDGPU::V_CMP_NLG_F16_fake16_e64, AMDGPU::V_CMP_NLG_F32_e64, + AMDGPU::V_CMP_NLG_F64_e64); case CmpInst::FCMP_UGT: return Select(AMDGPU::V_CMP_NLE_F16_e64, AMDGPU::V_CMP_NLE_F16_t16_e64, - AMDGPU::V_CMP_NLE_F32_e64, AMDGPU::V_CMP_NLE_F64_e64); + AMDGPU::V_CMP_NLE_F16_fake16_e64, AMDGPU::V_CMP_NLE_F32_e64, + AMDGPU::V_CMP_NLE_F64_e64); case CmpInst::FCMP_UGE: return Select(AMDGPU::V_CMP_NLT_F16_e64, AMDGPU::V_CMP_NLT_F16_t16_e64, - AMDGPU::V_CMP_NLT_F32_e64, AMDGPU::V_CMP_NLT_F64_e64); + AMDGPU::V_CMP_NLT_F16_fake16_e64, AMDGPU::V_CMP_NLT_F32_e64, + AMDGPU::V_CMP_NLT_F64_e64); case CmpInst::FCMP_ULT: return Select(AMDGPU::V_CMP_NGE_F16_e64, AMDGPU::V_CMP_NGE_F16_t16_e64, - AMDGPU::V_CMP_NGE_F32_e64, AMDGPU::V_CMP_NGE_F64_e64); + AMDGPU::V_CMP_NGE_F16_fake16_e64, AMDGPU::V_CMP_NGE_F32_e64, + AMDGPU::V_CMP_NGE_F64_e64); case CmpInst::FCMP_ULE: return Select(AMDGPU::V_CMP_NGT_F16_e64, AMDGPU::V_CMP_NGT_F16_t16_e64, - AMDGPU::V_CMP_NGT_F32_e64, AMDGPU::V_CMP_NGT_F64_e64); + AMDGPU::V_CMP_NGT_F16_fake16_e64, AMDGPU::V_CMP_NGT_F32_e64, + AMDGPU::V_CMP_NGT_F64_e64); case CmpInst::FCMP_UNE: return Select(AMDGPU::V_CMP_NEQ_F16_e64, AMDGPU::V_CMP_NEQ_F16_t16_e64, - AMDGPU::V_CMP_NEQ_F32_e64, AMDGPU::V_CMP_NEQ_F64_e64); + AMDGPU::V_CMP_NEQ_F16_fake16_e64, AMDGPU::V_CMP_NEQ_F32_e64, + AMDGPU::V_CMP_NEQ_F64_e64); case CmpInst::FCMP_TRUE: return Select(AMDGPU::V_CMP_TRU_F16_e64, AMDGPU::V_CMP_TRU_F16_t16_e64, - AMDGPU::V_CMP_TRU_F32_e64, AMDGPU::V_CMP_TRU_F64_e64); + AMDGPU::V_CMP_TRU_F16_fake16_e64, AMDGPU::V_CMP_TRU_F32_e64, + AMDGPU::V_CMP_TRU_F64_e64); case CmpInst::FCMP_FALSE: return Select(AMDGPU::V_CMP_F_F16_e64, AMDGPU::V_CMP_F_F16_t16_e64, - AMDGPU::V_CMP_F_F32_e64, AMDGPU::V_CMP_F_F64_e64); + AMDGPU::V_CMP_F_F16_fake16_e64, AMDGPU::V_CMP_F_F32_e64, + AMDGPU::V_CMP_F_F64_e64); } } @@ -3285,9 +3331,14 @@ bool AMDGPUInstructionSelector::selectBufferLoadLds(MachineInstr &MI) const { MIB.add(MI.getOperand(1)); // rsrc MIB.add(MI.getOperand(5 + OpOffset)); // soffset MIB.add(MI.getOperand(6 + OpOffset)); // imm offset + bool IsGFX12Plus = AMDGPU::isGFX12Plus(STI); unsigned Aux = MI.getOperand(7 + OpOffset).getImm(); - MIB.addImm(Aux & AMDGPU::CPol::ALL); // cpol - MIB.addImm(Aux & AMDGPU::CPol::SWZ_pregfx12 ? 1 : 0); // swz + MIB.addImm(Aux & (IsGFX12Plus ? AMDGPU::CPol::ALL + : AMDGPU::CPol::ALL_pregfx12)); // cpol + MIB.addImm( + Aux & (IsGFX12Plus ? AMDGPU::CPol::SWZ : AMDGPU::CPol::SWZ_pregfx12) + ? 1 + : 0); // swz MachineMemOperand *LoadMMO = *MI.memoperands_begin(); MachinePointerInfo LoadPtrI = LoadMMO->getPointerInfo(); @@ -3430,6 +3481,8 @@ bool AMDGPUInstructionSelector::selectBVHIntrinsic(MachineInstr &MI) const{ return true; } +// FIXME: This should be removed and let the patterns select. We just need the +// AGPR/VGPR combination versions. bool AMDGPUInstructionSelector::selectSMFMACIntrin(MachineInstr &MI) const { unsigned Opc; switch (cast(MI).getIntrinsicID()) { @@ -3475,6 +3528,48 @@ bool AMDGPUInstructionSelector::selectSMFMACIntrin(MachineInstr &MI) const { case Intrinsic::amdgcn_smfmac_f32_32x32x32_fp8_fp8: Opc = AMDGPU::V_SMFMAC_F32_32X32X32_FP8_FP8_e64; break; + case Intrinsic::amdgcn_smfmac_f32_16x16x64_f16: + Opc = AMDGPU::V_SMFMAC_F32_16X16X64_F16_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_32x32x32_f16: + Opc = AMDGPU::V_SMFMAC_F32_32X32X32_F16_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_16x16x64_bf16: + Opc = AMDGPU::V_SMFMAC_F32_16X16X64_BF16_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_32x32x32_bf16: + Opc = AMDGPU::V_SMFMAC_F32_32X32X32_BF16_e64; + break; + case Intrinsic::amdgcn_smfmac_i32_16x16x128_i8: + Opc = AMDGPU::V_SMFMAC_I32_16X16X128_I8_e64; + break; + case Intrinsic::amdgcn_smfmac_i32_32x32x64_i8: + Opc = AMDGPU::V_SMFMAC_I32_32X32X64_I8_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_16x16x128_bf8_bf8: + Opc = AMDGPU::V_SMFMAC_F32_16X16X128_BF8_BF8_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_16x16x128_bf8_fp8: + Opc = AMDGPU::V_SMFMAC_F32_16X16X128_BF8_FP8_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_16x16x128_fp8_bf8: + Opc = AMDGPU::V_SMFMAC_F32_16X16X128_FP8_BF8_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_16x16x128_fp8_fp8: + Opc = AMDGPU::V_SMFMAC_F32_16X16X128_FP8_FP8_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_32x32x64_bf8_bf8: + Opc = AMDGPU::V_SMFMAC_F32_32X32X64_BF8_BF8_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_32x32x64_bf8_fp8: + Opc = AMDGPU::V_SMFMAC_F32_32X32X64_BF8_FP8_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_32x32x64_fp8_bf8: + Opc = AMDGPU::V_SMFMAC_F32_32X32X64_FP8_BF8_e64; + break; + case Intrinsic::amdgcn_smfmac_f32_32x32x64_fp8_fp8: + Opc = AMDGPU::V_SMFMAC_F32_32X32X64_FP8_FP8_e64; + break; default: llvm_unreachable("unhandled smfmac intrinsic"); } @@ -3489,6 +3584,29 @@ bool AMDGPUInstructionSelector::selectSMFMACIntrin(MachineInstr &MI) const { return true; } +bool AMDGPUInstructionSelector::selectPermlaneSwapIntrin( + MachineInstr &MI, Intrinsic::ID IntrID) const { + if (IntrID == Intrinsic::amdgcn_permlane16_swap && + !Subtarget->hasPermlane16Swap()) + return false; + if (IntrID == Intrinsic::amdgcn_permlane32_swap && + !Subtarget->hasPermlane32Swap()) + return false; + + unsigned Opcode = IntrID == Intrinsic::amdgcn_permlane16_swap + ? AMDGPU::V_PERMLANE16_SWAP_B32_e64 + : AMDGPU::V_PERMLANE32_SWAP_B32_e64; + + MI.removeOperand(2); + MI.setDesc(TII.get(Opcode)); + MI.addOperand(*MF, MachineOperand::CreateReg(AMDGPU::EXEC, false, true)); + + MachineOperand &FI = MI.getOperand(4); + FI.setImm(FI.getImm() ? AMDGPU::DPP::DPP_FI_1 : AMDGPU::DPP::DPP_FI_0); + + return constrainSelectedInstRegOperands(MI, TII, TRI, RBI); +} + bool AMDGPUInstructionSelector::selectWaveAddress(MachineInstr &MI) const { Register DstReg = MI.getOperand(0).getReg(); Register SrcReg = MI.getOperand(1).getReg(); @@ -5677,6 +5795,12 @@ void AMDGPUInstructionSelector::renderTruncTImm(MachineInstrBuilder &MIB, MIB.addImm(Op.getImm()); } +void AMDGPUInstructionSelector::renderZextBoolTImm(MachineInstrBuilder &MIB, + const MachineInstr &MI, + int OpIdx) const { + MIB.addImm(MI.getOperand(OpIdx).getImm() != 0); +} + void AMDGPUInstructionSelector::renderOpSelTImm(MachineInstrBuilder &MIB, const MachineInstr &MI, int OpIdx) const { @@ -5737,6 +5861,18 @@ void AMDGPUInstructionSelector::renderRoundMode(MachineInstrBuilder &MIB, MIB.addImm((MI.getOperand(OpIdx).getImm() + 3) % 4); } +/// Convert from 2-bit value to enum values used for op_sel* source modifiers. +void AMDGPUInstructionSelector::renderScaledMAIIntrinsicOperand( + MachineInstrBuilder &MIB, const MachineInstr &MI, int OpIdx) const { + unsigned Val = MI.getOperand(OpIdx).getImm(); + unsigned New = 0; + if (Val & 0x1) + New |= SISrcMods::OP_SEL_0; + if (Val & 0x2) + New |= SISrcMods::OP_SEL_1; + MIB.addImm(New); +} + bool AMDGPUInstructionSelector::isInlineImmediate(const APInt &Imm) const { return TII.isInlineConstant(Imm); } diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h b/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h index 42343104812b6..5b31cb827c971 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h @@ -145,6 +145,7 @@ class AMDGPUInstructionSelector final : public InstructionSelector { bool selectGlobalLoadLds(MachineInstr &MI) const; bool selectBVHIntrinsic(MachineInstr &I) const; bool selectSMFMACIntrin(MachineInstr &I) const; + bool selectPermlaneSwapIntrin(MachineInstr &I, Intrinsic::ID IntrID) const; bool selectWaveAddress(MachineInstr &I) const; bool selectStackRestore(MachineInstr &MI) const; bool selectNamedBarrierInit(MachineInstr &I, Intrinsic::ID IID) const; @@ -328,6 +329,8 @@ class AMDGPUInstructionSelector final : public InstructionSelector { void renderTruncTImm(MachineInstrBuilder &MIB, const MachineInstr &MI, int OpIdx) const; + void renderZextBoolTImm(MachineInstrBuilder &MIB, const MachineInstr &MI, + int OpIdx) const; void renderOpSelTImm(MachineInstrBuilder &MIB, const MachineInstr &MI, int OpIdx) const; @@ -364,6 +367,8 @@ class AMDGPUInstructionSelector final : public InstructionSelector { void renderRoundMode(MachineInstrBuilder &MIB, const MachineInstr &MI, int OpIdx) const; + void renderScaledMAIIntrinsicOperand(MachineInstrBuilder &MIB, + const MachineInstr &MI, int OpIdx) const; bool isInlineImmediate(const APInt &Imm) const; bool isInlineImmediate(const APFloat &Imm) const; diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td b/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td index 671070c70f0c4..6a5065cd4a0e8 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td +++ b/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td @@ -40,7 +40,7 @@ class AMDGPUInst SoftFail = 0; + field bits<128> SoftFail = 0; // FIXME: If this is smaller than largest instruction, DecodeEmitter crashes let DecoderNamespace = Namespace; diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp index b648b68f3bd2b..b06bd4e334614 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp @@ -3146,6 +3146,8 @@ void AMDGPURegisterBankInfo::applyMappingImpl( case Intrinsic::amdgcn_interp_inreg_p2_f16: case Intrinsic::amdgcn_interp_p10_rtz_f16: case Intrinsic::amdgcn_interp_p2_rtz_f16: + case Intrinsic::amdgcn_permlane16_swap: + case Intrinsic::amdgcn_permlane32_swap: applyDefaultMapping(OpdMapper); return; case Intrinsic::amdgcn_permlane16: @@ -4526,6 +4528,7 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { case Intrinsic::amdgcn_fdot2_bf16_bf16: case Intrinsic::amdgcn_fdot2_f16_f16: case Intrinsic::amdgcn_fdot2_f32_bf16: + case Intrinsic::amdgcn_fdot2c_f32_bf16: case Intrinsic::amdgcn_sudot4: case Intrinsic::amdgcn_sudot8: case Intrinsic::amdgcn_dot4_f32_fp8_bf8: @@ -4540,6 +4543,14 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { case Intrinsic::amdgcn_cvt_pk_bf8_f32: case Intrinsic::amdgcn_cvt_sr_fp8_f32: case Intrinsic::amdgcn_cvt_sr_bf8_f32: + case Intrinsic::amdgcn_cvt_scalef32_pk32_fp6_f16: + case Intrinsic::amdgcn_cvt_scalef32_pk32_bf6_f16: + case Intrinsic::amdgcn_cvt_scalef32_pk32_fp6_bf16: + case Intrinsic::amdgcn_cvt_scalef32_pk32_bf6_bf16: + case Intrinsic::amdgcn_ashr_pk_i8_i32: + case Intrinsic::amdgcn_ashr_pk_u8_i32: + case Intrinsic::amdgcn_cvt_scalef32_2xpk16_fp6_f32: + case Intrinsic::amdgcn_cvt_scalef32_2xpk16_bf6_f32: case Intrinsic::amdgcn_wmma_bf16_16x16x16_bf16: case Intrinsic::amdgcn_wmma_f16_16x16x16_f16: case Intrinsic::amdgcn_wmma_bf16_16x16x16_bf16_tied: @@ -4749,7 +4760,10 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { case Intrinsic::amdgcn_mfma_f32_32x32x16_fp8_bf8: case Intrinsic::amdgcn_mfma_f32_32x32x16_fp8_fp8: case Intrinsic::amdgcn_mfma_f32_16x16x32_f16: - case Intrinsic::amdgcn_mfma_f32_32x32x16_f16: { + case Intrinsic::amdgcn_mfma_f32_32x32x16_f16: + case Intrinsic::amdgcn_mfma_i32_16x16x64_i8: + case Intrinsic::amdgcn_mfma_i32_32x32x32_i8: + case Intrinsic::amdgcn_mfma_f32_16x16x32_bf16: { // Default for MAI intrinsics. // srcC can also be an immediate which can be folded later. // FIXME: Should we eventually add an alternative mapping with AGPR src @@ -4769,6 +4783,25 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { : getVGPROpMapping(MI.getOperand(4).getReg(), MRI, *TRI); break; } + case Intrinsic::amdgcn_mfma_scale_f32_16x16x128_f8f6f4: + case Intrinsic::amdgcn_mfma_scale_f32_32x32x64_f8f6f4: { + const SIMachineFunctionInfo *Info = MF.getInfo(); + OpdsMapping[0] = + Info->mayNeedAGPRs() + ? getAGPROpMapping(MI.getOperand(0).getReg(), MRI, *TRI) + : getVGPROpMapping(MI.getOperand(0).getReg(), MRI, *TRI); + + OpdsMapping[2] = getVGPROpMapping(MI.getOperand(2).getReg(), MRI, *TRI); + OpdsMapping[3] = getVGPROpMapping(MI.getOperand(3).getReg(), MRI, *TRI); + OpdsMapping[4] = + Info->mayNeedAGPRs() + ? getAGPROpMapping(MI.getOperand(4).getReg(), MRI, *TRI) + : getVGPROpMapping(MI.getOperand(4).getReg(), MRI, *TRI); + + OpdsMapping[8] = getVGPROpMapping(MI.getOperand(8).getReg(), MRI, *TRI); + OpdsMapping[10] = getVGPROpMapping(MI.getOperand(10).getReg(), MRI, *TRI); + break; + } case Intrinsic::amdgcn_smfmac_f32_16x16x32_f16: case Intrinsic::amdgcn_smfmac_f32_32x32x16_f16: case Intrinsic::amdgcn_smfmac_f32_16x16x32_bf16: @@ -4782,7 +4815,21 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { case Intrinsic::amdgcn_smfmac_f32_32x32x32_bf8_bf8: case Intrinsic::amdgcn_smfmac_f32_32x32x32_bf8_fp8: case Intrinsic::amdgcn_smfmac_f32_32x32x32_fp8_bf8: - case Intrinsic::amdgcn_smfmac_f32_32x32x32_fp8_fp8: { + case Intrinsic::amdgcn_smfmac_f32_32x32x32_fp8_fp8: + case Intrinsic::amdgcn_smfmac_f32_16x16x64_f16: + case Intrinsic::amdgcn_smfmac_f32_32x32x32_f16: + case Intrinsic::amdgcn_smfmac_f32_16x16x64_bf16: + case Intrinsic::amdgcn_smfmac_f32_32x32x32_bf16: + case Intrinsic::amdgcn_smfmac_i32_16x16x128_i8: + case Intrinsic::amdgcn_smfmac_i32_32x32x64_i8: + case Intrinsic::amdgcn_smfmac_f32_16x16x128_bf8_bf8: + case Intrinsic::amdgcn_smfmac_f32_16x16x128_bf8_fp8: + case Intrinsic::amdgcn_smfmac_f32_16x16x128_fp8_bf8: + case Intrinsic::amdgcn_smfmac_f32_16x16x128_fp8_fp8: + case Intrinsic::amdgcn_smfmac_f32_32x32x64_bf8_bf8: + case Intrinsic::amdgcn_smfmac_f32_32x32x64_bf8_fp8: + case Intrinsic::amdgcn_smfmac_f32_32x32x64_fp8_bf8: + case Intrinsic::amdgcn_smfmac_f32_32x32x64_fp8_fp8: { // vdst, srcA, srcB, srcC, idx OpdsMapping[0] = getAGPROpMapping(MI.getOperand(0).getReg(), MRI, *TRI); OpdsMapping[2] = getVGPROpMapping(MI.getOperand(2).getReg(), MRI, *TRI); @@ -4824,6 +4871,13 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { OpdsMapping[4] = AMDGPU::getValueMapping(AMDGPU::VGPRRegBankID, 32); break; } + case Intrinsic::amdgcn_permlane16_swap: + case Intrinsic::amdgcn_permlane32_swap: { + unsigned DstSize = MRI.getType(MI.getOperand(0).getReg()).getSizeInBits(); + OpdsMapping[0] = OpdsMapping[1] = OpdsMapping[3] = OpdsMapping[4] = + AMDGPU::getValueMapping(AMDGPU::VGPRRegBankID, DstSize); + break; + } case Intrinsic::amdgcn_ballot: { unsigned DstSize = MRI.getType(MI.getOperand(0).getReg()).getSizeInBits(); unsigned SrcSize = MRI.getType(MI.getOperand(2).getReg()).getSizeInBits(); @@ -4922,6 +4976,10 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { case Intrinsic::amdgcn_global_atomic_ordered_add_b64: case Intrinsic::amdgcn_global_load_tr_b64: case Intrinsic::amdgcn_global_load_tr_b128: + case Intrinsic::amdgcn_ds_read_tr4_b64: + case Intrinsic::amdgcn_ds_read_tr6_b96: + case Intrinsic::amdgcn_ds_read_tr8_b64: + case Intrinsic::amdgcn_ds_read_tr16_b64: return getDefaultMappingAllVGPR(MI); case Intrinsic::amdgcn_ds_ordered_add: case Intrinsic::amdgcn_ds_ordered_swap: { diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td b/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td index 2ea254e64b8cb..10175557fadc7 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td +++ b/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td @@ -326,6 +326,8 @@ def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; +def : SourceOfDivergence; +def : SourceOfDivergence; foreach intr = AMDGPUMFMAIntrinsics908 in def : SourceOfDivergence; @@ -343,6 +345,11 @@ def : SourceOfDivergence; def : SourceOfDivergence; def : SourceOfDivergence; +def : SourceOfDivergence; +def : SourceOfDivergence; +def : SourceOfDivergence; +def : SourceOfDivergence; + // The dummy boolean output is divergent from the IR's perspective, // but the mask results are uniform. These produce a divergent and // uniform result, so the returned struct is collectively divergent. diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h index ece26a4adb375..742f4e6e80f1a 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h @@ -50,6 +50,11 @@ class AMDGPUSubtarget { bool GCN3Encoding = false; bool Has16BitInsts = false; bool HasTrue16BitInsts = false; + bool HasFP8ConversionScaleInsts = false; + bool HasBF8ConversionScaleInsts = false; + bool HasFP4ConversionScaleInsts = false; + bool HasFP6BF6ConversionScaleInsts = false; + bool HasF16BF16ToFP6BF6ConversionScaleInsts = false; bool EnableRealTrue16Insts = false; bool HasBF16ConversionInsts = false; bool HasMadMixInsts = false; @@ -175,6 +180,16 @@ class AMDGPUSubtarget { return HasMadMixInsts; } + bool hasFP8ConversionScaleInsts() const { return HasFP8ConversionScaleInsts; } + + bool hasBF8ConversionScaleInsts() const { return HasBF8ConversionScaleInsts; } + + bool hasFP4ConversionScaleInsts() const { return HasFP4ConversionScaleInsts; } + + bool hasFP6BF6ConversionScaleInsts() const { return HasFP6BF6ConversionScaleInsts; } + + bool hasF16BF16ToFP6BF6ConversionScaleInsts() const { return HasF16BF16ToFP6BF6ConversionScaleInsts; } + bool hasMadMacF32Insts() const { return HasMadMacF32Insts || !isGCN(); } diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp index 34bdab39d367b..afd35842ba87f 100644 --- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp +++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @@ -171,6 +171,7 @@ class AMDGPUOperand : public MCParsedAsmOperand { ImmTyWaitVAVDst, ImmTyWaitVMVSrc, ImmTyByteSel, + ImmTyBitOp3, }; // Immediate operand kind. @@ -410,6 +411,7 @@ class AMDGPUOperand : public MCParsedAsmOperand { bool isOpSelHi() const { return isImmTy(ImmTyOpSelHi); } bool isNegLo() const { return isImmTy(ImmTyNegLo); } bool isNegHi() const { return isImmTy(ImmTyNegHi); } + bool isBitOp3() const { return isImmTy(ImmTyBitOp3) && isUInt<8>(getImm()); } bool isRegOrImm() const { return isReg() || isImm(); @@ -1138,6 +1140,7 @@ class AMDGPUOperand : public MCParsedAsmOperand { case ImmTyWaitVAVDst: OS << "WaitVAVDst"; break; case ImmTyWaitVMVSrc: OS << "WaitVMVSrc"; break; case ImmTyByteSel: OS << "ByteSel" ; break; + case ImmTyBitOp3: OS << "BitOp3"; break; } // clang-format on } @@ -1913,6 +1916,9 @@ class AMDGPUAsmParser : public MCTargetAsmParser { ParseStatus parseEndpgm(OperandVector &Operands); ParseStatus parseVOPD(OperandVector &Operands); + + ParseStatus parseBitOp3(OperandVector &Operands); + AMDGPUOperand::Ptr defaultBitOp3() const; }; } // end anonymous namespace @@ -8818,7 +8824,9 @@ void AMDGPUAsmParser::cvtVOP3P(MCInst &Inst, const OperandVector &Operands, const bool IsPacked = (Desc.TSFlags & SIInstrFlags::IsPacked) != 0; - if (Opc == AMDGPU::V_CVT_SR_BF8_F32_vi || + if (Opc == AMDGPU::V_CVT_SCALEF32_PK_FP4_F16_vi || + Opc == AMDGPU::V_CVT_SCALEF32_PK_FP4_BF16_vi || + Opc == AMDGPU::V_CVT_SR_BF8_F32_vi || Opc == AMDGPU::V_CVT_SR_FP8_F32_vi || Opc == AMDGPU::V_CVT_SR_BF8_F32_gfx12_e64_gfx12 || Opc == AMDGPU::V_CVT_SR_FP8_F32_gfx12_e64_gfx12) { @@ -8841,6 +8849,11 @@ void AMDGPUAsmParser::cvtVOP3P(MCInst &Inst, const OperandVector &Operands, Inst.addOperand(Inst.getOperand(0)); } + int BitOp3Idx = AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::bitop3); + if (BitOp3Idx != -1) { + addOptionalImmOperand(Inst, Operands, OptIdx, AMDGPUOperand::ImmTyBitOp3); + } + // FIXME: This is messy. Parse the modifiers as if it was a normal VOP3 // instruction, and then figure out where to actually put the modifiers @@ -9748,6 +9761,20 @@ ParseStatus AMDGPUAsmParser::parseEndpgm(OperandVector &Operands) { bool AMDGPUOperand::isEndpgm() const { return isImmTy(ImmTyEndpgm); } +//===----------------------------------------------------------------------===// +// BITOP3 +//===----------------------------------------------------------------------===// + +ParseStatus AMDGPUAsmParser::parseBitOp3(OperandVector &Operands) { + ParseStatus Res = + parseIntWithPrefix("bitop3", Operands, AMDGPUOperand::ImmTyBitOp3); + return Res; +} + +AMDGPUOperand::Ptr AMDGPUAsmParser::defaultBitOp3() const { + return AMDGPUOperand::CreateImm(this, 0, SMLoc(), AMDGPUOperand::ImmTyBitOp3); +} + //===----------------------------------------------------------------------===// // Split Barrier //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Target/AMDGPU/BUFInstructions.td b/llvm/lib/Target/AMDGPU/BUFInstructions.td index e5978aee2b39a..a288c58def5cb 100644 --- a/llvm/lib/Target/AMDGPU/BUFInstructions.td +++ b/llvm/lib/Target/AMDGPU/BUFInstructions.td @@ -3296,6 +3296,8 @@ defm BUFFER_WBINVL1_VOL : MUBUF_Real_vi <0x3f>; defm BUFFER_ATOMIC_PK_ADD_F16 : MUBUF_Real_Atomic_vi <0x4e>; +defm BUFFER_ATOMIC_PK_ADD_BF16 : MUBUF_Real_Atomic_vi <0x52>; + defm BUFFER_ATOMIC_ADD_F32 : MUBUF_Real_Atomic_vi <0x4d>; let SubtargetPredicate = isGFX90APlus in { diff --git a/llvm/lib/Target/AMDGPU/DSInstructions.td b/llvm/lib/Target/AMDGPU/DSInstructions.td index 061ffda2498f4..7cbd6d2dc6209 100644 --- a/llvm/lib/Target/AMDGPU/DSInstructions.td +++ b/llvm/lib/Target/AMDGPU/DSInstructions.td @@ -294,6 +294,12 @@ multiclass DS_1A_RET_mc { + let has_m0_read = 0 in { + def "" : DS_1A_RET; + } +} + class DS_1A_RET_Tied : DS_1A_RET; @@ -744,6 +750,13 @@ multiclass DSAtomicRetNoRetPatIntrinsic_mc; } // let SubtargetPredicate = isGFX12Plus +let WaveSizePredicate = isWave64, SubtargetPredicate = HasGFX950Insts, mayStore = 0 in { + defm DS_READ_B64_TR_B4 : DS_1A_RET_NoM0<"ds_read_b64_tr_b4", VReg_64>; + defm DS_READ_B64_TR_B8 : DS_1A_RET_NoM0<"ds_read_b64_tr_b8", VReg_64>; + defm DS_READ_B64_TR_B16 : DS_1A_RET_NoM0<"ds_read_b64_tr_b16", VReg_64>; + defm DS_READ_B96_TR_B6 : DS_1A_RET_NoM0<"ds_read_b96_tr_b6", VReg_96>; +} + //===----------------------------------------------------------------------===// // DS Patterns //===----------------------------------------------------------------------===// @@ -1179,6 +1192,18 @@ def : GCNPat < sub0) >; +class DSLoadTrPat : GCNPat < + (vt (node (DS1Addr1Offset i32:$ptr, i32:$offset))), + (inst $ptr, Offset:$offset, (i1 0)) +>; + +let SubtargetPredicate = HasGFX950Insts in { + def : DSLoadTrPat ; + def : DSLoadTrPat ; + def : DSLoadTrPat ; + def : DSLoadTrPat ; +} + //===----------------------------------------------------------------------===// // Target-specific instruction encodings. //===----------------------------------------------------------------------===// @@ -1748,3 +1773,11 @@ def DS_PK_ADD_F16_vi : DS_Real_vi<0x17, DS_PK_ADD_F16>; def DS_PK_ADD_RTN_F16_vi : DS_Real_vi<0xb7, DS_PK_ADD_RTN_F16>; def DS_PK_ADD_BF16_vi : DS_Real_vi<0x18, DS_PK_ADD_BF16>; def DS_PK_ADD_RTN_BF16_vi : DS_Real_vi<0xb8, DS_PK_ADD_RTN_BF16>; + +//===----------------------------------------------------------------------===// +// GFX950. +//===----------------------------------------------------------------------===// +def DS_READ_B64_TR_B4_vi : DS_Real_vi<0x0e0, DS_READ_B64_TR_B4>; +def DS_READ_B96_TR_B6_vi : DS_Real_vi<0x0e1, DS_READ_B96_TR_B6>; +def DS_READ_B64_TR_B8_vi : DS_Real_vi<0x0e2, DS_READ_B64_TR_B8>; +def DS_READ_B64_TR_B16_vi : DS_Real_vi<0x0e3, DS_READ_B64_TR_B16>; diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp index 06df08feda8fa..5908351805721 100644 --- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp +++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @@ -45,26 +45,10 @@ using namespace llvm; using DecodeStatus = llvm::MCDisassembler::DecodeStatus; -static const MCSubtargetInfo &addDefaultWaveSize(const MCSubtargetInfo &STI, - MCContext &Ctx) { - if (!STI.hasFeature(AMDGPU::FeatureWavefrontSize64) && - !STI.hasFeature(AMDGPU::FeatureWavefrontSize32)) { - MCSubtargetInfo &STICopy = Ctx.getSubtargetCopy(STI); - // If there is no default wave size it must be a generation before gfx10, - // these have FeatureWavefrontSize64 in their definition already. For gfx10+ - // set wave32 as a default. - STICopy.ToggleFeature(AMDGPU::FeatureWavefrontSize32); - return STICopy; - } - - return STI; -} - AMDGPUDisassembler::AMDGPUDisassembler(const MCSubtargetInfo &STI, MCContext &Ctx, MCInstrInfo const *MCII) - : MCDisassembler(addDefaultWaveSize(STI, Ctx), Ctx), MCII(MCII), - MRI(*Ctx.getRegisterInfo()), MAI(*Ctx.getAsmInfo()), - TargetMaxInstBytes(MAI.getMaxInstLength(&STI)), + : MCDisassembler(STI, Ctx), MCII(MCII), MRI(*Ctx.getRegisterInfo()), + MAI(*Ctx.getAsmInfo()), TargetMaxInstBytes(MAI.getMaxInstLength(&STI)), CodeObjectVersion(AMDGPU::getDefaultAMDHSACodeObjectVersion()) { // ToDo: AMDGPUDisassembler supports only VI ISA. if (!STI.hasFeature(AMDGPU::FeatureGCN3Encoding) && !isGFX10Plus()) @@ -278,6 +262,7 @@ DECODE_OPERAND_REG_8(VGPR_32_Lo128) DECODE_OPERAND_REG_8(VReg_64) DECODE_OPERAND_REG_8(VReg_96) DECODE_OPERAND_REG_8(VReg_128) +DECODE_OPERAND_REG_8(VReg_192) DECODE_OPERAND_REG_8(VReg_256) DECODE_OPERAND_REG_8(VReg_288) DECODE_OPERAND_REG_8(VReg_352) @@ -512,6 +497,17 @@ static inline DecoderUInt128 eat12Bytes(ArrayRef &Bytes) { return DecoderUInt128(Lo, Hi); } +static inline DecoderUInt128 eat16Bytes(ArrayRef &Bytes) { + assert(Bytes.size() >= 16); + uint64_t Lo = + support::endian::read(Bytes.data()); + Bytes = Bytes.slice(8); + uint64_t Hi = + support::endian::read(Bytes.data()); + Bytes = Bytes.slice(8); + return DecoderUInt128(Lo, Hi); +} + DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size, ArrayRef Bytes_, uint64_t Address, @@ -548,6 +544,15 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size, // Reinitialize Bytes Bytes = Bytes_.slice(0, MaxInstBytesNum); + + } else if (Bytes.size() >= 16 && + STI.hasFeature(AMDGPU::FeatureGFX950Insts)) { + DecoderUInt128 DecW = eat16Bytes(Bytes); + if (tryDecodeInst(DecoderTableGFX940128, MI, DecW, Address, CS)) + break; + + // Reinitialize Bytes + Bytes = Bytes_.slice(0, MaxInstBytesNum); } if (Bytes.size() >= 8) { @@ -561,6 +566,10 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size, tryDecodeInst(DecoderTableGFX80_UNPACKED64, MI, QW, Address, CS)) break; + if (STI.hasFeature(AMDGPU::FeatureGFX950Insts) && + tryDecodeInst(DecoderTableGFX95064, MI, QW, Address, CS)) + break; + // Some GFX9 subtargets repurposed the v_mad_mix_f32, v_mad_mixlo_f16 and // v_mad_mixhi_f16 for FMA variants. Try to decode using this special // table first so we print the correct name. @@ -622,6 +631,10 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size, if (isGFX9() && tryDecodeInst(DecoderTableGFX932, MI, DW, Address, CS)) break; + if (STI.hasFeature(AMDGPU::FeatureGFX950Insts) && + tryDecodeInst(DecoderTableGFX95032, MI, DW, Address, CS)) + break; + if (STI.hasFeature(AMDGPU::FeatureGFX90AInsts) && tryDecodeInst(DecoderTableGFX90A32, MI, DW, Address, CS)) break; @@ -759,6 +772,9 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size, if (MCII->get(MI.getOpcode()).TSFlags & SIInstrFlags::SDWA) convertSDWAInst(MI); + if (MCII->get(MI.getOpcode()).TSFlags & SIInstrFlags::IsMAI) + convertMAIInst(MI); + int VDstIn_Idx = AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::vdst_in); if (VDstIn_Idx != -1) { @@ -837,6 +853,58 @@ void AMDGPUDisassembler::convertSDWAInst(MCInst &MI) const { } } +/// Adjust the register values used by V_MFMA_F8F6F4_f8_f8 instructions to the +/// appropriate subregister for the used format width. +static void adjustMFMA_F8F6F4OpRegClass(const MCRegisterInfo &MRI, + MCOperand &MO, uint8_t NumRegs) { + switch (NumRegs) { + case 4: + return MO.setReg(MRI.getSubReg(MO.getReg(), AMDGPU::sub0_sub1_sub2_sub3)); + case 6: + return MO.setReg( + MRI.getSubReg(MO.getReg(), AMDGPU::sub0_sub1_sub2_sub3_sub4_sub5)); + case 8: + // No-op in cases where one operand is still f8/bf8. + return; + default: + llvm_unreachable("Unexpected size for mfma f8f6f4 operand"); + } +} + +/// f8f6f4 instructions have different pseudos depending on the used formats. In +/// the disassembler table, we only have the variants with the largest register +/// classes which assume using an fp8/bf8 format for both operands. The actual +/// register class depends on the format in blgp and cbsz operands. Adjust the +/// register classes depending on the used format. +void AMDGPUDisassembler::convertMAIInst(MCInst &MI) const { + int BlgpIdx = + AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::blgp); + if (BlgpIdx == -1) + return; + + int CbszIdx = + AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::cbsz); + + unsigned CBSZ = MI.getOperand(CbszIdx).getImm(); + unsigned BLGP = MI.getOperand(BlgpIdx).getImm(); + + const AMDGPU::MFMA_F8F6F4_Info *AdjustedRegClassOpcode = + AMDGPU::getMFMA_F8F6F4_WithFormatArgs(CBSZ, BLGP, MI.getOpcode()); + if (!AdjustedRegClassOpcode || + AdjustedRegClassOpcode->Opcode == MI.getOpcode()) + return; + + MI.setOpcode(AdjustedRegClassOpcode->Opcode); + int Src0Idx = + AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::src0); + int Src1Idx = + AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::src1); + adjustMFMA_F8F6F4OpRegClass(MRI, MI.getOperand(Src0Idx), + AdjustedRegClassOpcode->NumRegsSrcA); + adjustMFMA_F8F6F4OpRegClass(MRI, MI.getOperand(Src1Idx), + AdjustedRegClassOpcode->NumRegsSrcB); +} + struct VOPModifiers { unsigned OpSel = 0; unsigned OpSelHi = 0; @@ -1471,6 +1539,7 @@ unsigned AMDGPUDisassembler::getVgprClassId(const OpWidthTy Width) const { case OPWV232: return VReg_64RegClassID; case OPW96: return VReg_96RegClassID; case OPW128: return VReg_128RegClassID; + case OPW192: return VReg_192RegClassID; case OPW160: return VReg_160RegClassID; case OPW256: return VReg_256RegClassID; case OPW288: return VReg_288RegClassID; @@ -1767,28 +1836,28 @@ MCOperand AMDGPUDisassembler::decodeSDWAVopcDst(unsigned Val) const { STI.hasFeature(AMDGPU::FeatureGFX10)) && "SDWAVopcDst should be present only on GFX9+"); - bool IsWave64 = STI.hasFeature(AMDGPU::FeatureWavefrontSize64); + bool IsWave32 = STI.hasFeature(AMDGPU::FeatureWavefrontSize32); if (Val & SDWA9EncValues::VOPC_DST_VCC_MASK) { Val &= SDWA9EncValues::VOPC_DST_SGPR_MASK; int TTmpIdx = getTTmpIdx(Val); if (TTmpIdx >= 0) { - auto TTmpClsId = getTtmpClassId(IsWave64 ? OPW64 : OPW32); + auto TTmpClsId = getTtmpClassId(IsWave32 ? OPW32 : OPW64); return createSRegOperand(TTmpClsId, TTmpIdx); } if (Val > SGPR_MAX) { - return IsWave64 ? decodeSpecialReg64(Val) : decodeSpecialReg32(Val); + return IsWave32 ? decodeSpecialReg32(Val) : decodeSpecialReg64(Val); } - return createSRegOperand(getSgprClassId(IsWave64 ? OPW64 : OPW32), Val); + return createSRegOperand(getSgprClassId(IsWave32 ? OPW32 : OPW64), Val); } - return createRegOperand(IsWave64 ? AMDGPU::VCC : AMDGPU::VCC_LO); + return createRegOperand(IsWave32 ? AMDGPU::VCC_LO : AMDGPU::VCC); } MCOperand AMDGPUDisassembler::decodeBoolReg(unsigned Val) const { - return STI.hasFeature(AMDGPU::FeatureWavefrontSize64) - ? decodeSrcOp(OPW64, Val) - : decodeSrcOp(OPW32, Val); + return STI.hasFeature(AMDGPU::FeatureWavefrontSize32) + ? decodeSrcOp(OPW32, Val) + : decodeSrcOp(OPW64, Val); } MCOperand AMDGPUDisassembler::decodeSplitBarrier(unsigned Val) const { diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h index 694cd7a9bfd28..b19e4b74a394c 100644 --- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h +++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h @@ -204,6 +204,7 @@ class AMDGPUDisassembler : public MCDisassembler { void convertVINTERPInst(MCInst &MI) const; void convertFMAanyK(MCInst &MI, int ImmLitIdx) const; void convertSDWAInst(MCInst &MI) const; + void convertMAIInst(MCInst &MI) const; void convertDPP8Inst(MCInst &MI) const; void convertMIMGInst(MCInst &MI) const; void convertVOP3DPPInst(MCInst &MI) const; @@ -218,6 +219,7 @@ class AMDGPUDisassembler : public MCDisassembler { OPW96, OPW128, OPW160, + OPW192, OPW256, OPW288, OPW320, diff --git a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp index 44afccb0690d0..4c37ef8855a5b 100644 --- a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp +++ b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp @@ -168,7 +168,11 @@ static bool isPermlane(const MachineInstr &MI) { Opcode == AMDGPU::V_PERMLANE64_B32 || Opcode == AMDGPU::V_PERMLANEX16_B32_e64 || Opcode == AMDGPU::V_PERMLANE16_VAR_B32_e64 || - Opcode == AMDGPU::V_PERMLANEX16_VAR_B32_e64; + Opcode == AMDGPU::V_PERMLANEX16_VAR_B32_e64 || + Opcode == AMDGPU::V_PERMLANE16_SWAP_B32_e32 || + Opcode == AMDGPU::V_PERMLANE16_SWAP_B32_e64 || + Opcode == AMDGPU::V_PERMLANE32_SWAP_B32_e32 || + Opcode == AMDGPU::V_PERMLANE32_SWAP_B32_e64; } static bool isLdsDma(const MachineInstr &MI) { @@ -395,6 +399,9 @@ unsigned GCNHazardRecognizer::PreEmitNoopsCommon(MachineInstr *MI) { SIInstrInfo::isDS(*MI)) return std::max(WaitStates, checkMAILdStHazards(MI)); + if (ST.hasGFX950Insts() && isPermlane(*MI)) + return std::max(WaitStates, checkPermlaneHazards(MI)); + return WaitStates; } @@ -1200,6 +1207,13 @@ void GCNHazardRecognizer::fixHazards(MachineInstr *MI) { fixRequiredExportPriority(MI); } +static bool isVCmpXWritesExec(const SIInstrInfo &TII, const SIRegisterInfo &TRI, + const MachineInstr &MI) { + return (TII.isVOPC(MI) || + (MI.isCompare() && (TII.isVOP3(MI) || TII.isSDWA(MI)))) && + MI.modifiesRegister(AMDGPU::EXEC, &TRI); +} + bool GCNHazardRecognizer::fixVcmpxPermlaneHazards(MachineInstr *MI) { if (!ST.hasVcmpxPermlaneHazard() || !isPermlane(*MI)) return false; @@ -1207,9 +1221,7 @@ bool GCNHazardRecognizer::fixVcmpxPermlaneHazards(MachineInstr *MI) { const SIInstrInfo *TII = ST.getInstrInfo(); const SIRegisterInfo *TRI = ST.getRegisterInfo(); auto IsHazardFn = [TII, TRI](const MachineInstr &MI) { - return (TII->isVOPC(MI) || - ((TII->isVOP3(MI) || TII->isSDWA(MI)) && MI.isCompare())) && - MI.modifiesRegister(AMDGPU::EXEC, TRI); + return isVCmpXWritesExec(*TII, *TRI, MI); }; auto IsExpiredFn = [](const MachineInstr &MI, int) { @@ -2232,12 +2244,25 @@ int GCNHazardRecognizer::checkMAIHazards908(MachineInstr *MI) { } static int -GFX940_XDL_N_PassWritesVGPROverlappedSMFMASrcCWaitStates(int NumPasses) { - // 2 pass -> 3 - // 4 pass -> 5 - // 8 pass -> 9 - // 16 pass -> 17 - return NumPasses + 1; +GFX940_XDL_N_PassWritesVGPROverlappedXDLOrSMFMASrcCWaitStates(int NumPasses, + bool IsGFX950) { + // xdl def cycles | gfx940 | gfx950 + // 2 pass | 3 4 + // 4 pass | 5 6 + // 8 pass | 9 10 + // 16 pass | 17 18 + return NumPasses + 1 + IsGFX950; +} + +static int +GFX940_XDL_N_PassWritesVGPROverlappedSGEMMDGEMMSrcCWaitStates(int NumPasses, + bool IsGFX950) { + // xdl def cycles | gfx940 | gfx950 + // 2 pass | 3 3 + // 4 pass | 5 6 + // 8 pass | 9 10 + // 16 pass | 17 18 + return NumPasses + 1 + (NumPasses != 2 && IsGFX950); } static int @@ -2300,12 +2325,14 @@ int GCNHazardRecognizer::checkMAIHazards90A(MachineInstr *MI) { const int SMFMA16x16WritesVGPROverlappedDMFMASrcCWaitStates = 9; const int SMFMA32x32WritesVGPROverlappedDMFMASrcCWaitStates = 17; const int DMFMA16x16WritesVGPROverlappedSrcCWaitStates = 9; + const int GFX950_DMFMA16x16WritesVGPROverlappedSrcCWaitStates = 17; const int DMFMA4x4WritesVGPROverlappedSrcCWaitStates = 4; const int SMFMA4x4WritesVGPROverlappedSrcABWaitStates = 5; const int SMFMA16x16WritesVGPROverlappedSrcABWaitStates = 11; const int SMFMA32x32WritesVGPROverlappedSrcABWaitStates = 19; const int DMFMA4x4WritesVGPROverlappedMFMASrcABWaitStates = 6; const int DMFMA16x16WritesVGPROverlappedMFMASrcABWaitStates = 11; + const int GFX950_DMFMA16x16WritesVGPROverlappedMFMASrcABWaitStates = 19; const int DMFMA4x4WritesVGPRFullSrcCWaitStates = 4; const int GFX940_SMFMA4x4WritesVGPRFullSrcCWaitStates = 2; const int MaxWaitStates = 19; @@ -2357,7 +2384,10 @@ int GCNHazardRecognizer::checkMAIHazards90A(MachineInstr *MI) { case AMDGPU::V_MFMA_F64_16X16X4F64_mac_e64: case AMDGPU::V_MFMA_F64_16X16X4F64_mac_vgprcd_e64: if (!isXDL(ST, *MI)) - NeedWaitStates = DMFMA16x16WritesVGPROverlappedSrcCWaitStates; + NeedWaitStates = + ST.hasGFX950Insts() + ? GFX950_DMFMA16x16WritesVGPROverlappedSrcCWaitStates + : DMFMA16x16WritesVGPROverlappedSrcCWaitStates; break; case AMDGPU::V_MFMA_F64_4X4X4F64_e64: case AMDGPU::V_MFMA_F64_4X4X4F64_vgprcd_e64: @@ -2372,8 +2402,11 @@ int GCNHazardRecognizer::checkMAIHazards90A(MachineInstr *MI) { NeedWaitStates = isXDL(ST, *MI1) - ? GFX940_XDL_N_PassWritesVGPROverlappedSMFMASrcCWaitStates( - NumPasses) + ? (isXDL(ST, *MI) + ? GFX940_XDL_N_PassWritesVGPROverlappedXDLOrSMFMASrcCWaitStates( + NumPasses, ST.hasGFX950Insts()) + : GFX940_XDL_N_PassWritesVGPROverlappedSGEMMDGEMMSrcCWaitStates( + NumPasses, ST.hasGFX950Insts())) : GFX940_SMFMA_N_PassWritesVGPROverlappedSMFMASrcCWaitStates( NumPasses); break; @@ -2408,7 +2441,10 @@ int GCNHazardRecognizer::checkMAIHazards90A(MachineInstr *MI) { case AMDGPU::V_MFMA_F64_16X16X4F64_vgprcd_e64: case AMDGPU::V_MFMA_F64_16X16X4F64_mac_e64: case AMDGPU::V_MFMA_F64_16X16X4F64_mac_vgprcd_e64: - NeedWaitStates = DMFMA16x16WritesVGPROverlappedMFMASrcABWaitStates; + NeedWaitStates = + ST.hasGFX950Insts() + ? GFX950_DMFMA16x16WritesVGPROverlappedMFMASrcABWaitStates + : DMFMA16x16WritesVGPROverlappedMFMASrcABWaitStates; break; case AMDGPU::V_MFMA_F64_4X4X4F64_e64: case AMDGPU::V_MFMA_F64_4X4X4F64_vgprcd_e64: @@ -2505,6 +2541,46 @@ int GCNHazardRecognizer::checkMAILdStHazards(MachineInstr *MI) { return WaitStatesNeeded; } +int GCNHazardRecognizer::checkPermlaneHazards(MachineInstr *MI) { + assert(!ST.hasVcmpxPermlaneHazard() && + "this is a different vcmpx+permlane hazard"); + const SIRegisterInfo *TRI = ST.getRegisterInfo(); + const SIInstrInfo *TII = ST.getInstrInfo(); + + auto IsVCmpXWritesExecFn = [TII, TRI](const MachineInstr &MI) { + return isVCmpXWritesExec(*TII, *TRI, MI); + }; + + auto IsVALUFn = [](const MachineInstr &MI) { + return SIInstrInfo::isVALU(MI); + }; + + const int VCmpXWritesExecWaitStates = 4; + const int VALUWritesVDstWaitStates = 2; + int WaitStatesNeeded = 0; + + for (const MachineOperand &Op : MI->explicit_uses()) { + if (!Op.isReg() || !TRI->isVGPR(MF.getRegInfo(), Op.getReg())) + continue; + Register Reg = Op.getReg(); + + int WaitStatesSinceDef = + VALUWritesVDstWaitStates - + getWaitStatesSinceDef(Reg, IsVALUFn, + /*MaxWaitStates=*/VALUWritesVDstWaitStates); + WaitStatesNeeded = std::max(WaitStatesNeeded, WaitStatesSinceDef); + if (WaitStatesNeeded >= VALUWritesVDstWaitStates) + break; + } + + int VCmpXHazardWaits = + VCmpXWritesExecWaitStates - + getWaitStatesSince(IsVCmpXWritesExecFn, VCmpXWritesExecWaitStates); + + WaitStatesNeeded = std::max(WaitStatesNeeded, VCmpXHazardWaits); + return WaitStatesNeeded; +} + static int GFX940_SMFMA_N_PassWriteVgprVALUWawWaitStates(int NumPasses) { // 2 pass -> 4 // 4 pass -> 6 @@ -2603,6 +2679,7 @@ int GCNHazardRecognizer::checkMAIVALUHazards(MachineInstr *MI) { const int DMFMA16x16WriteVgprMemExpReadWaitStates = 18; const int DMFMA4x4WriteVgprVALUReadWaitStates = 6; const int DMFMA16x16WriteVgprVALUReadWaitStates = 11; + const int GFX950_DMFMA16x16WriteVgprVALUReadWaitStates = 19; const int DotWriteSameDotReadSrcAB = 3; const int DotWriteDifferentVALURead = 3; const int DMFMABetweenVALUWriteVMEMRead = 2; @@ -2663,9 +2740,12 @@ int GCNHazardRecognizer::checkMAIVALUHazards(MachineInstr *MI) { break; case 8: case 16: - NeedWaitStates = IsMemOrExport - ? DMFMA16x16WriteVgprMemExpReadWaitStates - : DMFMA16x16WriteVgprVALUReadWaitStates; + NeedWaitStates = + IsMemOrExport + ? DMFMA16x16WriteVgprMemExpReadWaitStates + : (ST.hasGFX950Insts() + ? GFX950_DMFMA16x16WriteVgprVALUReadWaitStates + : DMFMA16x16WriteVgprVALUReadWaitStates); break; default: llvm_unreachable("unexpected dgemm"); diff --git a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h index adb2278c48eeb..83ce100c58f0a 100644 --- a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h +++ b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h @@ -134,6 +134,7 @@ class GCNHazardRecognizer final : public ScheduleHazardRecognizer { int checkMFMAPadding(MachineInstr *MI); int checkMAIVALUHazards(MachineInstr *MI); int checkMAILdStHazards(MachineInstr *MI); + int checkPermlaneHazards(MachineInstr *MI); public: GCNHazardRecognizer(const MachineFunction &MF); diff --git a/llvm/lib/Target/AMDGPU/GCNProcessors.td b/llvm/lib/Target/AMDGPU/GCNProcessors.td index 3403cbab526d4..a86c76bb6075e 100644 --- a/llvm/lib/Target/AMDGPU/GCNProcessors.td +++ b/llvm/lib/Target/AMDGPU/GCNProcessors.td @@ -9,11 +9,11 @@ // The code produced for "generic" is only useful for tests and cannot // reasonably be expected to execute on any particular target. def : ProcessorModel<"generic", NoSchedModel, - [FeatureWavefrontSize64, FeatureGDS, FeatureGWS] + [FeatureGDS, FeatureGWS] >; def : ProcessorModel<"generic-hsa", NoSchedModel, - [FeatureWavefrontSize64, FeatureGDS, FeatureGWS, FeatureFlatAddressSpace] + [FeatureGDS, FeatureGWS, FeatureFlatAddressSpace] >; //===------------------------------------------------------------===// @@ -204,7 +204,7 @@ def : ProcessorModel<"gfx942", SIDPGFX940FullSpeedModel, FeatureISAVersion9_4_2.Features >; -def : ProcessorModel<"gfx950", SIDPGFX940FullSpeedModel, +def : ProcessorModel<"gfx950", SIDPGFX950FullSpeedModel, FeatureISAVersion9_5_0.Features >; diff --git a/llvm/lib/Target/AMDGPU/GCNSubtarget.cpp b/llvm/lib/Target/AMDGPU/GCNSubtarget.cpp index 6233ca2eb4f1d..51361b7594056 100644 --- a/llvm/lib/Target/AMDGPU/GCNSubtarget.cpp +++ b/llvm/lib/Target/AMDGPU/GCNSubtarget.cpp @@ -100,14 +100,16 @@ GCNSubtarget &GCNSubtarget::initializeSubtargetDependencies(const Triple &TT, if (Gen == AMDGPUSubtarget::INVALID) { Gen = TT.getOS() == Triple::AMDHSA ? AMDGPUSubtarget::SEA_ISLANDS : AMDGPUSubtarget::SOUTHERN_ISLANDS; - } - - if (!hasFeature(AMDGPU::FeatureWavefrontSize32) && - !hasFeature(AMDGPU::FeatureWavefrontSize64)) { + // Assume wave64 for the unknown target, if not explicitly set. + if (getWavefrontSizeLog2() == 0) + WavefrontSizeLog2 = 6; + } else if (!hasFeature(AMDGPU::FeatureWavefrontSize32) && + !hasFeature(AMDGPU::FeatureWavefrontSize64)) { // If there is no default wave size it must be a generation before gfx10, // these have FeatureWavefrontSize64 in their definition already. For gfx10+ // set wave32 as a default. ToggleFeature(AMDGPU::FeatureWavefrontSize32); + WavefrontSizeLog2 = getGeneration() >= AMDGPUSubtarget::GFX10 ? 5 : 6; } // We don't support FP64 for EG/NI atm. @@ -147,10 +149,6 @@ GCNSubtarget &GCNSubtarget::initializeSubtargetDependencies(const Triple &TT, !getFeatureBits().test(AMDGPU::FeatureCuMode)) LocalMemorySize *= 2; - // Don't crash on invalid devices. - if (WavefrontSizeLog2 == 0) - WavefrontSizeLog2 = 5; - HasFminFmaxLegacy = getGeneration() < AMDGPUSubtarget::VOLCANIC_ISLANDS; HasSMulHi = getGeneration() >= AMDGPUSubtarget::GFX9; @@ -166,7 +164,7 @@ GCNSubtarget &GCNSubtarget::initializeSubtargetDependencies(const Triple &TT, void GCNSubtarget::checkSubtargetFeatures(const Function &F) const { LLVMContext &Ctx = F.getContext(); - if (hasFeature(AMDGPU::FeatureWavefrontSize32) == + if (hasFeature(AMDGPU::FeatureWavefrontSize32) && hasFeature(AMDGPU::FeatureWavefrontSize64)) { Ctx.diagnose(DiagnosticInfoUnsupported( F, "must specify exactly one of wavefrontsize32 and wavefrontsize64")); diff --git a/llvm/lib/Target/AMDGPU/GCNSubtarget.h b/llvm/lib/Target/AMDGPU/GCNSubtarget.h index f3f96940c1f44..ea5e159fdd836 100644 --- a/llvm/lib/Target/AMDGPU/GCNSubtarget.h +++ b/llvm/lib/Target/AMDGPU/GCNSubtarget.h @@ -156,6 +156,8 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo, bool HasDot9Insts = false; bool HasDot10Insts = false; bool HasDot11Insts = false; + bool HasDot12Insts = false; + bool HasDot13Insts = false; bool HasMAIInsts = false; bool HasFP8Insts = false; bool HasFP8ConversionInsts = false; @@ -220,7 +222,10 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo, bool HasSALUFloatInsts = false; bool HasPseudoScalarTrans = false; bool HasRestrictedSOffset = false; + bool HasBitOp3Insts = false; bool HasPrngInst = false; + bool HasPermlane16Swap = false; + bool HasPermlane32Swap = false; bool HasVcmpxPermlaneHazard = false; bool HasVMEMtoScalarWriteHazard = false; bool HasSMEMtoVectorWriteHazard = false; @@ -242,8 +247,11 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo, bool HasForceStoreSC0SC1 = false; bool HasRequiredExportPriority = false; bool HasVmemWriteVgprInOrder = false; + bool HasAshrPkInsts = false; bool HasMinimum3Maximum3F32 = false; bool HasMinimum3Maximum3F16 = false; + bool HasMinimum3Maximum3PKF16 = false; + bool RequiresCOV6 = false; // Dummy feature to use for assembler in tablegen. @@ -820,6 +828,14 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo, return HasDot11Insts; } + bool hasDot12Insts() const { + return HasDot12Insts; + } + + bool hasDot13Insts() const { + return HasDot13Insts; + } + bool hasMAIInsts() const { return HasMAIInsts; } @@ -1319,6 +1335,12 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo, /// \returns true if the target has instructions with xf32 format support. bool hasXF32Insts() const { return HasXF32Insts; } + bool hasBitOp3Insts() const { return HasBitOp3Insts; } + + bool hasPermlane16Swap() const { return HasPermlane16Swap; } + bool hasPermlane32Swap() const { return HasPermlane32Swap; } + bool hasAshrPkInsts() const { return HasAshrPkInsts; } + bool hasMinimum3Maximum3F32() const { return HasMinimum3Maximum3F32; } @@ -1327,6 +1349,10 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo, return HasMinimum3Maximum3F16; } + bool hasMinimum3Maximum3PKF16() const { + return HasMinimum3Maximum3PKF16; + } + /// \returns The maximum number of instructions that can be enclosed in an /// S_CLAUSE on the given subtarget, or 0 for targets that do not support that /// instruction. @@ -1564,6 +1590,14 @@ class GCNSubtarget final : public AMDGPUGenSubtargetInfo, return getWavefrontSize() == 64; } + /// Returns if the wavesize of this subtarget is known reliable. This is false + /// only for the a default target-cpu that does not have an explicit + /// +wavefrontsize target feature. + bool isWaveSizeKnown() const { + return hasFeature(AMDGPU::FeatureWavefrontSize32) || + hasFeature(AMDGPU::FeatureWavefrontSize64); + } + const TargetRegisterClass *getBoolRC() const { return getRegisterInfo()->getBoolRC(); } diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp index 428a19c391374..c389f3a13d952 100644 --- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp +++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp @@ -160,7 +160,7 @@ void AMDGPUInstPrinter::printCPol(const MCInst *MI, unsigned OpNo, O << " dlc"; if ((Imm & CPol::SCC) && AMDGPU::isGFX90A(STI)) O << (AMDGPU::isGFX940(STI) ? " sc1" : " scc"); - if (Imm & ~CPol::ALL) + if (Imm & ~CPol::ALL_pregfx12) O << " /* unexpected cache policy bit */"; } @@ -649,9 +649,9 @@ void AMDGPUInstPrinter::printDefaultVccOperand(bool FirstOperand, raw_ostream &O) { if (!FirstOperand) O << ", "; - printRegOperand(STI.hasFeature(AMDGPU::FeatureWavefrontSize64) - ? AMDGPU::VCC - : AMDGPU::VCC_LO, + printRegOperand(STI.hasFeature(AMDGPU::FeatureWavefrontSize32) + ? AMDGPU::VCC_LO + : AMDGPU::VCC, O, MRI); if (FirstOperand) O << ", "; @@ -1714,4 +1714,18 @@ void AMDGPUInstPrinter::printNamedInt(const MCInst *MI, unsigned OpNo, O << ' ' << Prefix << ':' << (PrintInHex ? formatHex(V) : formatDec(V)); } +void AMDGPUInstPrinter::printBitOp3(const MCInst *MI, unsigned OpNo, + const MCSubtargetInfo &STI, + raw_ostream &O) { + uint8_t Imm = MI->getOperand(OpNo).getImm(); + if (!Imm) + return; + + O << " bitop3:"; + if (Imm <= 10) + O << formatDec(Imm); + else + O << formatHex(static_cast(Imm)); +} + #include "AMDGPUGenAsmWriter.inc" diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h index 5a7d6cf7ba595..071e0a9d0fee6 100644 --- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h +++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h @@ -163,6 +163,9 @@ class AMDGPUInstPrinter : public MCInstPrinter { const MCSubtargetInfo &STI, raw_ostream &O, StringRef Prefix, bool PrintInHex, bool AlwaysPrint); + void printBitOp3(const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, + raw_ostream &O); + public: static void printIfSet(const MCInst *MI, unsigned OpNo, raw_ostream &O, StringRef Asm, StringRef Default = ""); diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp index 3c9f6d2938075..56ed29ede02c2 100644 --- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp +++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp @@ -59,6 +59,10 @@ unsigned AMDGPUMCAsmInfo::getMaxInstLength(const MCSubtargetInfo *STI) const { if (STI->hasFeature(AMDGPU::FeatureNSAEncoding)) return 20; + // VOP3PX encoding. + if (STI->hasFeature(AMDGPU::FeatureGFX950Insts)) + return 16; + // 64-bit instruction with 32-bit literal. if (STI->hasFeature(AMDGPU::FeatureVOP3Literal)) return 12; diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp index 29be64625811f..c692895d84c00 100644 --- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp +++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp @@ -77,7 +77,22 @@ static MCSubtargetInfo * createAMDGPUMCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS) { if (TT.getArch() == Triple::r600) return createR600MCSubtargetInfoImpl(TT, CPU, /*TuneCPU*/ CPU, FS); - return createAMDGPUMCSubtargetInfoImpl(TT, CPU, /*TuneCPU*/ CPU, FS); + + MCSubtargetInfo *STI = + createAMDGPUMCSubtargetInfoImpl(TT, CPU, /*TuneCPU*/ CPU, FS); + + // FIXME: We should error for the default target. + if (!STI->hasFeature(AMDGPU::FeatureWavefrontSize64) && + !STI->hasFeature(AMDGPU::FeatureWavefrontSize32)) { + // If there is no default wave size it must be a generation before gfx10, + // these have FeatureWavefrontSize64 in their definition already. For gfx10+ + // set wave32 as a default. + STI->ToggleFeature(AMDGPU::isGFX10Plus(*STI) + ? AMDGPU::FeatureWavefrontSize32 + : AMDGPU::FeatureWavefrontSize64); + } + + return STI; } static MCInstPrinter *createAMDGPUMCInstPrinter(const Triple &T, diff --git a/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp b/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp index 1b88fdd3ab2e1..c2e952418f1be 100644 --- a/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp @@ -919,7 +919,7 @@ SDValue R600TargetLowering::LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) const HWTrue = DAG.getConstantFP(1.0f, DL, CompareVT); HWFalse = DAG.getConstantFP(0.0f, DL, CompareVT); } else if (CompareVT == MVT::i32) { - HWTrue = DAG.getConstant(-1, DL, CompareVT); + HWTrue = DAG.getAllOnesConstant(DL, CompareVT); HWFalse = DAG.getConstant(0, DL, CompareVT); } else { @@ -949,7 +949,7 @@ SDValue R600TargetLowering::lowerADDRSPACECAST(SDValue Op, unsigned DestAS = ASC->getDestAddressSpace(); if (isNullConstant(Op.getOperand(0)) && SrcAS == AMDGPUAS::FLAT_ADDRESS) - return DAG.getConstant(TM.getNullPointerValue(DestAS), SL, VT); + return DAG.getSignedConstant(TM.getNullPointerValue(DestAS), SL, VT); return Op; } @@ -1750,11 +1750,11 @@ SDValue R600TargetLowering::PerformDAGCombine(SDNode *N, } return DAG.getNode(ISD::SELECT_CC, DL, N->getValueType(0), - SelectCC.getOperand(0), // LHS - SelectCC.getOperand(1), // RHS - DAG.getConstant(-1, DL, MVT::i32), // True - DAG.getConstant(0, DL, MVT::i32), // False - SelectCC.getOperand(4)); // CC + SelectCC.getOperand(0), // LHS + SelectCC.getOperand(1), // RHS + DAG.getAllOnesConstant(DL, MVT::i32), // True + DAG.getConstant(0, DL, MVT::i32), // False + SelectCC.getOperand(4)); // CC } // insert_vector_elt (build_vector elt0, ... , eltN), NewEltIdx, idx diff --git a/llvm/lib/Target/AMDGPU/SIDefines.h b/llvm/lib/Target/AMDGPU/SIDefines.h index 8f297726a0df8..f812ae652b63d 100644 --- a/llvm/lib/Target/AMDGPU/SIDefines.h +++ b/llvm/lib/Target/AMDGPU/SIDefines.h @@ -1048,6 +1048,18 @@ enum Offset_COV5 : unsigned { } // namespace ImplicitArg +namespace MFMAScaleFormats { +// Enum value used in cbsz/blgp for F8F6F4 MFMA operations to select the matrix +// format. +enum MFMAScaleFormats { + FP8_E4M3 = 0, + FP8_E5M2 = 1, + FP6_E2M3 = 2, + FP6_E3M2 = 3, + FP4_E2M1 = 4 +}; +} // namespace MFMAScaleFormats + namespace VirtRegFlag { // Virtual register flags used for various target specific handlings during // codegen. diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index 5b02f9bf80d3f..f326416a32417 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -1382,7 +1382,11 @@ bool SITargetLowering::getTgtMemIntrinsic(IntrinsicInfo &Info, return true; } case Intrinsic::amdgcn_global_load_tr_b64: - case Intrinsic::amdgcn_global_load_tr_b128: { + case Intrinsic::amdgcn_global_load_tr_b128: + case Intrinsic::amdgcn_ds_read_tr4_b64: + case Intrinsic::amdgcn_ds_read_tr6_b96: + case Intrinsic::amdgcn_ds_read_tr8_b64: + case Intrinsic::amdgcn_ds_read_tr16_b64: { Info.opc = ISD::INTRINSIC_W_CHAIN; Info.memVT = MVT::getVT(CI.getType()); Info.ptrVal = CI.getOperand(0); @@ -1477,6 +1481,10 @@ bool SITargetLowering::getAddrModeArguments(IntrinsicInst *II, case Intrinsic::amdgcn_atomic_cond_sub_u32: case Intrinsic::amdgcn_ds_append: case Intrinsic::amdgcn_ds_consume: + case Intrinsic::amdgcn_ds_read_tr4_b64: + case Intrinsic::amdgcn_ds_read_tr6_b96: + case Intrinsic::amdgcn_ds_read_tr8_b64: + case Intrinsic::amdgcn_ds_read_tr16_b64: case Intrinsic::amdgcn_ds_ordered_add: case Intrinsic::amdgcn_ds_ordered_swap: case Intrinsic::amdgcn_flat_atomic_fmax_num: @@ -4019,10 +4027,11 @@ SDValue SITargetLowering::lowerDYNAMIC_STACKALLOCImpl(SDValue Op, Align StackAlign = TFL->getStackAlign(); Tmp1 = DAG.getNode(Opc, dl, VT, SP, ScaledSize); // Value if (Alignment && *Alignment > StackAlign) { - Tmp1 = DAG.getNode(ISD::AND, dl, VT, Tmp1, - DAG.getConstant(-(uint64_t)Alignment->value() - << Subtarget->getWavefrontSizeLog2(), - dl, VT)); + Tmp1 = DAG.getNode( + ISD::AND, dl, VT, Tmp1, + DAG.getSignedConstant(-(uint64_t)Alignment->value() + << Subtarget->getWavefrontSizeLog2(), + dl, VT)); } Chain = DAG.getCopyToReg(Chain, dl, SPReg, Tmp1); // Output chain @@ -6771,10 +6780,10 @@ SDValue SITargetLowering::lowerFLDEXP(SDValue Op, SelectionDAG &DAG) const { // TODO: This should be a generic narrowing legalization, and can easily be // for GlobalISel. - SDValue MinExp = DAG.getConstant(minIntN(16), DL, ExpVT); + SDValue MinExp = DAG.getSignedConstant(minIntN(16), DL, ExpVT); SDValue ClampMin = DAG.getNode(ISD::SMAX, DL, ExpVT, Exp, MinExp); - SDValue MaxExp = DAG.getConstant(maxIntN(16), DL, ExpVT); + SDValue MaxExp = DAG.getSignedConstant(maxIntN(16), DL, ExpVT); SDValue Clamp = DAG.getNode(ISD::SMIN, DL, ExpVT, ClampMin, MaxExp); SDValue TruncExp = DAG.getNode(ISD::TRUNCATE, DL, MVT::i16, Clamp); @@ -7542,11 +7551,11 @@ SDValue SITargetLowering::lowerVECTOR_SHUFFLE(SDValue Op, SDValue Vec0 = SVN->getOperand(VecIdx0); SDValue Elt0 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, EltVT, Vec0, - DAG.getConstant(EltIdx0, SL, MVT::i32)); + DAG.getSignedConstant(EltIdx0, SL, MVT::i32)); SDValue Vec1 = SVN->getOperand(VecIdx1); SDValue Elt1 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, EltVT, Vec1, - DAG.getConstant(EltIdx1, SL, MVT::i32)); + DAG.getSignedConstant(EltIdx1, SL, MVT::i32)); Pieces.push_back(DAG.getBuildVector(PackVT, SL, {Elt0, Elt1})); } } @@ -9618,7 +9627,7 @@ SDValue SITargetLowering::LowerINTRINSIC_VOID(SDValue Op, // On GFX12 lower s_barrier into s_barrier_signal_imm and s_barrier_wait if (ST.hasSplitBarriers()) { SDValue K = - DAG.getTargetConstant(AMDGPU::Barrier::WORKGROUP, DL, MVT::i32); + DAG.getSignedTargetConstant(AMDGPU::Barrier::WORKGROUP, DL, MVT::i32); SDValue BarSignal = SDValue(DAG.getMachineNode(AMDGPU::S_BARRIER_SIGNAL_IMM, DL, MVT::Other, K, Op.getOperand(0)), @@ -9860,11 +9869,16 @@ SDValue SITargetLowering::LowerINTRINSIC_VOID(SDValue Op, Ops.push_back(Rsrc); Ops.push_back(Op.getOperand(6 + OpOffset)); // soffset Ops.push_back(Op.getOperand(7 + OpOffset)); // imm offset + bool IsGFX12Plus = AMDGPU::isGFX12Plus(*Subtarget); unsigned Aux = Op.getConstantOperandVal(8 + OpOffset); - Ops.push_back( - DAG.getTargetConstant(Aux & AMDGPU::CPol::ALL, DL, MVT::i8)); // cpol Ops.push_back(DAG.getTargetConstant( - Aux & AMDGPU::CPol::SWZ_pregfx12 ? 1 : 0, DL, MVT::i8)); // swz + Aux & (IsGFX12Plus ? AMDGPU::CPol::ALL : AMDGPU::CPol::ALL_pregfx12), + DL, MVT::i8)); // cpol + Ops.push_back(DAG.getTargetConstant( + Aux & (IsGFX12Plus ? AMDGPU::CPol::SWZ : AMDGPU::CPol::SWZ_pregfx12) + ? 1 + : 0, + DL, MVT::i8)); // swz Ops.push_back(M0Val.getValue(0)); // Chain Ops.push_back(M0Val.getValue(1)); // Glue @@ -10742,7 +10756,7 @@ SDValue SITargetLowering::LowerFDIV16(SDValue Op, SelectionDAG &DAG) const { Tmp = DAG.getNode(ISD::BITCAST, SL, MVT::f32, TmpCast); Quot = DAG.getNode(ISD::FADD, SL, MVT::f32, Tmp, Quot, Op->getFlags()); SDValue RDst = DAG.getNode(ISD::FP_ROUND, SL, MVT::f16, Quot, - DAG.getConstant(0, SL, MVT::i32)); + DAG.getTargetConstant(0, SL, MVT::i32)); return DAG.getNode(AMDGPUISD::DIV_FIXUP, SL, MVT::f16, RDst, RHS, LHS, Op->getFlags()); } @@ -11168,8 +11182,9 @@ SDValue SITargetLowering::lowerFSQRTF32(SDValue Op, SelectionDAG &DAG) const { SqrtS = DAG.getNode(ISD::INTRINSIC_WO_CHAIN, DL, VT, SqrtID, SqrtX, Flags); SDValue SqrtSAsInt = DAG.getNode(ISD::BITCAST, DL, MVT::i32, SqrtS); - SDValue SqrtSNextDownInt = DAG.getNode(ISD::ADD, DL, MVT::i32, SqrtSAsInt, - DAG.getConstant(-1, DL, MVT::i32)); + SDValue SqrtSNextDownInt = + DAG.getNode(ISD::ADD, DL, MVT::i32, SqrtSAsInt, + DAG.getAllOnesConstant(DL, MVT::i32)); SDValue SqrtSNextDown = DAG.getNode(ISD::BITCAST, DL, VT, SqrtSNextDownInt); SDValue NegSqrtSNextDown = @@ -11291,7 +11306,7 @@ SDValue SITargetLowering::lowerFSQRTF64(SDValue Op, SelectionDAG &DAG) const { SDValue SqrtRet = DAG.getNode(ISD::FMA, DL, MVT::f64, SqrtD1, SqrtH1, SqrtS2); - SDValue ScaleDownFactor = DAG.getConstant(-128, DL, MVT::i32); + SDValue ScaleDownFactor = DAG.getSignedConstant(-128, DL, MVT::i32); SDValue ScaleDown = DAG.getNode(ISD::SELECT, DL, MVT::i32, Scaling, ScaleDownFactor, ZeroInt); SqrtRet = DAG.getNode(ISD::FLDEXP, DL, MVT::f64, SqrtRet, ScaleDown, Flags); @@ -14684,7 +14699,7 @@ SDValue SITargetLowering::performSetCCCombine(SDNode *N, (CRHS->isZero() && (CC == ISD::SETEQ || CC == ISD::SETGE || CC == ISD::SETULE))) return DAG.getNode(ISD::XOR, SL, MVT::i1, LHS.getOperand(0), - DAG.getConstant(-1, SL, MVT::i1)); + DAG.getAllOnesConstant(SL, MVT::i1)); if ((CRHS->isAllOnes() && (CC == ISD::SETEQ || CC == ISD::SETLE || CC == ISD::SETUGE)) || (CRHS->isZero() && @@ -14710,7 +14725,7 @@ SDValue SITargetLowering::performSetCCCombine(SDNode *N, if ((CF == CRHSVal && CC == ISD::SETEQ) || (CT == CRHSVal && CC == ISD::SETNE)) return DAG.getNode(ISD::XOR, SL, MVT::i1, LHS.getOperand(0), - DAG.getConstant(-1, SL, MVT::i1)); + DAG.getAllOnesConstant(SL, MVT::i1)); if ((CF == CRHSVal && CC == ISD::SETNE) || (CT == CRHSVal && CC == ISD::SETEQ)) return LHS.getOperand(0); @@ -15449,6 +15464,22 @@ void SITargetLowering::AdjustInstrPostInstrSelection(MachineInstr &MI, MRI.setRegClass(Op.getReg(), NewRC); } + if (TII->isMAI(MI)) { + // The ordinary src0, src1, src2 were legalized above. + // + // We have to also legalize the appended v_mfma_ld_scale_b32 operands, + // as a separate instruction. + int Src0Idx = AMDGPU::getNamedOperandIdx(MI.getOpcode(), + AMDGPU::OpName::scale_src0); + if (Src0Idx != -1) { + int Src1Idx = AMDGPU::getNamedOperandIdx(MI.getOpcode(), + AMDGPU::OpName::scale_src1); + if (TII->usesConstantBus(MRI, MI, Src0Idx) && + TII->usesConstantBus(MRI, MI, Src1Idx)) + TII->legalizeOpWithMove(MI, Src1Idx); + } + } + if (!HasAGPRs) return; @@ -16656,8 +16687,8 @@ SITargetLowering::getRegClassFor(MVT VT, bool isDivergent) const { const TargetRegisterClass *RC = TargetLoweringBase::getRegClassFor(VT, false); const SIRegisterInfo *TRI = Subtarget->getRegisterInfo(); if (RC == &AMDGPU::VReg_1RegClass && !isDivergent) - return Subtarget->getWavefrontSize() == 64 ? &AMDGPU::SReg_64RegClass - : &AMDGPU::SReg_32RegClass; + return Subtarget->isWave64() ? &AMDGPU::SReg_64RegClass + : &AMDGPU::SReg_32RegClass; if (!TRI->isSGPRClass(RC) && !isDivergent) return TRI->getEquivalentSGPRClass(RC); if (TRI->isSGPRClass(RC) && isDivergent) diff --git a/llvm/lib/Target/AMDGPU/SIInstrFormats.td b/llvm/lib/Target/AMDGPU/SIInstrFormats.td index dd1ab2c628715..267c9a94b9096 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrFormats.td +++ b/llvm/lib/Target/AMDGPU/SIInstrFormats.td @@ -300,6 +300,11 @@ class Enc96 { int Size = 12; } +class Enc128 { + field bits<128> Inst; + int Size = 16; +} + def CPolBit { int GLC = 0; int SLC = 1; diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index c864f03f1f0f9..4a94d69029794 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -4468,7 +4468,11 @@ bool SIInstrInfo::canShrink(const MachineInstr &MI, // Check output modifiers return !hasModifiersSet(MI, AMDGPU::OpName::omod) && !hasModifiersSet(MI, AMDGPU::OpName::clamp) && - !hasModifiersSet(MI, AMDGPU::OpName::byte_sel); + !hasModifiersSet(MI, AMDGPU::OpName::byte_sel) && + // TODO: Can we avoid checking bound_ctrl/fi here? + // They are only used by permlane*_swap special case. + !hasModifiersSet(MI, AMDGPU::OpName::bound_ctrl) && + !hasModifiersSet(MI, AMDGPU::OpName::fi); } // Set VCC operand with all flags from \p Orig, except for setting it as @@ -5501,20 +5505,48 @@ unsigned SIInstrInfo::getVALUOp(const MachineInstr &MI) const { case AMDGPU::S_CMP_NLE_F32: return AMDGPU::V_CMP_NLE_F32_e64; case AMDGPU::S_CMP_NEQ_F32: return AMDGPU::V_CMP_NEQ_F32_e64; case AMDGPU::S_CMP_NLT_F32: return AMDGPU::V_CMP_NLT_F32_e64; - case AMDGPU::S_CMP_LT_F16: return AMDGPU::V_CMP_LT_F16_t16_e64; - case AMDGPU::S_CMP_EQ_F16: return AMDGPU::V_CMP_EQ_F16_t16_e64; - case AMDGPU::S_CMP_LE_F16: return AMDGPU::V_CMP_LE_F16_t16_e64; - case AMDGPU::S_CMP_GT_F16: return AMDGPU::V_CMP_GT_F16_t16_e64; - case AMDGPU::S_CMP_LG_F16: return AMDGPU::V_CMP_LG_F16_t16_e64; - case AMDGPU::S_CMP_GE_F16: return AMDGPU::V_CMP_GE_F16_t16_e64; - case AMDGPU::S_CMP_O_F16: return AMDGPU::V_CMP_O_F16_t16_e64; - case AMDGPU::S_CMP_U_F16: return AMDGPU::V_CMP_U_F16_t16_e64; - case AMDGPU::S_CMP_NGE_F16: return AMDGPU::V_CMP_NGE_F16_t16_e64; - case AMDGPU::S_CMP_NLG_F16: return AMDGPU::V_CMP_NLG_F16_t16_e64; - case AMDGPU::S_CMP_NGT_F16: return AMDGPU::V_CMP_NGT_F16_t16_e64; - case AMDGPU::S_CMP_NLE_F16: return AMDGPU::V_CMP_NLE_F16_t16_e64; - case AMDGPU::S_CMP_NEQ_F16: return AMDGPU::V_CMP_NEQ_F16_t16_e64; - case AMDGPU::S_CMP_NLT_F16: return AMDGPU::V_CMP_NLT_F16_t16_e64; + case AMDGPU::S_CMP_LT_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_LT_F16_t16_e64 + : AMDGPU::V_CMP_LT_F16_fake16_e64; + case AMDGPU::S_CMP_EQ_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_EQ_F16_t16_e64 + : AMDGPU::V_CMP_EQ_F16_fake16_e64; + case AMDGPU::S_CMP_LE_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_LE_F16_t16_e64 + : AMDGPU::V_CMP_LE_F16_fake16_e64; + case AMDGPU::S_CMP_GT_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_GT_F16_t16_e64 + : AMDGPU::V_CMP_GT_F16_fake16_e64; + case AMDGPU::S_CMP_LG_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_LG_F16_t16_e64 + : AMDGPU::V_CMP_LG_F16_fake16_e64; + case AMDGPU::S_CMP_GE_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_GE_F16_t16_e64 + : AMDGPU::V_CMP_GE_F16_fake16_e64; + case AMDGPU::S_CMP_O_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_O_F16_t16_e64 + : AMDGPU::V_CMP_O_F16_fake16_e64; + case AMDGPU::S_CMP_U_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_U_F16_t16_e64 + : AMDGPU::V_CMP_U_F16_fake16_e64; + case AMDGPU::S_CMP_NGE_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_NGE_F16_t16_e64 + : AMDGPU::V_CMP_NGE_F16_fake16_e64; + case AMDGPU::S_CMP_NLG_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_NLG_F16_t16_e64 + : AMDGPU::V_CMP_NLG_F16_fake16_e64; + case AMDGPU::S_CMP_NGT_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_NGT_F16_t16_e64 + : AMDGPU::V_CMP_NGT_F16_fake16_e64; + case AMDGPU::S_CMP_NLE_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_NLE_F16_t16_e64 + : AMDGPU::V_CMP_NLE_F16_fake16_e64; + case AMDGPU::S_CMP_NEQ_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_NEQ_F16_t16_e64 + : AMDGPU::V_CMP_NEQ_F16_fake16_e64; + case AMDGPU::S_CMP_NLT_F16: + return ST.useRealTrue16Insts() ? AMDGPU::V_CMP_NLT_F16_t16_e64 + : AMDGPU::V_CMP_NLT_F16_fake16_e64; case AMDGPU::V_S_EXP_F32_e64: return AMDGPU::V_EXP_F32_e64; case AMDGPU::V_S_EXP_F16_e64: return AMDGPU::V_EXP_F16_fake16_e64; case AMDGPU::V_S_LOG_F32_e64: return AMDGPU::V_LOG_F32_e64; @@ -7324,7 +7356,29 @@ void SIInstrInfo::moveToVALUImpl(SIInstrWorklist &Worklist, case AMDGPU::S_CMP_NGT_F32: case AMDGPU::S_CMP_NLE_F32: case AMDGPU::S_CMP_NEQ_F32: - case AMDGPU::S_CMP_NLT_F32: + case AMDGPU::S_CMP_NLT_F32: { + Register CondReg = MRI.createVirtualRegister(RI.getWaveMaskRegClass()); + auto NewInstr = + BuildMI(*MBB, Inst, Inst.getDebugLoc(), get(NewOpcode), CondReg) + .setMIFlags(Inst.getFlags()); + if (AMDGPU::getNamedOperandIdx(NewOpcode, AMDGPU::OpName::src0_modifiers) >= + 0) { + NewInstr + .addImm(0) // src0_modifiers + .add(Inst.getOperand(0)) // src0 + .addImm(0) // src1_modifiers + .add(Inst.getOperand(1)) // src1 + .addImm(0); // clamp + } else { + NewInstr.add(Inst.getOperand(0)).add(Inst.getOperand(1)); + } + legalizeOperands(*NewInstr, MDT); + int SCCIdx = Inst.findRegisterDefOperandIdx(AMDGPU::SCC, /*TRI=*/nullptr); + MachineOperand SCCOp = Inst.getOperand(SCCIdx); + addSCCDefUsersToVALUWorklist(SCCOp, Inst, Worklist, CondReg); + Inst.eraseFromParent(); + return; + } case AMDGPU::S_CMP_LT_F16: case AMDGPU::S_CMP_EQ_F16: case AMDGPU::S_CMP_LE_F16: @@ -7343,14 +7397,15 @@ void SIInstrInfo::moveToVALUImpl(SIInstrWorklist &Worklist, auto NewInstr = BuildMI(*MBB, Inst, Inst.getDebugLoc(), get(NewOpcode), CondReg) .setMIFlags(Inst.getFlags()); - if (AMDGPU::getNamedOperandIdx(NewOpcode, - AMDGPU::OpName::src0_modifiers) >= 0) { + if (AMDGPU::hasNamedOperand(NewOpcode, AMDGPU::OpName::src0_modifiers)) { NewInstr .addImm(0) // src0_modifiers .add(Inst.getOperand(0)) // src0 .addImm(0) // src1_modifiers .add(Inst.getOperand(1)) // src1 .addImm(0); // clamp + if (AMDGPU::hasNamedOperand(NewOpcode, AMDGPU::OpName::op_sel)) + NewInstr.addImm(0); // op_sel0 } else { NewInstr .add(Inst.getOperand(0)) @@ -7648,8 +7703,8 @@ void SIInstrInfo::lowerSelect(SIInstrWorklist &Worklist, MachineInstr &Inst, // Insert a trivial select instead of creating a copy, because a copy from // SCC would semantically mean just copying a single bit, but we may need // the result to be a vector condition mask that needs preserving. - unsigned Opcode = (ST.getWavefrontSize() == 64) ? AMDGPU::S_CSELECT_B64 - : AMDGPU::S_CSELECT_B32; + unsigned Opcode = + ST.isWave64() ? AMDGPU::S_CSELECT_B64 : AMDGPU::S_CSELECT_B32; auto NewSelect = BuildMI(MBB, MII, DL, get(Opcode), NewCondReg).addImm(-1).addImm(0); NewSelect->getOperand(3).setIsUndef(Cond.isUndef()); @@ -8661,7 +8716,7 @@ uint64_t SIInstrInfo::getScratchRsrcWords23() const { } // IndexStride = 64 / 32. - uint64_t IndexStride = ST.getWavefrontSize() == 64 ? 3 : 2; + uint64_t IndexStride = ST.isWave64() ? 3 : 2; Rsrc23 |= IndexStride << AMDGPU::RSRC_INDEX_STRIDE_SHIFT; // If TID_ENABLE is set, DATA_FORMAT specifies stride bits [14:17]. diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.h b/llvm/lib/Target/AMDGPU/SIInstrInfo.h index 1f7fff76d1521..e55418326a4bd 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.h +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.h @@ -1115,6 +1115,12 @@ class SIInstrInfo final : public AMDGPUGenInstrInfo { const MachineOperand &MO, const MCOperandInfo &OpInfo) const; + bool usesConstantBus(const MachineRegisterInfo &MRI, const MachineInstr &MI, + int OpIdx) const { + return usesConstantBus(MRI, MI.getOperand(OpIdx), + MI.getDesc().operands()[OpIdx]); + } + /// Return true if this instruction has any modifiers. /// e.g. src[012]_mod, omod, clamp. bool hasModifiers(unsigned Opcode) const; diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.td b/llvm/lib/Target/AMDGPU/SIInstrInfo.td index d2024cf915874..f9cb6bb8d297a 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.td +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.td @@ -6,9 +6,9 @@ // //===----------------------------------------------------------------------===// -def isWave32 : Predicate<"Subtarget->getWavefrontSize() == 32">, +def isWave32 : Predicate<"Subtarget->isWave32()">, AssemblerPredicate <(all_of FeatureWavefrontSize32)>; -def isWave64 : Predicate<"Subtarget->getWavefrontSize() == 64">, +def isWave64 : Predicate<"Subtarget->isWave64()">, AssemblerPredicate <(all_of FeatureWavefrontSize64)>; class AMDGPUMnemonicAlias @@ -304,6 +304,19 @@ def SIdenorm_mode : SDNode<"AMDGPUISD::DENORM_MODE", [SDNPHasChain, SDNPOptInGlue, SDNPOutGlue] >; + +// Optimize v_mfma_scale* instructions to avoid the scale if the +// scales are known 0. +class UnscaledMFMAOptimizationPat : PatFrag< + (ops node:$srca, node:$srcb, node:$srcc, + node:$cbsz, node:$blgp), + (intrin $srca, $srcb, $srcc, $cbsz, $blgp, + srcvalue, 0, srcvalue, 0) +>; + +def mfma_f32_16x16x128_f8f6f4 : UnscaledMFMAOptimizationPat; +def mfma_f32_32x32x64_f8f6f4 : UnscaledMFMAOptimizationPat; + //===----------------------------------------------------------------------===// // ValueType helpers //===----------------------------------------------------------------------===// @@ -794,32 +807,38 @@ def as_i1timm : SDNodeXFormgetTargetConstant(N->getZExtValue(), SDLoc(N), MVT::i1); }]>; +def as_i1timm_zext : SDNodeXFormgetTargetConstant(N->getZExtValue(), SDLoc(N), MVT::i32); +}]>; + def as_i8imm : SDNodeXFormgetTargetConstant(N->getZExtValue(), SDLoc(N), MVT::i8); }]>; def as_i8timm : SDNodeXFormgetTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i16); + return CurDAG->getSignedTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i16); }]>; def as_i16imm : SDNodeXFormgetTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i16); + return CurDAG->getSignedTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i16); }]>; def as_i16timm : SDNodeXFormgetTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i16); + // Explicit cast, as this is used with both signed and unsigned immediates. + return CurDAG->getSignedTargetConstant(int16_t(N->getSExtValue()), SDLoc(N), + MVT::i16); }]>; def as_i32imm: SDNodeXFormgetTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i32); }]>; def as_i32timm: SDNodeXFormgetTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i32); }]>; def as_i64imm: SDNodeXFormgetTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i64); + return CurDAG->getSignedTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i64); }]>; def cond_as_i32imm: SDNodeXFormgetOpcode()); }]>; +def MFMALdScaleXForm : SDNodeXFormgetZExtValue(); + unsigned New = 0; + if (Val & 0x1) + New |= SISrcMods::OP_SEL_0; + if (Val & 0x2) + New |= SISrcMods::OP_SEL_1; + return CurDAG->getTargetConstant(New, SDLoc(N), MVT::i32); +}]>; + def is_canonicalized : PatLeaf<(fAny srcvalue:$src), [{ const SITargetLowering &Lowering = *static_cast(getTargetLowering()); @@ -1242,6 +1271,9 @@ def ByteSel : NamedIntOperand<"byte_sel"> { let Validator = "isUInt<2>"; } +def BitOp3 : CustomOperand; +def bitop3_0 : DefaultOperand; + class KImmFPOperand : ImmOperand { let OperandNamespace = "AMDGPU"; let OperandType = "OPERAND_KIMM"#vt.Size; @@ -1515,6 +1547,10 @@ class PackedIntInputMods : InputMods < def PackedF16InputMods : PackedFPInputMods; def PackedI16InputMods : PackedIntInputMods; +def MFMALdScaleModifierOp : TImmLeaf(Imm); +}], MFMALdScaleXForm>; + //===----------------------------------------------------------------------===// // Complex patterns //===----------------------------------------------------------------------===// @@ -1660,7 +1696,10 @@ class getVALUDstForVT { defvar op16 = !if(IsTrue16, !if (IsVOP3Encoding, VOPDstOperand_t16, VOPDstOperand_t16Lo128), VOPDstOperand); - RegisterOperand ret = !cond(!eq(VT.Size, 256) : VOPDstOperand, + RegisterOperand ret = !cond(!eq(VT.Size, 1024) : VOPDstOperand, + !eq(VT.Size, 512) : VOPDstOperand, + !eq(VT.Size, 256) : VOPDstOperand, + !eq(VT.Size, 192) : VOPDstOperand, !eq(VT.Size, 128) : VOPDstOperand, !eq(VT.Size, 64) : VOPDstOperand, !eq(VT.Size, 32) : VOPDstOperand, @@ -1716,7 +1755,9 @@ class getSOPSrcForVT { // Returns the vreg register class to use for source operand given VT class getVregSrcForVT { RegisterOperand ret = - !cond(!eq(VT.Size, 128) : RegisterOperand, + !cond(!eq(VT.Size, 512) : RegisterOperand, + !eq(VT.Size, 192) : RegisterOperand, + !eq(VT.Size, 128) : RegisterOperand, !eq(VT.Size, 96) : RegisterOperand, !eq(VT.Size, 64) : RegisterOperand, !eq(VT.Size, 48) : RegisterOperand, @@ -1749,6 +1790,8 @@ class getVOP3SrcForVT { !eq(VT, v2i16) : VSrc_v2b16, !eq(VT, v4f16) : AVSrc_64, !eq(VT, v4bf16) : AVSrc_64, + !eq(VT.Size, 512) : VRegSrc_512, + !eq(VT.Size, 192) : VRegSrc_192, !eq(VT.Size, 128) : VRegSrc_128, !eq(VT.Size, 96) : VRegSrc_96, !eq(VT.Size, 64) : VSrc_b64, @@ -2655,6 +2698,8 @@ class VOPProfile _ArgVT, bit _EnableClamp = 0> { field string AsmVOPDX = getAsmVOPDPart.ret; field string AsmVOPDY = getAsmVOPDPart.ret; field string TieRegDPP = "$old"; + field bit IsSMFMAC = false; + field bit HasAbid = !and(IsMAI, HasSrc1); } class VOP_NO_EXT : VOPProfile { @@ -2790,6 +2835,12 @@ def VOP_I32_I32_I32_ARITH : VOPProfile <[i32, i32, i32, untyped], /*EnableClamp= def VOP_V2F16_F32_F32 : VOPProfile <[v2f16, f32, f32, untyped]>; def VOP_F32_F16_F16_F16 : VOPProfile <[f32, f16, f16, f16]>; def VOP_V2BF16_F32_F32 : VOPProfile <[v2bf16, f32, f32, untyped]>; +def VOP_V32F32_V6I32_F32 : VOPProfile <[v32f32, v6i32, f32, untyped]>; +def VOP_V32F16_V6I32_F32 : VOPProfile <[v32f16, v6i32, f32, untyped]>; +def VOP_V32BF16_V6I32_F32 : VOPProfile <[v32bf16, v6i32, f32, untyped]>; +def VOP_V6I32_V32F16_F32 : VOPProfile<[v6i32, v32f16, f32, untyped]>; +def VOP_V6I32_V32BF16_F32 : VOPProfile<[v6i32, v32bf16, f32, untyped]>; +def VOP_V6I32_V16F32_V16F32_F32 : VOPProfile<[v6i32, v16f32, v16f32, f32]>; def VOP_I64_I64_I32 : VOPProfile <[i64, i64, i32, untyped]>; def VOP_I64_I32_I64 : VOPProfile <[i64, i32, i64, untyped]>; @@ -2805,6 +2856,7 @@ def VOP_I64_I32_I32_I64 : VOPProfile <[i64, i32, i32, i64]>; def VOP_I32_F32_I32_I32 : VOPProfile <[i32, f32, i32, i32]>; def VOP_I64_I64_I32_I64 : VOPProfile <[i64, i64, i32, i64]>; def VOP_V4I32_I64_I32_V4I32 : VOPProfile <[v4i32, i64, i32, v4i32]>; +def VOP_I16_I32_I32_I32 : VOPProfile <[i16, i32, i32, i32]>; def VOP_F32_V2F16_V2F16_F32 : VOPProfile <[f32, v2f16, v2f16, f32]>; def VOP_I32_V2I16_V2I16_I32 : VOPProfile <[i32, v2i16, v2i16, i32]>; @@ -2840,17 +2892,51 @@ def VOP_V4F32_I64_I64_V4F32 : VOPProfile <[v4f32, i64, i64, v4f32]>; def VOP_V16F32_I64_I64_V16F32 : VOPProfile <[v16f32, i64, i64, v16f32]>; def VOP_V4F32_V4F16_V8F16_I32 : VOPProfile <[v4f32, v4f16, v8f16, i32]>; +def VOP_V4F32_V8F16_V16F16_I32 : VOPProfile <[v4f32, v8f16, v16f16, i32]>; +def VOP_V4F32_V8BF16_V16BF16_I32 : VOPProfile <[v4f32, v8bf16, v16bf16, i32]>; def VOP_V16F32_V4F16_V8F16_I32 : VOPProfile <[v16f32, v4f16, v8f16, i32]>; +def VOP_V16F32_V8F16_V16F16_I32 : VOPProfile <[v16f32, v8f16, v16f16, i32]>; +def VOP_V16F32_V8BF16_V16BF16_I32 : VOPProfile <[v16f32, v8bf16, v16bf16, i32]>; def VOP_V4F32_V4I16_V8I16_I32 : VOPProfile <[v4f32, v4i16, v8i16, i32]>; def VOP_V16F32_V4I16_V8I16_I32 : VOPProfile <[v16f32, v4i16, v8i16, i32]>; def VOP_V4I32_V2I32_V4I32_I32 : VOPProfile <[v4i32, v2i32, v4i32, i32]>; def VOP_V16I32_V2I32_V4I32_I32 : VOPProfile <[v16i32, v2i32, v4i32, i32]>; def VOP_V4F32_V2I32_V4I32_I32 : VOPProfile <[v4f32, v2i32, v4i32, i32]>; def VOP_V16F32_V2I32_V4I32_I32 : VOPProfile <[v16f32, v2i32, v4i32, i32]>; +def VOP_V4I32_V4I32_V8I32_I32 : VOPProfile <[v4i32, v4i32, v8i32, i32]>; +def VOP_V16I32_V4I32_V8I32_I32 : VOPProfile <[v16i32, v4i32, v8i32, i32]>; +def VOP_V4F32_V4I32_V8I32_I32 : VOPProfile <[v4f32, v4i32, v8i32, i32]>; +def VOP_V16F32_V4I32_V8I32_I32 : VOPProfile <[v16f32, v4i32, v8i32, i32]>; def VOP_V4F32_V8F16_V8F16_V4F32 : VOPProfile <[v4f32, v8f16, v8f16, v4f32]>; def VOP_V16F32_V8F16_V8F16_V16F32 : VOPProfile <[v16f32, v8f16, v8f16, v16f32]>; def VOP_V16F32_V8BF16_V8BF16_V16F32 : VOPProfile <[v16f32, v8bf16, v8bf16, v16f32]>; +def VOP_V4F32_V8BF16_V8BF16_V4F32 : VOPProfile <[v4f32, v8bf16, v8bf16, v4f32]>; +def VOP_V4F32_V8I32_V8I32_V4F32 : VOPProfile <[v4f32, v8i32, v8i32, v4f32]>; + +def VOP_V4F32_V8I32_V6I32_V4F32 : VOPProfile <[v4f32, v8i32, v6i32, v4f32]>; +def VOP_V4F32_V6I32_V8I32_V4F32 : VOPProfile <[v4f32, v6i32, v8i32, v4f32]>; +def VOP_V4F32_V6I32_V6I32_V4F32 : VOPProfile <[v4f32, v6i32, v6i32, v4f32]>; + +def VOP_V4F32_V8I32_V4I32_V4F32 : VOPProfile <[v4f32, v8i32, v4i32, v4f32]>; +def VOP_V4F32_V4I32_V8I32_V4F32 : VOPProfile <[v4f32, v4i32, v8i32, v4f32]>; +def VOP_V4F32_V6I32_V4I32_V4F32 : VOPProfile <[v4f32, v6i32, v4i32, v4f32]>; +def VOP_V4F32_V4I32_V6I32_V4F32 : VOPProfile <[v4f32, v4i32, v6i32, v4f32]>; +def VOP_V4F32_V4I32_V4I32_V4F32 : VOPProfile <[v4f32, v4i32, v4i32, v4f32]>; + +def VOP_V16F32_V8I32_V8I32_V16F32 : VOPProfile <[v16f32, v8i32, v8i32, v16f32]>; +def VOP_V16F32_V8I32_V6I32_V16F32 : VOPProfile <[v16f32, v8i32, v6i32, v16f32]>; +def VOP_V16F32_V6I32_V8I32_V16F32 : VOPProfile <[v16f32, v6i32, v8i32, v16f32]>; +def VOP_V16F32_V6I32_V6I32_V16F32 : VOPProfile <[v16f32, v6i32, v6i32, v16f32]>; + +def VOP_V16F32_V8I32_V4I32_V16F32 : VOPProfile <[v16f32, v8i32, v4i32, v16f32]>; +def VOP_V16F32_V4I32_V8I32_V16F32 : VOPProfile <[v16f32, v4i32, v8i32, v16f32]>; +def VOP_V16F32_V6I32_V4I32_V16F32 : VOPProfile <[v16f32, v6i32, v4i32, v16f32]>; +def VOP_V16F32_V4I32_V6I32_V16F32 : VOPProfile <[v16f32, v4i32, v6i32, v16f32]>; +def VOP_V16F32_V4I32_V4I32_V16F32 : VOPProfile <[v16f32, v4i32, v4i32, v16f32]>; + +def VOP_V4I32_V4I32_V4I32_V4I32 : VOPProfile <[v4i32, v4i32, v4i32, v4i32]>; +def VOP_V16I32_V4I32_V4I32_V16I32 : VOPProfile <[v16i32, v4i32, v4i32, v16i32]>; class Commutable_REV { @@ -3114,6 +3200,16 @@ def getVCMPXOpFromVCMP : InstrMapping { let ValueCols = [["1"]]; } +// Map encoded mfma(_scale)?_f8f6f4 instructions depending on the +// number of registers required for the used format. +def getMFMA_F8F6F4_WithSize : GenericTable { + let FilterClass = "MFMA_F8F6F4_WithSizeTable"; + let CppTypeName = "MFMA_F8F6F4_Info"; + let Fields = [ "Opcode", "F8F8Opcode", "NumRegsSrcA", "NumRegsSrcB" ]; + let PrimaryKey = [ "NumRegsSrcA", "NumRegsSrcB", "F8F8Opcode" ]; + let PrimaryKeyName = "getMFMA_F8F6F4_InstWithNumRegs" ; +} + def FP8DstByteSelTable : GenericTable { let FilterClass = "VOP3_Pseudo"; let CppTypeName = "FP8DstByteSelInfo"; diff --git a/llvm/lib/Target/AMDGPU/SIInstructions.td b/llvm/lib/Target/AMDGPU/SIInstructions.td index 3f211e7cbdde5..bc25d75131cc3 100644 --- a/llvm/lib/Target/AMDGPU/SIInstructions.td +++ b/llvm/lib/Target/AMDGPU/SIInstructions.td @@ -3727,7 +3727,7 @@ def FPPow2ToExponentXForm : SDNodeXFormgetValueAPF(); int Log2 = APF.getExactLog2Abs(); assert(Log2 != INT_MIN); - return CurDAG->getTargetConstant(Log2, SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(Log2, SDLoc(N), MVT::i32); }]>; // Check if a floating point value is a power of 2 floating-point diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp index 246ef7ad481ab..049f4af4dd2f9 100644 --- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp @@ -319,7 +319,8 @@ struct SGPRSpillBuilder { SIRegisterInfo::SIRegisterInfo(const GCNSubtarget &ST) : AMDGPUGenRegisterInfo(AMDGPU::PC_REG, ST.getAMDGPUDwarfFlavour(), - ST.getAMDGPUDwarfFlavour()), + ST.getAMDGPUDwarfFlavour(), + /*PC=*/0, ST.getHwMode()), ST(ST), SpillSGPRToVGPR(EnableSpillSGPRToVGPR), isWave32(ST.isWave32()) { assert(getSubRegIndexLaneMask(AMDGPU::sub0).getAsInteger() == 3 && diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.td b/llvm/lib/Target/AMDGPU/SIRegisterInfo.td index 46b2b4a389200..51fdd4211a5cf 100644 --- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.td +++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.td @@ -1249,7 +1249,9 @@ def VRegSrc_32 : SrcReg9; def VRegSrc_64 : SrcReg9; def VRegSrc_96 : SrcReg9; def VRegSrc_128: SrcReg9; +def VRegSrc_192: SrcReg9; def VRegSrc_256: SrcReg9; +def VRegSrc_512: SrcReg9; def VRegOrLdsSrc_32 : SrcReg9; // True 16 Operands @@ -1346,11 +1348,14 @@ class AVSrcOperand def AVSrc_32 : AVSrcOperand; def AVSrc_64 : AVSrcOperand; def AVSrc_128 : AVSrcOperand; +def AVSrc_192 : AVSrcOperand; +def AVSrc_256 : AVSrcOperand; class AVDstOperand : AVOperand; def AVDst_128 : AVDstOperand; +def AVDst_256 : AVDstOperand; def AVDst_512 : AVDstOperand; class AVLdStOperand diff --git a/llvm/lib/Target/AMDGPU/SISchedule.td b/llvm/lib/Target/AMDGPU/SISchedule.td index a60b1f28e9d34..117add324db56 100644 --- a/llvm/lib/Target/AMDGPU/SISchedule.td +++ b/llvm/lib/Target/AMDGPU/SISchedule.td @@ -64,6 +64,7 @@ def Write8PassMAI : SchedWrite; def Write16PassMAI : SchedWrite; def Write4PassDGEMM : SchedWrite; def Write8PassDGEMM : SchedWrite; +def Write16PassDGEMM : SchedWrite; // Scalar float instructions def WriteSFPU : SchedWrite; @@ -94,6 +95,7 @@ def SIFullSpeedModel : SISchedMachineModel; def SIQuarterSpeedModel : SISchedMachineModel; def SIDPFullSpeedModel : SISchedMachineModel; def SIDPGFX940FullSpeedModel : SISchedMachineModel; +def SIDPGFX950FullSpeedModel : SISchedMachineModel; def GFX10SpeedModel : SISchedMachineModel; def GFX11SpeedModel : SISchedMachineModel; def GFX12SpeedModel : SISchedMachineModel; @@ -169,6 +171,8 @@ multiclass SICommonWriteRes { def : HWVALUWriteRes; let ReleaseAtCycles = [8] in def : HWVALUWriteRes; + let ReleaseAtCycles = [16] in + def : HWVALUWriteRes; let ReleaseAtCycles = [2] in def : HWWriteRes; @@ -201,6 +205,13 @@ def WriteCopy : SchedWriteVariant<[ SchedVar, SchedVar]>; +// Check if any matrix inputs are interpreted as f8 in an f8f6f4 mfma +// instruction. +def PredIsF8_MFMA_SCALE : SchedPredicate<[{ + TII->getNamedOperand(*MI, AMDGPU::OpName::cbsz)->getImm() <= AMDGPU::MFMAScaleFormats::FP8_E5M2 || + TII->getNamedOperand(*MI, AMDGPU::OpName::blgp)->getImm() <= AMDGPU::MFMAScaleFormats::FP8_E5M2 +}]>; + let SchedModel = SIFullSpeedModel in { defm : SICommonWriteRes; @@ -299,6 +310,58 @@ def : InstRW<[Write8PassMAI, MIMFMARead], (instregex "^V_SMFMAC_.32_32X32X")>; } // End SchedModel = SIDPGFX940FullSpeedModel + +let SchedModel = SIDPGFX950FullSpeedModel in { +defm : SICommonWriteRes; + +def : HWVALUWriteRes; +def : HWVALUWriteRes; +def : HWVALUWriteRes; +def : HWVALUWriteRes; +def : HWVALUWriteRes; +def : HWVALUWriteRes; +def : HWVALUWriteRes; + +def : InstRW<[WriteCopy], (instrs COPY)>; +def : InstRW<[Write64Bit], (instregex "^V_ACCVGPR_WRITE_B32_e64$")>; +def : InstRW<[Write2PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_4X4X")>; + +def : InstRW<[Write4PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_16X16X8X")>; +def : InstRW<[Write4PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_16X16X16")>; +def : InstRW<[Write4PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_16X16X32")>; +def : InstRW<[Write4PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_16X16X64")>; +def : InstRW<[Write8PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_16X16X[14][FBI]")>; + +def : InstRW<[Write8PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_32X32X4XF")>; +def : InstRW<[Write8PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_32X32X8")>; +def : InstRW<[Write8PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_32X32X16")>; +def : InstRW<[Write8PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_32X32X32_")>; +def : InstRW<[Write16PassMAI, MIMFMARead], (instregex "^V_MFMA_.32_32X32X[124][FBI]")>; + +def : InstRW<[Write4PassDGEMM, MIMFMARead], (instregex "^V_MFMA_.64_4X4X")>; +def : InstRW<[Write16PassDGEMM, MIMFMARead], (instregex "^V_MFMA_.64_16X16X")>; + +def : InstRW<[Write4PassMAI, MIMFMARead], (instregex "^V_SMFMAC_.32_16X16X")>; +def : InstRW<[Write8PassMAI, MIMFMARead], (instregex "^V_SMFMAC_.32_32X32X")>; + + +// If either matrix format is f8, the instruction takes 2x as many +// cycles. TODO: This isn't reflected in MCA. +def WriteMFMAScale_16X16X128_F8F6F4 : SchedWriteVariant<[ + SchedVar, + SchedVar]>; +def WriteMFMAScale_32X32X64_F8F6F4 : SchedWriteVariant<[ + SchedVar, + SchedVar]>; + +def : InstRW<[WriteMFMAScale_16X16X128_F8F6F4, MIMFMARead], + (instregex "^V_MFMA(_SCALE)?_.32_16X16X128_F8F6F4")>; +def : InstRW<[WriteMFMAScale_32X32X64_F8F6F4, MIMFMARead], + (instregex "^V_MFMA(_SCALE)?_.32_32X32X64_F8F6F4")>; + +} // End SchedModel = SIDPGFX950FullSpeedModel + + let SchedModel = GFX10SpeedModel in { // The latency values are 1 / (operations / cycle). diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp index 501d00b1f308d..b233e89858939 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp +++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp @@ -415,6 +415,8 @@ struct FP8DstByteSelInfo { #define GET_WMMAOpcode2AddrMappingTable_IMPL #define GET_WMMAOpcode3AddrMappingTable_DECL #define GET_WMMAOpcode3AddrMappingTable_IMPL +#define GET_getMFMA_F8F6F4_WithSize_DECL +#define GET_getMFMA_F8F6F4_WithSize_IMPL #include "AMDGPUGenSearchableTables.inc" int getMTBUFBaseOpcode(unsigned Opc) { @@ -523,6 +525,30 @@ bool getMAIIsGFX940XDL(unsigned Opc) { return Info ? Info->is_gfx940_xdl : false; } +static uint8_t mfmaScaleF8F6F4FormatToNumRegs(unsigned EncodingVal) { + switch (EncodingVal) { + case MFMAScaleFormats::FP6_E2M3: + case MFMAScaleFormats::FP6_E3M2: + return 6; + case MFMAScaleFormats::FP4_E2M1: + return 4; + case MFMAScaleFormats::FP8_E4M3: + case MFMAScaleFormats::FP8_E5M2: + default: + return 8; + } + + llvm_unreachable("covered switch over mfma scale formats"); +} + +const MFMA_F8F6F4_Info *getMFMA_F8F6F4_WithFormatArgs(unsigned CBSZ, + unsigned BLGP, + unsigned F8F8Opcode) { + uint8_t SrcANumRegs = mfmaScaleF8F6F4FormatToNumRegs(CBSZ); + uint8_t SrcBNumRegs = mfmaScaleF8F6F4FormatToNumRegs(BLGP); + return getMFMA_F8F6F4_InstWithNumRegs(SrcANumRegs, SrcBNumRegs, F8F8Opcode); +} + unsigned getVOPDEncodingFamily(const MCSubtargetInfo &ST) { if (ST.hasFeature(AMDGPU::FeatureGFX12Insts)) return SIEncodingFamily::GFX12; @@ -565,6 +591,7 @@ bool isMAC(unsigned Opc) { Opc == AMDGPU::V_FMAC_F16_fake16_e64_gfx11 || Opc == AMDGPU::V_FMAC_F16_fake16_e64_gfx12 || Opc == AMDGPU::V_DOT2C_F32_F16_e64_vi || + Opc == AMDGPU::V_DOT2C_F32_BF16_e64_vi || Opc == AMDGPU::V_DOT2C_I32_I16_e64_vi || Opc == AMDGPU::V_DOT4C_I32_I8_e64_vi || Opc == AMDGPU::V_DOT8C_I32_I4_e64_vi; @@ -2912,6 +2939,7 @@ const AlwaysUniform *lookupAlwaysUniform(unsigned Intr); #define GET_Gfx9BufferFormat_IMPL #define GET_Gfx10BufferFormat_IMPL #define GET_Gfx11PlusBufferFormat_IMPL + #include "AMDGPUGenSearchableTables.inc" } // end anonymous namespace diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h index 88a6d75b72c7d..b0581711961b1 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h +++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h @@ -581,6 +581,18 @@ unsigned getVOPDEncodingFamily(const MCSubtargetInfo &ST); LLVM_READONLY CanBeVOPD getCanBeVOPD(unsigned Opc); +struct MFMA_F8F6F4_Info { + unsigned Opcode; + unsigned F8F8Opcode; + uint8_t NumRegsSrcA; + uint8_t NumRegsSrcB; +}; + +LLVM_READONLY +const MFMA_F8F6F4_Info *getMFMA_F8F6F4_WithFormatArgs(unsigned CBSZ, + unsigned BLGP, + unsigned F8F8Opcode); + LLVM_READONLY const GcnBufferFormatInfo *getGcnBufferFormatInfo(uint8_t BitsPerComp, uint8_t NumComponents, diff --git a/llvm/lib/Target/AMDGPU/VOP1Instructions.td b/llvm/lib/Target/AMDGPU/VOP1Instructions.td index 3cda173207dfb..1dd39be9e8d9c 100644 --- a/llvm/lib/Target/AMDGPU/VOP1Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP1Instructions.td @@ -380,6 +380,24 @@ def VOP_MOVRELS : VOPProfile<[i32, i32, untyped, untyped]> { let Src0RC64 = VRegSrc_32; } +def VOP_PERMLANE_SWAP : VOPProfile<[i32, i32, untyped, untyped]> { + let Outs32 = (outs DstRC:$vdst, VRegSrc_32:$src0_out); + let Outs64 = (outs DstRC64:$vdst, VRegSrc_32:$src0_out); + + let Src0RC32 = VRegSrc_32; + let Src0RC64 = VRegSrc_32; + let HasClamp = 0; + let HasExtVOP3DPP = 0; + let HasExtDPP = 0; + let HasExtSDWA = 0; + + let Ins32 = (ins Src0RC64:$vdst_in, Src0RC32:$src0); + let Ins64 = (ins Src0RC64:$vdst_in, Src0RC64:$src0, Dpp16FI:$fi, DppBoundCtrl:$bound_ctrl); + let InsVOP3OpSel = (ins Src0RC64:$vdst_in, Src0RC64:$src0, Dpp16FI:$fi, DppBoundCtrl:$bound_ctrl); + let Asm64 = "$vdst, $src0$bound_ctrl$fi"; + let AsmVOP3OpSel = "$vdst, $src0$bound_ctrl$fi"; +} + // Special case because there are no true output operands. Hack vdst // to be a src operand. The custom inserter must add a tied implicit // def and use of the super register since there seems to be no way to @@ -767,6 +785,18 @@ let SubtargetPredicate = isGFX11Plus in { let SubtargetPredicate = HasPrngInst in defm V_PRNG_B32 : VOP1Inst <"v_prng_b32", VOP_I32_I32, int_amdgcn_prng_b32>; +let Constraints = "$vdst = $vdst_in, $src0_out = $src0", + DisableEncoding="$vdst_in,$src0_out", + SchedRW = [Write32Bit, Write32Bit] in { +let SubtargetPredicate = HasPermlane16Swap in { +defm V_PERMLANE16_SWAP_B32 : VOP1Inst<"v_permlane16_swap_b32", VOP_PERMLANE_SWAP>; +} + +let SubtargetPredicate = HasPermlane32Swap in { +defm V_PERMLANE32_SWAP_B32 : VOP1Inst<"v_permlane32_swap_b32", VOP_PERMLANE_SWAP>; +} +} + foreach vt = Reg32Types.types in { def : GCNPat<(int_amdgcn_permlane64 (vt VRegSrc_32:$src0)), (vt (V_PERMLANE64_B32 (vt VRegSrc_32:$src0))) @@ -1512,6 +1542,20 @@ let DecoderNamespace = "GFX9" in { } } +/// Special case of VOP1 instructions, with a VOP3 form where op_sel +/// is used for DPP operands. +multiclass VOP1_OpSel_Real_e32e64_gfx9 op> { + let AssemblerPredicate = isGFX9Only, DecoderNamespace = "GFX9" in { + def _e32_gfx9 : + VOP1_Real(NAME#"_e32"), SIEncodingFamily.GFX9>, + VOP1e(NAME#"_e32").Pfl>; + + def _e64_gfx9 : + VOP3_Real(NAME#"_e64"), SIEncodingFamily.GFX9>, + VOP3OpSelIsDPP_gfx9(NAME#"_e64").Pfl>; + } +} + defm V_SCREEN_PARTITION_4SE_B32 : VOP1_Real_gfx9 <0x37>; let AssemblerPredicate = isGFX940Plus in @@ -1525,6 +1569,8 @@ defm V_CVT_PK_F32_FP8 : VOP1_Real_NoDstSel_SDWA_gfx9<0x56>; defm V_CVT_PK_F32_BF8 : VOP1_Real_NoDstSel_SDWA_gfx9<0x57>; defm V_PRNG_B32 : VOP1_Real_gfx9 <0x58>; +defm V_PERMLANE16_SWAP_B32 : VOP1_OpSel_Real_e32e64_gfx9<0x059>; +defm V_PERMLANE32_SWAP_B32 : VOP1_OpSel_Real_e32e64_gfx9<0x05a>; class MovDPP8Pattern : GCNPat < (vt (int_amdgcn_mov_dpp8 vt:$src, timm:$dpp8)), diff --git a/llvm/lib/Target/AMDGPU/VOP2Instructions.td b/llvm/lib/Target/AMDGPU/VOP2Instructions.td index 103575dc351f2..128c775619118 100644 --- a/llvm/lib/Target/AMDGPU/VOP2Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP2Instructions.td @@ -567,6 +567,12 @@ def VOP_DOT_ACC_F32_V2F16 : VOP_DOT_ACC { let HasClamp = 1; } +def VOP_DOT_ACC_F32_V2BF16 : VOP_DOT_ACC { + let Src0ModDPP = FPVRegInputMods; + let Src1ModDPP = FPVRegInputMods; + let HasClamp = 1; +} + def VOP_DOT_ACC_I32_I32 : VOP_DOT_ACC { let HasExtVOP3DPP = 0; let HasSrc0Mods = 1; @@ -1182,6 +1188,9 @@ let Constraints = "$vdst = $src2", defm V_DOT2C_I32_I16 : VOP2Inst<"v_dot2c_i32_i16", VOP_DOT_ACC_I32_I32>; let SubtargetPredicate = HasDot3Insts in defm V_DOT8C_I32_I4 : VOP2Inst<"v_dot8c_i32_i4", VOP_DOT_ACC_I32_I32>; + + let SubtargetPredicate = HasDot13Insts in + defm V_DOT2C_F32_BF16 : VOP2Inst<"v_dot2c_f32_bf16", VOP_DOT_ACC_F32_V2BF16>; } let AddedComplexity = 30 in { @@ -1191,6 +1200,12 @@ let AddedComplexity = 30 in { > { let SubtargetPredicate = HasDot5Insts; } + def : GCNPat< + (f32 (int_amdgcn_fdot2_f32_bf16 v2bf16:$src0, v2bf16:$src1, f32:$src2, (i1 DSTCLAMP.NONE))), + (f32 (V_DOT2C_F32_BF16_e32 $src0, $src1, $src2)) + > { + let SubtargetPredicate = HasDot13Insts; + } def : GCNPat< (i32 (int_amdgcn_sdot4 i32:$src0, i32:$src1, i32:$src2, (i1 DSTCLAMP.NONE))), (i32 (V_DOT4C_I32_I8_e32 $src0, $src1, $src2)) @@ -2670,3 +2685,8 @@ let SubtargetPredicate = HasDot3Insts in { let DecoderNamespace = "GFX10_B" in defm V_DOT8C_I32_I4 : VOP2_Real_DOT_ACC_gfx10<0x02>; } + +let OtherPredicates = [HasDot13Insts] in { + let DecoderNamespace = "GFX950" in + defm V_DOT2C_F32_BF16 : VOP2_Real_DOT_ACC_gfx9<0x16>; +} diff --git a/llvm/lib/Target/AMDGPU/VOP3Instructions.td b/llvm/lib/Target/AMDGPU/VOP3Instructions.td index 917e1b3974b46..5d4d56e8b0ad2 100644 --- a/llvm/lib/Target/AMDGPU/VOP3Instructions.td +++ b/llvm/lib/Target/AMDGPU/VOP3Instructions.td @@ -856,6 +856,162 @@ class PermlaneVarPat; +class VOP3_BITOP3_Profile : VOP3_Profile { + let HasClamp = 0; + let HasOMod = 0; + let HasModifiers = 0; + + let Ins64 = !con(getIns64.ret, + (ins bitop3_0:$bitop3)); + + let InsVOP3OpSel = !con(getInsVOP3Base.ret, + (ins bitop3_0:$bitop3, op_sel0:$op_sel)); + + let Asm64 = "$vdst, $src0, $src1, $src2$bitop3"; + let AsmVOP3OpSel = !subst("$op_sel", "$bitop3$op_sel", getAsmVOP3OpSel<3, 0, 0, 0, 0, 0>.ret); +} + +class VOP3_CVT_SCALE_F1632_FP8BF8_Profile : VOP3_Profile, + VOP3_OPSEL> { + let InsVOP3OpSel = (ins FP32InputMods:$src0_modifiers, Src0RC64:$src0, + FP32InputMods:$src1_modifiers, Src1RC64:$src1, + op_sel0:$op_sel); + let HasClamp = 0; + let HasSrc2 = 0; + let HasSrc2Mods = 0; + let HasExtVOP3DPP = 0; + let HasOpSel = 1; + let HasOMod = 0; +} + +def VOP3_CVT_SCALE_FP4FP8BF8_F32_Profile : VOP3_Profile, + VOP3_OPSEL> { + let InsVOP3OpSel = (ins FP32InputMods:$src0_modifiers, Src0RC64:$src0, + FP32InputMods:$src1_modifiers, Src1RC64:$src1, + FP32InputMods:$src2_modifiers, Src2RC64:$src2, + op_sel0:$op_sel); + let HasClamp = 0; + let HasExtVOP3DPP = 0; + let HasOpSel = 1; + let HasOMod = 0; +} + +def VOP3_CVT_SCALE_FP4_F16BF16_Profile : VOP3_Profile, + VOP3_OPSEL> { + let InsVOP3OpSel = (ins FP32InputMods:$src0_modifiers, Src0RC64:$src0, + FP32InputMods:$src1_modifiers, Src1RC64:$src1, + FP32InputMods:$src2_modifiers, VGPR_32:$src2, + op_sel0:$op_sel); + let HasClamp = 0; + let HasSrc2 = 0; + let HasSrc2Mods = 1; + let HasOpSel = 1; + let AsmVOP3OpSel = !subst(", $src2_modifiers", "", + getAsmVOP3OpSel<3, HasClamp, HasOMod, + HasSrc0FloatMods, HasSrc1FloatMods, + HasSrc2FloatMods>.ret); + let HasExtVOP3DPP = 0; +} + +class VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile : VOP3_Profile, + VOP3_OPSEL> { + let InsVOP3OpSel = (ins FP32InputMods:$src0_modifiers, Src0RC64:$src0, + FP32InputMods:$src1_modifiers, Src1RC64:$src1, + op_sel0:$op_sel); + let HasClamp = 0; + let HasSrc2 = 0; + let HasSrc2Mods = 0; + let HasExtVOP3DPP = 0; + let HasOpSel = 1; + let HasOMod = 0; +} + +def VOP3_CVT_SCALE_PK_FP8BF8_F16BF16_Profile : VOP3_Profile, + VOP3_OPSEL> { + let InsVOP3OpSel = (ins FP32InputMods:$src0_modifiers, Src0RC64:$src0, + FP32InputMods:$src1_modifiers, Src1RC64:$src1, + op_sel0:$op_sel); + let HasClamp = 0; + let HasSrc2 = 0; + let HasSrc2Mods = 0; + let HasExtVOP3DPP = 0; + let HasOpSel = 1; + let HasOMod = 0; +} + +class VOP3_CVT_SCALEF32_PK_F864_Profile : VOP3_Profile

{ + let HasModifiers = 0; + let HasSrc0IntMods = 0; + let HasSrc1IntMods = 0; + let HasOMod = 0; + let HasOpSel = 0; + let HasClamp = 0; + let HasExtDPP = 0; + let HasExt32BitDPP = 0; + let HasExtVOP3DPP = 0; + let HasExt64BitDPP = 0; +} + +let SubtargetPredicate = HasFP8ConversionScaleInsts, mayRaiseFPException = 0 in { + defm V_CVT_SCALEF32_F16_FP8 : VOP3Inst<"v_cvt_scalef32_f16_fp8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile>; + defm V_CVT_SCALEF32_F32_FP8 : VOP3Inst<"v_cvt_scalef32_f32_fp8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile>; + defm V_CVT_SCALEF32_PK_FP8_F32 : VOP3Inst<"v_cvt_scalef32_pk_fp8_f32", VOP3_CVT_SCALE_FP4FP8BF8_F32_Profile>; + defm V_CVT_SCALEF32_PK_F32_FP8 : VOP3Inst<"v_cvt_scalef32_pk_f32_fp8", VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile>; + defm V_CVT_SCALEF32_PK_FP8_F16 : VOP3Inst<"v_cvt_scalef32_pk_fp8_f16", VOP3_CVT_SCALE_PK_FP8BF8_F16BF16_Profile>; + defm V_CVT_SCALEF32_PK_FP8_BF16 : VOP3Inst<"v_cvt_scalef32_pk_fp8_bf16", VOP3_CVT_SCALE_PK_FP8BF8_F16BF16_Profile>; + defm V_CVT_SCALEF32_PK_F16_FP8 : VOP3Inst<"v_cvt_scalef32_pk_f16_fp8", VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile>; + defm V_CVT_SCALEF32_PK_BF16_FP8 : VOP3Inst<"v_cvt_scalef32_pk_bf16_fp8", VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile>; +} + +let SubtargetPredicate = HasBF8ConversionScaleInsts, mayRaiseFPException = 0 in { + defm V_CVT_SCALEF32_F16_BF8 : VOP3Inst<"v_cvt_scalef32_f16_bf8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile>; + defm V_CVT_SCALEF32_F32_BF8 : VOP3Inst<"v_cvt_scalef32_f32_bf8", VOP3_CVT_SCALE_F1632_FP8BF8_Profile>; + defm V_CVT_SCALEF32_PK_BF8_F32 : VOP3Inst<"v_cvt_scalef32_pk_bf8_f32", VOP3_CVT_SCALE_FP4FP8BF8_F32_Profile>; + defm V_CVT_SCALEF32_PK_F32_BF8 : VOP3Inst<"v_cvt_scalef32_pk_f32_bf8", VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile>; + defm V_CVT_SCALEF32_PK_BF8_F16 : VOP3Inst<"v_cvt_scalef32_pk_bf8_f16", VOP3_CVT_SCALE_PK_FP8BF8_F16BF16_Profile>; + defm V_CVT_SCALEF32_PK_BF8_BF16 : VOP3Inst<"v_cvt_scalef32_pk_bf8_bf16", VOP3_CVT_SCALE_PK_FP8BF8_F16BF16_Profile>; + defm V_CVT_SCALEF32_PK_F16_BF8 : VOP3Inst<"v_cvt_scalef32_pk_f16_bf8", VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile>; + defm V_CVT_SCALEF32_PK_BF16_BF8 : VOP3Inst<"v_cvt_scalef32_pk_bf16_bf8", VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile>; +} + +let SubtargetPredicate = HasFP4ConversionScaleInsts, mayRaiseFPException = 0 in { + defm V_CVT_SCALEF32_PK_F32_FP4 : VOP3Inst<"v_cvt_scalef32_pk_f32_fp4", VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile>; + defm V_CVT_SCALEF32_PK_FP4_F32 : VOP3Inst<"v_cvt_scalef32_pk_fp4_f32", VOP3_CVT_SCALE_FP4FP8BF8_F32_Profile>; + defm V_CVT_SCALEF32_PK_F16_FP4 : VOP3Inst<"v_cvt_scalef32_pk_f16_fp4", VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile>; + defm V_CVT_SCALEF32_PK_BF16_FP4 : VOP3Inst<"v_cvt_scalef32_pk_bf16_fp4", VOP3_CVT_SCALE_PK_F16BF16F32_FP4FP8BF8_Profile>; + + // These instructions have non-standard use of op_sel. In particular they are + // using op_sel bits 2 and 3 while only having two sources. + let Constraints = "$vdst = $src2", DisableEncoding = "$src2" in { + defm V_CVT_SCALEF32_PK_FP4_F16 : VOP3Inst<"v_cvt_scalef32_pk_fp4_f16", VOP3_CVT_SCALE_FP4_F16BF16_Profile>; + defm V_CVT_SCALEF32_PK_FP4_BF16 : VOP3Inst<"v_cvt_scalef32_pk_fp4_bf16", VOP3_CVT_SCALE_FP4_F16BF16_Profile>; + } +} + +let SubtargetPredicate = HasFP6BF6ConversionScaleInsts, mayRaiseFPException = 0 in { + defm V_CVT_SCALEF32_PK32_F32_FP6 : VOP3Inst<"v_cvt_scalef32_pk32_f32_fp6", VOP3_CVT_SCALEF32_PK_F864_Profile>; + defm V_CVT_SCALEF32_PK32_F32_BF6 : VOP3Inst<"v_cvt_scalef32_pk32_f32_bf6", VOP3_CVT_SCALEF32_PK_F864_Profile>; + defm V_CVT_SCALEF32_PK32_F16_FP6 : VOP3Inst<"v_cvt_scalef32_pk32_f16_fp6", VOP3_CVT_SCALEF32_PK_F864_Profile>; + defm V_CVT_SCALEF32_PK32_BF16_FP6 : VOP3Inst<"v_cvt_scalef32_pk32_bf16_fp6", VOP3_CVT_SCALEF32_PK_F864_Profile>; + defm V_CVT_SCALEF32_PK32_F16_BF6 : VOP3Inst<"v_cvt_scalef32_pk32_f16_bf6", VOP3_CVT_SCALEF32_PK_F864_Profile>; + defm V_CVT_SCALEF32_PK32_BF16_BF6 : VOP3Inst<"v_cvt_scalef32_pk32_bf16_bf6", VOP3_CVT_SCALEF32_PK_F864_Profile>; +} + +let SubtargetPredicate = HasF16BF16ToFP6BF6ConversionScaleInsts, mayRaiseFPException = 0 in { + defm V_CVT_SCALEF32_PK32_FP6_F16 : VOP3Inst<"v_cvt_scalef32_pk32_fp6_f16", VOP3_CVT_SCALEF32_PK_F864_Profile, int_amdgcn_cvt_scalef32_pk32_fp6_f16>; + defm V_CVT_SCALEF32_PK32_BF6_F16 : VOP3Inst<"v_cvt_scalef32_pk32_bf6_f16", VOP3_CVT_SCALEF32_PK_F864_Profile, int_amdgcn_cvt_scalef32_pk32_bf6_f16>; + defm V_CVT_SCALEF32_PK32_FP6_BF16 : VOP3Inst<"v_cvt_scalef32_pk32_fp6_bf16", VOP3_CVT_SCALEF32_PK_F864_Profile, int_amdgcn_cvt_scalef32_pk32_fp6_bf16>; + defm V_CVT_SCALEF32_PK32_BF6_BF16 : VOP3Inst<"v_cvt_scalef32_pk32_bf6_bf16", VOP3_CVT_SCALEF32_PK_F864_Profile, int_amdgcn_cvt_scalef32_pk32_bf6_bf16>; +} + +let SubtargetPredicate = HasGFX950Insts, mayRaiseFPException = 0 in { + defm V_CVT_SCALEF32_2XPK16_FP6_F32 : VOP3Inst<"v_cvt_scalef32_2xpk16_fp6_f32", VOP3_CVT_SCALEF32_PK_F864_Profile, int_amdgcn_cvt_scalef32_2xpk16_fp6_f32>; + defm V_CVT_SCALEF32_2XPK16_BF6_F32 : VOP3Inst<"v_cvt_scalef32_2xpk16_bf6_f32", VOP3_CVT_SCALEF32_PK_F864_Profile, int_amdgcn_cvt_scalef32_2xpk16_bf6_f32>; +} + let SubtargetPredicate = isGFX10Plus in { let isCommutable = 1, isReMaterializable = 1 in { defm V_XOR3_B32 : VOP3Inst <"v_xor3_b32", VOP3_Profile>; @@ -908,6 +1064,16 @@ let SubtargetPredicate = isGFX12Plus in { } // End SubtargetPredicate = isGFX12Plus +let SubtargetPredicate = HasBitOp3Insts in { + let isReMaterializable = 1 in { + defm V_BITOP3_B16 : VOP3Inst <"v_bitop3_b16", + VOP3_BITOP3_Profile>, + VOP3_OPSEL>>; + defm V_BITOP3_B32 : VOP3Inst <"v_bitop3_b32", + VOP3_BITOP3_Profile, VOP3_REGULAR>>; + } +} // End SubtargetPredicate = HasBitOp3Insts + class DivFmasPat : GCNPat< (AMDGPUdiv_fmas (vt (VOP3Mods vt:$src0, i32:$src0_modifiers)), (vt (VOP3Mods vt:$src1, i32:$src1_modifiers)), @@ -1023,6 +1189,11 @@ let SubtargetPredicate = HasPseudoScalarTrans in { def : PseudoScalarPatF16; } +let SubtargetPredicate = HasAshrPkInsts, isReMaterializable = 1 in { + defm V_ASHR_PK_I8_I32 : VOP3Inst<"v_ashr_pk_i8_i32", VOP3_Profile, int_amdgcn_ashr_pk_i8_i32>; + defm V_ASHR_PK_U8_I32 : VOP3Inst<"v_ashr_pk_u8_i32", VOP3_Profile, int_amdgcn_ashr_pk_u8_i32>; +} // End SubtargetPredicate = HasAshrPkInsts, isReMaterializable = 1 + //===----------------------------------------------------------------------===// // Integer Clamp Patterns //===----------------------------------------------------------------------===// @@ -1606,6 +1777,23 @@ multiclass VOP3_Real_gfx9 op, string AsmName> { } } +multiclass VOP3_Real_BITOP3_gfx9 op, string AsmName, bit isSingle = 0> { + defvar ps = !cast(NAME#"_e64"); + let IsSingle = !or(isSingle, ps.Pfl.IsSingle) in { + def _gfx9 : VOP3_Real(NAME#"_e64"), SIEncodingFamily.GFX9>, + VOP3e_vi (NAME#"_e64").Pfl> { + let AsmString = AsmName # ps.AsmOperands; + bits<8> bitop3; + let Inst{60-59} = bitop3{7-6}; + let Inst{10-8} = bitop3{5-3}; + let Inst{63-61} = bitop3{2-0}; + let Inst{11} = !if(ps.Pfl.HasOpSel, src0_modifiers{2}, 0); + let Inst{12} = !if(ps.Pfl.HasOpSel, src1_modifiers{2}, 0); + let Inst{13} = !if(ps.Pfl.HasOpSel, src2_modifiers{2}, 0); + let Inst{14} = !if(ps.Pfl.HasOpSel, src0_modifiers{3}, 0); + } + } +} } // End AssemblerPredicate = isGFX9Only, DecoderNamespace = "GFX9" defm V_MAD_U64_U32 : VOP3be_Real_vi <0x1E8>; @@ -1748,3 +1936,58 @@ defm V_CVT_PK_BF8_F32 : VOP3OpSel_Real_gfx9 <0x2a3>; defm V_CVT_PK_BF16_F32: VOP3OpSel_Real_gfx9 <0x268>; defm V_CVT_SR_FP8_F32 : VOP3OpSel_Real_gfx9_forced_opsel2 <0x2a4>; defm V_CVT_SR_BF8_F32 : VOP3OpSel_Real_gfx9_forced_opsel2 <0x2a5>; + +defm V_MINIMUM3_F32 : VOP3_Real_vi <0x2a8>; +defm V_MAXIMUM3_F32 : VOP3_Real_vi <0x2a9>; + +defm V_BITOP3_B16 : VOP3_Real_BITOP3_gfx9<0x233, "v_bitop3_b16">; +defm V_BITOP3_B32 : VOP3_Real_BITOP3_gfx9<0x234, "v_bitop3_b32">; +let OtherPredicates = [HasFP8ConversionScaleInsts] in { +defm V_CVT_SCALEF32_F16_FP8 : VOP3OpSel_Real_gfx9 <0x24a>; +defm V_CVT_SCALEF32_F32_FP8 : VOP3OpSel_Real_gfx9 <0x23b>; +defm V_CVT_SCALEF32_PK_FP8_F32 : VOP3OpSel_Real_gfx9 <0x235>; +defm V_CVT_SCALEF32_PK_F32_FP8 : VOP3OpSel_Real_gfx9 <0x239>; +defm V_CVT_SCALEF32_PK_FP8_F16 : VOP3OpSel_Real_gfx9 <0x240>; +defm V_CVT_SCALEF32_PK_FP8_BF16: VOP3OpSel_Real_gfx9 <0x244>; +defm V_CVT_SCALEF32_PK_F16_FP8 : VOP3OpSel_Real_gfx9<0x248>; +defm V_CVT_SCALEF32_PK_BF16_FP8 : VOP3OpSel_Real_gfx9<0x269>; +} +let OtherPredicates = [HasBF8ConversionScaleInsts] in { +defm V_CVT_SCALEF32_F16_BF8 : VOP3OpSel_Real_gfx9 <0x24b>; +defm V_CVT_SCALEF32_F32_BF8 : VOP3OpSel_Real_gfx9 <0x23c>; +defm V_CVT_SCALEF32_PK_BF8_F32 : VOP3OpSel_Real_gfx9 <0x236>; +defm V_CVT_SCALEF32_PK_F32_BF8 : VOP3OpSel_Real_gfx9 <0x23a>; +defm V_CVT_SCALEF32_PK_BF8_F16 : VOP3OpSel_Real_gfx9 <0x241>; +defm V_CVT_SCALEF32_PK_BF8_BF16: VOP3OpSel_Real_gfx9 <0x245>; +defm V_CVT_SCALEF32_PK_F16_BF8 : VOP3OpSel_Real_gfx9<0x249>; +defm V_CVT_SCALEF32_PK_BF16_BF8 : VOP3OpSel_Real_gfx9<0x26a>; +} +let OtherPredicates = [HasFP4ConversionScaleInsts] in { +defm V_CVT_SCALEF32_PK_F32_FP4 : VOP3OpSel_Real_gfx9 <0x23f>; +defm V_CVT_SCALEF32_PK_FP4_F32 : VOP3OpSel_Real_gfx9 <0x23d>; +defm V_CVT_SCALEF32_PK_F16_FP4 : VOP3OpSel_Real_gfx9 <0x250>; +defm V_CVT_SCALEF32_PK_BF16_FP4 : VOP3OpSel_Real_gfx9 <0x251>; +defm V_CVT_SCALEF32_PK_FP4_F16 : VOP3OpSel_Real_gfx9_forced_opsel2 <0x24c>; +defm V_CVT_SCALEF32_PK_FP4_BF16: VOP3OpSel_Real_gfx9_forced_opsel2 <0x24d>; +} +let OtherPredicates = [HasFP6BF6ConversionScaleInsts] in { +defm V_CVT_SCALEF32_PK32_F32_FP6 : VOP3_Real_gfx9<0x256, "v_cvt_scalef32_pk32_f32_fp6">; +defm V_CVT_SCALEF32_PK32_F32_BF6 : VOP3_Real_gfx9<0x257, "v_cvt_scalef32_pk32_f32_bf6">; +defm V_CVT_SCALEF32_PK32_F16_FP6 : VOP3_Real_gfx9<0x260, "v_cvt_scalef32_pk32_f16_fp6">; +defm V_CVT_SCALEF32_PK32_BF16_FP6 : VOP3_Real_gfx9<0x261, "v_cvt_scalef32_pk32_bf16_fp6">; +defm V_CVT_SCALEF32_PK32_F16_BF6 : VOP3_Real_gfx9<0x262, "v_cvt_scalef32_pk32_f16_bf6">; +defm V_CVT_SCALEF32_PK32_BF16_BF6 : VOP3_Real_gfx9<0x263, "v_cvt_scalef32_pk32_bf16_bf6">; +} + +let OtherPredicates = [HasF16BF16ToFP6BF6ConversionScaleInsts] in { +defm V_CVT_SCALEF32_PK32_FP6_F16 : VOP3_Real_gfx9<0x258, "v_cvt_scalef32_pk32_fp6_f16">; +defm V_CVT_SCALEF32_PK32_FP6_BF16 : VOP3_Real_gfx9<0x259, "v_cvt_scalef32_pk32_fp6_bf16">; +defm V_CVT_SCALEF32_PK32_BF6_F16 : VOP3_Real_gfx9<0x25a, "v_cvt_scalef32_pk32_bf6_f16">; +defm V_CVT_SCALEF32_PK32_BF6_BF16 : VOP3_Real_gfx9<0x25b, "v_cvt_scalef32_pk32_bf6_bf16">; +} + +defm V_ASHR_PK_I8_I32 : VOP3OpSel_Real_gfx9 <0x265>; +defm V_ASHR_PK_U8_I32 : VOP3OpSel_Real_gfx9 <0x266>; + +defm V_CVT_SCALEF32_2XPK16_FP6_F32 : VOP3_Real_gfx9<0x252, "v_cvt_scalef32_2xpk16_fp6_f32">; +defm V_CVT_SCALEF32_2XPK16_BF6_F32 : VOP3_Real_gfx9<0x253, "v_cvt_scalef32_2xpk16_bf6_f32">; diff --git a/llvm/lib/Target/AMDGPU/VOP3PInstructions.td b/llvm/lib/Target/AMDGPU/VOP3PInstructions.td index 876d4e1acf596..ae5a6581a3b20 100644 --- a/llvm/lib/Target/AMDGPU/VOP3PInstructions.td +++ b/llvm/lib/Target/AMDGPU/VOP3PInstructions.td @@ -18,6 +18,7 @@ class VOP3P_Profile, VOP3P_LD_SCALE> { @@ -143,6 +144,11 @@ def : VOP3PSatPat; def : VOP3PSatPat; } // End SubtargetPredicate = HasVOP3PInsts +let SubtargetPredicate = HasMinimum3Maximum3PKF16, FPDPRounding = 1 in { +defm V_PK_MINIMUM3_F16 : VOP3PInst<"v_pk_minimum3_f16", VOP3P_Profile>; +defm V_PK_MAXIMUM3_F16 : VOP3PInst<"v_pk_maximum3_f16", VOP3P_Profile>; +} + // TODO: Make sure we're doing the right thing with denormals. Note // that FMA and MAD will differ. multiclass MadFmaMixPats; -} // End SubtargetPredicate = HasDot9Insts +} // End SubtargetPredicate = HasDot12Insts } // End let IsDOT = 1 @@ -542,19 +548,23 @@ def VOPProfileAccWrite : VOP3P_Profile { } class VOPProfileMAI + RegisterOperand SrcARC = AVSrc_32, RegisterOperand SrcBRC = SrcARC> : VOP3P_Profile { + bit HasAbid = true; let DstRC = _DstRC; - let Src0RC64 = SrcABRC; - let Src1RC64 = SrcABRC; + let Src0RC64 = SrcARC; + let Src1RC64 = SrcBRC; let Src2RC64 = _SrcRC; let HasOpSel = 0; let HasClamp = 0; let HasIntClamp = 0; let HasOMod = 0; let HasModifiers = 0; - let AsmVOP3Base = "$vdst, $src0, $src1, $src2$cbsz$abid$blgp"; - let Ins64 = (ins Src0RC64:$src0, Src1RC64:$src1, Src2RC64:$src2, CBSZ:$cbsz, ABID:$abid, blgp:$blgp); + let AsmVOP3Base = "$vdst, $src0, $src1, $src2$cbsz"#!if(HasAbid,"$abid","")#"$blgp"; + let Ins64 = !con( + (ins Src0RC64:$src0, Src1RC64:$src1, Src2RC64:$src2, CBSZ:$cbsz), + !if(HasAbid, (ins ABID:$abid), (ins)), + (ins blgp:$blgp)); let InsVOP3Base = Ins64; // Dst and SrcC cannot partially overlap if SrcC/Dst is bigger than 4 VGPRs. // We then create two versions of the instruction: with tied dst and src2 @@ -572,6 +582,7 @@ class VOPProfileSMFMAC; @@ -623,6 +634,10 @@ def VOPProfileMAI_F32_I64_X32_VCD : VOPProfileMAI; def VOPProfileSMFMAC_F32_16X16X32_F16 : VOPProfileSMFMAC; +def VOPProfileSMFMAC_F32_16X16X64_F16 : VOPProfileSMFMAC; +def VOPProfileSMFMAC_F32_32X32X32_F16 : VOPProfileSMFMAC; +def VOPProfileSMFMAC_F32_16X16X64_BF16 : VOPProfileSMFMAC; +def VOPProfileSMFMAC_F32_32X32X32_BF16 : VOPProfileSMFMAC; def VOPProfileSMFMAC_F32_32X32X16_F16 : VOPProfileSMFMAC; def VOPProfileSMFMAC_F32_16X16X32_I16 : VOPProfileSMFMAC; def VOPProfileSMFMAC_F32_32X32X16_I16 : VOPProfileSMFMAC; @@ -630,6 +645,11 @@ def VOPProfileSMFMAC_I32_16X16X64_I8 : VOPProfileSMFMAC; def VOPProfileSMFMAC_F32_16X16X64_F8 : VOPProfileSMFMAC; def VOPProfileSMFMAC_F32_32X32X32_F8 : VOPProfileSMFMAC; +def VOPProfileSMFMAC_I32_16X16X128_I8 : VOPProfileSMFMAC; +def VOPProfileSMFMAC_I32_32X32X64_I8 : VOPProfileSMFMAC; + +def VOPProfileSMFMAC_F32_16X16X128_F8 : VOPProfileSMFMAC; +def VOPProfileSMFMAC_F32_32X32X64_F8 : VOPProfileSMFMAC; def VOPProfileMAI_F32_V8F16_X32 : VOPProfileMAI; def VOPProfileMAI_F32_V8F16_X32_VCD : VOPProfileMAI; @@ -639,14 +659,124 @@ def VOPProfileMAI_F32_V8F16_X16_VCD : VOPProfileMAI; def VOPProfileMAI_F32_V8BF16_X16_VCD : VOPProfileMAI; +def VOPProfileMAI_F32_V8BF16_X4 : VOPProfileMAI; +def VOPProfileMAI_F32_V8BF16_X4_VCD : VOPProfileMAI; + + +let HasAbid = false in { +// For f32_16x16x128_f8f6f4 - f8 x f8 case +def VOPProfileMAI_F32_V8I32_V8I32_X128 : VOPProfileMAI; +def VOPProfileMAI_F32_V8I32_V8I32_X128_VCD : VOPProfileMAI; + +// For f32_16x16x128_f8f6f4 - f8 x f6 case +def VOPProfileMAI_F32_V8I32_V6I32_X128 : VOPProfileMAI; +def VOPProfileMAI_F32_V8I32_V6I32_X128_VCD : VOPProfileMAI; + +// For f32_16x16x128_f8f6f4 - f6 x f8 case +def VOPProfileMAI_F32_V6I32_V8I32_X128 : VOPProfileMAI; +def VOPProfileMAI_F32_V6I32_V8I32_X128_VCD : VOPProfileMAI; + +// For f32_16x16x128_f8f6f4 - f6 x f6 case +def VOPProfileMAI_F32_V6I32_V6I32_X128 : VOPProfileMAI; +def VOPProfileMAI_F32_V6I32_V6I32_X128_VCD : VOPProfileMAI; + +// For f32_16x16x128_f8f6f4 - f6 x f4 case +def VOPProfileMAI_F32_V6I32_V4I32_X128 : VOPProfileMAI; +def VOPProfileMAI_F32_V6I32_V4I32_X128_VCD : VOPProfileMAI; + +// For f32_16x16x128_f8f6f4 - f4 x f6 case +def VOPProfileMAI_F32_V4I32_V6I32_X128 : VOPProfileMAI; +def VOPProfileMAI_F32_V4I32_V6I32_X128_VCD : VOPProfileMAI; + +// For f32_16x16x128_f8f6f4 - f8 x f4 case +def VOPProfileMAI_F32_V8I32_V4I32_X128 : VOPProfileMAI; +def VOPProfileMAI_F32_V8I32_V4I32_X128_VCD : VOPProfileMAI; + +// For f32_16x16x128_f8f6f4 - f4 x f8 case +def VOPProfileMAI_F32_V4I32_V8I32_X128 : VOPProfileMAI; +def VOPProfileMAI_F32_V4I32_V8I32_X128_VCD : VOPProfileMAI; + +// For f32_16x16x128_f8f6f4 - f4 x f4 case +def VOPProfileMAI_F32_V4I32_V4I32_X128 : VOPProfileMAI; +def VOPProfileMAI_F32_V4I32_V4I32_X128_VCD : VOPProfileMAI; + +// For f32_32x32x64_f8f6f4 - f8 x f8 case +def VOPProfileMAI_F32_V8I32_V8I32_X512 : VOPProfileMAI; +def VOPProfileMAI_F32_V8I32_V8I32_X512_VCD : VOPProfileMAI; + +// For f32_32x32x64_f8f6f4 - f8 x f6 case +def VOPProfileMAI_F32_V8I32_V6I32_X512 : VOPProfileMAI; +def VOPProfileMAI_F32_V8I32_V6I32_X512_VCD : VOPProfileMAI; + +// For f32_32x32x64_f8f6f4 - f8 x f4 case +def VOPProfileMAI_F32_V8I32_V4I32_X512 : VOPProfileMAI; +def VOPProfileMAI_F32_V8I32_V4I32_X512_VCD : VOPProfileMAI; + +// For f32_32x32x64_f8f6f4 - f4 x f8 case +def VOPProfileMAI_F32_V4I32_V8I32_X512 : VOPProfileMAI; +def VOPProfileMAI_F32_V4I32_V8I32_X512_VCD : VOPProfileMAI; + +// For f32_32x32x64_f8f6f4 - f6 x f8 case +def VOPProfileMAI_F32_V6I32_V8I32_X512 : VOPProfileMAI; +def VOPProfileMAI_F32_V6I32_V8I32_X512_VCD : VOPProfileMAI; + +// For f32_32x32x64_f8f6f4 - f6 x f6 case +def VOPProfileMAI_F32_V6I32_V6I32_X512 : VOPProfileMAI; +def VOPProfileMAI_F32_V6I32_V6I32_X512_VCD : VOPProfileMAI; + +// For f32_32x32x64_f8f6f4 - f6 x f4 case +def VOPProfileMAI_F32_V6I32_V4I32_X512 : VOPProfileMAI; +def VOPProfileMAI_F32_V6I32_V4I32_X512_VCD : VOPProfileMAI; + +// For f32_32x32x64_f8f6f4 - f4 x f6 case +def VOPProfileMAI_F32_V4I32_V6I32_X512 : VOPProfileMAI; +def VOPProfileMAI_F32_V4I32_V6I32_X512_VCD : VOPProfileMAI; + +// For f32_32x32x64_f8f6f4 - f4 x f4 case +def VOPProfileMAI_F32_V4I32_V4I32_X512 : VOPProfileMAI; +def VOPProfileMAI_F32_V4I32_V4I32_X512_VCD : VOPProfileMAI; +} + + +// For i32_16x16x64_i8 +def VOPProfileMAI_I32_V4I32_X128 : VOPProfileMAI; +def VOPProfileMAI_I32_V4I32_X128_VCD : VOPProfileMAI; + +// For i32_32x32x32_i8 +def VOPProfileMAI_I32_V4I32_X16 : VOPProfileMAI; +def VOPProfileMAI_I32_V4I32_X16_VCD : VOPProfileMAI; + + class MFMATable { bit IsMac = is_mac; string FMAOp = Name; } -class MAIFrag : PatFrag < - (ops node:$src0, node:$src1, node:$src2, node:$cbsz, node:$abid, node:$blgp), - (Op $src0, $src1, $src2, $cbsz, $abid, $blgp), +class MFMA_F8F6F4_WithSizeTable { + Instruction F8F8Opcode = F8F8Variant; + Instruction Opcode = ThisVariant; + bits<8> NumRegsSrcA = A; + bits<8> NumRegsSrcB = B; +} + +class MFMA_F8F6F4_WithSizeTable_Helper : + MFMA_F8F6F4_WithSizeTable(NAME), + !cast(F8F8Op)> { +} + +// Currently assumes scaled instructions never have abid +class MAIFrag : PatFrag < + !if(Scaled, (ops node:$src0, node:$src1, node:$src2, node:$cbsz, node:$blgp, + node:$scale_src0_opsel, node:$scale_src0, + node:$scale_src1_opsel, node:$scale_src1), + !con((ops node:$src0, node:$src1, node:$src2, node:$cbsz), + !if(HasAbid, (ops node:$abid), (ops)), + (ops node:$blgp))), + !if(Scaled, (Op $src0, $src1, $src2, $cbsz, $blgp, $scale_src0_opsel, $scale_src0, $scale_src1_opsel, $scale_src1), + !if(HasAbid, (Op $src0, $src1, $src2, $cbsz, $abid, $blgp), + (Op $src0, $src1, $src2, $cbsz, $blgp))), pred >; @@ -666,11 +796,15 @@ defvar MayNotNeedAGPRs_gisel = [{ return !MF.getInfo()->mayNeedAGPRs(); }]; -class AgprMAIFrag : MAIFrag { +class AgprMAIFrag : + MAIFrag { let GISelPredicateCode = MayNeedAGPRs_gisel; } -class VgprMAIFrag : MAIFrag { +class VgprMAIFrag : + MAIFrag { let GISelPredicateCode = MayNotNeedAGPRs_gisel; } @@ -681,27 +815,51 @@ let isAsCheapAsAMove = 1, isReMaterializable = 1 in { } // End isMoveImm = 1 } // End isAsCheapAsAMove = 1, isReMaterializable = 1 -class MAIInst - : VOP3InstBase { +class MAIInst + : VOP3InstBase { let SubtargetPredicate = HasMAIInsts; Instruction Opcode = !cast(NAME); bit is_dgemm = 0; bit is_gfx940_xdl = 0; + let PseudoInstr = NAME; // FIXME: Why is this not the default } -multiclass MAIInst { +// FIXME: Intrinsic should probably not have op_sel operands, we can +// pattern match byte select patterns into op_sel. +// FIXME: Missing neg and clamp modifiers +// +// FIXME: Usual syntax for op_sel is quite hostile here. +class ScaledMAIInst : + MAIInst { + // Append operands from V_MFMA_LD_SCALE_B32, but we need to rename them. + let InOperandList = !con(BaseInst.InOperandList, + (ins VSrc_b32:$scale_src0, + VSrc_b32:$scale_src1, + op_sel0:$scale_src0_opsel, + op_sel_hi0:$scale_src1_opsel)); + let AsmOperands = + "$vdst, $src0, $src1, $src2, $scale_src0, $scale_src1" + "$scale_src0_opsel$scale_src1_opsel$cbsz$blgp"; + + let FixedSize = 1; + let Size = 16; +} + +multiclass MAIInst { defvar NoDstOverlap = !cast("VOPProfileMAI_" # P).NoDstOverlap; let isConvergent = 1, mayRaiseFPException = 0, ReadsModeReg = 1 in { // FP32 denorm mode is respected, rounding mode is not. Exceptions are not supported. let Constraints = !if(NoDstOverlap, "@earlyclobber $vdst", "") in { def _e64 : MAIInst("VOPProfileMAI_" # P), - !if(!or(NoDstOverlap, !eq(node, null_frag)), null_frag, AgprMAIFrag)>, + !if(!or(NoDstOverlap, !eq(node, null_frag)), null_frag, AgprMAIFrag), Scaled>, MFMATable<0, NAME # "_e64">; let OtherPredicates = [isGFX90APlus], Mnemonic = OpName in def _vgprcd_e64 : MAIInst("VOPProfileMAI_" # P # "_VCD"), - !if(!or(NoDstOverlap, !eq(node, null_frag)), null_frag, VgprMAIFrag)>, + !if(!or(NoDstOverlap, !eq(node, null_frag)), null_frag, VgprMAIFrag), Scaled>, MFMATable<0, NAME # "_vgprcd_e64">; } @@ -710,18 +868,77 @@ multiclass MAIInst { isConvertibleToThreeAddress = NoDstOverlap, Mnemonic = OpName in { def "_mac_e64" : MAIInst("VOPProfileMAI_" # P), - !if(!eq(node, null_frag), null_frag, AgprMAIFrag)>, + !if(!eq(node, null_frag), null_frag, AgprMAIFrag), Scaled>, MFMATable<1, NAME # "_e64">; let OtherPredicates = [isGFX90APlus] in def _mac_vgprcd_e64 : MAIInst("VOPProfileMAI_" # P # "_VCD"), - !if(!eq(node, null_frag), null_frag, VgprMAIFrag)>, + !if(!eq(node, null_frag), null_frag, VgprMAIFrag), Scaled>, MFMATable<1, NAME # "_vgprcd_e64">; } } } // End isConvergent = 1, mayRaiseFPException = 0, ReadsModeReg = 1 } +// Provide a wrapper around MAIInst that provides the appended operands from V_MFMA_LD_SCALE_B32 +multiclass ScaledMAIInst_mc { + defvar VariantSuffix = !subst(!toupper(OpName), "", NAME); // Drop the main opcode name prefix to get the "_fN_fM" suffix. + defvar UnscaledOpName = UnscaledOpName_#VariantSuffix; + + defvar HasAbid = false; + + defvar NoDstOverlap = !cast(!cast(UnscaledOpName#"_e64").Pfl).NoDstOverlap; + + def _e64 : ScaledMAIInst(UnscaledOpName#"_e64"), !if(NoDstOverlap, null_frag, AgprMAIFrag)>, + MFMATable<0, NAME # "_e64">; + + def _vgprcd_e64 : ScaledMAIInst(UnscaledOpName#"_vgprcd_e64"), !if(NoDstOverlap, null_frag, VgprMAIFrag)>, + MFMATable<0, NAME # "_vgprcd_e64">; + + if NoDstOverlap then { + let Constraints = !if(NoDstOverlap, "$vdst = $src2", ""), + isConvertibleToThreeAddress = NoDstOverlap, + Mnemonic = UnscaledOpName_ in { + def _mac_e64 : ScaledMAIInst(UnscaledOpName # "_mac_e64"), AgprMAIFrag>, + MFMATable<1, NAME # "_e64">; + + def _mac_vgprcd_e64 : ScaledMAIInst(UnscaledOpName # "_mac_vgprcd_e64"), VgprMAIFrag>, + MFMATable<1, NAME # "_vgprcd_e64">; + } + } +} + +// Each of SrcA and SrcB can be encoded using 3 different sizes, so +// define 9 permutations of register classes. +multiclass MAIInst_SrcFormats_mc { + defvar HasAbid = false; + defm _f8_f8 : MAIInst; + defm _f8_f6 : MAIInst; + defm _f6_f8 : MAIInst; + defm _f6_f6 : MAIInst; + defm _f8_f4 : MAIInst; + defm _f4_f8 : MAIInst; + defm _f6_f4 : MAIInst; + defm _f4_f6 : MAIInst; + defm _f4_f4 : MAIInst; +} + +multiclass MAIInst_SrcFormats_Scaled_mc { + defm _f8_f8 : ScaledMAIInst_mc; + defm _f8_f6 : ScaledMAIInst_mc; + defm _f6_f8 : ScaledMAIInst_mc; + defm _f6_f6 : ScaledMAIInst_mc; + defm _f8_f4 : ScaledMAIInst_mc; + defm _f4_f8 : ScaledMAIInst_mc; + defm _f6_f4 : ScaledMAIInst_mc; + defm _f4_f6 : ScaledMAIInst_mc; + defm _f4_f4 : ScaledMAIInst_mc; +} + defm V_MFMA_F32_4X4X1F32 : MAIInst<"v_mfma_f32_4x4x1f32", "F32_F32_X4", int_amdgcn_mfma_f32_4x4x1f32>; defm V_MFMA_F32_16X16X1F32 : MAIInst<"v_mfma_f32_16x16x1f32", "F32_F32_X16", int_amdgcn_mfma_f32_16x16x1f32>; defm V_MFMA_F32_16X16X4F32 : MAIInst<"v_mfma_f32_16x16x4f32", "F32_F32_X4", int_amdgcn_mfma_f32_16x16x4f32>; @@ -752,7 +969,24 @@ defm V_MFMA_F32_32X32X4BF16 : MAIInst<"v_mfma_f32_32x32x4bf16", "F32_V2I16_X16", let SubtargetPredicate = HasGFX950Insts, is_gfx940_xdl = 1 in { defm V_MFMA_F32_16X16X32_F16 : MAIInst<"v_mfma_f32_16x16x32f16", "F32_V8F16_X32", int_amdgcn_mfma_f32_16x16x32_f16>; defm V_MFMA_F32_32X32X16_F16 : MAIInst<"v_mfma_f32_32x32x16f16", "F32_V8F16_X16", int_amdgcn_mfma_f32_32x32x16_f16>; +defm V_MFMA_F32_16X16X32_BF16 : MAIInst<"v_mfma_f32_16x16x32bf16", "F32_V8BF16_X4", int_amdgcn_mfma_f32_16x16x32_bf16>; +defm V_MFMA_I32_16X16X64_I8 : MAIInst<"v_mfma_i32_16x16x64i8", "I32_V4I32_X128", int_amdgcn_mfma_i32_16x16x64_i8>; defm V_MFMA_F32_32X32X16_BF16 : MAIInst<"v_mfma_f32_32x32x16bf16", "F32_V8BF16_X16", int_amdgcn_mfma_f32_32x32x16_bf16>; +defm V_MFMA_I32_32X32X32_I8 : MAIInst<"v_mfma_i32_32x32x32i8", "I32_V4I32_X16", int_amdgcn_mfma_i32_32x32x32_i8>; + +defm V_MFMA_F32_16X16X128_F8F6F4 : MAIInst_SrcFormats_mc<"v_mfma_f32_16x16x128f8f6f4", + "_X128", mfma_f32_16x16x128_f8f6f4>; +defm V_MFMA_F32_32X32X64_F8F6F4 : MAIInst_SrcFormats_mc<"v_mfma_f32_32x32x64f8f6f4", + "_X512", mfma_f32_32x32x64_f8f6f4>; + +defm V_MFMA_SCALE_F32_16X16X128_F8F6F4 : MAIInst_SrcFormats_Scaled_mc< + "v_mfma_scale_f32_16x16x128_f8f6f4", "V_MFMA_F32_16X16X128_F8F6F4", + int_amdgcn_mfma_scale_f32_16x16x128_f8f6f4>; + +defm V_MFMA_SCALE_F32_32X32X64_F8F6F4 : MAIInst_SrcFormats_Scaled_mc< + "v_mfma_scale_f32_32x32x64_f8f6f4", + "V_MFMA_F32_32X32X64_F8F6F4", + int_amdgcn_mfma_scale_f32_32x32x64_f8f6f4>; } let SubtargetPredicate = HasGFX950Insts in { @@ -822,6 +1056,23 @@ defm V_SMFMAC_F32_32X32X32_FP8_BF8 : SMFMACInst<"v_smfmac_f32_32x32x32_fp8_bf8", defm V_SMFMAC_F32_32X32X32_FP8_FP8 : SMFMACInst<"v_smfmac_f32_32x32x32_fp8_fp8", "F32_32X32X32_F8", int_amdgcn_smfmac_f32_32x32x32_fp8_fp8>; } // End SubtargetPredicate = HasFP8Insts, is_gfx940_xdl = 1 +let SubtargetPredicate = HasGFX950Insts in { +defm V_SMFMAC_F32_16X16X64_F16 : SMFMACInst<"v_smfmac_f32_16x16x64_f16", "F32_16X16X64_F16", int_amdgcn_smfmac_f32_16x16x64_f16>; +defm V_SMFMAC_F32_32X32X32_F16 : SMFMACInst<"v_smfmac_f32_32x32x32_f16", "F32_32X32X32_F16", int_amdgcn_smfmac_f32_32x32x32_f16>; +defm V_SMFMAC_F32_16X16X64_BF16 : SMFMACInst<"v_smfmac_f32_16x16x64_bf16", "F32_16X16X64_BF16", int_amdgcn_smfmac_f32_16x16x64_bf16>; +defm V_SMFMAC_F32_32X32X32_BF16 : SMFMACInst<"v_smfmac_f32_32x32x32_bf16", "F32_32X32X32_BF16", int_amdgcn_smfmac_f32_32x32x32_bf16>; +defm V_SMFMAC_I32_16X16X128_I8 : SMFMACInst<"v_smfmac_i32_16x16x128_i8", "I32_16X16X128_I8", int_amdgcn_smfmac_i32_16x16x128_i8>; +defm V_SMFMAC_I32_32X32X64_I8 : SMFMACInst<"v_smfmac_i32_32x32x64_i8", "I32_32X32X64_I8", int_amdgcn_smfmac_i32_32x32x64_i8>; +defm V_SMFMAC_F32_16X16X128_BF8_BF8 : SMFMACInst<"v_smfmac_f32_16x16x128_bf8_bf8", "F32_16X16X128_F8", int_amdgcn_smfmac_f32_16x16x128_bf8_bf8>; +defm V_SMFMAC_F32_16X16X128_BF8_FP8 : SMFMACInst<"v_smfmac_f32_16x16x128_bf8_fp8", "F32_16X16X128_F8", int_amdgcn_smfmac_f32_16x16x128_bf8_fp8>; +defm V_SMFMAC_F32_16X16X128_FP8_BF8 : SMFMACInst<"v_smfmac_f32_16x16x128_fp8_bf8", "F32_16X16X128_F8", int_amdgcn_smfmac_f32_16x16x128_fp8_bf8>; +defm V_SMFMAC_F32_16X16X128_FP8_FP8 : SMFMACInst<"v_smfmac_f32_16x16x128_fp8_fp8", "F32_16X16X128_F8", int_amdgcn_smfmac_f32_16x16x128_fp8_fp8>; +defm V_SMFMAC_F32_32X32X64_BF8_BF8 : SMFMACInst<"v_smfmac_f32_32x32x64_bf8_bf8", "F32_32X32X64_F8", int_amdgcn_smfmac_f32_32x32x64_bf8_bf8>; +defm V_SMFMAC_F32_32X32X64_BF8_FP8 : SMFMACInst<"v_smfmac_f32_32x32x64_bf8_fp8", "F32_32X32X64_F8", int_amdgcn_smfmac_f32_32x32x64_bf8_fp8>; +defm V_SMFMAC_F32_32X32X64_FP8_BF8 : SMFMACInst<"v_smfmac_f32_32x32x64_fp8_bf8", "F32_32X32X64_F8", int_amdgcn_smfmac_f32_32x32x64_fp8_bf8>; +defm V_SMFMAC_F32_32X32X64_FP8_FP8 : SMFMACInst<"v_smfmac_f32_32x32x64_fp8_fp8", "F32_32X32X64_F8", int_amdgcn_smfmac_f32_32x32x64_fp8_fp8>; +} + def MAIInstInfoTable : GenericTable { let FilterClass = "MAIInst"; let CppTypeName = "MAIInstInfo"; @@ -869,7 +1120,6 @@ def VOP_V4F32_V16F16_V16F16_V4F32 : VOPProfile <[v4f32, v16f16, v16f16, v4f32]>; def VOP_V4F32_V16I16_V16I16_V4F32 : VOPProfile <[v4f32, v16i16, v16i16, v4f32]>; def VOP_V8F16_V16F16_V16F16_V8F16 : VOPProfile <[v8f16, v16f16, v16f16, v8f16]>; def VOP_V8I16_V16I16_V16I16_V8I16 : VOPProfile <[v8i16, v16i16, v16i16, v8i16]>; -def VOP_V4I32_V4I32_V4I32_V4I32 : VOPProfile <[v4i32, v4i32, v4i32, v4i32]>; def VOP_V4I32_V2I32_V2I32_V4I32 : VOPProfile <[v4i32, v2i32, v2i32, v4i32]>; @@ -1676,6 +1926,26 @@ multiclass VOP3P_Real_MFMA_gfx940 op, string Name = !cast(N } } +multiclass VOP3P_Real_MFMA_F8F6F4_gfx940 op, string Name = !cast(NAME#"_e64").Mnemonic, + VOP3_Pseudo PS_ACD = !cast(NAME # "_e64"), + VOP3_Pseudo PS_VCD = !cast(NAME # "_vgprcd" # "_e64")> { + + defvar F8F8Name = !substr(NAME, 0, !sub(!size(NAME), !size("_fN_fM")))#"_f8_f8"; + + let AssemblerPredicate = isGFX940Plus, + DecoderNamespace = "GFX940", + AsmString = Name # PS_ACD.AsmOperands, + Constraints = "" in { + def _gfx940_acd : VOP3P_Real, + VOP3Pe_MAI , + MFMA_F8F6F4_WithSizeTable_Helper; + + def _gfx940_vcd : VOP3P_Real, + VOP3Pe_MAI , + MFMA_F8F6F4_WithSizeTable_Helper; + } // End AssemblerPredicate = isGFX940Plus, DecoderNamespace = "GFX940" +} + multiclass VOP3P_Real_MFMA_gfx950 op, string Name = !cast(NAME#"_e64").Mnemonic, VOP3_Pseudo PS_ACD = !cast(NAME # "_e64"), VOP3_Pseudo PS_VCD = !cast(NAME # "_vgprcd" # "_e64")> { @@ -1686,6 +1956,55 @@ multiclass VOP3P_Real_MFMA_gfx950 op, string Name = !cast(N } +multiclass VOP3P_Real_MFMA_F8F6F4_gfx950_mc op, string Name> { + defm _f8_f8 : VOP3P_Real_MFMA_F8F6F4_gfx940; + + let isAsmParserOnly = true in { // Disable ambiguous disassembly. + defm _f8_f6 : VOP3P_Real_MFMA_F8F6F4_gfx940; + defm _f6_f8 : VOP3P_Real_MFMA_F8F6F4_gfx940; + defm _f8_f4 : VOP3P_Real_MFMA_F8F6F4_gfx940; + defm _f4_f8 : VOP3P_Real_MFMA_F8F6F4_gfx940; + defm _f6_f6 : VOP3P_Real_MFMA_F8F6F4_gfx940; + defm _f6_f4 : VOP3P_Real_MFMA_F8F6F4_gfx940; + defm _f4_f6 : VOP3P_Real_MFMA_F8F6F4_gfx940; + defm _f4_f4 : VOP3P_Real_MFMA_F8F6F4_gfx940; + } +} + +multiclass VOP3PX_Real_ScaledMFMA op> { + defvar PS_ACD = !cast(NAME # "_e64"); + defvar PS_VCD = !cast(NAME # "_vgprcd" # "_e64"); + defvar Name = PS_ACD.Mnemonic; + defvar F8F8Name = !substr(NAME, 0, !sub(!size(NAME), !size("_fN_fM")))#"_f8_f8"; + + let SubtargetPredicate = HasGFX950Insts, + DecoderNamespace = "GFX940", + AsmString = Name # PS_ACD.AsmOperands, Constraints = "" in { + def _gfx940_acd : VOP3P_Real, + VOP3PXe , + MFMA_F8F6F4_WithSizeTable_Helper; + + def _gfx940_vcd : VOP3P_Real, + VOP3PXe , + MFMA_F8F6F4_WithSizeTable_Helper; + } +} + +multiclass VOP3PX_Real_ScaledMFMA_F8F6F4_mc op> { + defm _f8_f8 : VOP3PX_Real_ScaledMFMA; + + let isAsmParserOnly = 1 in { // Disable ambiguous disassembly. + defm _f8_f6 : VOP3PX_Real_ScaledMFMA; + defm _f6_f8 : VOP3PX_Real_ScaledMFMA; + defm _f8_f4 : VOP3PX_Real_ScaledMFMA; + defm _f4_f8 : VOP3PX_Real_ScaledMFMA; + defm _f6_f6 : VOP3PX_Real_ScaledMFMA; + defm _f6_f4 : VOP3PX_Real_ScaledMFMA; + defm _f4_f6 : VOP3PX_Real_ScaledMFMA; + defm _f4_f4 : VOP3PX_Real_ScaledMFMA; + } +} + multiclass VOP3P_Real_MFMA_vi op> { def _vi : VOP3P_Real(NAME#"_e64"), SIEncodingFamily.VI>, VOP3Pe_MAI (NAME#"_e64").Pfl, ?> { @@ -1736,6 +2055,9 @@ defm V_PK_MUL_F16 : VOP3P_Real_vi <0x10>; defm V_PK_MIN_F16 : VOP3P_Real_vi <0x11>; defm V_PK_MAX_F16 : VOP3P_Real_vi <0x12>; +defm V_PK_MINIMUM3_F16 : VOP3P_Real_vi <0x1b>; +defm V_PK_MAXIMUM3_F16 : VOP3P_Real_vi <0x1c>; + defm V_MAD_MIX_F32 : VOP3P_Real_vi <0x20>; defm V_MAD_MIXLO_F16 : VOP3P_Real_vi <0x21>; defm V_MAD_MIXHI_F16 : VOP3P_Real_vi <0x22>; @@ -1794,9 +2116,17 @@ defm V_MFMA_F64_4X4X4F64 : VOP3P_Real_MFMA_gfx90a <0x6f>; defm V_MFMA_F32_16X16X32_F16 : VOP3P_Real_MFMA_gfx950 <0x54, "v_mfma_f32_16x16x32_f16">; defm V_MFMA_F32_32X32X16_F16 : VOP3P_Real_MFMA_gfx950 <0x55, "v_mfma_f32_32x32x16_f16">; +defm V_MFMA_F32_16X16X32_BF16 : VOP3P_Real_MFMA_gfx950 <0x35, "v_mfma_f32_16x16x32_bf16">; +defm V_MFMA_I32_16X16X64_I8 : VOP3P_Real_MFMA_gfx950 <0x36, "v_mfma_i32_16x16x64_i8">; defm V_MFMA_F32_32X32X16_BF16 : VOP3P_Real_MFMA_gfx950 <0x37, "v_mfma_f32_32x32x16_bf16">; +defm V_MFMA_I32_32X32X32_I8 : VOP3P_Real_MFMA_gfx950 <0x38, "v_mfma_i32_32x32x32_i8">; defm V_MFMA_LD_SCALE_B32 : VOP3P_Real_vi <0x2c>; +defm V_MFMA_F32_16X16X128_F8F6F4 : VOP3P_Real_MFMA_F8F6F4_gfx950_mc <0x2d, "v_mfma_f32_16x16x128_f8f6f4">; +defm V_MFMA_SCALE_F32_16X16X128_F8F6F4 : VOP3PX_Real_ScaledMFMA_F8F6F4_mc <0x2d>; +defm V_MFMA_F32_32X32X64_F8F6F4 : VOP3P_Real_MFMA_F8F6F4_gfx950_mc <0x2e, "v_mfma_f32_32x32x64_f8f6f4">; +defm V_MFMA_SCALE_F32_32X32X64_F8F6F4 : VOP3PX_Real_ScaledMFMA_F8F6F4_mc <0x2e>; +defm V_DOT2_F32_BF16 : VOP3P_Real_vi<0x1a>; defm V_MFMA_I32_32X32X16I8 : VOP3P_Real_MFMA_gfx940 <0x56, "v_mfma_i32_32x32x16_i8">; defm V_MFMA_I32_16X16X32I8 : VOP3P_Real_MFMA_gfx940 <0x57, "v_mfma_i32_16x16x32_i8">; @@ -1836,6 +2166,22 @@ defm V_SMFMAC_F32_32X32X32_BF8_FP8 : VOP3P_Real_SMFMAC <0x7d, "v_smfmac_f32_32x3 defm V_SMFMAC_F32_32X32X32_FP8_BF8 : VOP3P_Real_SMFMAC <0x7e, "v_smfmac_f32_32x32x32fp8bf8">; defm V_SMFMAC_F32_32X32X32_FP8_FP8 : VOP3P_Real_SMFMAC <0x7f, "v_smfmac_f32_32x32x32fp8fp8">; +defm V_SMFMAC_F32_16X16X64_F16 : VOP3P_Real_SMFMAC <0x5a, "v_smfmac_f32_16x16x64f16">; +defm V_SMFMAC_F32_32X32X32_F16 : VOP3P_Real_SMFMAC <0x5b, "v_smfmac_f32_32x32x32f16">; +defm V_SMFMAC_F32_16X16X64_BF16 : VOP3P_Real_SMFMAC <0x39, "v_smfmac_f32_16x16x64bf16">; +defm V_SMFMAC_F32_32X32X32_BF16 : VOP3P_Real_SMFMAC <0x46, "v_smfmac_f32_32x32x32bf16">; +defm V_SMFMAC_I32_16X16X128_I8 : VOP3P_Real_SMFMAC <0x3a, "v_smfmac_i32_16x16x128i8">; +defm V_SMFMAC_I32_32X32X64_I8 : VOP3P_Real_SMFMAC <0x47, "v_smfmac_i32_32x32x64i8">; + +defm V_SMFMAC_F32_16X16X128_BF8_BF8 : VOP3P_Real_SMFMAC <0x3b, "v_smfmac_f32_16x16x128bf8bf8">; +defm V_SMFMAC_F32_16X16X128_BF8_FP8 : VOP3P_Real_SMFMAC <0x3c, "v_smfmac_f32_16x16x128bf8fp8">; +defm V_SMFMAC_F32_16X16X128_FP8_BF8 : VOP3P_Real_SMFMAC <0x3d, "v_smfmac_f32_16x16x128fp8bf8">; +defm V_SMFMAC_F32_16X16X128_FP8_FP8 : VOP3P_Real_SMFMAC <0x43, "v_smfmac_f32_16x16x128fp8fp8">; +defm V_SMFMAC_F32_32X32X64_BF8_BF8 : VOP3P_Real_SMFMAC <0x4b, "v_smfmac_f32_32x32x64bf8bf8">; +defm V_SMFMAC_F32_32X32X64_BF8_FP8 : VOP3P_Real_SMFMAC <0x4e, "v_smfmac_f32_32x32x64bf8fp8">; +defm V_SMFMAC_F32_32X32X64_FP8_BF8 : VOP3P_Real_SMFMAC <0x4f, "v_smfmac_f32_32x32x64fp8bf8">; +defm V_SMFMAC_F32_32X32X64_FP8_FP8 : VOP3P_Real_SMFMAC <0x53, "v_smfmac_f32_32x32x64fp8fp8">; + defm V_PK_FMA_F32 : VOP3P_Real_vi <0x30>; defm V_PK_MUL_F32 : VOP3P_Real_vi <0x31>; defm V_PK_ADD_F32 : VOP3P_Real_vi <0x32>; diff --git a/llvm/lib/Target/AMDGPU/VOPCInstructions.td b/llvm/lib/Target/AMDGPU/VOPCInstructions.td index f4ccae1decb1d..0a4b51c4ac631 100644 --- a/llvm/lib/Target/AMDGPU/VOPCInstructions.td +++ b/llvm/lib/Target/AMDGPU/VOPCInstructions.td @@ -192,6 +192,8 @@ class VOPC_Real .ret>, + def _e64 : VOP3_Pseudo.ret, /*IsVOP3P*/false, P.HasOpSel>, Commutable_REV, VCMPXNoSDstTable<1, opName#"_e64">, VCMPVCMPXTable { @@ -373,7 +375,7 @@ multiclass VOPCX_Pseudos , + def _nosdst_e64 : VOP3_Pseudo, Commutable_REV, VCMPXNoSDstTable<0, opName#"_e64">, VCMPVCMPXTable { @@ -799,11 +801,22 @@ defm V_CMPX_T_U64 : VOPCX_I64 <"v_cmpx_t_u64">; // Class instructions //===----------------------------------------------------------------------===// -class VOPC_Class_Profile sched, ValueType src0VT, ValueType src1VT = i32> : +class VOPC_Class_Profile_Base sched, ValueType src0VT, ValueType src1VT = i32> : VOPC_Profile { + let InsSDWA = (ins Src0ModSDWA:$src0_modifiers, Src0SDWA:$src0, + Src1ModSDWA:$src1_modifiers, Src1SDWA:$src1, + Clamp:$clamp, src0_sel:$src0_sel, src1_sel:$src1_sel); + + let AsmSDWA = " vcc, $src0_modifiers, $src1_modifiers$clamp $src0_sel $src1_sel"; + let HasClamp = 0; + let HasOMod = 0; +} + +class VOPC_Class_Profile sched, ValueType src0VT, ValueType src1VT = i32> : + VOPC_Class_Profile_Base { let AsmDPP = "$src0_modifiers, $src1 $dpp_ctrl$row_mask$bank_mask$bound_ctrl"; let AsmDPP16 = AsmDPP#"$fi"; - let InsDPP = (ins Src0ModDPP:$src0_modifiers, Src0DPP:$src0, Src1DPP:$src1, dpp_ctrl:$dpp_ctrl, DppRowMask:$row_mask, DppBankMask:$bank_mask, DppBoundCtrl:$bound_ctrl); + let InsDPP = (ins Src0ModDPP:$src0_modifiers, Src0DPP:$src0, Src1DPP:$src1, dpp_ctrl:$dpp_ctrl, DppRowMask:$row_mask, DppBankMask:$bank_mask, DppBoundCtrl:$bound_ctrl); let InsDPP16 = !con(InsDPP, (ins Dpp16FI:$fi)); // DPP8 forbids modifiers and can inherit from VOPC_Profile @@ -812,15 +825,7 @@ class VOPC_Class_Profile sched, ValueType src0VT, ValueType let InsVOP3Base = !con(InsPartVOP3DPP, !if(HasOpSel, (ins op_sel0:$op_sel), (ins))); let AsmVOP3Base = "$sdst, $src0_modifiers, $src1"; - - let InsSDWA = (ins Src0ModSDWA:$src0_modifiers, Src0SDWA:$src0, - Src1ModSDWA:$src1_modifiers, Src1SDWA:$src1, - Clamp:$clamp, src0_sel:$src0_sel, src1_sel:$src1_sel); - - let AsmSDWA = " vcc, $src0_modifiers, $src1_modifiers$clamp $src0_sel $src1_sel"; let HasSrc1Mods = 0; - let HasClamp = 0; - let HasOMod = 0; } multiclass VOPC_Class_Profile_t16 sched> { @@ -837,16 +842,25 @@ multiclass VOPC_Class_Profile_t16 sched> { let Src1ModDPP = getSrcModDPP_t16.ret; let Src2ModDPP = getSrcModDPP_t16.ret; } - def _fake16 : VOPC_Class_Profile { + def _fake16 : VOPC_Class_Profile_Base { let IsTrue16 = 1; + let DstRC = getVALUDstForVT_fake16.ret; + let DstRC64 = getVALUDstForVT.ret; + let Src0RC32 = getVOPSrc0ForVT.ret; let Src1RC32 = getVregSrcForVT.ret; let Src1RC64 = VSrc_b32; let Src0DPP = getVregSrcForVT.ret; let Src1DPP = getVregSrcForVT.ret; let Src2DPP = getVregSrcForVT.ret; - let Src0ModDPP = getSrcModDPP_t16.ret; - let Src1ModDPP = getSrcModDPP_t16.ret; - let Src2ModDPP = getSrcModDPP_t16.ret; + let Src0ModDPP = getSrcModDPP_t16.ret; + let Src1ModDPP = getSrcModDPP_t16.ret; + let Src2ModDPP = getSrcModDPP_t16.ret; + let Src0VOP3DPP = VGPRSrc_32; + let Src1VOP3DPP = getVOP3DPPSrcForVT.ret; + let Src2VOP3DPP = getVOP3DPPSrcForVT.ret; + let Src0ModVOP3DPP = getSrc0ModVOP3DPP.ret; + let Src1ModVOP3DPP = getSrcModVOP3DPP.ret; + let Src2ModVOP3DPP = getSrcModVOP3DPP.ret; } } @@ -889,17 +903,34 @@ multiclass VOPC_Class_NoSdst_Profile_t16 sched> { } } -class getVOPCClassPat64 { - list ret = - [(set i1:$sdst, +multiclass VOPCClassPat64 { + defvar inst = !cast(inst_name#"_e64"); + defvar P = inst.Pfl; + def : GCNPat < + (i1:$sdst (AMDGPUfp_class (P.Src0VT (VOP3ModsNonCanonicalizing P.Src0VT:$src0, i32:$src0_modifiers)), - i32:$src1))]; + P.Src1VT:$src1)), + (inst i32:$src0_modifiers, P.Src0VT:$src0, P.Src1VT:$src1) + >; } +multiclass VOPCClassPat64_fake16 { + defvar inst = !cast(inst_name#"_fake16_e64"); + defvar P = inst.Pfl; + def : GCNPat < + (i1:$sdst + (AMDGPUfp_class + (P.Src0VT (VOP3ModsNonCanonicalizing P.Src0VT:$src0, i32:$src0_modifiers)), + i32:$src1)), + (inst i32:$src0_modifiers, P.Src0VT:$src0, + 0 /*src1_modifiers*/, VGPR_32:$src1) + >; +} -// Special case for class instructions which only have modifiers on -// the 1st source operand. +// cmp_class ignores the FP mode and faithfully reports the unmodified +// source value. +let ReadsModeReg = 0, mayRaiseFPException = 0 in { multiclass VOPC_Class_Pseudos { def _e32 : VOPC_Pseudo , @@ -910,7 +941,7 @@ multiclass VOPC_Class_Pseudos .ret>, + def _e64 : VOP3_Pseudo, VCMPXNoSDstTable<1, opName#"_e64"> { let Defs = !if(DefExec, [EXEC], []); let SchedRW = p.Schedule; @@ -957,7 +988,7 @@ multiclass VOPCX_Class_Pseudos , + def _nosdst_e64 : VOP3_Pseudo, VCMPXNoSDstTable<0, opName#"_e64"> { let Defs = [EXEC]; let SchedRW = P_NoSDst.Schedule; @@ -990,6 +1021,7 @@ multiclass VOPCX_Class_Pseudos ; def VOPC_I1_F32_I32 : VOPC_Class_Profile<[Write32Bit], f32>; @@ -1002,12 +1034,14 @@ def VOPC_F64_I32 : VOPC_Class_NoSdst_Profile<[Write64Bit], f64>; multiclass VOPC_CLASS_F16 { let OtherPredicates = [Has16BitInsts], True16Predicate = NotHasTrue16BitInsts in { defm NAME : VOPC_Class_Pseudos ; + defm : VOPCClassPat64; } - let OtherPredicates = [UseRealTrue16Insts] in { + let True16Predicate = UseRealTrue16Insts in { defm _t16 : VOPC_Class_Pseudos ; } - let OtherPredicates = [UseFakeTrue16Insts] in { + let True16Predicate = UseFakeTrue16Insts in { defm _fake16 : VOPC_Class_Pseudos ; + defm : VOPCClassPat64_fake16; } } @@ -1023,21 +1057,22 @@ multiclass VOPCX_CLASS_F16 { } } -multiclass VOPC_CLASS_F32 : - VOPC_Class_Pseudos ; +multiclass VOPC_CLASS_F32 { + defm NAME : VOPC_Class_Pseudos ; + defm : VOPCClassPat64; +} multiclass VOPCX_CLASS_F32 : VOPCX_Class_Pseudos ; -multiclass VOPC_CLASS_F64 : - VOPC_Class_Pseudos ; +multiclass VOPC_CLASS_F64 { + defm NAME : VOPC_Class_Pseudos ; + defm : VOPCClassPat64; +} multiclass VOPCX_CLASS_F64 : VOPCX_Class_Pseudos ; -// cmp_class ignores the FP mode and faithfully reports the unmodified -// source value. -let ReadsModeReg = 0, mayRaiseFPException = 0 in { defm V_CMP_CLASS_F32 : VOPC_CLASS_F32 <"v_cmp_class_f32">; defm V_CMPX_CLASS_F32 : VOPCX_CLASS_F32 <"v_cmpx_class_f32">; defm V_CMP_CLASS_F64 : VOPC_CLASS_F64 <"v_cmp_class_f64">; @@ -1045,7 +1080,6 @@ defm V_CMPX_CLASS_F64 : VOPCX_CLASS_F64 <"v_cmpx_class_f64">; defm V_CMP_CLASS_F16 : VOPC_CLASS_F16 <"v_cmp_class_f16">; defm V_CMPX_CLASS_F16 : VOPCX_CLASS_F16 <"v_cmpx_class_f16">; -} // End ReadsModeReg = 0, mayRaiseFPException = 0 //===----------------------------------------------------------------------===// // V_ICMPIntrinsic Pattern. @@ -1283,6 +1317,7 @@ class VOPC_DPP16 op, VOP_DPP_Pseudo ps, string opName = ps.OpName> : VOPC_DPP_Base { let AssemblerPredicate = HasDPP16; let SubtargetPredicate = HasDPP16; + let True16Predicate = ps.True16Predicate; let hasSideEffects = ps.hasSideEffects; let Defs = ps.Defs; let SchedRW = ps.SchedRW; @@ -1303,6 +1338,7 @@ class VOPC_DPP8 op, VOPC_Pseudo ps, string opName = ps.OpName> let SchedRW = ps.SchedRW; let Uses = ps.Uses; let OtherPredicates = ps.OtherPredicates; + let True16Predicate = ps.True16Predicate; let Constraints = ""; } @@ -1333,6 +1369,7 @@ class VOPC64_DPP16 op, VOP_DPP_Pseudo ps, string opName = ps.OpName> : VOPC64_DPP_Base { let AssemblerPredicate = HasDPP16; let SubtargetPredicate = HasDPP16; + let True16Predicate = ps.True16Predicate; let hasSideEffects = ps.hasSideEffects; let Defs = ps.Defs; let SchedRW = ps.SchedRW; @@ -1375,6 +1412,7 @@ class VOPC64_DPP8 op, VOP_Pseudo ps, string opName = ps.OpName> let SchedRW = ps.SchedRW; let Uses = ps.Uses; let OtherPredicates = ps.OtherPredicates; + let True16Predicate = ps.True16Predicate; } class VOPC64_DPP8_Dst op, VOP_Pseudo ps, string opName = ps.OpName> diff --git a/llvm/lib/Target/AMDGPU/VOPInstructions.td b/llvm/lib/Target/AMDGPU/VOPInstructions.td index a6e6adac04e5a..0e19696a32f86 100644 --- a/llvm/lib/Target/AMDGPU/VOPInstructions.td +++ b/llvm/lib/Target/AMDGPU/VOPInstructions.td @@ -324,6 +324,18 @@ class VOP3OpSel_gfx9 op, VOPProfile P> : VOP3e_vi { let Inst{14} = !if(P.HasDst, src0_modifiers{3}, 0); } +// Special case for v_permlane16_swap_b32/v_permlane32_swap_b32 +// op_sel[0]/op_sel[1] are treated as bound_ctrl and fi dpp operands. +class VOP3OpSelIsDPP_gfx9 op, VOPProfile P> : VOP3e_vi { + bits<1> fi; + bits<1> bound_ctrl; + + // OPSEL[0] specifies FI + let Inst{11} = fi; + // OPSEL[1] specifies BOUND_CTRL + let Inst{12} = bound_ctrl; +} + class VOP3OpSel_gfx10 op, VOPProfile p> : VOP3e_gfx10 { let Inst{11} = !if(p.HasSrc0, src0_modifiers{2}, 0); let Inst{12} = !if(p.HasSrc1, src1_modifiers{2}, 0); @@ -448,7 +460,7 @@ class VOP3Pe op, VOPProfile P> : Enc64 { let Inst{63} = !if(P.HasSrc2Mods, src2_modifiers{0}, 0); // neg (lo) } -class VOP3Pe_MAI op, VOPProfile P, bit acc_cd = 0> : Enc64 { +class VOP3Pe_MAI_Base { bits<8> vdst; bits<10> src0; bits<10> src1; @@ -456,11 +468,13 @@ class VOP3Pe_MAI op, VOPProfile P, bit acc_cd = 0> : Enc64 { bits<3> blgp; bits<3> cbsz; bits<4> abid; +} +class VOP3Pe_MAI op, VOPProfile P, bit acc_cd = 0> : Enc64, VOP3Pe_MAI_Base { let Inst{7-0} = vdst; let Inst{10-8} = !if(P.HasSrc1, cbsz, 0); - let Inst{14-11} = !if(P.HasSrc1, abid, 0); + let Inst{14-11} = !if(P.HasAbid, abid, 0); let Inst{15} = acc_cd; @@ -506,6 +520,59 @@ class VOP3Pe_SMFMAC op> : Enc64 { let Inst{63-61} = blgp; } +class VOP3PXe op, VOPProfile MFMAPfl, bit acc_cd = 0> : Enc128, VOP3Pe_MAI_Base { + bits<9> scale_src0; + bits<9> scale_src1; + + bits<2> scale_src0_opsel; + bits<2> scale_src1_opsel; + + // Inst{7-0} = unused + // Inst{10-8} = neg_hi; + // Inst{13-11} = op_sel + let Inst{11} = scale_src0_opsel{0}; + let Inst{12} = scale_src1_opsel{0}; + // Inst{13} = unused op_sel + // Inst{14} = unused op_sel_hi2 + + let Inst{31-16} = 0b1101001110101100; + let Inst{40-32} = scale_src0; + let Inst{49-41} = scale_src1; + // Inst{50-58} = unused + // Inst{60-59} = op_sel_hi; + let Inst{59} = scale_src0_opsel{1}; + let Inst{60} = scale_src1_opsel{1}; + // Inst{63-61} = neg; + + // The high half of the encoding is the unscaled mfma op. + // + // FIXME: Defining the encoding in terms of the base instruction + // seems to not work, results in all 0 encoding, so replicate all + // the fields from VOP3Pe_MAI, shifted up by 64 + // + // defvar Hi = VOP3Pe_MAI; + // let Inst{127-64} = Hi.Inst; + + let Inst{71-64} = vdst; + let Inst{74-72} = !if(MFMAPfl.HasSrc1, cbsz, 0); + + // abid must be 1 to use a scale. + let Inst{78-75} = 0b0001; // abid + + let Inst{79} = acc_cd; + + let Inst{86-80} = op; + let Inst{95-87} = 0x1a7; //encoding + let Inst{104-96} = !if(MFMAPfl.HasSrc0, src0{8-0}, 0); + let Inst{113-105} = !if(MFMAPfl.HasSrc1, src1{8-0}, 0); + let Inst{122-114} = !if(MFMAPfl.HasSrc2, src2, 0); + + let Inst{123} = !if(MFMAPfl.HasSrc0, src0{9}, 0); // acc(0) + let Inst{124} = !if(MFMAPfl.HasSrc1, src1{9}, 0); // acc(1) + + let Inst{127-125} = !if(MFMAPfl.HasSrc1, blgp, 0); +} + class VOP3Pe_gfx10 op, VOPProfile P> : VOP3Pe { let Inst{31-23} = 0x198; //encoding } @@ -1343,15 +1410,39 @@ class getVOP3ClampPat { } class getVOP3MAIPat { - list ret = !if(!eq(P.Src0VT, P.Src1VT), + list mfma_with_abid = [(set P.DstVT:$vdst, (node P.Src0VT:$src0, P.Src1VT:$src1, P.Src2VT:$src2, + timm:$cbsz, timm:$abid, timm:$blgp))]; + list mfma_no_abid = [(set P.DstVT:$vdst, (node P.Src0VT:$src0, P.Src1VT:$src1, P.Src2VT:$src2, + timm:$cbsz, timm:$blgp))]; + + list ret = !if(!not(P.IsSMFMAC), // mfma - [(set P.DstVT:$vdst, (node P.Src0VT:$src0, P.Src1VT:$src1, P.Src2VT:$src2, - timm:$cbsz, timm:$abid, timm:$blgp))], + !if(P.HasAbid, mfma_with_abid, mfma_no_abid), + // smfmac [(set P.DstVT:$vdst, (node P.Src0VT:$src0, P.Src1VT:$src1, P.Src2VT:$src2, i32:$idx, timm:$cbsz, timm:$abid))]); } +class getVOP3MAIScaledPat { + list ret = !if(!not(P.IsSMFMAC), + // mfma + [(set P.DstVT:$vdst, (node P.Src0VT:$src0, P.Src1VT:$src1, P.Src2VT:$src2, + timm:$cbsz, timm:$blgp, + MFMALdScaleModifierOp:$scale_src0_opsel, + i32:$scale_src0, + MFMALdScaleModifierOp:$scale_src1_opsel, + i32:$scale_src1 + ))], + // smfmac + [(set P.DstVT:$vdst, (node P.Src0VT:$src0, P.Src1VT:$src1, P.Src2VT:$src2, i32:$idx, + timm:$cbsz, timm:$abid, + MFMALdScaleModifierOp:$scale_src0_opsel, + i32:$scale_src0, + MFMALdScaleModifierOp:$scale_src1_opsel, + i32:$scale_src1))]); +} + class VOP3Features { bit HasClamp = Clamp; bit HasOpSel = OpSel; @@ -1364,6 +1455,7 @@ def VOP3_CLAMP : VOP3Features<1, 0, 0, 0>; def VOP3_OPSEL : VOP3Features<1, 1, 0, 0>; def VOP3_PACKED : VOP3Features<1, 1, 1, 0>; def VOP3_MAI : VOP3Features<0, 0, 0, 1>; +def VOP3_OPSEL_ONLY : VOP3Features<0, 1, 0, 0>; // Packed is misleading, but it enables the appropriate op_sel // modifiers. @@ -1415,7 +1507,7 @@ multiclass VOP3Inst_Pseudo_Wrapper patter def _e64 : VOP3_Pseudo; } -class VOP3InstBase : +class VOP3InstBase : VOP3_Pseudo.ret, !if (P.IsMAI, - getVOP3MAIPat.ret, + !if(MAIScaled, getVOP3MAIScaledPat.ret, getVOP3MAIPat.ret), getVOP3Pat.ret))))), 0, P.HasOpSel> { @@ -1879,12 +1971,18 @@ class ClassPat : GCNPat < (inst i32:$src0_mods, vt:$src0, (V_MOV_B32_e32 timm:$mask)) >; +class ClassPat_t16 : GCNPat < + (is_fpclass (vt (VOP3ModsNonCanonicalizing vt:$src0, i32:$src0_mods)), (i32 timm:$mask)), + (inst i32:$src0_mods, vt:$src0, SRCMODS.NONE, (V_MOV_B32_e32 timm:$mask)) +>; + def : ClassPat { - let OtherPredicates = [NotHasTrue16BitInsts, Has16BitInsts]; + let OtherPredicates = [Has16BitInsts]; + let True16Predicate = NotHasTrue16BitInsts; } -def : ClassPat { - let OtherPredicates = [HasTrue16BitInsts]; +def : ClassPat_t16 { + let True16Predicate = UseFakeTrue16Insts; } def : ClassPat; diff --git a/llvm/lib/Target/ARC/ARCInstrInfo.td b/llvm/lib/Target/ARC/ARCInstrInfo.td index 693bc8a78bc5b..f26b49119caba 100644 --- a/llvm/lib/Target/ARC/ARCInstrInfo.td +++ b/llvm/lib/Target/ARC/ARCInstrInfo.td @@ -55,8 +55,7 @@ def ARCcmp : SDNode<"ARCISD::CMP", SDT_ARCcmptst, [SDNPOutGlue]>; def ARCcmov : SDNode<"ARCISD::CMOV", SDT_ARCcmov, [SDNPInGlue]>; // Conditional Branch -def ARCbrcc : SDNode<"ARCISD::BRcc", SDT_ARCbrcc, - [SDNPHasChain, SDNPInGlue, SDNPOutGlue]>; +def ARCbrcc : SDNode<"ARCISD::BRcc", SDT_ARCbrcc, [SDNPHasChain]>; // Direct Call def ARCBranchLink : SDNode<"ARCISD::BL",SDT_ARCBranchLink, diff --git a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp index aad305cce0396..a1f068f0e049b 100644 --- a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp @@ -299,6 +299,8 @@ const TargetRegisterClass * ARMBaseRegisterInfo::getCrossCopyRegClass(const TargetRegisterClass *RC) const { if (RC == &ARM::CCRRegClass) return &ARM::rGPRRegClass; // Can't copy CCR registers. + if (RC == &ARM::cl_FPSCR_NZCVRegClass) + return &ARM::rGPRRegClass; return RC; } diff --git a/llvm/lib/Target/AVR/AVRISelLowering.cpp b/llvm/lib/Target/AVR/AVRISelLowering.cpp index e01ed133c3e36..07c79f6f227b0 100644 --- a/llvm/lib/Target/AVR/AVRISelLowering.cpp +++ b/llvm/lib/Target/AVR/AVRISelLowering.cpp @@ -412,24 +412,20 @@ SDValue AVRTargetLowering::LowerShifts(SDValue Op, SelectionDAG &DAG) const { } else if (Op.getOpcode() == ISD::ROTL && ShiftAmount == 3) { // Optimize left rotation 3 bits to swap then right rotation 1 bit. Victim = DAG.getNode(AVRISD::SWAP, dl, VT, Victim); - Victim = - DAG.getNode(AVRISD::ROR, dl, VT, Victim, DAG.getConstant(1, dl, VT)); + Victim = DAG.getNode(AVRISD::ROR, dl, VT, Victim); ShiftAmount = 0; } else if (Op.getOpcode() == ISD::ROTR && ShiftAmount == 3) { // Optimize right rotation 3 bits to swap then left rotation 1 bit. Victim = DAG.getNode(AVRISD::SWAP, dl, VT, Victim); - Victim = - DAG.getNode(AVRISD::ROL, dl, VT, Victim, DAG.getConstant(1, dl, VT)); + Victim = DAG.getNode(AVRISD::ROL, dl, VT, Victim); ShiftAmount = 0; } else if (Op.getOpcode() == ISD::ROTL && ShiftAmount == 7) { // Optimize left rotation 7 bits to right rotation 1 bit. - Victim = - DAG.getNode(AVRISD::ROR, dl, VT, Victim, DAG.getConstant(1, dl, VT)); + Victim = DAG.getNode(AVRISD::ROR, dl, VT, Victim); ShiftAmount = 0; } else if (Op.getOpcode() == ISD::ROTR && ShiftAmount == 7) { // Optimize right rotation 7 bits to left rotation 1 bit. - Victim = - DAG.getNode(AVRISD::ROL, dl, VT, Victim, DAG.getConstant(1, dl, VT)); + Victim = DAG.getNode(AVRISD::ROL, dl, VT, Victim); ShiftAmount = 0; } else if ((Op.getOpcode() == ISD::ROTR || Op.getOpcode() == ISD::ROTL) && ShiftAmount >= 4) { @@ -890,10 +886,9 @@ SDValue AVRTargetLowering::LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) const { SDValue TargetCC; SDValue Cmp = getAVRCmp(LHS, RHS, CC, TargetCC, DAG, dl); - SDVTList VTs = DAG.getVTList(Op.getValueType(), MVT::Glue); SDValue Ops[] = {TrueV, FalseV, TargetCC, Cmp}; - return DAG.getNode(AVRISD::SELECT_CC, dl, VTs, Ops); + return DAG.getNode(AVRISD::SELECT_CC, dl, Op.getValueType(), Ops); } SDValue AVRTargetLowering::LowerSETCC(SDValue Op, SelectionDAG &DAG) const { @@ -907,10 +902,9 @@ SDValue AVRTargetLowering::LowerSETCC(SDValue Op, SelectionDAG &DAG) const { SDValue TrueV = DAG.getConstant(1, DL, Op.getValueType()); SDValue FalseV = DAG.getConstant(0, DL, Op.getValueType()); - SDVTList VTs = DAG.getVTList(Op.getValueType(), MVT::Glue); SDValue Ops[] = {TrueV, FalseV, TargetCC, Cmp}; - return DAG.getNode(AVRISD::SELECT_CC, DL, VTs, Ops); + return DAG.getNode(AVRISD::SELECT_CC, DL, Op.getValueType(), Ops); } SDValue AVRTargetLowering::LowerVASTART(SDValue Op, SelectionDAG &DAG) const { @@ -1111,7 +1105,7 @@ bool AVRTargetLowering::getPreIndexedAddressParts(SDNode *N, SDValue &Base, } Base = Op->getOperand(0); - Offset = DAG.getConstant(RHSC, DL, MVT::i8); + Offset = DAG.getSignedConstant(RHSC, DL, MVT::i8); AM = ISD::PRE_DEC; return true; diff --git a/llvm/lib/Target/AVR/AVRInstrInfo.td b/llvm/lib/Target/AVR/AVRInstrInfo.td index e912878e9b23c..3973cd30de1ec 100644 --- a/llvm/lib/Target/AVR/AVRInstrInfo.td +++ b/llvm/lib/Target/AVR/AVRInstrInfo.td @@ -69,9 +69,9 @@ def AVRasrbn : SDNode<"AVRISD::ASRBN", SDTIntBinOp>; def AVRlslwn : SDNode<"AVRISD::LSLWN", SDTIntBinOp>; def AVRlsrwn : SDNode<"AVRISD::LSRWN", SDTIntBinOp>; def AVRasrwn : SDNode<"AVRISD::ASRWN", SDTIntBinOp>; -def AVRlslw : SDNode<"AVRISD::LSLW", SDTIntShiftDOp>; -def AVRlsrw : SDNode<"AVRISD::LSRW", SDTIntShiftDOp>; -def AVRasrw : SDNode<"AVRISD::ASRW", SDTIntShiftDOp>; +def AVRlslw : SDNode<"AVRISD::LSLW", SDTIntShiftPairOp>; +def AVRlsrw : SDNode<"AVRISD::LSRW", SDTIntShiftPairOp>; +def AVRasrw : SDNode<"AVRISD::ASRW", SDTIntShiftPairOp>; // Pseudo shift nodes for non-constant shift amounts. def AVRlslLoop : SDNode<"AVRISD::LSLLOOP", SDTIntShiftOp>; diff --git a/llvm/lib/Target/BPF/BPFISelLowering.cpp b/llvm/lib/Target/BPF/BPFISelLowering.cpp index da639903764e7..1f5cadf37ab58 100644 --- a/llvm/lib/Target/BPF/BPFISelLowering.cpp +++ b/llvm/lib/Target/BPF/BPFISelLowering.cpp @@ -696,10 +696,9 @@ SDValue BPFTargetLowering::LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) const { NegateCC(LHS, RHS, CC); SDValue TargetCC = DAG.getConstant(CC, DL, LHS.getValueType()); - SDVTList VTs = DAG.getVTList(Op.getValueType(), MVT::Glue); SDValue Ops[] = {LHS, RHS, TargetCC, TrueV, FalseV}; - return DAG.getNode(BPFISD::SELECT_CC, DL, VTs, Ops); + return DAG.getNode(BPFISD::SELECT_CC, DL, Op.getValueType(), Ops); } const char *BPFTargetLowering::getTargetNodeName(unsigned Opcode) const { diff --git a/llvm/lib/Target/BPF/BPFInstrInfo.td b/llvm/lib/Target/BPF/BPFInstrInfo.td index 62d6e25f83b59..86929a952d1ba 100644 --- a/llvm/lib/Target/BPF/BPFInstrInfo.td +++ b/llvm/lib/Target/BPF/BPFInstrInfo.td @@ -44,7 +44,7 @@ def BPFcallseq_end : SDNode<"ISD::CALLSEQ_END", SDT_BPFCallSeqEnd, def BPFbrcc : SDNode<"BPFISD::BR_CC", SDT_BPFBrCC, [SDNPHasChain, SDNPOutGlue, SDNPInGlue]>; -def BPFselectcc : SDNode<"BPFISD::SELECT_CC", SDT_BPFSelectCC, [SDNPInGlue]>; +def BPFselectcc : SDNode<"BPFISD::SELECT_CC", SDT_BPFSelectCC>; def BPFWrapper : SDNode<"BPFISD::Wrapper", SDT_BPFWrapper>; def BPFmemcpy : SDNode<"BPFISD::MEMCPY", SDT_BPFMEMCPY, [SDNPHasChain, SDNPInGlue, SDNPOutGlue, diff --git a/llvm/lib/Target/DirectX/DXContainerGlobals.cpp b/llvm/lib/Target/DirectX/DXContainerGlobals.cpp index 2c11373504e8c..aaf994b23cf3c 100644 --- a/llvm/lib/Target/DirectX/DXContainerGlobals.cpp +++ b/llvm/lib/Target/DirectX/DXContainerGlobals.cpp @@ -78,13 +78,13 @@ bool DXContainerGlobals::runOnModule(Module &M) { } GlobalVariable *DXContainerGlobals::getFeatureFlags(Module &M) { - const uint64_t FeatureFlags = - static_cast(getAnalysis() - .getShaderFlags() - .getFeatureFlags()); + uint64_t CombinedFeatureFlags = getAnalysis() + .getShaderFlags() + .getCombinedFlags() + .getFeatureFlags(); Constant *FeatureFlagsConstant = - ConstantInt::get(M.getContext(), APInt(64, FeatureFlags)); + ConstantInt::get(M.getContext(), APInt(64, CombinedFeatureFlags)); return buildContainerGlobal(M, FeatureFlagsConstant, "dx.sfi0", "SFI0"); } diff --git a/llvm/lib/Target/DirectX/DXIL.td b/llvm/lib/Target/DirectX/DXIL.td index 1a8e110491cc8..7cc08b2fe7cc4 100644 --- a/llvm/lib/Target/DirectX/DXIL.td +++ b/llvm/lib/Target/DirectX/DXIL.td @@ -818,6 +818,15 @@ def FlattenedThreadIdInGroup : DXILOp<96, flattenedThreadIdInGroup> { let attributes = [Attributes]; } +def MakeDouble : DXILOp<101, makeDouble> { + let Doc = "creates a double value"; + let LLVMIntrinsic = int_dx_asdouble; + let arguments = [Int32Ty, Int32Ty]; + let result = DoubleTy; + let stages = [Stages]; + let attributes = [Attributes]; +} + def SplitDouble : DXILOp<102, splitDouble> { let Doc = "Splits a double into 2 uints"; let arguments = [OverloadTy]; @@ -861,6 +870,14 @@ def CreateHandleFromBinding : DXILOp<217, createHandleFromBinding> { let stages = [Stages]; } +def WaveActiveAnyTrue : DXILOp<113, waveAnyTrue> { + let Doc = "returns true if the expression is true in any of the active lanes in the current wave"; + let LLVMIntrinsic = int_dx_wave_any; + let arguments = [Int1Ty]; + let result = Int1Ty; + let stages = [Stages]; +} + def WaveIsFirstLane : DXILOp<110, waveIsFirstLane> { let Doc = "returns 1 for the first lane in the wave"; let LLVMIntrinsic = int_dx_wave_is_first_lane; diff --git a/llvm/lib/Target/DirectX/DXILOpLowering.cpp b/llvm/lib/Target/DirectX/DXILOpLowering.cpp index 9f124394363a3..b5cc209493ed1 100644 --- a/llvm/lib/Target/DirectX/DXILOpLowering.cpp +++ b/llvm/lib/Target/DirectX/DXILOpLowering.cpp @@ -236,9 +236,14 @@ class OpLowerer { dxil::ResourceInfo &RI = *It; const auto &Binding = RI.getBinding(); + Value *IndexOp = CI->getArgOperand(3); + if (Binding.LowerBound != 0) + IndexOp = IRB.CreateAdd(IndexOp, + ConstantInt::get(Int32Ty, Binding.LowerBound)); + std::array Args{ ConstantInt::get(Int8Ty, llvm::to_underlying(RI.getResourceClass())), - ConstantInt::get(Int32Ty, Binding.RecordID), CI->getArgOperand(3), + ConstantInt::get(Int32Ty, Binding.RecordID), IndexOp, CI->getArgOperand(4)}; Expected OpCall = OpBuilder.tryCreateOp(OpCode::CreateHandle, Args, CI->getName()); @@ -257,6 +262,7 @@ class OpLowerer { [[nodiscard]] bool lowerToBindAndAnnotateHandle(Function &F) { IRBuilder<> &IRB = OpBuilder.getIRB(); + Type *Int32Ty = IRB.getInt32Ty(); return replaceFunction(F, [&](CallInst *CI) -> Error { IRB.SetInsertPoint(CI); @@ -266,6 +272,12 @@ class OpLowerer { dxil::ResourceInfo &RI = *It; const auto &Binding = RI.getBinding(); + + Value *IndexOp = CI->getArgOperand(3); + if (Binding.LowerBound != 0) + IndexOp = IRB.CreateAdd(IndexOp, + ConstantInt::get(Int32Ty, Binding.LowerBound)); + std::pair Props = RI.getAnnotateProps(); // For `CreateHandleFromBinding` we need the upper bound rather than the @@ -276,8 +288,7 @@ class OpLowerer { : Binding.LowerBound + Binding.Size - 1; Constant *ResBind = OpBuilder.getResBind( Binding.LowerBound, UpperBound, Binding.Space, RI.getResourceClass()); - std::array BindArgs{ResBind, CI->getArgOperand(3), - CI->getArgOperand(4)}; + std::array BindArgs{ResBind, IndexOp, CI->getArgOperand(4)}; Expected OpBind = OpBuilder.tryCreateOp( OpCode::CreateHandleFromBinding, BindArgs, CI->getName()); if (Error E = OpBind.takeError()) @@ -647,7 +658,7 @@ class OpLowerer { case Intrinsic::dx_typedBufferStore: HasErrors |= lowerTypedBufferStore(F); break; - case Intrinsic::dx_updateCounter: + case Intrinsic::dx_bufferUpdateCounter: HasErrors |= lowerUpdateCounter(F); break; // TODO: this can be removed when diff --git a/llvm/lib/Target/DirectX/DXILShaderFlags.cpp b/llvm/lib/Target/DirectX/DXILShaderFlags.cpp index 9fa137b4c025e..d6917dce98abd 100644 --- a/llvm/lib/Target/DirectX/DXILShaderFlags.cpp +++ b/llvm/lib/Target/DirectX/DXILShaderFlags.cpp @@ -13,36 +13,54 @@ #include "DXILShaderFlags.h" #include "DirectX.h" +#include "llvm/ADT/STLExtras.h" #include "llvm/IR/Instruction.h" #include "llvm/IR/Module.h" #include "llvm/Support/FormatVariadic.h" +#include "llvm/Support/raw_ostream.h" using namespace llvm; using namespace llvm::dxil; -static void updateFlags(ComputedShaderFlags &Flags, const Instruction &I) { - Type *Ty = I.getType(); - if (Ty->isDoubleTy()) { - Flags.Doubles = true; +static void updateFunctionFlags(ComputedShaderFlags &CSF, + const Instruction &I) { + if (!CSF.Doubles) + CSF.Doubles = I.getType()->isDoubleTy(); + + if (!CSF.Doubles) { + for (Value *Op : I.operands()) + CSF.Doubles |= Op->getType()->isDoubleTy(); + } + if (CSF.Doubles) { switch (I.getOpcode()) { case Instruction::FDiv: case Instruction::UIToFP: case Instruction::SIToFP: case Instruction::FPToUI: case Instruction::FPToSI: - Flags.DX11_1_DoubleExtensions = true; + // TODO: To be set if I is a call to DXIL intrinsic DXIL::Opcode::Fma + // https://github.com/llvm/llvm-project/issues/114554 + CSF.DX11_1_DoubleExtensions = true; break; } } } -ComputedShaderFlags ComputedShaderFlags::computeFlags(Module &M) { - ComputedShaderFlags Flags; - for (const auto &F : M) +void ModuleShaderFlags::initialize(const Module &M) { + // Collect shader flags for each of the functions + for (const auto &F : M.getFunctionList()) { + if (F.isDeclaration()) + continue; + ComputedShaderFlags CSF; for (const auto &BB : F) for (const auto &I : BB) - updateFlags(Flags, I); - return Flags; + updateFunctionFlags(CSF, I); + // Insert shader flag mask for function F + FunctionFlags.push_back({&F, CSF}); + // Update combined shader flags mask + CombinedSFMask.merge(CSF); + } + llvm::sort(FunctionFlags); } void ComputedShaderFlags::print(raw_ostream &OS) const { @@ -63,20 +81,58 @@ void ComputedShaderFlags::print(raw_ostream &OS) const { OS << ";\n"; } +/// Return the shader flags mask of the specified function Func. +const ComputedShaderFlags & +ModuleShaderFlags::getFunctionFlags(const Function *Func) const { + const auto Iter = llvm::lower_bound( + FunctionFlags, Func, + [](const std::pair FSM, + const Function *FindFunc) { return (FSM.first < FindFunc); }); + assert((Iter != FunctionFlags.end() && Iter->first == Func) && + "No Shader Flags Mask exists for function"); + return Iter->second; +} + +//===----------------------------------------------------------------------===// +// ShaderFlagsAnalysis and ShaderFlagsAnalysisPrinterPass + +// Provide an explicit template instantiation for the static ID. AnalysisKey ShaderFlagsAnalysis::Key; -ComputedShaderFlags ShaderFlagsAnalysis::run(Module &M, - ModuleAnalysisManager &AM) { - return ComputedShaderFlags::computeFlags(M); +ModuleShaderFlags ShaderFlagsAnalysis::run(Module &M, + ModuleAnalysisManager &AM) { + ModuleShaderFlags MSFI; + MSFI.initialize(M); + return MSFI; } PreservedAnalyses ShaderFlagsAnalysisPrinter::run(Module &M, ModuleAnalysisManager &AM) { - ComputedShaderFlags Flags = AM.getResult(M); - Flags.print(OS); + const ModuleShaderFlags &FlagsInfo = AM.getResult(M); + // Print description of combined shader flags for all module functions + OS << "; Combined Shader Flags for Module\n"; + FlagsInfo.getCombinedFlags().print(OS); + // Print shader flags mask for each of the module functions + OS << "; Shader Flags for Module Functions\n"; + for (const auto &F : M.getFunctionList()) { + if (F.isDeclaration()) + continue; + auto SFMask = FlagsInfo.getFunctionFlags(&F); + OS << formatv("; Function {0} : {1:x8}\n;\n", F.getName(), + (uint64_t)(SFMask)); + } + return PreservedAnalyses::all(); } +//===----------------------------------------------------------------------===// +// ShaderFlagsAnalysis and ShaderFlagsAnalysisPrinterPass + +bool ShaderFlagsAnalysisWrapper::runOnModule(Module &M) { + MSFI.initialize(M); + return false; +} + char ShaderFlagsAnalysisWrapper::ID = 0; INITIALIZE_PASS(ShaderFlagsAnalysisWrapper, "dx-shader-flag-analysis", diff --git a/llvm/lib/Target/DirectX/DXILShaderFlags.h b/llvm/lib/Target/DirectX/DXILShaderFlags.h index 1df7d27de13d3..2d60137f8b191 100644 --- a/llvm/lib/Target/DirectX/DXILShaderFlags.h +++ b/llvm/lib/Target/DirectX/DXILShaderFlags.h @@ -14,12 +14,14 @@ #ifndef LLVM_TARGET_DIRECTX_DXILSHADERFLAGS_H #define LLVM_TARGET_DIRECTX_DXILSHADERFLAGS_H +#include "llvm/IR/Function.h" #include "llvm/IR/PassManager.h" #include "llvm/Pass.h" #include "llvm/Support/Compiler.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" #include +#include namespace llvm { class Module; @@ -43,15 +45,23 @@ struct ComputedShaderFlags { constexpr uint64_t getMask(int Bit) const { return Bit != -1 ? 1ull << Bit : 0; } + + uint64_t getModuleFlags() const { + uint64_t ModuleFlags = 0; +#define DXIL_MODULE_FLAG(DxilModuleBit, FlagName, Str) \ + ModuleFlags |= FlagName ? getMask(DxilModuleBit) : 0ull; +#include "llvm/BinaryFormat/DXContainerConstants.def" + return ModuleFlags; + } + operator uint64_t() const { - uint64_t FlagValue = 0; + uint64_t FlagValue = getModuleFlags(); #define SHADER_FEATURE_FLAG(FeatureBit, DxilModuleBit, FlagName, Str) \ FlagValue |= FlagName ? getMask(DxilModuleBit) : 0ull; -#define DXIL_MODULE_FLAG(DxilModuleBit, FlagName, Str) \ - FlagValue |= FlagName ? getMask(DxilModuleBit) : 0ull; #include "llvm/BinaryFormat/DXContainerConstants.def" return FlagValue; } + uint64_t getFeatureFlags() const { uint64_t FeatureFlags = 0; #define SHADER_FEATURE_FLAG(FeatureBit, DxilModuleBit, FlagName, Str) \ @@ -60,11 +70,33 @@ struct ComputedShaderFlags { return FeatureFlags; } - static ComputedShaderFlags computeFlags(Module &M); + void merge(const uint64_t IVal) { +#define SHADER_FEATURE_FLAG(FeatureBit, DxilModuleBit, FlagName, Str) \ + FlagName |= (IVal & getMask(DxilModuleBit)); +#define DXIL_MODULE_FLAG(DxilModuleBit, FlagName, Str) \ + FlagName |= (IVal & getMask(DxilModuleBit)); +#include "llvm/BinaryFormat/DXContainerConstants.def" + return; + } + void print(raw_ostream &OS = dbgs()) const; LLVM_DUMP_METHOD void dump() const { print(); } }; +struct ModuleShaderFlags { + void initialize(const Module &); + const ComputedShaderFlags &getFunctionFlags(const Function *) const; + const ComputedShaderFlags &getCombinedFlags() const { return CombinedSFMask; } + +private: + /// Vector of sorted Function-Shader Flag mask pairs representing properties + /// of each of the functions in the module. Shader Flags of each function + /// represent both module-level and function-level flags + SmallVector> FunctionFlags; + /// Combined Shader Flag Mask of all functions of the module + ComputedShaderFlags CombinedSFMask{}; +}; + class ShaderFlagsAnalysis : public AnalysisInfoMixin { friend AnalysisInfoMixin; static AnalysisKey Key; @@ -72,9 +104,9 @@ class ShaderFlagsAnalysis : public AnalysisInfoMixin { public: ShaderFlagsAnalysis() = default; - using Result = ComputedShaderFlags; + using Result = ModuleShaderFlags; - ComputedShaderFlags run(Module &M, ModuleAnalysisManager &AM); + ModuleShaderFlags run(Module &M, ModuleAnalysisManager &AM); }; /// Printer pass for ShaderFlagsAnalysis results. @@ -92,19 +124,16 @@ class ShaderFlagsAnalysisPrinter /// This is required because the passes that will depend on this are codegen /// passes which run through the legacy pass manager. class ShaderFlagsAnalysisWrapper : public ModulePass { - ComputedShaderFlags Flags; + ModuleShaderFlags MSFI; public: static char ID; ShaderFlagsAnalysisWrapper() : ModulePass(ID) {} - const ComputedShaderFlags &getShaderFlags() { return Flags; } + const ModuleShaderFlags &getShaderFlags() { return MSFI; } - bool runOnModule(Module &M) override { - Flags = ComputedShaderFlags::computeFlags(M); - return false; - } + bool runOnModule(Module &M) override; void getAnalysisUsage(AnalysisUsage &AU) const override { AU.setPreservesAll(); diff --git a/llvm/lib/Target/DirectX/DXILTranslateMetadata.cpp b/llvm/lib/Target/DirectX/DXILTranslateMetadata.cpp index be370e10df694..4ba10d123e8d2 100644 --- a/llvm/lib/Target/DirectX/DXILTranslateMetadata.cpp +++ b/llvm/lib/Target/DirectX/DXILTranslateMetadata.cpp @@ -286,11 +286,6 @@ static MDTuple *emitTopLevelLibraryNode(Module &M, MDNode *RMD, MDTuple *Properties = nullptr; if (ShaderFlags != 0) { SmallVector MDVals; - // FIXME: ShaderFlagsAnalysis pass needs to collect and provide - // ShaderFlags for each entry function. Currently, ShaderFlags value - // provided by ShaderFlagsAnalysis pass is created by walking *all* the - // function instructions of the module. Is it is correct to use this value - // for metadata of the empty library entry? MDVals.append( getTagValueAsMetadata(EntryPropsTag::ShaderFlags, ShaderFlags, Ctx)); Properties = MDNode::get(Ctx, MDVals); @@ -302,7 +297,7 @@ static MDTuple *emitTopLevelLibraryNode(Module &M, MDNode *RMD, static void translateMetadata(Module &M, const DXILResourceMap &DRM, const Resources &MDResources, - const ComputedShaderFlags &ShaderFlags, + const ModuleShaderFlags &ShaderFlags, const ModuleMetadataInfo &MMDI) { LLVMContext &Ctx = M.getContext(); IRBuilder<> IRB(Ctx); @@ -318,23 +313,27 @@ static void translateMetadata(Module &M, const DXILResourceMap &DRM, // See https://github.com/llvm/llvm-project/issues/57928 MDTuple *Signatures = nullptr; - if (MMDI.ShaderProfile == Triple::EnvironmentType::Library) + if (MMDI.ShaderProfile == Triple::EnvironmentType::Library) { + // Get the combined shader flag mask of all functions in the library to be + // used as shader flags mask value associated with top-level library entry + // metadata. + uint64_t CombinedMask = ShaderFlags.getCombinedFlags(); EntryFnMDNodes.emplace_back( - emitTopLevelLibraryNode(M, ResourceMD, ShaderFlags)); - else if (MMDI.EntryPropertyVec.size() > 1) { + emitTopLevelLibraryNode(M, ResourceMD, CombinedMask)); + } else if (MMDI.EntryPropertyVec.size() > 1) { M.getContext().diagnose(DiagnosticInfoTranslateMD( M, "Non-library shader: One and only one entry expected")); } for (const EntryProperties &EntryProp : MMDI.EntryPropertyVec) { - // FIXME: ShaderFlagsAnalysis pass needs to collect and provide - // ShaderFlags for each entry function. For now, assume shader flags value - // of entry functions being compiled for lib_* shader profile viz., - // EntryPro.Entry is 0. - uint64_t EntryShaderFlags = - (MMDI.ShaderProfile == Triple::EnvironmentType::Library) ? 0 - : ShaderFlags; + const ComputedShaderFlags &EntrySFMask = + ShaderFlags.getFunctionFlags(EntryProp.Entry); + + // If ShaderProfile is Library, mask is already consolidated in the + // top-level library node. Hence it is not emitted. + uint64_t EntryShaderFlags = 0; if (MMDI.ShaderProfile != Triple::EnvironmentType::Library) { + EntryShaderFlags = EntrySFMask; if (EntryProp.ShaderStage != MMDI.ShaderProfile) { M.getContext().diagnose(DiagnosticInfoTranslateMD( M, @@ -361,8 +360,7 @@ PreservedAnalyses DXILTranslateMetadata::run(Module &M, ModuleAnalysisManager &MAM) { const DXILResourceMap &DRM = MAM.getResult(M); const dxil::Resources &MDResources = MAM.getResult(M); - const ComputedShaderFlags &ShaderFlags = - MAM.getResult(M); + const ModuleShaderFlags &ShaderFlags = MAM.getResult(M); const dxil::ModuleMetadataInfo MMDI = MAM.getResult(M); translateMetadata(M, DRM, MDResources, ShaderFlags, MMDI); @@ -393,7 +391,7 @@ class DXILTranslateMetadataLegacy : public ModulePass { getAnalysis().getResourceMap(); const dxil::Resources &MDResources = getAnalysis().getDXILResource(); - const ComputedShaderFlags &ShaderFlags = + const ModuleShaderFlags &ShaderFlags = getAnalysis().getShaderFlags(); dxil::ModuleMetadataInfo MMDI = getAnalysis().getModuleMetadata(); diff --git a/llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp b/llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp index b0436a3942340..2ca4e23594d56 100644 --- a/llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp +++ b/llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp @@ -25,12 +25,23 @@ bool DirectXTTIImpl::isTargetIntrinsicWithScalarOpAtArg(Intrinsic::ID ID, } } +bool DirectXTTIImpl::isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, + int ScalarOpdIdx) { + switch (ID) { + case Intrinsic::dx_asdouble: + return ScalarOpdIdx == 0; + default: + return ScalarOpdIdx == -1; + } +} + bool DirectXTTIImpl::isTargetIntrinsicTriviallyScalarizable( Intrinsic::ID ID) const { switch (ID) { case Intrinsic::dx_frac: case Intrinsic::dx_rsqrt: case Intrinsic::dx_wave_readlane: + case Intrinsic::dx_asdouble: case Intrinsic::dx_splitdouble: case Intrinsic::dx_firstbituhigh: case Intrinsic::dx_firstbitshigh: diff --git a/llvm/lib/Target/DirectX/DirectXTargetTransformInfo.h b/llvm/lib/Target/DirectX/DirectXTargetTransformInfo.h index 30b57ed97d637..a18e4a2862575 100644 --- a/llvm/lib/Target/DirectX/DirectXTargetTransformInfo.h +++ b/llvm/lib/Target/DirectX/DirectXTargetTransformInfo.h @@ -37,6 +37,8 @@ class DirectXTTIImpl : public BasicTTIImplBase { bool isTargetIntrinsicTriviallyScalarizable(Intrinsic::ID ID) const; bool isTargetIntrinsicWithScalarOpAtArg(Intrinsic::ID ID, unsigned ScalarOpdIdx); + bool isVectorIntrinsicWithOverloadTypeAtArg(Intrinsic::ID ID, + int ScalarOpdIdx); }; } // namespace llvm diff --git a/llvm/lib/Target/Hexagon/CMakeLists.txt b/llvm/lib/Target/Hexagon/CMakeLists.txt index e8ec93dd5ee63..d758260a8ab5d 100644 --- a/llvm/lib/Target/Hexagon/CMakeLists.txt +++ b/llvm/lib/Target/Hexagon/CMakeLists.txt @@ -59,7 +59,7 @@ add_llvm_target(HexagonCodeGen HexagonSelectionDAGInfo.cpp HexagonSplitConst32AndConst64.cpp HexagonSplitDouble.cpp - HexagonStoreWidening.cpp + HexagonLoadStoreWidening.cpp HexagonSubtarget.cpp HexagonTargetMachine.cpp HexagonTargetObjectFile.cpp diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp index b6ed035607d96..2c20db16b055f 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp @@ -135,7 +135,7 @@ void HexagonDAGToDAGISel::SelectIndexedLoad(LoadSDNode *LD, const SDLoc &dl) { llvm_unreachable("Unexpected memory type in indexed load"); } - SDValue IncV = CurDAG->getTargetConstant(Inc, dl, MVT::i32); + SDValue IncV = CurDAG->getSignedTargetConstant(Inc, dl, MVT::i32); MachineMemOperand *MemOp = LD->getMemOperand(); auto getExt64 = [this,ExtType] (MachineSDNode *N, const SDLoc &dl) @@ -213,7 +213,8 @@ MachineSDNode *HexagonDAGToDAGISel::LoadInstrForLoadIntrinsic(SDNode *IntN) { EVT RTys[] = { ValTy, MVT::i32, MVT::Other }; // Operands: { Base, Increment, Modifier, Chain } auto Inc = cast(IntN->getOperand(5)); - SDValue I = CurDAG->getTargetConstant(Inc->getSExtValue(), dl, MVT::i32); + SDValue I = + CurDAG->getSignedTargetConstant(Inc->getSExtValue(), dl, MVT::i32); MachineSDNode *Res = CurDAG->getMachineNode(FLC->second, dl, RTys, { IntN->getOperand(2), I, IntN->getOperand(4), IntN->getOperand(0) }); @@ -531,7 +532,7 @@ void HexagonDAGToDAGISel::SelectIndexedStore(StoreSDNode *ST, const SDLoc &dl) { dl, MVT::i32, Value); } - SDValue IncV = CurDAG->getTargetConstant(Inc, dl, MVT::i32); + SDValue IncV = CurDAG->getSignedTargetConstant(Inc, dl, MVT::i32); MachineMemOperand *MemOp = ST->getMemOperand(); // Next address Chain @@ -889,7 +890,7 @@ void HexagonDAGToDAGISel::SelectV2Q(SDNode *N) { MVT OpTy = N->getOperand(0).getValueType().getSimpleVT(); (void)OpTy; assert(HST->getVectorLength() * 8 == OpTy.getSizeInBits()); - SDValue C = CurDAG->getTargetConstant(-1, dl, MVT::i32); + SDValue C = CurDAG->getSignedTargetConstant(-1, dl, MVT::i32); SDNode *R = CurDAG->getMachineNode(Hexagon::A2_tfrsi, dl, MVT::i32, C); SDNode *T = CurDAG->getMachineNode(Hexagon::V6_vandvrt, dl, ResTy, N->getOperand(0), SDValue(R,0)); @@ -902,7 +903,7 @@ void HexagonDAGToDAGISel::SelectQ2V(SDNode *N) { // The result of V2Q should be a single vector. assert(HST->getVectorLength() * 8 == ResTy.getSizeInBits()); - SDValue C = CurDAG->getTargetConstant(-1, dl, MVT::i32); + SDValue C = CurDAG->getSignedTargetConstant(-1, dl, MVT::i32); SDNode *R = CurDAG->getMachineNode(Hexagon::A2_tfrsi, dl, MVT::i32, C); SDNode *T = CurDAG->getMachineNode(Hexagon::V6_vandqrt, dl, ResTy, N->getOperand(0), SDValue(R,0)); @@ -1491,7 +1492,7 @@ inline bool HexagonDAGToDAGISel::SelectAnyInt(SDValue &N, SDValue &R) { EVT T = N.getValueType(); if (!T.isInteger() || T.getSizeInBits() != 32 || !isa(N)) return false; - int32_t V = cast(N)->getZExtValue(); + uint32_t V = cast(N)->getZExtValue(); R = CurDAG->getTargetConstant(V, SDLoc(N), N.getValueType()); return true; } @@ -1502,7 +1503,7 @@ bool HexagonDAGToDAGISel::SelectAnyImmediate(SDValue &N, SDValue &R, case ISD::Constant: { if (N.getValueType() != MVT::i32) return false; - int32_t V = cast(N)->getZExtValue(); + uint32_t V = cast(N)->getZExtValue(); if (!isAligned(Alignment, V)) return false; R = CurDAG->getTargetConstant(V, SDLoc(N), N.getValueType()); diff --git a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp index 08a9c95ee7359..2c8d141aa2108 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp @@ -2557,10 +2557,10 @@ HexagonTargetLowering::buildVector32(ArrayRef Elem, const SDLoc &dl, if (ElemTy == MVT::i8) { // First try generating a constant. if (AllConst) { - int32_t V = (Consts[0]->getZExtValue() & 0xFF) | - (Consts[1]->getZExtValue() & 0xFF) << 8 | - (Consts[2]->getZExtValue() & 0xFF) << 16 | - Consts[3]->getZExtValue() << 24; + uint32_t V = (Consts[0]->getZExtValue() & 0xFF) | + (Consts[1]->getZExtValue() & 0xFF) << 8 | + (Consts[2]->getZExtValue() & 0xFF) << 16 | + Consts[3]->getZExtValue() << 24; return DAG.getBitcast(MVT::v4i8, DAG.getConstant(V, dl, MVT::i32)); } diff --git a/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp b/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp index dd951d7eb8b54..816e063f8dbbe 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp @@ -1203,8 +1203,9 @@ HexagonTargetLowering::insertHvxElementReg(SDValue VecV, SDValue IdxV, SDValue ByteIdxV) { MVT VecTy = ty(VecV); unsigned HwLen = Subtarget.getVectorLength(); - SDValue MaskV = DAG.getNode(ISD::AND, dl, MVT::i32, - {ByteIdxV, DAG.getConstant(-4, dl, MVT::i32)}); + SDValue MaskV = + DAG.getNode(ISD::AND, dl, MVT::i32, + {ByteIdxV, DAG.getSignedConstant(-4, dl, MVT::i32)}); SDValue RotV = DAG.getNode(HexagonISD::VROR, dl, VecTy, {VecV, MaskV}); SDValue InsV = DAG.getNode(HexagonISD::VINSERTW0, dl, VecTy, {RotV, ValV}); SDValue SubV = DAG.getNode(ISD::SUB, dl, MVT::i32, @@ -1574,9 +1575,10 @@ HexagonTargetLowering::resizeToWidth(SDValue VecV, MVT ResTy, bool Signed, unsigned ResWidth = ResTy.getSizeInBits(); if (InpTy.isFloatingPoint()) { - return InpWidth < ResWidth ? DAG.getNode(ISD::FP_EXTEND, dl, ResTy, VecV) - : DAG.getNode(ISD::FP_ROUND, dl, ResTy, VecV, - getZero(dl, MVT::i32, DAG)); + return InpWidth < ResWidth + ? DAG.getNode(ISD::FP_EXTEND, dl, ResTy, VecV) + : DAG.getNode(ISD::FP_ROUND, dl, ResTy, VecV, + DAG.getTargetConstant(0, dl, MVT::i32)); } assert(InpTy.isInteger()); @@ -1882,7 +1884,7 @@ HexagonTargetLowering::LowerHvxCttz(SDValue Op, SelectionDAG &DAG) const { SDValue VecW = DAG.getNode(ISD::SPLAT_VECTOR, dl, ResTy, DAG.getConstant(ElemWidth, dl, MVT::i32)); SDValue VecN1 = DAG.getNode(ISD::SPLAT_VECTOR, dl, ResTy, - DAG.getConstant(-1, dl, MVT::i32)); + DAG.getAllOnesConstant(dl, MVT::i32)); // Do not use DAG.getNOT, because that would create BUILD_VECTOR with // a BITCAST. Here we can skip the BITCAST (so we don't have to handle @@ -2264,7 +2266,7 @@ SDValue HexagonTargetLowering::LowerHvxFpExtend(SDValue Op, SDValue ShuffVec = getInstr(Hexagon::V6_vshuffvdd, dl, VecTy, - {HiVec, LoVec, DAG.getConstant(-4, dl, MVT::i32)}, DAG); + {HiVec, LoVec, DAG.getSignedConstant(-4, dl, MVT::i32)}, DAG); return ShuffVec; } @@ -2416,7 +2418,7 @@ HexagonTargetLowering::emitHvxAddWithOverflow(SDValue A, SDValue B, // i.e. (~A xor B) & ((A+B) xor B), then check the sign bit SDValue Add = DAG.getNode(ISD::ADD, dl, ResTy, {A, B}); SDValue NotA = - DAG.getNode(ISD::XOR, dl, ResTy, {A, DAG.getConstant(-1, dl, ResTy)}); + DAG.getNode(ISD::XOR, dl, ResTy, {A, DAG.getAllOnesConstant(dl, ResTy)}); SDValue Xor0 = DAG.getNode(ISD::XOR, dl, ResTy, {NotA, B}); SDValue Xor1 = DAG.getNode(ISD::XOR, dl, ResTy, {Add, B}); SDValue And = DAG.getNode(ISD::AND, dl, ResTy, {Xor0, Xor1}); @@ -3620,7 +3622,7 @@ HexagonTargetLowering::PerformHvxDAGCombine(SDNode *N, DAGCombinerInfo &DCI) case HexagonISD::Q2V: if (Ops[0].getOpcode() == HexagonISD::QTRUE) return DAG.getNode(ISD::SPLAT_VECTOR, dl, ty(Op), - DAG.getConstant(-1, dl, MVT::i32)); + DAG.getAllOnesConstant(dl, MVT::i32)); if (Ops[0].getOpcode() == HexagonISD::QFALSE) return getZero(dl, ty(Op), DAG); break; diff --git a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td index 6f20c823df855..25b81d8cd21ff 100644 --- a/llvm/lib/Target/Hexagon/HexagonIntrinsics.td +++ b/llvm/lib/Target/Hexagon/HexagonIntrinsics.td @@ -148,12 +148,12 @@ class S2op_tableidx_pat getSExtValue(); - return CurDAG->getTargetConstant(V-2, SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(V-2, SDLoc(N), MVT::i32); }]>; def SDEC3 : SDNodeXFormgetSExtValue(); - return CurDAG->getTargetConstant(V-3, SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(V-3, SDLoc(N), MVT::i32); }]>; // Table Index : Extract and insert bits. diff --git a/llvm/lib/Target/Hexagon/HexagonLoadStoreWidening.cpp b/llvm/lib/Target/Hexagon/HexagonLoadStoreWidening.cpp new file mode 100644 index 0000000000000..1a60d0e13057e --- /dev/null +++ b/llvm/lib/Target/Hexagon/HexagonLoadStoreWidening.cpp @@ -0,0 +1,915 @@ +//===---HexagonLoadStoreWidening.cpp---------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// HexagonStoreWidening: +// Replace sequences of "narrow" stores to adjacent memory locations with +// a fewer "wide" stores that have the same effect. +// For example, replace: +// S4_storeirb_io %100, 0, 0 ; store-immediate-byte +// S4_storeirb_io %100, 1, 0 ; store-immediate-byte +// with +// S4_storeirh_io %100, 0, 0 ; store-immediate-halfword +// The above is the general idea. The actual cases handled by the code +// may be a bit more complex. +// The purpose of this pass is to reduce the number of outstanding stores, +// or as one could say, "reduce store queue pressure". Also, wide stores +// mean fewer stores, and since there are only two memory instructions allowed +// per packet, it also means fewer packets, and ultimately fewer cycles. +// +// HexagonLoadWidening does the same thing as HexagonStoreWidening but +// for Loads. Here, we try to replace 4-byte Loads with register-pair loads. +// For example: +// Replace +// %2:intregs = L2_loadri_io %1:intregs, 0 :: (load (s32) from %ptr1, align 8) +// %3:intregs = L2_loadri_io %1:intregs, 4 :: (load (s32) from %ptr2) +// with +// %4:doubleregs = L2_loadrd_io %1:intregs, 0 :: (load (s64) from %ptr1) +// %2:intregs = COPY %4.isub_lo:doubleregs +// %3:intregs = COPY %4.isub_hi:doubleregs +// +// LoadWidening for 8 and 16-bit loads is not useful as we end up generating 2N +// insts to replace N loads: 1 widened load, N bitwise and, N - 1 shifts + +//===---------------------------------------------------------------------===// + +#include "HexagonInstrInfo.h" +#include "HexagonRegisterInfo.h" +#include "HexagonSubtarget.h" +#include "llvm/ADT/SmallPtrSet.h" +#include "llvm/Analysis/AliasAnalysis.h" +#include "llvm/Analysis/MemoryLocation.h" +#include "llvm/CodeGen/MachineBasicBlock.h" +#include "llvm/CodeGen/MachineFunction.h" +#include "llvm/CodeGen/MachineFunctionPass.h" +#include "llvm/CodeGen/MachineInstr.h" +#include "llvm/CodeGen/MachineInstrBuilder.h" +#include "llvm/CodeGen/MachineMemOperand.h" +#include "llvm/CodeGen/MachineOperand.h" +#include "llvm/CodeGen/MachineRegisterInfo.h" +#include "llvm/IR/DebugLoc.h" +#include "llvm/InitializePasses.h" +#include "llvm/MC/MCInstrDesc.h" +#include "llvm/Pass.h" +#include "llvm/Support/Debug.h" +#include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/MathExtras.h" +#include "llvm/Support/raw_ostream.h" +#include +#include +#include +#include +#include + +using namespace llvm; + +#define DEBUG_TYPE "hexagon-load-store-widening" + +static cl::opt MaxMBBSizeForLoadStoreWidening( + "max-bb-size-for-load-store-widening", cl::Hidden, cl::init(1000), + cl::desc("Limit block size to analyze in load/store widening pass")); + +namespace llvm { + +FunctionPass *createHexagonStoreWidening(); +FunctionPass *createHexagonLoadWidening(); +void initializeHexagonStoreWideningPass(PassRegistry &); +void initializeHexagonLoadWideningPass(PassRegistry &); + +} // end namespace llvm + +namespace { + +struct HexagonLoadStoreWidening { + enum WideningMode { Store, Load }; + const HexagonInstrInfo *TII; + const HexagonRegisterInfo *TRI; + MachineRegisterInfo *MRI; + AliasAnalysis *AA; + MachineFunction *MF; + +public: + HexagonLoadStoreWidening(const HexagonInstrInfo *TII, + const HexagonRegisterInfo *TRI, + MachineRegisterInfo *MRI, AliasAnalysis *AA, + MachineFunction *MF, bool StoreMode) + : TII(TII), TRI(TRI), MRI(MRI), AA(AA), MF(MF), + Mode(StoreMode ? WideningMode::Store : WideningMode::Load), + HII(MF->getSubtarget().getInstrInfo()) {} + + bool run(); + +private: + const bool Mode; + const unsigned MaxWideSize = 8; + const HexagonInstrInfo *HII = nullptr; + + using InstrSet = SmallPtrSet; + using InstrGroup = SmallVector; + using InstrGroupList = SmallVector; + + InstrSet ProcessedInsts; + + unsigned getBaseAddressRegister(const MachineInstr *MI); + int64_t getOffset(const MachineInstr *MI); + int64_t getPostIncrementValue(const MachineInstr *MI); + bool handledInstType(const MachineInstr *MI); + + void createGroup(MachineInstr *BaseInst, InstrGroup &Group); + void createGroups(MachineBasicBlock &MBB, InstrGroupList &StoreGroups); + bool processBasicBlock(MachineBasicBlock &MBB); + bool processGroup(InstrGroup &Group); + bool selectInsts(InstrGroup::iterator Begin, InstrGroup::iterator End, + InstrGroup &OG, unsigned &TotalSize, unsigned MaxSize); + bool createWideInsts(InstrGroup &OG, InstrGroup &NG, unsigned TotalSize); + bool createWideStores(InstrGroup &OG, InstrGroup &NG, unsigned TotalSize); + bool createWideLoads(InstrGroup &OG, InstrGroup &NG, unsigned TotalSize); + bool replaceInsts(InstrGroup &OG, InstrGroup &NG); + bool areAdjacent(const MachineInstr *S1, const MachineInstr *S2); + bool canSwapInstructions(const MachineInstr *A, const MachineInstr *B); +}; + +struct HexagonStoreWidening : public MachineFunctionPass { + static char ID; + + HexagonStoreWidening() : MachineFunctionPass(ID) { + initializeHexagonStoreWideningPass(*PassRegistry::getPassRegistry()); + } + + StringRef getPassName() const override { return "Hexagon Store Widening"; } + + void getAnalysisUsage(AnalysisUsage &AU) const override { + AU.addRequired(); + AU.addPreserved(); + MachineFunctionPass::getAnalysisUsage(AU); + } + + bool runOnMachineFunction(MachineFunction &MFn) override { + if (skipFunction(MFn.getFunction())) + return false; + + auto &ST = MFn.getSubtarget(); + const HexagonInstrInfo *TII = ST.getInstrInfo(); + const HexagonRegisterInfo *TRI = ST.getRegisterInfo(); + MachineRegisterInfo *MRI = &MFn.getRegInfo(); + AliasAnalysis *AA = &getAnalysis().getAAResults(); + + return HexagonLoadStoreWidening(TII, TRI, MRI, AA, &MFn, true).run(); + } +}; + +struct HexagonLoadWidening : public MachineFunctionPass { + static char ID; + + HexagonLoadWidening() : MachineFunctionPass(ID) { + initializeHexagonLoadWideningPass(*PassRegistry::getPassRegistry()); + } + + StringRef getPassName() const override { return "Hexagon Load Widening"; } + + void getAnalysisUsage(AnalysisUsage &AU) const override { + AU.addRequired(); + AU.addPreserved(); + MachineFunctionPass::getAnalysisUsage(AU); + } + + bool runOnMachineFunction(MachineFunction &MFn) override { + if (skipFunction(MFn.getFunction())) + return false; + + auto &ST = MFn.getSubtarget(); + const HexagonInstrInfo *TII = ST.getInstrInfo(); + const HexagonRegisterInfo *TRI = ST.getRegisterInfo(); + MachineRegisterInfo *MRI = &MFn.getRegInfo(); + AliasAnalysis *AA = &getAnalysis().getAAResults(); + return HexagonLoadStoreWidening(TII, TRI, MRI, AA, &MFn, false).run(); + } +}; + +char HexagonStoreWidening::ID = 0; +char HexagonLoadWidening::ID = 0; + +} // end anonymous namespace + +INITIALIZE_PASS_BEGIN(HexagonStoreWidening, "hexagon-widen-stores", + "Hexagon Store Widening", false, false) +INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass) +INITIALIZE_PASS_END(HexagonStoreWidening, "hexagon-widen-stores", + "Hexagon Store Widening", false, false) + +INITIALIZE_PASS_BEGIN(HexagonLoadWidening, "hexagon-widen-loads", + "Hexagon Load Widening", false, false) +INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass) +INITIALIZE_PASS_END(HexagonLoadWidening, "hexagon-widen-loads", + "Hexagon Load Widening", false, false) + +static const MachineMemOperand &getMemTarget(const MachineInstr *MI) { + assert(!MI->memoperands_empty() && "Expecting memory operands"); + return **MI->memoperands_begin(); +} + +unsigned +HexagonLoadStoreWidening::getBaseAddressRegister(const MachineInstr *MI) { + assert(HexagonLoadStoreWidening::handledInstType(MI) && "Unhandled opcode"); + unsigned Base, Offset; + HII->getBaseAndOffsetPosition(*MI, Base, Offset); + const MachineOperand &MO = MI->getOperand(Base); + assert(MO.isReg() && "Expecting register operand"); + return MO.getReg(); +} + +int64_t HexagonLoadStoreWidening::getOffset(const MachineInstr *MI) { + assert(HexagonLoadStoreWidening::handledInstType(MI) && "Unhandled opcode"); + + // On Hexagon, post-incs always have an offset of 0 + // There is no Offset operand to post-incs + if (HII->isPostIncrement(*MI)) + return 0; + + unsigned Base, Offset; + + HII->getBaseAndOffsetPosition(*MI, Base, Offset); + const MachineOperand &MO = MI->getOperand(Offset); + switch (MO.getType()) { + case MachineOperand::MO_Immediate: + return MO.getImm(); + case MachineOperand::MO_GlobalAddress: + return MO.getOffset(); + default: + break; + } + llvm_unreachable("Expecting an immediate or global operand"); +} + +inline int64_t +HexagonLoadStoreWidening::getPostIncrementValue(const MachineInstr *MI) { + unsigned Base, PostIncIdx; + HII->getBaseAndOffsetPosition(*MI, Base, PostIncIdx); + const MachineOperand &MO = MI->getOperand(PostIncIdx); + return MO.getImm(); +} + +// Filtering function: any loads/stores whose opcodes are not "approved" of by +// this function will not be subjected to widening. +inline bool HexagonLoadStoreWidening::handledInstType(const MachineInstr *MI) { + unsigned Opc = MI->getOpcode(); + if (Mode == WideningMode::Store) { + switch (Opc) { + case Hexagon::S4_storeirb_io: + case Hexagon::S4_storeirh_io: + case Hexagon::S4_storeiri_io: + case Hexagon::S2_storeri_io: + // Base address must be a register. (Implement FI later.) + return MI->getOperand(0).isReg(); + case Hexagon::S2_storeri_pi: + return MI->getOperand(1).isReg(); + } + } else { + // LoadWidening for 8 and 16 bit loads needs 2x instructions to replace x + // loads. So we only widen 32 bit loads as we don't need to select the + // right bits with AND & SHIFT ops. + switch (Opc) { + case Hexagon::L2_loadri_io: + // Base address must be a register and offset must be immediate. + return !MI->memoperands_empty() && MI->getOperand(1).isReg() && + MI->getOperand(2).isImm(); + case Hexagon::L2_loadri_pi: + return !MI->memoperands_empty() && MI->getOperand(2).isReg(); + } + } + return false; +} + +static void addDefsUsesToList(const MachineInstr *MI, + DenseSet &RegDefs, + DenseSet &RegUses) { + for (const auto &Op : MI->operands()) { + if (!Op.isReg()) + continue; + if (Op.isDef()) + RegDefs.insert(Op.getReg()); + if (Op.readsReg()) + RegUses.insert(Op.getReg()); + } +} + +bool HexagonLoadStoreWidening::canSwapInstructions(const MachineInstr *A, + const MachineInstr *B) { + DenseSet ARegDefs; + DenseSet ARegUses; + addDefsUsesToList(A, ARegDefs, ARegUses); + if (A->mayLoadOrStore() && B->mayLoadOrStore() && + (A->mayStore() || B->mayStore()) && A->mayAlias(AA, *B, true)) + return false; + for (const auto &BOp : B->operands()) { + if (!BOp.isReg()) + continue; + if ((BOp.isDef() || BOp.readsReg()) && ARegDefs.contains(BOp.getReg())) + return false; + if (BOp.isDef() && ARegUses.contains(BOp.getReg())) + return false; + } + return true; +} + +// Inspect a machine basic block, and generate groups out of loads/stores +// encountered in the block. +// +// A load/store group is a group of loads or stores that use the same base +// register, and which can be reordered within that group without altering the +// semantics of the program. A single group could be widened as +// a whole, if there existed a single load/store instruction with the same +// semantics as the entire group. In many cases, a single group may need more +// than one wide load or store. +void HexagonLoadStoreWidening::createGroups(MachineBasicBlock &MBB, + InstrGroupList &StoreGroups) { + // Traverse all instructions and if we encounter + // a load/store, then try to create a group starting at that instruction + // i.e. a sequence of independent loads/stores that can be widened. + for (auto I = MBB.begin(); I != MBB.end(); ++I) { + MachineInstr *MI = &(*I); + if (!handledInstType(MI)) + continue; + if (ProcessedInsts.count(MI)) + continue; + + // Found a store. Try to create a store group. + InstrGroup G; + createGroup(MI, G); + if (G.size() > 1) + StoreGroups.push_back(G); + } +} + +// Create a single load/store group. The insts need to be independent between +// themselves, and also there cannot be other instructions between them +// that could read or modify storage being read from or stored into. +void HexagonLoadStoreWidening::createGroup(MachineInstr *BaseInst, + InstrGroup &Group) { + assert(handledInstType(BaseInst) && "Unexpected instruction"); + unsigned BaseReg = getBaseAddressRegister(BaseInst); + InstrGroup Other; + + Group.push_back(BaseInst); + LLVM_DEBUG(dbgs() << "BaseInst: "; BaseInst->dump()); + auto End = BaseInst->getParent()->end(); + auto I = BaseInst->getIterator(); + + while (true) { + I = std::next(I); + if (I == End) + break; + MachineInstr *MI = &(*I); + + // Assume calls are aliased to everything. + if (MI->isCall() || MI->hasUnmodeledSideEffects() || + MI->hasOrderedMemoryRef()) + return; + + if (!handledInstType(MI)) { + if (MI->mayLoadOrStore()) + Other.push_back(MI); + continue; + } + + // We have a handledInstType instruction + // If this load/store instruction is aliased with anything already in the + // group, terminate the group now. + for (auto GI : Group) + if (GI->mayAlias(AA, *MI, true)) + return; + if (Mode == WideningMode::Load) { + // Check if current load MI can be moved to the first load instruction + // in Group. If any load instruction aliases with memory instructions in + // Other, terminate the group. + for (auto MemI : Other) + if (!canSwapInstructions(MI, MemI)) + return; + } else { + // Check if store instructions in the group can be moved to current + // store MI. If any store instruction aliases with memory instructions + // in Other, terminate the group. + for (auto MemI : Other) { + if (std::distance(Group.back()->getIterator(), MemI->getIterator()) <= + 0) + continue; + for (auto GI : Group) + if (!canSwapInstructions(MemI, GI)) + return; + } + } + + unsigned BR = getBaseAddressRegister(MI); + if (BR == BaseReg) { + LLVM_DEBUG(dbgs() << "Added MI to group: "; MI->dump()); + Group.push_back(MI); + ProcessedInsts.insert(MI); + } + } // while +} + +// Check if load/store instructions S1 and S2 are adjacent. More precisely, +// S2 has to access memory immediately following that accessed by S1. +bool HexagonLoadStoreWidening::areAdjacent(const MachineInstr *S1, + const MachineInstr *S2) { + if (!handledInstType(S1) || !handledInstType(S2)) + return false; + + const MachineMemOperand &S1MO = getMemTarget(S1); + + // Currently only handling immediate stores. + int Off1 = getOffset(S1); + int Off2 = getOffset(S2); + + return (Off1 >= 0) ? Off1 + S1MO.getSize().getValue() == unsigned(Off2) + : int(Off1 + S1MO.getSize().getValue()) == Off2; +} + +/// Given a sequence of adjacent loads/stores, and a maximum size of a single +/// wide inst, pick a group of insts that can be replaced by a single load/store +/// of size not exceeding MaxSize. The selected sequence will be recorded +/// in OG ("old group" of instructions). +/// OG should be empty on entry, and should be left empty if the function +/// fails. +bool HexagonLoadStoreWidening::selectInsts(InstrGroup::iterator Begin, + InstrGroup::iterator End, + InstrGroup &OG, unsigned &TotalSize, + unsigned MaxSize) { + assert(Begin != End && "No instructions to analyze"); + assert(OG.empty() && "Old group not empty on entry"); + + if (std::distance(Begin, End) <= 1) + return false; + + MachineInstr *FirstMI = *Begin; + assert(!FirstMI->memoperands_empty() && "Expecting some memory operands"); + const MachineMemOperand &FirstMMO = getMemTarget(FirstMI); + if (!FirstMMO.getType().isValid()) + return false; + + unsigned Alignment = FirstMMO.getAlign().value(); + unsigned SizeAccum = FirstMMO.getSize().getValue(); + unsigned FirstOffset = getOffset(FirstMI); + + // The initial value of SizeAccum should always be a power of 2. + assert(isPowerOf2_32(SizeAccum) && "First store size not a power of 2"); + + // If the size of the first store equals to or exceeds the limit, do nothing. + if (SizeAccum >= MaxSize) + return false; + + // If the size of the first load/store is greater than or equal to the address + // stored to, then the inst cannot be made any wider. + if (SizeAccum >= Alignment) { + LLVM_DEBUG( + dbgs() << "Size of load/store greater than equal to its alignment\n"); + return false; + } + + // The offset of a load/store will put restrictions on how wide the inst can + // be. Offsets in loads/stores of size 2^n bytes need to have the n lowest + // bits be 0. If the first inst already exhausts the offset limits, quit. + // Test this by checking if the next wider size would exceed the limit. + // For post-increment instructions, the increment amount needs to follow the + // same rule. + unsigned OffsetOrIncVal = 0; + if (HII->isPostIncrement(*FirstMI)) + OffsetOrIncVal = getPostIncrementValue(FirstMI); + else + OffsetOrIncVal = FirstOffset; + if ((2 * SizeAccum - 1) & OffsetOrIncVal) { + LLVM_DEBUG(dbgs() << "Instruction cannot be widened as the offset/postinc" + << " value: " << getPostIncrementValue(FirstMI) + << " is invalid in the widened version\n"); + return false; + } + + OG.push_back(FirstMI); + MachineInstr *S1 = FirstMI; + + // Pow2Num will be the largest number of elements in OG such that the sum + // of sizes of loads/stores 0...Pow2Num-1 will be a power of 2. + unsigned Pow2Num = 1; + unsigned Pow2Size = SizeAccum; + bool HavePostInc = HII->isPostIncrement(*S1); + + // Be greedy: keep accumulating insts as long as they are to adjacent + // memory locations, and as long as the total number of bytes stored + // does not exceed the limit (MaxSize). + // Keep track of when the total size covered is a power of 2, since + // this is a size a single load/store can cover. + for (InstrGroup::iterator I = Begin + 1; I != End; ++I) { + MachineInstr *S2 = *I; + // Insts are sorted, so if S1 and S2 are not adjacent, there won't be + // any other store to fill the "hole". + if (!areAdjacent(S1, S2)) + break; + + // Cannot widen two post increments, need to return two registers + // with incremented values + if (HavePostInc && HII->isPostIncrement(*S2)) + break; + + unsigned S2Size = getMemTarget(S2).getSize().getValue(); + if (SizeAccum + S2Size > std::min(MaxSize, Alignment)) + break; + + OG.push_back(S2); + SizeAccum += S2Size; + if (isPowerOf2_32(SizeAccum)) { + Pow2Num = OG.size(); + Pow2Size = SizeAccum; + } + if ((2 * Pow2Size - 1) & FirstOffset) + break; + + S1 = S2; + } + + // The insts don't add up to anything that can be widened. Clean up. + if (Pow2Num <= 1) { + OG.clear(); + return false; + } + + // Only leave the loads/stores being widened. + OG.resize(Pow2Num); + TotalSize = Pow2Size; + return true; +} + +/// Given an "old group" OG of insts, create a "new group" NG of instructions +/// to replace them. +bool HexagonLoadStoreWidening::createWideInsts(InstrGroup &OG, InstrGroup &NG, + unsigned TotalSize) { + if (Mode == WideningMode::Store) { + return createWideStores(OG, NG, TotalSize); + } + return createWideLoads(OG, NG, TotalSize); +} + +/// Given an "old group" OG of stores, create a "new group" NG of instructions +/// to replace them. Ideally, NG would only have a single instruction in it, +/// but that may only be possible for store-immediate. +bool HexagonLoadStoreWidening::createWideStores(InstrGroup &OG, InstrGroup &NG, + unsigned TotalSize) { + // XXX Current limitations: + // - only handle a TotalSize of up to 8 + + LLVM_DEBUG(dbgs() << "Creating wide stores\n"); + if (TotalSize > MaxWideSize) + return false; + + uint64_t Acc = 0; // Value accumulator. + unsigned Shift = 0; + bool HaveImm = false; + bool HaveReg = false; + + for (MachineInstr *MI : OG) { + const MachineMemOperand &MMO = getMemTarget(MI); + MachineOperand &SO = HII->isPostIncrement(*MI) + ? MI->getOperand(3) + : MI->getOperand(2); // Source. + unsigned NBits; + uint64_t Mask; + uint64_t Val; + + switch (SO.getType()) { + case MachineOperand::MO_Immediate: + LLVM_DEBUG(dbgs() << "Have store immediate\n"); + HaveImm = true; + + NBits = MMO.getSizeInBits().toRaw(); + Mask = (0xFFFFFFFFFFFFFFFFU >> (64 - NBits)); + Val = (SO.getImm() & Mask) << Shift; + Acc |= Val; + Shift += NBits; + break; + case MachineOperand::MO_Register: + HaveReg = true; + break; + default: + LLVM_DEBUG(dbgs() << "Unhandled store\n"); + return false; + } + } + + if (HaveImm && HaveReg) { + LLVM_DEBUG(dbgs() << "Cannot merge store register and store imm\n"); + return false; + } + + MachineInstr *FirstSt = OG.front(); + DebugLoc DL = OG.back()->getDebugLoc(); + const MachineMemOperand &OldM = getMemTarget(FirstSt); + MachineMemOperand *NewM = + MF->getMachineMemOperand(OldM.getPointerInfo(), OldM.getFlags(), + TotalSize, OldM.getAlign(), OldM.getAAInfo()); + MachineInstr *StI; + MachineOperand &MR = + (HII->isPostIncrement(*FirstSt) ? FirstSt->getOperand(1) + : FirstSt->getOperand(0)); + auto SecondSt = OG.back(); + if (HaveReg) { + MachineOperand FReg = + (HII->isPostIncrement(*FirstSt) ? FirstSt->getOperand(3) + : FirstSt->getOperand(2)); + // Post increments appear first in the sorted group. + // Cannot have a post increment for the second instruction + assert(!HII->isPostIncrement(*SecondSt) && "Unexpected PostInc"); + MachineOperand SReg = SecondSt->getOperand(2); + assert(FReg.isReg() && SReg.isReg() && + "Cannot merge store register and store imm"); + const MCInstrDesc &CombD = TII->get(Hexagon::A2_combinew); + Register VReg = + MF->getRegInfo().createVirtualRegister(&Hexagon::DoubleRegsRegClass); + MachineInstr *CombI = BuildMI(*MF, DL, CombD, VReg).add(SReg).add(FReg); + NG.push_back(CombI); + + if (FirstSt->getOpcode() == Hexagon::S2_storeri_pi) { + const MCInstrDesc &StD = TII->get(Hexagon::S2_storerd_pi); + auto IncDestMO = FirstSt->getOperand(0); + auto IncMO = FirstSt->getOperand(2); + StI = + BuildMI(*MF, DL, StD).add(IncDestMO).add(MR).add(IncMO).addReg(VReg); + } else { + const MCInstrDesc &StD = TII->get(Hexagon::S2_storerd_io); + auto OffMO = FirstSt->getOperand(1); + StI = BuildMI(*MF, DL, StD).add(MR).add(OffMO).addReg(VReg); + } + StI->addMemOperand(*MF, NewM); + NG.push_back(StI); + return true; + } + + // Handle store immediates + // There are no post increment store immediates on Hexagon + assert(!HII->isPostIncrement(*FirstSt) && "Unexpected PostInc"); + auto Off = FirstSt->getOperand(1).getImm(); + if (TotalSize == 8) { + // Create vreg = A2_tfrsi #Acc; nreg = combine(#s32, vreg); memd = nreg + uint64_t Mask = 0xFFFFFFFFU; + int LowerAcc = int(Mask & Acc); + int UpperAcc = Acc >> 32; + Register DReg = + MF->getRegInfo().createVirtualRegister(&Hexagon::DoubleRegsRegClass); + MachineInstr *CombI; + if (Acc != 0) { + const MCInstrDesc &TfrD = TII->get(Hexagon::A2_tfrsi); + const TargetRegisterClass *RC = TII->getRegClass(TfrD, 0, TRI, *MF); + Register VReg = MF->getRegInfo().createVirtualRegister(RC); + MachineInstr *TfrI = BuildMI(*MF, DL, TfrD, VReg).addImm(LowerAcc); + NG.push_back(TfrI); + const MCInstrDesc &CombD = TII->get(Hexagon::A4_combineir); + CombI = BuildMI(*MF, DL, CombD, DReg) + .addImm(UpperAcc) + .addReg(VReg, RegState::Kill); + } + // If immediates are 0, we do not need A2_tfrsi + else { + const MCInstrDesc &CombD = TII->get(Hexagon::A4_combineii); + CombI = BuildMI(*MF, DL, CombD, DReg).addImm(0).addImm(0); + } + NG.push_back(CombI); + const MCInstrDesc &StD = TII->get(Hexagon::S2_storerd_io); + StI = + BuildMI(*MF, DL, StD).add(MR).addImm(Off).addReg(DReg, RegState::Kill); + } else if (Acc < 0x10000) { + // Create mem[hw] = #Acc + unsigned WOpc = (TotalSize == 2) ? Hexagon::S4_storeirh_io + : (TotalSize == 4) ? Hexagon::S4_storeiri_io + : 0; + assert(WOpc && "Unexpected size"); + + int Val = (TotalSize == 2) ? int16_t(Acc) : int(Acc); + const MCInstrDesc &StD = TII->get(WOpc); + StI = BuildMI(*MF, DL, StD).add(MR).addImm(Off).addImm(Val); + } else { + // Create vreg = A2_tfrsi #Acc; mem[hw] = vreg + const MCInstrDesc &TfrD = TII->get(Hexagon::A2_tfrsi); + const TargetRegisterClass *RC = TII->getRegClass(TfrD, 0, TRI, *MF); + Register VReg = MF->getRegInfo().createVirtualRegister(RC); + MachineInstr *TfrI = BuildMI(*MF, DL, TfrD, VReg).addImm(int(Acc)); + NG.push_back(TfrI); + + unsigned WOpc = (TotalSize == 2) ? Hexagon::S2_storerh_io + : (TotalSize == 4) ? Hexagon::S2_storeri_io + : 0; + assert(WOpc && "Unexpected size"); + + const MCInstrDesc &StD = TII->get(WOpc); + StI = + BuildMI(*MF, DL, StD).add(MR).addImm(Off).addReg(VReg, RegState::Kill); + } + StI->addMemOperand(*MF, NewM); + NG.push_back(StI); + + return true; +} + +/// Given an "old group" OG of loads, create a "new group" NG of instructions +/// to replace them. Ideally, NG would only have a single instruction in it, +/// but that may only be possible for double register loads. +bool HexagonLoadStoreWidening::createWideLoads(InstrGroup &OG, InstrGroup &NG, + unsigned TotalSize) { + LLVM_DEBUG(dbgs() << "Creating wide loads\n"); + // XXX Current limitations: + // - only expect stores of immediate values in OG, + // - only handle a TotalSize of up to 8 + if (TotalSize > MaxWideSize) + return false; + assert(OG.size() == 2 && "Expecting two elements in Instruction Group."); + + MachineInstr *FirstLd = OG.front(); + const MachineMemOperand &OldM = getMemTarget(FirstLd); + MachineMemOperand *NewM = + MF->getMachineMemOperand(OldM.getPointerInfo(), OldM.getFlags(), + TotalSize, OldM.getAlign(), OldM.getAAInfo()); + + MachineOperand &MR = FirstLd->getOperand(0); + MachineOperand &MRBase = + (HII->isPostIncrement(*FirstLd) ? FirstLd->getOperand(2) + : FirstLd->getOperand(1)); + DebugLoc DL = OG.back()->getDebugLoc(); + + // Create the double register Load Instruction. + Register NewMR = MRI->createVirtualRegister(&Hexagon::DoubleRegsRegClass); + MachineInstr *LdI; + + // Post increments appear first in the sorted group + if (FirstLd->getOpcode() == Hexagon::L2_loadri_pi) { + auto IncDestMO = FirstLd->getOperand(1); + auto IncMO = FirstLd->getOperand(3); + LdI = BuildMI(*MF, DL, TII->get(Hexagon::L2_loadrd_pi)) + .addDef(NewMR, getKillRegState(MR.isKill()), MR.getSubReg()) + .add(IncDestMO) + .add(MRBase) + .add(IncMO); + LdI->addMemOperand(*MF, NewM); + } else { + auto OffMO = FirstLd->getOperand(2); + LdI = BuildMI(*MF, DL, TII->get(Hexagon::L2_loadrd_io)) + .addDef(NewMR, getKillRegState(MR.isKill()), MR.getSubReg()) + .add(MRBase) + .add(OffMO); + LdI->addMemOperand(*MF, NewM); + } + NG.push_back(LdI); + + auto getHalfReg = [&](MachineInstr *DoubleReg, unsigned SubReg, + MachineInstr *DstReg) { + Register DestReg = DstReg->getOperand(0).getReg(); + return BuildMI(*MF, DL, TII->get(Hexagon::COPY), DestReg) + .addReg(NewMR, getKillRegState(LdI->isKill()), SubReg); + }; + + MachineInstr *LdI_lo = getHalfReg(LdI, Hexagon::isub_lo, FirstLd); + MachineInstr *LdI_hi = getHalfReg(LdI, Hexagon::isub_hi, OG.back()); + NG.push_back(LdI_lo); + NG.push_back(LdI_hi); + + return true; +} + +// Replace instructions from the old group OG with instructions from the +// new group NG. Conceptually, remove all instructions in OG, and then +// insert all instructions in NG, starting at where the first instruction +// from OG was (in the order in which they appeared in the basic block). +// (The ordering in OG does not have to match the order in the basic block.) +bool HexagonLoadStoreWidening::replaceInsts(InstrGroup &OG, InstrGroup &NG) { + LLVM_DEBUG({ + dbgs() << "Replacing:\n"; + for (auto I : OG) + dbgs() << " " << *I; + dbgs() << "with\n"; + for (auto I : NG) + dbgs() << " " << *I; + }); + + MachineBasicBlock *MBB = OG.back()->getParent(); + MachineBasicBlock::iterator InsertAt = MBB->end(); + + // Need to establish the insertion point. + // For loads the best one is right before the first load in the OG, + // but in the order in which the insts occur in the program list. + // For stores the best point is right after the last store in the OG. + // Since the ordering in OG does not correspond + // to the order in the program list, we need to do some work to find + // the insertion point. + + // Create a set of all instructions in OG (for quick lookup). + InstrSet OldMemInsts; + for (auto *I : OG) + OldMemInsts.insert(I); + + if (Mode == WideningMode::Load) { + // Find the first load instruction in the block that is present in OG. + for (auto &I : *MBB) { + if (OldMemInsts.count(&I)) { + InsertAt = I; + break; + } + } + + assert((InsertAt != MBB->end()) && "Cannot locate any load from the group"); + + for (auto *I : NG) + MBB->insert(InsertAt, I); + } else { + // Find the last store instruction in the block that is present in OG. + auto I = MBB->rbegin(); + for (; I != MBB->rend(); ++I) { + if (OldMemInsts.count(&(*I))) { + InsertAt = (*I).getIterator(); + break; + } + } + + assert((I != MBB->rend()) && "Cannot locate any store from the group"); + + for (auto I = NG.rbegin(); I != NG.rend(); ++I) + MBB->insertAfter(InsertAt, *I); + } + + for (auto *I : OG) + I->eraseFromParent(); + + return true; +} + +// Break up the group into smaller groups, each of which can be replaced by +// a single wide load/store. Widen each such smaller group and replace the old +// instructions with the widened ones. +bool HexagonLoadStoreWidening::processGroup(InstrGroup &Group) { + bool Changed = false; + InstrGroup::iterator I = Group.begin(), E = Group.end(); + InstrGroup OG, NG; // Old and new groups. + unsigned CollectedSize; + + while (I != E) { + OG.clear(); + NG.clear(); + + bool Succ = selectInsts(I++, E, OG, CollectedSize, MaxWideSize) && + createWideInsts(OG, NG, CollectedSize) && replaceInsts(OG, NG); + if (!Succ) + continue; + + assert(OG.size() > 1 && "Created invalid group"); + assert(std::distance(I, E) + 1 >= int(OG.size()) && "Too many elements"); + I += OG.size() - 1; + + Changed = true; + } + + return Changed; +} + +// Process a single basic block: create the load/store groups, and replace them +// with the widened insts, if possible. Processing of each basic block +// is independent from processing of any other basic block. This transfor- +// mation could be stopped after having processed any basic block without +// any ill effects (other than not having performed widening in the unpro- +// cessed blocks). Also, the basic blocks can be processed in any order. +bool HexagonLoadStoreWidening::processBasicBlock(MachineBasicBlock &MBB) { + InstrGroupList SGs; + bool Changed = false; + + // To prevent long compile time check for max BB size. + if (MBB.size() > MaxMBBSizeForLoadStoreWidening) + return false; + + createGroups(MBB, SGs); + + auto Less = [this](const MachineInstr *A, const MachineInstr *B) -> bool { + return getOffset(A) < getOffset(B); + }; + for (auto &G : SGs) { + assert(G.size() > 1 && "Group with fewer than 2 elements"); + llvm::sort(G, Less); + + Changed |= processGroup(G); + } + + return Changed; +} + +bool HexagonLoadStoreWidening::run() { + bool Changed = false; + + for (auto &B : *MF) + Changed |= processBasicBlock(B); + + return Changed; +} + +FunctionPass *llvm::createHexagonStoreWidening() { + return new HexagonStoreWidening(); +} + +FunctionPass *llvm::createHexagonLoadWidening() { + return new HexagonLoadWidening(); +} diff --git a/llvm/lib/Target/Hexagon/HexagonPatterns.td b/llvm/lib/Target/Hexagon/HexagonPatterns.td index baa552fcd220d..52fa73f3798c3 100644 --- a/llvm/lib/Target/Hexagon/HexagonPatterns.td +++ b/llvm/lib/Target/Hexagon/HexagonPatterns.td @@ -171,7 +171,7 @@ class IsUGT: PatLeaf<(i32 imm), def SDEC1: SDNodeXFormgetSExtValue(); - return CurDAG->getTargetConstant(V-1, SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(V-1, SDLoc(N), MVT::i32); }]>; def UDEC1: SDNodeXForm; // def Imm64Lo: SDNodeXFormgetTargetConstant(int32_t (N->getSExtValue()), - SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(int32_t(N->getSExtValue()), + SDLoc(N), MVT::i32); }]>; def Imm64Hi: SDNodeXFormgetTargetConstant(int32_t (N->getSExtValue()>>32), - SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(int32_t(N->getSExtValue()>>32), + SDLoc(N), MVT::i32); }]>; @@ -406,7 +406,7 @@ def HexagonCONST32: SDNode<"HexagonISD::CONST32", SDTHexagonCONST32>; def HexagonCONST32_GP: SDNode<"HexagonISD::CONST32_GP", SDTHexagonCONST32>; def TruncI64ToI32: SDNodeXFormgetTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i32); }]>; def: Pat<(s32_0ImmPred:$s16), (A2_tfrsi imm:$s16)>; @@ -2597,14 +2597,14 @@ def IMM_BYTE : SDNodeXFormgetSExtValue(); - return CurDAG->getTargetConstant(imm, SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(imm, SDLoc(N), MVT::i32); }]>; def IMM_HALF : SDNodeXFormgetSExtValue(); - return CurDAG->getTargetConstant(imm, SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(imm, SDLoc(N), MVT::i32); }]>; def IMM_WORD : SDNodeXFormgetSExtValue(); - return CurDAG->getTargetConstant(imm, SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(imm, SDLoc(N), MVT::i32); }]>; def ToImmByte : OutPatFrag<(ops node:$R), (IMM_BYTE $R)>; diff --git a/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp b/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp deleted file mode 100644 index 9d8e5c53b8227..0000000000000 --- a/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp +++ /dev/null @@ -1,606 +0,0 @@ -//===- HexagonStoreWidening.cpp -------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// Replace sequences of "narrow" stores to adjacent memory locations with -// a fewer "wide" stores that have the same effect. -// For example, replace: -// S4_storeirb_io %100, 0, 0 ; store-immediate-byte -// S4_storeirb_io %100, 1, 0 ; store-immediate-byte -// with -// S4_storeirh_io %100, 0, 0 ; store-immediate-halfword -// The above is the general idea. The actual cases handled by the code -// may be a bit more complex. -// The purpose of this pass is to reduce the number of outstanding stores, -// or as one could say, "reduce store queue pressure". Also, wide stores -// mean fewer stores, and since there are only two memory instructions allowed -// per packet, it also means fewer packets, and ultimately fewer cycles. -//===---------------------------------------------------------------------===// - -#include "HexagonInstrInfo.h" -#include "HexagonRegisterInfo.h" -#include "HexagonSubtarget.h" -#include "llvm/ADT/SmallPtrSet.h" -#include "llvm/Analysis/AliasAnalysis.h" -#include "llvm/Analysis/MemoryLocation.h" -#include "llvm/CodeGen/MachineBasicBlock.h" -#include "llvm/CodeGen/MachineFunction.h" -#include "llvm/CodeGen/MachineFunctionPass.h" -#include "llvm/CodeGen/MachineInstr.h" -#include "llvm/CodeGen/MachineInstrBuilder.h" -#include "llvm/CodeGen/MachineMemOperand.h" -#include "llvm/CodeGen/MachineOperand.h" -#include "llvm/CodeGen/MachineRegisterInfo.h" -#include "llvm/IR/DebugLoc.h" -#include "llvm/InitializePasses.h" -#include "llvm/MC/MCInstrDesc.h" -#include "llvm/Pass.h" -#include "llvm/Support/Debug.h" -#include "llvm/Support/ErrorHandling.h" -#include "llvm/Support/MathExtras.h" -#include "llvm/Support/raw_ostream.h" -#include -#include -#include -#include -#include - -#define DEBUG_TYPE "hexagon-widen-stores" - -using namespace llvm; - -namespace llvm { - -FunctionPass *createHexagonStoreWidening(); -void initializeHexagonStoreWideningPass(PassRegistry&); - -} // end namespace llvm - -namespace { - - struct HexagonStoreWidening : public MachineFunctionPass { - const HexagonInstrInfo *TII; - const HexagonRegisterInfo *TRI; - const MachineRegisterInfo *MRI; - AliasAnalysis *AA; - MachineFunction *MF; - - public: - static char ID; - - HexagonStoreWidening() : MachineFunctionPass(ID) { - initializeHexagonStoreWideningPass(*PassRegistry::getPassRegistry()); - } - - bool runOnMachineFunction(MachineFunction &MF) override; - - StringRef getPassName() const override { return "Hexagon Store Widening"; } - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addRequired(); - AU.addPreserved(); - MachineFunctionPass::getAnalysisUsage(AU); - } - - static bool handledStoreType(const MachineInstr *MI); - - private: - static const int MaxWideSize = 4; - - using InstrGroup = std::vector; - using InstrGroupList = std::vector; - - bool instrAliased(InstrGroup &Stores, const MachineMemOperand &MMO); - bool instrAliased(InstrGroup &Stores, const MachineInstr *MI); - void createStoreGroup(MachineInstr *BaseStore, InstrGroup::iterator Begin, - InstrGroup::iterator End, InstrGroup &Group); - void createStoreGroups(MachineBasicBlock &MBB, - InstrGroupList &StoreGroups); - bool processBasicBlock(MachineBasicBlock &MBB); - bool processStoreGroup(InstrGroup &Group); - bool selectStores(InstrGroup::iterator Begin, InstrGroup::iterator End, - InstrGroup &OG, unsigned &TotalSize, unsigned MaxSize); - bool createWideStores(InstrGroup &OG, InstrGroup &NG, unsigned TotalSize); - bool replaceStores(InstrGroup &OG, InstrGroup &NG); - bool storesAreAdjacent(const MachineInstr *S1, const MachineInstr *S2); - }; - -} // end anonymous namespace - -char HexagonStoreWidening::ID = 0; - -INITIALIZE_PASS_BEGIN(HexagonStoreWidening, "hexagon-widen-stores", - "Hexason Store Widening", false, false) -INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass) -INITIALIZE_PASS_END(HexagonStoreWidening, "hexagon-widen-stores", - "Hexagon Store Widening", false, false) - -// Some local helper functions... -static unsigned getBaseAddressRegister(const MachineInstr *MI) { - const MachineOperand &MO = MI->getOperand(0); - assert(MO.isReg() && "Expecting register operand"); - return MO.getReg(); -} - -static int64_t getStoreOffset(const MachineInstr *MI) { - unsigned OpC = MI->getOpcode(); - assert(HexagonStoreWidening::handledStoreType(MI) && "Unhandled opcode"); - - switch (OpC) { - case Hexagon::S4_storeirb_io: - case Hexagon::S4_storeirh_io: - case Hexagon::S4_storeiri_io: { - const MachineOperand &MO = MI->getOperand(1); - assert(MO.isImm() && "Expecting immediate offset"); - return MO.getImm(); - } - } - dbgs() << *MI; - llvm_unreachable("Store offset calculation missing for a handled opcode"); - return 0; -} - -static const MachineMemOperand &getStoreTarget(const MachineInstr *MI) { - assert(!MI->memoperands_empty() && "Expecting memory operands"); - return **MI->memoperands_begin(); -} - -// Filtering function: any stores whose opcodes are not "approved" of by -// this function will not be subjected to widening. -inline bool HexagonStoreWidening::handledStoreType(const MachineInstr *MI) { - // For now, only handle stores of immediate values. - // Also, reject stores to stack slots. - unsigned Opc = MI->getOpcode(); - switch (Opc) { - case Hexagon::S4_storeirb_io: - case Hexagon::S4_storeirh_io: - case Hexagon::S4_storeiri_io: - // Base address must be a register. (Implement FI later.) - return MI->getOperand(0).isReg(); - default: - return false; - } -} - -// Check if the machine memory operand MMO is aliased with any of the -// stores in the store group Stores. -bool HexagonStoreWidening::instrAliased(InstrGroup &Stores, - const MachineMemOperand &MMO) { - if (!MMO.getValue()) - return true; - - MemoryLocation L(MMO.getValue(), MMO.getSize(), MMO.getAAInfo()); - - for (auto *SI : Stores) { - const MachineMemOperand &SMO = getStoreTarget(SI); - if (!SMO.getValue()) - return true; - - MemoryLocation SL(SMO.getValue(), SMO.getSize(), SMO.getAAInfo()); - if (!AA->isNoAlias(L, SL)) - return true; - } - - return false; -} - -// Check if the machine instruction MI accesses any storage aliased with -// any store in the group Stores. -bool HexagonStoreWidening::instrAliased(InstrGroup &Stores, - const MachineInstr *MI) { - for (auto &I : MI->memoperands()) - if (instrAliased(Stores, *I)) - return true; - return false; -} - -// Inspect a machine basic block, and generate store groups out of stores -// encountered in the block. -// -// A store group is a group of stores that use the same base register, -// and which can be reordered within that group without altering the -// semantics of the program. A single store group could be widened as -// a whole, if there existed a single store instruction with the same -// semantics as the entire group. In many cases, a single store group -// may need more than one wide store. -void HexagonStoreWidening::createStoreGroups(MachineBasicBlock &MBB, - InstrGroupList &StoreGroups) { - InstrGroup AllInsns; - - // Copy all instruction pointers from the basic block to a temporary - // list. This will allow operating on the list, and modifying its - // elements without affecting the basic block. - for (auto &I : MBB) - AllInsns.push_back(&I); - - // Traverse all instructions in the AllInsns list, and if we encounter - // a store, then try to create a store group starting at that instruction - // i.e. a sequence of independent stores that can be widened. - for (auto I = AllInsns.begin(), E = AllInsns.end(); I != E; ++I) { - MachineInstr *MI = *I; - // Skip null pointers (processed instructions). - if (!MI || !handledStoreType(MI)) - continue; - - // Found a store. Try to create a store group. - InstrGroup G; - createStoreGroup(MI, I+1, E, G); - if (G.size() > 1) - StoreGroups.push_back(G); - } -} - -// Create a single store group. The stores need to be independent between -// themselves, and also there cannot be other instructions between them -// that could read or modify storage being stored into. -void HexagonStoreWidening::createStoreGroup(MachineInstr *BaseStore, - InstrGroup::iterator Begin, InstrGroup::iterator End, InstrGroup &Group) { - assert(handledStoreType(BaseStore) && "Unexpected instruction"); - unsigned BaseReg = getBaseAddressRegister(BaseStore); - InstrGroup Other; - - Group.push_back(BaseStore); - - for (auto I = Begin; I != End; ++I) { - MachineInstr *MI = *I; - if (!MI) - continue; - - if (handledStoreType(MI)) { - // If this store instruction is aliased with anything already in the - // group, terminate the group now. - if (instrAliased(Group, getStoreTarget(MI))) - return; - // If this store is aliased to any of the memory instructions we have - // seen so far (that are not a part of this group), terminate the group. - if (instrAliased(Other, getStoreTarget(MI))) - return; - - unsigned BR = getBaseAddressRegister(MI); - if (BR == BaseReg) { - Group.push_back(MI); - *I = nullptr; - continue; - } - } - - // Assume calls are aliased to everything. - if (MI->isCall() || MI->hasUnmodeledSideEffects()) - return; - - if (MI->mayLoadOrStore()) { - if (MI->hasOrderedMemoryRef() || instrAliased(Group, MI)) - return; - Other.push_back(MI); - } - } // for -} - -// Check if store instructions S1 and S2 are adjacent. More precisely, -// S2 has to access memory immediately following that accessed by S1. -bool HexagonStoreWidening::storesAreAdjacent(const MachineInstr *S1, - const MachineInstr *S2) { - if (!handledStoreType(S1) || !handledStoreType(S2)) - return false; - - const MachineMemOperand &S1MO = getStoreTarget(S1); - - // Currently only handling immediate stores. - int Off1 = S1->getOperand(1).getImm(); - int Off2 = S2->getOperand(1).getImm(); - - return (Off1 >= 0) ? Off1 + S1MO.getSize().getValue() == unsigned(Off2) - : int(Off1 + S1MO.getSize().getValue()) == Off2; -} - -/// Given a sequence of adjacent stores, and a maximum size of a single wide -/// store, pick a group of stores that can be replaced by a single store -/// of size not exceeding MaxSize. The selected sequence will be recorded -/// in OG ("old group" of instructions). -/// OG should be empty on entry, and should be left empty if the function -/// fails. -bool HexagonStoreWidening::selectStores(InstrGroup::iterator Begin, - InstrGroup::iterator End, InstrGroup &OG, unsigned &TotalSize, - unsigned MaxSize) { - assert(Begin != End && "No instructions to analyze"); - assert(OG.empty() && "Old group not empty on entry"); - - if (std::distance(Begin, End) <= 1) - return false; - - MachineInstr *FirstMI = *Begin; - assert(!FirstMI->memoperands_empty() && "Expecting some memory operands"); - const MachineMemOperand &FirstMMO = getStoreTarget(FirstMI); - unsigned Alignment = FirstMMO.getAlign().value(); - unsigned SizeAccum = FirstMMO.getSize().getValue(); - unsigned FirstOffset = getStoreOffset(FirstMI); - - // The initial value of SizeAccum should always be a power of 2. - assert(isPowerOf2_32(SizeAccum) && "First store size not a power of 2"); - - // If the size of the first store equals to or exceeds the limit, do nothing. - if (SizeAccum >= MaxSize) - return false; - - // If the size of the first store is greater than or equal to the address - // stored to, then the store cannot be made any wider. - if (SizeAccum >= Alignment) - return false; - - // The offset of a store will put restrictions on how wide the store can be. - // Offsets in stores of size 2^n bytes need to have the n lowest bits be 0. - // If the first store already exhausts the offset limits, quit. Test this - // by checking if the next wider size would exceed the limit. - if ((2*SizeAccum-1) & FirstOffset) - return false; - - OG.push_back(FirstMI); - MachineInstr *S1 = FirstMI; - - // Pow2Num will be the largest number of elements in OG such that the sum - // of sizes of stores 0...Pow2Num-1 will be a power of 2. - unsigned Pow2Num = 1; - unsigned Pow2Size = SizeAccum; - - // Be greedy: keep accumulating stores as long as they are to adjacent - // memory locations, and as long as the total number of bytes stored - // does not exceed the limit (MaxSize). - // Keep track of when the total size covered is a power of 2, since - // this is a size a single store can cover. - for (InstrGroup::iterator I = Begin + 1; I != End; ++I) { - MachineInstr *S2 = *I; - // Stores are sorted, so if S1 and S2 are not adjacent, there won't be - // any other store to fill the "hole". - if (!storesAreAdjacent(S1, S2)) - break; - - unsigned S2Size = getStoreTarget(S2).getSize().getValue(); - if (SizeAccum + S2Size > std::min(MaxSize, Alignment)) - break; - - OG.push_back(S2); - SizeAccum += S2Size; - if (isPowerOf2_32(SizeAccum)) { - Pow2Num = OG.size(); - Pow2Size = SizeAccum; - } - if ((2*Pow2Size-1) & FirstOffset) - break; - - S1 = S2; - } - - // The stores don't add up to anything that can be widened. Clean up. - if (Pow2Num <= 1) { - OG.clear(); - return false; - } - - // Only leave the stored being widened. - OG.resize(Pow2Num); - TotalSize = Pow2Size; - return true; -} - -/// Given an "old group" OG of stores, create a "new group" NG of instructions -/// to replace them. Ideally, NG would only have a single instruction in it, -/// but that may only be possible for store-immediate. -bool HexagonStoreWidening::createWideStores(InstrGroup &OG, InstrGroup &NG, - unsigned TotalSize) { - // XXX Current limitations: - // - only expect stores of immediate values in OG, - // - only handle a TotalSize of up to 4. - - if (TotalSize > 4) - return false; - - unsigned Acc = 0; // Value accumulator. - unsigned Shift = 0; - - for (MachineInstr *MI : OG) { - const MachineMemOperand &MMO = getStoreTarget(MI); - MachineOperand &SO = MI->getOperand(2); // Source. - assert(SO.isImm() && "Expecting an immediate operand"); - - unsigned NBits = MMO.getSize().getValue() * 8; - unsigned Mask = (0xFFFFFFFFU >> (32-NBits)); - unsigned Val = (SO.getImm() & Mask) << Shift; - Acc |= Val; - Shift += NBits; - } - - MachineInstr *FirstSt = OG.front(); - DebugLoc DL = OG.back()->getDebugLoc(); - const MachineMemOperand &OldM = getStoreTarget(FirstSt); - MachineMemOperand *NewM = - MF->getMachineMemOperand(OldM.getPointerInfo(), OldM.getFlags(), - TotalSize, OldM.getAlign(), OldM.getAAInfo()); - - if (Acc < 0x10000) { - // Create mem[hw] = #Acc - unsigned WOpc = (TotalSize == 2) ? Hexagon::S4_storeirh_io : - (TotalSize == 4) ? Hexagon::S4_storeiri_io : 0; - assert(WOpc && "Unexpected size"); - - int Val = (TotalSize == 2) ? int16_t(Acc) : int(Acc); - const MCInstrDesc &StD = TII->get(WOpc); - MachineOperand &MR = FirstSt->getOperand(0); - int64_t Off = FirstSt->getOperand(1).getImm(); - MachineInstr *StI = - BuildMI(*MF, DL, StD) - .addReg(MR.getReg(), getKillRegState(MR.isKill()), MR.getSubReg()) - .addImm(Off) - .addImm(Val); - StI->addMemOperand(*MF, NewM); - NG.push_back(StI); - } else { - // Create vreg = A2_tfrsi #Acc; mem[hw] = vreg - const MCInstrDesc &TfrD = TII->get(Hexagon::A2_tfrsi); - const TargetRegisterClass *RC = TII->getRegClass(TfrD, 0, TRI, *MF); - Register VReg = MF->getRegInfo().createVirtualRegister(RC); - MachineInstr *TfrI = BuildMI(*MF, DL, TfrD, VReg) - .addImm(int(Acc)); - NG.push_back(TfrI); - - unsigned WOpc = (TotalSize == 2) ? Hexagon::S2_storerh_io : - (TotalSize == 4) ? Hexagon::S2_storeri_io : 0; - assert(WOpc && "Unexpected size"); - - const MCInstrDesc &StD = TII->get(WOpc); - MachineOperand &MR = FirstSt->getOperand(0); - int64_t Off = FirstSt->getOperand(1).getImm(); - MachineInstr *StI = - BuildMI(*MF, DL, StD) - .addReg(MR.getReg(), getKillRegState(MR.isKill()), MR.getSubReg()) - .addImm(Off) - .addReg(VReg, RegState::Kill); - StI->addMemOperand(*MF, NewM); - NG.push_back(StI); - } - - return true; -} - -// Replace instructions from the old group OG with instructions from the -// new group NG. Conceptually, remove all instructions in OG, and then -// insert all instructions in NG, starting at where the first instruction -// from OG was (in the order in which they appeared in the basic block). -// (The ordering in OG does not have to match the order in the basic block.) -bool HexagonStoreWidening::replaceStores(InstrGroup &OG, InstrGroup &NG) { - LLVM_DEBUG({ - dbgs() << "Replacing:\n"; - for (auto I : OG) - dbgs() << " " << *I; - dbgs() << "with\n"; - for (auto I : NG) - dbgs() << " " << *I; - }); - - MachineBasicBlock *MBB = OG.back()->getParent(); - MachineBasicBlock::iterator InsertAt = MBB->end(); - - // Need to establish the insertion point. The best one is right before - // the first store in the OG, but in the order in which the stores occur - // in the program list. Since the ordering in OG does not correspond - // to the order in the program list, we need to do some work to find - // the insertion point. - - // Create a set of all instructions in OG (for quick lookup). - SmallPtrSet InstrSet; - for (auto *I : OG) - InstrSet.insert(I); - - // Traverse the block, until we hit an instruction from OG. - for (auto &I : *MBB) { - if (InstrSet.count(&I)) { - InsertAt = I; - break; - } - } - - assert((InsertAt != MBB->end()) && "Cannot locate any store from the group"); - - bool AtBBStart = false; - - // InsertAt points at the first instruction that will be removed. We need - // to move it out of the way, so it remains valid after removing all the - // old stores, and so we are able to recover it back to the proper insertion - // position. - if (InsertAt != MBB->begin()) - --InsertAt; - else - AtBBStart = true; - - for (auto *I : OG) - I->eraseFromParent(); - - if (!AtBBStart) - ++InsertAt; - else - InsertAt = MBB->begin(); - - for (auto *I : NG) - MBB->insert(InsertAt, I); - - return true; -} - -// Break up the group into smaller groups, each of which can be replaced by -// a single wide store. Widen each such smaller group and replace the old -// instructions with the widened ones. -bool HexagonStoreWidening::processStoreGroup(InstrGroup &Group) { - bool Changed = false; - InstrGroup::iterator I = Group.begin(), E = Group.end(); - InstrGroup OG, NG; // Old and new groups. - unsigned CollectedSize; - - while (I != E) { - OG.clear(); - NG.clear(); - - bool Succ = selectStores(I++, E, OG, CollectedSize, MaxWideSize) && - createWideStores(OG, NG, CollectedSize) && - replaceStores(OG, NG); - if (!Succ) - continue; - - assert(OG.size() > 1 && "Created invalid group"); - assert(distance(I, E)+1 >= int(OG.size()) && "Too many elements"); - I += OG.size()-1; - - Changed = true; - } - - return Changed; -} - -// Process a single basic block: create the store groups, and replace them -// with the widened stores, if possible. Processing of each basic block -// is independent from processing of any other basic block. This transfor- -// mation could be stopped after having processed any basic block without -// any ill effects (other than not having performed widening in the unpro- -// cessed blocks). Also, the basic blocks can be processed in any order. -bool HexagonStoreWidening::processBasicBlock(MachineBasicBlock &MBB) { - InstrGroupList SGs; - bool Changed = false; - - createStoreGroups(MBB, SGs); - - auto Less = [] (const MachineInstr *A, const MachineInstr *B) -> bool { - return getStoreOffset(A) < getStoreOffset(B); - }; - for (auto &G : SGs) { - assert(G.size() > 1 && "Store group with fewer than 2 elements"); - llvm::sort(G, Less); - - Changed |= processStoreGroup(G); - } - - return Changed; -} - -bool HexagonStoreWidening::runOnMachineFunction(MachineFunction &MFn) { - if (skipFunction(MFn.getFunction())) - return false; - - MF = &MFn; - auto &ST = MFn.getSubtarget(); - TII = ST.getInstrInfo(); - TRI = ST.getRegisterInfo(); - MRI = &MFn.getRegInfo(); - AA = &getAnalysis().getAAResults(); - - bool Changed = false; - - for (auto &B : MFn) - Changed |= processBasicBlock(B); - - return Changed; -} - -FunctionPass *llvm::createHexagonStoreWidening() { - return new HexagonStoreWidening(); -} diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp index 884a7c599218c..a97bc1985c614 100644 --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -66,6 +66,9 @@ static cl::opt DisableStoreWidening("disable-store-widen", cl::Hidden, cl::init(false), cl::desc("Disable store widening")); +static cl::opt DisableLoadWidening("disable-load-widen", cl::Hidden, + cl::desc("Disable load widening")); + static cl::opt EnableExpandCondsets("hexagon-expand-condsets", cl::init(true), cl::Hidden, cl::desc("Early expansion of MUX")); @@ -229,6 +232,7 @@ FunctionPass *createHexagonRDFOpt(); FunctionPass *createHexagonSplitConst32AndConst64(); FunctionPass *createHexagonSplitDoubleRegs(); FunctionPass *createHexagonStoreWidening(); +FunctionPass *createHexagonLoadWidening(); FunctionPass *createHexagonTfrCleanup(); FunctionPass *createHexagonVectorCombineLegacyPass(); FunctionPass *createHexagonVectorPrint(); @@ -460,6 +464,8 @@ void HexagonPassConfig::addPreRegAlloc() { insertPass(&VirtRegRewriterID, &HexagonTfrCleanupID); if (!DisableStoreWidening) addPass(createHexagonStoreWidening()); + if (!DisableLoadWidening) + addPass(createHexagonLoadWidening()); if (EnableGenMemAbs) addPass(createHexagonGenMemAbsolute()); if (!DisableHardwareLoops) diff --git a/llvm/lib/Target/Lanai/LanaiISelLowering.cpp b/llvm/lib/Target/Lanai/LanaiISelLowering.cpp index f88c9d19d1bc8..da55b7b8c6d68 100644 --- a/llvm/lib/Target/Lanai/LanaiISelLowering.cpp +++ b/llvm/lib/Target/Lanai/LanaiISelLowering.cpp @@ -873,8 +873,7 @@ SDValue LanaiTargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) const { LPCC::CondCode CC = IntCondCCodeToICC(Cond, DL, RHS, DAG); SDValue TargetCC = DAG.getConstant(CC, DL, MVT::i32); - SDValue Glue = - DAG.getNode(LanaiISD::SET_FLAG, DL, MVT::Glue, LHS, RHS, TargetCC); + SDValue Glue = DAG.getNode(LanaiISD::SET_FLAG, DL, MVT::Glue, LHS, RHS); return DAG.getNode(LanaiISD::BR_CC, DL, Op.getValueType(), Chain, Dest, TargetCC, Glue); @@ -973,8 +972,7 @@ SDValue LanaiTargetLowering::LowerSETCC(SDValue Op, SelectionDAG &DAG) const { LPCC::CondCode CC = IntCondCCodeToICC(Cond, DL, RHS, DAG); SDValue TargetCC = DAG.getConstant(CC, DL, MVT::i32); - SDValue Glue = - DAG.getNode(LanaiISD::SET_FLAG, DL, MVT::Glue, LHS, RHS, TargetCC); + SDValue Glue = DAG.getNode(LanaiISD::SET_FLAG, DL, MVT::Glue, LHS, RHS); return DAG.getNode(LanaiISD::SETCC, DL, Op.getValueType(), TargetCC, Glue); } @@ -990,12 +988,10 @@ SDValue LanaiTargetLowering::LowerSELECT_CC(SDValue Op, LPCC::CondCode CC = IntCondCCodeToICC(Cond, DL, RHS, DAG); SDValue TargetCC = DAG.getConstant(CC, DL, MVT::i32); - SDValue Glue = - DAG.getNode(LanaiISD::SET_FLAG, DL, MVT::Glue, LHS, RHS, TargetCC); + SDValue Glue = DAG.getNode(LanaiISD::SET_FLAG, DL, MVT::Glue, LHS, RHS); - SDVTList VTs = DAG.getVTList(Op.getValueType(), MVT::Glue); - return DAG.getNode(LanaiISD::SELECT_CC, DL, VTs, TrueV, FalseV, TargetCC, - Glue); + return DAG.getNode(LanaiISD::SELECT_CC, DL, Op.getValueType(), TrueV, FalseV, + TargetCC, Glue); } SDValue LanaiTargetLowering::LowerVASTART(SDValue Op, SelectionDAG &DAG) const { diff --git a/llvm/lib/Target/Lanai/LanaiInstrInfo.td b/llvm/lib/Target/Lanai/LanaiInstrInfo.td index 638b3c94d0544..6feed27b7047b 100644 --- a/llvm/lib/Target/Lanai/LanaiInstrInfo.td +++ b/llvm/lib/Target/Lanai/LanaiInstrInfo.td @@ -74,7 +74,8 @@ def HI16 : SDNodeXForm; def NEG : SDNodeXFormgetTargetConstant(-N->getSExtValue(), SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(-N->getSExtValue(), SDLoc(N), + MVT::i32); }]>; def LO21 : SDNodeXForm; def HasLAM_BH : Predicate<"Subtarget->hasLAM_BH()">; +def FeatureLD_SEQ_SA + : SubtargetFeature<"ld-seq-sa", "HasLD_SEQ_SA", "true", + "Don't use load-load barrier (dbar 0x700).">; +def HasLD_SEQ_SA : Predicate<"Subtarget->hasLD_SEQ_SA()">; + def TunePreferWInst : SubtargetFeature<"prefer-w-inst", "PreferWInst", "true", "Prefer instructions with W suffix">; diff --git a/llvm/lib/Target/LoongArch/LoongArchExpandAtomicPseudoInsts.cpp b/llvm/lib/Target/LoongArch/LoongArchExpandAtomicPseudoInsts.cpp index 18a532b55ee5a..35f84425cb0eb 100644 --- a/llvm/lib/Target/LoongArch/LoongArchExpandAtomicPseudoInsts.cpp +++ b/llvm/lib/Target/LoongArch/LoongArchExpandAtomicPseudoInsts.cpp @@ -588,7 +588,9 @@ bool LoongArchExpandAtomicPseudo::expandAtomicCmpXchg( // .tail: // dbar 0x700 | acquire - BuildMI(TailMBB, DL, TII->get(LoongArch::DBAR)).addImm(hint); + + if (!(hint == 0x700 && MF->getSubtarget().hasLD_SEQ_SA())) + BuildMI(TailMBB, DL, TII->get(LoongArch::DBAR)).addImm(hint); NextMBBI = MBB.end(); MI.eraseFromParent(); diff --git a/llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp b/llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp index b7b8987e4084b..30742c79653b5 100644 --- a/llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp +++ b/llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp @@ -564,7 +564,7 @@ bool LoongArchPreRAExpandPseudo::expandFunctionCALL( ? MF->getRegInfo().createVirtualRegister(&LoongArch::GPRRegClass) : LoongArch::R1; - bool UseGOT = Func.isGlobal() && !Func.getGlobal()->isDSOLocal(); + bool UseGOT = Func.getTargetFlags() == LoongArchII::MO_CALL_PLT; unsigned MO = UseGOT ? LoongArchII::MO_GOT_PC_HI : LoongArchII::MO_PCREL_LO; unsigned LAOpcode = UseGOT ? LoongArch::LDX_D : LoongArch::ADD_D; expandLargeAddressLoad(MBB, MBBI, NextMBBI, LAOpcode, MO, Func, AddrReg, diff --git a/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp b/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp index 70ed1e6fbdbda..d330f95355601 100644 --- a/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp +++ b/llvm/lib/Target/LoongArch/LoongArchISelDAGToDAG.cpp @@ -61,7 +61,7 @@ void LoongArchDAGToDAGISel::Select(SDNode *Node) { SDValue SrcReg = CurDAG->getRegister(LoongArch::R0, GRLenVT); // The instructions in the sequence are handled here. for (LoongArchMatInt::Inst &Inst : LoongArchMatInt::generateInstSeq(Imm)) { - SDValue SDImm = CurDAG->getTargetConstant(Inst.Imm, DL, GRLenVT); + SDValue SDImm = CurDAG->getSignedTargetConstant(Inst.Imm, DL, GRLenVT); switch (Inst.Opc) { case LoongArch::LU12I_W: Result = CurDAG->getMachineNode(Inst.Opc, DL, GRLenVT, SDImm); diff --git a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp index 5c567ed4a6f72..1abb428175eea 100644 --- a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp +++ b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp @@ -1533,7 +1533,7 @@ SDValue LoongArchTargetLowering::lowerFRAMEADDR(SDValue Op, while (Depth--) { int Offset = -(GRLenInBytes * 2); SDValue Ptr = DAG.getNode(ISD::ADD, DL, VT, FrameAddr, - DAG.getIntPtrConstant(Offset, DL)); + DAG.getSignedConstant(Offset, DL, VT)); FrameAddr = DAG.getLoad(VT, DL, DAG.getEntryNode(), Ptr, MachinePointerInfo()); } @@ -2548,7 +2548,8 @@ SDValue LoongArchTargetLowering::lowerShiftLeftParts(SDValue Op, SDValue Zero = DAG.getConstant(0, DL, VT); SDValue One = DAG.getConstant(1, DL, VT); - SDValue MinusGRLen = DAG.getConstant(-(int)Subtarget.getGRLen(), DL, VT); + SDValue MinusGRLen = + DAG.getSignedConstant(-(int)Subtarget.getGRLen(), DL, VT); SDValue GRLenMinus1 = DAG.getConstant(Subtarget.getGRLen() - 1, DL, VT); SDValue ShamtMinusGRLen = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusGRLen); SDValue GRLenMinus1Shamt = DAG.getNode(ISD::XOR, DL, VT, Shamt, GRLenMinus1); @@ -2599,7 +2600,8 @@ SDValue LoongArchTargetLowering::lowerShiftRightParts(SDValue Op, SDValue Zero = DAG.getConstant(0, DL, VT); SDValue One = DAG.getConstant(1, DL, VT); - SDValue MinusGRLen = DAG.getConstant(-(int)Subtarget.getGRLen(), DL, VT); + SDValue MinusGRLen = + DAG.getSignedConstant(-(int)Subtarget.getGRLen(), DL, VT); SDValue GRLenMinus1 = DAG.getConstant(Subtarget.getGRLen() - 1, DL, VT); SDValue ShamtMinusGRLen = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusGRLen); SDValue GRLenMinus1Shamt = DAG.getNode(ISD::XOR, DL, VT, Shamt, GRLenMinus1); @@ -6123,8 +6125,8 @@ void LoongArchTargetLowering::LowerAsmOperandForConstraint( if (auto *C = dyn_cast(Op)) { uint64_t CVal = C->getSExtValue(); if (isInt<16>(CVal)) - Ops.push_back( - DAG.getTargetConstant(CVal, SDLoc(Op), Subtarget.getGRLenVT())); + Ops.push_back(DAG.getSignedTargetConstant(CVal, SDLoc(Op), + Subtarget.getGRLenVT())); } return; case 'I': @@ -6132,8 +6134,8 @@ void LoongArchTargetLowering::LowerAsmOperandForConstraint( if (auto *C = dyn_cast(Op)) { uint64_t CVal = C->getSExtValue(); if (isInt<12>(CVal)) - Ops.push_back( - DAG.getTargetConstant(CVal, SDLoc(Op), Subtarget.getGRLenVT())); + Ops.push_back(DAG.getSignedTargetConstant(CVal, SDLoc(Op), + Subtarget.getGRLenVT())); } return; case 'J': diff --git a/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td b/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td index cd1500229f4aa..7993f4f132693 100644 --- a/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td +++ b/llvm/lib/Target/LoongArch/LoongArchInstrInfo.td @@ -481,8 +481,8 @@ def simm12_plus1 : ImmLeafgetTargetConstant(-N->getSExtValue(), SDLoc(N), - N->getValueType(0)); + return CurDAG->getSignedTargetConstant(-N->getSExtValue(), SDLoc(N), + N->getValueType(0)); }]>; // FP immediate patterns. @@ -538,16 +538,16 @@ def AddiPair : PatLeaf<(imm), [{ // Return -2048 if immediate is negative or 2047 if positive. def AddiPairImmLarge : SDNodeXFormgetSExtValue() < 0 ? -2048 : 2047; - return CurDAG->getTargetConstant(Imm, SDLoc(N), - N->getValueType(0)); + return CurDAG->getSignedTargetConstant(Imm, SDLoc(N), + N->getValueType(0)); }]>; // Return imm - (imm < 0 ? -2048 : 2047). def AddiPairImmSmall : SDNodeXFormgetSExtValue(); int64_t Adj = Imm < 0 ? -2048 : 2047; - return CurDAG->getTargetConstant(Imm - Adj, SDLoc(N), - N->getValueType(0)); + return CurDAG->getSignedTargetConstant(Imm - Adj, SDLoc(N), + N->getValueType(0)); }]>; // Check if (mul r, imm) can be optimized to (SLLI (ALSL r, r, i0), i1), diff --git a/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td b/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td index 1a267b3e42a30..ced430216b2fe 100644 --- a/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td +++ b/llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td @@ -223,12 +223,14 @@ def f64imm_vldi : PatLeaf<(fpimm), [{ def to_f32imm_vldi : SDNodeXFormgetValueAPF().bitcastToAPInt().getZExtValue(); x = (0b11011 << 8) | (((x >> 24) & 0xc0) ^ 0x40) | ((x >> 19) & 0x3f); - return CurDAG->getTargetConstant(SignExtend32<13>(x), SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(SignExtend32<13>(x), SDLoc(N), + MVT::i32); }]>; def to_f64imm_vldi : SDNodeXFormgetValueAPF().bitcastToAPInt().getZExtValue(); x = (0b11100 << 8) | (((x >> 56) & 0xc0) ^ 0x40) | ((x >> 48) & 0x3f); - return CurDAG->getTargetConstant(SignExtend32<13>(x), SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(SignExtend32<13>(x), SDLoc(N), + MVT::i32); }]>; //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp b/llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp index f496085c88356..fcad5f7460bb2 100644 --- a/llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp +++ b/llvm/lib/Target/M68k/M68kISelDAGToDAG.cpp @@ -289,17 +289,17 @@ class M68kDAGToDAGISel : public SelectionDAGISel { /// Return a target constant with the specified value of type i8. inline SDValue getI8Imm(int64_t Imm, const SDLoc &DL) { - return CurDAG->getTargetConstant(Imm, DL, MVT::i8); + return CurDAG->getSignedTargetConstant(Imm, DL, MVT::i8); } /// Return a target constant with the specified value of type i8. inline SDValue getI16Imm(int64_t Imm, const SDLoc &DL) { - return CurDAG->getTargetConstant(Imm, DL, MVT::i16); + return CurDAG->getSignedTargetConstant(Imm, DL, MVT::i16); } /// Return a target constant with the specified value, of type i32. inline SDValue getI32Imm(int64_t Imm, const SDLoc &DL) { - return CurDAG->getTargetConstant(Imm, DL, MVT::i32); + return CurDAG->getSignedTargetConstant(Imm, DL, MVT::i32); } /// Return a reference to the TargetInstrInfo, casted to the target-specific diff --git a/llvm/lib/Target/M68k/M68kISelLowering.cpp b/llvm/lib/Target/M68k/M68kISelLowering.cpp index b2726c01c334f..ff966baecf27d 100644 --- a/llvm/lib/Target/M68k/M68kISelLowering.cpp +++ b/llvm/lib/Target/M68k/M68kISelLowering.cpp @@ -2399,8 +2399,8 @@ SDValue M68kTargetLowering::LowerSELECT(SDValue Op, SelectionDAG &DAG) const { // Block CopyFromReg so partial register stalls are avoided. T1.getOpcode() != ISD::CopyFromReg && T2.getOpcode() != ISD::CopyFromReg) { - SDVTList VTs = DAG.getVTList(T1.getValueType(), MVT::Glue); - SDValue Cmov = DAG.getNode(M68kISD::CMOV, DL, VTs, T2, T1, CC, Cond); + SDValue Cmov = + DAG.getNode(M68kISD::CMOV, DL, T1.getValueType(), T2, T1, CC, Cond); return DAG.getNode(ISD::TRUNCATE, DL, Op.getValueType(), Cmov); } } @@ -2418,9 +2418,8 @@ SDValue M68kTargetLowering::LowerSELECT(SDValue Op, SelectionDAG &DAG) const { // M68kISD::CMOV means set the result (which is operand 1) to the RHS if // condition is true. - SDVTList VTs = DAG.getVTList(Op.getValueType(), MVT::Glue); SDValue Ops[] = {Op2, Op1, CC, Cond}; - return DAG.getNode(M68kISD::CMOV, DL, VTs, Ops); + return DAG.getNode(M68kISD::CMOV, DL, Op.getValueType(), Ops); } /// Return true if node is an ISD::AND or ISD::OR of two M68k::SETcc nodes @@ -2948,7 +2947,7 @@ void M68kTargetLowering::LowerAsmOperandForConstraint(SDValue Op, llvm_unreachable("Unhandled constant constraint"); } - Result = DAG.getTargetConstant(Val, SDLoc(Op), Op.getValueType()); + Result = DAG.getSignedTargetConstant(Val, SDLoc(Op), Op.getValueType()); break; } default: @@ -2984,7 +2983,7 @@ void M68kTargetLowering::LowerAsmOperandForConstraint(SDValue Op, llvm_unreachable("Unhandled constant constraint"); } - Result = DAG.getTargetConstant(Val, SDLoc(Op), Op.getValueType()); + Result = DAG.getSignedTargetConstant(Val, SDLoc(Op), Op.getValueType()); break; } default: @@ -3416,7 +3415,7 @@ SDValue M68kTargetLowering::LowerDYNAMIC_STACKALLOC(SDValue Op, Result = DAG.getNode(ISD::SUB, DL, VT, SP, Size); // Value if (Align > StackAlign) Result = DAG.getNode(ISD::AND, DL, VT, Result, - DAG.getConstant(-(uint64_t)Align, DL, VT)); + DAG.getSignedConstant(-(uint64_t)Align, DL, VT)); Chain = DAG.getCopyToReg(Chain, DL, SPReg, Result); // Output chain } @@ -3443,7 +3442,7 @@ SDValue M68kTargetLowering::LowerShiftLeftParts(SDValue Op, SDValue Zero = DAG.getConstant(0, DL, VT); SDValue One = DAG.getConstant(1, DL, VT); - SDValue MinusRegisterSize = DAG.getConstant(-32, DL, VT); + SDValue MinusRegisterSize = DAG.getSignedConstant(-32, DL, VT); SDValue RegisterSizeMinus1 = DAG.getConstant(32 - 1, DL, VT); SDValue ShamtMinusRegisterSize = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusRegisterSize); @@ -3495,7 +3494,7 @@ SDValue M68kTargetLowering::LowerShiftRightParts(SDValue Op, SelectionDAG &DAG, SDValue Zero = DAG.getConstant(0, DL, VT); SDValue One = DAG.getConstant(1, DL, VT); - SDValue MinusRegisterSize = DAG.getConstant(-32, DL, VT); + SDValue MinusRegisterSize = DAG.getSignedConstant(-32, DL, VT); SDValue RegisterSizeMinus1 = DAG.getConstant(32 - 1, DL, VT); SDValue ShamtMinusRegisterSize = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusRegisterSize); diff --git a/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp b/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp index 4338fc3c6ebba..85ebe71fa967d 100644 --- a/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp +++ b/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp @@ -278,7 +278,7 @@ bool MSP430DAGToDAGISel::SelectAddr(SDValue N, Disp = CurDAG->getTargetBlockAddress(AM.BlockAddr, MVT::i32, 0, 0/*AM.SymbolFlags*/); else - Disp = CurDAG->getTargetConstant(AM.Disp, SDLoc(N), MVT::i16); + Disp = CurDAG->getSignedTargetConstant(AM.Disp, SDLoc(N), MVT::i16); return true; } diff --git a/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp b/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp index 173c37cfd8c8f..3b03ec67dc8ce 100644 --- a/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp @@ -3936,8 +3936,8 @@ bool NVPTXDAGToDAGISel::SelectADDRri_imp( if (!CN->getAPIntValue().isSignedIntN(32)) return false; - Offset = CurDAG->getTargetConstant(CN->getSExtValue(), SDLoc(OpNode), - MVT::i32); + Offset = CurDAG->getSignedTargetConstant(CN->getSExtValue(), + SDLoc(OpNode), MVT::i32); return true; } } diff --git a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp index e93430a27dc32..62647b3128518 100644 --- a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp @@ -2714,10 +2714,10 @@ SDValue NVPTXTargetLowering::LowerFROUND32(SDValue Op, // RoundedA = (float) (int) ( A > 0 ? (A + 0.5f) : (A - 0.5f)) SDValue Bitcast = DAG.getNode(ISD::BITCAST, SL, MVT::i32, A); - const int SignBitMask = 0x80000000; + const unsigned SignBitMask = 0x80000000; SDValue Sign = DAG.getNode(ISD::AND, SL, MVT::i32, Bitcast, DAG.getConstant(SignBitMask, SL, MVT::i32)); - const int PointFiveInBits = 0x3F000000; + const unsigned PointFiveInBits = 0x3F000000; SDValue PointFiveWithSignRaw = DAG.getNode(ISD::OR, SL, MVT::i32, Sign, DAG.getConstant(PointFiveInBits, SL, MVT::i32)); @@ -2786,7 +2786,7 @@ SDValue NVPTXTargetLowering::LowerINT_TO_FP(SDValue Op, return DAG.getNode( ISD::FP_ROUND, Loc, MVT::bf16, DAG.getNode(Op.getOpcode(), Loc, MVT::f32, Op.getOperand(0)), - DAG.getIntPtrConstant(0, Loc)); + DAG.getIntPtrConstant(0, Loc, /*isTarget=*/true)); } // Everything else is considered legal. @@ -3031,9 +3031,9 @@ SDValue NVPTXTargetLowering::LowerVAARG(SDValue Op, SelectionDAG &DAG) const { ISD::ADD, DL, VAList.getValueType(), VAList, DAG.getConstant(MA->value() - 1, DL, VAList.getValueType())); - VAList = DAG.getNode( - ISD::AND, DL, VAList.getValueType(), VAList, - DAG.getConstant(-(int64_t)MA->value(), DL, VAList.getValueType())); + VAList = DAG.getNode(ISD::AND, DL, VAList.getValueType(), VAList, + DAG.getSignedConstant(-(int64_t)MA->value(), DL, + VAList.getValueType())); } // Increment the pointer, VAList, to the next vaarg diff --git a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index a4d818028c89d..4706051e60156 100644 --- a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -6605,8 +6605,8 @@ void PPCDAGToDAGISel::foldBoolExts(SDValue &Res, SDNode *&N) { SDLoc dl(N); EVT VT = N->getValueType(0); SDValue Cond = N->getOperand(0); - SDValue ConstTrue = - CurDAG->getConstant(N->getOpcode() == ISD::SIGN_EXTEND ? -1 : 1, dl, VT); + SDValue ConstTrue = CurDAG->getSignedConstant( + N->getOpcode() == ISD::SIGN_EXTEND ? -1 : 1, dl, VT); SDValue ConstFalse = CurDAG->getConstant(0, dl, VT); do { diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index daddd064b0a8f..f4d3668726164 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -2629,7 +2629,7 @@ SDValue PPC::get_VSPLTI_elt(SDNode *N, unsigned ByteSize, SelectionDAG &DAG) { // Finally, if this value fits in a 5 bit sext field, return it if (SignExtend32<5>(MaskVal) == MaskVal) - return DAG.getTargetConstant(MaskVal, SDLoc(N), MVT::i32); + return DAG.getSignedTargetConstant(MaskVal, SDLoc(N), MVT::i32); return SDValue(); } @@ -2817,7 +2817,7 @@ bool PPCTargetLowering::SelectAddressRegImm( int16_t imm = 0; if (isIntS16Immediate(N.getOperand(1), imm) && (!EncodingAlignment || isAligned(*EncodingAlignment, imm))) { - Disp = DAG.getTargetConstant(imm, dl, N.getValueType()); + Disp = DAG.getSignedTargetConstant(imm, dl, N.getValueType()); if (FrameIndexSDNode *FI = dyn_cast(N.getOperand(0))) { Base = DAG.getTargetFrameIndex(FI->getIndex(), N.getValueType()); fixupFuncForFI(DAG, FI->getIndex(), N.getValueType()); @@ -5181,7 +5181,7 @@ static SDNode *isBLACompatibleAddress(SDValue Op, SelectionDAG &DAG) { return nullptr; // Top 6 bits have to be sext of immediate. return DAG - .getConstant( + .getSignedConstant( (int)C->getZExtValue() >> 2, SDLoc(Op), DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout())) .getNode(); @@ -8963,9 +8963,10 @@ SDValue PPCTargetLowering::LowerINT_TO_FP(SDValue Op, if (Op.getValueType() == MVT::f32 && !Subtarget.hasFPCVT()) { if (IsStrict) - FP = DAG.getNode(ISD::STRICT_FP_ROUND, dl, - DAG.getVTList(MVT::f32, MVT::Other), - {Chain, FP, DAG.getIntPtrConstant(0, dl)}, Flags); + FP = DAG.getNode( + ISD::STRICT_FP_ROUND, dl, DAG.getVTList(MVT::f32, MVT::Other), + {Chain, FP, DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}, + Flags); else FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); @@ -9044,9 +9045,9 @@ SDValue PPCTargetLowering::LowerINT_TO_FP(SDValue Op, Chain = FP.getValue(1); if (Op.getValueType() == MVT::f32 && !Subtarget.hasFPCVT()) { if (IsStrict) - FP = DAG.getNode(ISD::STRICT_FP_ROUND, dl, - DAG.getVTList(MVT::f32, MVT::Other), - {Chain, FP, DAG.getIntPtrConstant(0, dl)}, Flags); + FP = DAG.getNode( + ISD::STRICT_FP_ROUND, dl, DAG.getVTList(MVT::f32, MVT::Other), + {Chain, FP, DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}, Flags); else FP = DAG.getNode(ISD::FP_ROUND, dl, MVT::f32, FP, DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)); @@ -9358,7 +9359,11 @@ static SDValue getCanonicalConstSplat(uint64_t Val, unsigned SplatSize, EVT VT, EVT CanonicalVT = VTys[SplatSize-1]; // Build a canonical splat for this value. - return DAG.getBitcast(ReqVT, DAG.getConstant(Val, dl, CanonicalVT)); + // Explicitly truncate APInt here, as this API is used with a mix of + // signed and unsigned values. + return DAG.getBitcast( + ReqVT, + DAG.getConstant(APInt(64, Val).trunc(SplatSize * 8), dl, CanonicalVT)); } /// BuildIntrinsicOp - Return a unary operator intrinsic node with the @@ -9769,7 +9774,7 @@ SDValue PPCTargetLowering::LowerBUILD_VECTOR(SDValue Op, // To avoid having these optimizations undone by constant folding, // we convert to a pseudo that will be expanded later into one of // the above forms. - SDValue Elt = DAG.getConstant(SextVal, dl, MVT::i32); + SDValue Elt = DAG.getSignedConstant(SextVal, dl, MVT::i32); EVT VT = (SplatSize == 1 ? MVT::v16i8 : (SplatSize == 2 ? MVT::v8i16 : MVT::v4i32)); SDValue EltSize = DAG.getConstant(SplatSize, dl, MVT::i32); @@ -18964,7 +18969,7 @@ PPC::AddrMode PPCTargetLowering::SelectOptimalAddrMode(const SDNode *Parent, (!Align || isAligned(*Align, CNImm))) { int32_t Addr = (int32_t)CNImm; // Otherwise, break this down into LIS + Disp. - Disp = DAG.getTargetConstant((int16_t)Addr, DL, MVT::i32); + Disp = DAG.getSignedTargetConstant((int16_t)Addr, DL, MVT::i32); Base = DAG.getTargetConstant((Addr - (int16_t)Addr) >> 16, DL, MVT::i32); uint32_t LIS = CNType == MVT::i32 ? PPC::LIS : PPC::LIS8; diff --git a/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp b/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp index b557659ae0765..a9294e76f8763 100644 --- a/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp +++ b/llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp @@ -155,8 +155,8 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST) .clampScalar(0, sXLen, sXLen); getActionDefinitionsBuilder({G_ZEXT, G_SEXT, G_ANYEXT}) - .legalFor({{sXLen, s16}}) - .legalFor(ST.is64Bit(), {{s64, s32}}) + .legalFor({{s32, s16}}) + .legalFor(ST.is64Bit(), {{s64, s16}, {s64, s32}}) .legalIf(all(typeIsLegalIntOrFPVec(0, IntOrFPVecTys, ST), typeIsLegalIntOrFPVec(1, IntOrFPVecTys, ST))) .customIf(typeIsLegalBoolVec(1, BoolVecTys, ST)) @@ -491,11 +491,18 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST) // FP Operations - getActionDefinitionsBuilder({G_FADD, G_FSUB, G_FMUL, G_FDIV, G_FMA, G_FNEG, - G_FABS, G_FSQRT, G_FMAXNUM, G_FMINNUM}) + getActionDefinitionsBuilder( + {G_FADD, G_FSUB, G_FMUL, G_FDIV, G_FMA, G_FSQRT, G_FMAXNUM, G_FMINNUM}) .legalFor(ST.hasStdExtF(), {s32}) .legalFor(ST.hasStdExtD(), {s64}) - .legalFor(ST.hasStdExtZfh(), {s16}); + .legalFor(ST.hasStdExtZfh(), {s16}) + .libcallFor({s32, s64}); + + getActionDefinitionsBuilder({G_FNEG, G_FABS}) + .legalFor(ST.hasStdExtF(), {s32}) + .legalFor(ST.hasStdExtD(), {s64}) + .legalFor(ST.hasStdExtZfh(), {s16}) + .lowerFor({s32, s64}); getActionDefinitionsBuilder(G_FREM) .libcallFor({s32, s64}) @@ -506,7 +513,8 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST) .legalFor(ST.hasStdExtF(), {{s32, s32}}) .legalFor(ST.hasStdExtD(), {{s64, s64}, {s32, s64}, {s64, s32}}) .legalFor(ST.hasStdExtZfh(), {{s16, s16}, {s16, s32}, {s32, s16}}) - .legalFor(ST.hasStdExtZfh() && ST.hasStdExtD(), {{s16, s64}, {s64, s16}}); + .legalFor(ST.hasStdExtZfh() && ST.hasStdExtD(), {{s16, s64}, {s64, s16}}) + .lower(); // FIXME: Use Zfhmin. getActionDefinitionsBuilder(G_FPTRUNC) @@ -528,7 +536,8 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST) getActionDefinitionsBuilder(G_IS_FPCLASS) .customFor(ST.hasStdExtF(), {{s1, s32}}) .customFor(ST.hasStdExtD(), {{s1, s64}}) - .customFor(ST.hasStdExtZfh(), {{s1, s16}}); + .customFor(ST.hasStdExtZfh(), {{s1, s16}}) + .lowerFor({{s1, s32}, {s1, s64}}); getActionDefinitionsBuilder(G_FCONSTANT) .legalFor(ST.hasStdExtF(), {s32}) diff --git a/llvm/lib/Target/RISCV/RISCVFeatures.td b/llvm/lib/Target/RISCV/RISCVFeatures.td index 3977816ebdd49..140185ab909e8 100644 --- a/llvm/lib/Target/RISCV/RISCVFeatures.td +++ b/llvm/lib/Target/RISCV/RISCVFeatures.td @@ -203,9 +203,26 @@ def HasStdExtM : Predicate<"Subtarget->hasStdExtM()">, // Atomic Extensions +def FeatureStdExtZaamo + : RISCVExtension<"zaamo", 1, 0, + "'Zaamo' (Atomic Memory Operations)">; +def HasStdExtZaamo + : Predicate<"Subtarget->hasStdExtZaamo()">, + AssemblerPredicate<(any_of FeatureStdExtZaamo), + "'Zaamo' (Atomic Memory Operations)">; + +def FeatureStdExtZalrsc + : RISCVExtension<"zalrsc", 1, 0, + "'Zalrsc' (Load-Reserved/Store-Conditional)">; +def HasStdExtZalrsc + : Predicate<"Subtarget->hasStdExtZalrsc()">, + AssemblerPredicate<(any_of FeatureStdExtZalrsc), + "'Zalrsc' (Load-Reserved/Store-Conditional)">; + def FeatureStdExtA : RISCVExtension<"a", 2, 1, - "'A' (Atomic Instructions)">, + "'A' (Atomic Instructions)", + [FeatureStdExtZaamo, FeatureStdExtZalrsc]>, RISCVExtensionBitmask<0, 0>; def HasStdExtA : Predicate<"Subtarget->hasStdExtA()">, AssemblerPredicate<(all_of FeatureStdExtA), @@ -226,15 +243,6 @@ def FeatureStdExtZa64rs : RISCVExtension<"za64rs", 1, 0, def FeatureStdExtZa128rs : RISCVExtension<"za128rs", 1, 0, "'Za128rs' (Reservation Set Size of at Most 128 Bytes)">; -def FeatureStdExtZaamo - : RISCVExtension<"zaamo", 1, 0, - "'Zaamo' (Atomic Memory Operations)">; -def HasStdExtAOrZaamo - : Predicate<"Subtarget->hasStdExtA() || Subtarget->hasStdExtZaamo()">, - AssemblerPredicate<(any_of FeatureStdExtA, FeatureStdExtZaamo), - "'A' (Atomic Instructions) or " - "'Zaamo' (Atomic Memory Operations)">; - def FeatureStdExtZabha : RISCVExtension<"zabha", 1, 0, "'Zabha' (Byte and Halfword Atomic Memory Operations)", @@ -260,15 +268,6 @@ def HasStdExtZalasr : Predicate<"Subtarget->hasStdExtZalasr()">, AssemblerPredicate<(all_of FeatureStdExtZalasr), "'Zalasr' (Load-Acquire and Store-Release Instructions)">; -def FeatureStdExtZalrsc - : RISCVExtension<"zalrsc", 1, 0, - "'Zalrsc' (Load-Reserved/Store-Conditional)">; -def HasStdExtAOrZalrsc - : Predicate<"Subtarget->hasStdExtA() || Subtarget->hasStdExtZalrsc()">, - AssemblerPredicate<(any_of FeatureStdExtA, FeatureStdExtZalrsc), - "'A' (Atomic Instructions) or " - "'Zalrsc' (Load-Reserved/Store-Conditional)">; - def FeatureStdExtZama16b : RISCVExtension<"zama16b", 1, 0, "'Zama16b' (Atomic 16-byte misaligned loads, stores and AMOs)">; diff --git a/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp b/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp index 1d91d46cb30ee..2da32fece061b 100644 --- a/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp @@ -498,36 +498,6 @@ getPushOrLibCallsSavedInfo(const MachineFunction &MF, return PushOrLibCallsCSI; } -void RISCVFrameLowering::adjustStackForRVV(MachineFunction &MF, - MachineBasicBlock &MBB, - MachineBasicBlock::iterator MBBI, - const DebugLoc &DL, int64_t Amount, - MachineInstr::MIFlag Flag) const { - assert(Amount != 0 && "Did not need to adjust stack pointer for RVV."); - - // Optimize compile time offset case - StackOffset Offset = StackOffset::getScalable(Amount); - if (auto VLEN = STI.getRealVLen()) { - // 1. Multiply the number of v-slots by the (constant) length of register - const int64_t VLENB = *VLEN / 8; - assert(Amount % 8 == 0 && - "Reserve the stack by the multiple of one vector size."); - const int64_t NumOfVReg = Amount / 8; - const int64_t FixedOffset = NumOfVReg * VLENB; - if (!isInt<32>(FixedOffset)) { - report_fatal_error( - "Frame size outside of the signed 32-bit range not supported"); - } - Offset = StackOffset::getFixed(FixedOffset); - } - - const RISCVRegisterInfo &RI = *STI.getRegisterInfo(); - // We must keep the stack pointer aligned through any intermediate - // updates. - RI.adjustReg(MBB, MBBI, DL, SPReg, SPReg, Offset, - Flag, getStackAlign()); -} - static void appendScalableVectorExpression(const TargetRegisterInfo &TRI, SmallVectorImpl &Expr, int FixedOffset, int ScalableOffset, @@ -610,6 +580,25 @@ static MCCFIInstruction createDefCFAOffset(const TargetRegisterInfo &TRI, Comment.str()); } +void RISCVFrameLowering::allocateStack(MachineBasicBlock &MBB, + MachineBasicBlock::iterator MBBI, + StackOffset Offset, bool EmitCFI, + unsigned CFIIndex) const { + DebugLoc DL; + const RISCVRegisterInfo *RI = STI.getRegisterInfo(); + const RISCVInstrInfo *TII = STI.getInstrInfo(); + + RI->adjustReg(MBB, MBBI, DL, SPReg, SPReg, Offset, MachineInstr::FrameSetup, + getStackAlign()); + + if (EmitCFI) { + // Emit ".cfi_def_cfa_offset StackSize" + BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) + .addCFIIndex(CFIIndex) + .setMIFlag(MachineInstr::FrameSetup); + } +} + void RISCVFrameLowering::emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const { MachineFrameInfo &MFI = MF.getFrameInfo(); @@ -726,16 +715,10 @@ void RISCVFrameLowering::emitPrologue(MachineFunction &MF, if (StackSize != 0) { // Allocate space on the stack if necessary. - RI->adjustReg(MBB, MBBI, DL, SPReg, SPReg, - StackOffset::getFixed(-StackSize), MachineInstr::FrameSetup, - getStackAlign()); - - // Emit ".cfi_def_cfa_offset RealStackSize" unsigned CFIIndex = MF.addFrameInst( MCCFIInstruction::cfiDefCfaOffset(nullptr, RealStackSize)); - BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) - .addCFIIndex(CFIIndex) - .setMIFlag(MachineInstr::FrameSetup); + allocateStack(MBB, MBBI, StackOffset::getFixed(-StackSize), + /*EmitCFI=*/ true, CFIIndex); } // The frame pointer is callee-saved, and code has been generated for us to @@ -776,25 +759,22 @@ void RISCVFrameLowering::emitPrologue(MachineFunction &MF, getStackSizeWithRVVPadding(MF) - FirstSPAdjustAmount; assert(SecondSPAdjustAmount > 0 && "SecondSPAdjustAmount should be greater than zero"); - RI->adjustReg(MBB, MBBI, DL, SPReg, SPReg, - StackOffset::getFixed(-SecondSPAdjustAmount), - MachineInstr::FrameSetup, getStackAlign()); // If we are using a frame-pointer, and thus emitted ".cfi_def_cfa fp, 0", // don't emit an sp-based .cfi_def_cfa_offset - if (!hasFP(MF)) { - // Emit ".cfi_def_cfa_offset StackSize" - unsigned CFIIndex = MF.addFrameInst(MCCFIInstruction::cfiDefCfaOffset( - nullptr, getStackSizeWithRVVPadding(MF))); - BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) - .addCFIIndex(CFIIndex) - .setMIFlag(MachineInstr::FrameSetup); - } + unsigned CFIIndex = MF.addFrameInst(MCCFIInstruction::cfiDefCfaOffset( + nullptr, getStackSizeWithRVVPadding(MF))); + allocateStack(MBB, MBBI, StackOffset::getFixed(-SecondSPAdjustAmount), + !hasFP(MF), CFIIndex); } if (RVVStackSize) { - adjustStackForRVV(MF, MBB, MBBI, DL, -RVVStackSize, - MachineInstr::FrameSetup); + // We must keep the stack pointer aligned through any intermediate + // updates. + RI->adjustReg(MBB, MBBI, DL, SPReg, SPReg, + StackOffset::getScalable(-RVVStackSize), + MachineInstr::FrameSetup, getStackAlign()); + if (!hasFP(MF)) { // Emit .cfi_def_cfa_expression "sp + StackSize + RVVStackSize * vlenb". unsigned CFIIndex = MF.addFrameInst(createDefCFAExpression( @@ -919,8 +899,9 @@ void RISCVFrameLowering::emitEpilogue(MachineFunction &MF, // If RestoreSPFromFP the stack pointer will be restored using the frame // pointer value. if (!RestoreSPFromFP) - adjustStackForRVV(MF, MBB, LastFrameDestroy, DL, RVVStackSize, - MachineInstr::FrameDestroy); + RI->adjustReg(MBB, LastFrameDestroy, DL, SPReg, SPReg, + StackOffset::getScalable(RVVStackSize), + MachineInstr::FrameDestroy, getStackAlign()); if (!hasFP(MF)) { unsigned CFIIndex = MF.addFrameInst(MCCFIInstruction::cfiDefCfa( @@ -1205,7 +1186,6 @@ RISCVFrameLowering::getFrameIndexReference(const MachineFunction &MF, int FI, // alignment padding. int ScalarLocalVarSize = MFI.getStackSize() - RVFI->getCalleeSavedStackSize() - - RVFI->getRVPushStackSize() - RVFI->getVarArgsSaveSize() + RVFI->getRVVPadding(); Offset += StackOffset::get(ScalarLocalVarSize, RVFI->getRVVStackSize()); } @@ -1753,8 +1733,7 @@ void RISCVFrameLowering::emitCalleeSavedRVVPrologCFI( if (!HasFP) { uint64_t ScalarLocalVarSize = MFI.getStackSize() - RVFI->getCalleeSavedStackSize() - - RVFI->getRVPushStackSize() - RVFI->getVarArgsSaveSize() + - RVFI->getRVVPadding(); + RVFI->getVarArgsSaveSize() + RVFI->getRVVPadding(); FixedSize -= ScalarLocalVarSize; } diff --git a/llvm/lib/Target/RISCV/RISCVFrameLowering.h b/llvm/lib/Target/RISCV/RISCVFrameLowering.h index c106b7b675465..84a8fbd117a22 100644 --- a/llvm/lib/Target/RISCV/RISCVFrameLowering.h +++ b/llvm/lib/Target/RISCV/RISCVFrameLowering.h @@ -78,6 +78,9 @@ class RISCVFrameLowering : public TargetFrameLowering { return StackId != TargetStackID::ScalableVector; } + void allocateStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, + StackOffset Offset, bool EmitCFI, unsigned CFIIndex) const; + protected: const RISCVSubtarget &STI; @@ -85,9 +88,6 @@ class RISCVFrameLowering : public TargetFrameLowering { private: void determineFrameLayout(MachineFunction &MF) const; - void adjustStackForRVV(MachineFunction &MF, MachineBasicBlock &MBB, - MachineBasicBlock::iterator MBBI, const DebugLoc &DL, - int64_t Amount, MachineInstr::MIFlag Flag) const; void emitCalleeSavedRVVPrologCFI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, bool HasFP) const; diff --git a/llvm/lib/Target/RISCV/RISCVGISel.td b/llvm/lib/Target/RISCV/RISCVGISel.td index 9fd4400b97b23..9670e4b07068a 100644 --- a/llvm/lib/Target/RISCV/RISCVGISel.td +++ b/llvm/lib/Target/RISCV/RISCVGISel.td @@ -177,6 +177,19 @@ def : StPat; def : LdPat; // Prefer unsigned due to no c.lb in Zcb. def : StPat; +let Predicates = [HasAtomicLdSt] in { + def : LdPat; + def : LdPat; + + def : StPat; + def : StPat; +} + +let Predicates = [HasAtomicLdSt, IsRV64] in { + def : LdPat; + def : StPat; +} + //===----------------------------------------------------------------------===// // RV64 i32 patterns not used by SelectionDAG //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index 976b2478b433e..329b42d621cee 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -498,7 +498,7 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM, setOperationAction({ISD::FREM, ISD::FPOW, ISD::FPOWI, ISD::FCOS, ISD::FSIN, ISD::FSINCOS, ISD::FEXP, ISD::FEXP2, ISD::FEXP10, ISD::FLOG, ISD::FLOG2, - ISD::FLOG10}, + ISD::FLOG10, ISD::FLDEXP, ISD::FFREXP}, MVT::f16, Promote); // FIXME: Need to promote f16 STRICT_* to f32 libcalls, but we don't have @@ -506,7 +506,7 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM, setOperationAction({ISD::STRICT_FCEIL, ISD::STRICT_FFLOOR, ISD::STRICT_FNEARBYINT, ISD::STRICT_FRINT, ISD::STRICT_FROUND, ISD::STRICT_FROUNDEVEN, - ISD::STRICT_FTRUNC}, + ISD::STRICT_FTRUNC, ISD::STRICT_FLDEXP}, MVT::f16, Promote); // We need to custom promote this. @@ -1527,7 +1527,7 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM, ISD::BUILD_VECTOR, ISD::CONCAT_VECTORS, ISD::EXPERIMENTAL_VP_REVERSE, ISD::MUL, ISD::SDIV, ISD::UDIV, ISD::SREM, ISD::UREM, - ISD::INSERT_VECTOR_ELT, ISD::ABS}); + ISD::INSERT_VECTOR_ELT, ISD::ABS, ISD::CTPOP}); if (Subtarget.hasVendorXTHeadMemPair()) setTargetDAGCombine({ISD::LOAD, ISD::STORE}); if (Subtarget.useRVVForFixedLengthVectors()) @@ -17055,6 +17055,52 @@ static SDValue combineTruncToVnclip(SDNode *N, SelectionDAG &DAG, return Val; } +// Convert +// (iX ctpop (bitcast (vXi1 A))) +// -> +// (zext (vcpop.m (nxvYi1 (insert_subvec (vXi1 A))))) +// FIXME: It's complicated to match all the variations of this after type +// legalization so we only handle the pre-type legalization pattern, but that +// requires the fixed vector type to be legal. +static SDValue combineScalarCTPOPToVCPOP(SDNode *N, SelectionDAG &DAG, + const RISCVSubtarget &Subtarget) { + EVT VT = N->getValueType(0); + if (!VT.isScalarInteger()) + return SDValue(); + + SDValue Src = N->getOperand(0); + + // Peek through zero_extend. It doesn't change the count. + if (Src.getOpcode() == ISD::ZERO_EXTEND) + Src = Src.getOperand(0); + + if (Src.getOpcode() != ISD::BITCAST) + return SDValue(); + + Src = Src.getOperand(0); + EVT SrcEVT = Src.getValueType(); + if (!SrcEVT.isSimple()) + return SDValue(); + + MVT SrcMVT = SrcEVT.getSimpleVT(); + // Make sure the input is an i1 vector. + if (!SrcMVT.isVector() || SrcMVT.getVectorElementType() != MVT::i1) + return SDValue(); + + if (!useRVVForFixedLengthVectorVT(SrcMVT, Subtarget)) + return SDValue(); + + MVT ContainerVT = getContainerForFixedLengthVector(DAG, SrcMVT, Subtarget); + Src = convertToScalableVector(ContainerVT, Src, DAG, Subtarget); + + SDLoc DL(N); + auto [Mask, VL] = getDefaultVLOps(SrcMVT, ContainerVT, DL, DAG, Subtarget); + + MVT XLenVT = Subtarget.getXLenVT(); + SDValue Pop = DAG.getNode(RISCVISD::VCPOP_VL, DL, XLenVT, Src, Mask, VL); + return DAG.getZExtOrTrunc(Pop, DL, VT); +} + SDValue RISCVTargetLowering::PerformDAGCombine(SDNode *N, DAGCombinerInfo &DCI) const { SelectionDAG &DAG = DCI.DAG; @@ -18023,6 +18069,10 @@ SDValue RISCVTargetLowering::PerformDAGCombine(SDNode *N, return SDValue(); } + case ISD::CTPOP: + if (SDValue V = combineScalarCTPOPToVCPOP(N, DAG, Subtarget)) + return V; + break; } return SDValue(); @@ -22061,9 +22111,11 @@ SDValue RISCVTargetLowering::expandIndirectJTBranch(const SDLoc &dl, if (Subtarget.hasStdExtZicfilp()) { // When Zicfilp enabled, we need to use software guarded branch for jump // table branch. - SDValue JTInfo = DAG.getJumpTableDebugInfo(JTI, Value, dl); - return DAG.getNode(RISCVISD::SW_GUARDED_BRIND, dl, MVT::Other, JTInfo, - Addr); + SDValue Chain = Value; + // Jump table debug info is only needed if CodeView is enabled. + if (DAG.getTarget().getTargetTriple().isOSBinFormatCOFF()) + Chain = DAG.getJumpTableDebugInfo(JTI, Chain, dl); + return DAG.getNode(RISCVISD::SW_GUARDED_BRIND, dl, MVT::Other, Chain, Addr); } return TargetLowering::expandIndirectJTBranch(dl, Value, Addr, JTI, DAG); } diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.h b/llvm/lib/Target/RISCV/RISCVInstrInfo.h index c3aa367486627..005cba5d35610 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfo.h +++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.h @@ -78,6 +78,11 @@ class RISCVInstrInfo : public RISCVGenInstrInfo { bool isReallyTriviallyReMaterializable(const MachineInstr &MI) const override; + bool shouldBreakCriticalEdgeToSink(MachineInstr &MI) const override { + return MI.getOpcode() == RISCV::ADDI && MI.getOperand(1).isReg() && + MI.getOperand(1).getReg() == RISCV::X0; + } + void copyPhysRegVector(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, const DebugLoc &DL, MCRegister DstReg, MCRegister SrcReg, bool KillSrc, diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td index 10e919c902d51..9685d85864ebb 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td @@ -60,13 +60,13 @@ multiclass AMO_rr_aq_rl funct5, bits<3> funct3, string opcodestr> { // Instructions //===----------------------------------------------------------------------===// -let Predicates = [HasStdExtAOrZalrsc], IsSignExtendingOpW = 1 in { +let Predicates = [HasStdExtZalrsc], IsSignExtendingOpW = 1 in { defm LR_W : LR_r_aq_rl<0b010, "lr.w">, Sched<[WriteAtomicLDW, ReadAtomicLDW]>; defm SC_W : SC_r_aq_rl<0b010, "sc.w">, Sched<[WriteAtomicSTW, ReadAtomicSTW, ReadAtomicSTW]>; -} // Predicates = [HasStdExtAOrZalrsc], IsSignExtendingOpW = 1 +} // Predicates = [HasStdExtZalrsc], IsSignExtendingOpW = 1 -let Predicates = [HasStdExtAOrZaamo], IsSignExtendingOpW = 1 in { +let Predicates = [HasStdExtZaamo], IsSignExtendingOpW = 1 in { defm AMOSWAP_W : AMO_rr_aq_rl<0b00001, 0b010, "amoswap.w">, Sched<[WriteAtomicW, ReadAtomicWA, ReadAtomicWD]>; defm AMOADD_W : AMO_rr_aq_rl<0b00000, 0b010, "amoadd.w">, @@ -85,15 +85,15 @@ defm AMOMINU_W : AMO_rr_aq_rl<0b11000, 0b010, "amominu.w">, Sched<[WriteAtomicW, ReadAtomicWA, ReadAtomicWD]>; defm AMOMAXU_W : AMO_rr_aq_rl<0b11100, 0b010, "amomaxu.w">, Sched<[WriteAtomicW, ReadAtomicWA, ReadAtomicWD]>; -} // Predicates = [HasStdExtAOrZaamo], IsSignExtendingOpW = 1 +} // Predicates = [HasStdExtZaamo], IsSignExtendingOpW = 1 -let Predicates = [HasStdExtAOrZalrsc, IsRV64] in { +let Predicates = [HasStdExtZalrsc, IsRV64] in { defm LR_D : LR_r_aq_rl<0b011, "lr.d">, Sched<[WriteAtomicLDD, ReadAtomicLDD]>; defm SC_D : SC_r_aq_rl<0b011, "sc.d">, Sched<[WriteAtomicSTD, ReadAtomicSTD, ReadAtomicSTD]>; -} // Predicates = [HasStdExtAOrZalrsc, IsRV64] +} // Predicates = [HasStdExtZalrsc, IsRV64] -let Predicates = [HasStdExtAOrZaamo, IsRV64] in { +let Predicates = [HasStdExtZaamo, IsRV64] in { defm AMOSWAP_D : AMO_rr_aq_rl<0b00001, 0b011, "amoswap.d">, Sched<[WriteAtomicD, ReadAtomicDA, ReadAtomicDD]>; defm AMOADD_D : AMO_rr_aq_rl<0b00000, 0b011, "amoadd.d">, @@ -112,7 +112,7 @@ defm AMOMINU_D : AMO_rr_aq_rl<0b11000, 0b011, "amominu.d">, Sched<[WriteAtomicD, ReadAtomicDA, ReadAtomicDD]>; defm AMOMAXU_D : AMO_rr_aq_rl<0b11100, 0b011, "amomaxu.d">, Sched<[WriteAtomicD, ReadAtomicDA, ReadAtomicDD]>; -} // Predicates = [HasStdExtAOrZaamo, IsRV64] +} // Predicates = [HasStdExtZaamo, IsRV64] //===----------------------------------------------------------------------===// // Pseudo-instructions and codegen patterns diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoD.td b/llvm/lib/Target/RISCV/RISCVInstrInfoD.td index b01af468d9ea2..2924083ece344 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoD.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoD.td @@ -285,7 +285,8 @@ def : Pat<(riscv_fclass FPR64:$rs1), (FCLASS_D $rs1)>; def : PatFprFpr; def : PatFprFpr; -def : Pat<(fcopysign FPR64:$rs1, (fneg FPR64:$rs2)), (FSGNJN_D $rs1, $rs2)>; +def : Pat<(fcopysign FPR64:$rs1, (fneg FPR64:$rs2)), + (FSGNJN_D FPR64:$rs1, FPR64:$rs2)>; def : Pat<(fcopysign FPR64:$rs1, FPR32:$rs2), (FSGNJ_D $rs1, (FCVT_D_S $rs2, FRM_RNE))>; def : Pat<(fcopysign FPR32:$rs1, FPR64:$rs2), (FSGNJ_S $rs1, (FCVT_S_D $rs2, @@ -323,7 +324,7 @@ def : Pat<(riscv_fclass FPR64INX:$rs1), (FCLASS_D_INX $rs1)>; def : PatFprFpr; def : PatFprFpr; def : Pat<(fcopysign FPR64INX:$rs1, (fneg FPR64INX:$rs2)), - (FSGNJN_D_INX $rs1, $rs2)>; + (FSGNJN_D_INX FPR64INX:$rs1, FPR64INX:$rs2)>; def : Pat<(fcopysign FPR64INX:$rs1, FPR32INX:$rs2), (FSGNJ_D_INX $rs1, (f64 (FCVT_D_S_INX $rs2, FRM_RNE)))>; def : Pat<(fcopysign FPR32INX:$rs1, FPR64INX:$rs2), @@ -361,7 +362,7 @@ def : Pat<(riscv_fclass FPR64IN32X:$rs1), (FCLASS_D_IN32X $rs1)>; def : PatFprFpr; def : PatFprFpr; def : Pat<(fcopysign FPR64IN32X:$rs1, (fneg FPR64IN32X:$rs2)), - (FSGNJN_D_IN32X $rs1, $rs2)>; + (FSGNJN_D_IN32X FPR64IN32X:$rs1, FPR64IN32X:$rs2)>; def : Pat<(fcopysign FPR64IN32X:$rs1, FPR32INX:$rs2), (FSGNJ_D_IN32X $rs1, (FCVT_D_S_IN32X $rs2, FRM_RNE))>; def : Pat<(fcopysign FPR32INX:$rs1, FPR64IN32X:$rs2), diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoF.td b/llvm/lib/Target/RISCV/RISCVInstrInfoF.td index 2c27e3950f07f..6c41c53bb301f 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoF.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoF.td @@ -570,7 +570,8 @@ defm : PatFprFpr_m; } let Predicates = [HasStdExtF] in { -def : Pat<(fcopysign FPR32:$rs1, (fneg FPR32:$rs2)), (FSGNJN_S $rs1, $rs2)>; +def : Pat<(fcopysign FPR32:$rs1, (fneg FPR32:$rs2)), + (FSGNJN_S FPR32:$rs1, FPR32:$rs2)>; // fmadd: rs1 * rs2 + rs3 def : Pat<(any_fma FPR32:$rs1, FPR32:$rs2, FPR32:$rs3), @@ -594,7 +595,8 @@ def : Pat<(fneg (any_fma_nsz FPR32:$rs1, FPR32:$rs2, FPR32:$rs3)), } // Predicates = [HasStdExtF] let Predicates = [HasStdExtZfinx] in { -def : Pat<(fcopysign FPR32INX:$rs1, (fneg FPR32INX:$rs2)), (FSGNJN_S_INX $rs1, $rs2)>; +def : Pat<(fcopysign FPR32INX:$rs1, (fneg FPR32INX:$rs2)), + (FSGNJN_S_INX FPR32INX:$rs1, FPR32INX:$rs2)>; // fmadd: rs1 * rs2 + rs3 def : Pat<(any_fma FPR32INX:$rs1, FPR32INX:$rs2, FPR32INX:$rs3), diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td index e2e99cc3f2b72..625011c3b9f7c 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoZfh.td @@ -291,7 +291,8 @@ def : Pat<(riscv_fclass (f16 FPR16:$rs1)), (FCLASS_H $rs1)>; def : PatFprFpr; def : PatFprFpr; -def : Pat<(f16 (fcopysign FPR16:$rs1, (f16 (fneg FPR16:$rs2)))), (FSGNJN_H $rs1, $rs2)>; +def : Pat<(f16 (fcopysign FPR16:$rs1, (f16 (fneg FPR16:$rs2)))), + (FSGNJN_H FPR16:$rs1, FPR16:$rs2)>; def : Pat<(f16 (fcopysign FPR16:$rs1, FPR32:$rs2)), (FSGNJ_H $rs1, (f16 (FCVT_H_S $rs2, FRM_DYN)))>; @@ -334,7 +335,8 @@ def : Pat<(riscv_fclass FPR16INX:$rs1), (FCLASS_H_INX $rs1)>; def : PatFprFpr; def : PatFprFpr; -def : Pat<(fcopysign FPR16INX:$rs1, (fneg FPR16INX:$rs2)), (FSGNJN_H_INX $rs1, $rs2)>; +def : Pat<(fcopysign FPR16INX:$rs1, (fneg FPR16INX:$rs2)), + (FSGNJN_H_INX FPR16INX:$rs1, FPR16INX:$rs2)>; def : Pat<(fcopysign FPR16INX:$rs1, FPR32INX:$rs2), (FSGNJ_H_INX $rs1, (FCVT_H_S_INX $rs2, FRM_DYN))>; diff --git a/llvm/lib/Target/RISCV/RISCVProcessors.td b/llvm/lib/Target/RISCV/RISCVProcessors.td index e96281bb46950..03a48ff3c1758 100644 --- a/llvm/lib/Target/RISCV/RISCVProcessors.td +++ b/llvm/lib/Target/RISCV/RISCVProcessors.td @@ -49,6 +49,9 @@ class RISCVProcessorModel : ProcessorModel { string DefaultMarch = default_march; + int MVendorID = 0; + int MArchID = 0; + int MImpID = 0; } class RISCVTuneProcessorModel; + TuneLDADDFusion]> { + let MVendorID = 0x61f; + let MArchID = 0x8000000000010000; + let MImpID = 0x111; +} def XIANGSHAN_NANHU : RISCVProcessorModel<"xiangshan-nanhu", XiangShanNanHuModel, @@ -503,7 +510,11 @@ def SPACEMIT_X60 : RISCVProcessorModel<"spacemit-x60", [TuneDLenFactor2, TuneOptimizedNF2SegmentLoadStore, TuneOptimizedNF3SegmentLoadStore, - TuneOptimizedNF4SegmentLoadStore]>; + TuneOptimizedNF4SegmentLoadStore]> { + let MVendorID = 0x710; + let MArchID = 0x8000000058000001; + let MImpID = 0x1000000049772200; +} def RP2350_HAZARD3 : RISCVProcessorModel<"rp2350-hazard3", NoSchedModel, diff --git a/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp b/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp index ff250b2c9df81..cfcc3119257f6 100644 --- a/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp +++ b/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp @@ -184,6 +184,23 @@ void RISCVRegisterInfo::adjustReg(MachineBasicBlock &MBB, const RISCVSubtarget &ST = MF.getSubtarget(); const RISCVInstrInfo *TII = ST.getInstrInfo(); + // Optimize compile time offset case + if (Offset.getScalable()) { + if (auto VLEN = ST.getRealVLen()) { + // 1. Multiply the number of v-slots by the (constant) length of register + const int64_t VLENB = *VLEN / 8; + assert(Offset.getScalable() % (RISCV::RVVBitsPerBlock / 8) == 0 && + "Reserve the stack by the multiple of one vector size."); + const int64_t NumOfVReg = Offset.getScalable() / 8; + const int64_t FixedOffset = NumOfVReg * VLENB; + if (!isInt<32>(FixedOffset)) { + report_fatal_error( + "Frame size outside of the signed 32-bit range not supported"); + } + Offset = StackOffset::getFixed(FixedOffset + Offset.getFixed()); + } + } + bool KillSrcReg = false; if (Offset.getScalable()) { @@ -456,7 +473,6 @@ bool RISCVRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, MachineInstr &MI = *II; MachineFunction &MF = *MI.getParent()->getParent(); MachineRegisterInfo &MRI = MF.getRegInfo(); - const RISCVSubtarget &ST = MF.getSubtarget(); DebugLoc DL = MI.getDebugLoc(); int FrameIndex = MI.getOperand(FIOperandNum).getIndex(); @@ -467,19 +483,6 @@ bool RISCVRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, if (!IsRVVSpill) Offset += StackOffset::getFixed(MI.getOperand(FIOperandNum + 1).getImm()); - if (Offset.getScalable() && - ST.getRealMinVLen() == ST.getRealMaxVLen()) { - // For an exact VLEN value, scalable offsets become constant and thus - // can be converted entirely into fixed offsets. - int64_t FixedValue = Offset.getFixed(); - int64_t ScalableValue = Offset.getScalable(); - assert(ScalableValue % 8 == 0 && - "Scalable offset is not a multiple of a single vector size."); - int64_t NumOfVReg = ScalableValue / 8; - int64_t VLENB = ST.getRealMinVLen() / 8; - Offset = StackOffset::getFixed(FixedValue + NumOfVReg * VLENB); - } - if (!isInt<32>(Offset.getFixed())) { report_fatal_error( "Frame offsets outside of the signed 32-bit range not supported"); diff --git a/llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td b/llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td index 1af89903e0068..a86c255f0820e 100644 --- a/llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td +++ b/llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td @@ -883,8 +883,16 @@ foreach mx = SchedMxList in { let Latency = 3, ReleaseAtCycles = [LMulLat] in { defm "" : LMULWriteResMX<"WriteVSHA2CHV", [SiFiveP400VEXQ0], mx, IsWorstCase>; defm "" : LMULWriteResMX<"WriteVSHA2CLV", [SiFiveP400VEXQ0], mx, IsWorstCase>; - foreach sew = !listremove(SchedSEWSet.val, [8, 16]) in - defm "" : LMULSEWWriteResMXSEW<"WriteVSHA2MSV", [SiFiveP400VEXQ0], mx, sew, IsWorstCase>; + defvar ZvknhSEWs = !listremove(SchedSEWSet.val, [8, 16]); + // Largest SEW is the last element, assuming SchedSEWSet is sorted in ascending + // order. + defvar LargestZvknhSEW = !foldl(!head(ZvknhSEWs), ZvknhSEWs, last, curr, curr); + foreach sew = ZvknhSEWs in { + // The worst case for Zvknh[ab] is designated to the largest SEW and LMUL. + defvar IsWorstCaseVSHA2MSV = !and(IsWorstCase, !eq(sew, LargestZvknhSEW)); + defm "" : LMULSEWWriteResMXSEW<"WriteVSHA2MSV", [SiFiveP400VEXQ0], mx, sew, + IsWorstCaseVSHA2MSV>; + } } // Zvkned let Latency = 2, ReleaseAtCycles = [LMulLat] in { diff --git a/llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td b/llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td index c2d93d4c0a7f0..0c695c9ef3071 100644 --- a/llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td +++ b/llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td @@ -1135,9 +1135,16 @@ foreach mx = SchedMxList in { let Latency = 3, ReleaseAtCycles = [LMulLat] in { defm "" : LMULWriteResMX<"WriteVSHA2CHV", [SiFiveP600VectorCrypto], mx, IsWorstCase>; defm "" : LMULWriteResMX<"WriteVSHA2CLV", [SiFiveP600VectorCrypto], mx, IsWorstCase>; - foreach sew = !listremove(SchedSEWSet.val, [8, 16]) in { + defvar ZvknhSEWs = !listremove(SchedSEWSet.val, [8, 16]); + // Largest SEW is the last element, assuming SchedSEWSet is sorted in ascending + // order. + defvar LargestZvknhSEW = !foldl(!head(ZvknhSEWs), ZvknhSEWs, last, curr, curr); + foreach sew = ZvknhSEWs in { + // The worst case for Zvknh[ab] is designated to the largest SEW and LMUL. + defvar IsWorstCaseVSHA2MSV = !and(IsWorstCase, !eq(sew, LargestZvknhSEW)); let ReleaseAtCycles = [SiFiveP600VSHA2MSCycles.c] in - defm "" : LMULSEWWriteResMXSEW<"WriteVSHA2MSV", [SiFiveP600VectorCrypto], mx, sew, IsWorstCase>; + defm "" : LMULSEWWriteResMXSEW<"WriteVSHA2MSV", [SiFiveP600VectorCrypto], mx, sew, + IsWorstCaseVSHA2MSV>; } } // Zvkned diff --git a/llvm/lib/Target/RISCV/RISCVSubtarget.cpp b/llvm/lib/Target/RISCV/RISCVSubtarget.cpp index 03397e1e0d89e..426d368204904 100644 --- a/llvm/lib/Target/RISCV/RISCVSubtarget.cpp +++ b/llvm/lib/Target/RISCV/RISCVSubtarget.cpp @@ -186,11 +186,6 @@ bool RISCVSubtarget::useRVVForFixedLengthVectors() const { bool RISCVSubtarget::enableSubRegLiveness() const { return true; } -void RISCVSubtarget::getPostRAMutations( - std::vector> &Mutations) const { - Mutations.push_back(createMacroFusionDAGMutation(getMacroFusions())); -} - /// Enable use of alias analysis during code generation (during MI /// scheduling, DAGCombine, etc.). bool RISCVSubtarget::useAA() const { return UseAA; } diff --git a/llvm/lib/Target/RISCV/RISCVSubtarget.h b/llvm/lib/Target/RISCV/RISCVSubtarget.h index f2c0a3d85c998..043838e13b964 100644 --- a/llvm/lib/Target/RISCV/RISCVSubtarget.h +++ b/llvm/lib/Target/RISCV/RISCVSubtarget.h @@ -301,9 +301,6 @@ class RISCVSubtarget : public RISCVGenSubtargetInfo { bool enableSubRegLiveness() const override; - void getPostRAMutations(std::vector> - &Mutations) const override; - bool useAA() const override; unsigned getCacheLineSize() const override { diff --git a/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp b/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp index 2b16dcbcd8695..8f0ef69258b16 100644 --- a/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp +++ b/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp @@ -925,6 +925,14 @@ static const CostTblEntry VectorIntrinsicCostTable[]{ {Intrinsic::ctpop, MVT::i16, 19}, {Intrinsic::ctpop, MVT::i32, 20}, {Intrinsic::ctpop, MVT::i64, 21}, + {Intrinsic::ctlz, MVT::i8, 19}, + {Intrinsic::ctlz, MVT::i16, 28}, + {Intrinsic::ctlz, MVT::i32, 31}, + {Intrinsic::ctlz, MVT::i64, 35}, + {Intrinsic::cttz, MVT::i8, 16}, + {Intrinsic::cttz, MVT::i16, 23}, + {Intrinsic::cttz, MVT::i32, 24}, + {Intrinsic::cttz, MVT::i64, 25}, {Intrinsic::vp_ctpop, MVT::i8, 12}, {Intrinsic::vp_ctpop, MVT::i16, 19}, {Intrinsic::vp_ctpop, MVT::i32, 20}, @@ -1013,6 +1021,8 @@ RISCVTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA, return LT.first; break; } + case Intrinsic::cttz: + case Intrinsic::ctlz: case Intrinsic::ctpop: { auto LT = getTypeLegalizationCost(RetTy); if (ST->hasVInstructions() && ST->hasStdExtZvbb() && LT.second.isVector()) @@ -1024,7 +1034,9 @@ RISCVTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA, if (ST->hasVInstructions() && LT.second.isVector()) { // vrsub.vi v10, v8, 0 // vmax.vv v8, v8, v10 - return LT.first * 2; + return LT.first * + getRISCVInstructionCost({RISCV::VRSUB_VI, RISCV::VMAX_VV}, + LT.second, CostKind); } break; } @@ -1111,39 +1123,6 @@ RISCVTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA, return getArithmeticInstrCost(*FOp, ICA.getReturnType(), CostKind); break; } - // vp int cast ops. - case Intrinsic::vp_trunc: - case Intrinsic::vp_zext: - case Intrinsic::vp_sext: - // vp float cast ops. - case Intrinsic::vp_fptoui: - case Intrinsic::vp_fptosi: - case Intrinsic::vp_uitofp: - case Intrinsic::vp_sitofp: - case Intrinsic::vp_fptrunc: - case Intrinsic::vp_fpext: { - std::optional FOp = - VPIntrinsic::getFunctionalOpcodeForVP(ICA.getID()); - assert(FOp.has_value() && !ICA.getArgTypes().empty()); - return getCastInstrCost(*FOp, RetTy, ICA.getArgTypes()[0], - TTI::CastContextHint::None, CostKind); - break; - } - - // vp compare - case Intrinsic::vp_icmp: - case Intrinsic::vp_fcmp: { - Intrinsic::ID IID = ICA.getID(); - std::optional FOp = VPIntrinsic::getFunctionalOpcodeForVP(IID); - // We can only handle vp_cmp intrinsics with underlying instructions. - if (!ICA.getInst()) - break; - - assert(FOp); - auto *UI = cast(ICA.getInst()); - return getCmpSelInstrCost(*FOp, ICA.getArgTypes()[0], ICA.getReturnType(), - UI->getPredicate(), CostKind); - } case Intrinsic::vp_select: { Intrinsic::ID IID = ICA.getID(); std::optional FOp = VPIntrinsic::getFunctionalOpcodeForVP(IID); @@ -1155,6 +1134,16 @@ RISCVTTIImpl::getIntrinsicInstrCost(const IntrinsicCostAttributes &ICA, return getCmpSelInstrCost(Instruction::Select, ICA.getReturnType(), ICA.getArgTypes()[0], CmpInst::BAD_ICMP_PREDICATE, CostKind); + case Intrinsic::experimental_vp_splat: { + auto LT = getTypeLegalizationCost(RetTy); + // TODO: Lower i1 experimental_vp_splat + if (!ST->hasVInstructions() || LT.second.getScalarType() == MVT::i1) + return InstructionCost::getInvalid(); + return LT.first * getRISCVInstructionCost(LT.second.isFloatingPoint() + ? RISCV::VFMV_V_F + : RISCV::VMV_V_X, + LT.second, CostKind); + } case Intrinsic::vp_reduce_add: case Intrinsic::vp_reduce_fadd: case Intrinsic::vp_reduce_mul: @@ -1620,6 +1609,14 @@ InstructionCost RISCVTTIImpl::getExtendedReductionCost( std::pair LT = getTypeLegalizationCost(ValTy); + if (IsUnsigned && Opcode == Instruction::Add && + LT.second.isFixedLengthVector() && LT.second.getScalarType() == MVT::i1) { + // Represent vector_reduce_add(ZExt()) as + // ZExtOrTrunc(ctpop(bitcast to in)). + return LT.first * + getRISCVInstructionCost(RISCV::VCPOP_M, LT.second, CostKind); + } + if (ResTy->getScalarSizeInBits() != 2 * LT.second.getScalarSizeInBits()) return BaseT::getExtendedReductionCost(Opcode, IsUnsigned, ResTy, ValTy, FMF, CostKind); @@ -2320,20 +2317,6 @@ bool RISCVTTIImpl::isLegalMaskedCompressStore(Type *DataTy, Align Alignment) { return true; } -bool RISCVTTIImpl::areInlineCompatible(const Function *Caller, - const Function *Callee) const { - const TargetMachine &TM = getTLI()->getTargetMachine(); - - const FeatureBitset &CallerBits = - TM.getSubtargetImpl(*Caller)->getFeatureBits(); - const FeatureBitset &CalleeBits = - TM.getSubtargetImpl(*Callee)->getFeatureBits(); - - // Inline a callee if its target-features are a subset of the callers - // target-features. - return (CallerBits & CalleeBits) == CalleeBits; -} - /// See if \p I should be considered for address type promotion. We check if \p /// I is a sext with right type and used in memory accesses. If it used in a /// "complex" getelementptr, we allow it to be promoted without finding other diff --git a/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h b/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h index 498f48353dc0c..6fd36e90a02dd 100644 --- a/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h +++ b/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h @@ -60,9 +60,6 @@ class RISCVTTIImpl : public BasicTTIImplBase { : BaseT(TM, F.getDataLayout()), ST(TM->getSubtargetImpl(F)), TLI(ST->getTargetLowering()) {} - bool areInlineCompatible(const Function *Caller, - const Function *Callee) const; - /// Return the cost of materializing an immediate for a value operand of /// a store instruction. InstructionCost getStoreImmCost(Type *VecTy, TTI::OperandValueInfo OpInfo, diff --git a/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp b/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp index 06a37f1f559d4..73dce230575d8 100644 --- a/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp @@ -18,6 +18,7 @@ #include "llvm/ADT/StringExtras.h" #include "llvm/Analysis/ValueTracking.h" #include "llvm/IR/IntrinsicsSPIRV.h" +#include #include #include @@ -201,13 +202,34 @@ std::string lookupBuiltinNameHelper(StringRef DemangledCall) { BuiltinName = BuiltinName.substr(BuiltinName.find_last_of(' ') + 1); } - // Check if the extracted name begins with "__spirv_ImageSampleExplicitLod" - // contains return type information at the end "_R", if so extract the - // plain builtin name without the type information. - if (StringRef(BuiltinName).contains("__spirv_ImageSampleExplicitLod") && - StringRef(BuiltinName).contains("_R")) { - BuiltinName = BuiltinName.substr(0, BuiltinName.find("_R")); - } + // Check if the extracted name begins with: + // - "__spirv_ImageSampleExplicitLod" + // - "__spirv_ImageRead" + // - "__spirv_ImageQuerySizeLod" + // - "__spirv_UDotKHR" + // - "__spirv_SDotKHR" + // - "__spirv_SUDotKHR" + // - "__spirv_SDotAccSatKHR" + // - "__spirv_UDotAccSatKHR" + // - "__spirv_SUDotAccSatKHR" + // - "__spirv_ReadClockKHR" + // - "__spirv_SubgroupBlockReadINTEL" + // - "__spirv_SubgroupImageBlockReadINTEL" + // - "__spirv_Convert" + // - "__spirv_UConvert" + // - "__spirv_SConvert" + // - "__spirv_FConvert" + // - "__spirv_SatConvert" + // and contains return type information at the end "_R". + // If so, extract the plain builtin name without the type information. + static const std::regex SpvWithR( + "(__spirv_(ImageSampleExplicitLod|ImageRead|ImageQuerySizeLod|UDotKHR|" + "SDotKHR|SUDotKHR|SDotAccSatKHR|UDotAccSatKHR|SUDotAccSatKHR|" + "ReadClockKHR|SubgroupBlockReadINTEL|SubgroupImageBlockReadINTEL|Convert|" + "UConvert|SConvert|FConvert|SatConvert).*)_R.*"); + std::smatch Match; + if (std::regex_match(BuiltinName, Match, SpvWithR) && Match.size() > 2) + BuiltinName = Match[1].str(); return BuiltinName; } diff --git a/llvm/lib/Target/SPIRV/SPIRVBuiltins.td b/llvm/lib/Target/SPIRV/SPIRVBuiltins.td index 1b95b1479bb93..e0dfc25723b0c 100644 --- a/llvm/lib/Target/SPIRV/SPIRVBuiltins.td +++ b/llvm/lib/Target/SPIRV/SPIRVBuiltins.td @@ -794,7 +794,9 @@ defm : DemangledGroupBuiltinWrapper<"__spirv_GroupAny", 2, 2, OpGroupAny>; defm : DemangledGroupBuiltin<"group_broadcast", WorkOrSub, OpGroupBroadcast>; defm : DemangledGroupBuiltinWrapper<"__spirv_GroupBroadcast", 3, 3, OpGroupBroadcast>; defm : DemangledGroupBuiltin<"group_non_uniform_broadcast", OnlySub, OpGroupNonUniformBroadcast>; +defm : DemangledGroupBuiltinWrapper<"__spirv_GroupNonUniformBroadcast", 3, 3, OpGroupNonUniformBroadcast>; defm : DemangledGroupBuiltin<"group_broadcast_first", OnlySub, OpGroupNonUniformBroadcastFirst>; +defm : DemangledGroupBuiltinWrapper<"__spirv_GroupNonUniformBroadcastFirst", 2, 2, OpGroupNonUniformBroadcastFirst>; // cl_khr_subgroup_non_uniform_vote defm : DemangledGroupBuiltin<"group_elect", OnlySub, OpGroupNonUniformElect>; diff --git a/llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp b/llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp index fe6ee417ea8ab..9905691d412bf 100644 --- a/llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp @@ -109,13 +109,10 @@ class SPIRVInstructionSelector : public InstructionSelector { bool selectGlobalValue(Register ResVReg, MachineInstr &I, const MachineInstr *Init = nullptr) const; - bool selectNAryOpWithSrcs(Register ResVReg, const SPIRVType *ResType, - MachineInstr &I, std::vector SrcRegs, - unsigned Opcode) const; + bool selectOpWithSrcs(Register ResVReg, const SPIRVType *ResType, + MachineInstr &I, std::vector SrcRegs, + unsigned Opcode) const; - bool selectUnOpWithSrc(Register ResVReg, const SPIRVType *ResType, - MachineInstr &I, Register SrcReg, - unsigned Opcode) const; bool selectUnOp(Register ResVReg, const SPIRVType *ResType, MachineInstr &I, unsigned Opcode) const; @@ -183,7 +180,10 @@ class SPIRVInstructionSelector : public InstructionSelector { MachineInstr &I, unsigned Opcode) const; bool selectIntegerDot(Register ResVReg, const SPIRVType *ResType, - MachineInstr &I) const; + MachineInstr &I, bool Signed) const; + + bool selectIntegerDotExpansion(Register ResVReg, const SPIRVType *ResType, + MachineInstr &I) const; template bool selectDot4AddPacked(Register ResVReg, const SPIRVType *ResType, @@ -260,12 +260,12 @@ class SPIRVInstructionSelector : public InstructionSelector { bool selectSpvThreadId(Register ResVReg, const SPIRVType *ResType, MachineInstr &I) const; + bool selectWaveOpInst(Register ResVReg, const SPIRVType *ResType, + MachineInstr &I, unsigned Opcode) const; + bool selectWaveActiveCountBits(Register ResVReg, const SPIRVType *ResType, MachineInstr &I) const; - bool selectWaveReadLaneAt(Register ResVReg, const SPIRVType *ResType, - MachineInstr &I) const; - bool selectUnmergeValues(MachineInstr &I) const; bool selectHandleFromBinding(Register &ResVReg, const SPIRVType *ResType, @@ -859,11 +859,11 @@ bool SPIRVInstructionSelector::selectExtInst(Register ResVReg, return false; } -bool SPIRVInstructionSelector::selectNAryOpWithSrcs(Register ResVReg, - const SPIRVType *ResType, - MachineInstr &I, - std::vector Srcs, - unsigned Opcode) const { +bool SPIRVInstructionSelector::selectOpWithSrcs(Register ResVReg, + const SPIRVType *ResType, + MachineInstr &I, + std::vector Srcs, + unsigned Opcode) const { auto MIB = BuildMI(*I.getParent(), I, I.getDebugLoc(), TII.get(Opcode)) .addDef(ResVReg) .addUse(GR.getSPIRVTypeID(ResType)); @@ -873,18 +873,6 @@ bool SPIRVInstructionSelector::selectNAryOpWithSrcs(Register ResVReg, return MIB.constrainAllUses(TII, TRI, RBI); } -bool SPIRVInstructionSelector::selectUnOpWithSrc(Register ResVReg, - const SPIRVType *ResType, - MachineInstr &I, - Register SrcReg, - unsigned Opcode) const { - return BuildMI(*I.getParent(), I, I.getDebugLoc(), TII.get(Opcode)) - .addDef(ResVReg) - .addUse(GR.getSPIRVTypeID(ResType)) - .addUse(SrcReg) - .constrainAllUses(TII, TRI, RBI); -} - bool SPIRVInstructionSelector::selectUnOp(Register ResVReg, const SPIRVType *ResType, MachineInstr &I, @@ -920,8 +908,8 @@ bool SPIRVInstructionSelector::selectUnOp(Register ResVReg, .constrainAllUses(TII, TRI, RBI); } } - return selectUnOpWithSrc(ResVReg, ResType, I, I.getOperand(1).getReg(), - Opcode); + return selectOpWithSrcs(ResVReg, ResType, I, {I.getOperand(1).getReg()}, + Opcode); } bool SPIRVInstructionSelector::selectBitcast(Register ResVReg, @@ -1066,7 +1054,7 @@ bool SPIRVInstructionSelector::selectMemOperation(Register ResVReg, SPIRVType *SourceTy = GR.getOrCreateSPIRVPointerType( ValTy, I, TII, SPIRV::StorageClass::UniformConstant); SrcReg = MRI->createGenericVirtualRegister(LLT::scalar(64)); - selectUnOpWithSrc(SrcReg, SourceTy, I, VarReg, SPIRV::OpBitcast); + selectOpWithSrcs(SrcReg, SourceTy, I, {VarReg}, SPIRV::OpBitcast); } auto MIB = BuildMI(BB, I, I.getDebugLoc(), TII.get(SPIRV::OpCopyMemorySized)) .addUse(I.getOperand(0).getReg()) @@ -1111,7 +1099,7 @@ bool SPIRVInstructionSelector::selectAtomicRMW(Register ResVReg, if (NegateOpcode != 0) { // Translation with negative value operand is requested Register TmpReg = MRI->createVirtualRegister(&SPIRV::iIDRegClass); - Result &= selectUnOpWithSrc(TmpReg, ResType, I, ValueReg, NegateOpcode); + Result &= selectOpWithSrcs(TmpReg, ResType, I, {ValueReg}, NegateOpcode); ValueReg = TmpReg; } @@ -1720,11 +1708,28 @@ bool SPIRVInstructionSelector::selectFloatDot(Register ResVReg, .constrainAllUses(TII, TRI, RBI); } -// Since pre-1.6 SPIRV has no integer dot implementation, -// expand by piecewise multiplying and adding the results bool SPIRVInstructionSelector::selectIntegerDot(Register ResVReg, const SPIRVType *ResType, - MachineInstr &I) const { + MachineInstr &I, + bool Signed) const { + assert(I.getNumOperands() == 4); + assert(I.getOperand(2).isReg()); + assert(I.getOperand(3).isReg()); + MachineBasicBlock &BB = *I.getParent(); + + auto DotOp = Signed ? SPIRV::OpSDot : SPIRV::OpUDot; + return BuildMI(BB, I, I.getDebugLoc(), TII.get(DotOp)) + .addDef(ResVReg) + .addUse(GR.getSPIRVTypeID(ResType)) + .addUse(I.getOperand(2).getReg()) + .addUse(I.getOperand(3).getReg()) + .constrainAllUses(TII, TRI, RBI); +} + +// Since pre-1.6 SPIRV has no integer dot implementation, +// expand by piecewise multiplying and adding the results +bool SPIRVInstructionSelector::selectIntegerDotExpansion( + Register ResVReg, const SPIRVType *ResType, MachineInstr &I) const { assert(I.getNumOperands() == 4); assert(I.getOperand(2).isReg()); assert(I.getOperand(3).isReg()); @@ -1954,24 +1959,36 @@ bool SPIRVInstructionSelector::selectSign(Register ResVReg, return Result; } +bool SPIRVInstructionSelector::selectWaveOpInst(Register ResVReg, + const SPIRVType *ResType, + MachineInstr &I, + unsigned Opcode) const { + MachineBasicBlock &BB = *I.getParent(); + SPIRVType *IntTy = GR.getOrCreateSPIRVIntegerType(32, I, TII); + + auto BMI = BuildMI(BB, I, I.getDebugLoc(), TII.get(Opcode)) + .addDef(ResVReg) + .addUse(GR.getSPIRVTypeID(ResType)) + .addUse(GR.getOrCreateConstInt(SPIRV::Scope::Subgroup, I, + IntTy, TII)); + + for (unsigned J = 2; J < I.getNumOperands(); J++) { + BMI.addUse(I.getOperand(J).getReg()); + } + + return BMI.constrainAllUses(TII, TRI, RBI); +} + bool SPIRVInstructionSelector::selectWaveActiveCountBits( Register ResVReg, const SPIRVType *ResType, MachineInstr &I) const { - assert(I.getNumOperands() == 3); - assert(I.getOperand(2).isReg()); - MachineBasicBlock &BB = *I.getParent(); SPIRVType *IntTy = GR.getOrCreateSPIRVIntegerType(32, I, TII); SPIRVType *BallotType = GR.getOrCreateSPIRVVectorType(IntTy, 4, I, TII); Register BallotReg = MRI->createVirtualRegister(GR.getRegClass(BallotType)); + bool Result = selectWaveOpInst(BallotReg, BallotType, I, + SPIRV::OpGroupNonUniformBallot); - bool Result = - BuildMI(BB, I, I.getDebugLoc(), TII.get(SPIRV::OpGroupNonUniformBallot)) - .addDef(BallotReg) - .addUse(GR.getSPIRVTypeID(BallotType)) - .addUse(GR.getOrCreateConstInt(SPIRV::Scope::Subgroup, I, IntTy, TII)) - .addUse(I.getOperand(2).getReg()) - .constrainAllUses(TII, TRI, RBI); - + MachineBasicBlock &BB = *I.getParent(); Result &= BuildMI(BB, I, I.getDebugLoc(), TII.get(SPIRV::OpGroupNonUniformBallotBitCount)) @@ -1985,26 +2002,6 @@ bool SPIRVInstructionSelector::selectWaveActiveCountBits( return Result; } -bool SPIRVInstructionSelector::selectWaveReadLaneAt(Register ResVReg, - const SPIRVType *ResType, - MachineInstr &I) const { - assert(I.getNumOperands() == 4); - assert(I.getOperand(2).isReg()); - assert(I.getOperand(3).isReg()); - MachineBasicBlock &BB = *I.getParent(); - - // IntTy is used to define the execution scope, set to 3 to denote a - // cross-lane interaction equivalent to a SPIR-V subgroup. - SPIRVType *IntTy = GR.getOrCreateSPIRVIntegerType(32, I, TII); - return BuildMI(BB, I, I.getDebugLoc(), - TII.get(SPIRV::OpGroupNonUniformShuffle)) - .addDef(ResVReg) - .addUse(GR.getSPIRVTypeID(ResType)) - .addUse(GR.getOrCreateConstInt(3, I, IntTy, TII)) - .addUse(I.getOperand(2).getReg()) - .addUse(I.getOperand(3).getReg()); -} - bool SPIRVInstructionSelector::selectBitreverse(Register ResVReg, const SPIRVType *ResType, MachineInstr &I) const { @@ -2374,7 +2371,7 @@ bool SPIRVInstructionSelector::selectIToF(Register ResVReg, SrcReg = MRI->createVirtualRegister(&SPIRV::iIDRegClass); selectSelect(SrcReg, TmpType, I, false); } - return selectUnOpWithSrc(ResVReg, ResType, I, SrcReg, Opcode); + return selectOpWithSrcs(ResVReg, ResType, I, {SrcReg}, Opcode); } bool SPIRVInstructionSelector::selectExt(Register ResVReg, @@ -2778,7 +2775,11 @@ bool SPIRVInstructionSelector::selectIntrinsic(Register ResVReg, return selectFloatDot(ResVReg, ResType, I); case Intrinsic::spv_udot: case Intrinsic::spv_sdot: - return selectIntegerDot(ResVReg, ResType, I); + if (STI.canUseExtension(SPIRV::Extension::SPV_KHR_integer_dot_product) || + STI.isAtLeastSPIRVVer(VersionTuple(1, 6))) + return selectIntegerDot(ResVReg, ResType, I, + /*Signed=*/IID == Intrinsic::spv_sdot); + return selectIntegerDotExpansion(ResVReg, ResType, I); case Intrinsic::spv_dot4add_i8packed: if (STI.canUseExtension(SPIRV::Extension::SPV_KHR_integer_dot_product) || STI.isAtLeastSPIRVVer(VersionTuple(1, 6))) @@ -2853,16 +2854,13 @@ bool SPIRVInstructionSelector::selectIntrinsic(Register ResVReg, return selectExtInst(ResVReg, ResType, I, CL::s_clamp, GL::SClamp); case Intrinsic::spv_wave_active_countbits: return selectWaveActiveCountBits(ResVReg, ResType, I); - case Intrinsic::spv_wave_is_first_lane: { - SPIRVType *IntTy = GR.getOrCreateSPIRVIntegerType(32, I, TII); - return BuildMI(BB, I, I.getDebugLoc(), - TII.get(SPIRV::OpGroupNonUniformElect)) - .addDef(ResVReg) - .addUse(GR.getSPIRVTypeID(ResType)) - .addUse(GR.getOrCreateConstInt(3, I, IntTy, TII)); - } + case Intrinsic::spv_wave_any: + return selectWaveOpInst(ResVReg, ResType, I, SPIRV::OpGroupNonUniformAny); + case Intrinsic::spv_wave_is_first_lane: + return selectWaveOpInst(ResVReg, ResType, I, SPIRV::OpGroupNonUniformElect); case Intrinsic::spv_wave_readlane: - return selectWaveReadLaneAt(ResVReg, ResType, I); + return selectWaveOpInst(ResVReg, ResType, I, + SPIRV::OpGroupNonUniformShuffle); case Intrinsic::spv_step: return selectExtInst(ResVReg, ResType, I, CL::step, GL::Step); case Intrinsic::spv_radians: @@ -3068,7 +3066,7 @@ bool SPIRVInstructionSelector::selectFirstBitHigh16(Register ResVReg, // zero or sign extend Register ExtReg = MRI->createVirtualRegister(GR.getRegClass(ResType)); bool Result = - selectUnOpWithSrc(ExtReg, ResType, I, I.getOperand(2).getReg(), Opcode); + selectOpWithSrcs(ExtReg, ResType, I, {I.getOperand(2).getReg()}, Opcode); return Result && selectFirstBitHigh32(ResVReg, ResType, I, ExtReg, IsSigned); } @@ -3100,7 +3098,7 @@ bool SPIRVInstructionSelector::selectFirstBitHigh64(Register ResVReg, GR.getOrCreateSPIRVVectorType(baseType, 2 * count, MIRBuilder); Register bitcastReg = MRI->createVirtualRegister(GR.getRegClass(postCastT)); bool Result = - selectUnOpWithSrc(bitcastReg, postCastT, I, OpReg, SPIRV::OpBitcast); + selectOpWithSrcs(bitcastReg, postCastT, I, {OpReg}, SPIRV::OpBitcast); // 2. call firstbithigh Register FBHReg = MRI->createVirtualRegister(GR.getRegClass(postCastT)); @@ -3114,11 +3112,11 @@ bool SPIRVInstructionSelector::selectFirstBitHigh64(Register ResVReg, bool isScalarRes = ResType->getOpcode() != SPIRV::OpTypeVector; if (isScalarRes) { // if scalar do a vector extract - Result &= selectNAryOpWithSrcs( + Result &= selectOpWithSrcs( HighReg, ResType, I, {FBHReg, GR.getOrCreateConstInt(0, I, ResType, TII, ZeroAsNull)}, SPIRV::OpVectorExtractDynamic); - Result &= selectNAryOpWithSrcs( + Result &= selectOpWithSrcs( LowReg, ResType, I, {FBHReg, GR.getOrCreateConstInt(1, I, ResType, TII, ZeroAsNull)}, SPIRV::OpVectorExtractDynamic); @@ -3176,21 +3174,20 @@ bool SPIRVInstructionSelector::selectFirstBitHigh64(Register ResVReg, // check if the high bits are == -1; true if -1 Register BReg = MRI->createVirtualRegister(GR.getRegClass(BoolType)); - Result &= selectNAryOpWithSrcs(BReg, BoolType, I, {HighReg, NegOneReg}, - SPIRV::OpIEqual); + Result &= selectOpWithSrcs(BReg, BoolType, I, {HighReg, NegOneReg}, + SPIRV::OpIEqual); // Select low bits if true in BReg, otherwise high bits Register TmpReg = MRI->createVirtualRegister(GR.getRegClass(ResType)); - Result &= selectNAryOpWithSrcs(TmpReg, ResType, I, {BReg, LowReg, HighReg}, - selectOp); + Result &= + selectOpWithSrcs(TmpReg, ResType, I, {BReg, LowReg, HighReg}, selectOp); // Add 32 for high bits, 0 for low bits Register ValReg = MRI->createVirtualRegister(GR.getRegClass(ResType)); - Result &= - selectNAryOpWithSrcs(ValReg, ResType, I, {BReg, Reg0, Reg32}, selectOp); + Result &= selectOpWithSrcs(ValReg, ResType, I, {BReg, Reg0, Reg32}, selectOp); return Result && - selectNAryOpWithSrcs(ResVReg, ResType, I, {ValReg, TmpReg}, addOp); + selectOpWithSrcs(ResVReg, ResType, I, {ValReg, TmpReg}, addOp); } bool SPIRVInstructionSelector::selectFirstBitHigh(Register ResVReg, @@ -3319,9 +3316,6 @@ bool SPIRVInstructionSelector::selectGlobalValue( PointerBaseType = GR.getOrCreateSPIRVType( GVType, MIRBuilder, SPIRV::AccessQualifier::ReadWrite, false); } - SPIRVType *ResType = GR.getOrCreateSPIRVPointerType( - PointerBaseType, I, TII, - addressSpaceToStorageClass(GV->getAddressSpace(), STI)); std::string GlobalIdent; if (!GV->hasName()) { @@ -3354,6 +3348,10 @@ bool SPIRVInstructionSelector::selectGlobalValue( STI.canUseExtension(SPIRV::Extension::SPV_INTEL_function_pointers) ? dyn_cast(GV) : nullptr; + SPIRVType *ResType = GR.getOrCreateSPIRVPointerType( + PointerBaseType, I, TII, + GVFun ? SPIRV::StorageClass::CodeSectionINTEL + : addressSpaceToStorageClass(GV->getAddressSpace(), STI)); if (GVFun) { // References to a function via function pointers generate virtual // registers without a definition. We will resolve it later, during @@ -3405,6 +3403,9 @@ bool SPIRVInstructionSelector::selectGlobalValue( ? SPIRV::LinkageType::LinkOnceODR : SPIRV::LinkageType::Export); + SPIRVType *ResType = GR.getOrCreateSPIRVPointerType( + PointerBaseType, I, TII, + addressSpaceToStorageClass(GV->getAddressSpace(), STI)); Register Reg = GR.buildGlobalVariable(ResVReg, ResType, GlobalIdent, GV, Storage, Init, GlobalVar->isConstant(), HasLnkTy, LnkType, MIRBuilder, true); diff --git a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp index 056af08ebcb86..d9f928eb90640 100644 --- a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp @@ -630,6 +630,15 @@ void RequirementHandler::initAvailableCapabilities(const SPIRVSubtarget &ST) { addAvailableCaps({Capability::Shader, Capability::Linkage, Capability::Int8, Capability::Int16}); + if (ST.isAtLeastSPIRVVer(VersionTuple(1, 3))) + addAvailableCaps({Capability::GroupNonUniform, + Capability::GroupNonUniformVote, + Capability::GroupNonUniformArithmetic, + Capability::GroupNonUniformBallot, + Capability::GroupNonUniformClustered, + Capability::GroupNonUniformShuffle, + Capability::GroupNonUniformShuffleRelative}); + if (ST.isAtLeastSPIRVVer(VersionTuple(1, 6))) addAvailableCaps({Capability::DotProduct, Capability::DotProductInputAll, Capability::DotProductInput4x8Bit, @@ -676,14 +685,6 @@ void RequirementHandler::initAvailableCapabilitiesForOpenCL( if (ST.isAtLeastSPIRVVer(VersionTuple(1, 1)) && ST.isAtLeastOpenCLVer(VersionTuple(2, 2))) addAvailableCaps({Capability::SubgroupDispatch, Capability::PipeStorage}); - if (ST.isAtLeastSPIRVVer(VersionTuple(1, 3))) - addAvailableCaps({Capability::GroupNonUniform, - Capability::GroupNonUniformVote, - Capability::GroupNonUniformArithmetic, - Capability::GroupNonUniformBallot, - Capability::GroupNonUniformClustered, - Capability::GroupNonUniformShuffle, - Capability::GroupNonUniformShuffleRelative}); if (ST.isAtLeastSPIRVVer(VersionTuple(1, 4))) addAvailableCaps({Capability::DenormPreserve, Capability::DenormFlushToZero, Capability::SignedZeroInfNanPreserve, @@ -1028,21 +1029,27 @@ static void AddDotProductRequirements(const MachineInstr &MI, Reqs.addCapability(SPIRV::Capability::DotProduct); const MachineRegisterInfo &MRI = MI.getMF()->getRegInfo(); - const MachineInstr *InstrPtr = &MI; - assert(MI.getOperand(1).isReg() && "Unexpected operand in dot"); - - Register TypeReg = InstrPtr->getOperand(1).getReg(); - SPIRVType *TypeDef = MRI.getVRegDef(TypeReg); + assert(MI.getOperand(2).isReg() && "Unexpected operand in dot"); + // We do not consider what the previous instruction is. This is just used + // to get the input register and to check the type. + const MachineInstr *Input = MRI.getVRegDef(MI.getOperand(2).getReg()); + assert(Input->getOperand(1).isReg() && "Unexpected operand in dot input"); + Register InputReg = Input->getOperand(1).getReg(); + + SPIRVType *TypeDef = MRI.getVRegDef(InputReg); if (TypeDef->getOpcode() == SPIRV::OpTypeInt) { assert(TypeDef->getOperand(1).getImm() == 32); Reqs.addCapability(SPIRV::Capability::DotProductInput4x8BitPacked); } else if (TypeDef->getOpcode() == SPIRV::OpTypeVector) { SPIRVType *ScalarTypeDef = MRI.getVRegDef(TypeDef->getOperand(1).getReg()); assert(ScalarTypeDef->getOpcode() == SPIRV::OpTypeInt); - auto Capability = ScalarTypeDef->getOperand(1).getImm() == 8 - ? SPIRV::Capability::DotProductInput4x8Bit - : SPIRV::Capability::DotProductInputAll; - Reqs.addCapability(Capability); + if (ScalarTypeDef->getOperand(1).getImm() == 8) { + assert(TypeDef->getOperand(2).getImm() == 4 && + "Dot operand of 8-bit integer type requires 4 components"); + Reqs.addCapability(SPIRV::Capability::DotProductInput4x8Bit); + } else { + Reqs.addCapability(SPIRV::Capability::DotProductInputAll); + } } } diff --git a/llvm/lib/Target/SPIRV/SPIRVUtils.cpp b/llvm/lib/Target/SPIRV/SPIRVUtils.cpp index aeb2c29f7b861..ad8dfa0e8811b 100644 --- a/llvm/lib/Target/SPIRV/SPIRVUtils.cpp +++ b/llvm/lib/Target/SPIRV/SPIRVUtils.cpp @@ -205,6 +205,8 @@ addressSpaceToStorageClass(unsigned AddrSpace, const SPIRVSubtarget &STI) { : SPIRV::StorageClass::CrossWorkgroup; case 7: return SPIRV::StorageClass::Input; + case 9: + return SPIRV::StorageClass::CodeSectionINTEL; default: report_fatal_error("Unknown address space"); } diff --git a/llvm/lib/Target/SPIRV/SPIRVUtils.h b/llvm/lib/Target/SPIRV/SPIRVUtils.h index 298b0b93b0e4d..da0e8769cac1b 100644 --- a/llvm/lib/Target/SPIRV/SPIRVUtils.h +++ b/llvm/lib/Target/SPIRV/SPIRVUtils.h @@ -166,6 +166,8 @@ storageClassToAddressSpace(SPIRV::StorageClass::StorageClass SC) { return 6; case SPIRV::StorageClass::Input: return 7; + case SPIRV::StorageClass::CodeSectionINTEL: + return 9; default: report_fatal_error("Unable to get address space id"); } diff --git a/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp b/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp index 67b498252197d..461f859957041 100644 --- a/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp +++ b/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp @@ -106,8 +106,8 @@ bool SparcDAGToDAGISel::SelectADDRri(SDValue Addr, } else { Base = Addr.getOperand(0); } - Offset = CurDAG->getTargetConstant(CN->getZExtValue(), SDLoc(Addr), - MVT::i32); + Offset = CurDAG->getSignedTargetConstant(CN->getSExtValue(), + SDLoc(Addr), MVT::i32); return true; } } diff --git a/llvm/lib/Target/Sparc/SparcISelLowering.cpp b/llvm/lib/Target/Sparc/SparcISelLowering.cpp index 9bfc0fc1c3e32..03a74b6254300 100644 --- a/llvm/lib/Target/Sparc/SparcISelLowering.cpp +++ b/llvm/lib/Target/Sparc/SparcISelLowering.cpp @@ -2820,7 +2820,7 @@ static SDValue LowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG, SDValue AlignedPtr = IsOveraligned ? DAG.getNode(ISD::AND, dl, VT, AllocatedPtr, - DAG.getConstant(-MaybeAlignment->value(), dl, VT)) + DAG.getSignedConstant(-MaybeAlignment->value(), dl, VT)) : AllocatedPtr; // Now that we are done, restore the bias and reserved spill area. @@ -3367,8 +3367,8 @@ void SparcTargetLowering::LowerAsmOperandForConstraint( case 'I': if (ConstantSDNode *C = dyn_cast(Op)) { if (isInt<13>(C->getSExtValue())) { - Result = DAG.getTargetConstant(C->getSExtValue(), SDLoc(Op), - Op.getValueType()); + Result = DAG.getSignedTargetConstant(C->getSExtValue(), SDLoc(Op), + Op.getValueType()); break; } return; diff --git a/llvm/lib/Target/Sparc/SparcInstr64Bit.td b/llvm/lib/Target/Sparc/SparcInstr64Bit.td index 6b78137451650..56fab2f26a19e 100644 --- a/llvm/lib/Target/Sparc/SparcInstr64Bit.td +++ b/llvm/lib/Target/Sparc/SparcInstr64Bit.td @@ -67,7 +67,7 @@ def : Pat<(i64 0), (COPY (i64 G0))>, // The ALU instructions want their simm13 operands as i32 immediates. // FIXME: This is no longer true, they are now pointer-sized. def as_i32imm : SDNodeXFormgetTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i32); + return CurDAG->getSignedTargetConstant(N->getSExtValue(), SDLoc(N), MVT::i32); }]>; def : Pat<(i64 simm13:$val), (ORri (i64 G0), (as_i32imm $val))>; def : Pat<(i64 SETHIimm:$val), (SETHIi (HI22 $val))>; @@ -91,8 +91,8 @@ def HIX22 : SDNodeXForm; // Bits 0-9 with ones in bits 10-31. Same as assembler's %lox. def LOX10 : SDNodeXFormgetTargetConstant(~(~N->getZExtValue() & 0x3ff), SDLoc(N), - MVT::i32); + return CurDAG->getSignedTargetConstant(~(~N->getZExtValue() & 0x3ff), + SDLoc(N), MVT::i32); }]>; def : Pat<(i64 nimm33:$val), (XORri (SETHIi (HIX22 $val)), (LOX10 $val))>, Requires<[Is64Bit]>; diff --git a/llvm/lib/Target/Sparc/SparcInstrInfo.td b/llvm/lib/Target/Sparc/SparcInstrInfo.td index 38fd683832f0d..bb5b9f2d736f9 100644 --- a/llvm/lib/Target/Sparc/SparcInstrInfo.td +++ b/llvm/lib/Target/Sparc/SparcInstrInfo.td @@ -280,7 +280,7 @@ def SPbpicc : SDNode<"SPISD::BPICC", SDTSPbrcc, [SDNPHasChain, SDNPInGlue]>; def SPbpxcc : SDNode<"SPISD::BPXCC", SDTSPbrcc, [SDNPHasChain, SDNPInGlue]>; def SPbrfcc : SDNode<"SPISD::BRFCC", SDTSPbrcc, [SDNPHasChain, SDNPInGlue]>; def SPbrfccv9 : SDNode<"SPISD::BRFCC_V9", SDTSPbrcc, [SDNPHasChain, SDNPInGlue]>; -def SPbrreg : SDNode<"SPISD::BR_REG", SDTSPbrreg, [SDNPHasChain, SDNPInGlue]>; +def SPbrreg : SDNode<"SPISD::BR_REG", SDTSPbrreg, [SDNPHasChain]>; def SPhi : SDNode<"SPISD::Hi", SDTIntUnaryOp>; def SPlo : SDNode<"SPISD::Lo", SDTIntUnaryOp>; @@ -293,7 +293,7 @@ def SPxtof : SDNode<"SPISD::XTOF", SDTSPXTOF>; def SPselecticc : SDNode<"SPISD::SELECT_ICC", SDTSPselectcc, [SDNPInGlue]>; def SPselectxcc : SDNode<"SPISD::SELECT_XCC", SDTSPselectcc, [SDNPInGlue]>; def SPselectfcc : SDNode<"SPISD::SELECT_FCC", SDTSPselectcc, [SDNPInGlue]>; -def SPselectreg : SDNode<"SPISD::SELECT_REG", SDTSPselectreg, [SDNPInGlue]>; +def SPselectreg : SDNode<"SPISD::SELECT_REG", SDTSPselectreg>; // These are target-independent nodes, but have target-specific formats. def SDT_SPCallSeqStart : SDCallSeqStart<[ SDTCisVT<0, i32>, diff --git a/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp b/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp index 90d7bd934af40..403d238aa5b52 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp +++ b/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp @@ -671,7 +671,7 @@ void SystemZDAGToDAGISel::getAddressOperands(const SystemZAddressingMode &AM, } // Lower the displacement to a TargetConstant. - Disp = CurDAG->getTargetConstant(AM.Disp, SDLoc(Base), VT); + Disp = CurDAG->getSignedTargetConstant(AM.Disp, SDLoc(Base), VT); } void SystemZDAGToDAGISel::getAddressOperands(const SystemZAddressingMode &AM, @@ -2024,8 +2024,9 @@ SDValue SystemZDAGToDAGISel::expandSelectBoolean(SDNode *Node) { CurDAG->getConstant(IPM.XORValue, DL, MVT::i32)); if (IPM.AddValue) - Result = CurDAG->getNode(ISD::ADD, DL, MVT::i32, Result, - CurDAG->getConstant(IPM.AddValue, DL, MVT::i32)); + Result = + CurDAG->getNode(ISD::ADD, DL, MVT::i32, Result, + CurDAG->getSignedConstant(IPM.AddValue, DL, MVT::i32)); EVT VT = Node->getValueType(0); if (VT == MVT::i32 && IPM.Bit == 31) { diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp index 78d91299a357d..8f505b7e198cf 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp +++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp @@ -1444,15 +1444,15 @@ void SystemZTargetLowering::LowerAsmOperandForConstraint( case 'K': // Signed 16-bit constant if (auto *C = dyn_cast(Op)) if (isInt<16>(C->getSExtValue())) - Ops.push_back(DAG.getTargetConstant(C->getSExtValue(), SDLoc(Op), - Op.getValueType())); + Ops.push_back(DAG.getSignedTargetConstant( + C->getSExtValue(), SDLoc(Op), Op.getValueType())); return; case 'L': // Signed 20-bit displacement (on all targets we support) if (auto *C = dyn_cast(Op)) if (isInt<20>(C->getSExtValue())) - Ops.push_back(DAG.getTargetConstant(C->getSExtValue(), SDLoc(Op), - Op.getValueType())); + Ops.push_back(DAG.getSignedTargetConstant( + C->getSExtValue(), SDLoc(Op), Op.getValueType())); return; case 'M': // 0x7fffffff @@ -2578,7 +2578,7 @@ static void adjustSubwordCmp(SelectionDAG &DAG, const SDLoc &DL, // Make sure that the second operand is an i32 with the right value. if (C.Op1.getValueType() != MVT::i32 || Value != ConstOp1->getZExtValue()) - C.Op1 = DAG.getConstant(Value, DL, MVT::i32); + C.Op1 = DAG.getConstant((uint32_t)Value, DL, MVT::i32); } // Return true if Op is either an unextended load, or a load suitable @@ -3410,7 +3410,7 @@ SDValue SystemZTargetLowering::lowerVectorSETCC(SelectionDAG &DAG, } if (Invert) { SDValue Mask = - DAG.getSplatBuildVector(VT, DL, DAG.getConstant(-1, DL, MVT::i64)); + DAG.getSplatBuildVector(VT, DL, DAG.getAllOnesConstant(DL, MVT::i64)); Cmp = DAG.getNode(ISD::XOR, DL, VT, Cmp, Mask); } if (Chain && Chain.getNode() != Cmp.getNode()) { @@ -3571,7 +3571,7 @@ SDValue SystemZTargetLowering::lowerGlobalAddress(GlobalAddressSDNode *Node, // addition for it. if (Offset != 0) Result = DAG.getNode(ISD::ADD, DL, PtrVT, Result, - DAG.getConstant(Offset, DL, PtrVT)); + DAG.getSignedConstant(Offset, DL, PtrVT)); return Result; } @@ -3834,7 +3834,7 @@ SDValue SystemZTargetLowering::lowerRETURNADDR(SDValue Op, const auto *TFL = Subtarget.getFrameLowering(); int Offset = TFL->getReturnAddressOffset(MF); SDValue Ptr = DAG.getNode(ISD::ADD, DL, PtrVT, FrameAddr, - DAG.getConstant(Offset, DL, PtrVT)); + DAG.getSignedConstant(Offset, DL, PtrVT)); return DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), Ptr, MachinePointerInfo()); } @@ -4584,7 +4584,7 @@ static void getCSAddressAndShifts(SDValue Addr, SelectionDAG &DAG, SDLoc DL, // Get the address of the containing word. AlignedAddr = DAG.getNode(ISD::AND, DL, PtrVT, Addr, - DAG.getConstant(-4, DL, PtrVT)); + DAG.getSignedConstant(-4, DL, PtrVT)); // Get the number of bits that the word must be rotated left in order // to bring the field to the top bits of a GR32. @@ -4623,7 +4623,8 @@ SDValue SystemZTargetLowering::lowerATOMIC_LOAD_OP(SDValue Op, if (Opcode == SystemZISD::ATOMIC_LOADW_SUB) if (auto *Const = dyn_cast(Src2)) { Opcode = SystemZISD::ATOMIC_LOADW_ADD; - Src2 = DAG.getConstant(-Const->getSExtValue(), DL, Src2.getValueType()); + Src2 = DAG.getSignedConstant(-Const->getSExtValue(), DL, + Src2.getValueType()); } SDValue AlignedAddr, BitShift, NegBitShift; diff --git a/llvm/lib/Target/SystemZ/SystemZOperands.td b/llvm/lib/Target/SystemZ/SystemZOperands.td index 0221e2c53f2f4..64345ca3a1394 100644 --- a/llvm/lib/Target/SystemZ/SystemZOperands.td +++ b/llvm/lib/Target/SystemZ/SystemZOperands.td @@ -220,8 +220,8 @@ def NEGLF32 : SDNodeXFormgetTargetConstant(int8_t(N->getZExtValue()), SDLoc(N), - MVT::i64); + return CurDAG->getSignedTargetConstant(int8_t(N->getZExtValue()), SDLoc(N), + MVT::i64); }]>; // Truncate an immediate to a 8-bit unsigned quantity. @@ -244,14 +244,14 @@ def UIMM12 : SDNodeXFormgetTargetConstant(int16_t(N->getZExtValue()), SDLoc(N), - MVT::i64); + return CurDAG->getSignedTargetConstant(int16_t(N->getZExtValue()), SDLoc(N), + MVT::i64); }]>; // Negate and then truncate an immediate to a 16-bit signed quantity. def NEGSIMM16 : SDNodeXFormgetTargetConstant(int16_t(-N->getZExtValue()), SDLoc(N), - MVT::i64); + return CurDAG->getSignedTargetConstant(int16_t(-N->getZExtValue()), SDLoc(N), + MVT::i64); }]>; // Truncate an immediate to a 16-bit unsigned quantity. @@ -268,8 +268,8 @@ def SIMM32 : SDNodeXFormgetTargetConstant(int32_t(-N->getZExtValue()), SDLoc(N), - MVT::i64); + return CurDAG->getSignedTargetConstant(int32_t(-N->getZExtValue()), SDLoc(N), + MVT::i64); }]>; // Truncate an immediate to a 32-bit unsigned quantity. diff --git a/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp b/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp index 4eb58e27f7ad7..c182c9890509f 100644 --- a/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp +++ b/llvm/lib/Target/SystemZ/SystemZSelectionDAGInfo.cpp @@ -53,7 +53,7 @@ static SDValue emitMemMemReg(SelectionDAG &DAG, const SDLoc &DL, unsigned Op, int64_t Adj = getMemMemLenAdj(Op); SDValue LenAdj = DAG.getNode(ISD::ADD, DL, MVT::i64, DAG.getZExtOrTrunc(Size, DL, MVT::i64), - DAG.getConstant(0 - Adj, DL, MVT::i64)); + DAG.getSignedConstant(0 - Adj, DL, MVT::i64)); return createMemMemNode(DAG, DL, Op, Chain, Dst, Src, LenAdj, Byte); } diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp index f96e3232b93f4..3d678e5384166 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp @@ -104,24 +104,6 @@ TTI::ReductionShuffle WebAssemblyTTIImpl::getPreferredExpandedReductionShuffle( return TTI::ReductionShuffle::SplitHalf; } -bool WebAssemblyTTIImpl::areInlineCompatible(const Function *Caller, - const Function *Callee) const { - // Allow inlining only when the Callee has a subset of the Caller's - // features. In principle, we should be able to inline regardless of any - // features because WebAssembly supports features at module granularity, not - // function granularity, but without this restriction it would be possible for - // a module to "forget" about features if all the functions that used them - // were inlined. - const TargetMachine &TM = getTLI()->getTargetMachine(); - - const FeatureBitset &CallerBits = - TM.getSubtargetImpl(*Caller)->getFeatureBits(); - const FeatureBitset &CalleeBits = - TM.getSubtargetImpl(*Callee)->getFeatureBits(); - - return (CallerBits & CalleeBits) == CalleeBits; -} - void WebAssemblyTTIImpl::getUnrollingPreferences( Loop *L, ScalarEvolution &SE, TTI::UnrollingPreferences &UP, OptimizationRemarkEmitter *ORE) const { diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h b/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h index 2ce6cbf3ba026..9691120b2e531 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h +++ b/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h @@ -72,9 +72,6 @@ class WebAssemblyTTIImpl final : public BasicTTIImplBase { TTI::ReductionShuffle getPreferredExpandedReductionShuffle(const IntrinsicInst *II) const; - bool areInlineCompatible(const Function *Caller, - const Function *Callee) const; - bool supportsTailCalls() const; bool isProfitableToSinkOperands(Instruction *I, diff --git a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp index c3eae294919f3..c27177484f55a 100644 --- a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp +++ b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp @@ -329,6 +329,14 @@ static int readPrefixes(struct InternalInstruction *insn) { break; } + if (isREX(insn, byte)) { + insn->rexPrefix = byte; + isPrefix = true; + LLVM_DEBUG(dbgs() << format("Found REX prefix 0x%hhx", byte)); + } else if (isPrefix) { + insn->rexPrefix = 0; + } + if (isPrefix) LLVM_DEBUG(dbgs() << format("Found prefix 0x%hhx", byte)); } @@ -506,11 +514,6 @@ static int readPrefixes(struct InternalInstruction *insn) { LLVM_DEBUG(dbgs() << format("Found REX2 prefix 0x%hhx 0x%hhx", insn->rex2ExtensionPrefix[0], insn->rex2ExtensionPrefix[1])); - } else if (isREX(insn, byte)) { - if (peek(insn, nextByte)) - return -1; - insn->rexPrefix = byte; - LLVM_DEBUG(dbgs() << format("Found REX prefix 0x%hhx", byte)); } else --insn->readerCursor; diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp index 8be8f0b6d735c..01b6c84419fc8 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp @@ -634,6 +634,7 @@ const MCFixupKindInfo &X86AsmBackend::getFixupKindInfo(MCFixupKind Kind) const { {"reloc_riprel_4byte_relax", 0, 32, MCFixupKindInfo::FKF_IsPCRel}, {"reloc_riprel_4byte_relax_rex", 0, 32, MCFixupKindInfo::FKF_IsPCRel}, {"reloc_riprel_4byte_relax_rex2", 0, 32, MCFixupKindInfo::FKF_IsPCRel}, + {"reloc_riprel_6byte_relax", 0, 32, MCFixupKindInfo::FKF_IsPCRel}, {"reloc_signed_4byte", 0, 32, 0}, {"reloc_signed_4byte_relax", 0, 32, 0}, {"reloc_global_offset_table", 0, 32, 0}, @@ -683,6 +684,7 @@ static unsigned getFixupKindSize(unsigned Kind) { case X86::reloc_riprel_4byte_relax_rex2: case X86::reloc_riprel_4byte_movq_load: case X86::reloc_riprel_4byte_movq_load_rex2: + case X86::reloc_riprel_6byte_relax: case X86::reloc_signed_4byte: case X86::reloc_signed_4byte_relax: case X86::reloc_global_offset_table: diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp index a57b1335d1437..29a1af97d24fa 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp @@ -77,6 +77,7 @@ static X86_64RelType getType64(MCFixupKind Kind, case X86::reloc_riprel_4byte_relax_rex2: case X86::reloc_riprel_4byte_movq_load: case X86::reloc_riprel_4byte_movq_load_rex2: + case X86::reloc_riprel_6byte_relax: return RT64_32; case X86::reloc_branch_4byte_pcrel: Modifier = MCSymbolRefExpr::VK_PLT; @@ -191,12 +192,19 @@ static unsigned getRelocType64(MCContext &Ctx, SMLoc Loc, case MCSymbolRefExpr::VK_TLSCALL: return ELF::R_X86_64_TLSDESC_CALL; case MCSymbolRefExpr::VK_TLSDESC: - return ELF::R_X86_64_GOTPC32_TLSDESC; + return ((unsigned)Kind == X86::reloc_riprel_4byte_relax_rex2) + ? ELF::R_X86_64_CODE_4_GOTPC32_TLSDESC + : ELF::R_X86_64_GOTPC32_TLSDESC; case MCSymbolRefExpr::VK_TLSGD: checkIs32(Ctx, Loc, Type); return ELF::R_X86_64_TLSGD; case MCSymbolRefExpr::VK_GOTTPOFF: checkIs32(Ctx, Loc, Type); + if ((unsigned)Kind == X86::reloc_riprel_4byte_movq_load_rex2 || + (unsigned)Kind == X86::reloc_riprel_4byte_relax_rex2) + return ELF::R_X86_64_CODE_4_GOTTPOFF; + else if ((unsigned)Kind == X86::reloc_riprel_6byte_relax) + return ELF::R_X86_64_CODE_6_GOTTPOFF; return ELF::R_X86_64_GOTTPOFF; case MCSymbolRefExpr::VK_TLSLD: checkIs32(Ctx, Loc, Type); @@ -222,6 +230,8 @@ static unsigned getRelocType64(MCContext &Ctx, SMLoc Loc, case X86::reloc_riprel_4byte_relax_rex2: case X86::reloc_riprel_4byte_movq_load_rex2: return ELF::R_X86_64_CODE_4_GOTPCRELX; + case X86::reloc_riprel_6byte_relax: + return ELF::R_X86_64_CODE_6_GOTTPOFF; } llvm_unreachable("unexpected relocation type!"); case MCSymbolRefExpr::VK_GOTPCREL_NORELAX: diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h b/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h index 29bb7eebae3f2..52592a5a13b97 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h +++ b/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h @@ -24,6 +24,8 @@ enum Fixups { // instruction with rex prefix reloc_riprel_4byte_relax_rex2, // 32-bit rip-relative in relaxable // instruction with rex2 prefix + reloc_riprel_6byte_relax, // 32-bit rip-relative in relaxable + // instruction with APX NDD reloc_signed_4byte, // 32-bit signed. Unlike FK_Data_4 // this will be sign extended at // runtime. diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp index 70c71273d270f..9f8bc57fbc76d 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp @@ -1122,15 +1122,21 @@ bool llvm::EmitAnyX86InstComments(const MCInst *MI, raw_ostream &OS, case X86::VINSERTPSrri: case X86::VINSERTPSZrri: Src2Name = getRegName(MI->getOperand(2).getReg()); - [[fallthrough]]; + DestName = getRegName(MI->getOperand(0).getReg()); + Src1Name = getRegName(MI->getOperand(1).getReg()); + if (MI->getOperand(NumOperands - 1).isImm()) + DecodeINSERTPSMask(MI->getOperand(NumOperands - 1).getImm(), ShuffleMask, + /*SrcIsMem=*/false); + break; + case X86::INSERTPSrmi: case X86::VINSERTPSrmi: case X86::VINSERTPSZrmi: DestName = getRegName(MI->getOperand(0).getReg()); Src1Name = getRegName(MI->getOperand(1).getReg()); if (MI->getOperand(NumOperands - 1).isImm()) - DecodeINSERTPSMask(MI->getOperand(NumOperands - 1).getImm(), - ShuffleMask); + DecodeINSERTPSMask(MI->getOperand(NumOperands - 1).getImm(), ShuffleMask, + /*SrcIsMem=*/true); break; case X86::MOVLHPSrr: diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp index f9916fa82b1ff..052d732e4d019 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp @@ -579,7 +579,9 @@ void X86MCCodeEmitter::emitImmediate(const MCOperand &DispOp, SMLoc Loc, // this needs to be a GOTPC32 relocation. if (startsWithGlobalOffsetTable(Expr) != GOT_None) FixupKind = MCFixupKind(X86::reloc_global_offset_table); - } + } else if (FixupKind == MCFixupKind(X86::reloc_riprel_6byte_relax)) + ImmOffset -= 6; + if (FixupKind == FK_PCRel_2) ImmOffset -= 2; if (FixupKind == FK_PCRel_1) @@ -666,9 +668,16 @@ void X86MCCodeEmitter::emitMemModRMByte( case X86::SBB64rm: case X86::SUB64rm: case X86::XOR64rm: + case X86::LEA64r: return Kind == REX2 ? X86::reloc_riprel_4byte_relax_rex2 : Kind == REX ? X86::reloc_riprel_4byte_relax_rex : X86::reloc_riprel_4byte_relax; + case X86::ADD64rm_NF: + case X86::ADD64rm_ND: + case X86::ADD64mr_ND: + case X86::ADD64mr_NF_ND: + case X86::ADD64rm_NF_ND: + return X86::reloc_riprel_6byte_relax; } }(); diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp index 41ce5c9fcb82a..413650e90de65 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp @@ -69,7 +69,8 @@ static bool isFixupKindRIPRel(unsigned Kind) { Kind == X86::reloc_riprel_4byte_movq_load_rex2 || Kind == X86::reloc_riprel_4byte_relax || Kind == X86::reloc_riprel_4byte_relax_rex || - Kind == X86::reloc_riprel_4byte_relax_rex2; + Kind == X86::reloc_riprel_4byte_relax_rex2 || + Kind == X86::reloc_riprel_6byte_relax; } static unsigned getFixupKindLog2Size(unsigned Kind) { @@ -91,6 +92,7 @@ static unsigned getFixupKindLog2Size(unsigned Kind) { case X86::reloc_signed_4byte: case X86::reloc_signed_4byte_relax: case X86::reloc_branch_4byte_pcrel: + case X86::reloc_riprel_6byte_relax: case FK_Data_4: return 2; case FK_Data_8: return 3; } diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp index 82f4460a42e70..933fd16a5cabe 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp @@ -23,7 +23,8 @@ namespace llvm { -void DecodeINSERTPSMask(unsigned Imm, SmallVectorImpl &ShuffleMask) { +void DecodeINSERTPSMask(unsigned Imm, SmallVectorImpl &ShuffleMask, + bool SrcIsMem) { // Defaults the copying the dest value. ShuffleMask.push_back(0); ShuffleMask.push_back(1); @@ -33,7 +34,7 @@ void DecodeINSERTPSMask(unsigned Imm, SmallVectorImpl &ShuffleMask) { // Decode the immediate. unsigned ZMask = Imm & 15; unsigned CountD = (Imm >> 4) & 3; - unsigned CountS = (Imm >> 6) & 3; + unsigned CountS = SrcIsMem ? 0 : (Imm >> 6) & 3; // CountS selects which input element to use. unsigned InVal = 4 + CountS; diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.h b/llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.h index 4ef9959f7a278..b58e3a73a8d56 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.h +++ b/llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.h @@ -28,7 +28,8 @@ template class SmallVectorImpl; enum { SM_SentinelUndef = -1, SM_SentinelZero = -2 }; /// Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask. -void DecodeINSERTPSMask(unsigned Imm, SmallVectorImpl &ShuffleMask); +void DecodeINSERTPSMask(unsigned Imm, SmallVectorImpl &ShuffleMask, + bool SrcIsMem); // Insert the bottom Len elements from a second source into a vector starting at // element Idx. diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp index 7740500fb4183..48d4707bbe1eb 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp @@ -70,6 +70,7 @@ unsigned X86WinCOFFObjectWriter::getRelocType(MCContext &Ctx, case X86::reloc_riprel_4byte_relax: case X86::reloc_riprel_4byte_relax_rex: case X86::reloc_riprel_4byte_relax_rex2: + case X86::reloc_riprel_6byte_relax: case X86::reloc_branch_4byte_pcrel: return COFF::IMAGE_REL_AMD64_REL32; case FK_Data_4: diff --git a/llvm/lib/Target/X86/X86CompressEVEX.cpp b/llvm/lib/Target/X86/X86CompressEVEX.cpp index 6fb480c37e1ff..7213ed32fc46d 100644 --- a/llvm/lib/Target/X86/X86CompressEVEX.cpp +++ b/llvm/lib/Target/X86/X86CompressEVEX.cpp @@ -154,14 +154,14 @@ static bool performCustomAdjustments(MachineInstr &MI, unsigned NewOpc) { case X86::VRNDSCALEPDZ256rmi: case X86::VRNDSCALEPSZ256rri: case X86::VRNDSCALEPSZ256rmi: - case X86::VRNDSCALESDZr: - case X86::VRNDSCALESDZm: - case X86::VRNDSCALESSZr: - case X86::VRNDSCALESSZm: - case X86::VRNDSCALESDZr_Int: - case X86::VRNDSCALESDZm_Int: - case X86::VRNDSCALESSZr_Int: - case X86::VRNDSCALESSZm_Int: + case X86::VRNDSCALESDZrri: + case X86::VRNDSCALESDZrmi: + case X86::VRNDSCALESSZrri: + case X86::VRNDSCALESSZrmi: + case X86::VRNDSCALESDZrri_Int: + case X86::VRNDSCALESDZrmi_Int: + case X86::VRNDSCALESSZrri_Int: + case X86::VRNDSCALESSZrmi_Int: const MachineOperand &Imm = MI.getOperand(MI.getNumExplicitOperands() - 1); int64_t ImmVal = Imm.getImm(); // Ensure that only bits 3:0 of the immediate are used. diff --git a/llvm/lib/Target/X86/X86FloatingPoint.cpp b/llvm/lib/Target/X86/X86FloatingPoint.cpp index ea94a4be32b2f..34d8b774a186a 100644 --- a/llvm/lib/Target/X86/X86FloatingPoint.cpp +++ b/llvm/lib/Target/X86/X86FloatingPoint.cpp @@ -67,7 +67,7 @@ namespace { void getAnalysisUsage(AnalysisUsage &AU) const override { AU.setPreservesCFG(); - AU.addRequired(); + AU.addRequired(); AU.addPreservedID(MachineLoopInfoID); AU.addPreservedID(MachineDominatorsID); MachineFunctionPass::getAnalysisUsage(AU); @@ -303,7 +303,7 @@ char FPS::ID = 0; INITIALIZE_PASS_BEGIN(FPS, DEBUG_TYPE, "X86 FP Stackifier", false, false) -INITIALIZE_PASS_DEPENDENCY(EdgeBundles) +INITIALIZE_PASS_DEPENDENCY(EdgeBundlesWrapperLegacy) INITIALIZE_PASS_END(FPS, DEBUG_TYPE, "X86 FP Stackifier", false, false) @@ -337,7 +337,7 @@ bool FPS::runOnMachineFunction(MachineFunction &MF) { // Early exit. if (!FPIsUsed) return false; - Bundles = &getAnalysis(); + Bundles = &getAnalysis().getEdgeBundles(); TII = MF.getSubtarget().getInstrInfo(); // Prepare cross-MBB liveness. diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index fea66e9582cfb..e4533570f7508 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -1711,6 +1711,8 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setOperationPromotedToType(Opc, MVT::v8f16, MVT::v8f32); setOperationPromotedToType(Opc, MVT::v16f16, MVT::v16f32); } + setOperationAction(ISD::SETCC, MVT::v8f16, Custom); + setOperationAction(ISD::SETCC, MVT::v16f16, Custom); } // This block controls legalization of the mask vector sizes that are @@ -2046,6 +2048,7 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setOperationAction(ISD::STRICT_FP_EXTEND, MVT::v16f32, Custom); for (unsigned Opc : {ISD::FADD, ISD::FSUB, ISD::FMUL, ISD::FDIV}) setOperationPromotedToType(Opc, MVT::v32f16, MVT::v32f32); + setOperationAction(ISD::SETCC, MVT::v32f16, Custom); for (auto VT : { MVT::v16i32, MVT::v8i64, MVT::v16f32, MVT::v8f64 }) { setOperationAction(ISD::MLOAD, VT, Legal); @@ -2401,6 +2404,8 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setOperationPromotedToType(Opc, MVT::v8bf16, MVT::v8f32); setOperationPromotedToType(Opc, MVT::v16bf16, MVT::v16f32); } + setOperationAction(ISD::SETCC, MVT::v8bf16, Custom); + setOperationAction(ISD::SETCC, MVT::v16bf16, Custom); setOperationAction(ISD::FP_ROUND, MVT::v8bf16, Custom); addLegalFPImmediate(APFloat::getZero(APFloat::BFloat())); } @@ -2411,6 +2416,7 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setF16Action(MVT::v32bf16, Expand); for (unsigned Opc : {ISD::FADD, ISD::FSUB, ISD::FMUL, ISD::FDIV}) setOperationPromotedToType(Opc, MVT::v32bf16, MVT::v32f32); + setOperationAction(ISD::SETCC, MVT::v32bf16, Custom); setOperationAction(ISD::BUILD_VECTOR, MVT::v32bf16, Custom); setOperationAction(ISD::FP_ROUND, MVT::v16bf16, Custom); setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v32bf16, Custom); @@ -5207,24 +5213,29 @@ static bool isConstantPowerOf2(SDValue V, unsigned EltSizeInBIts, return IsPow2OrUndef; } -// Match not(xor X, -1) -> X. -// Match not(pcmpgt(C, X)) -> pcmpgt(X, C - 1). -// Match not(extract_subvector(xor X, -1)) -> extract_subvector(X). -// Match not(concat_vectors(xor X, -1, xor Y, -1)) -> concat_vectors(X, Y). +// Helper to attempt to return a cheaper, bit-inverted version of \p V. static SDValue IsNOT(SDValue V, SelectionDAG &DAG) { + // TODO: don't always ignore oneuse constraints. V = peekThroughBitcasts(V); + EVT VT = V.getValueType(); + + // Match not(xor X, -1) -> X. if (V.getOpcode() == ISD::XOR && (ISD::isBuildVectorAllOnes(V.getOperand(1).getNode()) || isAllOnesConstant(V.getOperand(1)))) return V.getOperand(0); + + // Match not(extract_subvector(not(X)) -> extract_subvector(X). if (V.getOpcode() == ISD::EXTRACT_SUBVECTOR && (isNullConstant(V.getOperand(1)) || V.getOperand(0).hasOneUse())) { if (SDValue Not = IsNOT(V.getOperand(0), DAG)) { Not = DAG.getBitcast(V.getOperand(0).getValueType(), Not); - return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(Not), V.getValueType(), - Not, V.getOperand(1)); + return DAG.getNode(ISD::EXTRACT_SUBVECTOR, SDLoc(Not), VT, Not, + V.getOperand(1)); } } + + // Match not(pcmpgt(C, X)) -> pcmpgt(X, C - 1). if (V.getOpcode() == X86ISD::PCMPGT && !ISD::isBuildVectorAllZeros(V.getOperand(0).getNode()) && !ISD::isBuildVectorAllOnes(V.getOperand(0).getNode()) && @@ -5248,15 +5259,29 @@ static SDValue IsNOT(SDValue V, SelectionDAG &DAG) { } } } + + // Match not(concat_vectors(not(X), not(Y))) -> concat_vectors(X, Y). SmallVector CatOps; if (collectConcatOps(V.getNode(), CatOps, DAG)) { for (SDValue &CatOp : CatOps) { SDValue NotCat = IsNOT(CatOp, DAG); - if (!NotCat) return SDValue(); + if (!NotCat) + return SDValue(); CatOp = DAG.getBitcast(CatOp.getValueType(), NotCat); } - return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(V), V.getValueType(), CatOps); + return DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(V), VT, CatOps); + } + + // Match not(or(not(X),not(Y))) -> and(X, Y). + if (V.getOpcode() == ISD::OR && DAG.getTargetLoweringInfo().isTypeLegal(VT) && + V.getOperand(0).hasOneUse() && V.getOperand(1).hasOneUse()) { + // TODO: Handle cases with single NOT operand -> ANDNP + if (SDValue Op1 = IsNOT(V.getOperand(1), DAG)) + if (SDValue Op0 = IsNOT(V.getOperand(0), DAG)) + return DAG.getNode(ISD::AND, SDLoc(V), VT, DAG.getBitcast(VT, Op0), + DAG.getBitcast(VT, Op1)); } + return SDValue(); } @@ -5362,7 +5387,7 @@ static bool getTargetShuffleMask(SDValue N, bool AllowSentinelZero, assert(N.getOperand(0).getValueType() == VT && "Unexpected value type"); assert(N.getOperand(1).getValueType() == VT && "Unexpected value type"); ImmN = N.getConstantOperandVal(N.getNumOperands() - 1); - DecodeINSERTPSMask(ImmN, Mask); + DecodeINSERTPSMask(ImmN, Mask, /*SrcIsMem=*/false); IsUnary = IsFakeUnary = N.getOperand(0) == N.getOperand(1); break; case X86ISD::EXTRQI: @@ -14281,9 +14306,17 @@ static SDValue lowerV8F16Shuffle(const SDLoc &DL, ArrayRef Mask, // sub-512-bit shuffles are padded to 512-bits for the shuffle and then // the active subvector is extracted. static SDValue lowerShuffleWithPERMV(const SDLoc &DL, MVT VT, - ArrayRef Mask, SDValue V1, SDValue V2, - const X86Subtarget &Subtarget, + ArrayRef OriginalMask, SDValue V1, + SDValue V2, const X86Subtarget &Subtarget, SelectionDAG &DAG) { + // Commute binary inputs so V2 is a load to simplify VPERMI2/T2 folds. + SmallVector Mask(OriginalMask); + if (!V2.isUndef() && isShuffleFoldableLoad(V1) && + !isShuffleFoldableLoad(V2)) { + ShuffleVectorSDNode::commuteMask(Mask); + std::swap(V1, V2); + } + MVT MaskVT = VT.changeTypeToInteger(); SDValue MaskNode; MVT ShuffleVT = VT; @@ -19568,7 +19601,7 @@ static SDValue promoteXINT_TO_FP(SDValue Op, const SDLoc &dl, MVT VT = Op.getSimpleValueType(); MVT NVT = VT.isVector() ? VT.changeVectorElementType(MVT::f32) : MVT::f32; - SDValue Rnd = DAG.getIntPtrConstant(0, dl); + SDValue Rnd = DAG.getIntPtrConstant(0, dl, /*isTarget=*/true); if (IsStrict) return DAG.getNode( ISD::STRICT_FP_ROUND, dl, {VT, MVT::Other}, @@ -20239,7 +20272,8 @@ SDValue X86TargetLowering::LowerUINT_TO_FP(SDValue Op, if (DstVT == MVT::f80) return Add; return DAG.getNode(ISD::STRICT_FP_ROUND, dl, {DstVT, MVT::Other}, - {Add.getValue(1), Add, DAG.getIntPtrConstant(0, dl)}); + {Add.getValue(1), Add, + DAG.getIntPtrConstant(0, dl, /*isTarget=*/true)}); } unsigned Opc = ISD::FADD; // Windows needs the precision control changed to 80bits around this add. @@ -23369,14 +23403,12 @@ static unsigned translateX86FSETCC(ISD::CondCode SetCCOpcode, SDValue &Op0, return SSECC; } -/// Break a VSETCC 256-bit integer VSETCC into two new 128 ones and then +/// Break a VSETCC 256/512-bit vector into two new 128/256 ones and then /// concatenate the result back. -static SDValue splitIntVSETCC(EVT VT, SDValue LHS, SDValue RHS, - ISD::CondCode Cond, SelectionDAG &DAG, - const SDLoc &dl) { - assert(VT.isInteger() && VT == LHS.getValueType() && - VT == RHS.getValueType() && "Unsupported VTs!"); - +static SDValue splitVSETCC(EVT VT, SDValue LHS, SDValue RHS, ISD::CondCode Cond, + SelectionDAG &DAG, const SDLoc &dl) { + assert(VT.isInteger() && LHS.getValueType() == RHS.getValueType() && + "Unsupported VTs!"); SDValue CC = DAG.getCondCode(Cond); // Extract the LHS Lo/Hi vectors @@ -23517,18 +23549,43 @@ static SDValue LowerVSETCC(SDValue Op, const X86Subtarget &Subtarget, SDValue CC = Op.getOperand(IsStrict ? 3 : 2); MVT VT = Op->getSimpleValueType(0); ISD::CondCode Cond = cast(CC)->get(); - bool isFP = Op1.getSimpleValueType().isFloatingPoint(); + MVT OpVT = Op0.getSimpleValueType(); SDLoc dl(Op); - if (isFP) { - MVT EltVT = Op0.getSimpleValueType().getVectorElementType(); + if (OpVT.isFloatingPoint()) { + MVT EltVT = OpVT.getVectorElementType(); assert(EltVT == MVT::bf16 || EltVT == MVT::f16 || EltVT == MVT::f32 || EltVT == MVT::f64); - if (isSoftF16(EltVT, Subtarget)) - return SDValue(); - bool IsSignaling = Op.getOpcode() == ISD::STRICT_FSETCCS; SDValue Chain = IsStrict ? Op.getOperand(0) : SDValue(); + if (isSoftF16(EltVT, Subtarget)) { + // Break 256-bit FP vector compare into smaller ones. + if (OpVT.is256BitVector() && !Subtarget.useAVX512Regs()) + return splitVSETCC(VT, Op0, Op1, Cond, DAG, dl); + + // Break 512-bit FP vector compare into smaller ones. + if (OpVT.is512BitVector()) + return splitVSETCC(VT, Op0, Op1, Cond, DAG, dl); + + MVT NVT = OpVT.changeVectorElementType(MVT::f32); + if (IsStrict) { + Op0 = DAG.getNode(ISD::STRICT_FP_EXTEND, dl, {NVT, MVT::Other}, + {Chain, Op0}); + Op1 = DAG.getNode(ISD::STRICT_FP_EXTEND, dl, {NVT, MVT::Other}, + {Chain, Op1}); + return DAG.getNode(Op.getOpcode(), dl, {VT, MVT::Other}, + {Chain, Op0, Op1, CC}); + } + MVT DVT = VT.getVectorElementType() == MVT::i16 + ? VT.changeVectorElementType(MVT::i32) + : VT; + SDValue Cmp = DAG.getNode(Op.getOpcode(), dl, DVT, + DAG.getNode(ISD::FP_EXTEND, dl, NVT, Op0), + DAG.getNode(ISD::FP_EXTEND, dl, NVT, Op1), CC); + return DVT == VT ? Cmp : DAG.getNode(ISD::TRUNCATE, dl, VT, Cmp); + } + + bool IsSignaling = Op.getOpcode() == ISD::STRICT_FSETCCS; // If we have a strict compare with a vXi1 result and the input is 128/256 // bits we can't use a masked compare unless we have VLX. If we use a wider @@ -23739,12 +23796,12 @@ static SDValue LowerVSETCC(SDValue Op, const X86Subtarget &Subtarget, // Break 256-bit integer vector compare into smaller ones. if (VT.is256BitVector() && !Subtarget.hasInt256()) - return splitIntVSETCC(VT, Op0, Op1, Cond, DAG, dl); + return splitVSETCC(VT, Op0, Op1, Cond, DAG, dl); // Break 512-bit integer vector compare into smaller ones. // TODO: Try harder to use VPCMPx + VPMOV2x? if (VT.is512BitVector()) - return splitIntVSETCC(VT, Op0, Op1, Cond, DAG, dl); + return splitVSETCC(VT, Op0, Op1, Cond, DAG, dl); // If we have a limit constant, try to form PCMPGT (signed cmp) to avoid // not-of-PCMPEQ: @@ -42225,6 +42282,17 @@ static SDValue combineTargetShuffle(SDValue N, const SDLoc &DL, DAG.getIntPtrConstant(0, DL)); } } + SmallVector Ops; + SmallVector Mask; + if (isShuffleFoldableLoad(N.getOperand(0)) && + !isShuffleFoldableLoad(N.getOperand(2)) && + getTargetShuffleMask(N, /*AllowSentinelZero=*/false, Ops, Mask)) { + ShuffleVectorSDNode::commuteMask(Mask); + SDValue NewMask = getConstVector( + Mask, N.getOperand(1).getSimpleValueType(), DAG, DL, /*IsMask=*/true); + return DAG.getNode(X86ISD::VPERMV3, DL, VT, N.getOperand(2), NewMask, + N.getOperand(0)); + } return SDValue(); } default: @@ -59149,8 +59217,11 @@ SDValue X86TargetLowering::expandIndirectJTBranch(const SDLoc &dl, // notrack prefix to the indirect branch. // In order to do that we create NT_BRIND SDNode. // Upon ISEL, the pattern will convert it to jmp with NoTrack prefix. - SDValue JTInfo = DAG.getJumpTableDebugInfo(JTI, Value, dl); - return DAG.getNode(X86ISD::NT_BRIND, dl, MVT::Other, JTInfo, Addr); + SDValue Chain = Value; + // Jump table debug info is only needed if CodeView is enabled. + if (DAG.getTarget().getTargetTriple().isOSBinFormatCOFF()) + Chain = DAG.getJumpTableDebugInfo(JTI, Chain, dl); + return DAG.getNode(X86ISD::NT_BRIND, dl, MVT::Other, Chain, Addr); } return TargetLowering::expandIndirectJTBranch(dl, Value, Addr, JTI, DAG); @@ -59215,6 +59286,15 @@ bool X86TargetLowering::IsDesirableToPromoteOp(SDValue Op, EVT &PVT) const { return Ld->getBasePtr() == St->getBasePtr(); }; + auto IsFoldableZext = [](SDValue Op) { + if (!Op.hasOneUse()) + return false; + SDNode *User = *Op->use_begin(); + EVT VT = User->getValueType(0); + return (User->getOpcode() == ISD::ZERO_EXTEND && + (VT == MVT::i32 || VT == MVT::i64)); + }; + bool Commute = false; switch (Op.getOpcode()) { default: return false; @@ -59231,8 +59311,15 @@ bool X86TargetLowering::IsDesirableToPromoteOp(SDValue Op, EVT &PVT) const { return false; break; } - case ISD::ADD: case ISD::MUL: + // When ZU is enabled, we prefer to not promote for MUL by a constant + // when there is an opportunity to fold a zext with imulzu. + if (Subtarget.hasZU() && IsFoldableZext(Op) && + (isa(Op.getOperand(0)) || + isa(Op.getOperand(1)))) + return false; + [[fallthrough]]; + case ISD::ADD: case ISD::AND: case ISD::OR: case ISD::XOR: diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index a05a3063cac55..299a2a74d86fc 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -9596,7 +9596,7 @@ defm VSQRT : avx512_sqrt_scalar_all<0x51, "vsqrt", SchedWriteFSqrtSizes>, VEX_LI multiclass avx512_rndscale_scalar opc, string OpcodeStr, X86FoldableSchedWrite sched, X86VectorVTInfo _> { let ExeDomain = _.ExeDomain in { - defm r_Int : AVX512_maskable_scalar opc, string OpcodeStr, Sched<[sched]>, SIMD_EXC; let Uses = [MXCSR] in - defm rb_Int : AVX512_maskable_scalar, EVEX_B, Sched<[sched]>; - defm m_Int : AVX512_maskable_scalar opc, string OpcodeStr, Sched<[sched.Folded, sched.ReadAfterFold]>, SIMD_EXC; let isCodeGenOnly = 1, hasSideEffects = 0, Predicates = [HasAVX512] in { - def r : I, Sched<[sched]>, SIMD_EXC; let mayLoad = 1 in - def m : I, Sched<[sched.Folded, sched.ReadAfterFold]>, SIMD_EXC; @@ -9635,13 +9635,13 @@ multiclass avx512_rndscale_scalar opc, string OpcodeStr, let Predicates = [HasAVX512] in { def : Pat<(X86any_VRndScale _.FRC:$src1, timm:$src2), - (_.EltVT (!cast(NAME#r) (_.EltVT (IMPLICIT_DEF)), + (_.EltVT (!cast(NAME#rri) (_.EltVT (IMPLICIT_DEF)), _.FRC:$src1, timm:$src2))>; } let Predicates = [HasAVX512, OptForSize] in { def : Pat<(X86any_VRndScale (_.ScalarLdFrag addr:$src1), timm:$src2), - (_.EltVT (!cast(NAME#m) (_.EltVT (IMPLICIT_DEF)), + (_.EltVT (!cast(NAME#rmi) (_.EltVT (IMPLICIT_DEF)), addr:$src1, timm:$src2))>; } } diff --git a/llvm/lib/Target/X86/X86InstrCompiler.td b/llvm/lib/Target/X86/X86InstrCompiler.td index ea0b66c2f5516..7d4c5c0e10e49 100644 --- a/llvm/lib/Target/X86/X86InstrCompiler.td +++ b/llvm/lib/Target/X86/X86InstrCompiler.td @@ -2184,6 +2184,18 @@ multiclass EFLAGSDefiningPats { defm : EFLAGSDefiningPats<"", NoNDD>; defm : EFLAGSDefiningPats<"_ND", HasNDD>; +let Predicates = [HasZU] in { + // zext (mul reg/mem, imm) -> imulzu + def : Pat<(i32 (zext (i16 (mul GR16:$src1, imm:$src2)))), + (SUBREG_TO_REG (i32 0), (IMULZU16rri GR16:$src1, imm:$src2), sub_16bit)>; + def : Pat<(i32 (zext (i16 (mul (loadi16 addr:$src1), imm:$src2)))), + (SUBREG_TO_REG (i32 0), (IMULZU16rmi addr:$src1, imm:$src2), sub_16bit)>; + def : Pat<(i64 (zext (i16 (mul GR16:$src1, imm:$src2)))), + (SUBREG_TO_REG (i64 0), (IMULZU16rri GR16:$src1, imm:$src2), sub_16bit)>; + def : Pat<(i64 (zext (i16 (mul (loadi16 addr:$src1), imm:$src2)))), + (SUBREG_TO_REG (i64 0), (IMULZU16rmi addr:$src1, imm:$src2), sub_16bit)>; +} + // mul reg, imm def : Pat<(mul GR16:$src1, imm:$src2), (IMUL16rri GR16:$src1, imm:$src2)>; diff --git a/llvm/lib/Target/X86/X86InstrFragments.td b/llvm/lib/Target/X86/X86InstrFragments.td index 038100b8264de..ba9779cdc335d 100644 --- a/llvm/lib/Target/X86/X86InstrFragments.td +++ b/llvm/lib/Target/X86/X86InstrFragments.td @@ -45,12 +45,7 @@ def SDTBinaryArithWithFlagsInOut : SDTypeProfile<2, 3, SDTCisInt<0>, SDTCisVT<1, i32>, SDTCisVT<4, i32>]>; -// RES1, RES2, FLAGS = op LHS, RHS -def SDT2ResultBinaryArithWithFlags : SDTypeProfile<3, 2, - [SDTCisSameAs<0, 1>, - SDTCisSameAs<0, 2>, - SDTCisSameAs<0, 3>, - SDTCisInt<0>, SDTCisVT<1, i32>]>; + def SDTX86BrCond : SDTypeProfile<0, 3, [SDTCisVT<0, OtherVT>, SDTCisVT<1, i8>, SDTCisVT<2, i32>]>; @@ -266,7 +261,7 @@ def X86add_flag : SDNode<"X86ISD::ADD", SDTBinaryArithWithFlags, def X86sub_flag : SDNode<"X86ISD::SUB", SDTBinaryArithWithFlags>; def X86smul_flag : SDNode<"X86ISD::SMUL", SDTBinaryArithWithFlags, [SDNPCommutative]>; -def X86umul_flag : SDNode<"X86ISD::UMUL", SDT2ResultBinaryArithWithFlags, +def X86umul_flag : SDNode<"X86ISD::UMUL", SDTBinaryArithWithFlags, [SDNPCommutative]>; def X86adc_flag : SDNode<"X86ISD::ADC", SDTBinaryArithWithFlagsInOut>; def X86sbb_flag : SDNode<"X86ISD::SBB", SDTBinaryArithWithFlagsInOut>; diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp index e8a50227912d8..5a6ea1182ccb8 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.cpp +++ b/llvm/lib/Target/X86/X86InstrInfo.cpp @@ -6971,16 +6971,16 @@ static bool hasUndefRegUpdate(unsigned Opcode, unsigned OpNum, case X86::VGETMANTSSZrri: case X86::VGETMANTSSZrrib: case X86::VGETMANTSSZrmi: - case X86::VRNDSCALESDZr: - case X86::VRNDSCALESDZr_Int: - case X86::VRNDSCALESDZrb_Int: - case X86::VRNDSCALESDZm: - case X86::VRNDSCALESDZm_Int: - case X86::VRNDSCALESSZr: - case X86::VRNDSCALESSZr_Int: - case X86::VRNDSCALESSZrb_Int: - case X86::VRNDSCALESSZm: - case X86::VRNDSCALESSZm_Int: + case X86::VRNDSCALESDZrri: + case X86::VRNDSCALESDZrri_Int: + case X86::VRNDSCALESDZrrib_Int: + case X86::VRNDSCALESDZrmi: + case X86::VRNDSCALESDZrmi_Int: + case X86::VRNDSCALESSZrri: + case X86::VRNDSCALESSZrri_Int: + case X86::VRNDSCALESSZrrib_Int: + case X86::VRNDSCALESSZrmi: + case X86::VRNDSCALESSZrmi_Int: case X86::VRCP14SDZrr: case X86::VRCP14SDZrm: case X86::VRCP14SSZrr: @@ -6998,11 +6998,11 @@ static bool hasUndefRegUpdate(unsigned Opcode, unsigned OpNum, case X86::VGETMANTSHZrri: case X86::VGETMANTSHZrrib: case X86::VGETMANTSHZrmi: - case X86::VRNDSCALESHZr: - case X86::VRNDSCALESHZr_Int: - case X86::VRNDSCALESHZrb_Int: - case X86::VRNDSCALESHZm: - case X86::VRNDSCALESHZm_Int: + case X86::VRNDSCALESHZrri: + case X86::VRNDSCALESHZrri_Int: + case X86::VRNDSCALESHZrrib_Int: + case X86::VRNDSCALESHZrmi: + case X86::VRNDSCALESHZrmi_Int: case X86::VSQRTSHZr: case X86::VSQRTSHZr_Int: case X86::VSQRTSHZrb_Int: @@ -7790,9 +7790,9 @@ static bool isNonFoldablePartialRegisterLoad(const MachineInstr &LoadMI, case X86::VREDUCESSZrri: case X86::VREDUCESSZrrik: case X86::VREDUCESSZrrikz: - case X86::VRNDSCALESSZr_Int: - case X86::VRNDSCALESSZr_Intk: - case X86::VRNDSCALESSZr_Intkz: + case X86::VRNDSCALESSZrri_Int: + case X86::VRNDSCALESSZrri_Intk: + case X86::VRNDSCALESSZrri_Intkz: case X86::VRSQRT14SSZrr: case X86::VRSQRT14SSZrrk: case X86::VRSQRT14SSZrrkz: @@ -7959,9 +7959,9 @@ static bool isNonFoldablePartialRegisterLoad(const MachineInstr &LoadMI, case X86::VREDUCESDZrri: case X86::VREDUCESDZrrik: case X86::VREDUCESDZrrikz: - case X86::VRNDSCALESDZr_Int: - case X86::VRNDSCALESDZr_Intk: - case X86::VRNDSCALESDZr_Intkz: + case X86::VRNDSCALESDZrri_Int: + case X86::VRNDSCALESDZrri_Intk: + case X86::VRNDSCALESDZrri_Intkz: case X86::VRSQRT14SDZrr: case X86::VRSQRT14SDZrrk: case X86::VRSQRT14SDZrrkz: diff --git a/llvm/lib/Target/X86/X86InstrPredicates.td b/llvm/lib/Target/X86/X86InstrPredicates.td index eb2e93a94b197..5bdcf51be9dd8 100644 --- a/llvm/lib/Target/X86/X86InstrPredicates.td +++ b/llvm/lib/Target/X86/X86InstrPredicates.td @@ -45,6 +45,7 @@ def NoEGPR : Predicate<"!Subtarget->hasEGPR()">; // entries, so that the NDD variant can be selected first to benefit RA. def HasNDD : Predicate<"Subtarget->hasNDD()">; def NoNDD : Predicate<"!Subtarget->hasNDD()">; +def HasZU : Predicate<"Subtarget->hasZU()">; def HasCF : Predicate<"Subtarget->hasCF()">; def HasCMOV : Predicate<"Subtarget->canUseCMOV()">; def NoCMOV : Predicate<"!Subtarget->canUseCMOV()">; diff --git a/llvm/lib/Target/X86/X86PfmCounters.td b/llvm/lib/Target/X86/X86PfmCounters.td index 0c80f1eaadadb..b31ed81160a29 100644 --- a/llvm/lib/Target/X86/X86PfmCounters.td +++ b/llvm/lib/Target/X86/X86PfmCounters.td @@ -210,10 +210,7 @@ def AlderLakePfmCounters : ProcPfmCounters { let IssueCounters = [ PfmIssueCounter<"ADLPPort00", "uops_dispatched:port_0">, PfmIssueCounter<"ADLPPort01", "uops_dispatched:port_1">, - // The perfmon documentation and thus libpfm seems to incorrectly label - // this performance counter, as ports 2,3, and 11 are actually grouped - // according to most documentation. See #113941 for additional details. - PfmIssueCounter<"ADLPPort02_03_11", "uops_dispatched:port_2_3_10">, + PfmIssueCounter<"ADLPPort02_03_10", "uops_dispatched:port_2_3_10">, PfmIssueCounter<"ADLPPort04_09", "uops_dispatched:port_4_9">, PfmIssueCounter<"ADLPPort05_11", "uops_dispatched:port_5_11">, PfmIssueCounter<"ADLPPort06", "uops_dispatched:port_6">, @@ -229,10 +226,7 @@ def SapphireRapidsPfmCounters : ProcPfmCounters { let IssueCounters = [ PfmIssueCounter<"SPRPort00", "uops_dispatched:port_0">, PfmIssueCounter<"SPRPort01", "uops_dispatched:port_1">, - // The perfmon documentation and thus libpfm seems to incorrectly label - // this performance counter, as ports 2,3, and 11 are actually grouped - // according to most documentation. See #113941 for additional details. - PfmIssueCounter<"SPRPort02_03_11", "uops_dispatched:port_2_3_10">, + PfmIssueCounter<"SPRPort02_03_10", "uops_dispatched:port_2_3_10">, PfmIssueCounter<"SPRPort04_09", "uops_dispatched:port_4_9">, PfmIssueCounter<"SPRPort05_11", "uops_dispatched:port_5_11">, PfmIssueCounter<"SPRPort06", "uops_dispatched:port_6">, diff --git a/llvm/lib/Target/X86/X86SchedAlderlakeP.td b/llvm/lib/Target/X86/X86SchedAlderlakeP.td index f8c6b32a853be..564369804711a 100644 --- a/llvm/lib/Target/X86/X86SchedAlderlakeP.td +++ b/llvm/lib/Target/X86/X86SchedAlderlakeP.td @@ -56,16 +56,15 @@ def ADLPPort00_05 : ProcResGroup<[ADLPPort00, ADLPPort05]>; def ADLPPort00_05_06 : ProcResGroup<[ADLPPort00, ADLPPort05, ADLPPort06]>; def ADLPPort00_06 : ProcResGroup<[ADLPPort00, ADLPPort06]>; def ADLPPort01_05 : ProcResGroup<[ADLPPort01, ADLPPort05]>; -def ADLPPort01_05_10 : ProcResGroup<[ADLPPort01, ADLPPort05, ADLPPort10]>; +def ADLPPort01_05_11 : ProcResGroup<[ADLPPort01, ADLPPort05, ADLPPort11]>; def ADLPPort02_03 : ProcResGroup<[ADLPPort02, ADLPPort03]>; def ADLPPort02_03_07 : ProcResGroup<[ADLPPort02, ADLPPort03, ADLPPort07]>; -def ADLPPort02_03_11 : ProcResGroup<[ADLPPort02, ADLPPort03, ADLPPort11]>; -def ADLPPort05_11 : ProcResGroup<[ADLPPort05, ADLPPort11]>; +def ADLPPort02_03_10 : ProcResGroup<[ADLPPort02, ADLPPort03, ADLPPort10]>; def ADLPPort07_08 : ProcResGroup<[ADLPPort07, ADLPPort08]>; // EU has 112 reservation stations. -def ADLPPort00_01_05_06_10 : ProcResGroup<[ADLPPort00, ADLPPort01, ADLPPort05, - ADLPPort06, ADLPPort10]> { +def ADLPPort00_01_05_06_11 : ProcResGroup<[ADLPPort00, ADLPPort01, ADLPPort05, + ADLPPort06, ADLPPort11]> { let BufferSize = 112; } @@ -75,8 +74,8 @@ def ADLPPort04_09 : ProcResGroup<[ADLPPort04, ADLPPort09]> { } // MEM has 72 reservation stations. -def ADLPPort02_03_07_08_11 : ProcResGroup<[ADLPPort02, ADLPPort03, ADLPPort07, - ADLPPort08, ADLPPort11]> { +def ADLPPort02_03_07_08_10 : ProcResGroup<[ADLPPort02, ADLPPort03, ADLPPort07, + ADLPPort08, ADLPPort10]> { let BufferSize = 72; } @@ -114,7 +113,7 @@ multiclass ADLPWriteResPair { + def : WriteRes { let Latency = !add(Lat, LoadLat); let ReleaseAtCycles = !listconcat([1], Res); let NumMicroOps = !add(UOps, LoadUOps); @@ -127,49 +126,49 @@ multiclass ADLPWriteResPair; -defm : X86WriteRes; +defm : X86WriteRes; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; -def : WriteRes; -def : WriteRes { +defm : X86WriteRes; +def : WriteRes; +def : WriteRes { let Latency = 11; } defm : ADLPWriteResPair; -defm : ADLPWriteResPair; +defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : ADLPWriteResPair; def : WriteRes; defm : X86WriteRes; defm : ADLPWriteResPair; def : WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; def : WriteRes; def : WriteRes { let Latency = 11; } -defm : X86WriteRes; +defm : X86WriteRes; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : ADLPWriteResPair; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : ADLPWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteResPairUnsupported; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : X86WriteResPairUnsupported; @@ -177,17 +176,17 @@ defm : ADLPWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteResPairUnsupported; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteResPairUnsupported; defm : X86WriteRes; defm : X86WriteRes; @@ -199,12 +198,12 @@ defm : ADLPWriteResPair defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : ADLPWriteResPair; -defm : ADLPWriteResPair; -defm : ADLPWriteResPair; +defm : ADLPWriteResPair; +defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : X86WriteRes; defm : X86WriteRes; @@ -212,7 +211,7 @@ defm : X86WriteRes { let Latency = 3; } -defm : X86WriteRes; +defm : X86WriteRes; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : ADLPWriteResPair; @@ -249,13 +248,13 @@ defm : ADLPWriteResPair; defm : X86WriteRes; defm : X86WriteRes; -def : WriteRes { +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 8; } defm : ADLPWriteResPair; @@ -268,8 +267,8 @@ defm : X86WriteResPairUnsupported; def : WriteRes { let Latency = 3; } -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; @@ -331,15 +330,15 @@ defm : X86WriteResPairUnsupported; def : WriteRes { let Latency = 2; } -defm : ADLPWriteResPair; -defm : ADLPWriteResPair; +defm : ADLPWriteResPair; +defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : X86WriteRes; defm : X86WriteRes; -defm : ADLPWriteResPair; -defm : ADLPWriteResPair; +defm : ADLPWriteResPair; +defm : ADLPWriteResPair; defm : ADLPWriteResPair; -defm : ADLPWriteResPair; +defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : ADLPWriteResPair; @@ -357,10 +356,10 @@ defm : X86WriteRes; def : WriteRes { let Latency = 3; } -defm : X86WriteRes; +defm : X86WriteRes; def : WriteRes; defm : ADLPWriteResPair; -def : WriteRes { +def : WriteRes { let Latency = 5; } def : WriteRes { @@ -368,17 +367,17 @@ def : WriteRes { } defm : ADLPWriteResPair; defm : ADLPWriteResPair; -defm : ADLPWriteResPair; +defm : ADLPWriteResPair; defm : ADLPWriteResPair; def : WriteRes { let Latency = AlderlakePModel.MaxLatency; } -def : WriteRes; +def : WriteRes; defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : ADLPWriteResPair; @@ -393,16 +392,16 @@ defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : X86WriteResPairUnsupported; -defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; def : WriteRes { let Latency = 3; } @@ -447,20 +446,20 @@ defm : ADLPWriteResPair; defm : ADLPWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteRes; -defm : X86WriteRes; -def : WriteRes { +defm : X86WriteRes; +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 8; } -def : WriteRes { +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 8; } defm : ADLPWriteResPair; @@ -474,8 +473,8 @@ def : WriteRes { let Latency = 4; } defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; @@ -498,9 +497,9 @@ def : WriteRes; defm : X86WriteResUnsupported; defm : X86WriteResPairUnsupported; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteResPairUnsupported; defm : X86WriteRes; defm : X86WriteRes; @@ -509,7 +508,7 @@ defm : X86WriteRes; defm : ADLPWriteResPair; defm : ADLPWriteResPair; -defm : X86WriteRes; +defm : X86WriteRes; def : WriteRes; // Infered SchedWriteRes and InstRW definition. @@ -521,14 +520,14 @@ def ADLPWriteResGroup0 : SchedWriteRes<[ADLPPort00_01_05_06, ADLPPort02_03, ADLP def : InstRW<[ADLPWriteResGroup0], (instregex "^AA(D|N)D64mr$", "^A(X?)OR64mr$")>; -def ADLPWriteResGroup1 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup1 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [2, 1, 1, 1, 1]; let Latency = 12; let NumMicroOps = 6; } def : InstRW<[ADLPWriteResGroup1, ReadAfterLd, ReadAfterLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instregex "^(ADC|SBB)(16|32|64)mr$")>; -def ADLPWriteResGroup2 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_11]> { +def ADLPWriteResGroup2 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_10]> { let Latency = 6; let NumMicroOps = 2; } @@ -538,20 +537,20 @@ def : InstRW<[ADLPWriteResGroup2], (instregex "^JMP(16|32|64)m((_NT)?)$", def : InstRW<[ADLPWriteResGroup2, ReadAfterLd, ReadAfterLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instregex "^(ADC|SBB)(8|16|32|64)rm$", "^AD(C|O)X(32|64)rm$")>; -def ADLPWriteResGroup3 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup3 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let Latency = 13; let NumMicroOps = 5; } def : InstRW<[ADLPWriteResGroup3], (instregex "^(ADC|SBB)8mi(8?)$")>; -def ADLPWriteResGroup4 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup4 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [2, 1, 1, 1, 1]; let Latency = 13; let NumMicroOps = 6; } def : InstRW<[ADLPWriteResGroup4, ReadAfterLd, ReadAfterLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instregex "^(ADC|SBB)8mr$")>; -def ADLPWriteResGroup5 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup5 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10]> { let Latency = 6; let NumMicroOps = 2; } @@ -576,7 +575,7 @@ def : InstRW<[ADLPWriteResGroup6], (instregex "^(ADD|SUB)64ri8$", def : InstRW<[ADLPWriteResGroup6], (instrs CLC, JMP_2)>; -def ADLPWriteResGroup7 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup7 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let Latency = 13; let NumMicroOps = 4; } @@ -610,7 +609,7 @@ def ADLPWriteResGroup10 : SchedWriteRes<[ADLPPort02_03, ADLPPort05]> { def : InstRW<[ADLPWriteResGroup10], (instregex "^ADD_FI(16|32)m$", "^SUB(R?)_FI(16|32)m$")>; -def ADLPWriteResGroup11 : SchedWriteRes<[ADLPPort00_01_05_06_10]> { +def ADLPWriteResGroup11 : SchedWriteRes<[ADLPPort00_01_05_06_11]> { let Latency = 2; } def : InstRW<[ADLPWriteResGroup11], (instregex "^AND(8|16|32|64)r(r|i8)$", @@ -628,7 +627,7 @@ def : InstRW<[ADLPWriteResGroup11], (instregex "^AND(8|16|32|64)r(r|i8)$", "^TEST(8|16|32|64)rr$")>; def : InstRW<[ADLPWriteResGroup11], (instrs XOR8rr_NOREX)>; -def ADLPWriteResGroup12 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup12 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10]> { let Latency = 7; let NumMicroOps = 2; } @@ -638,18 +637,18 @@ def : InstRW<[ADLPWriteResGroup12, ReadAfterLd], (instregex "^(X?)OR64rm$")>; def : InstRW<[ADLPWriteResGroup12, ReadAfterLd], (instrs AND64rm)>; def : InstRW<[ADLPWriteResGroup12, ReadAfterLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instregex "^TEST(8|16|32|64)mr$")>; -def ADLPWriteResGroup13 : SchedWriteRes<[ADLPPort01_05_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup13 : SchedWriteRes<[ADLPPort01_05_11, ADLPPort02_03_10]> { let Latency = 7; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup13, ReadAfterLd], (instregex "^ANDN(32|64)rm$")>; -def ADLPWriteResGroup14 : SchedWriteRes<[ADLPPort01_05_10]> { +def ADLPWriteResGroup14 : SchedWriteRes<[ADLPPort01_05_11]> { let Latency = 2; } def : InstRW<[ADLPWriteResGroup14], (instregex "^ANDN(32|64)rr$")>; -def ADLPWriteResGroup15 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup15 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10]> { let ReleaseAtCycles = [5, 2, 1, 1]; let Latency = 10; let NumMicroOps = 9; @@ -662,14 +661,14 @@ def ADLPWriteResGroup16 : SchedWriteRes<[ADLPPort01]> { def : InstRW<[ADLPWriteResGroup16], (instregex "^BT((C|R|S)?)64rr$", "^P(DEP|EXT)(32|64)rr$")>; -def ADLPWriteResGroup17 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup17 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [4, 2, 1, 1, 1, 1]; let Latency = 17; let NumMicroOps = 10; } def : InstRW<[ADLPWriteResGroup17], (instregex "^BT(C|R|S)64mr$")>; -def ADLPWriteResGroup18 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup18 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let Latency = 7; let NumMicroOps = 5; } @@ -701,25 +700,25 @@ def ADLPWriteResGroup22 : SchedWriteRes<[ADLPPort00_06]>; def : InstRW<[ADLPWriteResGroup22], (instregex "^C(DQ|QO)$", "^(CL|ST)AC$")>; -def ADLPWriteResGroup23 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06]> { +def ADLPWriteResGroup23 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06]> { let Latency = 3; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup23], (instrs CLD)>; -def ADLPWriteResGroup24 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup24 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort04_09, ADLPPort07_08]> { let Latency = 3; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup24], (instrs CLDEMOTE)>; -def ADLPWriteResGroup25 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup25 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort04_09, ADLPPort07_08]> { let Latency = 2; let NumMicroOps = 4; } def : InstRW<[ADLPWriteResGroup25], (instrs CLFLUSH)>; -def ADLPWriteResGroup26 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup26 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort04_09, ADLPPort07_08]> { let Latency = 2; let NumMicroOps = 3; } @@ -739,35 +738,35 @@ def ADLPWriteResGroup28 : SchedWriteRes<[ADLPPort00_06, ADLPPort01, ADLPPort05]> } def : InstRW<[ADLPWriteResGroup28], (instrs CLTS)>; -def ADLPWriteResGroup29 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup29 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort04_09, ADLPPort07_08]> { let Latency = 5; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup29], (instregex "^MOV16o(16|32|64)a$")>; def : InstRW<[ADLPWriteResGroup29], (instrs CLWB)>; -def ADLPWriteResGroup30 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup30 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10]> { let ReleaseAtCycles = [5, 2]; let Latency = 6; let NumMicroOps = 7; } def : InstRW<[ADLPWriteResGroup30], (instregex "^CMPS(B|L|Q|W)$")>; -def ADLPWriteResGroup31 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01_05, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup31 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01_05, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [2, 7, 6, 2, 1, 1, 2, 1]; let Latency = 32; let NumMicroOps = 22; } def : InstRW<[ADLPWriteResGroup31], (instrs CMPXCHG16B)>; -def ADLPWriteResGroup32 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup32 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [4, 7, 2, 1, 1, 1]; let Latency = 25; let NumMicroOps = 16; } def : InstRW<[ADLPWriteResGroup32], (instrs CMPXCHG8B)>; -def ADLPWriteResGroup33 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup33 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [1, 2, 1, 1, 1]; let Latency = 13; let NumMicroOps = 6; @@ -781,13 +780,13 @@ def ADLPWriteResGroup34 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_0 } def : InstRW<[ADLPWriteResGroup34], (instrs CPUID)>; -def ADLPWriteResGroup35 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort02_03_11]> { +def ADLPWriteResGroup35 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort02_03_10]> { let Latency = 26; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup35], (instregex "^(V?)CVT(T?)SD2SIrm((_Int)?)$")>; -def ADLPWriteResGroup36 : SchedWriteRes<[ADLPPort00_01, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup36 : SchedWriteRes<[ADLPPort00_01, ADLPPort02_03_10, ADLPPort05]> { let Latency = 12; let NumMicroOps = 3; } @@ -811,7 +810,7 @@ def ADLPWriteResGroup38 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort05]> def : InstRW<[ADLPWriteResGroup38], (instregex "^(V?)CVT(T?)SS2SI64rr_Int$")>; def : InstRW<[ADLPWriteResGroup38, ReadDefault], (instregex "^(V?)CVT(T?)SS2SI64rr$")>; -def ADLPWriteResGroup39 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06]> { +def ADLPWriteResGroup39 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06]> { let Latency = 2; let NumMicroOps = 2; } @@ -827,7 +826,7 @@ def : InstRW<[ADLPWriteResGroup40], (instrs DEC16r_alt, ST_FPrr, SYSCALL)>; -def ADLPWriteResGroup41 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup41 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let Latency = 7; } def : InstRW<[ADLPWriteResGroup41], (instrs DEC32r_alt)>; @@ -850,7 +849,7 @@ def ADLPWriteResGroup44 : SchedWriteRes<[ADLPPort00]> { def : InstRW<[ADLPWriteResGroup44], (instregex "^DIVR_F(P?)rST0$")>; def : InstRW<[ADLPWriteResGroup44], (instrs DIVR_FST0r)>; -def ADLPWriteResGroup45 : SchedWriteRes<[ADLPPort00, ADLPPort02_03_11]> { +def ADLPWriteResGroup45 : SchedWriteRes<[ADLPPort00, ADLPPort02_03_10]> { let Latency = 20; let NumMicroOps = 2; } @@ -874,7 +873,7 @@ def ADLPWriteResGroup48 : SchedWriteRes<[ADLPPort00]> { def : InstRW<[ADLPWriteResGroup48], (instregex "^DIV_F(P?)rST0$")>; def : InstRW<[ADLPWriteResGroup48], (instrs DIV_FST0r)>; -def ADLPWriteResGroup49 : SchedWriteRes<[ADLPPort00, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup49 : SchedWriteRes<[ADLPPort00, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [2, 21, 2, 14, 4, 9, 5]; let Latency = 126; let NumMicroOps = 57; @@ -1001,14 +1000,14 @@ def ADLPWriteResGroup67 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06, ADLPPo } def : InstRW<[ADLPWriteResGroup67], (instrs FXRSTOR64)>; -def ADLPWriteResGroup68 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup68 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [2, 5, 10, 10, 2, 38, 5, 38]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 110; } def : InstRW<[ADLPWriteResGroup68], (instregex "^FXSAVE((64)?)$")>; -def ADLPWriteResGroup69 : SchedWriteRes<[ADLPPort00_01, ADLPPort02_03_11]> { +def ADLPWriteResGroup69 : SchedWriteRes<[ADLPPort00_01, ADLPPort02_03_10]> { let Latency = 12; let NumMicroOps = 2; } @@ -1023,41 +1022,41 @@ def ADLPWriteResGroup70 : SchedWriteRes<[ADLPPort00_01]> { def : InstRW<[ADLPWriteResGroup70], (instregex "^(V?)GF2P8MULBrr$")>; def : InstRW<[ADLPWriteResGroup70], (instrs VGF2P8MULBYrr)>; -def ADLPWriteResGroup71 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup71 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [7, 5, 26, 19, 2, 7, 21]; let Latency = 35; let NumMicroOps = 87; } def : InstRW<[ADLPWriteResGroup71], (instrs IN16ri)>; -def ADLPWriteResGroup72 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup72 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [7, 1, 4, 26, 19, 3, 7, 20]; let Latency = 35; let NumMicroOps = 87; } def : InstRW<[ADLPWriteResGroup72], (instrs IN16rr)>; -def ADLPWriteResGroup73 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup73 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [7, 6, 28, 21, 2, 10, 20]; let Latency = 35; let NumMicroOps = 94; } def : InstRW<[ADLPWriteResGroup73], (instrs IN32ri)>; -def ADLPWriteResGroup74 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup74 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [7, 9, 28, 21, 2, 11, 21]; let NumMicroOps = 99; } def : InstRW<[ADLPWriteResGroup74], (instrs IN32rr)>; -def ADLPWriteResGroup75 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup75 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [7, 6, 25, 19, 2, 8, 20]; let Latency = 35; let NumMicroOps = 87; } def : InstRW<[ADLPWriteResGroup75], (instrs IN8ri)>; -def ADLPWriteResGroup76 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup76 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [7, 6, 25, 19, 2, 7, 20]; let Latency = 35; let NumMicroOps = 86; @@ -1069,7 +1068,7 @@ def ADLPWriteResGroup77 : SchedWriteRes<[ADLPPort00_06]> { } def : InstRW<[ADLPWriteResGroup77], (instrs INC16r_alt)>; -def ADLPWriteResGroup78 : SchedWriteRes<[ADLPPort02_03_11]> { +def ADLPWriteResGroup78 : SchedWriteRes<[ADLPPort02_03_10]> { let Latency = 7; } def : InstRW<[ADLPWriteResGroup78], (instregex "^(V?)MOV(D|SH|SL)DUPrm$", @@ -1077,28 +1076,28 @@ def : InstRW<[ADLPWriteResGroup78], (instregex "^(V?)MOV(D|SH|SL)DUPrm$", def : InstRW<[ADLPWriteResGroup78], (instrs INC32r_alt, VBROADCASTSSrm)>; -def ADLPWriteResGroup79 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup79 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [7, 6, 24, 17, 8, 1, 19, 1]; let Latency = 20; let NumMicroOps = 83; } def : InstRW<[ADLPWriteResGroup79], (instrs INSB)>; -def ADLPWriteResGroup80 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_01_05_06_10, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup80 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_01_05_06_11, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [7, 1, 5, 1, 27, 17, 11, 1, 21, 1]; let Latency = 20; let NumMicroOps = 92; } def : InstRW<[ADLPWriteResGroup80], (instrs INSL)>; -def ADLPWriteResGroup81 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_01_05_06_10, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup81 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_01_05_06_11, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [7, 1, 4, 1, 25, 17, 1, 9, 1, 19, 1]; let Latency = 20; let NumMicroOps = 86; } def : InstRW<[ADLPWriteResGroup81], (instrs INSW)>; -def ADLPWriteResGroup82 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup82 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [5, 4, 8, 6, 2, 5, 7, 5]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 42; @@ -1128,35 +1127,35 @@ def ADLPWriteResGroup86 : SchedWriteRes<[]> { def : InstRW<[ADLPWriteResGroup86], (instregex "^JMP_(1|4)$")>; def : InstRW<[ADLPWriteResGroup86], (instrs VZEROUPPER)>; -def ADLPWriteResGroup87 : SchedWriteRes<[ADLPPort00, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup87 : SchedWriteRes<[ADLPPort00, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [8, 2, 14, 3, 1]; let Latency = 198; let NumMicroOps = 81; } def : InstRW<[ADLPWriteResGroup87], (instrs LAR16rm)>; -def ADLPWriteResGroup88 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup88 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [1, 3, 1, 8, 5, 1, 2, 1]; let Latency = 66; let NumMicroOps = 22; } def : InstRW<[ADLPWriteResGroup88], (instrs LAR16rr)>; -def ADLPWriteResGroup89 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup89 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [1, 2, 2, 9, 5, 3, 1]; let Latency = 71; let NumMicroOps = 85; } def : InstRW<[ADLPWriteResGroup89], (instrs LAR32rm)>; -def ADLPWriteResGroup90 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup90 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [1, 3, 1, 8, 5, 1, 2, 1]; let Latency = 65; let NumMicroOps = 22; } def : InstRW<[ADLPWriteResGroup90], (instregex "^LAR(32|64)rr$")>; -def ADLPWriteResGroup91 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup91 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [1, 2, 2, 9, 5, 3, 1]; let Latency = 71; let NumMicroOps = 87; @@ -1168,13 +1167,13 @@ def ADLPWriteResGroup92 : SchedWriteRes<[ADLPPort02_03]> { } def : InstRW<[ADLPWriteResGroup92], (instregex "^LD_F(32|64|80)m$")>; -def ADLPWriteResGroup93 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort01]> { +def ADLPWriteResGroup93 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort01]> { let Latency = 2; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup93], (instrs LEA16r)>; -def ADLPWriteResGroup94 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup94 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 6; let NumMicroOps = 4; @@ -1183,77 +1182,77 @@ def : InstRW<[ADLPWriteResGroup94], (instregex "^LODS(B|W)$", "^SCAS(B|L|Q|W)$")>; def : InstRW<[ADLPWriteResGroup94], (instrs LEAVE)>; -def ADLPWriteResGroup95 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup95 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 6; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup95], (instrs LEAVE64)>; -def ADLPWriteResGroup96 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup96 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [1, 2, 4, 3, 2, 1, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 14; } def : InstRW<[ADLPWriteResGroup96], (instrs LGDT64m)>; -def ADLPWriteResGroup97 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup97 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [1, 1, 5, 3, 2, 1, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 14; } def : InstRW<[ADLPWriteResGroup97], (instrs LIDT64m)>; -def ADLPWriteResGroup98 : SchedWriteRes<[ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup98 : SchedWriteRes<[ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [5, 3, 2, 1, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 12; } def : InstRW<[ADLPWriteResGroup98], (instrs LLDT16m)>; -def ADLPWriteResGroup99 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup99 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [1, 4, 3, 1, 1, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 11; } def : InstRW<[ADLPWriteResGroup99], (instrs LLDT16r)>; -def ADLPWriteResGroup100 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup100 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [1, 1, 2, 8, 3, 1, 2, 7, 2]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 27; } def : InstRW<[ADLPWriteResGroup100], (instrs LMSW16m)>; -def ADLPWriteResGroup101 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup101 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [5, 7, 1, 2, 5, 2]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 22; } def : InstRW<[ADLPWriteResGroup101], (instrs LMSW16r)>; -def ADLPWriteResGroup102 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup102 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 5; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup102], (instregex "^LODS(L|Q)$")>; -def ADLPWriteResGroup103 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup103 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [2, 4, 1]; let Latency = 3; let NumMicroOps = 7; } def : InstRW<[ADLPWriteResGroup103], (instrs LOOP)>; -def ADLPWriteResGroup104 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup104 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [4, 6, 1]; let Latency = 3; let NumMicroOps = 11; } def : InstRW<[ADLPWriteResGroup104], (instrs LOOPE)>; -def ADLPWriteResGroup105 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup105 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [4, 6, 1]; let Latency = 2; let NumMicroOps = 11; @@ -1266,21 +1265,21 @@ def ADLPWriteResGroup106 : SchedWriteRes<[ADLPPort00_01_05_06, ADLPPort02_03, AD } def : InstRW<[ADLPWriteResGroup106], (instrs LRET64)>; -def ADLPWriteResGroup107 : SchedWriteRes<[ADLPPort00, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup107 : SchedWriteRes<[ADLPPort00, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [1, 5, 3, 3, 1]; let Latency = 70; let NumMicroOps = 13; } def : InstRW<[ADLPWriteResGroup107], (instregex "^LSL(16|32|64)rm$")>; -def ADLPWriteResGroup108 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup108 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [1, 4, 4, 3, 2, 1]; let Latency = 63; let NumMicroOps = 15; } def : InstRW<[ADLPWriteResGroup108], (instregex "^LSL(16|32|64)rr$")>; -def ADLPWriteResGroup109 : SchedWriteRes<[ADLPPort00_01, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup109 : SchedWriteRes<[ADLPPort00_01, ADLPPort02_03_10, ADLPPort05]> { let Latency = 24; let NumMicroOps = 3; } @@ -1304,7 +1303,7 @@ def ADLPWriteResGroup112 : SchedWriteRes<[ADLPPort00, ADLPPort00_01]> { } def : InstRW<[ADLPWriteResGroup112], (instrs MMX_CVTPI2PSrr)>; -def ADLPWriteResGroup113 : SchedWriteRes<[ADLPPort00, ADLPPort02_03_11]> { +def ADLPWriteResGroup113 : SchedWriteRes<[ADLPPort00, ADLPPort02_03_10]> { let Latency = 13; let NumMicroOps = 2; } @@ -1329,7 +1328,7 @@ def ADLPWriteResGroup116 : SchedWriteRes<[ADLPPort04_09, ADLPPort07_08]> { } def : InstRW<[ADLPWriteResGroup116], (instrs MMX_MOVD64mr)>; -def ADLPWriteResGroup117 : SchedWriteRes<[ADLPPort02_03_11]> { +def ADLPWriteResGroup117 : SchedWriteRes<[ADLPPort02_03_10]> { let Latency = 8; } def : InstRW<[ADLPWriteResGroup117], (instregex "^MMX_MOV(D|Q)64rm$", @@ -1351,7 +1350,7 @@ def ADLPWriteResGroup119 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05]> { } def : InstRW<[ADLPWriteResGroup119], (instregex "^MMX_MOVQ2(DQ|FR64)rr$")>; -def ADLPWriteResGroup120 : SchedWriteRes<[ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup120 : SchedWriteRes<[ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [1, 2]; let Latency = 12; let NumMicroOps = 3; @@ -1368,13 +1367,13 @@ def : InstRW<[ADLPWriteResGroup121], (instregex "^MMX_PACKSS(DW|WB)rr$")>; def : InstRW<[ADLPWriteResGroup121], (instrs MMX_PACKUSWBrr)>; def : InstRW<[ADLPWriteResGroup121, ReadDefault, ReadInt2Fpu], (instrs MMX_PINSRWrri)>; -def ADLPWriteResGroup122 : SchedWriteRes<[ADLPPort00_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup122 : SchedWriteRes<[ADLPPort00_05, ADLPPort02_03_10]> { let Latency = 9; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup122, ReadAfterVecLd], (instregex "^MMX_P(ADD|SUB)(B|D|Q|W)rm$")>; -def ADLPWriteResGroup123 : SchedWriteRes<[ADLPPort00, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup123 : SchedWriteRes<[ADLPPort00, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 11; let NumMicroOps = 4; @@ -1388,7 +1387,7 @@ def ADLPWriteResGroup124 : SchedWriteRes<[ADLPPort00, ADLPPort05]> { } def : InstRW<[ADLPWriteResGroup124], (instregex "^MMX_PH(ADD|SUB)SWrr$")>; -def ADLPWriteResGroup125 : SchedWriteRes<[ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup125 : SchedWriteRes<[ADLPPort02_03_10, ADLPPort05]> { let Latency = 9; let NumMicroOps = 2; } @@ -1396,7 +1395,7 @@ def : InstRW<[ADLPWriteResGroup125], (instregex "^VPBROADCAST(B|W)Yrm$")>; def : InstRW<[ADLPWriteResGroup125, ReadAfterLd], (instrs MMX_PINSRWrmi)>; def : InstRW<[ADLPWriteResGroup125, ReadAfterVecYLd], (instrs VPALIGNRYrmi)>; -def ADLPWriteResGroup126 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup126 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10]> { let Latency = 5; let NumMicroOps = 2; } @@ -1410,35 +1409,35 @@ def : InstRW<[ADLPWriteResGroup127], (instregex "^PUSH(F|G)S(16|32)$")>; def : InstRW<[ADLPWriteResGroup127], (instrs MOV16ms, MOVBE32mr)>; -def ADLPWriteResGroup128 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort01]> { +def ADLPWriteResGroup128 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort01]> { let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup128], (instregex "^MOV(16|32|64)rs$", "^S(TR|LDT)16r$")>; -def ADLPWriteResGroup129 : SchedWriteRes<[ADLPPort02_03_11]>; +def ADLPWriteResGroup129 : SchedWriteRes<[ADLPPort02_03_10]>; def : InstRW<[ADLPWriteResGroup129], (instregex "^MOV32ao(16|32|64)$")>; def : InstRW<[ADLPWriteResGroup129], (instrs MOV64ao64)>; -def ADLPWriteResGroup130 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup130 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort04_09, ADLPPort07_08]> { let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup130], (instregex "^MOV(8|32)o(16|32)a$", "^MOV(8|32|64)o64a$")>; -def ADLPWriteResGroup131 : SchedWriteRes<[ADLPPort00_01_05_06_10]> { +def ADLPWriteResGroup131 : SchedWriteRes<[ADLPPort00_01_05_06_11]> { let Latency = 0; } def : InstRW<[ADLPWriteResGroup131], (instregex "^MOV32rr((_REV)?)$", "^MOVZX(32|64)rr8$")>; def : InstRW<[ADLPWriteResGroup131], (instrs MOVZX32rr8_NOREX)>; -def ADLPWriteResGroup132 : SchedWriteRes<[ADLPPort02_03_11]> { +def ADLPWriteResGroup132 : SchedWriteRes<[ADLPPort02_03_10]> { let Latency = 5; } def : InstRW<[ADLPWriteResGroup132], (instrs MOV64ao32)>; -def ADLPWriteResGroup133 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup133 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [1, 2, 4, 16, 7, 2, 2, 12, 2]; let Latency = 217; let NumMicroOps = 48; @@ -1451,20 +1450,20 @@ def ADLPWriteResGroup134 : SchedWriteRes<[ADLPPort04_09, ADLPPort07_08]> { } def : InstRW<[ADLPWriteResGroup134], (instrs MOV64o32a)>; -def ADLPWriteResGroup135 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort05]> { +def ADLPWriteResGroup135 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort05]> { let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup135], (instrs MOV64rc)>; -def ADLPWriteResGroup136 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort05]> { +def ADLPWriteResGroup136 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort05]> { let ReleaseAtCycles = [3, 4, 8, 4, 2, 3]; let Latency = 181; let NumMicroOps = 24; } def : InstRW<[ADLPWriteResGroup136], (instrs MOV64rd)>; -def ADLPWriteResGroup137 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup137 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10]> { let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup137], (instregex "^MOV8ao(16|32|64)$")>; @@ -1482,13 +1481,13 @@ def ADLPWriteResGroup139 : SchedWriteRes<[ADLPPort00_06, ADLPPort04_09, ADLPPort } def : InstRW<[ADLPWriteResGroup139], (instrs MOVBE16mr)>; -def ADLPWriteResGroup140 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort02_03_11]> { +def ADLPWriteResGroup140 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort02_03_10]> { let Latency = 7; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup140], (instrs MOVBE16rm)>; -def ADLPWriteResGroup141 : SchedWriteRes<[ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup141 : SchedWriteRes<[ADLPPort01, ADLPPort02_03_10]> { let Latency = 6; let NumMicroOps = 2; } @@ -1503,13 +1502,13 @@ def : InstRW<[ADLPWriteResGroup142], (instrs MOVBE64mr, SLDT16m, STRm)>; -def ADLPWriteResGroup143 : SchedWriteRes<[ADLPPort00_06, ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup143 : SchedWriteRes<[ADLPPort00_06, ADLPPort01, ADLPPort02_03_10]> { let Latency = 7; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup143], (instrs MOVBE64rm)>; -def ADLPWriteResGroup144 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup144 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let NumMicroOps = 4; } def : InstRW<[ADLPWriteResGroup144], (instregex "^MOVDIR64B(16|32|64)$")>; @@ -1526,7 +1525,7 @@ def ADLPWriteResGroup146 : SchedWriteRes<[ADLPPort04_09, ADLPPort07_08]> { } def : InstRW<[ADLPWriteResGroup146], (instrs MOVDIRI64)>; -def ADLPWriteResGroup147 : SchedWriteRes<[ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup147 : SchedWriteRes<[ADLPPort01_05, ADLPPort02_03_10]> { let Latency = 8; let NumMicroOps = 2; } @@ -1545,7 +1544,7 @@ def ADLPWriteResGroup149 : SchedWriteRes<[ADLPPort04_09, ADLPPort07_08]> { } def : InstRW<[ADLPWriteResGroup149], (instrs MOVNTImr)>; -def ADLPWriteResGroup150 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup150 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [4, 1, 1, 1]; let Latency = 8; let NumMicroOps = 7; @@ -1558,27 +1557,27 @@ def : InstRW<[ADLPWriteResGroup151], (instregex "^(V?)MOVS(D|S)rr((_REV)?)$", "^VP(ADD|SUB)(B|D|Q|W)Yrr$")>; def : InstRW<[ADLPWriteResGroup151], (instrs VPBLENDDrri)>; -def ADLPWriteResGroup152 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup152 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [4, 1, 1, 1]; let Latency = 7; let NumMicroOps = 7; } def : InstRW<[ADLPWriteResGroup152], (instregex "^MOVS(L|Q|W)$")>; -def ADLPWriteResGroup153 : SchedWriteRes<[ADLPPort02_03_11]> { +def ADLPWriteResGroup153 : SchedWriteRes<[ADLPPort02_03_10]> { let Latency = 6; } def : InstRW<[ADLPWriteResGroup153], (instregex "^MOVSX(16|32|64)rm(16|32)$", "^MOVSX(32|64)rm8$")>; def : InstRW<[ADLPWriteResGroup153], (instrs MOVSX32rm8_NOREX)>; -def ADLPWriteResGroup154 : SchedWriteRes<[ADLPPort01_05_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup154 : SchedWriteRes<[ADLPPort01_05_11, ADLPPort02_03_10]> { let Latency = 6; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup154], (instrs MOVSX16rm8)>; -def ADLPWriteResGroup155 : SchedWriteRes<[ADLPPort01_05_10]>; +def ADLPWriteResGroup155 : SchedWriteRes<[ADLPPort01_05_11]>; def : InstRW<[ADLPWriteResGroup155], (instregex "^MOVSX(16|32|64)rr(8|16|32)$")>; def : InstRW<[ADLPWriteResGroup155], (instrs MOVSX32rr8_NOREX)>; @@ -1607,70 +1606,70 @@ def ADLPWriteResGroup159 : SchedWriteRes<[ADLPPort00_01_05_06, ADLPPort05, ADLPP } def : InstRW<[ADLPWriteResGroup159], (instrs MWAITrr)>; -def ADLPWriteResGroup160 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup160 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [6, 4, 1, 28, 15, 7, 1, 16, 1]; let Latency = 35; let NumMicroOps = 79; } def : InstRW<[ADLPWriteResGroup160], (instrs OUT16ir)>; -def ADLPWriteResGroup161 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup161 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [6, 6, 27, 15, 7, 1, 16, 1]; let Latency = 35; let NumMicroOps = 79; } def : InstRW<[ADLPWriteResGroup161], (instrs OUT16rr)>; -def ADLPWriteResGroup162 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup162 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [6, 4, 1, 30, 15, 9, 1, 18, 1]; let Latency = 35; let NumMicroOps = 85; } def : InstRW<[ADLPWriteResGroup162], (instrs OUT32ir)>; -def ADLPWriteResGroup163 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup163 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [6, 6, 29, 15, 9, 1, 18, 1]; let Latency = 35; let NumMicroOps = 85; } def : InstRW<[ADLPWriteResGroup163], (instrs OUT32rr)>; -def ADLPWriteResGroup164 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup164 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [5, 5, 1, 25, 15, 5, 1, 15, 1]; let Latency = 35; let NumMicroOps = 73; } def : InstRW<[ADLPWriteResGroup164], (instrs OUT8ir)>; -def ADLPWriteResGroup165 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup165 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [5, 5, 26, 15, 5, 1, 15, 1]; let Latency = 35; let NumMicroOps = 73; } def : InstRW<[ADLPWriteResGroup165], (instrs OUT8rr)>; -def ADLPWriteResGroup166 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup166 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [7, 6, 25, 16, 7, 1, 17, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 80; } def : InstRW<[ADLPWriteResGroup166], (instrs OUTSB)>; -def ADLPWriteResGroup167 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup167 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [7, 6, 28, 16, 10, 1, 20, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 89; } def : InstRW<[ADLPWriteResGroup167], (instrs OUTSL)>; -def ADLPWriteResGroup168 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup168 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [6, 1, 5, 27, 16, 8, 1, 18, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 83; } def : InstRW<[ADLPWriteResGroup168], (instrs OUTSW)>; -def ADLPWriteResGroup169 : SchedWriteRes<[ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup169 : SchedWriteRes<[ADLPPort02_03_10, ADLPPort05]> { let Latency = 10; let NumMicroOps = 2; } @@ -1685,14 +1684,14 @@ def : InstRW<[ADLPWriteResGroup170], (instregex "^(V?)PACK(S|U)S(DW|WB)rr$", "^VPACK(S|U)S(DW|WB)Yrr$")>; def : InstRW<[ADLPWriteResGroup170], (instrs VPCMPGTQYrr)>; -def ADLPWriteResGroup171 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup171 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort02_03_10]> { let Latency = 8; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup171, ReadAfterVecXLd], (instregex "^(V?)P(ADD|SUB)(B|D|Q|W)rm$")>; def : InstRW<[ADLPWriteResGroup171, ReadAfterVecXLd], (instrs VPBLENDDrmi)>; -def ADLPWriteResGroup172 : SchedWriteRes<[ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup172 : SchedWriteRes<[ADLPPort02_03_10, ADLPPort05]> { let Latency = 8; let NumMicroOps = 2; } @@ -1710,7 +1709,7 @@ def ADLPWriteResGroup174 : SchedWriteRes<[ADLPPort00_06, ADLPPort05]> { } def : InstRW<[ADLPWriteResGroup174], (instrs PAUSE)>; -def ADLPWriteResGroup175 : SchedWriteRes<[ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup175 : SchedWriteRes<[ADLPPort01, ADLPPort02_03_10]> { let Latency = 8; let NumMicroOps = 2; } @@ -1722,7 +1721,7 @@ def ADLPWriteResGroup176 : SchedWriteRes<[ADLPPort01_05, ADLPPort04_09, ADLPPort } def : InstRW<[ADLPWriteResGroup176], (instregex "^(V?)PEXTR(D|Q)mri$")>; -def ADLPWriteResGroup177 : SchedWriteRes<[ADLPPort00_01, ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup177 : SchedWriteRes<[ADLPPort00_01, ADLPPort01_05, ADLPPort02_03_10]> { let ReleaseAtCycles = [1, 2, 1]; let Latency = 9; let NumMicroOps = 4; @@ -1737,7 +1736,7 @@ def ADLPWriteResGroup178 : SchedWriteRes<[ADLPPort00_01, ADLPPort01_05]> { def : InstRW<[ADLPWriteResGroup178], (instregex "^(V?)PH(ADD|SUB)SWrr$", "^VPH(ADD|SUB)SWYrr$")>; -def ADLPWriteResGroup179 : SchedWriteRes<[ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup179 : SchedWriteRes<[ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let Latency = 12; let NumMicroOps = 3; } @@ -1751,41 +1750,41 @@ def : InstRW<[ADLPWriteResGroup180], (instregex "^POPA(16|32)$", "^PREFETCHIT(0|1)$")>; def : InstRW<[ADLPWriteResGroup180], (instrs POPF32)>; -def ADLPWriteResGroup181 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup181 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10]> { let ReleaseAtCycles = [6, 2, 1, 1]; let Latency = 5; let NumMicroOps = 10; } def : InstRW<[ADLPWriteResGroup181], (instrs POPF16)>; -def ADLPWriteResGroup182 : SchedWriteRes<[ADLPPort00_06, ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup182 : SchedWriteRes<[ADLPPort00_06, ADLPPort01, ADLPPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 5; let NumMicroOps = 7; } def : InstRW<[ADLPWriteResGroup182], (instrs POPF64)>; -def ADLPWriteResGroup183 : SchedWriteRes<[ADLPPort02_03_11]> { +def ADLPWriteResGroup183 : SchedWriteRes<[ADLPPort02_03_10]> { let Latency = 0; } def : InstRW<[ADLPWriteResGroup183], (instregex "^PREFETCHT(0|1|2)$")>; def : InstRW<[ADLPWriteResGroup183], (instrs PREFETCHNTA)>; -def ADLPWriteResGroup184 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11, ADLPPort06]> { +def ADLPWriteResGroup184 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10, ADLPPort06]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 4; } def : InstRW<[ADLPWriteResGroup184], (instregex "^PTWRITE((64)?)m$")>; -def ADLPWriteResGroup185 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort06]> { +def ADLPWriteResGroup185 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort06]> { let ReleaseAtCycles = [1, 2]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup185], (instrs PTWRITE64r)>; -def ADLPWriteResGroup186 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort06]> { +def ADLPWriteResGroup186 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort06]> { let ReleaseAtCycles = [2, 2]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 4; @@ -1797,7 +1796,7 @@ def ADLPWriteResGroup187 : SchedWriteRes<[ADLPPort04_09, ADLPPort07_08]> { } def : InstRW<[ADLPWriteResGroup187], (instregex "^PUSH64r((mr)?)$")>; -def ADLPWriteResGroup188 : SchedWriteRes<[ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup188 : SchedWriteRes<[ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup188], (instrs PUSH64rmm)>; @@ -1818,49 +1817,49 @@ def ADLPWriteResGroup191 : SchedWriteRes<[ADLPPort01, ADLPPort04_09, ADLPPort07_ } def : InstRW<[ADLPWriteResGroup191], (instregex "^PUSH(F|G)S64$")>; -def ADLPWriteResGroup192 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup192 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [2, 3, 2]; let Latency = 8; let NumMicroOps = 7; } def : InstRW<[ADLPWriteResGroup192], (instregex "^RC(L|R)(16|32|64)rCL$")>; -def ADLPWriteResGroup193 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06]> { +def ADLPWriteResGroup193 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06]> { let ReleaseAtCycles = [1, 2]; let Latency = 13; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup193, WriteRMW], (instregex "^RC(L|R)8m(1|i)$")>; -def ADLPWriteResGroup194 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup194 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [1, 5, 2]; let Latency = 20; let NumMicroOps = 8; } def : InstRW<[ADLPWriteResGroup194, WriteRMW], (instrs RCL8mCL)>; -def ADLPWriteResGroup195 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup195 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [2, 5, 2]; let Latency = 7; let NumMicroOps = 9; } def : InstRW<[ADLPWriteResGroup195], (instrs RCL8rCL)>; -def ADLPWriteResGroup196 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup196 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [2, 4, 3]; let Latency = 20; let NumMicroOps = 9; } def : InstRW<[ADLPWriteResGroup196, WriteRMW], (instrs RCR8mCL)>; -def ADLPWriteResGroup197 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup197 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [3, 4, 3]; let Latency = 9; let NumMicroOps = 10; } def : InstRW<[ADLPWriteResGroup197], (instrs RCR8rCL)>; -def ADLPWriteResGroup198 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort00_05, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort01_05_10, ADLPPort05]> { +def ADLPWriteResGroup198 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort00_05, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort01_05_11, ADLPPort05]> { let ReleaseAtCycles = [1, 6, 1, 10, 20, 8, 5, 1, 2]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 54; @@ -1872,48 +1871,48 @@ def ADLPWriteResGroup199 : SchedWriteRes<[ADLPPort01]> { } def : InstRW<[ADLPWriteResGroup199], (instrs RDPID64)>; -def ADLPWriteResGroup200 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup200 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 3; } def : InstRW<[ADLPWriteResGroup200], (instrs RDPKRUr)>; -def ADLPWriteResGroup201 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort05]> { +def ADLPWriteResGroup201 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort05]> { let ReleaseAtCycles = [9, 6, 2, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 18; } def : InstRW<[ADLPWriteResGroup201], (instrs RDPMC)>; -def ADLPWriteResGroup202 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup202 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [2, 3, 2, 5, 7, 3, 1, 2]; let Latency = 1386; let NumMicroOps = 25; } def : InstRW<[ADLPWriteResGroup202], (instrs RDRAND16r)>; -def ADLPWriteResGroup203 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_10, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup203 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06_11, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [2, 3, 2, 5, 7, 3, 1, 2]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 25; } def : InstRW<[ADLPWriteResGroup203], (instregex "^RDRAND(32|64)r$")>; -def ADLPWriteResGroup204 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup204 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [2, 3, 3, 5, 7, 1, 4]; let Latency = 1381; let NumMicroOps = 25; } def : InstRW<[ADLPWriteResGroup204], (instrs RDSEED16r)>; -def ADLPWriteResGroup205 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup205 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [2, 3, 3, 5, 7, 1, 4]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 25; } def : InstRW<[ADLPWriteResGroup205], (instregex "^RDSEED(32|64)r$")>; -def ADLPWriteResGroup206 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort05]> { +def ADLPWriteResGroup206 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort05]> { let ReleaseAtCycles = [5, 6, 3, 1]; let Latency = 18; let NumMicroOps = 15; @@ -1927,13 +1926,13 @@ def ADLPWriteResGroup207 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_ } def : InstRW<[ADLPWriteResGroup207], (instrs RDTSCP)>; -def ADLPWriteResGroup208 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_11]> { +def ADLPWriteResGroup208 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_10]> { let Latency = 7; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup208], (instrs RET64)>; -def ADLPWriteResGroup209 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_11]> { +def ADLPWriteResGroup209 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 6; let NumMicroOps = 3; @@ -1978,7 +1977,7 @@ def ADLPWriteResGroup215 : SchedWriteRes<[ADLPPort00_06]> { def : InstRW<[ADLPWriteResGroup215, WriteRMW], (instregex "^S(A|H)R8m(1|i)$", "^SHL8m(1|i)$")>; -def ADLPWriteResGroup216 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_11]> { +def ADLPWriteResGroup216 : SchedWriteRes<[ADLPPort00_06, ADLPPort02_03_10]> { let Latency = 8; let NumMicroOps = 2; } @@ -1991,7 +1990,7 @@ def ADLPWriteResGroup217 : SchedWriteRes<[ADLPPort00_06]> { def : InstRW<[ADLPWriteResGroup217], (instregex "^S(A|H)RX(32|64)rr$", "^SHLX(32|64)rr$")>; -def ADLPWriteResGroup218 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup218 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [2, 2, 1, 1, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 7; @@ -2004,14 +2003,14 @@ def ADLPWriteResGroup219 : SchedWriteRes<[ADLPPort04_09, ADLPPort07_08]> { } def : InstRW<[ADLPWriteResGroup219], (instrs SFENCE)>; -def ADLPWriteResGroup220 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort01, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup220 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort01, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [1, 2, 2, 2]; let Latency = 21; let NumMicroOps = 7; } def : InstRW<[ADLPWriteResGroup220], (instregex "^S(G|I)DT64m$")>; -def ADLPWriteResGroup221 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup221 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort02_03_10, ADLPPort05]> { let Latency = 9; let NumMicroOps = 3; } @@ -2023,7 +2022,7 @@ def ADLPWriteResGroup222 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort05]> { } def : InstRW<[ADLPWriteResGroup222], (instrs SHA1MSG1rr)>; -def ADLPWriteResGroup223 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort00_06, ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup223 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort00_06, ADLPPort01_05, ADLPPort02_03_10]> { let ReleaseAtCycles = [2, 2, 1, 2, 1]; let Latency = 13; let NumMicroOps = 8; @@ -2037,7 +2036,7 @@ def ADLPWriteResGroup224 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPP } def : InstRW<[ADLPWriteResGroup224], (instrs SHA1MSG2rr)>; -def ADLPWriteResGroup225 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup225 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_10]> { let Latency = 8; let NumMicroOps = 4; } @@ -2049,7 +2048,7 @@ def ADLPWriteResGroup226 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPP } def : InstRW<[ADLPWriteResGroup226], (instrs SHA1NEXTErr)>; -def ADLPWriteResGroup227 : SchedWriteRes<[ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup227 : SchedWriteRes<[ADLPPort02_03_10, ADLPPort05]> { let Latency = 13; let NumMicroOps = 2; } @@ -2062,7 +2061,7 @@ def ADLPWriteResGroup228 : SchedWriteRes<[ADLPPort05]> { def : InstRW<[ADLPWriteResGroup228], (instrs SHA1RNDS4rri, SHA256RNDS2rr)>; -def ADLPWriteResGroup229 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort00_06, ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup229 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPPort00_06, ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [3, 2, 1, 1, 1]; let Latency = 12; let NumMicroOps = 8; @@ -2076,7 +2075,7 @@ def ADLPWriteResGroup230 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_01_05, ADLPP } def : InstRW<[ADLPWriteResGroup230], (instrs SHA256MSG1rr)>; -def ADLPWriteResGroup231 : SchedWriteRes<[ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup231 : SchedWriteRes<[ADLPPort02_03_10, ADLPPort05]> { let ReleaseAtCycles = [1, 2]; let Latency = 13; let NumMicroOps = 3; @@ -2090,63 +2089,63 @@ def ADLPWriteResGroup232 : SchedWriteRes<[ADLPPort05]> { } def : InstRW<[ADLPWriteResGroup232], (instrs SHA256MSG2rr)>; -def ADLPWriteResGroup233 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup233 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort07_08]> { let Latency = 13; let NumMicroOps = 5; } def : InstRW<[ADLPWriteResGroup233], (instrs SHRD16mri8)>; -def ADLPWriteResGroup234 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort01]> { +def ADLPWriteResGroup234 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort01]> { let Latency = 6; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup234], (instregex "^SLDT(32|64)r$")>; -def ADLPWriteResGroup235 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort05]> { +def ADLPWriteResGroup235 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort05]> { let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup235], (instrs SMSW16r)>; -def ADLPWriteResGroup236 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort05]> { +def ADLPWriteResGroup236 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort05]> { let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup236], (instregex "^SMSW(32|64)r$")>; -def ADLPWriteResGroup237 : SchedWriteRes<[ADLPPort00, ADLPPort02_03_11]> { +def ADLPWriteResGroup237 : SchedWriteRes<[ADLPPort00, ADLPPort02_03_10]> { let Latency = 24; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup237, ReadAfterVecLd], (instregex "^(V?)SQRTSDm_Int$")>; -def ADLPWriteResGroup238 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06]> { +def ADLPWriteResGroup238 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06]> { let Latency = 6; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup238], (instrs STD)>; -def ADLPWriteResGroup239 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup239 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [1, 4, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 6; } def : InstRW<[ADLPWriteResGroup239], (instrs STI)>; -def ADLPWriteResGroup240 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup240 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 8; let NumMicroOps = 4; } def : InstRW<[ADLPWriteResGroup240], (instrs STOSB)>; -def ADLPWriteResGroup241 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort04_09, ADLPPort07_08]> { +def ADLPWriteResGroup241 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort04_09, ADLPPort07_08]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 7; let NumMicroOps = 4; } def : InstRW<[ADLPWriteResGroup241], (instregex "^STOS(L|Q|W)$")>; -def ADLPWriteResGroup242 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort01]> { +def ADLPWriteResGroup242 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort01]> { let Latency = 5; let NumMicroOps = 2; } @@ -2158,7 +2157,7 @@ def ADLPWriteResGroup243 : SchedWriteRes<[ADLPPort00]> { def : InstRW<[ADLPWriteResGroup243], (instregex "^(TST|XAM)_F$")>; def : InstRW<[ADLPWriteResGroup243], (instrs UCOM_FPPr)>; -def ADLPWriteResGroup244 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup244 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 9; let NumMicroOps = 4; @@ -2174,35 +2173,35 @@ def ADLPWriteResGroup245 : SchedWriteRes<[ADLPPort00_01_05]> { def : InstRW<[ADLPWriteResGroup245], (instregex "^VBLENDVP(D|S)rrr$")>; def : InstRW<[ADLPWriteResGroup245], (instrs VPBLENDVBrrr)>; -def ADLPWriteResGroup246 : SchedWriteRes<[ADLPPort00, ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup246 : SchedWriteRes<[ADLPPort00, ADLPPort01, ADLPPort02_03_10]> { let ReleaseAtCycles = [6, 7, 18]; let Latency = 81; let NumMicroOps = 31; } def : InstRW<[ADLPWriteResGroup246], (instrs VERRm)>; -def ADLPWriteResGroup247 : SchedWriteRes<[ADLPPort00, ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup247 : SchedWriteRes<[ADLPPort00, ADLPPort01, ADLPPort02_03_10]> { let ReleaseAtCycles = [6, 7, 17]; let Latency = 74; let NumMicroOps = 30; } def : InstRW<[ADLPWriteResGroup247], (instrs VERRr)>; -def ADLPWriteResGroup248 : SchedWriteRes<[ADLPPort00, ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup248 : SchedWriteRes<[ADLPPort00, ADLPPort01, ADLPPort02_03_10]> { let ReleaseAtCycles = [5, 8, 21]; let Latency = 81; let NumMicroOps = 34; } def : InstRW<[ADLPWriteResGroup248], (instrs VERWm)>; -def ADLPWriteResGroup249 : SchedWriteRes<[ADLPPort00, ADLPPort01, ADLPPort02_03_11]> { +def ADLPWriteResGroup249 : SchedWriteRes<[ADLPPort00, ADLPPort01, ADLPPort02_03_10]> { let ReleaseAtCycles = [5, 8, 20]; let Latency = 74; let NumMicroOps = 33; } def : InstRW<[ADLPWriteResGroup249], (instrs VERWr)>; -def ADLPWriteResGroup250 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup250 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_10]> { let ReleaseAtCycles = [1, 1, 2, 4]; let Latency = 29; let NumMicroOps = 8; @@ -2212,7 +2211,7 @@ def : InstRW<[ADLPWriteResGroup250, WriteVecMaskedGatherWriteback], (instregex " def : InstRW<[ADLPWriteResGroup250, WriteVecMaskedGatherWriteback], (instrs VGATHERQPSYrm, VPGATHERQDYrm)>; -def ADLPWriteResGroup251 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup251 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_10]> { let ReleaseAtCycles = [1, 1, 1, 2]; let Latency = 20; let NumMicroOps = 5; @@ -2222,7 +2221,7 @@ def : InstRW<[ADLPWriteResGroup251, WriteVecMaskedGatherWriteback], (instregex " def : InstRW<[ADLPWriteResGroup251, WriteVecMaskedGatherWriteback], (instrs VGATHERQPSrm, VPGATHERQDrm)>; -def ADLPWriteResGroup252 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup252 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_10]> { let ReleaseAtCycles = [1, 1, 2, 8]; let Latency = 30; let NumMicroOps = 12; @@ -2230,7 +2229,7 @@ def ADLPWriteResGroup252 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort def : InstRW<[ADLPWriteResGroup252, WriteVecMaskedGatherWriteback], (instrs VGATHERDPSYrm, VPGATHERDDYrm)>; -def ADLPWriteResGroup253 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup253 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05, ADLPPort01_05, ADLPPort02_03_10]> { let ReleaseAtCycles = [1, 1, 2, 4]; let Latency = 28; let NumMicroOps = 8; @@ -2245,14 +2244,14 @@ def ADLPWriteResGroup254 : SchedWriteRes<[ADLPPort01_05, ADLPPort05]> { } def : InstRW<[ADLPWriteResGroup254], (instregex "^VH(ADD|SUB)P(D|S)rr$")>; -def ADLPWriteResGroup255 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup255 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort02_03_10]> { let Latency = 9; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup255, ReadAfterVecYLd], (instregex "^VINSERT(F|I)128rmi$", "^VP(ADD|SUB)(B|D|Q|W)Yrm$")>; -def ADLPWriteResGroup256 : SchedWriteRes<[ADLPPort00, ADLPPort00_06, ADLPPort02_03_11]> { +def ADLPWriteResGroup256 : SchedWriteRes<[ADLPPort00, ADLPPort00_06, ADLPPort02_03_10]> { let Latency = 7; let NumMicroOps = 3; } @@ -2294,7 +2293,7 @@ def ADLPWriteResGroup262 : SchedWriteRes<[ADLPPort04_09, ADLPPort07_08]> { } def : InstRW<[ADLPWriteResGroup262], (instrs VMOVNTPSmr)>; -def ADLPWriteResGroup263 : SchedWriteRes<[ADLPPort02_03_11, ADLPPort05]> { +def ADLPWriteResGroup263 : SchedWriteRes<[ADLPPort02_03_10, ADLPPort05]> { let Latency = 11; let NumMicroOps = 2; } @@ -2302,21 +2301,21 @@ def : InstRW<[ADLPWriteResGroup263, ReadAfterVecYLd], (instregex "^VPACK(S|U)S(D def : InstRW<[ADLPWriteResGroup263, ReadAfterVecYLd], (instrs VPCMPGTQYrm)>; def : InstRW<[ADLPWriteResGroup263, ReadAfterVecXLd], (instrs VPCLMULQDQYrmi)>; -def ADLPWriteResGroup264 : SchedWriteRes<[ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup264 : SchedWriteRes<[ADLPPort01_05, ADLPPort02_03_10]> { let Latency = 9; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup264, ReadAfterVecYLd], (instregex "^VSHUFP(D|S)Yrmi$")>; def : InstRW<[ADLPWriteResGroup264, ReadAfterVecYLd], (instrs VPBLENDWYrmi)>; -def ADLPWriteResGroup266 : SchedWriteRes<[ADLPPort00_01, ADLPPort01_05, ADLPPort02_03_11]> { +def ADLPWriteResGroup266 : SchedWriteRes<[ADLPPort00_01, ADLPPort01_05, ADLPPort02_03_10]> { let ReleaseAtCycles = [1, 2, 1]; let Latency = 10; let NumMicroOps = 4; } def : InstRW<[ADLPWriteResGroup266, ReadAfterVecYLd], (instregex "^VPH(ADD|SUB)SWYrm$")>; -def ADLPWriteResGroup267 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10]> { +def ADLPWriteResGroup267 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11]> { let ReleaseAtCycles = [1, 2, 3, 3, 1]; let Latency = 16; let NumMicroOps = 10; @@ -2337,42 +2336,42 @@ def ADLPWriteResGroup269 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_ } def : InstRW<[ADLPWriteResGroup269], (instrs WRMSR)>; -def ADLPWriteResGroup270 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06, ADLPPort01, ADLPPort05]> { +def ADLPWriteResGroup270 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06, ADLPPort01, ADLPPort05]> { let ReleaseAtCycles = [2, 1, 4, 1]; let Latency = AlderlakePModel.MaxLatency; let NumMicroOps = 8; } def : InstRW<[ADLPWriteResGroup270], (instrs WRPKRUr)>; -def ADLPWriteResGroup271 : SchedWriteRes<[ADLPPort00_01_05_06_10]> { +def ADLPWriteResGroup271 : SchedWriteRes<[ADLPPort00_01_05_06_11]> { let ReleaseAtCycles = [2]; let Latency = 12; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup271, WriteRMW], (instregex "^XADD(16|32|64)rm$")>; -def ADLPWriteResGroup272 : SchedWriteRes<[ADLPPort00_01_05_06_10]> { +def ADLPWriteResGroup272 : SchedWriteRes<[ADLPPort00_01_05_06_11]> { let ReleaseAtCycles = [2]; let Latency = 13; let NumMicroOps = 2; } def : InstRW<[ADLPWriteResGroup272, WriteRMW], (instrs XADD8rm)>; -def ADLPWriteResGroup273 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06]> { +def ADLPWriteResGroup273 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06]> { let ReleaseAtCycles = [4, 1]; let Latency = 39; let NumMicroOps = 5; } def : InstRW<[ADLPWriteResGroup273, WriteRMW], (instregex "^XCHG(16|32)rm$")>; -def ADLPWriteResGroup274 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06]> { +def ADLPWriteResGroup274 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06]> { let ReleaseAtCycles = [5, 1]; let Latency = 39; let NumMicroOps = 6; } def : InstRW<[ADLPWriteResGroup274, WriteRMW], (instrs XCHG64rm)>; -def ADLPWriteResGroup275 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_06]> { +def ADLPWriteResGroup275 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_06]> { let ReleaseAtCycles = [4, 1]; let Latency = 40; let NumMicroOps = 5; @@ -2386,14 +2385,14 @@ def ADLPWriteResGroup276 : SchedWriteRes<[ADLPPort00, ADLPPort00_01_05_06, ADLPP } def : InstRW<[ADLPWriteResGroup276], (instrs XCH_F)>; -def ADLPWriteResGroup277 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01]> { +def ADLPWriteResGroup277 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01]> { let ReleaseAtCycles = [7, 3, 8, 5]; let Latency = 4; let NumMicroOps = 23; } def : InstRW<[ADLPWriteResGroup277], (instrs XGETBV)>; -def ADLPWriteResGroup278 : SchedWriteRes<[ADLPPort00_01_05_06_10, ADLPPort02_03_11]> { +def ADLPWriteResGroup278 : SchedWriteRes<[ADLPPort00_01_05_06_11, ADLPPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 7; let NumMicroOps = 3; @@ -2408,63 +2407,63 @@ def ADLPWriteResGroup279 : SchedWriteRes<[ADLPPort00_01_05_06, ADLPPort01, ADLPP def : InstRW<[ADLPWriteResGroup279], (instregex "^XRSTOR((S|64)?)$")>; def : InstRW<[ADLPWriteResGroup279], (instrs XRSTORS64)>; -def ADLPWriteResGroup280 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup280 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [14, 25, 44, 21, 21, 4, 1, 9, 1]; let Latency = 42; let NumMicroOps = 140; } def : InstRW<[ADLPWriteResGroup280], (instrs XSAVE)>; -def ADLPWriteResGroup281 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup281 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [14, 25, 44, 21, 21, 4, 1, 9, 1]; let Latency = 41; let NumMicroOps = 140; } def : InstRW<[ADLPWriteResGroup281], (instrs XSAVE64)>; -def ADLPWriteResGroup282 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup282 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [1, 19, 36, 52, 23, 4, 2, 12, 2]; let Latency = 42; let NumMicroOps = 151; } def : InstRW<[ADLPWriteResGroup282], (instrs XSAVEC)>; -def ADLPWriteResGroup283 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup283 : SchedWriteRes<[ADLPPort00, ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [1, 19, 36, 53, 23, 4, 2, 12, 2]; let Latency = 42; let NumMicroOps = 152; } def : InstRW<[ADLPWriteResGroup283], (instrs XSAVEC64)>; -def ADLPWriteResGroup284 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup284 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [25, 35, 52, 27, 4, 1, 10, 1]; let Latency = 46; let NumMicroOps = 155; } def : InstRW<[ADLPWriteResGroup284], (instrs XSAVEOPT)>; -def ADLPWriteResGroup285 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup285 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [25, 35, 53, 27, 4, 1, 10, 1]; let Latency = 46; let NumMicroOps = 156; } def : InstRW<[ADLPWriteResGroup285], (instrs XSAVEOPT64)>; -def ADLPWriteResGroup286 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup286 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [23, 32, 53, 29, 30, 4, 2, 9, 2]; let Latency = 42; let NumMicroOps = 184; } def : InstRW<[ADLPWriteResGroup286], (instrs XSAVES)>; -def ADLPWriteResGroup287 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_11, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { +def ADLPWriteResGroup287 : SchedWriteRes<[ADLPPort00_01, ADLPPort00_05, ADLPPort00_06, ADLPPort01, ADLPPort01_05, ADLPPort02_03_10, ADLPPort04_09, ADLPPort05, ADLPPort07_08]> { let ReleaseAtCycles = [23, 33, 53, 29, 32, 4, 2, 8, 2]; let Latency = 42; let NumMicroOps = 186; } def : InstRW<[ADLPWriteResGroup287], (instrs XSAVES64)>; -def ADLPWriteResGroup288 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort00_01_05_06_10, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05_10, ADLPPort05]> { +def ADLPWriteResGroup288 : SchedWriteRes<[ADLPPort00_01_05, ADLPPort00_01_05_06_11, ADLPPort00_05_06, ADLPPort00_06, ADLPPort01, ADLPPort01_05_11, ADLPPort05]> { let ReleaseAtCycles = [4, 23, 2, 14, 8, 1, 2]; let Latency = 5; let NumMicroOps = 54; diff --git a/llvm/lib/Target/X86/X86SchedBroadwell.td b/llvm/lib/Target/X86/X86SchedBroadwell.td index 699ca91cd1f8f..5b50e1943e3db 100644 --- a/llvm/lib/Target/X86/X86SchedBroadwell.td +++ b/llvm/lib/Target/X86/X86SchedBroadwell.td @@ -367,32 +367,37 @@ defm : BWWriteResPair; defm : X86WriteResPairUnsupported; defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : BWWriteResPair; -defm : BWWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteResPairUnsupported; defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : BWWriteResPair; -defm : BWWriteResPair; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteResPairUnsupported; defm : X86WriteRes; -defm : X86WriteRes; defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : BWWriteResPair; +defm : X86WriteRes; defm : X86WriteResPairUnsupported; defm : BWWriteResPair; defm : BWWriteResPair; defm : BWWriteResPair; defm : X86WriteResPairUnsupported; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteResUnsupported; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteResUnsupported; defm : X86WriteRes; diff --git a/llvm/lib/Target/X86/X86SchedHaswell.td b/llvm/lib/Target/X86/X86SchedHaswell.td index b820418bb5519..d06e8a9937097 100644 --- a/llvm/lib/Target/X86/X86SchedHaswell.td +++ b/llvm/lib/Target/X86/X86SchedHaswell.td @@ -364,33 +364,41 @@ defm : HWWriteResPair; defm : HWWriteResPair; // Unsupported = 1 defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 defm : X86WriteRes; -defm : HWWriteResPair; -defm : HWWriteResPair; -defm : HWWriteResPair; // Unsupported = 1 +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 defm : X86WriteRes; -defm : HWWriteResPair; -defm : HWWriteResPair; -defm : HWWriteResPair; // Unsupported = 1 +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 defm : X86WriteRes; -defm : X86WriteRes; defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 +defm : X86WriteRes; defm : X86WriteRes; -defm : HWWriteResPair; -defm : HWWriteResPair; // Unsupported = 1 +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 defm : HWWriteResPair; defm : HWWriteResPair; defm : HWWriteResPair; defm : HWWriteResPair; // Unsupported = 1 -defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; // Unsupported = 1 -defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; // Unsupported = 1 +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 defm : X86WriteRes; defm : X86WriteRes; @@ -983,7 +991,6 @@ def HWWriteResGroup12 : SchedWriteRes<[HWPort1,HWPort23]> { let NumMicroOps = 2; let ReleaseAtCycles = [1,1]; } -def: InstRW<[HWWriteResGroup12], (instrs MMX_CVTPI2PSrm)>; def: InstRW<[HWWriteResGroup12], (instregex "P(DEP|EXT)(32|64)rm")>; def HWWriteResGroup13 : SchedWriteRes<[HWPort5,HWPort23]> { @@ -1349,13 +1356,6 @@ def HWWriteResGroup75 : SchedWriteRes<[HWPort1,HWPort23]> { } def: InstRW<[HWWriteResGroup75], (instregex "FICOM(P?)(16|32)m")>; -def HWWriteResGroup78_1 : SchedWriteRes<[HWPort1,HWPort5,HWPort23]> { - let Latency = 9; - let NumMicroOps = 3; - let ReleaseAtCycles = [1,1,1]; -} -def: InstRW<[HWWriteResGroup78_1], (instrs MMX_CVTPI2PDrm)>; - def HWWriteResGroup80 : SchedWriteRes<[HWPort5,HWPort23,HWPort015]> { let Latency = 9; let NumMicroOps = 3; diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td index 7be9f51bcd46b..775ad6b1078a5 100644 --- a/llvm/lib/Target/X86/X86SchedSandyBridge.td +++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td @@ -348,28 +348,33 @@ defm : X86WriteRes defm : X86WriteRes; defm : X86WriteRes; // Unsupported = 1 -defm : SBWriteResPair; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; // Unsupported = 1 +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; // Unsupported = 1 +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 defm : SBWriteResPair; defm : SBWriteResPair; defm : SBWriteResPair; defm : SBWriteResPair; // Unsupported = 1 -defm : SBWriteResPair; -defm : SBWriteResPair; -defm : SBWriteResPair; // Unsupported = 1 - -defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; // Unsupported = 1 -defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; // Unsupported = 1 +// F16C Instructions (IvyBridge+) +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 + +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; // Unsupported = 1 // Vector integer operations. defm : X86WriteRes; diff --git a/llvm/lib/Target/X86/X86SchedSapphireRapids.td b/llvm/lib/Target/X86/X86SchedSapphireRapids.td index 4344a48a52628..e04ff68d278b2 100644 --- a/llvm/lib/Target/X86/X86SchedSapphireRapids.td +++ b/llvm/lib/Target/X86/X86SchedSapphireRapids.td @@ -56,15 +56,15 @@ def SPRPort00_05 : ProcResGroup<[SPRPort00, SPRPort05]>; def SPRPort00_05_06 : ProcResGroup<[SPRPort00, SPRPort05, SPRPort06]>; def SPRPort00_06 : ProcResGroup<[SPRPort00, SPRPort06]>; def SPRPort01_05 : ProcResGroup<[SPRPort01, SPRPort05]>; -def SPRPort01_05_10 : ProcResGroup<[SPRPort01, SPRPort05, SPRPort10]>; +def SPRPort01_05_11 : ProcResGroup<[SPRPort01, SPRPort05, SPRPort11]>; def SPRPort02_03 : ProcResGroup<[SPRPort02, SPRPort03]>; -def SPRPort02_03_11 : ProcResGroup<[SPRPort02, SPRPort03, SPRPort11]>; +def SPRPort02_03_10 : ProcResGroup<[SPRPort02, SPRPort03, SPRPort10]>; def SPRPort05_11 : ProcResGroup<[SPRPort05, SPRPort11]>; def SPRPort07_08 : ProcResGroup<[SPRPort07, SPRPort08]>; // EU has 112 reservation stations. -def SPRPort00_01_05_06_10 : ProcResGroup<[SPRPort00, SPRPort01, SPRPort05, - SPRPort06, SPRPort10]> { +def SPRPort00_01_05_06_11 : ProcResGroup<[SPRPort00, SPRPort01, SPRPort05, + SPRPort06, SPRPort11]> { let BufferSize = 112; } @@ -74,8 +74,8 @@ def SPRPort04_09 : ProcResGroup<[SPRPort04, SPRPort09]> { } // MEM has 72 reservation stations. -def SPRPort02_03_07_08_11 : ProcResGroup<[SPRPort02, SPRPort03, SPRPort07, - SPRPort08, SPRPort11]> { +def SPRPort02_03_07_08_10 : ProcResGroup<[SPRPort02, SPRPort03, SPRPort07, + SPRPort08, SPRPort10]> { let BufferSize = 72; } @@ -113,7 +113,7 @@ multiclass SPRWriteResPair { + def : WriteRes { let Latency = !add(Lat, LoadLat); let ReleaseAtCycles = !listconcat([1], Res); let NumMicroOps = !add(UOps, LoadUOps); @@ -126,71 +126,71 @@ multiclass SPRWriteResPair; -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; -def : WriteRes; -def : WriteRes { +defm : X86WriteRes; +def : WriteRes; +def : WriteRes { let Latency = 11; } defm : SPRWriteResPair; -defm : SPRWriteResPair; +defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; def : WriteRes; defm : X86WriteRes; defm : SPRWriteResPair; def : WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; def : WriteRes; def : WriteRes { let Latency = 11; } -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : X86WriteRes; defm : X86WriteRes; @@ -202,12 +202,12 @@ defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; -defm : SPRWriteResPair; -defm : SPRWriteResPair; +defm : SPRWriteResPair; +defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; defm : X86WriteRes; @@ -235,7 +235,7 @@ defm : SPRWriteResPair; def : WriteRes { let Latency = 3; } -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; @@ -251,13 +251,13 @@ defm : SPRWriteResPair; def : WriteRes; defm : X86WriteRes; defm : X86WriteRes; -def : WriteRes { +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 8; } defm : SPRWriteResPair; @@ -270,8 +270,8 @@ defm : SPRWriteResPair; def : WriteRes { let Latency = 3; } -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; @@ -334,15 +334,15 @@ defm : SPRWriteResPair; def : WriteRes { let Latency = 2; } -defm : SPRWriteResPair; -defm : SPRWriteResPair; +defm : SPRWriteResPair; +defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; defm : X86WriteRes; -defm : SPRWriteResPair; -defm : SPRWriteResPair; +defm : SPRWriteResPair; +defm : SPRWriteResPair; defm : SPRWriteResPair; -defm : SPRWriteResPair; +defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; @@ -359,10 +359,10 @@ defm : SPRWriteResPair; def : WriteRes { let Latency = 3; } -defm : X86WriteRes; +defm : X86WriteRes; def : WriteRes; defm : SPRWriteResPair; -def : WriteRes { +def : WriteRes { let Latency = 5; } def : WriteRes { @@ -370,7 +370,7 @@ def : WriteRes { } defm : SPRWriteResPair; defm : SPRWriteResPair; -defm : SPRWriteResPair; +defm : SPRWriteResPair; defm : SPRWriteResPair; def : WriteRes { let Latency = SapphireRapidsModel.MaxLatency; @@ -380,9 +380,9 @@ def : WriteRes { } defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; @@ -397,16 +397,16 @@ defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; -defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; def : WriteRes { let Latency = 3; } @@ -434,7 +434,7 @@ defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; @@ -447,7 +447,7 @@ defm : SPRWriteResPair; def : WriteRes { let Latency = 3; } -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; defm : SPRWriteResPair; @@ -455,20 +455,20 @@ defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; -def : WriteRes { +defm : X86WriteRes; +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 8; } -def : WriteRes { +def : WriteRes { let Latency = 7; } -def : WriteRes { +def : WriteRes { let Latency = 8; } defm : SPRWriteResPair; @@ -482,8 +482,8 @@ def : WriteRes { let Latency = 4; } defm : X86WriteRes; -defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; @@ -504,11 +504,11 @@ defm : SPRWriteResPair; defm : SPRWriteResPair; defm : SPRWriteResPair; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; @@ -516,26 +516,26 @@ defm : X86WriteRes; defm : X86WriteRes; defm : SPRWriteResPair; defm : SPRWriteResPair; -defm : X86WriteRes; +defm : X86WriteRes; def : WriteRes; // Infered SchedWriteRes and InstRW definition. -def SPRWriteResGroup0 : SchedWriteRes<[SPRPort02_03, SPRPort02_03_11, SPRPort04, SPRPort04_09]> { +def SPRWriteResGroup0 : SchedWriteRes<[SPRPort02_03, SPRPort02_03_10, SPRPort04, SPRPort04_09]> { let Latency = 7; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup0], (instregex "^AA(D|N)D64mr$", "^A(X?)OR64mr$")>; -def SPRWriteResGroup1 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup1 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [2, 1, 1, 1, 1]; let Latency = 12; let NumMicroOps = 6; } def : InstRW<[SPRWriteResGroup1, ReadAfterLd, ReadAfterLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instregex "^(ADC|SBB)(16|32|64)mr$")>; -def SPRWriteResGroup2 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_11]> { +def SPRWriteResGroup2 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_10]> { let Latency = 6; let NumMicroOps = 2; } @@ -543,20 +543,20 @@ def : InstRW<[SPRWriteResGroup2], (instregex "^RORX(32|64)mi$")>; def : InstRW<[SPRWriteResGroup2, ReadAfterLd, ReadAfterLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instregex "^(ADC|SBB)(8|16|32|64)rm$", "^AD(C|O)X(32|64)rm$")>; -def SPRWriteResGroup3 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup3 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let Latency = 13; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup3], (instregex "^(ADC|SBB)8mi(8?)$")>; -def SPRWriteResGroup4 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup4 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [2, 1, 1, 1, 1]; let Latency = 13; let NumMicroOps = 6; } def : InstRW<[SPRWriteResGroup4, ReadAfterLd, ReadAfterLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instregex "^(ADC|SBB)8mr$")>; -def SPRWriteResGroup5 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11]> { +def SPRWriteResGroup5 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10]> { let Latency = 6; let NumMicroOps = 2; } @@ -585,7 +585,7 @@ def : InstRW<[SPRWriteResGroup6], (instregex "^(ADD|SUB)64ri8$", def : InstRW<[SPRWriteResGroup6], (instrs CLC, JMP_2)>; -def SPRWriteResGroup7 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup7 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let Latency = 13; let NumMicroOps = 4; } @@ -598,7 +598,7 @@ def : InstRW<[SPRWriteResGroup7, ReadAfterLd, ReadDefault, ReadDefault, ReadDefa "^(X?)OR8mr$")>; def : InstRW<[SPRWriteResGroup7, ReadAfterLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instrs SUB8mr)>; -def SPRWriteResGroup8 : SchedWriteRes<[SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup8 : SchedWriteRes<[SPRPort01_05, SPRPort02_03_10]> { let Latency = 10; let NumMicroOps = 2; } @@ -620,7 +620,7 @@ def : InstRW<[SPRWriteResGroup9], (instregex "^(V?)(ADD|SUB)PSrr$", "^VPUNPCK(H|L)(BW|WD)Z(128|256)rrk(z?)$")>; def : InstRW<[SPRWriteResGroup9], (instrs VADDSUBPSYrr)>; -def SPRWriteResGroup10 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup10 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let Latency = 10; let NumMicroOps = 2; } @@ -646,7 +646,7 @@ def : InstRW<[SPRWriteResGroup10, ReadAfterVecYLd], (instregex "^VFPCLASSP(D|H|S "^VPERM(I|T)2PDZ128rmbkz$")>; def : InstRW<[SPRWriteResGroup10, ReadAfterVecYLd], (instrs VPERMBZ128rm)>; -def SPRWriteResGroup11 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup11 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 2]; let Latency = 13; let NumMicroOps = 3; @@ -695,7 +695,7 @@ def : InstRW<[SPRWriteResGroup12], (instrs ADD_FST0r, VPCMPGTQYrr, VPERMDYrr)>; -def SPRWriteResGroup13 : SchedWriteRes<[SPRPort00_01_05_06_10]> { +def SPRWriteResGroup13 : SchedWriteRes<[SPRPort00_01_05_06_11]> { let Latency = 2; } def : InstRW<[SPRWriteResGroup13], (instregex "^AND(8|16|32|64)r(r|i8)$", @@ -713,7 +713,7 @@ def : InstRW<[SPRWriteResGroup13], (instregex "^AND(8|16|32|64)r(r|i8)$", "^TEST(8|16|32|64)rr$")>; def : InstRW<[SPRWriteResGroup13], (instrs XOR8rr_NOREX)>; -def SPRWriteResGroup14 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11]> { +def SPRWriteResGroup14 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10]> { let Latency = 7; let NumMicroOps = 2; } @@ -723,18 +723,18 @@ def : InstRW<[SPRWriteResGroup14, ReadAfterLd], (instregex "^(X?)OR64rm$")>; def : InstRW<[SPRWriteResGroup14, ReadAfterLd], (instrs AND64rm)>; def : InstRW<[SPRWriteResGroup14, ReadAfterLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instregex "^TEST(8|16|32|64)mr$")>; -def SPRWriteResGroup15 : SchedWriteRes<[SPRPort01_05_10, SPRPort02_03_11]> { +def SPRWriteResGroup15 : SchedWriteRes<[SPRPort01_05_11, SPRPort02_03_10]> { let Latency = 7; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup15, ReadAfterLd], (instregex "^ANDN(32|64)rm$")>; -def SPRWriteResGroup16 : SchedWriteRes<[SPRPort01_05_10]> { +def SPRWriteResGroup16 : SchedWriteRes<[SPRPort01_05_11]> { let Latency = 2; } def : InstRW<[SPRWriteResGroup16], (instregex "^ANDN(32|64)rr$")>; -def SPRWriteResGroup17 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup17 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10]> { let ReleaseAtCycles = [5, 2, 1, 1]; let Latency = 10; let NumMicroOps = 9; @@ -747,14 +747,14 @@ def SPRWriteResGroup18 : SchedWriteRes<[SPRPort01]> { def : InstRW<[SPRWriteResGroup18], (instregex "^BT((C|R|S)?)64rr$", "^P(DEP|EXT)(32|64)rr$")>; -def SPRWriteResGroup19 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup19 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [4, 2, 1, 1, 1, 1]; let Latency = 17; let NumMicroOps = 10; } def : InstRW<[SPRWriteResGroup19], (instregex "^BT(C|R|S)64mr$")>; -def SPRWriteResGroup20 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup20 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let Latency = 7; let NumMicroOps = 5; } @@ -789,25 +789,25 @@ def SPRWriteResGroup24 : SchedWriteRes<[SPRPort00_06]>; def : InstRW<[SPRWriteResGroup24], (instregex "^C(DQ|QO)$", "^(CL|ST)AC$")>; -def SPRWriteResGroup25 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06]> { +def SPRWriteResGroup25 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06]> { let Latency = 3; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup25], (instrs CLD)>; -def SPRWriteResGroup26 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup26 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let Latency = 3; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup26], (instrs CLDEMOTE)>; -def SPRWriteResGroup27 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup27 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort04_09, SPRPort07_08]> { let Latency = 2; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup27], (instrs CLFLUSH)>; -def SPRWriteResGroup28 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup28 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let Latency = 2; let NumMicroOps = 3; } @@ -827,35 +827,35 @@ def SPRWriteResGroup30 : SchedWriteRes<[SPRPort00_06, SPRPort01, SPRPort05]> { } def : InstRW<[SPRWriteResGroup30], (instrs CLTS)>; -def SPRWriteResGroup31 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup31 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let Latency = 5; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup31], (instregex "^MOV16o(16|32|64)a$")>; def : InstRW<[SPRWriteResGroup31], (instrs CLWB)>; -def SPRWriteResGroup32 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11]> { +def SPRWriteResGroup32 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10]> { let ReleaseAtCycles = [5, 2]; let Latency = 6; let NumMicroOps = 7; } def : InstRW<[SPRWriteResGroup32], (instregex "^CMPS(B|L|Q|W)$")>; -def SPRWriteResGroup33 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01_05, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup33 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01_05, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [2, 7, 6, 2, 1, 1, 2, 1]; let Latency = 32; let NumMicroOps = 22; } def : InstRW<[SPRWriteResGroup33], (instrs CMPXCHG16B)>; -def SPRWriteResGroup34 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup34 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [4, 7, 2, 1, 1, 1]; let Latency = 25; let NumMicroOps = 16; } def : InstRW<[SPRWriteResGroup34], (instrs CMPXCHG8B)>; -def SPRWriteResGroup35 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup35 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [1, 2, 1, 1, 1]; let Latency = 13; let NumMicroOps = 6; @@ -869,7 +869,7 @@ def SPRWriteResGroup36 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_06, S } def : InstRW<[SPRWriteResGroup36], (instrs CPUID)>; -def SPRWriteResGroup37 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup37 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 12; let NumMicroOps = 3; } @@ -884,7 +884,7 @@ def : InstRW<[SPRWriteResGroup37, ReadAfterVecLd], (instregex "^(V?)CVTSI642SSrm "^VCVT(U?)SI642SSZrm((_Int)?)$")>; def : InstRW<[SPRWriteResGroup37, ReadAfterVecLd], (instrs VCVTSI642SSrm)>; -def SPRWriteResGroup38 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup38 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort02_03_10]> { let Latency = 26; let NumMicroOps = 3; } @@ -926,7 +926,7 @@ def : InstRW<[SPRWriteResGroup41], (instregex "^(V?)CVT(T?)SS2SI64rr_Int$", def : InstRW<[SPRWriteResGroup41], (instrs VCVTTSS2USI64Zrr)>; def : InstRW<[SPRWriteResGroup41, ReadDefault], (instregex "^(V?)CVT(T?)SS2SI64rr$")>; -def SPRWriteResGroup42 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06]> { +def SPRWriteResGroup42 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06]> { let Latency = 2; let NumMicroOps = 2; } @@ -942,18 +942,18 @@ def : InstRW<[SPRWriteResGroup43], (instrs DEC16r_alt, ST_FPrr, SYSCALL)>; -def SPRWriteResGroup44 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup44 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let Latency = 7; } def : InstRW<[SPRWriteResGroup44], (instrs DEC32r_alt)>; -def SPRWriteResGroup45 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup45 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 27; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup45], (instregex "^DIVR_F(32|64)m$")>; -def SPRWriteResGroup46 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup46 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 30; let NumMicroOps = 3; } @@ -965,14 +965,14 @@ def SPRWriteResGroup47 : SchedWriteRes<[SPRPort00]> { def : InstRW<[SPRWriteResGroup47], (instregex "^DIVR_F(P?)rST0$")>; def : InstRW<[SPRWriteResGroup47], (instrs DIVR_FST0r)>; -def SPRWriteResGroup48 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup48 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 19; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup48, ReadAfterVecLd], (instregex "^(V?)DIVSDrm$")>; def : InstRW<[SPRWriteResGroup48, ReadAfterVecLd], (instrs VDIVSDZrm)>; -def SPRWriteResGroup49 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup49 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 22; let NumMicroOps = 2; } @@ -980,7 +980,7 @@ def : InstRW<[SPRWriteResGroup49], (instregex "^DIV_F(32|64)m$")>; def : InstRW<[SPRWriteResGroup49, ReadAfterVecLd], (instregex "^VSQRTSHZm_Int((k|kz)?)$")>; def : InstRW<[SPRWriteResGroup49, ReadAfterVecLd], (instrs VSQRTSHZm)>; -def SPRWriteResGroup50 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup50 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 25; let NumMicroOps = 3; } @@ -998,7 +998,7 @@ def : InstRW<[SPRWriteResGroup52], (instregex "^ENQCMD(S?)(16|32|64)$", "^ST_F(32|64)m$")>; def : InstRW<[SPRWriteResGroup52], (instrs PUSHF32)>; -def SPRWriteResGroup53 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup53 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [2, 21, 2, 14, 4, 9, 5]; let Latency = 126; let NumMicroOps = 57; @@ -1023,13 +1023,13 @@ def : InstRW<[SPRWriteResGroup55], (instrs MMX_PEXTRWrri, VEXTRACTPSZrri, VPERMWZrr)>; -def SPRWriteResGroup56 : SchedWriteRes<[SPRPort02_03, SPRPort02_03_11, SPRPort04, SPRPort04_09, SPRPort06]> { +def SPRWriteResGroup56 : SchedWriteRes<[SPRPort02_03, SPRPort02_03_10, SPRPort04, SPRPort04_09, SPRPort06]> { let Latency = 7; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup56], (instrs FARCALL64m)>; -def SPRWriteResGroup57 : SchedWriteRes<[SPRPort02_03_11, SPRPort06]> { +def SPRWriteResGroup57 : SchedWriteRes<[SPRPort02_03_10, SPRPort06]> { let Latency = 6; let NumMicroOps = 2; } @@ -1051,7 +1051,7 @@ def SPRWriteResGroup59 : SchedWriteRes<[SPRPort00_05]> { } def : InstRW<[SPRWriteResGroup59], (instrs FDECSTP)>; -def SPRWriteResGroup60 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup60 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 2]; let Latency = 11; let NumMicroOps = 3; @@ -1069,13 +1069,13 @@ def : InstRW<[SPRWriteResGroup61], (instregex "^MMX_P(ADD|SUB)(B|D|Q|W)rr$", def : InstRW<[SPRWriteResGroup61], (instrs FINCSTP, FNOP)>; -def SPRWriteResGroup62 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11]> { +def SPRWriteResGroup62 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10]> { let Latency = 7; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup62], (instrs FLDCW16m)>; -def SPRWriteResGroup63 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03, SPRPort02_03_11]> { +def SPRWriteResGroup63 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 5, 10, 39, 8]; let Latency = 62; let NumMicroOps = 64; @@ -1121,28 +1121,28 @@ def SPRWriteResGroup69 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06, SPRPort00 } def : InstRW<[SPRWriteResGroup69], (instrs FSTENVm)>; -def SPRWriteResGroup70 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort01_05, SPRPort02_03, SPRPort02_03_11, SPRPort06]> { +def SPRWriteResGroup70 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort01_05, SPRPort02_03, SPRPort02_03_10, SPRPort06]> { let ReleaseAtCycles = [4, 1, 2, 1, 47, 33, 2]; let Latency = 63; let NumMicroOps = 90; } def : InstRW<[SPRWriteResGroup70], (instrs FXRSTOR)>; -def SPRWriteResGroup71 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort01_05, SPRPort02_03, SPRPort02_03_11, SPRPort06]> { +def SPRWriteResGroup71 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort01_05, SPRPort02_03, SPRPort02_03_10, SPRPort06]> { let ReleaseAtCycles = [4, 1, 2, 1, 45, 31, 4]; let Latency = 63; let NumMicroOps = 88; } def : InstRW<[SPRWriteResGroup71], (instrs FXRSTOR64)>; -def SPRWriteResGroup72 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup72 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [2, 5, 10, 10, 2, 38, 5, 38]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 110; } def : InstRW<[SPRWriteResGroup72], (instregex "^FXSAVE((64)?)$")>; -def SPRWriteResGroup73 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup73 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let Latency = 12; let NumMicroOps = 2; } @@ -1212,41 +1212,41 @@ def : InstRW<[SPRWriteResGroup74], (instregex "^(V?)GF2P8MULBrr$", def : InstRW<[SPRWriteResGroup74], (instrs VCVTSH2SSZrr, VGF2P8MULBYrr)>; -def SPRWriteResGroup75 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup75 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [7, 5, 26, 19, 2, 7, 21]; let Latency = 35; let NumMicroOps = 87; } def : InstRW<[SPRWriteResGroup75], (instrs IN16ri)>; -def SPRWriteResGroup76 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup76 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [7, 1, 4, 26, 19, 3, 7, 20]; let Latency = 35; let NumMicroOps = 87; } def : InstRW<[SPRWriteResGroup76], (instrs IN16rr)>; -def SPRWriteResGroup77 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup77 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [7, 6, 28, 21, 2, 10, 20]; let Latency = 35; let NumMicroOps = 94; } def : InstRW<[SPRWriteResGroup77], (instrs IN32ri)>; -def SPRWriteResGroup78 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup78 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [7, 9, 28, 21, 2, 11, 21]; let NumMicroOps = 99; } def : InstRW<[SPRWriteResGroup78], (instrs IN32rr)>; -def SPRWriteResGroup79 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup79 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [7, 6, 25, 19, 2, 8, 20]; let Latency = 35; let NumMicroOps = 87; } def : InstRW<[SPRWriteResGroup79], (instrs IN8ri)>; -def SPRWriteResGroup80 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup80 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [7, 6, 25, 19, 2, 7, 20]; let Latency = 35; let NumMicroOps = 86; @@ -1258,7 +1258,7 @@ def SPRWriteResGroup81 : SchedWriteRes<[SPRPort00_06]> { } def : InstRW<[SPRWriteResGroup81], (instrs INC16r_alt)>; -def SPRWriteResGroup82 : SchedWriteRes<[SPRPort02_03_11]> { +def SPRWriteResGroup82 : SchedWriteRes<[SPRPort02_03_10]> { let Latency = 7; } def : InstRW<[SPRWriteResGroup82], (instregex "^LD_F(32|64|80)m$", @@ -1269,28 +1269,28 @@ def : InstRW<[SPRWriteResGroup82], (instregex "^LD_F(32|64|80)m$", def : InstRW<[SPRWriteResGroup82], (instrs INC32r_alt, VBROADCASTI32X2Z128rm)>; -def SPRWriteResGroup83 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup83 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [7, 6, 24, 17, 8, 1, 19, 1]; let Latency = 20; let NumMicroOps = 83; } def : InstRW<[SPRWriteResGroup83], (instrs INSB)>; -def SPRWriteResGroup84 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_01_05_06_10, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup84 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_01_05_06_11, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [7, 1, 5, 1, 27, 17, 11, 1, 21, 1]; let Latency = 20; let NumMicroOps = 92; } def : InstRW<[SPRWriteResGroup84], (instrs INSL)>; -def SPRWriteResGroup85 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_01_05_06_10, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup85 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_01_05_06_11, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [7, 1, 4, 1, 25, 17, 1, 9, 1, 19, 1]; let Latency = 20; let NumMicroOps = 86; } def : InstRW<[SPRWriteResGroup85], (instrs INSW)>; -def SPRWriteResGroup86 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup86 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [5, 4, 8, 6, 2, 5, 7, 5]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 42; @@ -1350,7 +1350,7 @@ def : InstRW<[SPRWriteResGroup92], (instregex "^KAND(B|D|Q|W|ND|NQ|NW)kk$", def : InstRW<[SPRWriteResGroup92], (instrs KANDNBkk, VPSUBUSBZrr)>; -def SPRWriteResGroup93 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup93 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let Latency = 7; let NumMicroOps = 2; } @@ -1397,48 +1397,48 @@ def : InstRW<[SPRWriteResGroup96], (instregex "^K((OR)?)TEST(B|D|Q|W)kk$", "^VPSUBUS(B|W)Zrrk(z?)$")>; def : InstRW<[SPRWriteResGroup96], (instrs VMOVSDto64Zrr)>; -def SPRWriteResGroup97 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup97 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [8, 2, 14, 3, 1]; let Latency = 198; let NumMicroOps = 81; } def : InstRW<[SPRWriteResGroup97], (instrs LAR16rm)>; -def SPRWriteResGroup98 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup98 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 3, 1, 8, 5, 1, 2, 1]; let Latency = 66; let NumMicroOps = 22; } def : InstRW<[SPRWriteResGroup98], (instrs LAR16rr)>; -def SPRWriteResGroup99 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup99 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 2, 2, 9, 5, 3, 1]; let Latency = 71; let NumMicroOps = 85; } def : InstRW<[SPRWriteResGroup99], (instrs LAR32rm)>; -def SPRWriteResGroup100 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup100 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 3, 1, 8, 5, 1, 2, 1]; let Latency = 65; let NumMicroOps = 22; } def : InstRW<[SPRWriteResGroup100], (instregex "^LAR(32|64)rr$")>; -def SPRWriteResGroup101 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup101 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 2, 2, 9, 5, 3, 1]; let Latency = 71; let NumMicroOps = 87; } def : InstRW<[SPRWriteResGroup101], (instrs LAR64rm)>; -def SPRWriteResGroup102 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort01]> { +def SPRWriteResGroup102 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort01]> { let Latency = 2; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup102], (instrs LEA16r)>; -def SPRWriteResGroup103 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11]> { +def SPRWriteResGroup103 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 6; let NumMicroOps = 4; @@ -1447,104 +1447,104 @@ def : InstRW<[SPRWriteResGroup103], (instregex "^LODS(B|W)$", "^SCAS(B|L|Q|W)$")>; def : InstRW<[SPRWriteResGroup103], (instrs LEAVE)>; -def SPRWriteResGroup104 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11]> { +def SPRWriteResGroup104 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 6; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup104], (instrs LEAVE64)>; -def SPRWriteResGroup105 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup105 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [1, 2, 4, 3, 2, 1, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 14; } def : InstRW<[SPRWriteResGroup105], (instrs LGDT64m)>; -def SPRWriteResGroup106 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup106 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [1, 1, 5, 3, 2, 1, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 14; } def : InstRW<[SPRWriteResGroup106], (instrs LIDT64m)>; -def SPRWriteResGroup107 : SchedWriteRes<[SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup107 : SchedWriteRes<[SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [5, 3, 2, 1, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 12; } def : InstRW<[SPRWriteResGroup107], (instrs LLDT16m)>; -def SPRWriteResGroup108 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup108 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [1, 4, 3, 1, 1, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 11; } def : InstRW<[SPRWriteResGroup108], (instrs LLDT16r)>; -def SPRWriteResGroup109 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup109 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [1, 1, 2, 8, 3, 1, 2, 7, 2]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 27; } def : InstRW<[SPRWriteResGroup109], (instrs LMSW16m)>; -def SPRWriteResGroup110 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup110 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [5, 7, 1, 2, 5, 2]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 22; } def : InstRW<[SPRWriteResGroup110], (instrs LMSW16r)>; -def SPRWriteResGroup111 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11]> { +def SPRWriteResGroup111 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 5; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup111], (instregex "^LODS(L|Q)$")>; -def SPRWriteResGroup112 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup112 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [2, 4, 1]; let Latency = 3; let NumMicroOps = 7; } def : InstRW<[SPRWriteResGroup112], (instrs LOOP)>; -def SPRWriteResGroup113 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup113 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [4, 6, 1]; let Latency = 3; let NumMicroOps = 11; } def : InstRW<[SPRWriteResGroup113], (instrs LOOPE)>; -def SPRWriteResGroup114 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup114 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [4, 6, 1]; let Latency = 2; let NumMicroOps = 11; } def : InstRW<[SPRWriteResGroup114], (instrs LOOPNE)>; -def SPRWriteResGroup115 : SchedWriteRes<[SPRPort02_03, SPRPort02_03_11, SPRPort06]> { +def SPRWriteResGroup115 : SchedWriteRes<[SPRPort02_03, SPRPort02_03_10, SPRPort06]> { let Latency = 7; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup115], (instrs LRET64)>; -def SPRWriteResGroup116 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup116 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 5, 3, 3, 1]; let Latency = 70; let NumMicroOps = 13; } def : InstRW<[SPRWriteResGroup116], (instregex "^LSL(16|32|64)rm$")>; -def SPRWriteResGroup117 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup117 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 4, 4, 3, 2, 1]; let Latency = 63; let NumMicroOps = 15; } def : InstRW<[SPRWriteResGroup117], (instregex "^LSL(16|32|64)rr$")>; -def SPRWriteResGroup118 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup118 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 24; let NumMicroOps = 3; } @@ -1574,7 +1574,7 @@ def SPRWriteResGroup121 : SchedWriteRes<[SPRPort00, SPRPort00_01]> { } def : InstRW<[SPRWriteResGroup121], (instrs MMX_CVTPI2PSrr)>; -def SPRWriteResGroup122 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup122 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 13; let NumMicroOps = 2; } @@ -1600,7 +1600,7 @@ def SPRWriteResGroup125 : SchedWriteRes<[SPRPort04_09, SPRPort07_08]> { def : InstRW<[SPRWriteResGroup125], (instregex "^VMOV(W|SHZ)mr$")>; def : InstRW<[SPRWriteResGroup125], (instrs MMX_MOVD64mr)>; -def SPRWriteResGroup126 : SchedWriteRes<[SPRPort02_03_11]> { +def SPRWriteResGroup126 : SchedWriteRes<[SPRPort02_03_10]> { let Latency = 8; } def : InstRW<[SPRWriteResGroup126], (instregex "^MMX_MOV(D|Q)64rm$", @@ -1631,7 +1631,7 @@ def SPRWriteResGroup128 : SchedWriteRes<[SPRPort00, SPRPort00_01_05]> { } def : InstRW<[SPRWriteResGroup128], (instregex "^MMX_MOVQ2(DQ|FR64)rr$")>; -def SPRWriteResGroup129 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup129 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 2]; let Latency = 12; let NumMicroOps = 3; @@ -1653,7 +1653,7 @@ def : InstRW<[SPRWriteResGroup130], (instregex "^MMX_PACKSS(DW|WB)rr$", def : InstRW<[SPRWriteResGroup130], (instrs MMX_PACKUSWBrr)>; def : InstRW<[SPRWriteResGroup130, ReadDefault, ReadInt2Fpu], (instrs MMX_PINSRWrri)>; -def SPRWriteResGroup131 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_11]> { +def SPRWriteResGroup131 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_10]> { let Latency = 9; let NumMicroOps = 2; } @@ -1675,7 +1675,7 @@ def : InstRW<[SPRWriteResGroup131, ReadAfterVecYLd], (instregex "^VINSERT(F|I)(3 "^VPTERNLOG(D|Q)Zrmbik(z?)$", "^VPTERNLOG(D|Q)Zrmi((kz)?)$")>; -def SPRWriteResGroup132 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup132 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 11; let NumMicroOps = 4; @@ -1689,7 +1689,7 @@ def SPRWriteResGroup133 : SchedWriteRes<[SPRPort00, SPRPort05]> { } def : InstRW<[SPRWriteResGroup133], (instregex "^MMX_PH(ADD|SUB)SWrr$")>; -def SPRWriteResGroup134 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup134 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let Latency = 9; let NumMicroOps = 2; } @@ -1702,7 +1702,7 @@ def : InstRW<[SPRWriteResGroup134, ReadAfterVecLd], (instregex "^VFPCLASSS(D|H|S def : InstRW<[SPRWriteResGroup134, ReadAfterVecYLd], (instregex "^VPALIGNR(Y|Z256)rmi$")>; def : InstRW<[SPRWriteResGroup134, ReadAfterVecYLd], (instrs VPSHUFBZrm)>; -def SPRWriteResGroup135 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11]> { +def SPRWriteResGroup135 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10]> { let Latency = 5; let NumMicroOps = 2; } @@ -1716,42 +1716,42 @@ def : InstRW<[SPRWriteResGroup136], (instregex "^PUSH(F|G)S(16|32)$")>; def : InstRW<[SPRWriteResGroup136], (instrs MOV16ms, MOVBE32mr)>; -def SPRWriteResGroup137 : SchedWriteRes<[SPRPort00_01_05_06_10]>; +def SPRWriteResGroup137 : SchedWriteRes<[SPRPort00_01_05_06_11]>; def : InstRW<[SPRWriteResGroup137], (instregex "^MOV(8|16|32|64)ri$", "^MOV(8|16|32)ri_alt$", "^MOV(8|16)rr((_REV)?)$")>; def : InstRW<[SPRWriteResGroup137], (instrs MOV64ri32, MOV8rr_NOREX)>; -def SPRWriteResGroup138 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort01]> { +def SPRWriteResGroup138 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort01]> { let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup138], (instregex "^MOV(16|32|64)rs$", "^S(TR|LDT)16r$")>; -def SPRWriteResGroup139 : SchedWriteRes<[SPRPort02_03_11]>; +def SPRWriteResGroup139 : SchedWriteRes<[SPRPort02_03_10]>; def : InstRW<[SPRWriteResGroup139], (instregex "^MOV32ao(16|32|64)$")>; def : InstRW<[SPRWriteResGroup139], (instrs MOV64ao64)>; -def SPRWriteResGroup140 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup140 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup140], (instregex "^MOV(8|32)o(16|32)a$", "^MOV(8|32|64)o64a$")>; -def SPRWriteResGroup141 : SchedWriteRes<[SPRPort00_01_05_06_10]> { +def SPRWriteResGroup141 : SchedWriteRes<[SPRPort00_01_05_06_11]> { let Latency = 0; } def : InstRW<[SPRWriteResGroup141], (instregex "^MOV32rr((_REV)?)$", "^MOVZX(32|64)rr8$")>; def : InstRW<[SPRWriteResGroup141], (instrs MOVZX32rr8_NOREX)>; -def SPRWriteResGroup142 : SchedWriteRes<[SPRPort02_03_11]> { +def SPRWriteResGroup142 : SchedWriteRes<[SPRPort02_03_10]> { let Latency = 5; } def : InstRW<[SPRWriteResGroup142], (instrs MOV64ao32)>; -def SPRWriteResGroup143 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup143 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [1, 2, 4, 16, 7, 2, 2, 12, 2]; let Latency = 217; let NumMicroOps = 48; @@ -1764,20 +1764,20 @@ def SPRWriteResGroup144 : SchedWriteRes<[SPRPort04_09, SPRPort07_08]> { } def : InstRW<[SPRWriteResGroup144], (instrs MOV64o32a)>; -def SPRWriteResGroup145 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort05]> { +def SPRWriteResGroup145 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort05]> { let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup145], (instrs MOV64rc)>; -def SPRWriteResGroup146 : SchedWriteRes<[SPRPort00_01_05, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort05]> { +def SPRWriteResGroup146 : SchedWriteRes<[SPRPort00_01_05, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort05]> { let ReleaseAtCycles = [3, 4, 8, 4, 2, 3]; let Latency = 181; let NumMicroOps = 24; } def : InstRW<[SPRWriteResGroup146], (instrs MOV64rd)>; -def SPRWriteResGroup147 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11]> { +def SPRWriteResGroup147 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10]> { let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup147], (instregex "^MOV8ao(16|32|64)$")>; @@ -1788,13 +1788,13 @@ def SPRWriteResGroup148 : SchedWriteRes<[SPRPort00_06, SPRPort04_09, SPRPort07_0 } def : InstRW<[SPRWriteResGroup148], (instrs MOVBE16mr)>; -def SPRWriteResGroup149 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort02_03_11]> { +def SPRWriteResGroup149 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort02_03_10]> { let Latency = 7; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup149], (instrs MOVBE16rm)>; -def SPRWriteResGroup150 : SchedWriteRes<[SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup150 : SchedWriteRes<[SPRPort01, SPRPort02_03_10]> { let Latency = 6; let NumMicroOps = 2; } @@ -1809,13 +1809,13 @@ def : InstRW<[SPRWriteResGroup151], (instrs MOVBE64mr, SLDT16m, STRm)>; -def SPRWriteResGroup152 : SchedWriteRes<[SPRPort00_06, SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup152 : SchedWriteRes<[SPRPort00_06, SPRPort01, SPRPort02_03_10]> { let Latency = 7; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup152], (instrs MOVBE64rm)>; -def SPRWriteResGroup153 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup153 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup153], (instregex "^MOVDIR64B(16|32|64)$")>; @@ -1832,7 +1832,7 @@ def SPRWriteResGroup155 : SchedWriteRes<[SPRPort04_09, SPRPort07_08]> { } def : InstRW<[SPRWriteResGroup155], (instrs MOVDIRI64)>; -def SPRWriteResGroup156 : SchedWriteRes<[SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup156 : SchedWriteRes<[SPRPort01_05, SPRPort02_03_10]> { let Latency = 8; let NumMicroOps = 2; } @@ -1855,7 +1855,7 @@ def SPRWriteResGroup158 : SchedWriteRes<[SPRPort04_09, SPRPort07_08]> { } def : InstRW<[SPRWriteResGroup158], (instrs MOVNTImr)>; -def SPRWriteResGroup159 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup159 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [4, 1, 1, 1]; let Latency = 8; let NumMicroOps = 7; @@ -1876,31 +1876,31 @@ def : InstRW<[SPRWriteResGroup160], (instregex "^(V?)MOVS(D|S)rr((_REV)?)$", "^VPTERNLOG(D|Q)Z(128|256)rri((k|kz)?)$")>; def : InstRW<[SPRWriteResGroup160], (instrs VPBLENDDrri)>; -def SPRWriteResGroup161 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup161 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [4, 1, 1, 1]; let Latency = 7; let NumMicroOps = 7; } def : InstRW<[SPRWriteResGroup161], (instregex "^MOVS(L|Q|W)$")>; -def SPRWriteResGroup162 : SchedWriteRes<[SPRPort02_03_11]> { +def SPRWriteResGroup162 : SchedWriteRes<[SPRPort02_03_10]> { let Latency = 6; } def : InstRW<[SPRWriteResGroup162], (instregex "^MOVSX(16|32|64)rm(16|32)$", "^MOVSX(32|64)rm8$")>; def : InstRW<[SPRWriteResGroup162], (instrs MOVSX32rm8_NOREX)>; -def SPRWriteResGroup163 : SchedWriteRes<[SPRPort01_05_10, SPRPort02_03_11]> { +def SPRWriteResGroup163 : SchedWriteRes<[SPRPort01_05_11, SPRPort02_03_10]> { let Latency = 6; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup163], (instrs MOVSX16rm8)>; -def SPRWriteResGroup164 : SchedWriteRes<[SPRPort01_05_10]>; +def SPRWriteResGroup164 : SchedWriteRes<[SPRPort01_05_11]>; def : InstRW<[SPRWriteResGroup164], (instregex "^MOVSX(16|32|64)rr(8|16|32)$")>; def : InstRW<[SPRWriteResGroup164], (instrs MOVSX32rr8_NOREX)>; -def SPRWriteResGroup165 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup165 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 11; let NumMicroOps = 2; } @@ -1916,7 +1916,7 @@ def : InstRW<[SPRWriteResGroup165, ReadAfterVecYLd], (instregex "^VP(ADD|SUB)(U? "^VPS(L|R)L(V?)WZrmk(z?)$", "^VPSRA(V?)WZrmk(z?)$")>; -def SPRWriteResGroup166 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup166 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 14; let NumMicroOps = 3; } @@ -1945,70 +1945,70 @@ def SPRWriteResGroup168 : SchedWriteRes<[SPRPort00_01_05_06, SPRPort05, SPRPort0 } def : InstRW<[SPRWriteResGroup168], (instrs MWAITrr)>; -def SPRWriteResGroup169 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup169 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [6, 4, 1, 28, 15, 7, 1, 16, 1]; let Latency = 35; let NumMicroOps = 79; } def : InstRW<[SPRWriteResGroup169], (instrs OUT16ir)>; -def SPRWriteResGroup170 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup170 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [6, 6, 27, 15, 7, 1, 16, 1]; let Latency = 35; let NumMicroOps = 79; } def : InstRW<[SPRWriteResGroup170], (instrs OUT16rr)>; -def SPRWriteResGroup171 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup171 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [6, 4, 1, 30, 15, 9, 1, 18, 1]; let Latency = 35; let NumMicroOps = 85; } def : InstRW<[SPRWriteResGroup171], (instrs OUT32ir)>; -def SPRWriteResGroup172 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup172 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [6, 6, 29, 15, 9, 1, 18, 1]; let Latency = 35; let NumMicroOps = 85; } def : InstRW<[SPRWriteResGroup172], (instrs OUT32rr)>; -def SPRWriteResGroup173 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup173 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [5, 5, 1, 25, 15, 5, 1, 15, 1]; let Latency = 35; let NumMicroOps = 73; } def : InstRW<[SPRWriteResGroup173], (instrs OUT8ir)>; -def SPRWriteResGroup174 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup174 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [5, 5, 26, 15, 5, 1, 15, 1]; let Latency = 35; let NumMicroOps = 73; } def : InstRW<[SPRWriteResGroup174], (instrs OUT8rr)>; -def SPRWriteResGroup175 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup175 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [7, 6, 25, 16, 7, 1, 17, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 80; } def : InstRW<[SPRWriteResGroup175], (instrs OUTSB)>; -def SPRWriteResGroup176 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup176 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [7, 6, 28, 16, 10, 1, 20, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 89; } def : InstRW<[SPRWriteResGroup176], (instrs OUTSL)>; -def SPRWriteResGroup177 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup177 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [6, 1, 5, 27, 16, 8, 1, 18, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 83; } def : InstRW<[SPRWriteResGroup177], (instrs OUTSW)>; -def SPRWriteResGroup178 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup178 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10]> { let Latency = 8; let NumMicroOps = 2; } @@ -2028,7 +2028,7 @@ def : InstRW<[SPRWriteResGroup178, ReadAfterVecXLd], (instregex "^(V?)P(ADD|SUB) "^VPTERNLOG(D|Q)Z128rmi((kz)?)$")>; def : InstRW<[SPRWriteResGroup178, ReadAfterVecXLd], (instrs VPBLENDDrmi)>; -def SPRWriteResGroup179 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup179 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let Latency = 8; let NumMicroOps = 2; } @@ -2045,7 +2045,7 @@ def SPRWriteResGroup180 : SchedWriteRes<[SPRPort00_06, SPRPort05]> { } def : InstRW<[SPRWriteResGroup180], (instrs PAUSE)>; -def SPRWriteResGroup181 : SchedWriteRes<[SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup181 : SchedWriteRes<[SPRPort01, SPRPort02_03_10]> { let Latency = 8; let NumMicroOps = 2; } @@ -2059,7 +2059,7 @@ def : InstRW<[SPRWriteResGroup182], (instregex "^(V?)PEXTR(D|Q)mri$", "^VPEXTR(D|Q)Zmri$", "^VPMOVQDZ128mr(k?)$")>; -def SPRWriteResGroup183 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup183 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 2, 1]; let Latency = 9; let NumMicroOps = 4; @@ -2074,48 +2074,48 @@ def SPRWriteResGroup184 : SchedWriteRes<[SPRPort00_01, SPRPort01_05]> { def : InstRW<[SPRWriteResGroup184], (instregex "^(V?)PH(ADD|SUB)SWrr$", "^VPH(ADD|SUB)SWYrr$")>; -def SPRWriteResGroup185 : SchedWriteRes<[SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup185 : SchedWriteRes<[SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let Latency = 12; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup185], (instregex "^POP(16|32|64)rmm$", "^PUSH(16|32)rmm$")>; -def SPRWriteResGroup186 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup186 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort02_03_10]> { let ReleaseAtCycles = [6, 2, 1, 1]; let Latency = 5; let NumMicroOps = 10; } def : InstRW<[SPRWriteResGroup186], (instrs POPF16)>; -def SPRWriteResGroup187 : SchedWriteRes<[SPRPort00_06, SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup187 : SchedWriteRes<[SPRPort00_06, SPRPort01, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 5; let NumMicroOps = 7; } def : InstRW<[SPRWriteResGroup187], (instrs POPF64)>; -def SPRWriteResGroup188 : SchedWriteRes<[SPRPort02_03_11]> { +def SPRWriteResGroup188 : SchedWriteRes<[SPRPort02_03_10]> { let Latency = 0; } def : InstRW<[SPRWriteResGroup188], (instregex "^PREFETCHT(0|1|2)$")>; def : InstRW<[SPRWriteResGroup188], (instrs PREFETCHNTA)>; -def SPRWriteResGroup189 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11, SPRPort06]> { +def SPRWriteResGroup189 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10, SPRPort06]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup189], (instregex "^PTWRITE((64)?)m$")>; -def SPRWriteResGroup190 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort06]> { +def SPRWriteResGroup190 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort06]> { let ReleaseAtCycles = [1, 2]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup190], (instrs PTWRITE64r)>; -def SPRWriteResGroup191 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort06]> { +def SPRWriteResGroup191 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort06]> { let ReleaseAtCycles = [2, 2]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 4; @@ -2127,7 +2127,7 @@ def SPRWriteResGroup192 : SchedWriteRes<[SPRPort04_09, SPRPort07_08]> { } def : InstRW<[SPRWriteResGroup192], (instregex "^PUSH64r((mr)?)$")>; -def SPRWriteResGroup193 : SchedWriteRes<[SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup193 : SchedWriteRes<[SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup193], (instrs PUSH64rmm)>; @@ -2143,49 +2143,49 @@ def SPRWriteResGroup195 : SchedWriteRes<[SPRPort01, SPRPort04_09, SPRPort07_08]> } def : InstRW<[SPRWriteResGroup195], (instregex "^PUSH(F|G)S64$")>; -def SPRWriteResGroup196 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup196 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [2, 3, 2]; let Latency = 8; let NumMicroOps = 7; } def : InstRW<[SPRWriteResGroup196], (instregex "^RC(L|R)(16|32|64)rCL$")>; -def SPRWriteResGroup197 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06]> { +def SPRWriteResGroup197 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06]> { let ReleaseAtCycles = [1, 2]; let Latency = 13; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup197, WriteRMW], (instregex "^RC(L|R)8m(1|i)$")>; -def SPRWriteResGroup198 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup198 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [1, 5, 2]; let Latency = 20; let NumMicroOps = 8; } def : InstRW<[SPRWriteResGroup198, WriteRMW], (instrs RCL8mCL)>; -def SPRWriteResGroup199 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup199 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [2, 5, 2]; let Latency = 7; let NumMicroOps = 9; } def : InstRW<[SPRWriteResGroup199], (instrs RCL8rCL)>; -def SPRWriteResGroup200 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup200 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [2, 4, 3]; let Latency = 20; let NumMicroOps = 9; } def : InstRW<[SPRWriteResGroup200, WriteRMW], (instrs RCR8mCL)>; -def SPRWriteResGroup201 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup201 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [3, 4, 3]; let Latency = 9; let NumMicroOps = 10; } def : InstRW<[SPRWriteResGroup201], (instrs RCR8rCL)>; -def SPRWriteResGroup202 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_05, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort01_05_10, SPRPort05]> { +def SPRWriteResGroup202 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_05, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort01_05_11, SPRPort05]> { let ReleaseAtCycles = [1, 6, 1, 10, 20, 8, 5, 1, 2]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 54; @@ -2197,48 +2197,48 @@ def SPRWriteResGroup203 : SchedWriteRes<[SPRPort01]> { } def : InstRW<[SPRWriteResGroup203], (instrs RDPID64)>; -def SPRWriteResGroup204 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup204 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup204], (instrs RDPKRUr)>; -def SPRWriteResGroup205 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort05]> { +def SPRWriteResGroup205 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort05]> { let ReleaseAtCycles = [9, 6, 2, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 18; } def : InstRW<[SPRWriteResGroup205], (instrs RDPMC)>; -def SPRWriteResGroup206 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup206 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 3, 2, 5, 7, 3, 1, 2]; let Latency = 1386; let NumMicroOps = 25; } def : InstRW<[SPRWriteResGroup206], (instrs RDRAND16r)>; -def SPRWriteResGroup207 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup207 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 3, 2, 5, 7, 3, 1, 2]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 25; } def : InstRW<[SPRWriteResGroup207], (instregex "^RDRAND(32|64)r$")>; -def SPRWriteResGroup208 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup208 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 3, 3, 5, 7, 1, 4]; let Latency = 1381; let NumMicroOps = 25; } def : InstRW<[SPRWriteResGroup208], (instrs RDSEED16r)>; -def SPRWriteResGroup209 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup209 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 3, 3, 5, 7, 1, 4]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 25; } def : InstRW<[SPRWriteResGroup209], (instregex "^RDSEED(32|64)r$")>; -def SPRWriteResGroup210 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort05]> { +def SPRWriteResGroup210 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort05]> { let ReleaseAtCycles = [5, 6, 3, 1]; let Latency = 18; let NumMicroOps = 15; @@ -2252,13 +2252,13 @@ def SPRWriteResGroup211 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_0 } def : InstRW<[SPRWriteResGroup211], (instrs RDTSCP)>; -def SPRWriteResGroup212 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_11]> { +def SPRWriteResGroup212 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_10]> { let Latency = 7; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup212], (instrs RET64)>; -def SPRWriteResGroup213 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_11]> { +def SPRWriteResGroup213 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 6; let NumMicroOps = 3; @@ -2290,7 +2290,7 @@ def : InstRW<[SPRWriteResGroup217, WriteRMW], (instregex "^RO(L|R)8m(1|i)$", "^(RO|SH)L8mCL$", "^(RO|SA|SH)R8mCL$")>; -def SPRWriteResGroup218 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup218 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 15; let NumMicroOps = 3; @@ -2300,8 +2300,8 @@ def : InstRW<[SPRWriteResGroup218, ReadAfterVecXLd], (instregex "^(V?)ROUNDS(D|S "^VRNDSCALEP(D|S)Z128rm(bi|ik)$", "^VRNDSCALEP(D|S)Z128rmbik(z?)$", "^VRNDSCALEP(D|S)Z128rmi((kz)?)$", - "^VRNDSCALES(D|S)Zm$", - "^VRNDSCALES(D|S)Zm_Int((k|kz)?)$")>; + "^VRNDSCALES(D|S)Zrmi$", + "^VRNDSCALES(D|S)Zrmi_Int((k|kz)?)$")>; def SPRWriteResGroup219 : SchedWriteRes<[SPRPort00_01]> { let ReleaseAtCycles = [2]; @@ -2312,8 +2312,8 @@ def : InstRW<[SPRWriteResGroup219], (instregex "^(V?)ROUND(PD|SS)ri$", "^(V?)ROUND(PS|SD)ri$", "^(V?)ROUNDS(D|S)ri_Int$", "^VRNDSCALEP(D|S)Z(128|256)rri((k|kz)?)$", - "^VRNDSCALES(D|S)Zr$", - "^VRNDSCALES(D|S)Zr(b?)_Int((k|kz)?)$", + "^VRNDSCALES(D|S)Zrri$", + "^VRNDSCALES(D|S)Zrri(b?)_Int((k|kz)?)$", "^VROUNDP(D|S)Yri$")>; def SPRWriteResGroup220 : SchedWriteRes<[SPRPort00_06]> { @@ -2329,7 +2329,7 @@ def SPRWriteResGroup221 : SchedWriteRes<[SPRPort00_06]> { def : InstRW<[SPRWriteResGroup221, WriteRMW], (instregex "^S(A|H)R8m(1|i)$", "^SHL8m(1|i)$")>; -def SPRWriteResGroup222 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_11]> { +def SPRWriteResGroup222 : SchedWriteRes<[SPRPort00_06, SPRPort02_03_10]> { let Latency = 8; let NumMicroOps = 2; } @@ -2342,7 +2342,7 @@ def SPRWriteResGroup223 : SchedWriteRes<[SPRPort00_06]> { def : InstRW<[SPRWriteResGroup223], (instregex "^S(A|H)RX(32|64)rr$", "^SHLX(32|64)rr$")>; -def SPRWriteResGroup224 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup224 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [2, 2, 1, 1, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 7; @@ -2355,14 +2355,14 @@ def SPRWriteResGroup225 : SchedWriteRes<[SPRPort04_09, SPRPort07_08]> { } def : InstRW<[SPRWriteResGroup225], (instrs SFENCE)>; -def SPRWriteResGroup226 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort01, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup226 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort01, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [1, 2, 2, 2]; let Latency = 21; let NumMicroOps = 7; } def : InstRW<[SPRWriteResGroup226], (instregex "^S(G|I)DT64m$")>; -def SPRWriteResGroup227 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup227 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 9; let NumMicroOps = 3; } @@ -2374,7 +2374,7 @@ def SPRWriteResGroup228 : SchedWriteRes<[SPRPort00_01_05, SPRPort05]> { } def : InstRW<[SPRWriteResGroup228], (instrs SHA1MSG1rr)>; -def SPRWriteResGroup229 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup229 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 2, 1, 2, 1]; let Latency = 13; let NumMicroOps = 8; @@ -2388,7 +2388,7 @@ def SPRWriteResGroup230 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup230], (instrs SHA1MSG2rr)>; -def SPRWriteResGroup231 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup231 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10]> { let Latency = 8; let NumMicroOps = 4; } @@ -2400,7 +2400,7 @@ def SPRWriteResGroup232 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup232], (instrs SHA1NEXTErr)>; -def SPRWriteResGroup233 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup233 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let Latency = 13; let NumMicroOps = 2; } @@ -2432,7 +2432,7 @@ def SPRWriteResGroup234 : SchedWriteRes<[SPRPort05]> { def : InstRW<[SPRWriteResGroup234], (instrs SHA1RNDS4rri, SHA256RNDS2rr)>; -def SPRWriteResGroup235 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup235 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [3, 2, 1, 1, 1]; let Latency = 12; let NumMicroOps = 8; @@ -2457,64 +2457,64 @@ def : InstRW<[SPRWriteResGroup237], (instregex "^VPMOV(D|Q|W|SQ|SW)BZrrk(z?)$", "^VPMOVUS(Q|W)BZrrk(z?)$")>; def : InstRW<[SPRWriteResGroup237], (instrs SHA256MSG2rr)>; -def SPRWriteResGroup238 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup238 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort07_08]> { let Latency = 13; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup238], (instrs SHRD16mri8)>; -def SPRWriteResGroup239 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort01]> { +def SPRWriteResGroup239 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort01]> { let Latency = 6; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup239], (instregex "^SLDT(32|64)r$")>; -def SPRWriteResGroup240 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort05]> { +def SPRWriteResGroup240 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort05]> { let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup240], (instrs SMSW16r)>; -def SPRWriteResGroup241 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort05]> { +def SPRWriteResGroup241 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort05]> { let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup241], (instregex "^SMSW(32|64)r$")>; -def SPRWriteResGroup242 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup242 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 24; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup242, ReadAfterVecLd], (instregex "^(V?)SQRTSDm_Int$")>; def : InstRW<[SPRWriteResGroup242, ReadAfterVecLd], (instrs VSQRTSDZm_Int)>; -def SPRWriteResGroup243 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06]> { +def SPRWriteResGroup243 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06]> { let Latency = 6; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup243], (instrs STD)>; -def SPRWriteResGroup244 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup244 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [1, 4, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 6; } def : InstRW<[SPRWriteResGroup244], (instrs STI)>; -def SPRWriteResGroup245 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup245 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 8; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup245], (instrs STOSB)>; -def SPRWriteResGroup246 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup246 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 7; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup246], (instregex "^STOS(L|Q|W)$")>; -def SPRWriteResGroup247 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort01]> { +def SPRWriteResGroup247 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort01]> { let Latency = 5; let NumMicroOps = 2; } @@ -2602,7 +2602,7 @@ def : InstRW<[SPRWriteResGroup253], (instregex "^V(ADD|SUB)PHZrr(bk|kz)$", "^VM(AX|IN|UL)PHZrr(bk|kz)$", "^VM(AX|IN|UL)PHZrr(k|bkz)$")>; -def SPRWriteResGroup254 : SchedWriteRes<[SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup254 : SchedWriteRes<[SPRPort01_05, SPRPort02_03_10]> { let Latency = 11; let NumMicroOps = 2; } @@ -2617,7 +2617,7 @@ def : InstRW<[SPRWriteResGroup254, ReadAfterVecYLd], (instrs VADDSUBPSYrm)>; def : InstRW<[SPRWriteResGroup254, ReadAfterVecXLd], (instregex "^VPSHUFBZ128rmk(z?)$", "^VPUNPCK(H|L)(BW|WD)Z128rmk(z?)$")>; -def SPRWriteResGroup255 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_11]> { +def SPRWriteResGroup255 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_10]> { let Latency = 11; let NumMicroOps = 2; } @@ -2633,7 +2633,7 @@ def SPRWriteResGroup256 : SchedWriteRes<[SPRPort00_05]> { def : InstRW<[SPRWriteResGroup256], (instregex "^V(ADD|SUB)PSZrr(bk|kz)$", "^V(ADD|SUB)PSZrr(k|bkz)$")>; -def SPRWriteResGroup257 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup257 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 12; let NumMicroOps = 2; } @@ -2647,7 +2647,7 @@ def : InstRW<[SPRWriteResGroup257, ReadAfterVecYLd], (instrs VGF2P8MULBZrm)>; def : InstRW<[SPRWriteResGroup257, ReadAfterVecYLd, ReadAfterVecYLd], (instregex "^VPMADD52(H|L)UQZm((b|k|bk|kz)?)$", "^VPMADD52(H|L)UQZmbkz$")>; -def SPRWriteResGroup258 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup258 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let Latency = 11; let NumMicroOps = 2; } @@ -2673,7 +2673,7 @@ def : InstRW<[SPRWriteResGroup258, ReadAfterVecXLd], (instregex "^VPALIGNRZ128rm "^VPCLMULQDQ(Y|Z)rmi$")>; def : InstRW<[SPRWriteResGroup258, ReadAfterVecXLd], (instrs VPCLMULQDQZ256rmi)>; -def SPRWriteResGroup259 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup259 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 10; let NumMicroOps = 4; @@ -2690,7 +2690,7 @@ def : InstRW<[SPRWriteResGroup260], (instregex "^VBLENDVP(S|DY)rrr$", "^VBLENDVP(D|SY)rrr$", "^VPBLENDVB(Y?)rrr$")>; -def SPRWriteResGroup261 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup261 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 9; let NumMicroOps = 4; @@ -2698,7 +2698,7 @@ def SPRWriteResGroup261 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11]> { def : InstRW<[SPRWriteResGroup261, ReadAfterVecXLd, ReadAfterVecXLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instregex "^VBLENDVP(D|S)rmr$")>; def : InstRW<[SPRWriteResGroup261, ReadAfterVecXLd, ReadAfterVecXLd, ReadDefault, ReadDefault, ReadDefault, ReadDefault, ReadDefault], (instrs VPBLENDVBrmr)>; -def SPRWriteResGroup262 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup262 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10]> { let Latency = 9; let NumMicroOps = 2; } @@ -2718,7 +2718,7 @@ def : InstRW<[SPRWriteResGroup262, ReadAfterVecYLd], (instregex "^VINSERT(F|I)12 "^VPTERNLOG(D|Q)Z256rmbik(z?)$", "^VPTERNLOG(D|Q)Z256rmi((kz)?)$")>; -def SPRWriteResGroup263 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup263 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let Latency = 3; let NumMicroOps = 2; } @@ -2748,7 +2748,7 @@ def : InstRW<[SPRWriteResGroup263, ReadAfterVecLd], (instregex "^VCMPS(D|H|S)Zrm "^VCMPS(D|H|S)Zrmi_Int(k?)$", "^VFPCLASSS(D|H|S)Zmik$")>; -def SPRWriteResGroup264 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup264 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 10; let NumMicroOps = 2; } @@ -2806,14 +2806,14 @@ def : InstRW<[SPRWriteResGroup268], (instregex "^VCVT(U?)DQ2PDZrr((k|kz)?)$", "^VCVT(U?)QQ2PSZrr((b|k|bk|kz)?)$", "^VCVT(U?)QQ2PSZrrbkz$")>; -def SPRWriteResGroup269 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup269 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 15; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup269], (instregex "^VCVT(U?)DQ2PHZ128rm(b?)$", "^VCVTNEPS2BF16Z128rm(b?)$")>; -def SPRWriteResGroup270 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup270 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 19; let NumMicroOps = 4; } @@ -2832,7 +2832,7 @@ def SPRWriteResGroup272 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort05]> } def : InstRW<[SPRWriteResGroup272], (instregex "^VCVT(U?)DQ2PHZ128rrk(z?)$")>; -def SPRWriteResGroup273 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup273 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 17; let NumMicroOps = 4; } @@ -2840,7 +2840,7 @@ def : InstRW<[SPRWriteResGroup273], (instregex "^VCVT(U?)DQ2PHZ256rm(b?)$", "^VCVTNEPS2BF16Z128rm(bk|kz)$", "^VCVTNEPS2BF16Z128rm(k|bkz)$")>; -def SPRWriteResGroup274 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup274 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 21; let NumMicroOps = 4; } @@ -2859,14 +2859,14 @@ def SPRWriteResGroup276 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort05]> } def : InstRW<[SPRWriteResGroup276], (instregex "^VCVT(U?)DQ2PHZ256rrk(z?)$")>; -def SPRWriteResGroup277 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup277 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 17; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup277], (instregex "^VCVT(U?)DQ2PHZrm(b?)$")>; -def SPRWriteResGroup278 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup278 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 21; let NumMicroOps = 4; @@ -2889,14 +2889,14 @@ def SPRWriteResGroup280 : SchedWriteRes<[SPRPort00, SPRPort05]> { def : InstRW<[SPRWriteResGroup280], (instregex "^VCVT(U?)DQ2PHZrr(bk|kz)$", "^VCVT(U?)DQ2PHZrr(k|bkz)$")>; -def SPRWriteResGroup281 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup281 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 1]; let Latency = 15; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup281, ReadAfterVecXLd], (instregex "^VCVTNE2PS2BF16Z128rm(b?)$")>; -def SPRWriteResGroup282 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup282 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 1]; let Latency = 17; let NumMicroOps = 5; @@ -2918,14 +2918,14 @@ def SPRWriteResGroup284 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort05]> } def : InstRW<[SPRWriteResGroup284], (instregex "^VCVTNE2PS2BF16Z(128|256)rrk(z?)$")>; -def SPRWriteResGroup285 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup285 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 1]; let Latency = 16; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup285, ReadAfterVecYLd], (instregex "^VCVTNE2PS2BF16Z256rm(b?)$")>; -def SPRWriteResGroup286 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup286 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 1]; let Latency = 18; let NumMicroOps = 5; @@ -2933,7 +2933,7 @@ def SPRWriteResGroup286 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_0 def : InstRW<[SPRWriteResGroup286, ReadAfterVecYLd], (instregex "^VCVTNE2PS2BF16Z256rm(bk|kz)$", "^VCVTNE2PS2BF16Z256rm(k|bkz)$")>; -def SPRWriteResGroup287 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup287 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 2]; let Latency = 16; let NumMicroOps = 5; @@ -2942,7 +2942,7 @@ def : InstRW<[SPRWriteResGroup287, ReadAfterVecYLd], (instregex "^VCVTNE2PS2BF16 "^VDPBF16PSZm((b|k|bk|kz)?)$")>; def : InstRW<[SPRWriteResGroup287, ReadAfterVecYLd], (instrs VDPBF16PSZmbkz)>; -def SPRWriteResGroup288 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup288 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 2]; let Latency = 18; let NumMicroOps = 5; @@ -2977,27 +2977,27 @@ def SPRWriteResGroup292 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort05]> } def : InstRW<[SPRWriteResGroup292], (instregex "^VCVTNEPS2BF16Z(128|256)rrk(z?)$")>; -def SPRWriteResGroup293 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup293 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 16; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup293], (instregex "^VCVTNEPS2BF16Z256rm(b?)$")>; -def SPRWriteResGroup294 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup294 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 18; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup294], (instregex "^VCVTNEPS2BF16Z256rm(bk|kz)$", "^VCVTNEPS2BF16Z256rm(k|bkz)$")>; -def SPRWriteResGroup295 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup295 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 16; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup295], (instregex "^VCVTNEPS2BF16Zrm(b?)$")>; -def SPRWriteResGroup296 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup296 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 18; let NumMicroOps = 4; @@ -3019,7 +3019,7 @@ def SPRWriteResGroup298 : SchedWriteRes<[SPRPort00, SPRPort05]> { } def : InstRW<[SPRWriteResGroup298], (instregex "^VCVTNEPS2BF16Zrrk(z?)$")>; -def SPRWriteResGroup299 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup299 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 15; let NumMicroOps = 3; } @@ -3033,7 +3033,7 @@ def : InstRW<[SPRWriteResGroup299], (instregex "^VCVT(T?)PD2DQYrm$", "^VCVT(U?)QQ2PSZ256rm((b|k|bk|kz)?)$", "^VCVT(U?)QQ2PSZ256rmbkz$")>; -def SPRWriteResGroup300 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup300 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 15; let NumMicroOps = 3; } @@ -3044,14 +3044,14 @@ def : InstRW<[SPRWriteResGroup300], (instregex "^VCVT(T?)P(D|H)2(U?)DQZrm(b?)$", "^VCVT(U?)QQ2PSZrm((b|k|bk|kz)?)$", "^VCVT(U?)QQ2PSZrmbkz$")>; -def SPRWriteResGroup301 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup301 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 1, 2]; let Latency = 19; let NumMicroOps = 7; } def : InstRW<[SPRWriteResGroup301], (instregex "^VCVTPD2PHZ128rm(b?)$")>; -def SPRWriteResGroup302 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup302 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 1, 2]; let Latency = 22; let NumMicroOps = 7; @@ -3073,14 +3073,14 @@ def SPRWriteResGroup304 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup304], (instregex "^VCVTPD2PHZ128rrk(z?)$")>; -def SPRWriteResGroup305 : SchedWriteRes<[SPRPort00_01, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup305 : SchedWriteRes<[SPRPort00_01, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 2]; let Latency = 21; let NumMicroOps = 6; } def : InstRW<[SPRWriteResGroup305], (instregex "^VCVTPD2PHZ256rm(b?)$")>; -def SPRWriteResGroup306 : SchedWriteRes<[SPRPort00_01, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup306 : SchedWriteRes<[SPRPort00_01, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 2]; let Latency = 24; let NumMicroOps = 6; @@ -3102,14 +3102,14 @@ def SPRWriteResGroup308 : SchedWriteRes<[SPRPort00_01, SPRPort05]> { } def : InstRW<[SPRWriteResGroup308], (instregex "^VCVTPD2PHZ256rrk(z?)$")>; -def SPRWriteResGroup309 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup309 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 2]; let Latency = 23; let NumMicroOps = 6; } def : InstRW<[SPRWriteResGroup309], (instregex "^VCVTP(D2PH|H2PD)Zrm(b?)$")>; -def SPRWriteResGroup310 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup310 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 2]; let Latency = 26; let NumMicroOps = 6; @@ -3132,7 +3132,7 @@ def SPRWriteResGroup312 : SchedWriteRes<[SPRPort00, SPRPort05]> { def : InstRW<[SPRWriteResGroup312], (instregex "^VCVTP(D2PH|H2PD)Zrr(bk|kz)$", "^VCVTP(D2PH|H2PD)Zrr(k|bkz)$")>; -def SPRWriteResGroup313 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup313 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let Latency = 11; let NumMicroOps = 2; } @@ -3174,14 +3174,14 @@ def : InstRW<[SPRWriteResGroup314], (instregex "^VCVT(T?)PD2(U?)QQZ(128|256)rr(( "^VSCALEFS(D|S)Zrrb_Int((k|kz)?)$")>; def : InstRW<[SPRWriteResGroup314, ReadAfterVecLd], (instregex "^VFIXUPIMMS(D|S)Zrrib((k|kz)?)$")>; -def SPRWriteResGroup315 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup315 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 14; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup315], (instregex "^VCVT(T?)PH2(U?)DQZ128rm(b?)$", "^VCVTPS2PHXZ128rm(b?)$")>; -def SPRWriteResGroup316 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup316 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 17; let NumMicroOps = 3; } @@ -3195,7 +3195,7 @@ def SPRWriteResGroup317 : SchedWriteRes<[SPRPort00_01, SPRPort05]> { def : InstRW<[SPRWriteResGroup317], (instregex "^VCVT(T?)PH2(U?)DQZ(128|256)rrk(z?)$", "^VCVTP(H2PS|S2PH)(X?)Z256rrk(z?)$")>; -def SPRWriteResGroup318 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup318 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 18; let NumMicroOps = 3; } @@ -3204,7 +3204,7 @@ def : InstRW<[SPRWriteResGroup318], (instregex "^VCVT(T?)PH2(U?)DQZ256rm(bk|kz)$ "^VCVTP(H2PS|S2PH)XZ256rm(bk|kz)$", "^VCVTP(H2PS|S2PH)XZ256rm(k|bkz)$")>; -def SPRWriteResGroup319 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup319 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 18; let NumMicroOps = 3; } @@ -3231,14 +3231,14 @@ def : InstRW<[SPRWriteResGroup321], (instregex "^VCVT(T?)PH2(U?)DQZrr(bk|kz)$", "^VCVTP(H2PS|S2PH)XZrr(bk|kz)$", "^VCVTP(H2PS|S2PH)XZrr(k|bkz)$")>; -def SPRWriteResGroup322 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup322 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 1, 2]; let Latency = 23; let NumMicroOps = 7; } def : InstRW<[SPRWriteResGroup322], (instregex "^VCVTPH2PDZ128rm(b?)$")>; -def SPRWriteResGroup323 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup323 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1, 1, 2]; let Latency = 26; let NumMicroOps = 7; @@ -3260,14 +3260,14 @@ def SPRWriteResGroup325 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup325], (instregex "^VCVTPH2PDZ128rrk(z?)$")>; -def SPRWriteResGroup326 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup326 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 2]; let Latency = 22; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup326], (instregex "^VCVTPH2PDZ256rm(b?)$")>; -def SPRWriteResGroup327 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup327 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 2]; let Latency = 25; let NumMicroOps = 5; @@ -3295,7 +3295,7 @@ def SPRWriteResGroup330 : SchedWriteRes<[SPRPort00_01, SPRPort05]> { } def : InstRW<[SPRWriteResGroup330], (instregex "^VCVTP(H2PS|S2PH)(X?)Z128rrk(z?)$")>; -def SPRWriteResGroup331 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup331 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let Latency = 14; let NumMicroOps = 2; } @@ -3308,7 +3308,7 @@ def : InstRW<[SPRWriteResGroup331, ReadAfterVecYLd], (instregex "^VPMADDUBSWZ256 "^VPMULH((U|RS)?)WZ256rmk(z?)$", "^VPMULLWZ256rmk(z?)$")>; -def SPRWriteResGroup332 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup332 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 13; let NumMicroOps = 3; } @@ -3317,7 +3317,7 @@ def : InstRW<[SPRWriteResGroup332], (instregex "^VCVT(T?)PS2(U?)QQZrm((b|k|bk|kz def : InstRW<[SPRWriteResGroup332], (instrs VCVTPH2PSZrm)>; def : InstRW<[SPRWriteResGroup332, ReadAfterVecYLd], (instregex "^VPERMWZrmk(z?)$")>; -def SPRWriteResGroup333 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup333 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 2, 1, 1, 1]; let Latency = 17; let NumMicroOps = 6; @@ -3332,7 +3332,7 @@ def SPRWriteResGroup334 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup334], (instregex "^VCVT(T?)PH2(U?)QQZ(128|256)rr((k|kz)?)$")>; -def SPRWriteResGroup335 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup335 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 2, 1, 1, 1]; let Latency = 18; let NumMicroOps = 6; @@ -3340,7 +3340,7 @@ def SPRWriteResGroup335 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 def : InstRW<[SPRWriteResGroup335], (instregex "^VCVT(T?)PH2(U?)QQZ256rm((b|k|bk|kz)?)$", "^VCVT(T?)PH2(U?)QQZ256rmbkz$")>; -def SPRWriteResGroup336 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup336 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 16; let NumMicroOps = 3; } @@ -3348,7 +3348,7 @@ def : InstRW<[SPRWriteResGroup336], (instregex "^VCVTPS2PHXZ128rm(bk|kz)$", "^VCVTPS2PHXZ128rm(k|bkz)$", "^VCVTPS2PHXZ256rm(b?)$")>; -def SPRWriteResGroup337 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup337 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 16; let NumMicroOps = 3; } @@ -3373,13 +3373,13 @@ def SPRWriteResGroup340 : SchedWriteRes<[SPRPort00_01, SPRPort05]> { def : InstRW<[SPRWriteResGroup340], (instregex "^VCVT(T?)PS2(U?)QQZ128rr((k|kz)?)$", "^VCVT(U?)QQ2PSZ128rr((k|kz)?)$")>; -def SPRWriteResGroup341 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup341 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 15; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup341], (instregex "^VCVT(U?)QQ2PHZ128rm(b?)$")>; -def SPRWriteResGroup342 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup342 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 17; let NumMicroOps = 5; } @@ -3399,13 +3399,13 @@ def SPRWriteResGroup344 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 def : InstRW<[SPRWriteResGroup344], (instregex "^VCVT(U?)QQ2PHZ128rrk(z?)$", "^VCVT(U?)QQ2PHZ256rr$")>; -def SPRWriteResGroup345 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup345 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 18; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup345], (instregex "^VCVT(U?)QQ2PHZ256rm(b?)$")>; -def SPRWriteResGroup346 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup346 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let Latency = 20; let NumMicroOps = 5; } @@ -3418,14 +3418,14 @@ def SPRWriteResGroup347 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup347], (instregex "^VCVT(U?)QQ2PHZ256rrk(z?)$")>; -def SPRWriteResGroup348 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup348 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 1, 2]; let Latency = 18; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup348], (instregex "^VCVT(U?)QQ2PHZrm(b?)$")>; -def SPRWriteResGroup349 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup349 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 1, 2]; let Latency = 20; let NumMicroOps = 5; @@ -3448,14 +3448,14 @@ def SPRWriteResGroup351 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort05]> { def : InstRW<[SPRWriteResGroup351], (instregex "^VCVT(U?)QQ2PHZrr(bk|kz)$", "^VCVT(U?)QQ2PHZrr(k|bkz)$")>; -def SPRWriteResGroup352 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup352 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 2, 1, 1, 1]; let Latency = 18; let NumMicroOps = 7; } def : InstRW<[SPRWriteResGroup352, ReadAfterVecLd], (instregex "^VCVTSD2SHZrm((_Int)?)$")>; -def SPRWriteResGroup353 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup353 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 2, 1, 1, 1]; let Latency = 21; let NumMicroOps = 7; @@ -3477,14 +3477,14 @@ def SPRWriteResGroup355 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup355], (instregex "^VCVTSD2SHZrr(b?)_Intk(z?)$")>; -def SPRWriteResGroup356 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup356 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 18; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup356, ReadAfterVecLd], (instregex "^VCVTSH2SDZrm((_Int)?)$")>; -def SPRWriteResGroup357 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup357 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 20; let NumMicroOps = 4; @@ -3506,7 +3506,7 @@ def SPRWriteResGroup359 : SchedWriteRes<[SPRPort00_01, SPRPort05]> { } def : InstRW<[SPRWriteResGroup359], (instregex "^VCVTSH2SDZrr(b?)_Intk(z?)$")>; -def SPRWriteResGroup360 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup360 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort02_03_10]> { let Latency = 13; let NumMicroOps = 3; } @@ -3525,14 +3525,14 @@ def SPRWriteResGroup362 : SchedWriteRes<[SPRPort00_01]> { } def : InstRW<[SPRWriteResGroup362], (instregex "^VCVTSH2SSZrr(b?)_Intk(z?)$")>; -def SPRWriteResGroup363 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup363 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_10]> { let Latency = 14; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup363, ReadAfterVecLd], (instregex "^VCVT(U?)SI((64)?)2SHZrm((_Int)?)$", "^VCVTSS2SHZrm((_Int)?)$")>; -def SPRWriteResGroup364 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup364 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_10]> { let Latency = 16; let NumMicroOps = 3; } @@ -3572,14 +3572,14 @@ def : InstRW<[SPRWriteResGroup367], (instregex "^VDBPSADBWZ(128|256)rrik(z?)$", "^VPOPCNT(B|W)Z(128|256)rrk(z?)$", "^VPOPCNT(B|W)Zrrk(z?)$")>; -def SPRWriteResGroup368 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup368 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 36; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup368, ReadAfterVecXLd], (instregex "^VDIVPHZ128rm(b?)$")>; -def SPRWriteResGroup369 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup369 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 38; let NumMicroOps = 4; @@ -3603,14 +3603,14 @@ def : InstRW<[SPRWriteResGroup371], (instregex "^VDIVPHZ(128|256)rrk$", "^VSQRTPHZ(128|256)r$")>; def : InstRW<[SPRWriteResGroup371], (instrs VDIVPHZ128rrkz)>; -def SPRWriteResGroup372 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup372 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 37; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup372, ReadAfterVecYLd], (instregex "^VDIVPHZ256rm(b?)$")>; -def SPRWriteResGroup373 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup373 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 39; let NumMicroOps = 4; @@ -3626,14 +3626,14 @@ def SPRWriteResGroup374 : SchedWriteRes<[SPRPort00, SPRPort00_01_05]> { } def : InstRW<[SPRWriteResGroup374], (instrs VDIVPHZ256rrkz)>; -def SPRWriteResGroup375 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup375 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [4, 2, 1, 1, 1]; let Latency = 49; let NumMicroOps = 9; } def : InstRW<[SPRWriteResGroup375, ReadAfterVecYLd], (instregex "^VDIVPHZrm(b?)$")>; -def SPRWriteResGroup376 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup376 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [4, 2, 1, 1, 1]; let Latency = 51; let NumMicroOps = 9; @@ -3663,7 +3663,7 @@ def SPRWriteResGroup379 : SchedWriteRes<[SPRPort00, SPRPort00_05]> { } def : InstRW<[SPRWriteResGroup379], (instrs VDIVPSZrr)>; -def SPRWriteResGroup380 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup380 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 21; let NumMicroOps = 2; } @@ -3676,7 +3676,7 @@ def SPRWriteResGroup381 : SchedWriteRes<[SPRPort00]> { def : InstRW<[SPRWriteResGroup381], (instrs VDIVSHZrr_Int, VSQRTSHZr_Int)>; -def SPRWriteResGroup382 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup382 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 2]; let Latency = 15; let NumMicroOps = 5; @@ -3691,7 +3691,7 @@ def SPRWriteResGroup383 : SchedWriteRes<[SPRPort00_01, SPRPort05]> { } def : InstRW<[SPRWriteResGroup383], (instregex "^VDPBF16PSZ(128|256)r((k|kz)?)$")>; -def SPRWriteResGroup384 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup384 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [2, 1, 2]; let Latency = 16; let NumMicroOps = 5; @@ -3699,35 +3699,35 @@ def SPRWriteResGroup384 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort0 def : InstRW<[SPRWriteResGroup384, ReadAfterVecYLd], (instregex "^VDPBF16PSZ256m((b|k|bk|kz)?)$")>; def : InstRW<[SPRWriteResGroup384, ReadAfterVecYLd], (instrs VDPBF16PSZ256mbkz)>; -def SPRWriteResGroup385 : SchedWriteRes<[SPRPort00, SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup385 : SchedWriteRes<[SPRPort00, SPRPort01, SPRPort02_03_10]> { let ReleaseAtCycles = [6, 7, 18]; let Latency = 81; let NumMicroOps = 31; } def : InstRW<[SPRWriteResGroup385], (instrs VERRm)>; -def SPRWriteResGroup386 : SchedWriteRes<[SPRPort00, SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup386 : SchedWriteRes<[SPRPort00, SPRPort01, SPRPort02_03_10]> { let ReleaseAtCycles = [6, 7, 17]; let Latency = 74; let NumMicroOps = 30; } def : InstRW<[SPRWriteResGroup386], (instrs VERRr)>; -def SPRWriteResGroup387 : SchedWriteRes<[SPRPort00, SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup387 : SchedWriteRes<[SPRPort00, SPRPort01, SPRPort02_03_10]> { let ReleaseAtCycles = [5, 8, 21]; let Latency = 81; let NumMicroOps = 34; } def : InstRW<[SPRWriteResGroup387], (instrs VERWm)>; -def SPRWriteResGroup388 : SchedWriteRes<[SPRPort00, SPRPort01, SPRPort02_03_11]> { +def SPRWriteResGroup388 : SchedWriteRes<[SPRPort00, SPRPort01, SPRPort02_03_10]> { let ReleaseAtCycles = [5, 8, 20]; let Latency = 74; let NumMicroOps = 33; } def : InstRW<[SPRWriteResGroup388], (instrs VERWr)>; -def SPRWriteResGroup389 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup389 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 2]; let Latency = 10; let NumMicroOps = 3; @@ -3736,7 +3736,7 @@ def : InstRW<[SPRWriteResGroup389, ReadAfterVecYLd], (instregex "^VEXPANDP(D|S)Z "^VPEXPAND(B|D|Q|W)Z128rm$", "^VPEXPAND(D|Q)Z128rmk(z?)$")>; -def SPRWriteResGroup390 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup390 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 16; let NumMicroOps = 3; @@ -3747,7 +3747,7 @@ def : InstRW<[SPRWriteResGroup390, ReadAfterVecXLd], (instregex "^VF(C?)MADDCSHZ "^VF(C?)MULCPHZ128rm(b?)$", "^VF(C?)MULCSHZrm$", "^VRNDSCALEPHZ128rm(b?)i$", - "^VRNDSCALESHZm((_Int)?)$", + "^VRNDSCALESHZrmi((_Int)?)$", "^VSCALEFPHZ128rm(b?)$")>; def : InstRW<[SPRWriteResGroup390, ReadAfterVecYLd], (instregex "^VF(C?)MULCPHZ256rm(b?)$", "^VRNDSCALEP(D|H|S)Z256rm(b?)i$", @@ -3755,7 +3755,7 @@ def : InstRW<[SPRWriteResGroup390, ReadAfterVecYLd], (instregex "^VF(C?)MULCPHZ2 "^VSCALEFPHZ256rm(b?)$")>; def : InstRW<[SPRWriteResGroup390, ReadAfterVecLd], (instrs VSCALEFSHZrm)>; -def SPRWriteResGroup391 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup391 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 21; let NumMicroOps = 3; @@ -3779,9 +3779,9 @@ def : InstRW<[SPRWriteResGroup392], (instregex "^VF(C?)MADDCPHZ(128|256)r$", "^VF(C?)MULCPHZ(128|256)rr$", "^VF(C?)MULCSHZrr(b?)$", "^VRNDSCALEPHZ(128|256)rri$", - "^VRNDSCALESHZr(b?)_Int$", + "^VRNDSCALESHZrri(b?)_Int$", "^VSCALEFPHZ(128|256)rr$")>; -def : InstRW<[SPRWriteResGroup392], (instrs VRNDSCALESHZr, +def : InstRW<[SPRWriteResGroup392], (instrs VRNDSCALESHZrri, VSCALEFSHZrr, VSCALEFSHZrrb_Int)>; @@ -3797,7 +3797,7 @@ def : InstRW<[SPRWriteResGroup393], (instregex "^VF(C?)MADDCPHZ(128|256)rk(z?)$" "^VF(C?)MULCSHZrr(bk|kz)$", "^VF(C?)MULCSHZrr(k|bkz)$")>; -def SPRWriteResGroup394 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup394 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 16; let NumMicroOps = 3; @@ -3808,7 +3808,7 @@ def : InstRW<[SPRWriteResGroup394, ReadAfterVecYLd], (instregex "^VF(C?)MULCPHZr "^VRNDSCALEP(D|S)Zrm(b?)ik(z?)$", "^VSCALEFPHZrm(b?)$")>; -def SPRWriteResGroup395 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup395 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 21; let NumMicroOps = 3; @@ -3838,7 +3838,7 @@ def : InstRW<[SPRWriteResGroup397], (instregex "^VF(C?)MADDCPHZr(bk|kz)$", "^VF(C?)MULCPHZrr(bk|kz)$", "^VF(C?)MULCPHZrr(k|bkz)$")>; -def SPRWriteResGroup398 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup398 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 1, 2, 4]; let Latency = 29; let NumMicroOps = 8; @@ -3848,7 +3848,7 @@ def : InstRW<[SPRWriteResGroup398, WriteVecMaskedGatherWriteback], (instregex "^ def : InstRW<[SPRWriteResGroup398, WriteVecMaskedGatherWriteback], (instrs VGATHERQPSYrm, VPGATHERQDYrm)>; -def SPRWriteResGroup399 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup399 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 20; let NumMicroOps = 4; @@ -3858,7 +3858,7 @@ def : InstRW<[SPRWriteResGroup399, WriteVecMaskedGatherWriteback], (instregex "^ def : InstRW<[SPRWriteResGroup399, WriteVecMaskedGatherWriteback], (instrs VGATHERQPSZ128rm, VPGATHERQDZ128rm)>; -def SPRWriteResGroup400 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup400 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 2, 4]; let Latency = 28; let NumMicroOps = 7; @@ -3868,7 +3868,7 @@ def : InstRW<[SPRWriteResGroup400, WriteVecMaskedGatherWriteback], (instregex "^ def : InstRW<[SPRWriteResGroup400, WriteVecMaskedGatherWriteback], (instrs VGATHERQPSZ256rm, VPGATHERQDZ256rm)>; -def SPRWriteResGroup401 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup401 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 8, 2]; let Latency = 28; let NumMicroOps = 11; @@ -3878,7 +3878,7 @@ def : InstRW<[SPRWriteResGroup401, WriteVecMaskedGatherWriteback], (instregex "^ def : InstRW<[SPRWriteResGroup401, WriteVecMaskedGatherWriteback], (instrs VGATHERQPSZrm, VPGATHERQDZrm)>; -def SPRWriteResGroup402 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup402 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 1, 1, 2]; let Latency = 20; let NumMicroOps = 5; @@ -3888,7 +3888,7 @@ def : InstRW<[SPRWriteResGroup402, WriteVecMaskedGatherWriteback], (instregex "^ def : InstRW<[SPRWriteResGroup402, WriteVecMaskedGatherWriteback], (instrs VGATHERQPSrm, VPGATHERQDrm)>; -def SPRWriteResGroup403 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup403 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 1, 2, 8]; let Latency = 30; let NumMicroOps = 12; @@ -3896,7 +3896,7 @@ def SPRWriteResGroup403 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_0 def : InstRW<[SPRWriteResGroup403, WriteVecMaskedGatherWriteback], (instrs VGATHERDPSYrm, VPGATHERDDYrm)>; -def SPRWriteResGroup404 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup404 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 2, 4]; let Latency = 27; let NumMicroOps = 7; @@ -3904,7 +3904,7 @@ def SPRWriteResGroup404 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_1 def : InstRW<[SPRWriteResGroup404, WriteVecMaskedGatherWriteback], (instrs VGATHERDPSZ128rm, VPGATHERDDZ128rm)>; -def SPRWriteResGroup405 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup405 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 2, 8]; let Latency = 29; let NumMicroOps = 11; @@ -3912,7 +3912,7 @@ def SPRWriteResGroup405 : SchedWriteRes<[SPRPort00, SPRPort01_05, SPRPort02_03_1 def : InstRW<[SPRWriteResGroup405, WriteVecMaskedGatherWriteback], (instrs VGATHERDPSZ256rm, VPGATHERDDZ256rm)>; -def SPRWriteResGroup406 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup406 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 16, 2]; let Latency = 30; let NumMicroOps = 19; @@ -3920,7 +3920,7 @@ def SPRWriteResGroup406 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> def : InstRW<[SPRWriteResGroup406, WriteVecMaskedGatherWriteback], (instrs VGATHERDPSZrm, VPGATHERDDZrm)>; -def SPRWriteResGroup407 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup407 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 1, 2, 4]; let Latency = 28; let NumMicroOps = 8; @@ -3928,7 +3928,7 @@ def SPRWriteResGroup407 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort01_0 def : InstRW<[SPRWriteResGroup407, WriteVecMaskedGatherWriteback], (instrs VGATHERDPSrm, VPGATHERDDrm)>; -def SPRWriteResGroup408 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup408 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let Latency = 15; let NumMicroOps = 2; } @@ -3949,7 +3949,7 @@ def SPRWriteResGroup410 : SchedWriteRes<[SPRPort00_01]> { def : InstRW<[SPRWriteResGroup410], (instregex "^VGF2P8AFFINE((INV)?)QBZ(128|256)rrikz$", "^VGF2P8MULBZ(128|256)rrkz$")>; -def SPRWriteResGroup411 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup411 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 15; let NumMicroOps = 2; } @@ -3975,20 +3975,20 @@ def SPRWriteResGroup414 : SchedWriteRes<[SPRPort01_05, SPRPort05]> { } def : InstRW<[SPRWriteResGroup414], (instregex "^VH(ADD|SUB)P(D|S)rr$")>; -def SPRWriteResGroup415 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort02_03_11]> { +def SPRWriteResGroup415 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort02_03_10]> { let Latency = 7; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup415], (instrs VLDMXCSR)>; -def SPRWriteResGroup416 : SchedWriteRes<[SPRPort01, SPRPort01_05, SPRPort02_03, SPRPort02_03_11, SPRPort04, SPRPort04_09, SPRPort05, SPRPort06]> { +def SPRWriteResGroup416 : SchedWriteRes<[SPRPort01, SPRPort01_05, SPRPort02_03, SPRPort02_03_10, SPRPort04, SPRPort04_09, SPRPort05, SPRPort06]> { let ReleaseAtCycles = [1, 1, 1, 8, 1, 1, 2, 3]; let Latency = 40; let NumMicroOps = 18; } def : InstRW<[SPRWriteResGroup416], (instrs VMCLEARm)>; -def SPRWriteResGroup417 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup417 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10]> { let Latency = 11; let NumMicroOps = 2; } @@ -4008,7 +4008,7 @@ def : InstRW<[SPRWriteResGroup418], (instregex "^VMOVDQU(8|16)Z(128|256)rrk(z?)( "^VPBLENDM(B|W)Z(128|256)rrk(z?)$", "^VPMOVM2(B|W)Z(128|256)rk$")>; -def SPRWriteResGroup419 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup419 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [1, 2, 2]; let Latency = 12; let NumMicroOps = 5; @@ -4082,7 +4082,7 @@ def SPRWriteResGroup430 : SchedWriteRes<[SPRPort04_09, SPRPort07_08]> { } def : InstRW<[SPRWriteResGroup430], (instrs VMOVNTPSZmr)>; -def SPRWriteResGroup431 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup431 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [3, 1, 8]; let Latency = 10; let NumMicroOps = 12; @@ -4098,7 +4098,7 @@ def SPRWriteResGroup432 : SchedWriteRes<[SPRPort00_01_05, SPRPort05]> { def : InstRW<[SPRWriteResGroup432], (instrs VP2INTERSECTDZ128rr, VP2INTERSECTQZ256rr)>; -def SPRWriteResGroup433 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup433 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05, SPRPort01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 8, 7, 2, 1, 11]; let Latency = 27; let NumMicroOps = 30; @@ -4112,7 +4112,7 @@ def SPRWriteResGroup434 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_0 } def : InstRW<[SPRWriteResGroup434], (instrs VP2INTERSECTDZ256rr)>; -def SPRWriteResGroup435 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup435 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [13, 9, 1, 23]; let Latency = 40; let NumMicroOps = 46; @@ -4126,7 +4126,7 @@ def SPRWriteResGroup436 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort05]> { } def : InstRW<[SPRWriteResGroup436], (instrs VP2INTERSECTDZrr)>; -def SPRWriteResGroup437 : SchedWriteRes<[SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup437 : SchedWriteRes<[SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 4]; let Latency = 6; let NumMicroOps = 5; @@ -4140,7 +4140,7 @@ def SPRWriteResGroup438 : SchedWriteRes<[SPRPort05]> { } def : InstRW<[SPRWriteResGroup438], (instrs VP2INTERSECTQZ128rr)>; -def SPRWriteResGroup439 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup439 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [8, 7, 1, 14]; let Latency = 29; let NumMicroOps = 30; @@ -4169,7 +4169,7 @@ def : InstRW<[SPRWriteResGroup441], (instregex "^VP(A|SU)BS(B|W)Z(128|256)rrk(z? "^VPSRAWZ(128|256)rik(z?)$", "^VPSUBUS(B|W)Z(128|256)rrk(z?)$")>; -def SPRWriteResGroup442 : SchedWriteRes<[SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup442 : SchedWriteRes<[SPRPort01_05, SPRPort02_03_10]> { let Latency = 9; let NumMicroOps = 2; } @@ -4206,21 +4206,21 @@ def SPRWriteResGroup445 : SchedWriteRes<[SPRPort00, SPRPort00_06, SPRPort04_09, def : InstRW<[SPRWriteResGroup445], (instregex "^VPCOMPRESS(B|W)Z(128|256)mrk$")>; def : InstRW<[SPRWriteResGroup445], (instrs VPCOMPRESSWZmrk)>; -def SPRWriteResGroup446 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup446 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [1, 1, 2, 2, 2]; let Latency = 12; let NumMicroOps = 8; } def : InstRW<[SPRWriteResGroup446], (instrs VPCOMPRESSBZmr)>; -def SPRWriteResGroup447 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup447 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [1, 1, 2, 2, 2]; let Latency = 14; let NumMicroOps = 8; } def : InstRW<[SPRWriteResGroup447], (instrs VPCOMPRESSBZmrk)>; -def SPRWriteResGroup448 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup448 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [5, 4, 1, 5]; let Latency = 17; let NumMicroOps = 15; @@ -4235,7 +4235,7 @@ def SPRWriteResGroup449 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup449], (instregex "^VPCONFLICTDZ128rr((k|kz)?)$")>; -def SPRWriteResGroup450 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup450 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [7, 5, 1, 1, 9]; let Latency = 24; let NumMicroOps = 23; @@ -4250,7 +4250,7 @@ def SPRWriteResGroup451 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup451], (instregex "^VPCONFLICTDZ256rr((k|kz)?)$")>; -def SPRWriteResGroup452 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup452 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [11, 8, 1, 17]; let Latency = 33; let NumMicroOps = 37; @@ -4272,7 +4272,7 @@ def SPRWriteResGroup454 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort05]> { } def : InstRW<[SPRWriteResGroup454], (instrs VPCONFLICTDZrrk)>; -def SPRWriteResGroup455 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup455 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 11; let NumMicroOps = 4; @@ -4288,7 +4288,7 @@ def SPRWriteResGroup456 : SchedWriteRes<[SPRPort00_01_05, SPRPort05]> { } def : InstRW<[SPRWriteResGroup456], (instregex "^VPCONFLICTQZ128rr((k|kz)?)$")>; -def SPRWriteResGroup457 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup457 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [5, 4, 1, 5]; let Latency = 20; let NumMicroOps = 15; @@ -4303,7 +4303,7 @@ def SPRWriteResGroup458 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort0 } def : InstRW<[SPRWriteResGroup458], (instregex "^VPCONFLICTQZ256rr((k|kz)?)$")>; -def SPRWriteResGroup459 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup459 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [7, 5, 1, 9]; let Latency = 23; let NumMicroOps = 22; @@ -4325,7 +4325,7 @@ def SPRWriteResGroup461 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort05]> { } def : InstRW<[SPRWriteResGroup461], (instrs VPCONFLICTQZrrk)>; -def SPRWriteResGroup462 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup462 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 13; let NumMicroOps = 4; @@ -4348,14 +4348,14 @@ def SPRWriteResGroup464 : SchedWriteRes<[SPRPort00_01_05, SPRPort05]> { def : InstRW<[SPRWriteResGroup464], (instregex "^VPERM(I|T)2BZ(128|256)rrk(z?)$", "^VPERM(I|T)2WZ(128|256)rr$")>; -def SPRWriteResGroup465 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup465 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 12; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup465, ReadAfterVecYLd], (instregex "^VPERM(I|T)2BZ256rm$")>; -def SPRWriteResGroup466 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup466 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 14; let NumMicroOps = 4; @@ -4364,14 +4364,14 @@ def : InstRW<[SPRWriteResGroup466, ReadAfterVecYLd], (instregex "^VPERM(I|T)2BZ2 def : InstRW<[SPRWriteResGroup466, ReadAfterVecYLd], (instrs VPERMI2WZ128rm, VPERMT2WZ256rm)>; -def SPRWriteResGroup467 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup467 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 12; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup467, ReadAfterVecYLd], (instregex "^VPERM(I|T)2BZrm$")>; -def SPRWriteResGroup468 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup468 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 14; let NumMicroOps = 4; @@ -4394,7 +4394,7 @@ def SPRWriteResGroup470 : SchedWriteRes<[SPRPort00_05, SPRPort05]> { def : InstRW<[SPRWriteResGroup470], (instregex "^VPERM(I|T)2BZrrk(z?)$", "^VPERM(I|T)2WZrr$")>; -def SPRWriteResGroup471 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup471 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 16; let NumMicroOps = 4; @@ -4409,7 +4409,7 @@ def SPRWriteResGroup472 : SchedWriteRes<[SPRPort00_01_05, SPRPort05]> { } def : InstRW<[SPRWriteResGroup472], (instregex "^VPERM(I|T)2WZ(128|256)rrk(z?)$")>; -def SPRWriteResGroup473 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup473 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 15; let NumMicroOps = 4; @@ -4417,21 +4417,21 @@ def SPRWriteResGroup473 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPo def : InstRW<[SPRWriteResGroup473, ReadAfterVecYLd], (instregex "^VPERMT2WZ128rmk(z?)$")>; def : InstRW<[SPRWriteResGroup473, ReadAfterVecYLd], (instrs VPERMI2WZ256rm)>; -def SPRWriteResGroup474 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup474 : SchedWriteRes<[SPRPort00_01_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 17; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup474, ReadAfterVecYLd], (instregex "^VPERMI2WZ256rmk(z?)$")>; -def SPRWriteResGroup475 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup475 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 15; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup475, ReadAfterVecYLd], (instrs VPERMI2WZrm)>; -def SPRWriteResGroup476 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup476 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 17; let NumMicroOps = 4; @@ -4445,20 +4445,20 @@ def SPRWriteResGroup477 : SchedWriteRes<[SPRPort00_05, SPRPort05]> { } def : InstRW<[SPRWriteResGroup477], (instregex "^VPERM(I|T)2WZrrk(z?)$")>; -def SPRWriteResGroup478 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup478 : SchedWriteRes<[SPRPort00_05, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [1, 1, 2]; let Latency = 16; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup478, ReadAfterVecYLd], (instregex "^VPERMT2WZrmk(z?)$")>; -def SPRWriteResGroup479 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup479 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 10; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup479, ReadAfterVecYLd], (instrs VPERMWZ128rm)>; -def SPRWriteResGroup480 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup480 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 13; let NumMicroOps = 3; } @@ -4470,13 +4470,13 @@ def SPRWriteResGroup481 : SchedWriteRes<[SPRPort00_01, SPRPort05]> { } def : InstRW<[SPRWriteResGroup481], (instregex "^VPERMWZ(128|256)rr$")>; -def SPRWriteResGroup482 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup482 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10, SPRPort05]> { let Latency = 11; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup482, ReadAfterVecYLd], (instrs VPERMWZ256rm)>; -def SPRWriteResGroup483 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup483 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 11; let NumMicroOps = 3; } @@ -4490,7 +4490,7 @@ def SPRWriteResGroup484 : SchedWriteRes<[SPRPort05]> { def : InstRW<[SPRWriteResGroup484], (instregex "^VPEXPAND(B|W)Z(128|256)rrk(z?)$", "^VPEXPAND(B|W)Zrrk(z?)$")>; -def SPRWriteResGroup485 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_11]> { +def SPRWriteResGroup485 : SchedWriteRes<[SPRPort00_01, SPRPort01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [1, 2, 1]; let Latency = 10; let NumMicroOps = 4; @@ -4504,7 +4504,7 @@ def : InstRW<[SPRWriteResGroup486], (instregex "^VPMADDUBSWZ(128|256)rrk(z?)$", "^VPMULH((U|RS)?)WZ(128|256)rrk(z?)$", "^VPMULLWZ(128|256)rrk(z?)$")>; -def SPRWriteResGroup487 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup487 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 14; let NumMicroOps = 2; } @@ -4595,7 +4595,7 @@ def SPRWriteResGroup496 : SchedWriteRes<[SPRPort04_09, SPRPort05, SPRPort07_08]> } def : InstRW<[SPRWriteResGroup496], (instregex "^VPMOVQDZ((256)?)mrk$")>; -def SPRWriteResGroup497 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup497 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 23; let NumMicroOps = 4; @@ -4612,7 +4612,7 @@ def SPRWriteResGroup498 : SchedWriteRes<[SPRPort00_01]> { } def : InstRW<[SPRWriteResGroup498], (instregex "^VPMULLQZ(128|256)rr((k|kz)?)$")>; -def SPRWriteResGroup499 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup499 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 23; let NumMicroOps = 4; @@ -4627,7 +4627,7 @@ def SPRWriteResGroup500 : SchedWriteRes<[SPRPort00]> { } def : InstRW<[SPRWriteResGroup500], (instregex "^VPMULLQZrr((k|kz)?)$")>; -def SPRWriteResGroup501 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup501 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [1, 1, 1, 4, 4]; let Latency = 12; let NumMicroOps = 11; @@ -4639,7 +4639,7 @@ def : InstRW<[SPRWriteResGroup501], (instrs VPSCATTERDDZ128mr, VSCATTERDPSZ128mr, VSCATTERQPSZ256mr)>; -def SPRWriteResGroup502 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup502 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [1, 1, 1, 8, 8]; let Latency = 12; let NumMicroOps = 19; @@ -4647,7 +4647,7 @@ def SPRWriteResGroup502 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_0 def : InstRW<[SPRWriteResGroup502], (instrs VPSCATTERDDZ256mr, VSCATTERDPSZ256mr)>; -def SPRWriteResGroup503 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup503 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [2, 1, 16, 16]; let Latency = 19; let NumMicroOps = 35; @@ -4655,7 +4655,7 @@ def SPRWriteResGroup503 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPo def : InstRW<[SPRWriteResGroup503], (instrs VPSCATTERDDZmr, VSCATTERDPSZmr)>; -def SPRWriteResGroup504 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup504 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [1, 1, 1, 2, 2]; let Latency = 12; let NumMicroOps = 7; @@ -4665,7 +4665,7 @@ def : InstRW<[SPRWriteResGroup504], (instregex "^VPSCATTER(D|Q)QZ128mr$", def : InstRW<[SPRWriteResGroup504], (instrs VPSCATTERQDZ128mr, VSCATTERQPSZ128mr)>; -def SPRWriteResGroup505 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_10, SPRPort04_09, SPRPort07_08]> { +def SPRWriteResGroup505 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06_11, SPRPort04_09, SPRPort07_08]> { let ReleaseAtCycles = [2, 1, 8, 8]; let Latency = 12; let NumMicroOps = 19; @@ -4675,7 +4675,7 @@ def : InstRW<[SPRWriteResGroup505], (instregex "^VPSCATTER(D|Q)QZmr$", def : InstRW<[SPRWriteResGroup505], (instrs VPSCATTERQDZmr, VSCATTERQPSZmr)>; -def SPRWriteResGroup506 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup506 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let Latency = 8; let NumMicroOps = 2; } @@ -4685,7 +4685,7 @@ def : InstRW<[SPRWriteResGroup506, ReadAfterVecXLd], (instregex "^VPSH(L|R)D(D|Q "^VPSH(L|R)DV(D|Q)Z128m(b|k|kz)$", "^VPSH(L|R)DV(D|Q)Z128mbk(z?)$")>; -def SPRWriteResGroup507 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup507 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_10]> { let Latency = 9; let NumMicroOps = 3; } @@ -4702,7 +4702,7 @@ def SPRWriteResGroup509 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05]> { } def : InstRW<[SPRWriteResGroup509], (instregex "^VPSH(L|R)D(D|Q)Z(128|256)rrik(z?)$")>; -def SPRWriteResGroup510 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup510 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let Latency = 9; let NumMicroOps = 2; } @@ -4712,13 +4712,13 @@ def : InstRW<[SPRWriteResGroup510, ReadAfterVecYLd], (instregex "^VPSH(L|R)D(D|Q "^VPSH(L|R)DV(D|Q)Z256m(b|k|kz)$", "^VPSH(L|R)DV(D|Q)Z256mbk(z?)$")>; -def SPRWriteResGroup511 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup511 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_10]> { let Latency = 10; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup511, ReadAfterVecYLd], (instregex "^VPSH(L|R)D(D|Q)Z256rm(b?)ik(z?)$")>; -def SPRWriteResGroup512 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup512 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 9; let NumMicroOps = 2; } @@ -4728,7 +4728,7 @@ def : InstRW<[SPRWriteResGroup512, ReadAfterVecYLd], (instregex "^VPSH(L|R)D(D|Q "^VPSH(L|R)DV(D|Q)Zm(b|k|kz)$", "^VPSH(L|R)DV(D|Q)Zmbk(z?)$")>; -def SPRWriteResGroup513 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11]> { +def SPRWriteResGroup513 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10]> { let Latency = 10; let NumMicroOps = 3; } @@ -4740,7 +4740,7 @@ def SPRWriteResGroup514 : SchedWriteRes<[SPRPort00, SPRPort00_05]> { } def : InstRW<[SPRWriteResGroup514], (instregex "^VPSH(L|R)D(D|Q)Zrrik(z?)$")>; -def SPRWriteResGroup515 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup515 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_10]> { let Latency = 11; let NumMicroOps = 3; } @@ -4752,13 +4752,13 @@ def SPRWriteResGroup516 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05]> { } def : InstRW<[SPRWriteResGroup516], (instregex "^VPSH(L|R)DWZ(128|256)rrik(z?)$")>; -def SPRWriteResGroup517 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup517 : SchedWriteRes<[SPRPort00_01, SPRPort00_01_05, SPRPort02_03_10]> { let Latency = 12; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup517, ReadAfterVecYLd], (instregex "^VPSH(L|R)DWZ256rmik(z?)$")>; -def SPRWriteResGroup518 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11]> { +def SPRWriteResGroup518 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10]> { let Latency = 12; let NumMicroOps = 3; } @@ -4770,14 +4770,14 @@ def SPRWriteResGroup519 : SchedWriteRes<[SPRPort00, SPRPort00_05]> { } def : InstRW<[SPRWriteResGroup519], (instregex "^VPSH(L|R)DWZrrik(z?)$")>; -def SPRWriteResGroup520 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup520 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 6; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup520, ReadAfterVecXLd], (instrs VPSHUFBITQMBZ128rm)>; def : InstRW<[SPRWriteResGroup520, ReadAfterVecYLd], (instregex "^VPSHUFBITQMBZ((256)?)rm$")>; -def SPRWriteResGroup521 : SchedWriteRes<[SPRPort00, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup521 : SchedWriteRes<[SPRPort00, SPRPort02_03_10, SPRPort05]> { let Latency = 8; let NumMicroOps = 3; } @@ -4791,7 +4791,7 @@ def SPRWriteResGroup522 : SchedWriteRes<[SPRPort00_01, SPRPort01_05]> { def : InstRW<[SPRWriteResGroup522], (instregex "^VPS(L|R)LWZ128rrk(z?)$", "^VPSRAWZ128rrk(z?)$")>; -def SPRWriteResGroup523 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11]> { +def SPRWriteResGroup523 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 16; let NumMicroOps = 4; @@ -4806,7 +4806,7 @@ def SPRWriteResGroup524 : SchedWriteRes<[SPRPort00, SPRPort00_05]> { } def : InstRW<[SPRWriteResGroup524], (instregex "^VRCPPHZrk(z?)$")>; -def SPRWriteResGroup525 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup525 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 20; let NumMicroOps = 4; @@ -4815,7 +4815,7 @@ def : InstRW<[SPRWriteResGroup525, ReadAfterVecXLd], (instregex "^VREDUCEPHZ128r def : InstRW<[SPRWriteResGroup525, ReadAfterVecXLd], (instrs VREDUCESHZrmi)>; def : InstRW<[SPRWriteResGroup525, ReadAfterVecYLd], (instregex "^VREDUCEPHZ256rm(b?)i$")>; -def SPRWriteResGroup526 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup526 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 22; let NumMicroOps = 4; @@ -4841,14 +4841,14 @@ def : InstRW<[SPRWriteResGroup528], (instregex "^VREDUCEPHZ(128|256)rrik(z?)$", "^VREDUCESHZrri(bk|kz)$", "^VREDUCESHZrri(k|bkz)$")>; -def SPRWriteResGroup529 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup529 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 20; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup529, ReadAfterVecYLd], (instregex "^VREDUCEPHZrm(b?)i$")>; -def SPRWriteResGroup530 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup530 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let ReleaseAtCycles = [3, 1]; let Latency = 22; let NumMicroOps = 4; @@ -4878,13 +4878,13 @@ def SPRWriteResGroup533 : SchedWriteRes<[SPRPort00]> { def : InstRW<[SPRWriteResGroup533], (instregex "^VRNDSCALEP(D|S)Zrri((b|k|bk|kz)?)$", "^VRNDSCALEP(D|S)Zrribkz$")>; -def SPRWriteResGroup534 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_11]> { +def SPRWriteResGroup534 : SchedWriteRes<[SPRPort00_01, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 17; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup534, ReadAfterVecXLd], (instregex "^VRNDSCALEPHZ128rm(b?)ik(z?)$", - "^VRNDSCALESHZm_Intk(z?)$", + "^VRNDSCALESHZrmi_Intk(z?)$", "^VSCALEFPHZ128rm(bk|kz)$", "^VSCALEFPHZ128rm(k|bkz)$")>; def : InstRW<[SPRWriteResGroup534, ReadAfterVecYLd], (instregex "^VRNDSCALEPHZ256rm(b?)ik(z?)$", @@ -4898,12 +4898,12 @@ def SPRWriteResGroup535 : SchedWriteRes<[SPRPort00_01]> { let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup535], (instregex "^VRNDSCALEPHZ(128|256)rrik(z?)$", - "^VRNDSCALESHZr(b?)_Intk(z?)$", + "^VRNDSCALESHZrri(b?)_Intk(z?)$", "^VSCALEFPHZ(128|256)rrk(z?)$", "^VSCALEFSHZrrb_Intk(z?)$", "^VSCALEFSHZrrk(z?)$")>; -def SPRWriteResGroup536 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup536 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 17; let NumMicroOps = 3; @@ -4931,14 +4931,14 @@ def : InstRW<[SPRWriteResGroup538], (instregex "^VRSQRT14P(D|S)Zr$")>; def : InstRW<[SPRWriteResGroup538], (instrs VRSQRT14PSZrk, VRSQRTPHZr)>; -def SPRWriteResGroup539 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup539 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 25; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup539], (instrs VSQRTPDYm)>; def : InstRW<[SPRWriteResGroup539, ReadAfterVecYLd], (instregex "^VSQRTPDZ256m(b?)$")>; -def SPRWriteResGroup540 : SchedWriteRes<[SPRPort00, SPRPort02_03_11]> { +def SPRWriteResGroup540 : SchedWriteRes<[SPRPort00, SPRPort02_03_10]> { let Latency = 20; let NumMicroOps = 2; } @@ -4946,14 +4946,14 @@ def : InstRW<[SPRWriteResGroup540, ReadAfterVecXLd], (instregex "^VSQRTPDZ128m(b "^VSQRTPDZ128m(k|bkz)$")>; def : InstRW<[SPRWriteResGroup540, ReadAfterVecLd], (instregex "^VSQRTSDZm_Intk(z?)$")>; -def SPRWriteResGroup541 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11]> { +def SPRWriteResGroup541 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 38; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup541, ReadAfterVecYLd], (instrs VSQRTPDZm)>; -def SPRWriteResGroup542 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_11]> { +def SPRWriteResGroup542 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 39; let NumMicroOps = 4; @@ -4967,7 +4967,7 @@ def SPRWriteResGroup543 : SchedWriteRes<[SPRPort00, SPRPort00_05]> { } def : InstRW<[SPRWriteResGroup543], (instrs VSQRTPDZr)>; -def SPRWriteResGroup544 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup544 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 41; let NumMicroOps = 4; @@ -4990,14 +4990,14 @@ def SPRWriteResGroup546 : SchedWriteRes<[SPRPort00, SPRPort00_01_05]> { } def : InstRW<[SPRWriteResGroup546], (instrs VSQRTPHZ128rkz)>; -def SPRWriteResGroup547 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup547 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 40; let NumMicroOps = 4; } def : InstRW<[SPRWriteResGroup547, ReadAfterVecYLd], (instregex "^VSQRTPHZ256m(b?)$")>; -def SPRWriteResGroup548 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_11]> { +def SPRWriteResGroup548 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1, 1]; let Latency = 42; let NumMicroOps = 4; @@ -5005,14 +5005,14 @@ def SPRWriteResGroup548 : SchedWriteRes<[SPRPort00, SPRPort00_01_05, SPRPort02_0 def : InstRW<[SPRWriteResGroup548, ReadAfterVecYLd], (instregex "^VSQRTPHZ256m(bk|kz)$", "^VSQRTPHZ256m(k|bkz)$")>; -def SPRWriteResGroup549 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup549 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [4, 2, 1, 1, 1]; let Latency = 53; let NumMicroOps = 9; } def : InstRW<[SPRWriteResGroup549, ReadAfterVecYLd], (instregex "^VSQRTPHZm(b?)$")>; -def SPRWriteResGroup550 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03_11, SPRPort05]> { +def SPRWriteResGroup550 : SchedWriteRes<[SPRPort00, SPRPort00_05, SPRPort00_06, SPRPort02_03_10, SPRPort05]> { let ReleaseAtCycles = [4, 2, 1, 1, 1]; let Latency = 55; let NumMicroOps = 9; @@ -5042,7 +5042,7 @@ def SPRWriteResGroup553 : SchedWriteRes<[SPRPort00, SPRPort00_05]> { } def : InstRW<[SPRWriteResGroup553], (instrs VSQRTPSZr)>; -def SPRWriteResGroup554 : SchedWriteRes<[SPRPort00_01_05, SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort01_05_10]> { +def SPRWriteResGroup554 : SchedWriteRes<[SPRPort00_01_05, SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort01_05_11]> { let ReleaseAtCycles = [1, 2, 3, 3, 1]; let Latency = 12; let NumMicroOps = 10; @@ -5063,42 +5063,42 @@ def SPRWriteResGroup556 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_05, } def : InstRW<[SPRWriteResGroup556], (instrs WRMSR)>; -def SPRWriteResGroup557 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06, SPRPort01, SPRPort05]> { +def SPRWriteResGroup557 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06, SPRPort01, SPRPort05]> { let ReleaseAtCycles = [2, 1, 4, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 8; } def : InstRW<[SPRWriteResGroup557], (instrs WRPKRUr)>; -def SPRWriteResGroup558 : SchedWriteRes<[SPRPort00_01_05_06_10]> { +def SPRWriteResGroup558 : SchedWriteRes<[SPRPort00_01_05_06_11]> { let ReleaseAtCycles = [2]; let Latency = 12; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup558, WriteRMW], (instregex "^XADD(16|32|64)rm$")>; -def SPRWriteResGroup559 : SchedWriteRes<[SPRPort00_01_05_06_10]> { +def SPRWriteResGroup559 : SchedWriteRes<[SPRPort00_01_05_06_11]> { let ReleaseAtCycles = [2]; let Latency = 13; let NumMicroOps = 2; } def : InstRW<[SPRWriteResGroup559, WriteRMW], (instrs XADD8rm)>; -def SPRWriteResGroup560 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06]> { +def SPRWriteResGroup560 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06]> { let ReleaseAtCycles = [4, 1]; let Latency = 39; let NumMicroOps = 5; } def : InstRW<[SPRWriteResGroup560, WriteRMW], (instregex "^XCHG(16|32)rm$")>; -def SPRWriteResGroup561 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06]> { +def SPRWriteResGroup561 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06]> { let ReleaseAtCycles = [5, 1]; let Latency = 39; let NumMicroOps = 6; } def : InstRW<[SPRWriteResGroup561, WriteRMW], (instrs XCHG64rm)>; -def SPRWriteResGroup562 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06]> { +def SPRWriteResGroup562 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06]> { let ReleaseAtCycles = [4, 1]; let Latency = 40; let NumMicroOps = 5; @@ -5112,21 +5112,21 @@ def SPRWriteResGroup563 : SchedWriteRes<[SPRPort00, SPRPort00_01_05_06, SPRPort0 } def : InstRW<[SPRWriteResGroup563], (instrs XCH_F)>; -def SPRWriteResGroup564 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_05_06, SPRPort00_06, SPRPort01]> { +def SPRWriteResGroup564 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_05_06, SPRPort00_06, SPRPort01]> { let ReleaseAtCycles = [7, 3, 8, 5]; let Latency = 4; let NumMicroOps = 23; } def : InstRW<[SPRWriteResGroup564], (instrs XGETBV)>; -def SPRWriteResGroup565 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort02_03_11]> { +def SPRWriteResGroup565 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort02_03_10]> { let ReleaseAtCycles = [2, 1]; let Latency = 7; let NumMicroOps = 3; } def : InstRW<[SPRWriteResGroup565], (instrs XLAT)>; -def SPRWriteResGroup566 : SchedWriteRes<[SPRPort01, SPRPort02_03, SPRPort02_03_11, SPRPort06]> { +def SPRWriteResGroup566 : SchedWriteRes<[SPRPort01, SPRPort02_03, SPRPort02_03_10, SPRPort06]> { let ReleaseAtCycles = [1, 21, 1, 8]; let Latency = 37; let NumMicroOps = 31; @@ -5134,70 +5134,70 @@ def SPRWriteResGroup566 : SchedWriteRes<[SPRPort01, SPRPort02_03, SPRPort02_03_1 def : InstRW<[SPRWriteResGroup566], (instregex "^XRSTOR((S|64)?)$")>; def : InstRW<[SPRWriteResGroup566], (instrs XRSTORS64)>; -def SPRWriteResGroup567 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup567 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [14, 25, 44, 21, 21, 4, 1, 9, 1]; let Latency = 42; let NumMicroOps = 140; } def : InstRW<[SPRWriteResGroup567], (instrs XSAVE)>; -def SPRWriteResGroup568 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup568 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [14, 25, 44, 21, 21, 4, 1, 9, 1]; let Latency = 41; let NumMicroOps = 140; } def : InstRW<[SPRWriteResGroup568], (instrs XSAVE64)>; -def SPRWriteResGroup569 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup569 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [1, 19, 36, 52, 23, 4, 2, 12, 2]; let Latency = 42; let NumMicroOps = 151; } def : InstRW<[SPRWriteResGroup569], (instrs XSAVEC)>; -def SPRWriteResGroup570 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup570 : SchedWriteRes<[SPRPort00, SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [1, 19, 36, 53, 23, 4, 2, 12, 2]; let Latency = 42; let NumMicroOps = 152; } def : InstRW<[SPRWriteResGroup570], (instrs XSAVEC64)>; -def SPRWriteResGroup571 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup571 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [25, 35, 52, 27, 4, 1, 10, 1]; let Latency = 42; let NumMicroOps = 155; } def : InstRW<[SPRWriteResGroup571], (instrs XSAVEOPT)>; -def SPRWriteResGroup572 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup572 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [25, 35, 53, 27, 4, 1, 10, 1]; let Latency = 42; let NumMicroOps = 156; } def : InstRW<[SPRWriteResGroup572], (instrs XSAVEOPT64)>; -def SPRWriteResGroup573 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup573 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [23, 32, 53, 29, 30, 4, 2, 9, 2]; let Latency = 42; let NumMicroOps = 184; } def : InstRW<[SPRWriteResGroup573], (instrs XSAVES)>; -def SPRWriteResGroup574 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_11, SPRPort04_09, SPRPort05, SPRPort07_08]> { +def SPRWriteResGroup574 : SchedWriteRes<[SPRPort00_01, SPRPort00_05, SPRPort00_06, SPRPort01, SPRPort01_05, SPRPort02_03_10, SPRPort04_09, SPRPort05, SPRPort07_08]> { let ReleaseAtCycles = [23, 33, 53, 29, 32, 4, 2, 8, 2]; let Latency = 42; let NumMicroOps = 186; } def : InstRW<[SPRWriteResGroup574], (instrs XSAVES64)>; -def SPRWriteResGroup575 : SchedWriteRes<[SPRPort00_01_05, SPRPort00_01_05_06_10, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05_10, SPRPort05]> { +def SPRWriteResGroup575 : SchedWriteRes<[SPRPort00_01_05, SPRPort00_01_05_06_11, SPRPort00_05_06, SPRPort00_06, SPRPort01, SPRPort01_05_11, SPRPort05]> { let ReleaseAtCycles = [4, 23, 2, 14, 8, 1, 2]; let Latency = 5; let NumMicroOps = 54; } def : InstRW<[SPRWriteResGroup575], (instrs XSETBV)>; -def SPRWriteResGroup576 : SchedWriteRes<[SPRPort00_01_05_06_10, SPRPort00_06]> { +def SPRWriteResGroup576 : SchedWriteRes<[SPRPort00_01_05_06_11, SPRPort00_06]> { let ReleaseAtCycles = [2, 1]; let Latency = SapphireRapidsModel.MaxLatency; let NumMicroOps = 3; diff --git a/llvm/lib/Target/X86/X86ScheduleZnver4.td b/llvm/lib/Target/X86/X86ScheduleZnver4.td index 9625306d716b5..f2d0f4b1a0d28 100644 --- a/llvm/lib/Target/X86/X86ScheduleZnver4.td +++ b/llvm/lib/Target/X86/X86ScheduleZnver4.td @@ -1658,7 +1658,7 @@ def Zn4MOVSZ: SchedWriteRes<[Zn4FPFMisc12]> { let NumMicroOps = 1; } def : InstRW<[Zn4MOVSZ], (instregex - "(V?)PMOV(SX|ZX)(BD|BQ|BW|WD|WQ|DQ)(Z?)(rr|rrk|rrkz)" + "(V?)PMOV(SX|ZX)(BD|BQ|BW|WD|WQ|DQ)Z(rr|rrk|rrkz)" )>; def Zn4MOVSrr: SchedWriteRes<[Zn4FPFMisc12]> { @@ -1667,7 +1667,7 @@ def Zn4MOVSrr: SchedWriteRes<[Zn4FPFMisc12]> { let NumMicroOps = 1; } def : InstRW<[Zn4MOVSrr], (instregex - "(V?)PMOV(DB|QB|QW|SDB|SQB|SQW|USDB|USQB|USQW)(Z?)(rr|rrk|rrkz)" + "(V?)PMOV(DB|QB|QW|SDB|SQB|SQW|USDB|USQB|USQW)Z(rr|rrk|rrkz)" )>; diff --git a/llvm/lib/Target/X86/X86WinEHState.cpp b/llvm/lib/Target/X86/X86WinEHState.cpp index ef21273673011..85485229aaf24 100644 --- a/llvm/lib/Target/X86/X86WinEHState.cpp +++ b/llvm/lib/Target/X86/X86WinEHState.cpp @@ -23,6 +23,7 @@ #include "llvm/IR/Function.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/Instructions.h" +#include "llvm/IR/IntrinsicInst.h" #include "llvm/IR/Intrinsics.h" #include "llvm/IR/IntrinsicsX86.h" #include "llvm/IR/Module.h" @@ -41,7 +42,7 @@ class WinEHStatePass : public FunctionPass { public: static char ID; // Pass identification, replacement for typeid. - WinEHStatePass() : FunctionPass(ID) { } + WinEHStatePass() : FunctionPass(ID) {} bool runOnFunction(Function &Fn) override; @@ -75,6 +76,8 @@ class WinEHStatePass : public FunctionPass { int getStateForCall(DenseMap &BlockColors, WinEHFuncInfo &FuncInfo, CallBase &Call); + void updateEspForInAllocas(Function &F); + // Module-level type getters. Type *getEHLinkRegistrationType(); Type *getSEHRegistrationType(); @@ -100,6 +103,9 @@ class WinEHStatePass : public FunctionPass { /// fs:00 chain and the current state. AllocaInst *RegNode = nullptr; + // Struct type of RegNode. Used for GEPing. + Type *RegNodeTy = nullptr; + // The allocation containing the EH security guard. AllocaInst *EHGuardNode = nullptr; @@ -152,8 +158,7 @@ bool WinEHStatePass::runOnFunction(Function &F) { // Check the personality. Do nothing if this personality doesn't use funclets. if (!F.hasPersonalityFn()) return false; - PersonalityFn = - dyn_cast(F.getPersonalityFn()->stripPointerCasts()); + PersonalityFn = dyn_cast(F.getPersonalityFn()->stripPointerCasts()); if (!PersonalityFn) return false; Personality = classifyEHPersonality(PersonalityFn); @@ -188,11 +193,13 @@ bool WinEHStatePass::runOnFunction(Function &F) { // numbers into an immutable analysis pass. WinEHFuncInfo FuncInfo; addStateStores(F, FuncInfo); + updateEspForInAllocas(F); // Reset per-function state. PersonalityFn = nullptr; Personality = EHPersonality::Unknown; UseStackGuard = false; + RegNodeTy = nullptr; RegNode = nullptr; EHGuardNode = nullptr; @@ -269,9 +276,6 @@ void WinEHStatePass::emitExceptionRegistrationRecord(Function *F) { assert(Personality == EHPersonality::MSVC_CXX || Personality == EHPersonality::MSVC_X86SEH); - // Struct type of RegNode. Used for GEPing. - Type *RegNodeTy; - IRBuilder<> Builder(&F->getEntryBlock(), F->getEntryBlock().begin()); Type *Int8PtrType = Builder.getPtrTy(); Type *Int32Ty = Builder.getInt32Ty(); @@ -387,11 +391,11 @@ Function *WinEHStatePass::generateLSDAInEAXThunk(Function *ParentFunc) { FunctionType *TargetFuncTy = FunctionType::get(Int32Ty, ArrayRef(&ArgTys[0], 5), /*isVarArg=*/false); - Function *Trampoline = - Function::Create(TrampolineTy, GlobalValue::InternalLinkage, - Twine("__ehhandler$") + GlobalValue::dropLLVMManglingEscape( - ParentFunc->getName()), - TheModule); + Function *Trampoline = Function::Create( + TrampolineTy, GlobalValue::InternalLinkage, + Twine("__ehhandler$") + + GlobalValue::dropLLVMManglingEscape(ParentFunc->getName()), + TheModule); if (auto *C = ParentFunc->getComdat()) Trampoline->setComdat(C); BasicBlock *EntryBB = BasicBlock::Create(Context, "entry", Trampoline); @@ -482,8 +486,8 @@ void WinEHStatePass::rewriteSetJmpCall(IRBuilder<> &Builder, Function &F, NewCall = NewCI; } else { auto *II = cast(&Call); - NewCall = Builder.CreateInvoke( - SetJmp3, II->getNormalDest(), II->getUnwindDest(), Args, OpBundles); + NewCall = Builder.CreateInvoke(SetJmp3, II->getNormalDest(), + II->getUnwindDest(), Args, OpBundles); } NewCall->setCallingConv(Call.getCallingConv()); NewCall->setAttributes(Call.getAttributes()); @@ -774,3 +778,27 @@ void WinEHStatePass::insertStateNumberStore(Instruction *IP, int State) { RegNode, StateFieldIndex); Builder.CreateStore(Builder.getInt32(State), StateField); } + +void WinEHStatePass::updateEspForInAllocas(Function &F) { + for (BasicBlock &BB : F) { + for (Instruction &I : BB) { + if (auto *Alloca = dyn_cast(&I)) { + if (Alloca->isStaticAlloca()) + continue; + IRBuilder<> Builder(Alloca->getNextNonDebugInstruction()); + // SavedESP = llvm.stacksave() + Value *SP = Builder.CreateStackSave(); + Builder.CreateStore(SP, Builder.CreateStructGEP(RegNodeTy, RegNode, 0)); + } + + if (auto *II = dyn_cast(&I)) { + if (II->getIntrinsicID() != Intrinsic::stackrestore) + continue; + IRBuilder<> Builder(II->getNextNonDebugInstruction()); + // SavedESP = llvm.stacksave() + Value *SP = Builder.CreateStackSave(); + Builder.CreateStore(SP, Builder.CreateStructGEP(RegNodeTy, RegNode, 0)); + } + } + } +} diff --git a/llvm/lib/Target/XCore/XCoreISelLowering.cpp b/llvm/lib/Target/XCore/XCoreISelLowering.cpp index e8b6858c14c17..9a9acaca3188e 100644 --- a/llvm/lib/Target/XCore/XCoreISelLowering.cpp +++ b/llvm/lib/Target/XCore/XCoreISelLowering.cpp @@ -282,7 +282,8 @@ LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) const GA = getGlobalAddressWrapper(GA, GV, DAG); // Handle the rest of the offset. if (Offset != FoldedOffset) { - SDValue Remaining = DAG.getConstant(Offset - FoldedOffset, DL, MVT::i32); + SDValue Remaining = + DAG.getSignedConstant(Offset - FoldedOffset, DL, MVT::i32); GA = DAG.getNode(ISD::ADD, DL, MVT::i32, GA, Remaining); } return GA; diff --git a/llvm/lib/Target/Xtensa/XtensaISelLowering.cpp b/llvm/lib/Target/Xtensa/XtensaISelLowering.cpp index 5450222a7b2e1..5865eb7b70b60 100644 --- a/llvm/lib/Target/Xtensa/XtensaISelLowering.cpp +++ b/llvm/lib/Target/Xtensa/XtensaISelLowering.cpp @@ -845,7 +845,7 @@ SDValue XtensaTargetLowering::LowerDYNAMIC_STACKALLOC(SDValue Op, SDValue SizeTmp = DAG.getNode(ISD::ADD, DL, VT, Size, DAG.getConstant(31, DL, MVT::i32)); SDValue SizeRoundUp = DAG.getNode(ISD::AND, DL, VT, SizeTmp, - DAG.getConstant(~31, DL, MVT::i32)); + DAG.getSignedConstant(~31, DL, MVT::i32)); unsigned SPReg = Xtensa::SP; SDValue SP = DAG.getCopyFromReg(Chain, DL, SPReg, VT); @@ -873,7 +873,7 @@ SDValue XtensaTargetLowering::LowerShiftLeftParts(SDValue Op, // Lo = 0 // Hi = Lo << (Shamt - register size) - SDValue MinusRegisterSize = DAG.getConstant(-32, DL, VT); + SDValue MinusRegisterSize = DAG.getSignedConstant(-32, DL, VT); SDValue ShamtMinusRegisterSize = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusRegisterSize); @@ -914,7 +914,7 @@ SDValue XtensaTargetLowering::LowerShiftRightParts(SDValue Op, // Hi = 0; unsigned ShiftRightOp = IsSRA ? ISD::SRA : ISD::SRL; - SDValue MinusRegisterSize = DAG.getConstant(-32, DL, VT); + SDValue MinusRegisterSize = DAG.getSignedConstant(-32, DL, VT); SDValue RegisterSizeMinus1 = DAG.getConstant(32 - 1, DL, VT); SDValue ShamtMinusRegisterSize = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusRegisterSize); diff --git a/llvm/lib/TargetParser/Host.cpp b/llvm/lib/TargetParser/Host.cpp index b295db5a29c36..51d6b7cb9b1fd 100644 --- a/llvm/lib/TargetParser/Host.cpp +++ b/llvm/lib/TargetParser/Host.cpp @@ -2011,8 +2011,9 @@ const StringMap sys::getHostCPUFeatures() { const StringMap sys::getHostCPUFeatures() { unsigned long hwcap = getauxval(AT_HWCAP); bool HasFPU = hwcap & (1UL << 3); // HWCAP_LOONGARCH_FPU - uint32_t cpucfg2 = 0x2; + uint32_t cpucfg2 = 0x2, cpucfg3 = 0x3; __asm__("cpucfg %[cpucfg2], %[cpucfg2]\n\t" : [cpucfg2] "+r"(cpucfg2)); + __asm__("cpucfg %[cpucfg3], %[cpucfg3]\n\t" : [cpucfg3] "+r"(cpucfg3)); StringMap Features; @@ -2026,12 +2027,13 @@ const StringMap sys::getHostCPUFeatures() { Features["frecipe"] = cpucfg2 & (1U << 25); // CPUCFG.2.FRECIPE Features["lam-bh"] = cpucfg2 & (1U << 27); // CPUCFG.2.LAM_BH + Features["ld-seq-sa"] = cpucfg3 & (1U << 23); // CPUCFG.3.LD_SEQ_SA + // TODO: Need to complete. // Features["div32"] = cpucfg2 & (1U << 26); // CPUCFG.2.DIV32 // Features["lamcas"] = cpucfg2 & (1U << 28); // CPUCFG.2.LAMCAS // Features["llacq-screl"] = cpucfg2 & (1U << 29); // CPUCFG.2.LLACQ_SCREL // Features["scq"] = cpucfg2 & (1U << 30); // CPUCFG.2.SCQ - // Features["ld-seq-sa"] = cpucfg3 & (1U << 23); // CPUCFG.3.LD_SEQ_SA return Features; } #elif defined(__linux__) && defined(__riscv) diff --git a/llvm/lib/TargetParser/LoongArchTargetParser.cpp b/llvm/lib/TargetParser/LoongArchTargetParser.cpp index 27e3b5683c5a6..9b8407a73bea3 100644 --- a/llvm/lib/TargetParser/LoongArchTargetParser.cpp +++ b/llvm/lib/TargetParser/LoongArchTargetParser.cpp @@ -53,6 +53,7 @@ bool LoongArch::getArchFeatures(StringRef Arch, if (Arch == "la64v1.1") { Features.push_back("+frecipe"); Features.push_back("+lam-bh"); + Features.push_back("+ld-seq-sa"); } return true; } diff --git a/llvm/lib/TargetParser/RISCVTargetParser.cpp b/llvm/lib/TargetParser/RISCVTargetParser.cpp index da3fbc04300e2..625645a99e12f 100644 --- a/llvm/lib/TargetParser/RISCVTargetParser.cpp +++ b/llvm/lib/TargetParser/RISCVTargetParser.cpp @@ -21,24 +21,22 @@ namespace RISCV { enum CPUKind : unsigned { #define PROC(ENUM, NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, \ - FAST_VECTOR_UNALIGN) \ + FAST_VECTOR_UNALIGN, MVENDORID, MARCHID, MIMPID) \ CK_##ENUM, #define TUNE_PROC(ENUM, NAME) CK_##ENUM, #include "llvm/TargetParser/RISCVTargetParserDef.inc" }; -struct CPUInfo { - StringLiteral Name; - StringLiteral DefaultMarch; - bool FastScalarUnalignedAccess; - bool FastVectorUnalignedAccess; - bool is64Bit() const { return DefaultMarch.starts_with("rv64"); } -}; - constexpr CPUInfo RISCVCPUInfo[] = { #define PROC(ENUM, NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, \ - FAST_VECTOR_UNALIGN) \ - {NAME, DEFAULT_MARCH, FAST_SCALAR_UNALIGN, FAST_VECTOR_UNALIGN}, + FAST_VECTOR_UNALIGN, MVENDORID, MARCHID, MIMPID) \ + { \ + NAME, \ + DEFAULT_MARCH, \ + FAST_SCALAR_UNALIGN, \ + FAST_VECTOR_UNALIGN, \ + {MVENDORID, MARCHID, MIMPID}, \ + }, #include "llvm/TargetParser/RISCVTargetParserDef.inc" }; @@ -59,6 +57,18 @@ bool hasFastVectorUnalignedAccess(StringRef CPU) { return Info && Info->FastVectorUnalignedAccess; } +bool hasValidCPUModel(StringRef CPU) { + const CPUModel Model = getCPUModel(CPU); + return Model.MVendorID != 0 && Model.MArchID != 0 && Model.MImpID != 0; +} + +CPUModel getCPUModel(StringRef CPU) { + const CPUInfo *Info = getCPUInfoByName(CPU); + if (!Info) + return {0, 0, 0}; + return Info->Model; +} + bool parseCPU(StringRef CPU, bool IsRV64) { const CPUInfo *Info = getCPUInfoByName(CPU); diff --git a/llvm/lib/TargetParser/TargetParser.cpp b/llvm/lib/TargetParser/TargetParser.cpp index b236e26f495df..a2782d00b3520 100644 --- a/llvm/lib/TargetParser/TargetParser.cpp +++ b/llvm/lib/TargetParser/TargetParser.cpp @@ -374,10 +374,12 @@ void AMDGPU::fillAMDGPUFeatureMap(StringRef GPU, const Triple &T, Features["dot9-insts"] = true; Features["dot10-insts"] = true; Features["dot11-insts"] = true; + Features["dot12-insts"] = true; Features["dl-insts"] = true; Features["atomic-ds-pk-add-16-insts"] = true; Features["atomic-flat-pk-add-16-insts"] = true; Features["atomic-buffer-global-pk-add-f16-insts"] = true; + Features["atomic-buffer-pk-add-bf16-inst"] = true; Features["atomic-global-pk-add-bf16-inst"] = true; Features["16-bit-insts"] = true; Features["dpp"] = true; @@ -406,6 +408,7 @@ void AMDGPU::fillAMDGPUFeatureMap(StringRef GPU, const Triple &T, Features["dot8-insts"] = true; Features["dot9-insts"] = true; Features["dot10-insts"] = true; + Features["dot12-insts"] = true; Features["dl-insts"] = true; Features["16-bit-insts"] = true; Features["dpp"] = true; @@ -470,7 +473,14 @@ void AMDGPU::fillAMDGPUFeatureMap(StringRef GPU, const Triple &T, Features["gws"] = true; break; case GK_GFX950: + Features["f16bf16-to-fp6bf6-cvt-scale-insts"] = true; Features["prng-inst"] = true; + Features["permlane16-swap"] = true; + Features["permlane32-swap"] = true; + Features["ashr-pk-insts"] = true; + Features["dot12-insts"] = true; + Features["dot13-insts"] = true; + Features["atomic-buffer-pk-add-bf16-inst"] = true; Features["gfx950-insts"] = true; [[fallthrough]]; case GK_GFX942: diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp index b271f29d265cf..faabaf18d8071 100644 --- a/llvm/lib/TargetParser/Triple.cpp +++ b/llvm/lib/TargetParser/Triple.cpp @@ -360,6 +360,8 @@ StringRef Triple::getEnvironmentTypeName(EnvironmentType Kind) { case OpenHOS: return "ohos"; case PAuthTest: return "pauthtest"; + case LLVM: + return "llvm"; } llvm_unreachable("Invalid EnvironmentType!"); @@ -740,6 +742,7 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) { .StartsWith("opencl", Triple::OpenCL) .StartsWith("ohos", Triple::OpenHOS) .StartsWith("pauthtest", Triple::PAuthTest) + .StartsWith("llvm", Triple::LLVM) .Default(Triple::UnknownEnvironment); } diff --git a/llvm/lib/Transforms/Coroutines/CoroAnnotationElide.cpp b/llvm/lib/Transforms/Coroutines/CoroAnnotationElide.cpp index 7dbf501b81701..9115946d205a4 100644 --- a/llvm/lib/Transforms/Coroutines/CoroAnnotationElide.cpp +++ b/llvm/lib/Transforms/Coroutines/CoroAnnotationElide.cpp @@ -146,7 +146,10 @@ PreservedAnalyses CoroAnnotationElidePass::run(LazyCallGraph::SCC &C, bool HasAttr = CB->hasFnAttr(llvm::Attribute::CoroElideSafe); if (IsCallerPresplitCoroutine && HasAttr) { auto *CallerN = CG.lookup(*Caller); - auto *CallerC = CG.lookupSCC(*CallerN); + auto *CallerC = CallerN ? CG.lookupSCC(*CallerN) : nullptr; + // If CallerC is nullptr, it means LazyCallGraph hasn't visited Caller + // yet. Skip the call graph update. + auto ShouldUpdateCallGraph = !!CallerC; processCall(CB, Caller, NewCallee, FrameSize, FrameAlign); ORE.emit([&]() { @@ -158,8 +161,9 @@ PreservedAnalyses CoroAnnotationElidePass::run(LazyCallGraph::SCC &C, FAM.invalidate(*Caller, PreservedAnalyses::none()); Changed = true; - updateCGAndAnalysisManagerForCGSCCPass(CG, *CallerC, *CallerN, AM, UR, - FAM); + if (ShouldUpdateCallGraph) + updateCGAndAnalysisManagerForCGSCCPass(CG, *CallerC, *CallerN, AM, UR, + FAM); } else { ORE.emit([&]() { diff --git a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp index 79746201133bd..afb0ea72b269c 100644 --- a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp +++ b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp @@ -15,6 +15,7 @@ #include "llvm/Transforms/IPO/FunctionAttrs.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/PostOrderIterator.h" #include "llvm/ADT/SCCIterator.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SetVector.h" @@ -36,6 +37,7 @@ #include "llvm/IR/Attributes.h" #include "llvm/IR/BasicBlock.h" #include "llvm/IR/Constant.h" +#include "llvm/IR/ConstantRangeList.h" #include "llvm/IR/Constants.h" #include "llvm/IR/Function.h" #include "llvm/IR/InstIterator.h" @@ -581,6 +583,200 @@ struct ArgumentUsesTracker : public CaptureTracker { const SCCNodeSet &SCCNodes; }; +/// A struct of argument use: a Use and the offset it accesses. This struct +/// is to track uses inside function via GEP. If GEP has a non-constant index, +/// the Offset field is nullopt. +struct ArgumentUse { + Use *U; + std::optional Offset; +}; + +/// A struct of argument access info. "Unknown" accesses are the cases like +/// unrecognized instructions, instructions that have more than one use of +/// the argument, or volatile memory accesses. "WriteWithSideEffect" are call +/// instructions that not only write an argument but also capture it. +struct ArgumentAccessInfo { + enum class AccessType : uint8_t { Write, WriteWithSideEffect, Read, Unknown }; + AccessType ArgAccessType; + ConstantRangeList AccessRanges; +}; + +/// A struct to wrap the argument use info per block. +struct UsesPerBlockInfo { + SmallDenseMap Insts; + bool HasWrites = false; + bool HasUnknownAccess = false; +}; + +/// A struct to summarize the argument use info in a function. +struct ArgumentUsesSummary { + bool HasAnyWrite = false; + bool HasWriteOutsideEntryBB = false; + SmallDenseMap UsesPerBlock; +}; + +ArgumentAccessInfo getArgmentAccessInfo(const Instruction *I, + const ArgumentUse &ArgUse, + const DataLayout &DL) { + auto GetTypeAccessRange = + [&DL](Type *Ty, + std::optional Offset) -> std::optional { + auto TypeSize = DL.getTypeStoreSize(Ty); + if (!TypeSize.isScalable() && Offset) { + int64_t Size = TypeSize.getFixedValue(); + return ConstantRange(APInt(64, *Offset, true), + APInt(64, *Offset + Size, true)); + } + return std::nullopt; + }; + auto GetConstantIntRange = + [](Value *Length, + std::optional Offset) -> std::optional { + auto *ConstantLength = dyn_cast(Length); + if (ConstantLength && Offset) + return ConstantRange( + APInt(64, *Offset, true), + APInt(64, *Offset + ConstantLength->getSExtValue(), true)); + return std::nullopt; + }; + if (auto *SI = dyn_cast(I)) { + if (SI->isSimple() && &SI->getOperandUse(1) == ArgUse.U) { + // Get the fixed type size of "SI". Since the access range of a write + // will be unioned, if "SI" doesn't have a fixed type size, we just set + // the access range to empty. + ConstantRangeList AccessRanges; + if (auto TypeAccessRange = + GetTypeAccessRange(SI->getAccessType(), ArgUse.Offset)) + AccessRanges.insert(*TypeAccessRange); + return {ArgumentAccessInfo::AccessType::Write, std::move(AccessRanges)}; + } + } else if (auto *LI = dyn_cast(I)) { + if (LI->isSimple()) { + assert(&LI->getOperandUse(0) == ArgUse.U); + // Get the fixed type size of "LI". Different from Write, if "LI" + // doesn't have a fixed type size, we conservatively set as a clobber + // with an empty access range. + if (auto TypeAccessRange = + GetTypeAccessRange(LI->getAccessType(), ArgUse.Offset)) + return {ArgumentAccessInfo::AccessType::Read, {*TypeAccessRange}}; + } + } else if (auto *MemSet = dyn_cast(I)) { + if (!MemSet->isVolatile()) { + ConstantRangeList AccessRanges; + if (auto AccessRange = + GetConstantIntRange(MemSet->getLength(), ArgUse.Offset)) + AccessRanges.insert(*AccessRange); + return {ArgumentAccessInfo::AccessType::Write, AccessRanges}; + } + } else if (auto *MTI = dyn_cast(I)) { + if (!MTI->isVolatile()) { + if (&MTI->getOperandUse(0) == ArgUse.U) { + ConstantRangeList AccessRanges; + if (auto AccessRange = + GetConstantIntRange(MTI->getLength(), ArgUse.Offset)) + AccessRanges.insert(*AccessRange); + return {ArgumentAccessInfo::AccessType::Write, AccessRanges}; + } else if (&MTI->getOperandUse(1) == ArgUse.U) { + if (auto AccessRange = + GetConstantIntRange(MTI->getLength(), ArgUse.Offset)) + return {ArgumentAccessInfo::AccessType::Read, {*AccessRange}}; + } + } + } else if (auto *CB = dyn_cast(I)) { + if (CB->isArgOperand(ArgUse.U)) { + unsigned ArgNo = CB->getArgOperandNo(ArgUse.U); + bool IsInitialize = CB->paramHasAttr(ArgNo, Attribute::Initializes); + // Argument is a Write when parameter is writeonly/readnone + // and nocapture. Otherwise, it's a WriteWithSideEffect. + auto Access = CB->onlyWritesMemory(ArgNo) && + CB->paramHasAttr(ArgNo, Attribute::NoCapture) + ? ArgumentAccessInfo::AccessType::Write + : ArgumentAccessInfo::AccessType::WriteWithSideEffect; + ConstantRangeList AccessRanges; + if (IsInitialize && ArgUse.Offset) { + Attribute Attr = CB->getParamAttr(ArgNo, Attribute::Initializes); + ConstantRangeList CBCRL = Attr.getValueAsConstantRangeList(); + for (ConstantRange &CR : CBCRL) + AccessRanges.insert(ConstantRange(CR.getLower() + *ArgUse.Offset, + CR.getUpper() + *ArgUse.Offset)); + return {Access, AccessRanges}; + } + } + } + // Other unrecognized instructions are considered as unknown. + return {ArgumentAccessInfo::AccessType::Unknown, {}}; +} + +// Collect the uses of argument "A" in "F". +ArgumentUsesSummary collectArgumentUsesPerBlock(Argument &A, Function &F) { + auto &DL = F.getParent()->getDataLayout(); + unsigned PointerSize = + DL.getIndexSizeInBits(A.getType()->getPointerAddressSpace()); + ArgumentUsesSummary Result; + + BasicBlock &EntryBB = F.getEntryBlock(); + SmallVector Worklist; + for (Use &U : A.uses()) + Worklist.push_back({&U, 0}); + + // Update "UsesPerBlock" with the block of "I" as key and "Info" as value. + // Return true if the block of "I" has write accesses after updating. + auto UpdateUseInfo = [&Result](Instruction *I, ArgumentAccessInfo Info) { + auto *BB = I->getParent(); + auto &BBInfo = Result.UsesPerBlock[BB]; + bool AlreadyVisitedInst = BBInfo.Insts.contains(I); + auto &IInfo = BBInfo.Insts[I]; + + // Instructions that have more than one use of the argument are considered + // as clobbers. + if (AlreadyVisitedInst) { + IInfo = {ArgumentAccessInfo::AccessType::Unknown, {}}; + BBInfo.HasUnknownAccess = true; + return false; + } + + IInfo = std::move(Info); + BBInfo.HasUnknownAccess |= + IInfo.ArgAccessType == ArgumentAccessInfo::AccessType::Unknown; + bool InfoHasWrites = + (IInfo.ArgAccessType == ArgumentAccessInfo::AccessType::Write || + IInfo.ArgAccessType == + ArgumentAccessInfo::AccessType::WriteWithSideEffect) && + !IInfo.AccessRanges.empty(); + BBInfo.HasWrites |= InfoHasWrites; + return InfoHasWrites; + }; + + // No need for a visited set because we don't look through phis, so there are + // no cycles. + while (!Worklist.empty()) { + ArgumentUse ArgUse = Worklist.pop_back_val(); + User *U = ArgUse.U->getUser(); + // Add GEP uses to worklist. + // If the GEP is not a constant GEP, set the ArgumentUse::Offset to nullopt. + if (auto *GEP = dyn_cast(U)) { + std::optional NewOffset = std::nullopt; + if (ArgUse.Offset) { + APInt Offset(PointerSize, 0); + if (GEP->accumulateConstantOffset(DL, Offset)) + NewOffset = *ArgUse.Offset + Offset.getSExtValue(); + } + for (Use &U : GEP->uses()) + Worklist.push_back({&U, NewOffset}); + continue; + } + + auto *I = cast(U); + bool HasWrite = UpdateUseInfo(I, getArgmentAccessInfo(I, ArgUse, DL)); + + Result.HasAnyWrite |= HasWrite; + + if (HasWrite && I->getParent() != &EntryBB) + Result.HasWriteOutsideEntryBB = true; + } + return Result; +} + } // end anonymous namespace namespace llvm { @@ -867,9 +1063,129 @@ static bool addAccessAttr(Argument *A, Attribute::AttrKind R) { return true; } +static bool inferInitializes(Argument &A, Function &F) { + auto ArgumentUses = collectArgumentUsesPerBlock(A, F); + // No write anywhere in the function, bail. + if (!ArgumentUses.HasAnyWrite) + return false; + + auto &UsesPerBlock = ArgumentUses.UsesPerBlock; + BasicBlock &EntryBB = F.getEntryBlock(); + // A map to store the argument ranges initialized by a BasicBlock (including + // its successors). + DenseMap Initialized; + // Visit the successors of "BB" block and the instructions in BB (post-order) + // to get the argument ranges initialized by "BB" (including its successors). + // The result will be cached in "Initialized". + auto VisitBlock = [&](const BasicBlock *BB) -> ConstantRangeList { + auto UPB = UsesPerBlock.find(BB); + ConstantRangeList CRL; + + // Start with intersection of successors. + // If this block has any clobbering use, we're going to clear out the + // ranges at some point in this block anyway, so don't bother looking at + // successors. + if (UPB == UsesPerBlock.end() || !UPB->second.HasUnknownAccess) { + bool HasAddedSuccessor = false; + for (auto *Succ : successors(BB)) { + if (auto SuccI = Initialized.find(Succ); SuccI != Initialized.end()) { + if (HasAddedSuccessor) { + CRL = CRL.intersectWith(SuccI->second); + } else { + CRL = SuccI->second; + HasAddedSuccessor = true; + } + } else { + CRL = ConstantRangeList(); + break; + } + } + } + + if (UPB != UsesPerBlock.end()) { + // Sort uses in this block by instruction order. + SmallVector, 2> Insts; + append_range(Insts, UPB->second.Insts); + sort(Insts, [](std::pair &LHS, + std::pair &RHS) { + return LHS.first->comesBefore(RHS.first); + }); + + // From the end of the block to the beginning of the block, set + // initializes ranges. + for (auto &[_, Info] : reverse(Insts)) { + if (Info.ArgAccessType == ArgumentAccessInfo::AccessType::Unknown || + Info.ArgAccessType == + ArgumentAccessInfo::AccessType::WriteWithSideEffect) + CRL = ConstantRangeList(); + if (!Info.AccessRanges.empty()) { + if (Info.ArgAccessType == ArgumentAccessInfo::AccessType::Write || + Info.ArgAccessType == + ArgumentAccessInfo::AccessType::WriteWithSideEffect) { + CRL = CRL.unionWith(Info.AccessRanges); + } else { + assert(Info.ArgAccessType == ArgumentAccessInfo::AccessType::Read); + for (const auto &ReadRange : Info.AccessRanges) + CRL.subtract(ReadRange); + } + } + } + } + return CRL; + }; + + ConstantRangeList EntryCRL; + // If all write instructions are in the EntryBB, or if the EntryBB has + // a clobbering use, we only need to look at EntryBB. + bool OnlyScanEntryBlock = !ArgumentUses.HasWriteOutsideEntryBB; + if (!OnlyScanEntryBlock) + if (auto EntryUPB = UsesPerBlock.find(&EntryBB); + EntryUPB != UsesPerBlock.end()) + OnlyScanEntryBlock = EntryUPB->second.HasUnknownAccess; + if (OnlyScanEntryBlock) { + EntryCRL = VisitBlock(&EntryBB); + if (EntryCRL.empty()) + return false; + } else { + // Now we have to go through CFG to get the initialized argument ranges + // across blocks. With dominance and post-dominance, the initialized ranges + // by a block include both accesses inside this block and accesses in its + // (transitive) successors. So visit successors before predecessors with a + // post-order walk of the blocks and memorize the results in "Initialized". + for (const BasicBlock *BB : post_order(&F)) { + ConstantRangeList CRL = VisitBlock(BB); + if (!CRL.empty()) + Initialized[BB] = CRL; + } + + auto EntryCRLI = Initialized.find(&EntryBB); + if (EntryCRLI == Initialized.end()) + return false; + + EntryCRL = EntryCRLI->second; + } + + assert(!EntryCRL.empty() && + "should have bailed already if EntryCRL is empty"); + + if (A.hasAttribute(Attribute::Initializes)) { + ConstantRangeList PreviousCRL = + A.getAttribute(Attribute::Initializes).getValueAsConstantRangeList(); + if (PreviousCRL == EntryCRL) + return false; + EntryCRL = EntryCRL.unionWith(PreviousCRL); + } + + A.addAttr(Attribute::get(A.getContext(), Attribute::Initializes, + EntryCRL.rangesRef())); + + return true; +} + /// Deduce nocapture attributes for the SCC. static void addArgumentAttrs(const SCCNodeSet &SCCNodes, - SmallSet &Changed) { + SmallSet &Changed, + bool SkipInitializes) { ArgumentGraph AG; // Check each function in turn, determining which pointer arguments are not @@ -937,6 +1253,10 @@ static void addArgumentAttrs(const SCCNodeSet &SCCNodes, if (addAccessAttr(&A, R)) Changed.insert(F); } + if (!SkipInitializes && !A.onlyReadsMemory()) { + if (inferInitializes(A, *F)) + Changed.insert(F); + } } } @@ -1910,13 +2230,16 @@ deriveAttrsInPostOrder(ArrayRef Functions, AARGetterT &&AARGetter, SmallSet Changed; if (ArgAttrsOnly) { - addArgumentAttrs(Nodes.SCCNodes, Changed); + // ArgAttrsOnly means to only infer attributes that may aid optimizations + // on the *current* function. "initializes" attribute is to aid + // optimizations (like DSE) on the callers, so skip "initializes" here. + addArgumentAttrs(Nodes.SCCNodes, Changed, /*SkipInitializes=*/true); return Changed; } addArgumentReturnedAttrs(Nodes.SCCNodes, Changed); addMemoryAttrs(Nodes.SCCNodes, AARGetter, Changed); - addArgumentAttrs(Nodes.SCCNodes, Changed); + addArgumentAttrs(Nodes.SCCNodes, Changed, /*SkipInitializes=*/false); inferConvergent(Nodes.SCCNodes, Changed); addNoReturnAttrs(Nodes.SCCNodes, Changed); addColdAttrs(Nodes.SCCNodes, Changed); diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp index 46ce011c5f788..6fe9693581853 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp @@ -2245,9 +2245,7 @@ Instruction *InstCombinerImpl::visitSub(BinaryOperator &I) { const Instruction *UI = dyn_cast(U); if (!UI) return false; - return match(UI, - m_Select(m_Value(), m_Specific(Op1), m_Specific(&I))) || - match(UI, m_Select(m_Value(), m_Specific(&I), m_Specific(Op1))); + return match(UI, m_c_Select(m_Specific(Op1), m_Specific(&I))); })) { if (Value *NegOp1 = Negator::Negate(IsNegation, /* IsNSW */ IsNegation && I.hasNoSignedWrap(), diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp index e2eae7fb8327c..b4033fc2a418a 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp @@ -1185,14 +1185,27 @@ static Value *extractIntPart(const IntPart &P, IRBuilderBase &Builder) { /// (icmp eq X0, Y0) & (icmp eq X1, Y1) -> icmp eq X01, Y01 /// (icmp ne X0, Y0) | (icmp ne X1, Y1) -> icmp ne X01, Y01 /// where X0, X1 and Y0, Y1 are adjacent parts extracted from an integer. -Value *InstCombinerImpl::foldEqOfParts(ICmpInst *Cmp0, ICmpInst *Cmp1, - bool IsAnd) { +Value *InstCombinerImpl::foldEqOfParts(Value *Cmp0, Value *Cmp1, bool IsAnd) { if (!Cmp0->hasOneUse() || !Cmp1->hasOneUse()) return nullptr; CmpInst::Predicate Pred = IsAnd ? CmpInst::ICMP_EQ : CmpInst::ICMP_NE; - auto GetMatchPart = [&](ICmpInst *Cmp, + auto GetMatchPart = [&](Value *CmpV, unsigned OpNo) -> std::optional { + assert(CmpV->getType()->isIntOrIntVectorTy(1) && "Must be bool"); + + Value *X, *Y; + // icmp ne (and x, 1), (and y, 1) <=> trunc (xor x, y) to i1 + // icmp eq (and x, 1), (and y, 1) <=> not (trunc (xor x, y) to i1) + if (Pred == CmpInst::ICMP_NE + ? match(CmpV, m_Trunc(m_Xor(m_Value(X), m_Value(Y)))) + : match(CmpV, m_Not(m_Trunc(m_Xor(m_Value(X), m_Value(Y)))))) + return {{OpNo == 0 ? X : Y, 0, 1}}; + + auto *Cmp = dyn_cast(CmpV); + if (!Cmp) + return std::nullopt; + if (Pred == Cmp->getPredicate()) return matchIntPart(Cmp->getOperand(OpNo)); @@ -1465,11 +1478,15 @@ Value *InstCombinerImpl::foldLogicOfFCmps(FCmpInst *LHS, FCmpInst *RHS, // FCmp canonicalization ensures that (fcmp ord/uno X, X) and // (fcmp ord/uno X, C) will be transformed to (fcmp X, +0.0). - if (match(LHS1, m_PosZeroFP()) && match(RHS1, m_PosZeroFP())) + if (match(LHS1, m_PosZeroFP()) && match(RHS1, m_PosZeroFP())) { // Ignore the constants because they are obviously not NANs: // (fcmp ord x, 0.0) & (fcmp ord y, 0.0) -> (fcmp ord x, y) // (fcmp uno x, 0.0) | (fcmp uno y, 0.0) -> (fcmp uno x, y) + IRBuilder<>::FastMathFlagGuard FMFG(Builder); + Builder.setFastMathFlags(LHS->getFastMathFlags() & + RHS->getFastMathFlags()); return Builder.CreateFCmp(PredL, LHS0, RHS0); + } } if (IsAnd && stripSignOnlyFPOps(LHS0) == stripSignOnlyFPOps(RHS0)) { @@ -2728,47 +2745,31 @@ Instruction *InstCombinerImpl::visitAnd(BinaryOperator &I) { foldBooleanAndOr(Op0, Op1, I, /*IsAnd=*/true, /*IsLogical=*/false)) return replaceInstUsesWith(I, Res); - { - ICmpInst *LHS = dyn_cast(Op0); - ICmpInst *RHS = dyn_cast(Op1); - - // TODO: Base this on foldBooleanAndOr instead? - // TODO: Make this recursive; it's a little tricky because an arbitrary - // number of 'and' instructions might have to be created. - if (LHS && match(Op1, m_OneUse(m_LogicalAnd(m_Value(X), m_Value(Y))))) { - bool IsLogical = isa(Op1); - // LHS & (X && Y) --> (LHS && X) && Y - if (auto *Cmp = dyn_cast(X)) - if (Value *Res = - foldAndOrOfICmps(LHS, Cmp, I, /* IsAnd */ true, IsLogical)) - return replaceInstUsesWith(I, IsLogical - ? Builder.CreateLogicalAnd(Res, Y) - : Builder.CreateAnd(Res, Y)); - // LHS & (X && Y) --> X && (LHS & Y) - if (auto *Cmp = dyn_cast(Y)) - if (Value *Res = foldAndOrOfICmps(LHS, Cmp, I, /* IsAnd */ true, - /* IsLogical */ false)) - return replaceInstUsesWith(I, IsLogical - ? Builder.CreateLogicalAnd(X, Res) - : Builder.CreateAnd(X, Res)); - } - if (RHS && match(Op0, m_OneUse(m_LogicalAnd(m_Value(X), m_Value(Y))))) { - bool IsLogical = isa(Op0); - // (X && Y) & RHS --> (X && RHS) && Y - if (auto *Cmp = dyn_cast(X)) - if (Value *Res = - foldAndOrOfICmps(Cmp, RHS, I, /* IsAnd */ true, IsLogical)) - return replaceInstUsesWith(I, IsLogical - ? Builder.CreateLogicalAnd(Res, Y) - : Builder.CreateAnd(Res, Y)); - // (X && Y) & RHS --> X && (Y & RHS) - if (auto *Cmp = dyn_cast(Y)) - if (Value *Res = foldAndOrOfICmps(Cmp, RHS, I, /* IsAnd */ true, - /* IsLogical */ false)) - return replaceInstUsesWith(I, IsLogical - ? Builder.CreateLogicalAnd(X, Res) - : Builder.CreateAnd(X, Res)); - } + // TODO: Make this recursive; it's a little tricky because an arbitrary + // number of 'and' instructions might have to be created. + if (match(Op1, m_OneUse(m_LogicalAnd(m_Value(X), m_Value(Y))))) { + bool IsLogical = isa(Op1); + // Op0 & (X && Y) --> (Op0 && X) && Y + if (Value *Res = foldBooleanAndOr(Op0, X, I, /* IsAnd */ true, IsLogical)) + return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalAnd(Res, Y) + : Builder.CreateAnd(Res, Y)); + // Op0 & (X && Y) --> X && (Op0 & Y) + if (Value *Res = foldBooleanAndOr(Op0, Y, I, /* IsAnd */ true, + /* IsLogical */ false)) + return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalAnd(X, Res) + : Builder.CreateAnd(X, Res)); + } + if (match(Op0, m_OneUse(m_LogicalAnd(m_Value(X), m_Value(Y))))) { + bool IsLogical = isa(Op0); + // (X && Y) & Op1 --> (X && Op1) && Y + if (Value *Res = foldBooleanAndOr(X, Op1, I, /* IsAnd */ true, IsLogical)) + return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalAnd(Res, Y) + : Builder.CreateAnd(Res, Y)); + // (X && Y) & Op1 --> X && (Y & Op1) + if (Value *Res = foldBooleanAndOr(Y, Op1, I, /* IsAnd */ true, + /* IsLogical */ false)) + return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalAnd(X, Res) + : Builder.CreateAnd(X, Res)); } if (Instruction *FoldedFCmps = reassociateFCmps(I, Builder)) @@ -3416,9 +3417,6 @@ Value *InstCombinerImpl::foldAndOrOfICmps(ICmpInst *LHS, ICmpInst *RHS, return X; } - if (Value *X = foldEqOfParts(LHS, RHS, IsAnd)) - return X; - // (icmp ne A, 0) | (icmp ne B, 0) --> (icmp ne (A|B), 0) // (icmp eq A, 0) & (icmp eq B, 0) --> (icmp eq (A|B), 0) // TODO: Remove this and below when foldLogOpOfMaskedICmps can handle undefs. @@ -3541,6 +3539,9 @@ Value *InstCombinerImpl::foldBooleanAndOr(Value *LHS, Value *RHS, if (Value *Res = foldLogicOfFCmps(LHSCmp, RHSCmp, IsAnd, IsLogical)) return Res; + if (Value *Res = foldEqOfParts(LHS, RHS, IsAnd)) + return Res; + return nullptr; } @@ -3829,48 +3830,31 @@ Instruction *InstCombinerImpl::visitOr(BinaryOperator &I) { foldBooleanAndOr(Op0, Op1, I, /*IsAnd=*/false, /*IsLogical=*/false)) return replaceInstUsesWith(I, Res); - { - ICmpInst *LHS = dyn_cast(Op0); - ICmpInst *RHS = dyn_cast(Op1); - - // TODO: Base this on foldBooleanAndOr instead? - // TODO: Make this recursive; it's a little tricky because an arbitrary - // number of 'or' instructions might have to be created. - Value *X, *Y; - if (LHS && match(Op1, m_OneUse(m_LogicalOr(m_Value(X), m_Value(Y))))) { - bool IsLogical = isa(Op1); - // LHS | (X || Y) --> (LHS || X) || Y - if (auto *Cmp = dyn_cast(X)) - if (Value *Res = - foldAndOrOfICmps(LHS, Cmp, I, /* IsAnd */ false, IsLogical)) - return replaceInstUsesWith(I, IsLogical - ? Builder.CreateLogicalOr(Res, Y) - : Builder.CreateOr(Res, Y)); - // LHS | (X || Y) --> X || (LHS | Y) - if (auto *Cmp = dyn_cast(Y)) - if (Value *Res = foldAndOrOfICmps(LHS, Cmp, I, /* IsAnd */ false, - /* IsLogical */ false)) - return replaceInstUsesWith(I, IsLogical - ? Builder.CreateLogicalOr(X, Res) - : Builder.CreateOr(X, Res)); - } - if (RHS && match(Op0, m_OneUse(m_LogicalOr(m_Value(X), m_Value(Y))))) { - bool IsLogical = isa(Op0); - // (X || Y) | RHS --> (X || RHS) || Y - if (auto *Cmp = dyn_cast(X)) - if (Value *Res = - foldAndOrOfICmps(Cmp, RHS, I, /* IsAnd */ false, IsLogical)) - return replaceInstUsesWith(I, IsLogical - ? Builder.CreateLogicalOr(Res, Y) - : Builder.CreateOr(Res, Y)); - // (X || Y) | RHS --> X || (Y | RHS) - if (auto *Cmp = dyn_cast(Y)) - if (Value *Res = foldAndOrOfICmps(Cmp, RHS, I, /* IsAnd */ false, - /* IsLogical */ false)) - return replaceInstUsesWith(I, IsLogical - ? Builder.CreateLogicalOr(X, Res) - : Builder.CreateOr(X, Res)); - } + // TODO: Make this recursive; it's a little tricky because an arbitrary + // number of 'or' instructions might have to be created. + if (match(Op1, m_OneUse(m_LogicalOr(m_Value(X), m_Value(Y))))) { + bool IsLogical = isa(Op1); + // Op0 | (X || Y) --> (Op0 || X) || Y + if (Value *Res = foldBooleanAndOr(Op0, X, I, /* IsAnd */ false, IsLogical)) + return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalOr(Res, Y) + : Builder.CreateOr(Res, Y)); + // Op0 | (X || Y) --> X || (Op0 | Y) + if (Value *Res = foldBooleanAndOr(Op0, Y, I, /* IsAnd */ false, + /* IsLogical */ false)) + return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalOr(X, Res) + : Builder.CreateOr(X, Res)); + } + if (match(Op0, m_OneUse(m_LogicalOr(m_Value(X), m_Value(Y))))) { + bool IsLogical = isa(Op0); + // (X || Y) | Op1 --> (X || Op1) || Y + if (Value *Res = foldBooleanAndOr(X, Op1, I, /* IsAnd */ false, IsLogical)) + return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalOr(Res, Y) + : Builder.CreateOr(Res, Y)); + // (X || Y) | Op1 --> X || (Y | Op1) + if (Value *Res = foldBooleanAndOr(Y, Op1, I, /* IsAnd */ false, + /* IsLogical */ false)) + return replaceInstUsesWith(I, IsLogical ? Builder.CreateLogicalOr(X, Res) + : Builder.CreateOr(X, Res)); } if (Instruction *FoldedFCmps = reassociateFCmps(I, Builder)) diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp index 42c0acd1e45ec..fd38738e3be80 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp @@ -1736,9 +1736,7 @@ Instruction *InstCombinerImpl::visitCallInst(CallInst &CI) { Value *X; if (match(IIOperand, m_Neg(m_Value(X)))) return replaceOperand(*II, 0, X); - if (match(IIOperand, m_Select(m_Value(), m_Value(X), m_Neg(m_Deferred(X))))) - return replaceOperand(*II, 0, X); - if (match(IIOperand, m_Select(m_Value(), m_Neg(m_Value(X)), m_Deferred(X)))) + if (match(IIOperand, m_c_Select(m_Neg(m_Value(X)), m_Deferred(X)))) return replaceOperand(*II, 0, X); Value *Y; diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp index 6c2554ea73b7f..7221c987b9821 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp @@ -786,15 +786,6 @@ Instruction *InstCombinerImpl::visitTrunc(TruncInst &Trunc) { } } - // Test if the trunc is the user of a select which is part of a - // minimum or maximum operation. If so, don't do any more simplification. - // Even simplifying demanded bits can break the canonical form of a - // min/max. - Value *LHS, *RHS; - if (SelectInst *Sel = dyn_cast(Src)) - if (matchSelectPattern(Sel, LHS, RHS).Flavor != SPF_UNKNOWN) - return nullptr; - // See if we can simplify any instructions used by the input whose sole // purpose is to compute bits we don't care about. if (SimplifyDemandedInstructionBits(Trunc)) diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp index d602a907e72bc..fed21db393ed2 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp @@ -3183,6 +3183,29 @@ Instruction *InstCombinerImpl::foldICmpAddConstant(ICmpInst &Cmp, Builder.CreateAdd(X, ConstantInt::get(Ty, *C2 - C - 1)), ConstantInt::get(Ty, ~C)); + // zext(V) + C2 pred C -> V + C3 pred' C4 + Value *V; + if (match(X, m_ZExt(m_Value(V)))) { + Type *NewCmpTy = V->getType(); + unsigned NewCmpBW = NewCmpTy->getScalarSizeInBits(); + if (shouldChangeType(Ty, NewCmpTy)) { + if (CR.getActiveBits() <= NewCmpBW) { + ConstantRange SrcCR = CR.truncate(NewCmpBW); + CmpInst::Predicate EquivPred; + APInt EquivInt; + APInt EquivOffset; + + SrcCR.getEquivalentICmp(EquivPred, EquivInt, EquivOffset); + return new ICmpInst( + EquivPred, + EquivOffset.isZero() + ? V + : Builder.CreateAdd(V, ConstantInt::get(NewCmpTy, EquivOffset)), + ConstantInt::get(NewCmpTy, EquivInt)); + } + } + } + return nullptr; } @@ -8437,9 +8460,7 @@ Instruction *InstCombinerImpl::visitFCmpInst(FCmpInst &I) { case Instruction::Select: // fcmp eq (cond ? x : -x), 0 --> fcmp eq x, 0 if (FCmpInst::isEquality(Pred) && match(RHSC, m_AnyZeroFP()) && - (match(LHSI, - m_Select(m_Value(), m_Value(X), m_FNeg(m_Deferred(X)))) || - match(LHSI, m_Select(m_Value(), m_FNeg(m_Value(X)), m_Deferred(X))))) + match(LHSI, m_c_Select(m_FNeg(m_Value(X)), m_Deferred(X)))) return replaceOperand(I, 0, X); if (Instruction *NV = FoldOpIntoSelect(I, cast(LHSI))) return NV; diff --git a/llvm/lib/Transforms/InstCombine/InstCombineInternal.h b/llvm/lib/Transforms/InstCombine/InstCombineInternal.h index 9588930d7658c..0508ed48fc19c 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineInternal.h +++ b/llvm/lib/Transforms/InstCombine/InstCombineInternal.h @@ -412,7 +412,7 @@ class LLVM_LIBRARY_VISIBILITY InstCombinerImpl final bool IsAnd, bool IsLogical = false); Value *foldXorOfICmps(ICmpInst *LHS, ICmpInst *RHS, BinaryOperator &Xor); - Value *foldEqOfParts(ICmpInst *Cmp0, ICmpInst *Cmp1, bool IsAnd); + Value *foldEqOfParts(Value *Cmp0, Value *Cmp1, bool IsAnd); Value *foldAndOrOfICmpsUsingRanges(ICmpInst *ICmp1, ICmpInst *ICmp2, bool IsAnd); diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp index 2526ce7704ab1..e5525133e5dbb 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp @@ -3112,6 +3112,39 @@ static Instruction *foldNestedSelects(SelectInst &OuterSelVal, !IsAndVariant ? SelInner : InnerSel.FalseVal); } +/// Return true if V is poison or \p Expected given that ValAssumedPoison is +/// already poison. For example, if ValAssumedPoison is `icmp samesign X, 10` +/// and V is `icmp ne X, 5`, impliesPoisonOrCond returns true. +static bool impliesPoisonOrCond(const Value *ValAssumedPoison, const Value *V, + bool Expected) { + if (impliesPoison(ValAssumedPoison, V)) + return true; + + // Handle the case that ValAssumedPoison is `icmp samesign pred X, C1` and V + // is `icmp pred X, C2`, where C1 is well-defined. + if (auto *ICmp = dyn_cast(ValAssumedPoison)) { + Value *LHS = ICmp->getOperand(0); + const APInt *RHSC1; + const APInt *RHSC2; + ICmpInst::Predicate Pred; + if (ICmp->hasSameSign() && + match(ICmp->getOperand(1), m_APIntForbidPoison(RHSC1)) && + match(V, m_ICmp(Pred, m_Specific(LHS), m_APIntAllowPoison(RHSC2)))) { + unsigned BitWidth = RHSC1->getBitWidth(); + ConstantRange CRX = + RHSC1->isNonNegative() + ? ConstantRange(APInt::getSignedMinValue(BitWidth), + APInt::getZero(BitWidth)) + : ConstantRange(APInt::getZero(BitWidth), + APInt::getSignedMinValue(BitWidth)); + return CRX.icmp(Expected ? Pred : ICmpInst::getInversePredicate(Pred), + *RHSC2); + } + } + + return false; +} + Instruction *InstCombinerImpl::foldSelectOfBools(SelectInst &SI) { Value *CondVal = SI.getCondition(); Value *TrueVal = SI.getTrueValue(); @@ -3133,13 +3166,13 @@ Instruction *InstCombinerImpl::foldSelectOfBools(SelectInst &SI) { // checks whether folding it does not convert a well-defined value into // poison. if (match(TrueVal, m_One())) { - if (impliesPoison(FalseVal, CondVal)) { + if (impliesPoisonOrCond(FalseVal, CondVal, /*Expected=*/false)) { // Change: A = select B, true, C --> A = or B, C return BinaryOperator::CreateOr(CondVal, FalseVal); } if (match(CondVal, m_OneUse(m_Select(m_Value(A), m_One(), m_Value(B)))) && - impliesPoison(FalseVal, B)) { + impliesPoisonOrCond(FalseVal, B, /*Expected=*/false)) { // (A || B) || C --> A || (B | C) return replaceInstUsesWith( SI, Builder.CreateLogicalOr(A, Builder.CreateOr(B, FalseVal))); @@ -3175,13 +3208,13 @@ Instruction *InstCombinerImpl::foldSelectOfBools(SelectInst &SI) { } if (match(FalseVal, m_Zero())) { - if (impliesPoison(TrueVal, CondVal)) { + if (impliesPoisonOrCond(TrueVal, CondVal, /*Expected=*/true)) { // Change: A = select B, C, false --> A = and B, C return BinaryOperator::CreateAnd(CondVal, TrueVal); } if (match(CondVal, m_OneUse(m_Select(m_Value(A), m_Value(B), m_Zero()))) && - impliesPoison(TrueVal, B)) { + impliesPoisonOrCond(TrueVal, B, /*Expected=*/true)) { // (A && B) && C --> A && (B & C) return replaceInstUsesWith( SI, Builder.CreateLogicalAnd(A, Builder.CreateAnd(B, TrueVal))); diff --git a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp index f56414adbc3e7..09eafd09451b2 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp @@ -963,6 +963,9 @@ Instruction *InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse( return AggregateDescription::Found; }; + // If an aggregate element is defined in UseBB, we can't use it in PredBB. + bool EltDefinedInUseBB = false; + // Given the value \p Elt that was being inserted into element \p EltIdx of an // aggregate AggTy, see if \p Elt was originally defined by an // appropriate extractvalue (same element index, same aggregate type). @@ -972,8 +975,11 @@ Instruction *InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse( [&](Instruction *Elt, unsigned EltIdx, std::optional UseBB, std::optional PredBB) -> std::optional { // For now(?), only deal with, at most, a single level of PHI indirection. - if (UseBB && PredBB) + if (UseBB && PredBB) { Elt = dyn_cast(Elt->DoPHITranslation(*UseBB, *PredBB)); + if (Elt && Elt->getParent() == *UseBB) + EltDefinedInUseBB = true; + } // FIXME: deal with multiple levels of PHI indirection? // Did we find an extraction? @@ -1106,6 +1112,7 @@ Instruction *InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse( // from which all the elements were originally extracted from? // Note that we want for the map to have stable iteration order! SmallDenseMap SourceAggregates; + bool FoundSrcAgg = false; for (BasicBlock *Pred : Preds) { std::pair IV = SourceAggregates.insert({Pred, nullptr}); @@ -1117,9 +1124,68 @@ Instruction *InstCombinerImpl::foldAggregateConstructionIntoAggregateReuse( // aggregate produced by OrigIVI must have been originally extracted from // the same aggregate. Is that so? Can we find said original aggregate? SourceAggregate = FindCommonSourceAggregate(UseBB, Pred); - if (Describe(SourceAggregate) != AggregateDescription::Found) - return nullptr; // Give up. - IV.first->second = *SourceAggregate; + if (Describe(SourceAggregate) == AggregateDescription::Found) { + FoundSrcAgg = true; + IV.first->second = *SourceAggregate; + } else { + // If UseBB is the single successor of Pred, we can add InsertValue to + // Pred. + auto *BI = dyn_cast(Pred->getTerminator()); + if (!BI || !BI->isUnconditional()) + return nullptr; + } + } + + if (!FoundSrcAgg) + return nullptr; + + // Do some sanity check if we need to add insertvalue into predecessors. + auto OrigBB = OrigIVI.getParent(); + for (auto &It : SourceAggregates) { + if (Describe(It.second) == AggregateDescription::Found) + continue; + + // Element is defined in UseBB, so it can't be used in predecessors. + if (EltDefinedInUseBB) + return nullptr; + + // Do this transformation cross loop boundary may cause dead loop. So we + // should avoid this situation. But LoopInfo is not generally available, we + // must be conservative here. + // If OrigIVI is in UseBB and it's the only successor of PredBB, PredBB + // can't be in inner loop. + if (UseBB != OrigBB) + return nullptr; + + // Avoid constructing constant aggregate because constant value may expose + // more optimizations. + bool ConstAgg = true; + for (auto Val : AggElts) { + Value *Elt = (*Val)->DoPHITranslation(UseBB, It.first); + if (!isa(Elt)) { + ConstAgg = false; + break; + } + } + if (ConstAgg) + return nullptr; + } + + // For predecessors without appropriate source aggregate, create one in the + // predecessor. + for (auto &It : SourceAggregates) { + if (Describe(It.second) == AggregateDescription::Found) + continue; + + BasicBlock *Pred = It.first; + Builder.SetInsertPoint(Pred->getTerminator()); + Value *V = PoisonValue::get(AggTy); + for (auto [Idx, Val] : enumerate(AggElts)) { + Value *Elt = (*Val)->DoPHITranslation(UseBB, Pred); + V = Builder.CreateInsertValue(V, Elt, Idx); + } + + It.second = V; } // All good! Now we just need to thread the source aggregates here. diff --git a/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp b/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp index c8ee933913e65..b3883cd6e1688 100644 --- a/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp +++ b/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp @@ -1862,6 +1862,7 @@ void CHR::fixupBranchesAndSelects(CHRScope *Scope, ++NumCHRedBranches; } } + assert(NumCHRedBranches > 0); Stats.NumBranchesDelta += NumCHRedBranches - 1; Stats.WeightedNumBranchesDelta += (NumCHRedBranches - 1) * ProfileCount; ORE.emit([&]() { diff --git a/llvm/lib/Transforms/Instrumentation/MemProfiler.cpp b/llvm/lib/Transforms/Instrumentation/MemProfiler.cpp index 867158e782221..33a7a37fa28e6 100644 --- a/llvm/lib/Transforms/Instrumentation/MemProfiler.cpp +++ b/llvm/lib/Transforms/Instrumentation/MemProfiler.cpp @@ -1121,6 +1121,10 @@ MemProfUsePass::MemProfUsePass(std::string MemoryProfileFile, } PreservedAnalyses MemProfUsePass::run(Module &M, ModuleAnalysisManager &AM) { + // Return immediately if the module doesn't contain any function. + if (M.empty()) + return PreservedAnalyses::all(); + LLVM_DEBUG(dbgs() << "Read in memory profile:"); auto &Ctx = M.getContext(); auto ReaderOrErr = IndexedInstrProfReader::create(MemoryProfileFileName, *FS); diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp index 34006bfda96c5..22acf59c78a38 100644 --- a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp +++ b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp @@ -158,8 +158,8 @@ static cl::opt static cl::opt ClGatedCallbacks( "sanitizer-coverage-gated-trace-callbacks", - cl::desc("Gate the invocation of the tracing callbacks on a global " - "variable. Currently only supported for trace-pc-guard."), + cl::desc("Gate the invocation of the tracing callbacks on a global variable" + ". Currently only supported for trace-pc-guard and trace-cmp."), cl::Hidden, cl::init(false)); namespace { @@ -234,7 +234,8 @@ class ModuleSanitizerCoverage { void instrumentFunction(Function &F); void InjectCoverageForIndirectCalls(Function &F, ArrayRef IndirCalls); - void InjectTraceForCmp(Function &F, ArrayRef CmpTraceTargets); + void InjectTraceForCmp(Function &F, ArrayRef CmpTraceTargets, + Value *&FunctionGateCmp); void InjectTraceForDiv(Function &F, ArrayRef DivTraceTargets); void InjectTraceForGep(Function &F, @@ -242,17 +243,20 @@ class ModuleSanitizerCoverage { void InjectTraceForLoadsAndStores(Function &F, ArrayRef Loads, ArrayRef Stores); void InjectTraceForSwitch(Function &F, - ArrayRef SwitchTraceTargets); + ArrayRef SwitchTraceTargets, + Value *&FunctionGateCmp); bool InjectCoverage(Function &F, ArrayRef AllBlocks, - bool IsLeafFunc = true); + Value *&FunctionGateCmp, bool IsLeafFunc); GlobalVariable *CreateFunctionLocalArrayInSection(size_t NumElements, Function &F, Type *Ty, const char *Section); GlobalVariable *CreatePCArray(Function &F, ArrayRef AllBlocks); void CreateFunctionLocalArrays(Function &F, ArrayRef AllBlocks); + Instruction *CreateGateBranch(Function &F, Value *&FunctionGateCmp, + Instruction *I); Value *CreateFunctionLocalGateCmp(IRBuilder<> &IRB); void InjectCoverageAtBlock(Function &F, BasicBlock &BB, size_t Idx, - Value *&FunctionGateCmp, bool IsLeafFunc = true); + Value *&FunctionGateCmp, bool IsLeafFunc); Function *CreateInitCallsForSections(Module &M, const char *CtorName, const char *InitFunctionName, Type *Ty, const char *Section); @@ -492,9 +496,9 @@ bool ModuleSanitizerCoverage::instrumentModule() { SanCovLowestStack->setInitializer(Constant::getAllOnesValue(IntptrTy)); if (Options.GatedCallbacks) { - if (!Options.TracePCGuard) { + if (!Options.TracePCGuard && !Options.TraceCmp) { C->emitError(StringRef("'") + ClGatedCallbacks.ArgStr + - "' is only supported with trace-pc-guard"); + "' is only supported with trace-pc-guard or trace-cmp"); return true; } @@ -723,10 +727,11 @@ void ModuleSanitizerCoverage::instrumentFunction(Function &F) { if (Options.CollectControlFlow) createFunctionControlFlow(F); - InjectCoverage(F, BlocksToInstrument, IsLeafFunc); + Value *FunctionGateCmp = nullptr; + InjectCoverage(F, BlocksToInstrument, FunctionGateCmp, IsLeafFunc); InjectCoverageForIndirectCalls(F, IndirCalls); - InjectTraceForCmp(F, CmpTraceTargets); - InjectTraceForSwitch(F, SwitchTraceTargets); + InjectTraceForCmp(F, CmpTraceTargets, FunctionGateCmp); + InjectTraceForSwitch(F, SwitchTraceTargets, FunctionGateCmp); InjectTraceForDiv(F, DivTraceTargets); InjectTraceForGep(F, GepTraceTargets); InjectTraceForLoadsAndStores(F, Loads, Stores); @@ -815,12 +820,30 @@ Value *ModuleSanitizerCoverage::CreateFunctionLocalGateCmp(IRBuilder<> &IRB) { return Cmp; } +Instruction *ModuleSanitizerCoverage::CreateGateBranch(Function &F, + Value *&FunctionGateCmp, + Instruction *IP) { + if (!FunctionGateCmp) { + // Create this in the entry block + BasicBlock &BB = F.getEntryBlock(); + BasicBlock::iterator IP = BB.getFirstInsertionPt(); + IP = PrepareToSplitEntryBlock(BB, IP); + IRBuilder<> EntryIRB(&*IP); + FunctionGateCmp = CreateFunctionLocalGateCmp(EntryIRB); + } + // Set the branch weights in order to minimize the price paid when the + // gate is turned off, allowing the default enablement of this + // instrumentation with as little of a performance cost as possible + auto Weights = MDBuilder(*C).createBranchWeights(1, 100000); + return SplitBlockAndInsertIfThen(FunctionGateCmp, IP, false, Weights); +} + bool ModuleSanitizerCoverage::InjectCoverage(Function &F, ArrayRef AllBlocks, + Value *&FunctionGateCmp, bool IsLeafFunc) { if (AllBlocks.empty()) return false; CreateFunctionLocalArrays(F, AllBlocks); - Value *FunctionGateCmp = nullptr; for (size_t i = 0, N = AllBlocks.size(); i < N; i++) InjectCoverageAtBlock(F, *AllBlocks[i], i, FunctionGateCmp, IsLeafFunc); return true; @@ -854,7 +877,8 @@ void ModuleSanitizerCoverage::InjectCoverageForIndirectCalls( // {NumCases, ValueSizeInBits, Case0Value, Case1Value, Case2Value, ... }) void ModuleSanitizerCoverage::InjectTraceForSwitch( - Function &, ArrayRef SwitchTraceTargets) { + Function &F, ArrayRef SwitchTraceTargets, + Value *&FunctionGateCmp) { for (auto *I : SwitchTraceTargets) { if (SwitchInst *SI = dyn_cast(I)) { InstrumentationIRBuilder IRB(I); @@ -885,7 +909,13 @@ void ModuleSanitizerCoverage::InjectTraceForSwitch( *CurModule, ArrayOfInt64Ty, false, GlobalVariable::InternalLinkage, ConstantArray::get(ArrayOfInt64Ty, Initializers), "__sancov_gen_cov_switch_values"); - IRB.CreateCall(SanCovTraceSwitchFunction, {Cond, GV}); + if (Options.GatedCallbacks) { + auto GateBranch = CreateGateBranch(F, FunctionGateCmp, I); + IRBuilder<> GateIRB(GateBranch); + GateIRB.CreateCall(SanCovTraceSwitchFunction, {Cond, GV}); + } else { + IRB.CreateCall(SanCovTraceSwitchFunction, {Cond, GV}); + } } } } @@ -949,7 +979,8 @@ void ModuleSanitizerCoverage::InjectTraceForLoadsAndStores( } void ModuleSanitizerCoverage::InjectTraceForCmp( - Function &, ArrayRef CmpTraceTargets) { + Function &F, ArrayRef CmpTraceTargets, + Value *&FunctionGateCmp) { for (auto *I : CmpTraceTargets) { if (ICmpInst *ICMP = dyn_cast(I)) { InstrumentationIRBuilder IRB(ICMP); @@ -977,8 +1008,15 @@ void ModuleSanitizerCoverage::InjectTraceForCmp( } auto Ty = Type::getIntNTy(*C, TypeSize); - IRB.CreateCall(CallbackFunc, {IRB.CreateIntCast(A0, Ty, true), - IRB.CreateIntCast(A1, Ty, true)}); + if (Options.GatedCallbacks) { + auto GateBranch = CreateGateBranch(F, FunctionGateCmp, I); + IRBuilder<> GateIRB(GateBranch); + GateIRB.CreateCall(CallbackFunc, {GateIRB.CreateIntCast(A0, Ty, true), + GateIRB.CreateIntCast(A1, Ty, true)}); + } else { + IRB.CreateCall(CallbackFunc, {IRB.CreateIntCast(A0, Ty, true), + IRB.CreateIntCast(A1, Ty, true)}); + } } } } @@ -1012,19 +1050,10 @@ void ModuleSanitizerCoverage::InjectCoverageAtBlock(Function &F, BasicBlock &BB, ConstantInt::get(IntptrTy, Idx * 4)), PtrTy); if (Options.GatedCallbacks) { - if (!FunctionGateCmp) { - // Create this in the entry block - assert(IsEntryBB); - FunctionGateCmp = CreateFunctionLocalGateCmp(IRB); - } - // Set the branch weights in order to minimize the price paid when the - // gate is turned off, allowing the default enablement of this - // instrumentation with as little of a performance cost as possible - auto Weights = MDBuilder(*C).createBranchWeights(1, 100000); - auto ThenTerm = - SplitBlockAndInsertIfThen(FunctionGateCmp, &*IP, false, Weights); - IRBuilder<> ThenIRB(ThenTerm); - ThenIRB.CreateCall(SanCovTracePCGuard, GuardPtr)->setCannotMerge(); + Instruction *I = &*IP; + auto GateBranch = CreateGateBranch(F, FunctionGateCmp, I); + IRBuilder<> GateIRB(GateBranch); + GateIRB.CreateCall(SanCovTracePCGuard, GuardPtr)->setCannotMerge(); } else { IRB.CreateCall(SanCovTracePCGuard, GuardPtr)->setCannotMerge(); } diff --git a/llvm/lib/Transforms/Scalar/Scalarizer.cpp b/llvm/lib/Transforms/Scalar/Scalarizer.cpp index 03d069c9fcb36..3b701e6ca0976 100644 --- a/llvm/lib/Transforms/Scalar/Scalarizer.cpp +++ b/llvm/lib/Transforms/Scalar/Scalarizer.cpp @@ -727,7 +727,7 @@ bool ScalarizerVisitor::splitCall(CallInst &CI) { SmallVector Tys; // Add return type if intrinsic is overloaded on it. - if (isVectorIntrinsicWithOverloadTypeAtArg(ID, -1)) + if (isVectorIntrinsicWithOverloadTypeAtArg(ID, -1, TTI)) Tys.push_back(VS->SplitTy); if (AreAllVectorsOfMatchingSize) { @@ -767,13 +767,13 @@ bool ScalarizerVisitor::splitCall(CallInst &CI) { } Scattered[I] = scatter(&CI, OpI, *OpVS); - if (isVectorIntrinsicWithOverloadTypeAtArg(ID, I)) { + if (isVectorIntrinsicWithOverloadTypeAtArg(ID, I, TTI)) { OverloadIdx[I] = Tys.size(); Tys.push_back(OpVS->SplitTy); } } else { ScalarOperands[I] = OpI; - if (isVectorIntrinsicWithOverloadTypeAtArg(ID, I)) + if (isVectorIntrinsicWithOverloadTypeAtArg(ID, I, TTI)) Tys.push_back(OpI->getType()); } } diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 42c258aa2c7b0..b74d2e8cff0aa 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -1645,7 +1645,7 @@ static bool valueCoversEntireFragment(Type *ValTy, DbgVariableIntrinsic *DII) { // We can't always calculate the size of the DI variable (e.g. if it is a // VLA). Try to use the size of the alloca that the dbg intrinsic describes - // intead. + // instead. if (DII->isAddressOfVariable()) { // DII should have exactly 1 location when it is an address. assert(DII->getNumVariableLocationOps() == 1 && @@ -1672,7 +1672,7 @@ static bool valueCoversEntireFragment(Type *ValTy, DbgVariableRecord *DVR) { // We can't always calculate the size of the DI variable (e.g. if it is a // VLA). Try to use the size of the alloca that the dbg intrinsic describes - // intead. + // instead. if (DVR->isAddressOfVariable()) { // DVR should have exactly 1 location when it is an address. assert(DVR->getNumVariableLocationOps() == 1 && diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp index 1991ec82d1e1e..c7e814bced57d 100644 --- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp @@ -1662,21 +1662,43 @@ static bool areIdenticalUpToCommutativity(const Instruction *I1, /// \endcode /// /// So we need to turn hoisted load/store into cload/cstore. +/// +/// \param BI The branch instruction. +/// \param SpeculatedConditionalLoadsStores The load/store instructions that +/// will be speculated. +/// \param Invert indicates if speculates FalseBB. Only used in triangle CFG. static void hoistConditionalLoadsStores( BranchInst *BI, SmallVectorImpl &SpeculatedConditionalLoadsStores, - bool Invert) { + std::optional Invert) { auto &Context = BI->getParent()->getContext(); auto *VCondTy = FixedVectorType::get(Type::getInt1Ty(Context), 1); auto *Cond = BI->getOperand(0); // Construct the condition if needed. BasicBlock *BB = BI->getParent(); - IRBuilder<> Builder(SpeculatedConditionalLoadsStores.back()); - Value *Mask = Builder.CreateBitCast( - Invert ? Builder.CreateXor(Cond, ConstantInt::getTrue(Context)) : Cond, - VCondTy); + IRBuilder<> Builder( + Invert.has_value() ? SpeculatedConditionalLoadsStores.back() : BI); + Value *Mask = nullptr; + Value *MaskFalse = nullptr; + Value *MaskTrue = nullptr; + if (Invert.has_value()) { + Mask = Builder.CreateBitCast( + *Invert ? Builder.CreateXor(Cond, ConstantInt::getTrue(Context)) : Cond, + VCondTy); + } else { + MaskFalse = Builder.CreateBitCast( + Builder.CreateXor(Cond, ConstantInt::getTrue(Context)), VCondTy); + MaskTrue = Builder.CreateBitCast(Cond, VCondTy); + } + auto PeekThroughBitcasts = [](Value *V) { + while (auto *BitCast = dyn_cast(V)) + V = BitCast->getOperand(0); + return V; + }; for (auto *I : SpeculatedConditionalLoadsStores) { - IRBuilder<> Builder(I); + IRBuilder<> Builder(Invert.has_value() ? I : BI); + if (!Invert.has_value()) + Mask = I->getParent() == BI->getSuccessor(0) ? MaskTrue : MaskFalse; // We currently assume conditional faulting load/store is supported for // scalar types only when creating new instructions. This can be easily // extended for vector types in the future. @@ -1688,12 +1710,14 @@ static void hoistConditionalLoadsStores( auto *Ty = I->getType(); PHINode *PN = nullptr; Value *PassThru = nullptr; - for (User *U : I->users()) - if ((PN = dyn_cast(U))) { - PassThru = Builder.CreateBitCast(PN->getIncomingValueForBlock(BB), - FixedVectorType::get(Ty, 1)); - break; - } + if (Invert.has_value()) + for (User *U : I->users()) + if ((PN = dyn_cast(U))) { + PassThru = Builder.CreateBitCast( + PeekThroughBitcasts(PN->getIncomingValueForBlock(BB)), + FixedVectorType::get(Ty, 1)); + break; + } MaskedLoadStore = Builder.CreateMaskedLoad( FixedVectorType::get(Ty, 1), Op0, LI->getAlign(), Mask, PassThru); Value *NewLoadStore = Builder.CreateBitCast(MaskedLoadStore, Ty); @@ -1702,8 +1726,8 @@ static void hoistConditionalLoadsStores( I->replaceAllUsesWith(NewLoadStore); } else { // Handle Store. - auto *StoredVal = - Builder.CreateBitCast(Op0, FixedVectorType::get(Op0->getType(), 1)); + auto *StoredVal = Builder.CreateBitCast( + PeekThroughBitcasts(Op0), FixedVectorType::get(Op0->getType(), 1)); MaskedLoadStore = Builder.CreateMaskedStore( StoredVal, I->getOperand(1), cast(I)->getAlign(), Mask); } @@ -3155,7 +3179,8 @@ static bool validateAndCostRequiredSelects(BasicBlock *BB, BasicBlock *ThenBB, return HaveRewritablePHIs; } -static bool isProfitableToSpeculate(const BranchInst *BI, bool Invert, +static bool isProfitableToSpeculate(const BranchInst *BI, + std::optional Invert, const TargetTransformInfo &TTI) { // If the branch is non-unpredictable, and is predicted to *not* branch to // the `then` block, then avoid speculating it. @@ -3166,7 +3191,10 @@ static bool isProfitableToSpeculate(const BranchInst *BI, bool Invert, if (!extractBranchWeights(*BI, TWeight, FWeight) || (TWeight + FWeight) == 0) return true; - uint64_t EndWeight = Invert ? TWeight : FWeight; + if (!Invert.has_value()) + return false; + + uint64_t EndWeight = *Invert ? TWeight : FWeight; BranchProbability BIEndProb = BranchProbability::getBranchProbability(EndWeight, TWeight + FWeight); BranchProbability Likely = TTI.getPredictableBranchThreshold(); @@ -3814,10 +3842,7 @@ static bool foldTwoEntryPHINode(PHINode *PN, const TargetTransformInfo &TTI, // These can often be turned into switches and other things. auto IsBinOpOrAnd = [](Value *V) { return match( - V, m_CombineOr( - m_BinOp(), - m_CombineOr(m_Select(m_Value(), m_ImmConstant(), m_Value()), - m_Select(m_Value(), m_Value(), m_ImmConstant())))); + V, m_CombineOr(m_BinOp(), m_c_Select(m_ImmConstant(), m_Value()))); }; if (PN->getType()->isIntegerTy(1) && (IsBinOpOrAnd(PN->getIncomingValue(0)) || @@ -8034,6 +8059,35 @@ bool SimplifyCFGOpt::simplifyCondBranch(BranchInst *BI, IRBuilder<> &Builder) { if (HoistCommon && hoistCommonCodeFromSuccessors(BI, !Options.HoistCommonInsts)) return requestResimplify(); + + if (BI && HoistLoadsStoresWithCondFaulting && + Options.HoistLoadsStoresWithCondFaulting && + isProfitableToSpeculate(BI, std::nullopt, TTI)) { + SmallVector SpeculatedConditionalLoadsStores; + auto CanSpeculateConditionalLoadsStores = [&]() { + for (auto *Succ : successors(BB)) { + for (Instruction &I : *Succ) { + if (I.isTerminator()) { + if (I.getNumSuccessors() > 1) + return false; + continue; + } else if (!isSafeCheapLoadStore(&I, TTI) || + SpeculatedConditionalLoadsStores.size() == + HoistLoadsStoresWithCondFaultingThreshold) { + return false; + } + SpeculatedConditionalLoadsStores.push_back(&I); + } + } + return !SpeculatedConditionalLoadsStores.empty(); + }; + + if (CanSpeculateConditionalLoadsStores()) { + hoistConditionalLoadsStores(BI, SpeculatedConditionalLoadsStores, + std::nullopt); + return requestResimplify(); + } + } } else { // If Successor #1 has multiple preds, we may be able to conditionally // execute Successor #0 if it branches to Successor #1. diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h b/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h index a6b5235235ff3..fbcf181a45a66 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h +++ b/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h @@ -234,9 +234,9 @@ class VPBuilder { VPDerivedIVRecipe *createDerivedIV(InductionDescriptor::InductionKind Kind, FPMathOperator *FPBinOp, VPValue *Start, VPCanonicalIVPHIRecipe *CanonicalIV, - VPValue *Step) { + VPValue *Step, const Twine &Name = "") { return tryInsertInstruction( - new VPDerivedIVRecipe(Kind, FPBinOp, Start, CanonicalIV, Step)); + new VPDerivedIVRecipe(Kind, FPBinOp, Start, CanonicalIV, Step, Name)); } VPScalarCastRecipe *createScalarCast(Instruction::CastOps Opcode, VPValue *Op, diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index fda6550a37548..d68a26251ac9d 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -7684,7 +7684,8 @@ DenseMap LoopVectorizationPlanner::executePlan( LLVM_DEBUG(BestVPlan.dump()); // Perform the actual loop transformation. - VPTransformState State(BestVF, BestUF, LI, DT, ILV.Builder, &ILV, &BestVPlan); + VPTransformState State(&TTI, BestVF, BestUF, LI, DT, ILV.Builder, &ILV, + &BestVPlan); // 0. Generate SCEV-dependent code into the preheader, including TripCount, // before making any changes to the CFG. @@ -8863,47 +8864,47 @@ static void addScalarResumePhis(VPRecipeBuilder &Builder, VPlan &Plan) { } } -// Collect VPIRInstructions for phis in the original exit block that are modeled +// Collect VPIRInstructions for phis in the exit blocks that are modeled // in VPlan and add the exiting VPValue as operand. Some exiting values are not // modeled explicitly yet and won't be included. Those are un-truncated // VPWidenIntOrFpInductionRecipe, VPWidenPointerInductionRecipe and induction // increments. -static SetVector collectUsersInExitBlock( +static SetVector collectUsersInExitBlocks( Loop *OrigLoop, VPRecipeBuilder &Builder, VPlan &Plan, const MapVector &Inductions) { - auto *MiddleVPBB = Plan.getMiddleBlock(); - // No edge from the middle block to the unique exit block has been inserted - // and there is nothing to fix from vector loop; phis should have incoming - // from scalar loop only. - if (MiddleVPBB->getNumSuccessors() != 2) - return {}; SetVector ExitUsersToFix; - VPBasicBlock *ExitVPBB = cast(MiddleVPBB->getSuccessors()[0]); - BasicBlock *ExitingBB = OrigLoop->getExitingBlock(); - for (VPRecipeBase &R : *ExitVPBB) { - auto *ExitIRI = dyn_cast(&R); - if (!ExitIRI) - continue; - auto *ExitPhi = dyn_cast(&ExitIRI->getInstruction()); - if (!ExitPhi) - break; - Value *IncomingValue = ExitPhi->getIncomingValueForBlock(ExitingBB); - VPValue *V = Builder.getVPValueOrAddLiveIn(IncomingValue); - // Exit values for inductions are computed and updated outside of VPlan and - // independent of induction recipes. - // TODO: Compute induction exit values in VPlan. - if ((isa(V) && - !cast(V)->getTruncInst()) || - isa(V) || - (isa(IncomingValue) && - OrigLoop->contains(cast(IncomingValue)) && - any_of(IncomingValue->users(), [&Inductions](User *U) { - auto *P = dyn_cast(U); - return P && Inductions.contains(P); - }))) - continue; - ExitUsersToFix.insert(ExitIRI); - ExitIRI->addOperand(V); + for (VPIRBasicBlock *ExitVPBB : Plan.getExitBlocks()) { + BasicBlock *ExitBB = ExitVPBB->getIRBasicBlock(); + BasicBlock *ExitingBB = find_singleton( + to_vector(predecessors(ExitBB)), + [OrigLoop](BasicBlock *Pred, bool AllowRepeats) { + return OrigLoop->contains(Pred) ? Pred : nullptr; + }); + for (VPRecipeBase &R : *ExitVPBB) { + auto *ExitIRI = dyn_cast(&R); + if (!ExitIRI) + continue; + auto *ExitPhi = dyn_cast(&ExitIRI->getInstruction()); + if (!ExitPhi) + break; + Value *IncomingValue = ExitPhi->getIncomingValueForBlock(ExitingBB); + VPValue *V = Builder.getVPValueOrAddLiveIn(IncomingValue); + // Exit values for inductions are computed and updated outside of VPlan + // and independent of induction recipes. + // TODO: Compute induction exit values in VPlan. + if ((isa(V) && + !cast(V)->getTruncInst()) || + isa(V) || + (isa(IncomingValue) && + OrigLoop->contains(cast(IncomingValue)) && + any_of(IncomingValue->users(), [&Inductions](User *U) { + auto *P = dyn_cast(U); + return P && Inductions.contains(P); + }))) + continue; + ExitUsersToFix.insert(ExitIRI); + ExitIRI->addOperand(V); + } } return ExitUsersToFix; } @@ -8911,8 +8912,8 @@ static SetVector collectUsersInExitBlock( // Add exit values to \p Plan. Extracts are added for each entry in \p // ExitUsersToFix if needed and their operands are updated. static void -addUsersInExitBlock(VPlan &Plan, - const SetVector &ExitUsersToFix) { +addUsersInExitBlocks(VPlan &Plan, + const SetVector &ExitUsersToFix) { if (ExitUsersToFix.empty()) return; @@ -8928,6 +8929,8 @@ addUsersInExitBlock(VPlan &Plan, if (V->isLiveIn()) continue; + assert(ExitIRI->getParent()->getSinglePredecessor() == MiddleVPBB && + "Exit value not handled yet for this edge."); LLVMContext &Ctx = ExitIRI->getInstruction().getContext(); VPValue *Ext = B.createNaryOp(VPInstruction::ExtractFromEnd, {V, Plan.getOrAddLiveIn(ConstantInt::get( @@ -9205,10 +9208,10 @@ LoopVectorizationPlanner::tryToBuildVPlanWithVPRecipes(VFRange &Range) { RecipeBuilder.fixHeaderPhis(); addScalarResumePhis(RecipeBuilder, *Plan); - SetVector ExitUsersToFix = collectUsersInExitBlock( + SetVector ExitUsersToFix = collectUsersInExitBlocks( OrigLoop, RecipeBuilder, *Plan, Legal->getInductionVars()); addExitUsersForFirstOrderRecurrences(*Plan, ExitUsersToFix); - addUsersInExitBlock(*Plan, ExitUsersToFix); + addUsersInExitBlocks(*Plan, ExitUsersToFix); // --------------------------------------------------------------------------- // Transform initial VPlan: Apply previously taken decisions, in order, to // bring the VPlan to its final state. @@ -9600,7 +9603,7 @@ void VPDerivedIVRecipe::execute(VPTransformState &State) { Value *DerivedIV = emitTransformedIndex( State.Builder, CanonicalIV, getStartValue()->getLiveInIRValue(), Step, Kind, cast_if_present(FPBinOp)); - DerivedIV->setName("offset.idx"); + DerivedIV->setName(Name); assert(DerivedIV != CanonicalIV && "IV didn't need transforming?"); State.set(this, DerivedIV, VPLane(0)); diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp index 47dcde7d9d189..115cbd4d2ce5e 100644 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -456,15 +456,18 @@ static std::string shortBundleName(ArrayRef VL, int Idx = -1) { /// \returns true if all of the instructions in \p VL are in the same block or /// false otherwise. static bool allSameBlock(ArrayRef VL) { - Instruction *I0 = dyn_cast(VL[0]); - if (!I0) + auto *It = find_if(VL, IsaPred); + if (It == VL.end()) return false; + Instruction *I0 = cast(*It); if (all_of(VL, isVectorLikeInstWithConstOps)) return true; BasicBlock *BB = I0->getParent(); - for (int I = 1, E = VL.size(); I < E; I++) { - auto *II = dyn_cast(VL[I]); + for (Value *V : iterator_range(It, VL.end())) { + if (isa(V)) + continue; + auto *II = dyn_cast(V); if (!II) return false; @@ -893,10 +896,19 @@ static bool isCmpSameOrSwapped(const CmpInst *BaseCI, const CmpInst *CI, static InstructionsState getSameOpcode(ArrayRef VL, const TargetLibraryInfo &TLI) { // Make sure these are all Instructions. - if (!all_of(VL, IsaPred)) + if (!all_of(VL, IsaPred)) + return InstructionsState::invalid(); + + auto *It = find_if(VL, IsaPred); + if (It == VL.end()) + return InstructionsState::invalid(); + + Value *V = *It; + unsigned InstCnt = std::count_if(It, VL.end(), IsaPred); + if ((VL.size() > 2 && !isa(V) && InstCnt < VL.size() / 2) || + (VL.size() == 2 && InstCnt < 2)) return InstructionsState::invalid(); - Value *V = VL.front(); bool IsCastOp = isa(V); bool IsBinOp = isa(V); bool IsCmpOp = isa(V); @@ -904,7 +916,7 @@ static InstructionsState getSameOpcode(ArrayRef VL, IsCmpOp ? cast(V)->getPredicate() : CmpInst::BAD_ICMP_PREDICATE; unsigned Opcode = cast(V)->getOpcode(); unsigned AltOpcode = Opcode; - unsigned AltIndex = 0; + unsigned AltIndex = std::distance(VL.begin(), It); bool SwappedPredsCompatible = [&]() { if (!IsCmpOp) @@ -940,8 +952,17 @@ static InstructionsState getSameOpcode(ArrayRef VL, if (!isTriviallyVectorizable(BaseID) && BaseMappings.empty()) return InstructionsState::invalid(); } + bool AnyPoison = InstCnt != VL.size(); for (int Cnt = 0, E = VL.size(); Cnt < E; Cnt++) { - auto *I = cast(VL[Cnt]); + auto *I = dyn_cast(VL[Cnt]); + if (!I) + continue; + + // Cannot combine poison and divisions. + // TODO: do some smart analysis of the CallInsts to exclude divide-like + // intrinsics/functions only. + if (AnyPoison && (I->isIntDivRem() || I->isFPDivRem() || isa(I))) + return InstructionsState::invalid(); unsigned InstOpcode = I->getOpcode(); if (IsBinOp && isa(I)) { if (InstOpcode == Opcode || InstOpcode == AltOpcode) @@ -975,6 +996,9 @@ static InstructionsState getSameOpcode(ArrayRef VL, Type *Ty1 = Inst->getOperand(0)->getType(); if (Ty0 == Ty1) { assert(InstOpcode == Opcode && "Expected same CmpInst opcode."); + assert(InstOpcode == AltOpcode && + "Alternate instructions are only supported by BinaryOperator " + "and CastInst."); // Check for compatible operands. If the corresponding operands are not // compatible - need to perform alternate vectorization. CmpInst::Predicate CurrentPred = Inst->getPredicate(); @@ -1003,7 +1027,10 @@ static InstructionsState getSameOpcode(ArrayRef VL, AltPred == CurrentPred || AltPred == SwappedCurrentPred) continue; } - } else if (InstOpcode == Opcode || InstOpcode == AltOpcode) { + } else if (InstOpcode == Opcode) { + assert(InstOpcode == AltOpcode && + "Alternate instructions are only supported by BinaryOperator and " + "CastInst."); if (auto *Gep = dyn_cast(I)) { if (Gep->getNumOperands() != 2 || Gep->getOperand(0)->getType() != IBase->getOperand(0)->getType()) @@ -1116,9 +1143,7 @@ static void addMask(SmallVectorImpl &Mask, ArrayRef SubMask, assert( (!ExtendingManyInputs || SubMask.size() > Mask.size() || // Check if input scalars were extended to match the size of other node. - (SubMask.size() == Mask.size() && - std::all_of(std::next(Mask.begin(), Mask.size() / 2), Mask.end(), - [](int Idx) { return Idx == PoisonMaskElem; }))) && + (SubMask.size() == Mask.size() && Mask.back() == PoisonMaskElem)) && "SubMask with many inputs support must be larger than the mask."); if (Mask.empty()) { Mask.append(SubMask.begin(), SubMask.end()); @@ -1177,10 +1202,13 @@ static SmallBitVector getAltInstrMask(ArrayRef VL, unsigned Opcode0, Type *ScalarTy = VL[0]->getType(); unsigned ScalarTyNumElements = getNumElements(ScalarTy); SmallBitVector OpcodeMask(VL.size() * ScalarTyNumElements, false); - for (unsigned Lane : seq(VL.size())) + for (unsigned Lane : seq(VL.size())) { + if (isa(VL[Lane])) + continue; if (cast(VL[Lane])->getOpcode() == Opcode1) OpcodeMask.set(Lane * ScalarTyNumElements, Lane * ScalarTyNumElements + ScalarTyNumElements); + } return OpcodeMask; } @@ -1365,12 +1393,48 @@ class BoUpSLP { return VectorizableTree.front()->Scalars; } + /// Returns the type/is-signed info for the root node in the graph without + /// casting. + std::optional> getRootNodeTypeWithNoCast() const { + const TreeEntry &Root = *VectorizableTree.front().get(); + if (Root.State != TreeEntry::Vectorize || Root.isAltShuffle() || + !Root.Scalars.front()->getType()->isIntegerTy()) + return std::nullopt; + auto It = MinBWs.find(&Root); + if (It != MinBWs.end()) + return std::make_pair(IntegerType::get(Root.Scalars.front()->getContext(), + It->second.first), + It->second.second); + if (Root.getOpcode() == Instruction::ZExt || + Root.getOpcode() == Instruction::SExt) + return std::make_pair(cast(Root.getMainOp())->getSrcTy(), + Root.getOpcode() == Instruction::SExt); + return std::nullopt; + } + /// Checks if the root graph node can be emitted with narrower bitwidth at /// codegen and returns it signedness, if so. bool isSignedMinBitwidthRootNode() const { return MinBWs.at(VectorizableTree.front().get()).second; } + /// Returns reduction type after minbitdth analysis. + FixedVectorType *getReductionType() const { + if (ReductionBitWidth == 0 || + !VectorizableTree.front()->Scalars.front()->getType()->isIntegerTy() || + ReductionBitWidth >= + DL->getTypeSizeInBits( + VectorizableTree.front()->Scalars.front()->getType())) + return getWidenedType( + VectorizableTree.front()->Scalars.front()->getType(), + VectorizableTree.front()->getVectorFactor()); + return getWidenedType( + IntegerType::get( + VectorizableTree.front()->Scalars.front()->getContext(), + ReductionBitWidth), + VectorizableTree.front()->getVectorFactor()); + } + /// Builds external uses of the vectorized scalars, i.e. the list of /// vectorized scalars to be extracted, their lanes and their scalar users. \p /// ExternallyUsedValues contains additional list of external uses to handle @@ -1781,13 +1845,17 @@ class BoUpSLP { (S.MainOp->getNumOperands() <= 2 || !MainAltOps.empty() || !S.isAltShuffle()) && all_of(Ops, [&S](Value *V) { - return cast(V)->getNumOperands() == - S.MainOp->getNumOperands(); + return isa(V) || + cast(V)->getNumOperands() == + S.MainOp->getNumOperands(); })) return S.isAltShuffle() ? LookAheadHeuristics::ScoreAltOpcodes : LookAheadHeuristics::ScoreSameOpcode; } + if (I1 && isa(V2)) + return LookAheadHeuristics::ScoreSameOpcode; + if (isa(V2)) return LookAheadHeuristics::ScoreUndef; @@ -2222,7 +2290,7 @@ class BoUpSLP { MapVector> HashMap; // Try to be closer to the original results, if we have multiple lanes // with same cost. If 2 lanes have the same cost, use the one with the - // lowest index. + // highest index. for (int I = getNumLanes(); I > 0; --I) { unsigned Lane = I - 1; OperandsOrderData NumFreeOpsHash = @@ -2336,17 +2404,17 @@ class BoUpSLP { assert(!VL.empty() && "Bad VL"); assert((empty() || VL.size() == getNumLanes()) && "Expected same number of lanes"); - assert(isa(VL[0]) && "Expected instruction"); constexpr unsigned IntrinsicNumOperands = 2; - unsigned NumOperands = isa(VL[0]) - ? IntrinsicNumOperands - : cast(VL[0])->getNumOperands(); + auto *VL0 = cast(*find_if(VL, IsaPred)); + unsigned NumOperands = isa(VL0) ? IntrinsicNumOperands + : VL0->getNumOperands(); OpsVec.resize(NumOperands); unsigned NumLanes = VL.size(); for (unsigned OpIdx = 0; OpIdx != NumOperands; ++OpIdx) { OpsVec[OpIdx].resize(NumLanes); for (unsigned Lane = 0; Lane != NumLanes; ++Lane) { - assert(isa(VL[Lane]) && "Expected instruction"); + assert((isa(VL[Lane]) || isa(VL[Lane])) && + "Expected instruction or poison value"); // Our tree has just 3 nodes: the root and two operands. // It is therefore trivial to get the APO. We only need to check the // opcode of VL[Lane] and whether the operand at OpIdx is the LHS or @@ -2357,6 +2425,12 @@ class BoUpSLP { // Since operand reordering is performed on groups of commutative // operations or alternating sequences (e.g., +, -), we can safely // tell the inverse operations by checking commutativity. + if (isa(VL[Lane])) { + OpsVec[OpIdx][Lane] = { + PoisonValue::get(VL0->getOperand(OpIdx)->getType()), true, + false}; + continue; + } bool IsInverseOperation = !isCommutative(cast(VL[Lane])); bool APO = (OpIdx == 0) ? false : IsInverseOperation; OpsVec[OpIdx][Lane] = {cast(VL[Lane])->getOperand(OpIdx), @@ -2454,7 +2528,7 @@ class BoUpSLP { Value *OpILn = getValue(OpI, Ln); return (L && L->isLoopInvariant(OpILn)) || (getSameOpcode({Op, OpILn}, TLI).getOpcode() && - Op->getParent() == cast(OpILn)->getParent()); + allSameBlock({Op, OpILn})); })) return true; } @@ -2466,7 +2540,8 @@ class BoUpSLP { VLOperands(ArrayRef RootVL, const BoUpSLP &R) : TLI(*R.TLI), DL(*R.DL), SE(*R.SE), R(R), L(R.LI->getLoopFor( - (cast(RootVL.front())->getParent()))) { + (cast(*find_if(RootVL, IsaPred)) + ->getParent()))) { // Append all the operands of RootVL. appendOperandsOfVL(RootVL); } @@ -3268,13 +3343,18 @@ class BoUpSLP { /// Set the operands of this bundle in their original order. void setOperandsInOrder() { assert(Operands.empty() && "Already initialized?"); - auto *I0 = cast(Scalars[0]); + auto *I0 = cast(*find_if(Scalars, IsaPred)); Operands.resize(I0->getNumOperands()); unsigned NumLanes = Scalars.size(); for (unsigned OpIdx = 0, NumOperands = I0->getNumOperands(); OpIdx != NumOperands; ++OpIdx) { Operands[OpIdx].resize(NumLanes); for (unsigned Lane = 0; Lane != NumLanes; ++Lane) { + if (isa(Scalars[Lane])) { + Operands[OpIdx][Lane] = + PoisonValue::get(I0->getOperand(OpIdx)->getType()); + continue; + } auto *I = cast(Scalars[Lane]); assert(I->getNumOperands() == NumOperands && "Expected same number of operands"); @@ -4894,8 +4974,8 @@ BoUpSLP::canVectorizeLoads(ArrayRef VL, const Value *VL0, PointerOps.resize(Sz); auto *POIter = PointerOps.begin(); for (Value *V : VL) { - auto *L = cast(V); - if (!L->isSimple()) + auto *L = dyn_cast(V); + if (!L || !L->isSimple()) return LoadsState::Gather; *POIter = L->getPointerOperand(); ++POIter; @@ -5471,11 +5551,15 @@ BoUpSLP::getReorderingData(const TreeEntry &TE, bool TopToBottom) { // Try build correct order for extractelement instructions. SmallVector ReusedMask(TE.ReuseShuffleIndices.begin(), TE.ReuseShuffleIndices.end()); - if (TE.getOpcode() == Instruction::ExtractElement && !TE.isAltShuffle() && + if (TE.getOpcode() == Instruction::ExtractElement && all_of(TE.Scalars, [Sz](Value *V) { + if (isa(V)) + return true; std::optional Idx = getExtractIndex(cast(V)); return Idx && *Idx < Sz; })) { + assert(!TE.isAltShuffle() && "Alternate instructions are only supported " + "by BinaryOperator and CastInst."); SmallVector ReorderMask(Sz, PoisonMaskElem); if (TE.ReorderIndices.empty()) std::iota(ReorderMask.begin(), ReorderMask.end(), 0); @@ -5520,9 +5604,11 @@ BoUpSLP::getReorderingData(const TreeEntry &TE, bool TopToBottom) { if ((TE.State == TreeEntry::Vectorize || TE.State == TreeEntry::StridedVectorize) && (isa(TE.getMainOp()) || - (TopToBottom && isa(TE.getMainOp()))) && - !TE.isAltShuffle()) + (TopToBottom && isa(TE.getMainOp())))) { + assert(!TE.isAltShuffle() && "Alternate instructions are only supported by " + "BinaryOperator and CastInst."); return TE.ReorderIndices; + } if (TE.State == TreeEntry::Vectorize && TE.getOpcode() == Instruction::PHI) { if (!TE.ReorderIndices.empty()) return TE.ReorderIndices; @@ -5557,7 +5643,8 @@ BoUpSLP::getReorderingData(const TreeEntry &TE, bool TopToBottom) { auto PHICompare = [&](unsigned I1, unsigned I2) { Value *V1 = TE.Scalars[I1]; Value *V2 = TE.Scalars[I2]; - if (V1 == V2 || (V1->getNumUses() == 0 && V2->getNumUses() == 0)) + if (V1 == V2 || (V1->getNumUses() == 0 && V2->getNumUses() == 0) || + isa(V1) || isa(V2)) return false; if (V1->getNumUses() < V2->getNumUses()) return true; @@ -5616,18 +5703,12 @@ BoUpSLP::getReorderingData(const TreeEntry &TE, bool TopToBottom) { } return false; }; - SmallDenseMap PhiToId; - SmallVector Phis(TE.Scalars.size()); + OrdersType Phis(TE.Scalars.size()); std::iota(Phis.begin(), Phis.end(), 0); - OrdersType ResOrder(TE.Scalars.size()); - for (unsigned Id = 0, Sz = TE.Scalars.size(); Id < Sz; ++Id) - PhiToId[Id] = Id; stable_sort(Phis, PHICompare); - for (unsigned Id = 0, Sz = Phis.size(); Id < Sz; ++Id) - ResOrder[Id] = PhiToId[Phis[Id]]; - if (isIdentityOrder(ResOrder)) + if (isIdentityOrder(Phis)) return std::nullopt; // No need to reorder. - return std::move(ResOrder); + return std::move(Phis); } if (TE.isGather() && !TE.isAltShuffle() && allSameType(TE.Scalars)) { // TODO: add analysis of other gather nodes with extractelement @@ -5918,8 +5999,11 @@ void BoUpSLP::reorderTopToBottom() { continue; } // Stores actually store the mask, not the order, need to invert. - if (OpTE->State == TreeEntry::Vectorize && !OpTE->isAltShuffle() && + if (OpTE->State == TreeEntry::Vectorize && OpTE->getOpcode() == Instruction::Store && !Order.empty()) { + assert(!OpTE->isAltShuffle() && + "Alternate instructions are only supported by BinaryOperator " + "and CastInst."); SmallVector Mask; inversePermutation(Order, Mask); unsigned E = Order.size(); @@ -5998,9 +6082,12 @@ void BoUpSLP::reorderTopToBottom() { } if ((TE->State == TreeEntry::Vectorize || TE->State == TreeEntry::StridedVectorize) && - isa(TE->getMainOp()) && - !TE->isAltShuffle()) { + (isa(TE->getMainOp()) || + (SLPReVec && isa(TE->getMainOp())))) { + assert(!TE->isAltShuffle() && + "Alternate instructions are only supported by BinaryOperator " + "and CastInst."); // Build correct orders for extract{element,value}, loads and // stores. reorderOrder(TE->ReorderIndices, Mask); @@ -6180,8 +6267,11 @@ void BoUpSLP::reorderBottomToTop(bool IgnoreReorder) { return P.second == OpTE; }); // Stores actually store the mask, not the order, need to invert. - if (OpTE->State == TreeEntry::Vectorize && !OpTE->isAltShuffle() && + if (OpTE->State == TreeEntry::Vectorize && OpTE->getOpcode() == Instruction::Store && !Order.empty()) { + assert(!OpTE->isAltShuffle() && + "Alternate instructions are only supported by BinaryOperator " + "and CastInst."); SmallVector Mask; inversePermutation(Order, Mask); unsigned E = Order.size(); @@ -7327,8 +7417,14 @@ bool BoUpSLP::areAltOperandsProfitable(const InstructionsState &S, for (unsigned I : seq(0, S.MainOp->getNumOperands())) { Operands.emplace_back(); // Prepare the operand vector. - for (Value *V : VL) + for (Value *V : VL) { + if (isa(V)) { + Operands.back().push_back( + PoisonValue::get(S.MainOp->getOperand(I)->getType())); + continue; + } Operands.back().push_back(cast(V)->getOperand(I)); + } } if (Operands.size() == 2) { // Try find best operands candidates. @@ -7435,8 +7531,11 @@ BoUpSLP::TreeEntry::EntryState BoUpSLP::getScalarsVectorizationState( if (VL0->getNumOperands() > MaxPHINumOperands) return TreeEntry::NeedToGather; // Check for terminator values (e.g. invoke). - for (Value *V : VL) - for (Value *Incoming : cast(V)->incoming_values()) { + for (Value *V : VL) { + auto *PHI = dyn_cast(V); + if (!PHI) + continue; + for (Value *Incoming : PHI->incoming_values()) { Instruction *Term = dyn_cast(Incoming); if (Term && Term->isTerminator()) { LLVM_DEBUG(dbgs() @@ -7444,6 +7543,7 @@ BoUpSLP::TreeEntry::EntryState BoUpSLP::getScalarsVectorizationState( return TreeEntry::NeedToGather; } } + } return TreeEntry::Vectorize; } @@ -7519,8 +7619,10 @@ BoUpSLP::TreeEntry::EntryState BoUpSLP::getScalarsVectorizationState( if (DL->getTypeSizeInBits(ScalarTy) != DL->getTypeAllocSizeInBits(ScalarTy)) LLVM_DEBUG(dbgs() << "SLP: Gathering loads of non-packed type.\n"); - else if (any_of(VL, - [](Value *V) { return !cast(V)->isSimple(); })) + else if (any_of(VL, [](Value *V) { + auto *LI = dyn_cast(V); + return !LI || !LI->isSimple(); + })) LLVM_DEBUG(dbgs() << "SLP: Gathering non-simple loads.\n"); else LLVM_DEBUG(dbgs() << "SLP: Gathering non-consecutive loads.\n"); @@ -7544,6 +7646,8 @@ BoUpSLP::TreeEntry::EntryState BoUpSLP::getScalarsVectorizationState( case Instruction::BitCast: { Type *SrcTy = VL0->getOperand(0)->getType(); for (Value *V : VL) { + if (isa(V)) + continue; Type *Ty = cast(V)->getOperand(0)->getType(); if (Ty != SrcTy || !isValidElementType(Ty)) { LLVM_DEBUG( @@ -7560,7 +7664,9 @@ BoUpSLP::TreeEntry::EntryState BoUpSLP::getScalarsVectorizationState( CmpInst::Predicate SwapP0 = CmpInst::getSwappedPredicate(P0); Type *ComparedTy = VL0->getOperand(0)->getType(); for (Value *V : VL) { - CmpInst *Cmp = cast(V); + if (isa(V)) + continue; + auto *Cmp = cast(V); if ((Cmp->getPredicate() != P0 && Cmp->getPredicate() != SwapP0) || Cmp->getOperand(0)->getType() != ComparedTy) { LLVM_DEBUG(dbgs() << "SLP: Gathering cmp with different predicate.\n"); @@ -7803,7 +7909,13 @@ class PHIHandler { } // Prepare the operand vector. for (auto [Idx, V] : enumerate(Phis)) { - auto *P = cast(V); + auto *P = dyn_cast(V); + if (!P) { + assert(isa(V) && + "Expected isa instruction or poison value."); + Operands[I][Idx] = V; + continue; + } if (P->getIncomingBlock(I) == InBB) Operands[I][Idx] = P->getIncomingValue(I); else @@ -7822,6 +7934,11 @@ class PHIHandler { Blocks.try_emplace(InBB).first->second.push_back(I); } for (auto [Idx, V] : enumerate(Phis)) { + if (isa(V)) { + for (unsigned I : seq(Main->getNumIncomingValues())) + Operands[I][Idx] = V; + continue; + } auto *P = cast(V); for (unsigned I : seq(0, P->getNumIncomingValues())) { BasicBlock *InBB = P->getIncomingBlock(I); @@ -7871,7 +7988,7 @@ void BoUpSLP::buildTree_rec(ArrayRef VL, unsigned Depth, for (Value *V : VL) { if (isConstant(V)) { ReuseShuffleIndices.emplace_back( - isa(V) ? PoisonMaskElem : UniqueValues.size()); + isa(V) ? PoisonMaskElem : UniqueValues.size()); UniqueValues.emplace_back(V); continue; } @@ -7903,11 +8020,7 @@ void BoUpSLP::buildTree_rec(ArrayRef VL, unsigned Depth, }))) { if (DoNotFail && UniquePositions.size() > 1 && NumUniqueScalarValues > 1 && S.MainOp->isSafeToRemove() && - all_of(UniqueValues, [=](Value *V) { - return isa(V) || - areAllUsersVectorized(cast(V), - UserIgnoreList); - })) { + all_of(UniqueValues, IsaPred)) { // Find the number of elements, which forms full vectors. unsigned PWSz = getFullVectorNumberOfElements( *TTI, UniqueValues.front()->getType(), UniqueValues.size()); @@ -7915,8 +8028,9 @@ void BoUpSLP::buildTree_rec(ArrayRef VL, unsigned Depth, ReuseShuffleIndices.clear(); } else { NonUniqueValueVL.assign(UniqueValues.begin(), UniqueValues.end()); - NonUniqueValueVL.append(PWSz - UniqueValues.size(), - UniqueValues.back()); + NonUniqueValueVL.append( + PWSz - UniqueValues.size(), + PoisonValue::get(UniqueValues.front()->getType())); VL = NonUniqueValueVL; } return true; @@ -8051,7 +8165,7 @@ void BoUpSLP::buildTree_rec(ArrayRef VL, unsigned Depth, return true; // Check if all operands are extracts, part of vector node or can build a // regular vectorize node. - SmallVector InstsCount(VL.size(), 0); + SmallVector InstsCount; for (Value *V : VL) { auto *I = cast(V); InstsCount.push_back(count_if(I->operand_values(), [](Value *Op) { @@ -8445,6 +8559,11 @@ void BoUpSLP::buildTree_rec(ArrayRef VL, unsigned Depth, } else { // Collect operands - commute if it uses the swapped predicate. for (Value *V : VL) { + if (isa(V)) { + Left.push_back(PoisonValue::get(VL0->getOperand(0)->getType())); + Right.push_back(PoisonValue::get(VL0->getOperand(1)->getType())); + continue; + } auto *Cmp = cast(V); Value *LHS = Cmp->getOperand(0); Value *RHS = Cmp->getOperand(1); @@ -8644,7 +8763,7 @@ void BoUpSLP::buildTree_rec(ArrayRef VL, unsigned Depth, if (isa(VL0) || CI) { ValueList Left, Right; if (!CI || all_of(VL, [](Value *V) { - return cast(V)->isCommutative(); + return isa(V) || cast(V)->isCommutative(); })) { reorderInputsAccordingToOpcode(VL, Left, Right, *this); } else { @@ -8657,6 +8776,13 @@ void BoUpSLP::buildTree_rec(ArrayRef VL, unsigned Depth, // Collect operands - commute if it uses the swapped predicate or // alternate operation. for (Value *V : VL) { + if (isa(V)) { + Left.push_back( + PoisonValue::get(MainCI->getOperand(0)->getType())); + Right.push_back( + PoisonValue::get(MainCI->getOperand(1)->getType())); + continue; + } auto *Cmp = cast(V); Value *LHS = Cmp->getOperand(0); Value *RHS = Cmp->getOperand(1); @@ -8861,6 +8987,8 @@ void BoUpSLP::TreeEntry::buildAltOpShuffleMask( unsigned Idx = I; if (!ReorderIndices.empty()) Idx = OrderMask[I]; + if (isa(Scalars[Idx])) + continue; auto *OpInst = cast(Scalars[Idx]); if (IsAltOp(OpInst)) { Mask[I] = Sz + Idx; @@ -9635,9 +9763,11 @@ void BoUpSLP::transformNodes() { // Try to vectorize reduced values or if all users are vectorized. // For expensive instructions extra extracts might be profitable. if ((!UserIgnoreList || E.Idx != 0) && - TTI->getInstructionCost(cast(Slice.front()), - CostKind) < TTI::TCC_Expensive && + TTI->getInstructionCost(S.MainOp, CostKind) < + TTI::TCC_Expensive && !all_of(Slice, [&](Value *V) { + if (isa(V)) + return true; return areAllUsersVectorized(cast(V), UserIgnoreList); })) @@ -9660,12 +9790,13 @@ void BoUpSLP::transformNodes() { continue; } } else if (S.getOpcode() == Instruction::ExtractElement || - (TTI->getInstructionCost( - cast(Slice.front()), CostKind) < + (TTI->getInstructionCost(S.MainOp, CostKind) < TTI::TCC_Expensive && !CheckOperandsProfitability( - cast(Slice.front()), - cast(Slice.back()), S))) { + S.MainOp, + cast(*find_if(reverse(Slice), + IsaPred)), + S))) { // Do not vectorize extractelements (handled effectively // alread). Do not vectorize non-profitable instructions (with // low cost and non-vectorizable operands.) @@ -10130,6 +10261,9 @@ class BoUpSLP::ShuffleCostEstimator : public BaseShuffleAnalysis { InVectors.size() == 1 ? nullptr : InVectors.back(), CommonMask); transformMaskAfterShuffle(CommonMask, CommonMask); + } else if (InVectors.size() == 2) { + Cost += createShuffle(InVectors.front(), InVectors.back(), CommonMask); + transformMaskAfterShuffle(CommonMask, CommonMask); } SameNodesEstimated = false; if (!E2 && InVectors.size() == 1) { @@ -10147,8 +10281,21 @@ class BoUpSLP::ShuffleCostEstimator : public BaseShuffleAnalysis { Cost += createShuffle(InVectors.front(), &E1, CommonMask); transformMaskAfterShuffle(CommonMask, CommonMask); } else { + auto P = InVectors.front(); Cost += createShuffle(&E1, E2, Mask); - transformMaskAfterShuffle(CommonMask, Mask); + unsigned VF = Mask.size(); + if (Value *V1 = P.dyn_cast()) { + VF = std::max(VF, + getNumElements(V1->getType())); + } else { + const auto *E = P.get(); + VF = std::max(VF, E->getVectorFactor()); + } + for (unsigned Idx = 0, Sz = CommonMask.size(); Idx < Sz; ++Idx) + if (Mask[Idx] != PoisonMaskElem) + CommonMask[Idx] = Idx + (InVectors.empty() ? 0 : VF); + Cost += createShuffle(P, InVectors.front(), CommonMask); + transformMaskAfterShuffle(CommonMask, CommonMask); } } @@ -10728,9 +10875,10 @@ class BoUpSLP::ShuffleCostEstimator : public BaseShuffleAnalysis { CommonMask[Idx] = Idx; // Add subvectors permutation cost. if (!SubVectorsMask.empty()) { - assert(SubVectorsMask.size() == CommonMask.size() && + assert(SubVectorsMask.size() <= CommonMask.size() && "Expected same size of masks for subvectors and common mask."); - SmallVector SVMask(SubVectorsMask.begin(), SubVectorsMask.end()); + SmallVector SVMask(CommonMask.size(), PoisonMaskElem); + copy(SubVectorsMask, SVMask.begin()); for (auto [I1, I2] : zip(SVMask, CommonMask)) { if (I2 != PoisonMaskElem) { assert(I1 == PoisonMaskElem && "Expected unused subvectors mask"); @@ -10917,7 +11065,7 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef VectorizedVals, const unsigned Sz = UniqueValues.size(); SmallBitVector UsedScalars(Sz, false); for (unsigned I = 0; I < Sz; ++I) { - if (getTreeEntry(UniqueValues[I]) == E) + if (isa(UniqueValues[I]) && getTreeEntry(UniqueValues[I]) == E) continue; UsedScalars.set(I); } @@ -11056,6 +11204,9 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef VectorizedVals, case Instruction::ExtractValue: case Instruction::ExtractElement: { auto GetScalarCost = [&](unsigned Idx) { + if (isa(UniqueValues[Idx])) + return InstructionCost(TTI::TCC_Free); + auto *I = cast(UniqueValues[Idx]); VectorType *SrcVecTy; if (ShuffleOrOp == Instruction::ExtractElement) { @@ -11244,10 +11395,10 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef VectorizedVals, VecOpcode = Instruction::UIToFP; } auto GetScalarCost = [&](unsigned Idx) -> InstructionCost { - auto *VI = cast(UniqueValues[Idx]); + assert(Idx == 0 && "Expected 0 index only"); return TTI->getCastInstrCost(Opcode, VL0->getType(), VL0->getOperand(0)->getType(), - TTI::getCastContextHint(VI), CostKind, VI); + TTI::getCastContextHint(VL0), CostKind, VL0); }; auto GetVectorCost = [=](InstructionCost CommonCost) { // Do not count cost here if minimum bitwidth is in effect and it is just @@ -11256,6 +11407,20 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef VectorizedVals, return CommonCost; auto *VI = VL0->getOpcode() == Opcode ? VL0 : nullptr; TTI::CastContextHint CCH = GetCastContextHint(VL0->getOperand(0)); + + bool IsArithmeticExtendedReduction = + E->Idx == 0 && UserIgnoreList && + all_of(*UserIgnoreList, [](Value *V) { + auto *I = cast(V); + return is_contained({Instruction::Add, Instruction::FAdd, + Instruction::Mul, Instruction::FMul, + Instruction::And, Instruction::Or, + Instruction::Xor}, + I->getOpcode()); + }); + if (IsArithmeticExtendedReduction && + (VecOpcode == Instruction::ZExt || VecOpcode == Instruction::SExt)) + return CommonCost; return CommonCost + TTI->getCastInstrCost(VecOpcode, VecTy, SrcVecTy, CCH, CostKind, VecOpcode == Opcode ? VI : nullptr); @@ -11275,6 +11440,9 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef VectorizedVals, ? CmpInst::BAD_FCMP_PREDICATE : CmpInst::BAD_ICMP_PREDICATE; auto GetScalarCost = [&](unsigned Idx) { + if (isa(UniqueValues[Idx])) + return InstructionCost(TTI::TCC_Free); + auto *VI = cast(UniqueValues[Idx]); CmpInst::Predicate CurrentPred = ScalarTy->isFloatingPointTy() ? CmpInst::BAD_FCMP_PREDICATE @@ -11355,6 +11523,9 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef VectorizedVals, case Instruction::Or: case Instruction::Xor: { auto GetScalarCost = [&](unsigned Idx) { + if (isa(UniqueValues[Idx])) + return InstructionCost(TTI::TCC_Free); + auto *VI = cast(UniqueValues[Idx]); unsigned OpIdx = isa(VI) ? 0 : 1; TTI::OperandValueInfo Op1Info = TTI::getOperandInfo(VI->getOperand(0)); @@ -11542,6 +11713,9 @@ BoUpSLP::getEntryCost(const TreeEntry *E, ArrayRef VectorizedVals, return false; }; auto GetScalarCost = [&](unsigned Idx) { + if (isa(UniqueValues[Idx])) + return InstructionCost(TTI::TCC_Free); + auto *VI = cast(UniqueValues[Idx]); assert(E->isOpcodeOrAlt(VI) && "Unexpected main/alternate opcode"); (void)E; @@ -11860,7 +12034,14 @@ bool BoUpSLP::isTreeTinyAndNotFullyVectorizable(bool ForReduction) const { if (VectorizableTree.back()->isGather() && VectorizableTree.back()->isAltShuffle() && VectorizableTree.back()->getVectorFactor() > 2 && - allSameBlock(VectorizableTree.back()->Scalars)) + allSameBlock(VectorizableTree.back()->Scalars) && + !VectorizableTree.back()->Scalars.front()->getType()->isVectorTy() && + TTI->getScalarizationOverhead( + getWidenedType(VectorizableTree.back()->Scalars.front()->getType(), + VectorizableTree.back()->getVectorFactor()), + APInt::getAllOnes(VectorizableTree.back()->getVectorFactor()), + /*Insert=*/true, /*Extract=*/false, + TTI::TCK_RecipThroughput) > -SLPCostThreshold) return false; // Otherwise, we can't vectorize the tree. It is both tiny and not fully @@ -12611,32 +12792,48 @@ InstructionCost BoUpSLP::getTreeCost(ArrayRef VectorizedVals) { unsigned SrcSize = It->second.first; unsigned DstSize = ReductionBitWidth; unsigned Opcode = Instruction::Trunc; - if (SrcSize < DstSize) - Opcode = It->second.second ? Instruction::SExt : Instruction::ZExt; - auto *SrcVecTy = - getWidenedType(Builder.getIntNTy(SrcSize), E.getVectorFactor()); - auto *DstVecTy = - getWidenedType(Builder.getIntNTy(DstSize), E.getVectorFactor()); - TTI::CastContextHint CCH = getCastContextHint(E); - InstructionCost CastCost; - switch (E.getOpcode()) { - case Instruction::SExt: - case Instruction::ZExt: - case Instruction::Trunc: { - const TreeEntry *OpTE = getOperandEntry(&E, 0); - CCH = getCastContextHint(*OpTE); - break; - } - default: - break; + if (SrcSize < DstSize) { + bool IsArithmeticExtendedReduction = + all_of(*UserIgnoreList, [](Value *V) { + auto *I = cast(V); + return is_contained({Instruction::Add, Instruction::FAdd, + Instruction::Mul, Instruction::FMul, + Instruction::And, Instruction::Or, + Instruction::Xor}, + I->getOpcode()); + }); + if (IsArithmeticExtendedReduction) + Opcode = + Instruction::BitCast; // Handle it by getExtendedReductionCost + else + Opcode = It->second.second ? Instruction::SExt : Instruction::ZExt; + } + if (Opcode != Instruction::BitCast) { + auto *SrcVecTy = + getWidenedType(Builder.getIntNTy(SrcSize), E.getVectorFactor()); + auto *DstVecTy = + getWidenedType(Builder.getIntNTy(DstSize), E.getVectorFactor()); + TTI::CastContextHint CCH = getCastContextHint(E); + InstructionCost CastCost; + switch (E.getOpcode()) { + case Instruction::SExt: + case Instruction::ZExt: + case Instruction::Trunc: { + const TreeEntry *OpTE = getOperandEntry(&E, 0); + CCH = getCastContextHint(*OpTE); + break; + } + default: + break; + } + CastCost += TTI->getCastInstrCost(Opcode, DstVecTy, SrcVecTy, CCH, + TTI::TCK_RecipThroughput); + Cost += CastCost; + LLVM_DEBUG(dbgs() << "SLP: Adding cost " << CastCost + << " for final resize for reduction from " << SrcVecTy + << " to " << DstVecTy << "\n"; + dbgs() << "SLP: Current total cost = " << Cost << "\n"); } - CastCost += TTI->getCastInstrCost(Opcode, DstVecTy, SrcVecTy, CCH, - TTI::TCK_RecipThroughput); - Cost += CastCost; - LLVM_DEBUG(dbgs() << "SLP: Adding cost " << CastCost - << " for final resize for reduction from " << SrcVecTy - << " to " << DstVecTy << "\n"; - dbgs() << "SLP: Current total cost = " << Cost << "\n"); } } @@ -13332,8 +13529,8 @@ Instruction &BoUpSLP::getLastInstructionInBundle(const TreeEntry *E) { if (E->getOpcode() == Instruction::GetElementPtr && !isa(V)) return true; - auto *I = cast(V); - return !E->isOpcodeOrAlt(I) || I->getParent() == BB || + auto *I = dyn_cast(V); + return !I || !E->isOpcodeOrAlt(I) || I->getParent() == BB || isVectorLikeInstWithConstOps(I); })) && "Expected gathered loads or GEPs or instructions from same basic " @@ -13432,8 +13629,9 @@ Instruction &BoUpSLP::getLastInstructionInBundle(const TreeEntry *E) { })) || all_of(E->Scalars, [](Value *V) { - return !isVectorLikeInstWithConstOps(V) && - isUsedOutsideBlock(V); + return isa(V) || + (!isVectorLikeInstWithConstOps(V) && + isUsedOutsideBlock(V)); }) || (E->isGather() && E->Idx == 0 && all_of(E->Scalars, [](Value *V) { return isa(V) || @@ -13961,12 +14159,16 @@ class BoUpSLP::ShuffleInstructionBuilder final : public BaseShuffleAnalysis { Value *V1 = E1.VectorizedValue; if (V1->getType()->isIntOrIntVectorTy()) V1 = castToScalarTyElem(V1, any_of(E1.Scalars, [&](Value *V) { + if (isa(V)) + return false; return !isKnownNonNegative( V, SimplifyQuery(*R.DL)); })); Value *V2 = E2.VectorizedValue; if (V2->getType()->isIntOrIntVectorTy()) V2 = castToScalarTyElem(V2, any_of(E2.Scalars, [&](Value *V) { + if (isa(V)) + return false; return !isKnownNonNegative( V, SimplifyQuery(*R.DL)); })); @@ -13978,6 +14180,8 @@ class BoUpSLP::ShuffleInstructionBuilder final : public BaseShuffleAnalysis { Value *V1 = E1.VectorizedValue; if (V1->getType()->isIntOrIntVectorTy()) V1 = castToScalarTyElem(V1, any_of(E1.Scalars, [&](Value *V) { + if (isa(V)) + return false; return !isKnownNonNegative( V, SimplifyQuery(*R.DL)); })); @@ -14007,9 +14211,10 @@ class BoUpSLP::ShuffleInstructionBuilder final : public BaseShuffleAnalysis { transformMaskAfterShuffle(CommonMask, CommonMask); } V1 = createShuffle(V1, V2, Mask); + unsigned VF = std::max(getVF(V1), getVF(Vec)); for (unsigned Idx = 0, Sz = CommonMask.size(); Idx < Sz; ++Idx) if (Mask[Idx] != PoisonMaskElem) - CommonMask[Idx] = Idx + Sz; + CommonMask[Idx] = Idx + VF; InVectors.front() = Vec; if (InVectors.size() == 2) InVectors.back() = V1; @@ -14139,6 +14344,8 @@ class BoUpSLP::ShuffleInstructionBuilder final : public BaseShuffleAnalysis { Value *V = E->VectorizedValue; if (V->getType()->isIntOrIntVectorTy()) V = castToScalarTyElem(V, any_of(E->Scalars, [&](Value *V) { + if (isa(V)) + return false; return !isKnownNonNegative( V, SimplifyQuery(*R.DL)); })); @@ -14173,7 +14380,8 @@ class BoUpSLP::ShuffleInstructionBuilder final : public BaseShuffleAnalysis { if (SubVectorsMask.empty()) { Vec = CreateSubVectors(Vec, CommonMask); } else { - SmallVector SVMask(SubVectorsMask.begin(), SubVectorsMask.end()); + SmallVector SVMask(CommonMask.size(), PoisonMaskElem); + copy(SubVectorsMask, SVMask.begin()); for (auto [I1, I2] : zip(SVMask, CommonMask)) { if (I2 != PoisonMaskElem) { assert(I1 == PoisonMaskElem && "Expected unused subvectors mask"); @@ -14855,6 +15063,16 @@ Value *BoUpSLP::createBuildVector(const TreeEntry *E, Type *ScalarTy, Builder, *this); } +/// \returns \p I after propagating metadata from \p VL only for instructions in +/// \p VL. +static Instruction *propagateMetadata(Instruction *Inst, ArrayRef VL) { + SmallVector Insts; + for (Value *V : VL) + if (isa(V)) + Insts.push_back(V); + return llvm::propagateMetadata(Inst, Insts); +} + Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { IRBuilderBase::InsertPointGuard Guard(Builder); @@ -14924,6 +15142,8 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { IsSigned = It->second.second; else IsSigned = any_of(OpE->Scalars, [&](Value *R) { + if (isa(V)) + return false; return !isKnownNonNegative(R, SimplifyQuery(*DL)); }); return IsSigned; @@ -15012,7 +15232,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { Builder.SetInsertPoint(LI); Value *Ptr = LI->getPointerOperand(); LoadInst *V = Builder.CreateAlignedLoad(VecTy, Ptr, LI->getAlign()); - Value *NewV = propagateMetadata(V, E->Scalars); + Value *NewV = ::propagateMetadata(V, E->Scalars); NewV = FinalShuffle(NewV, E); E->VectorizedValue = NewV; return NewV; @@ -15345,7 +15565,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { static_cast(E->getOpcode()), Op); propagateIRFlags(V, E->Scalars, VL0); if (auto *I = dyn_cast(V)) - V = propagateMetadata(I, E->Scalars); + V = ::propagateMetadata(I, E->Scalars); V = FinalShuffle(V, E); @@ -15439,11 +15659,11 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { RHS); propagateIRFlags(V, E->Scalars, VL0, It == MinBWs.end()); if (auto *I = dyn_cast(V)) { - V = propagateMetadata(I, E->Scalars); + V = ::propagateMetadata(I, E->Scalars); // Drop nuw flags for abs(sub(commutative), true). if (!MinBWs.contains(E) && ShuffleOrOp == Instruction::Sub && any_of(E->Scalars, [](Value *V) { - return isCommutative(cast(V)); + return isa(V) || isCommutative(cast(V)); })) I->setHasNoUnsignedWrap(/*b=*/false); } @@ -15538,7 +15758,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { Align CommonAlignment = computeCommonAlignment(E->Scalars); NewLI = Builder.CreateMaskedGather(VecTy, VecPtr, CommonAlignment); } - Value *V = propagateMetadata(NewLI, E->Scalars); + Value *V = ::propagateMetadata(NewLI, E->Scalars); V = FinalShuffle(V, E); E->VectorizedValue = V; @@ -15583,7 +15803,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { ST = Inst; } - Value *V = propagateMetadata(ST, E->Scalars); + Value *V = ::propagateMetadata(ST, E->Scalars); E->VectorizedValue = V; ++NumVectorInstructions; @@ -15616,7 +15836,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { if (isa(V)) GEPs.push_back(V); } - V = propagateMetadata(I, GEPs); + V = ::propagateMetadata(I, GEPs); } V = FinalShuffle(V, E); @@ -15643,7 +15863,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { SmallVector OpVecs; SmallVector TysForDecl; // Add return type if intrinsic is overloaded on it. - if (UseIntrinsic && isVectorIntrinsicWithOverloadTypeAtArg(ID, -1)) + if (UseIntrinsic && isVectorIntrinsicWithOverloadTypeAtArg(ID, -1, TTI)) TysForDecl.push_back(VecTy); auto *CEI = cast(VL0); for (unsigned I : seq(0, CI->arg_size())) { @@ -15658,7 +15878,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { It->second.first < DL->getTypeSizeInBits(CEI->getType())) ScalarArg = Builder.getFalse(); OpVecs.push_back(ScalarArg); - if (isVectorIntrinsicWithOverloadTypeAtArg(ID, I)) + if (isVectorIntrinsicWithOverloadTypeAtArg(ID, I, TTI)) TysForDecl.push_back(ScalarArg->getType()); continue; } @@ -15680,7 +15900,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { } LLVM_DEBUG(dbgs() << "SLP: OpVec[" << I << "]: " << *OpVec << "\n"); OpVecs.push_back(OpVec); - if (UseIntrinsic && isVectorIntrinsicWithOverloadTypeAtArg(ID, I)) + if (UseIntrinsic && isVectorIntrinsicWithOverloadTypeAtArg(ID, I, TTI)) TysForDecl.push_back(OpVec->getType()); } @@ -15730,7 +15950,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { } propagateIRFlags(V, E->Scalars, VL0); if (auto *I = dyn_cast(V)) - V = propagateMetadata(I, E->Scalars); + V = ::propagateMetadata(I, E->Scalars); V = FinalShuffle(V, E); } else { assert(E->isAltShuffle() && @@ -15807,7 +16027,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { assert(LHS->getType() == VecTy && "Expected same type as operand."); if (auto *I = dyn_cast(LHS)) - LHS = propagateMetadata(I, E->Scalars); + LHS = ::propagateMetadata(I, E->Scalars); LHS = FinalShuffle(LHS, E); E->VectorizedValue = LHS; ++NumVectorInstructions; @@ -15848,9 +16068,10 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { if (auto *I = dyn_cast(Vec); I && Opcode == Instruction::Sub && !MinBWs.contains(E) && any_of(E->Scalars, [](Value *V) { + if (isa(V)) + return false; auto *IV = cast(V); - return IV->getOpcode() == Instruction::Sub && - isCommutative(cast(IV)); + return IV->getOpcode() == Instruction::Sub && isCommutative(IV); })) I->setHasNoUnsignedWrap(/*b=*/false); }; @@ -15863,7 +16084,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E, bool PostponedPHIs) { } V = Builder.CreateShuffleVector(V0, V1, Mask); if (auto *I = dyn_cast(V)) { - V = propagateMetadata(I, E->Scalars); + V = ::propagateMetadata(I, E->Scalars); GatherShuffleExtractSeq.insert(I); CSEBlocks.insert(I->getParent()); } @@ -16441,6 +16662,8 @@ BoUpSLP::vectorizeTree(const ExtraValueToDebugLocsMap &ExternallyUsedValues, if (auto *EE = dyn_cast(Scalar); EE && IgnoredExtracts.contains(EE)) continue; + if (isa(Scalar)) + continue; #ifndef NDEBUG Type *Ty = Scalar->getType(); if (!Ty->isVoidTy()) { @@ -17339,9 +17562,13 @@ bool BoUpSLP::collectValuesToDemote( // by the insertelement instruction and not used in multiple vector nodes, it // cannot be demoted. bool IsSignedNode = any_of(E.Scalars, [&](Value *R) { + if (isa(R)) + return false; return !isKnownNonNegative(R, SimplifyQuery(*DL)); }); auto IsPotentiallyTruncated = [&](Value *V, unsigned &BitWidth) -> bool { + if (isa(V)) + return true; if (MultiNodeScalars.contains(V)) return false; // For lat shuffle of sext/zext with many uses need to check the extra bit @@ -17524,6 +17751,8 @@ bool BoUpSLP::collectValuesToDemote( // inrange amount, we can always perform a SHL in a smaller type. auto ShlChecker = [&](unsigned BitWidth, unsigned) { return all_of(E.Scalars, [&](Value *V) { + if (isa(V)) + return true; auto *I = cast(V); KnownBits AmtKnownBits = computeKnownBits(I->getOperand(1), *DL); return AmtKnownBits.getMaxValue().ult(BitWidth); @@ -17538,6 +17767,8 @@ bool BoUpSLP::collectValuesToDemote( // already zeros. auto LShrChecker = [&](unsigned BitWidth, unsigned OrigBitWidth) { return all_of(E.Scalars, [&](Value *V) { + if (isa(V)) + return true; auto *I = cast(V); KnownBits AmtKnownBits = computeKnownBits(I->getOperand(1), *DL); APInt ShiftedBits = APInt::getBitsSetFrom(OrigBitWidth, BitWidth); @@ -17807,6 +18038,8 @@ void BoUpSLP::computeMinimumValueSizes() { // Determine if the sign bit of all the roots is known to be zero. If not, // IsKnownPositive is set to False. bool IsKnownPositive = !IsSignedCmp && all_of(E.Scalars, [&](Value *R) { + if (isa(R)) + return true; KnownBits Known = computeKnownBits(R, *DL); return Known.isNonNegative(); }); @@ -17814,6 +18047,8 @@ void BoUpSLP::computeMinimumValueSizes() { // We first check if all the bits of the roots are demanded. If they're not, // we can truncate the roots to this narrower type. for (Value *Root : E.Scalars) { + if (isa(Root)) + continue; unsigned NumSignBits = ComputeNumSignBits(Root, *DL, 0, AC, nullptr, DT); TypeSize NumTypeBits = DL->getTypeSizeInBits(Root->getType()->getScalarType()); @@ -17870,9 +18105,8 @@ void BoUpSLP::computeMinimumValueSizes() { !(((Opcode == Instruction::SExt || Opcode == Instruction::ZExt) && (!IsTopRoot || !(IsStoreOrInsertElt || UserIgnoreList) || DL->getTypeSizeInBits(TreeRootIT) / - DL->getTypeSizeInBits(cast(E.Scalars.front()) - ->getOperand(0) - ->getType()) > + DL->getTypeSizeInBits( + E.getMainOp()->getOperand(0)->getType()) > 2))))) return 0u; // Round MaxBitWidth up to the next power-of-two. @@ -17887,24 +18121,40 @@ void BoUpSLP::computeMinimumValueSizes() { // Add reduction ops sizes, if any. if (UserIgnoreList && isa(VectorizableTree.front()->Scalars.front()->getType())) { - for (Value *V : *UserIgnoreList) { - auto NumSignBits = ComputeNumSignBits(V, *DL, 0, AC, nullptr, DT); - auto NumTypeBits = DL->getTypeSizeInBits(V->getType()); - unsigned BitWidth1 = NumTypeBits - NumSignBits; - if (!isKnownNonNegative(V, SimplifyQuery(*DL))) - ++BitWidth1; - unsigned BitWidth2 = BitWidth1; - if (!RecurrenceDescriptor::isIntMinMaxRecurrenceKind(::getRdxKind(V))) { - auto Mask = DB->getDemandedBits(cast(V)); - BitWidth2 = Mask.getBitWidth() - Mask.countl_zero(); + // Convert vector_reduce_add(ZExt()) to ZExtOrTrunc(ctpop(bitcast to in)). + if (all_of(*UserIgnoreList, + [](Value *V) { + return isa(V) || + cast(V)->getOpcode() == Instruction::Add; + }) && + VectorizableTree.front()->State == TreeEntry::Vectorize && + VectorizableTree.front()->getOpcode() == Instruction::ZExt && + cast(VectorizableTree.front()->getMainOp())->getSrcTy() == + Builder.getInt1Ty()) { + ReductionBitWidth = 1; + } else { + for (Value *V : *UserIgnoreList) { + if (isa(V)) + continue; + unsigned NumSignBits = ComputeNumSignBits(V, *DL, 0, AC, nullptr, DT); + TypeSize NumTypeBits = DL->getTypeSizeInBits(V->getType()); + unsigned BitWidth1 = NumTypeBits - NumSignBits; + if (!isKnownNonNegative(V, SimplifyQuery(*DL))) + ++BitWidth1; + unsigned BitWidth2 = BitWidth1; + if (!RecurrenceDescriptor::isIntMinMaxRecurrenceKind(::getRdxKind(V))) { + APInt Mask = DB->getDemandedBits(cast(V)); + BitWidth2 = Mask.getBitWidth() - Mask.countl_zero(); + } + ReductionBitWidth = + std::max(std::min(BitWidth1, BitWidth2), ReductionBitWidth); } - ReductionBitWidth = - std::max(std::min(BitWidth1, BitWidth2), ReductionBitWidth); - } - if (ReductionBitWidth < 8 && ReductionBitWidth > 1) - ReductionBitWidth = 8; + if (ReductionBitWidth < 8 && ReductionBitWidth > 1) + ReductionBitWidth = 8; - ReductionBitWidth = bit_ceil(ReductionBitWidth); + ReductionBitWidth = bit_ceil(ReductionBitWidth); + } } bool IsTopRoot = NodeIdx == 0; while (NodeIdx < VectorizableTree.size() && @@ -18002,8 +18252,10 @@ void BoUpSLP::computeMinimumValueSizes() { if (MinBWs.contains(TE)) continue; bool IsSigned = any_of(TE->Scalars, [&](Value *R) { - return !isKnownNonNegative(R, SimplifyQuery(*DL)); - }); + if (isa(R)) + return false; + return !isKnownNonNegative(R, SimplifyQuery(*DL)); + }); MinBWs.try_emplace(TE, MaxBitWidth, IsSigned); } } @@ -19761,7 +20013,7 @@ class HorizontalReduction { // Estimate cost. InstructionCost TreeCost = V.getTreeCost(VL); InstructionCost ReductionCost = - getReductionCost(TTI, VL, IsCmpSelMinMax, ReduxWidth, RdxFMF); + getReductionCost(TTI, VL, IsCmpSelMinMax, RdxFMF, V); InstructionCost Cost = TreeCost + ReductionCost; LLVM_DEBUG(dbgs() << "SLP: Found cost = " << Cost << " for reduction\n"); @@ -19866,10 +20118,12 @@ class HorizontalReduction { createStrideMask(I, ScalarTyNumElements, VL.size()); Value *Lane = Builder.CreateShuffleVector(VectorizedRoot, Mask); ReducedSubTree = Builder.CreateInsertElement( - ReducedSubTree, emitReduction(Lane, Builder, TTI), I); + ReducedSubTree, + emitReduction(Lane, Builder, TTI, RdxRootInst->getType()), I); } } else { - ReducedSubTree = emitReduction(VectorizedRoot, Builder, TTI); + ReducedSubTree = emitReduction(VectorizedRoot, Builder, TTI, + RdxRootInst->getType()); } if (ReducedSubTree->getType() != VL.front()->getType()) { assert(ReducedSubTree->getType() != VL.front()->getType() && @@ -20052,11 +20306,12 @@ class HorizontalReduction { /// Calculate the cost of a reduction. InstructionCost getReductionCost(TargetTransformInfo *TTI, ArrayRef ReducedVals, - bool IsCmpSelMinMax, unsigned ReduxWidth, - FastMathFlags FMF) { + bool IsCmpSelMinMax, FastMathFlags FMF, + const BoUpSLP &R) { TTI::TargetCostKind CostKind = TTI::TCK_RecipThroughput; Type *ScalarTy = ReducedVals.front()->getType(); - FixedVectorType *VectorTy = getWidenedType(ScalarTy, ReduxWidth); + unsigned ReduxWidth = ReducedVals.size(); + FixedVectorType *VectorTy = R.getReductionType(); InstructionCost VectorCost = 0, ScalarCost; // If all of the reduced values are constant, the vector cost is 0, since // the reduction value can be calculated at the compile time. @@ -20114,8 +20369,17 @@ class HorizontalReduction { VecTy, APInt::getAllOnes(ScalarTyNumElements), /*Insert*/ true, /*Extract*/ false, TTI::TCK_RecipThroughput); } else { - VectorCost = TTI->getArithmeticReductionCost(RdxOpcode, VectorTy, FMF, - CostKind); + Type *RedTy = VectorTy->getElementType(); + auto [RType, IsSigned] = R.getRootNodeTypeWithNoCast().value_or( + std::make_pair(RedTy, true)); + if (RType == RedTy) { + VectorCost = TTI->getArithmeticReductionCost(RdxOpcode, VectorTy, + FMF, CostKind); + } else { + VectorCost = TTI->getExtendedReductionCost( + RdxOpcode, !IsSigned, RedTy, getWidenedType(RType, ReduxWidth), + FMF, CostKind); + } } } ScalarCost = EvaluateScalarCost([&]() { @@ -20152,11 +20416,22 @@ class HorizontalReduction { /// Emit a horizontal reduction of the vectorized value. Value *emitReduction(Value *VectorizedValue, IRBuilderBase &Builder, - const TargetTransformInfo *TTI) { + const TargetTransformInfo *TTI, Type *DestTy) { assert(VectorizedValue && "Need to have a vectorized tree node"); assert(RdxKind != RecurKind::FMulAdd && "A call to the llvm.fmuladd intrinsic is not handled yet"); + auto *FTy = cast(VectorizedValue->getType()); + if (FTy->getScalarType() == Builder.getInt1Ty() && + RdxKind == RecurKind::Add && + DestTy->getScalarType() != FTy->getScalarType()) { + // Convert vector_reduce_add(ZExt()) to + // ZExtOrTrunc(ctpop(bitcast to in)). + Value *V = Builder.CreateBitCast( + VectorizedValue, Builder.getIntNTy(FTy->getNumElements())); + ++NumVectorInstructions; + return Builder.CreateUnaryIntrinsic(Intrinsic::ctpop, V); + } ++NumVectorInstructions; return createSimpleReduction(Builder, VectorizedValue, RdxKind); } diff --git a/llvm/lib/Transforms/Vectorize/VPlan.cpp b/llvm/lib/Transforms/Vectorize/VPlan.cpp index 8b1a4aeb88f81..529108a5aaa97 100644 --- a/llvm/lib/Transforms/Vectorize/VPlan.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlan.cpp @@ -219,10 +219,11 @@ VPBasicBlock::iterator VPBasicBlock::getFirstNonPhi() { return It; } -VPTransformState::VPTransformState(ElementCount VF, unsigned UF, LoopInfo *LI, +VPTransformState::VPTransformState(const TargetTransformInfo *TTI, + ElementCount VF, unsigned UF, LoopInfo *LI, DominatorTree *DT, IRBuilderBase &Builder, InnerLoopVectorizer *ILV, VPlan *Plan) - : VF(VF), CFG(DT), LI(LI), Builder(Builder), ILV(ILV), Plan(Plan), + : TTI(TTI), VF(VF), CFG(DT), LI(LI), Builder(Builder), ILV(ILV), Plan(Plan), LVer(nullptr), TypeAnalysis(Plan->getCanonicalIV()->getScalarType()) {} Value *VPTransformState::get(VPValue *Def, const VPLane &Lane) { @@ -477,32 +478,23 @@ void VPIRBasicBlock::execute(VPTransformState *State) { void VPBasicBlock::execute(VPTransformState *State) { bool Replica = bool(State->Lane); - VPBasicBlock *PrevVPBB = State->CFG.PrevVPBB; - VPBlockBase *SingleHPred = nullptr; BasicBlock *NewBB = State->CFG.PrevBB; // Reuse it if possible. - auto IsLoopRegion = [](VPBlockBase *BB) { - auto *R = dyn_cast(BB); - return R && !R->isReplicator(); + auto IsReplicateRegion = [](VPBlockBase *BB) { + auto *R = dyn_cast_or_null(BB); + return R && R->isReplicator(); }; // 1. Create an IR basic block. - if (PrevVPBB && /* A */ - !((SingleHPred = getSingleHierarchicalPredecessor()) && - SingleHPred->getExitingBasicBlock() == PrevVPBB && - PrevVPBB->getSingleHierarchicalSuccessor() && - (SingleHPred->getParent() == getEnclosingLoopRegion() && - !IsLoopRegion(SingleHPred))) && /* B */ - !(Replica && getPredecessors().empty())) { /* C */ - // The last IR basic block is reused, as an optimization, in three cases: - // A. the first VPBB reuses the loop pre-header BB - when PrevVPBB is null; - // B. when the current VPBB has a single (hierarchical) predecessor which - // is PrevVPBB and the latter has a single (hierarchical) successor which - // both are in the same non-replicator region; and - // C. when the current VPBB is an entry of a region replica - where PrevVPBB - // is the exiting VPBB of this region from a previous instance, or the - // predecessor of this region. - + if (this == getPlan()->getVectorPreheader() || + (Replica && this == getParent()->getEntry()) || + IsReplicateRegion(getSingleHierarchicalPredecessor())) { + // Reuse the previous basic block if the current VPBB is either + // * the vector preheader, + // * the entry to a replicate region, or + // * the exit of a replicate region. + State->CFG.VPBB2IRBB[this] = NewBB; + } else { NewBB = createEmptyBasicBlock(State->CFG); State->Builder.SetInsertPoint(NewBB); @@ -517,8 +509,6 @@ void VPBasicBlock::execute(VPTransformState *State) { State->CFG.PrevBB = NewBB; State->CFG.VPBB2IRBB[this] = NewBB; connectToPredecessors(State->CFG); - } else { - State->CFG.VPBB2IRBB[this] = NewBB; } // 2. Fill the IR basic block with IR instructions. diff --git a/llvm/lib/Transforms/Vectorize/VPlan.h b/llvm/lib/Transforms/Vectorize/VPlan.h index abfe97b4ab55b..1b1630ebc6c23 100644 --- a/llvm/lib/Transforms/Vectorize/VPlan.h +++ b/llvm/lib/Transforms/Vectorize/VPlan.h @@ -234,9 +234,11 @@ class VPLane { /// VPTransformState holds information passed down when "executing" a VPlan, /// needed for generating the output IR. struct VPTransformState { - VPTransformState(ElementCount VF, unsigned UF, LoopInfo *LI, - DominatorTree *DT, IRBuilderBase &Builder, + VPTransformState(const TargetTransformInfo *TTI, ElementCount VF, unsigned UF, + LoopInfo *LI, DominatorTree *DT, IRBuilderBase &Builder, InnerLoopVectorizer *ILV, VPlan *Plan); + /// Target Transform Info. + const TargetTransformInfo *TTI; /// The chosen Vectorization Factor of the loop being vectorized. ElementCount VF; @@ -641,7 +643,7 @@ class VPBlockBase { virtual void dropAllReferences(VPValue *NewValue) = 0; #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) - void printAsOperand(raw_ostream &OS, bool PrintType) const { + void printAsOperand(raw_ostream &OS, bool PrintType = false) const { OS << getName(); } @@ -1410,7 +1412,7 @@ class VPIRInstruction : public VPRecipeBase { InstructionCost computeCost(ElementCount VF, VPCostContext &Ctx) const override; - Instruction &getInstruction() { return I; } + Instruction &getInstruction() const { return I; } #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) /// Print the recipe. @@ -3299,19 +3301,23 @@ class VPDerivedIVRecipe : public VPSingleDefRecipe { /// for floating point inductions. const FPMathOperator *FPBinOp; + /// Name to use for the generated IR instruction for the derived IV. + std::string Name; + public: VPDerivedIVRecipe(const InductionDescriptor &IndDesc, VPValue *Start, - VPCanonicalIVPHIRecipe *CanonicalIV, VPValue *Step) + VPCanonicalIVPHIRecipe *CanonicalIV, VPValue *Step, + const Twine &Name = "") : VPDerivedIVRecipe( IndDesc.getKind(), dyn_cast_or_null(IndDesc.getInductionBinOp()), - Start, CanonicalIV, Step) {} + Start, CanonicalIV, Step, Name) {} VPDerivedIVRecipe(InductionDescriptor::InductionKind Kind, const FPMathOperator *FPBinOp, VPValue *Start, VPValue *IV, - VPValue *Step) + VPValue *Step, const Twine &Name = "") : VPSingleDefRecipe(VPDef::VPDerivedIVSC, {Start, IV, Step}), Kind(Kind), - FPBinOp(FPBinOp) {} + FPBinOp(FPBinOp), Name(Name.str()) {} ~VPDerivedIVRecipe() override = default; @@ -3819,12 +3825,17 @@ class VPlan { VPBasicBlock *getEntry() { return Entry; } const VPBasicBlock *getEntry() const { return Entry; } - /// Return the VPIRBasicBlock wrapping the header of the scalar loop. - VPIRBasicBlock *getScalarHeader() const { return ScalarHeader; } + /// Returns the preheader of the vector loop region. + VPBasicBlock *getVectorPreheader() { + return cast(getVectorLoopRegion()->getSinglePredecessor()); + } - /// Return the VPBasicBlock for the preheader of the scalar loop. - VPBasicBlock *getScalarPreheader() const { - return cast(ScalarHeader->getSinglePredecessor()); + /// Returns the VPRegionBlock of the vector loop. + VPRegionBlock *getVectorLoopRegion() { + return cast(getEntry()->getSingleSuccessor()); + } + const VPRegionBlock *getVectorLoopRegion() const { + return cast(getEntry()->getSingleSuccessor()); } /// Returns the 'middle' block of the plan, that is the block that selects @@ -3837,6 +3848,20 @@ class VPlan { return cast(getVectorLoopRegion()->getSingleSuccessor()); } + /// Return the VPBasicBlock for the preheader of the scalar loop. + VPBasicBlock *getScalarPreheader() const { + return cast(ScalarHeader->getSinglePredecessor()); + } + + /// Return the VPIRBasicBlock wrapping the header of the scalar loop. + VPIRBasicBlock *getScalarHeader() const { return ScalarHeader; } + + /// Return an iterator range over the VPIRBasicBlock wrapping the exit blocks + /// of the VPlan, that is leaf nodes except the scalar header. Defined in + /// VPlanHCFG, as the definition of the type needs access to the definitions + /// of VPBlockShallowTraversalWrapper. + auto getExitBlocks(); + /// The trip count of the original loop. VPValue *getTripCount() const { assert(TripCount && "trip count needs to be set before accessing it"); @@ -3941,19 +3966,6 @@ class VPlan { LLVM_DUMP_METHOD void dump() const; #endif - /// Returns the VPRegionBlock of the vector loop. - VPRegionBlock *getVectorLoopRegion() { - return cast(getEntry()->getSingleSuccessor()); - } - const VPRegionBlock *getVectorLoopRegion() const { - return cast(getEntry()->getSingleSuccessor()); - } - - /// Returns the preheader of the vector loop region. - VPBasicBlock *getVectorPreheader() { - return cast(getVectorLoopRegion()->getSinglePredecessor()); - } - /// Returns the canonical induction recipe of the vector loop. VPCanonicalIVPHIRecipe *getCanonicalIV() { VPBasicBlock *EntryVPBB = getVectorLoopRegion()->getEntryBasicBlock(); diff --git a/llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp b/llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp index 8b8ab6be99b0d..cb42cfe8159b0 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp @@ -93,34 +93,19 @@ Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPInstruction *R) { Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPWidenRecipe *R) { unsigned Opcode = R->getOpcode(); - switch (Opcode) { - case Instruction::ICmp: - case Instruction::FCmp: - return IntegerType::get(Ctx, 1); - case Instruction::UDiv: - case Instruction::SDiv: - case Instruction::SRem: - case Instruction::URem: - case Instruction::Add: - case Instruction::FAdd: - case Instruction::Sub: - case Instruction::FSub: - case Instruction::Mul: - case Instruction::FMul: - case Instruction::FDiv: - case Instruction::FRem: - case Instruction::Shl: - case Instruction::LShr: - case Instruction::AShr: - case Instruction::And: - case Instruction::Or: - case Instruction::Xor: { + if (Instruction::isBinaryOp(Opcode) || Instruction::isShift(Opcode) || + Instruction::isBitwiseLogicOp(Opcode)) { Type *ResTy = inferScalarType(R->getOperand(0)); assert(ResTy == inferScalarType(R->getOperand(1)) && "types for both operands must match for binary op"); CachedTypes[R->getOperand(1)] = ResTy; return ResTy; } + + switch (Opcode) { + case Instruction::ICmp: + case Instruction::FCmp: + return IntegerType::get(Ctx, 1); case Instruction::FNeg: case Instruction::Freeze: return inferScalarType(R->getOperand(0)); @@ -157,36 +142,26 @@ Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPWidenSelectRecipe *R) { } Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPReplicateRecipe *R) { - switch (R->getUnderlyingInstr()->getOpcode()) { - case Instruction::Call: { - unsigned CallIdx = R->getNumOperands() - (R->isPredicated() ? 2 : 1); - return cast(R->getOperand(CallIdx)->getLiveInIRValue()) - ->getReturnType(); - } - case Instruction::UDiv: - case Instruction::SDiv: - case Instruction::SRem: - case Instruction::URem: - case Instruction::Add: - case Instruction::FAdd: - case Instruction::Sub: - case Instruction::FSub: - case Instruction::Mul: - case Instruction::FMul: - case Instruction::FDiv: - case Instruction::FRem: - case Instruction::Shl: - case Instruction::LShr: - case Instruction::AShr: - case Instruction::And: - case Instruction::Or: - case Instruction::Xor: { + unsigned Opcode = R->getUnderlyingInstr()->getOpcode(); + + if (Instruction::isBinaryOp(Opcode) || Instruction::isShift(Opcode) || + Instruction::isBitwiseLogicOp(Opcode)) { Type *ResTy = inferScalarType(R->getOperand(0)); assert(ResTy == inferScalarType(R->getOperand(1)) && "inferred types for operands of binary op don't match"); CachedTypes[R->getOperand(1)] = ResTy; return ResTy; } + + if (Instruction::isCast(Opcode)) + return R->getUnderlyingInstr()->getType(); + + switch (Opcode) { + case Instruction::Call: { + unsigned CallIdx = R->getNumOperands() - (R->isPredicated() ? 2 : 1); + return cast(R->getOperand(CallIdx)->getLiveInIRValue()) + ->getReturnType(); + } case Instruction::Select: { Type *ResTy = inferScalarType(R->getOperand(1)); assert(ResTy == inferScalarType(R->getOperand(2)) && @@ -197,21 +172,8 @@ Type *VPTypeAnalysis::inferScalarTypeForRecipe(const VPReplicateRecipe *R) { case Instruction::ICmp: case Instruction::FCmp: return IntegerType::get(Ctx, 1); - case Instruction::AddrSpaceCast: case Instruction::Alloca: - case Instruction::BitCast: - case Instruction::Trunc: - case Instruction::SExt: - case Instruction::ZExt: - case Instruction::FPExt: - case Instruction::FPTrunc: case Instruction::ExtractValue: - case Instruction::SIToFP: - case Instruction::UIToFP: - case Instruction::FPToSI: - case Instruction::FPToUI: - case Instruction::PtrToInt: - case Instruction::IntToPtr: return R->getUnderlyingInstr()->getType(); case Instruction::Freeze: case Instruction::FNeg: diff --git a/llvm/lib/Transforms/Vectorize/VPlanCFG.h b/llvm/lib/Transforms/Vectorize/VPlanCFG.h index 89e2e7514dac2..6ca388a953a6f 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanCFG.h +++ b/llvm/lib/Transforms/Vectorize/VPlanCFG.h @@ -306,6 +306,15 @@ template <> struct GraphTraits { } }; +inline auto VPlan::getExitBlocks() { + VPBlockBase *ScalarHeader = getScalarHeader(); + return make_filter_range( + VPBlockUtils::blocksOnly( + vp_depth_first_shallow(getVectorLoopRegion()->getSingleSuccessor())), + [ScalarHeader](VPIRBasicBlock *VPIRBB) { + return VPIRBB != ScalarHeader && VPIRBB->getNumSuccessors() == 0; + }); +} } // namespace llvm #endif // LLVM_TRANSFORMS_VECTORIZE_VPLANCFG_H diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp index ef2ca9af7268d..b2ee31c3e240a 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp @@ -859,7 +859,9 @@ void VPIRInstruction::print(raw_ostream &O, const Twine &Indent, if (getNumOperands() != 0) { assert(getNumOperands() == 1 && "can have at most 1 operand"); O << " (extra operand: "; - printOperands(O, SlotTracker); + getOperand(0)->printAsOperand(O, SlotTracker); + O << " from "; + getParent()->getPredecessors()[0]->printAsOperand(O); O << ")"; } } @@ -941,7 +943,7 @@ void VPWidenIntrinsicRecipe::execute(VPTransformState &State) { SmallVector TysForDecl; // Add return type if intrinsic is overloaded on it. - if (isVectorIntrinsicWithOverloadTypeAtArg(VectorIntrinsicID, -1)) + if (isVectorIntrinsicWithOverloadTypeAtArg(VectorIntrinsicID, -1, State.TTI)) TysForDecl.push_back(VectorType::get(getResultType(), State.VF)); SmallVector Args; for (const auto &I : enumerate(operands())) { @@ -952,7 +954,8 @@ void VPWidenIntrinsicRecipe::execute(VPTransformState &State) { Arg = State.get(I.value(), VPLane(0)); else Arg = State.get(I.value(), onlyFirstLaneUsed(I.value())); - if (isVectorIntrinsicWithOverloadTypeAtArg(VectorIntrinsicID, I.index())) + if (isVectorIntrinsicWithOverloadTypeAtArg(VectorIntrinsicID, I.index(), + State.TTI)) TysForDecl.push_back(Arg->getType()); Args.push_back(Arg); } @@ -3316,6 +3319,10 @@ void VPFirstOrderRecurrencePHIRecipe::execute(VPTransformState &State) { InstructionCost VPFirstOrderRecurrencePHIRecipe::computeCost(ElementCount VF, VPCostContext &Ctx) const { + TTI::TargetCostKind CostKind = TTI::TCK_RecipThroughput; + if (VF.isScalar()) + return Ctx.TTI.getCFInstrCost(Instruction::PHI, CostKind); + if (VF.isScalable() && VF.getKnownMinValue() == 1) return InstructionCost::getInvalid(); @@ -3324,7 +3331,6 @@ VPFirstOrderRecurrencePHIRecipe::computeCost(ElementCount VF, Type *VectorTy = ToVectorTy(Ctx.Types.inferScalarType(this->getVPSingleValue()), VF); - TTI::TargetCostKind CostKind = TTI::TCK_RecipThroughput; return Ctx.TTI.getShuffleCost(TargetTransformInfo::SK_Splice, cast(VectorTy), Mask, CostKind, VF.getKnownMinValue() - 1); diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp index c1b9d6ede5109..1d1029710c709 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp @@ -528,7 +528,8 @@ createScalarIVSteps(VPlan &Plan, InductionDescriptor::InductionKind Kind, VPCanonicalIVPHIRecipe *CanonicalIV = Plan.getCanonicalIV(); VPSingleDefRecipe *BaseIV = CanonicalIV; if (!CanonicalIV->isCanonical(Kind, StartV, Step)) { - BaseIV = Builder.createDerivedIV(Kind, FPBinOp, StartV, CanonicalIV, Step); + BaseIV = Builder.createDerivedIV(Kind, FPBinOp, StartV, CanonicalIV, Step, + "offset.idx"); } // Truncate base induction if needed. @@ -1445,6 +1446,12 @@ static void transformRecipestoEVLRecipes(VPlan &Plan, VPValue &EVL) { VPTypeAnalysis TypeInfo(CanonicalIVType); LLVMContext &Ctx = CanonicalIVType->getContext(); SmallVector HeaderMasks = collectAllHeaderMasks(Plan); + + for (VPUser *U : Plan.getVF().users()) { + if (auto *R = dyn_cast(U)) + R->setOperand(1, &EVL); + } + for (VPValue *HeaderMask : collectAllHeaderMasks(Plan)) { for (VPUser *U : collectUsersRecursively(HeaderMask)) { auto *CurRecipe = cast(U); diff --git a/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp b/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp index 8bdb313324358..71c7d547ac7d9 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp @@ -134,53 +134,43 @@ bool VPlanVerifier::verifyEVLRecipe(const VPInstruction &EVL) const { } return true; }; - for (const VPUser *U : EVL.users()) { - if (!TypeSwitch(U) - .Case( - [&](const VPWidenIntrinsicRecipe *S) { - return VerifyEVLUse(*S, S->getNumOperands() - 1); - }) - .Case([&](const VPWidenStoreEVLRecipe *S) { - return VerifyEVLUse(*S, 2); - }) - .Case([&](const VPWidenLoadEVLRecipe *L) { - return VerifyEVLUse(*L, 1); - }) - .Case([&](const VPWidenEVLRecipe *W) { - return VerifyEVLUse( - *W, Instruction::isUnaryOp(W->getOpcode()) ? 1 : 2); - }) - .Case([&](const VPReductionEVLRecipe *R) { - return VerifyEVLUse(*R, 2); - }) - .Case( - [&](const VPScalarCastRecipe *S) { return true; }) - .Case([&](const VPInstruction *I) { - if (I->getOpcode() != Instruction::Add) { - errs() - << "EVL is used as an operand in non-VPInstruction::Add\n"; - return false; - } - if (I->getNumUsers() != 1) { - errs() << "EVL is used in VPInstruction:Add with multiple " - "users\n"; - return false; - } - if (!isa(*I->users().begin())) { - errs() << "Result of VPInstruction::Add with EVL operand is " - "not used by VPEVLBasedIVPHIRecipe\n"; - return false; - } - return true; - }) - .Default([&](const VPUser *U) { - errs() << "EVL has unexpected user\n"; - return false; - })) { - return false; - } - } - return true; + return all_of(EVL.users(), [&VerifyEVLUse](VPUser *U) { + return TypeSwitch(U) + .Case([&](const VPWidenIntrinsicRecipe *S) { + return VerifyEVLUse(*S, S->getNumOperands() - 1); + }) + .Case( + [&](const VPRecipeBase *S) { return VerifyEVLUse(*S, 2); }) + .Case( + [&](const VPRecipeBase *R) { return VerifyEVLUse(*R, 1); }) + .Case([&](const VPWidenEVLRecipe *W) { + return VerifyEVLUse(*W, + Instruction::isUnaryOp(W->getOpcode()) ? 1 : 2); + }) + .Case( + [&](const VPScalarCastRecipe *S) { return VerifyEVLUse(*S, 0); }) + .Case([&](const VPInstruction *I) { + if (I->getOpcode() != Instruction::Add) { + errs() << "EVL is used as an operand in non-VPInstruction::Add\n"; + return false; + } + if (I->getNumUsers() != 1) { + errs() << "EVL is used in VPInstruction:Add with multiple " + "users\n"; + return false; + } + if (!isa(*I->users().begin())) { + errs() << "Result of VPInstruction::Add with EVL operand is " + "not used by VPEVLBasedIVPHIRecipe\n"; + return false; + } + return true; + }) + .Default([&](const VPUser *U) { + errs() << "EVL has unexpected user\n"; + return false; + }); + }); } bool VPlanVerifier::verifyVPBasicBlock(const VPBasicBlock *VPBB) { diff --git a/llvm/test/Analysis/CostModel/RISCV/abs.ll b/llvm/test/Analysis/CostModel/RISCV/abs.ll index 8f0dd7b0aefe9..7252716af8605 100644 --- a/llvm/test/Analysis/CostModel/RISCV/abs.ll +++ b/llvm/test/Analysis/CostModel/RISCV/abs.ll @@ -44,37 +44,37 @@ declare @llvm.abs.nxv64i8(, i1) define i32 @abs(i32 %arg) { ; CHECK-LABEL: 'abs' ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %1 = call <2 x i64> @llvm.abs.v2i64(<2 x i64> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %2 = call <4 x i64> @llvm.abs.v4i64(<4 x i64> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %3 = call <8 x i64> @llvm.abs.v8i64(<8 x i64> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %4 = call @llvm.abs.nxv2i64( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %5 = call @llvm.abs.nxv4i64( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %6 = call @llvm.abs.nxv8i64( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %2 = call <4 x i64> @llvm.abs.v4i64(<4 x i64> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %3 = call <8 x i64> @llvm.abs.v8i64(<8 x i64> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %4 = call @llvm.abs.nxv2i64( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %5 = call @llvm.abs.nxv4i64( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %6 = call @llvm.abs.nxv8i64( undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %7 = call <2 x i32> @llvm.abs.v2i32(<2 x i32> undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %8 = call <4 x i32> @llvm.abs.v4i32(<4 x i32> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %9 = call <8 x i32> @llvm.abs.v8i32(<8 x i32> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %10 = call <16 x i32> @llvm.abs.v16i32(<16 x i32> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %9 = call <8 x i32> @llvm.abs.v8i32(<8 x i32> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %10 = call <16 x i32> @llvm.abs.v16i32(<16 x i32> undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %11 = call @llvm.abs.nxv2i32( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %12 = call @llvm.abs.nxv4i32( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %13 = call @llvm.abs.nxv8i32( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %14 = call @llvm.abs.nxv16i32( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %12 = call @llvm.abs.nxv4i32( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %13 = call @llvm.abs.nxv8i32( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %14 = call @llvm.abs.nxv16i32( undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %15 = call <2 x i16> @llvm.abs.v2i16(<2 x i16> undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %16 = call <4 x i16> @llvm.abs.v4i16(<4 x i16> undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %17 = call <8 x i16> @llvm.abs.v8i16(<8 x i16> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %18 = call <16 x i16> @llvm.abs.v16i16(<16 x i16> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %19 = call <32 x i16> @llvm.abs.v32i16(<32 x i16> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %18 = call <16 x i16> @llvm.abs.v16i16(<16 x i16> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %19 = call <32 x i16> @llvm.abs.v32i16(<32 x i16> undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %20 = call @llvm.abs.nxv2i16( undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %21 = call @llvm.abs.nxv4i16( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %22 = call @llvm.abs.nxv8i16( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %23 = call @llvm.abs.nxv16i16( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %24 = call @llvm.abs.nxv32i16( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %22 = call @llvm.abs.nxv8i16( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %23 = call @llvm.abs.nxv16i16( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %24 = call @llvm.abs.nxv32i16( undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %25 = call <8 x i8> @llvm.abs.v8i8(<8 x i8> undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %26 = call <16 x i8> @llvm.abs.v16i8(<16 x i8> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %27 = call <32 x i8> @llvm.abs.v32i8(<32 x i8> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %28 = call <64 x i8> @llvm.abs.v64i8(<64 x i8> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %27 = call <32 x i8> @llvm.abs.v32i8(<32 x i8> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %28 = call <64 x i8> @llvm.abs.v64i8(<64 x i8> undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %29 = call @llvm.abs.nxv8i8( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %30 = call @llvm.abs.nxv16i8( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %31 = call @llvm.abs.nxv32i8( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %32 = call @llvm.abs.nxv64i8( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %30 = call @llvm.abs.nxv16i8( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %31 = call @llvm.abs.nxv32i8( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %32 = call @llvm.abs.nxv64i8( undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret i32 undef ; call <2 x i64> @llvm.abs.v2i64(<2 x i64> undef, i1 false) diff --git a/llvm/test/Analysis/CostModel/RISCV/int-bit-manip.ll b/llvm/test/Analysis/CostModel/RISCV/int-bit-manip.ll index ea05464b08408..55db70ce1e912 100644 --- a/llvm/test/Analysis/CostModel/RISCV/int-bit-manip.ll +++ b/llvm/test/Analysis/CostModel/RISCV/int-bit-manip.ll @@ -157,6 +157,260 @@ define void @bitreverse() { ret void } +define void @ctlz() { +; NOZVBB-LABEL: 'ctlz' +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %1 = call <2 x i8> @llvm.ctlz.v2i8(<2 x i8> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %2 = call <4 x i8> @llvm.ctlz.v4i8(<4 x i8> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %3 = call <8 x i8> @llvm.ctlz.v8i8(<8 x i8> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %4 = call <16 x i8> @llvm.ctlz.v16i8(<16 x i8> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %5 = call @llvm.ctlz.nxv1i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %6 = call @llvm.ctlz.nxv2i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %7 = call @llvm.ctlz.nxv4i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %8 = call @llvm.ctlz.nxv8i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %9 = call @llvm.ctlz.nxv16i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %10 = call @llvm.ctlz.nxv32i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 19 for instruction: %11 = call @llvm.ctlz.nxv64i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %12 = call <2 x i16> @llvm.ctlz.v2i16(<2 x i16> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %13 = call <4 x i16> @llvm.ctlz.v4i16(<4 x i16> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %14 = call <8 x i16> @llvm.ctlz.v8i16(<8 x i16> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %15 = call <16 x i16> @llvm.ctlz.v16i16(<16 x i16> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %16 = call @llvm.ctlz.nxv1i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %17 = call @llvm.ctlz.nxv2i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %18 = call @llvm.ctlz.nxv4i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %19 = call @llvm.ctlz.nxv8i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %20 = call @llvm.ctlz.nxv16i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %21 = call @llvm.ctlz.nxv32i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %22 = call <2 x i32> @llvm.ctlz.v2i32(<2 x i32> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %23 = call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %24 = call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %25 = call <16 x i32> @llvm.ctlz.v16i32(<16 x i32> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %26 = call @llvm.ctlz.nxv1i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %27 = call @llvm.ctlz.nxv2i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %28 = call @llvm.ctlz.nxv4i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %29 = call @llvm.ctlz.nxv8i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %30 = call @llvm.ctlz.nxv16i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %31 = call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %32 = call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %33 = call <8 x i64> @llvm.ctlz.v8i64(<8 x i64> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %34 = call <16 x i64> @llvm.ctlz.v16i64(<16 x i64> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %35 = call @llvm.ctlz.nxv1i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %36 = call @llvm.ctlz.nxv2i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %37 = call @llvm.ctlz.nxv4i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %38 = call @llvm.ctlz.nxv8i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 70 for instruction: %39 = call @llvm.ctlz.nxv16i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; ZVBB-LABEL: 'ctlz' +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = call <2 x i8> @llvm.ctlz.v2i8(<2 x i8> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = call <4 x i8> @llvm.ctlz.v4i8(<4 x i8> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %3 = call <8 x i8> @llvm.ctlz.v8i8(<8 x i8> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = call <16 x i8> @llvm.ctlz.v16i8(<16 x i8> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %5 = call @llvm.ctlz.nxv1i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = call @llvm.ctlz.nxv2i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = call @llvm.ctlz.nxv4i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = call @llvm.ctlz.nxv8i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %9 = call @llvm.ctlz.nxv16i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = call @llvm.ctlz.nxv32i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %11 = call @llvm.ctlz.nxv64i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %12 = call <2 x i16> @llvm.ctlz.v2i16(<2 x i16> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %13 = call <4 x i16> @llvm.ctlz.v4i16(<4 x i16> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = call <8 x i16> @llvm.ctlz.v8i16(<8 x i16> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %15 = call <16 x i16> @llvm.ctlz.v16i16(<16 x i16> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %16 = call @llvm.ctlz.nxv1i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %17 = call @llvm.ctlz.nxv2i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %18 = call @llvm.ctlz.nxv4i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %19 = call @llvm.ctlz.nxv8i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %20 = call @llvm.ctlz.nxv16i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %21 = call @llvm.ctlz.nxv32i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %22 = call <2 x i32> @llvm.ctlz.v2i32(<2 x i32> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %23 = call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %24 = call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %25 = call <16 x i32> @llvm.ctlz.v16i32(<16 x i32> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %26 = call @llvm.ctlz.nxv1i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %27 = call @llvm.ctlz.nxv2i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %28 = call @llvm.ctlz.nxv4i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %29 = call @llvm.ctlz.nxv8i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %30 = call @llvm.ctlz.nxv16i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %31 = call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %32 = call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %33 = call <8 x i64> @llvm.ctlz.v8i64(<8 x i64> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %34 = call <16 x i64> @llvm.ctlz.v16i64(<16 x i64> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %35 = call @llvm.ctlz.nxv1i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %36 = call @llvm.ctlz.nxv2i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %37 = call @llvm.ctlz.nxv4i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %38 = call @llvm.ctlz.nxv8i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %39 = call @llvm.ctlz.nxv16i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; + call <2 x i8> @llvm.ctlz.v2i8(<2 x i8> undef, i1 false) + call <4 x i8> @llvm.ctlz.v4i8(<4 x i8> undef, i1 false) + call <8 x i8> @llvm.ctlz.v8i8(<8 x i8> undef, i1 false) + call <16 x i8> @llvm.ctlz.v16i8(<16 x i8> undef, i1 false) + call @llvm.ctlz.nxv1i8( undef, i1 false) + call @llvm.ctlz.nxv2i8( undef, i1 false) + call @llvm.ctlz.nxv4i8( undef, i1 false) + call @llvm.ctlz.nxv8i8( undef, i1 false) + call @llvm.ctlz.nxv16i8( undef, i1 false) + call @llvm.ctlz.nxv32i8( undef, i1 false) + call @llvm.ctlz.nxv64i8( undef, i1 false) + call <2 x i16> @llvm.ctlz.v2i16(<2 x i16> undef, i1 false) + call <4 x i16> @llvm.ctlz.v4i16(<4 x i16> undef, i1 false) + call <8 x i16> @llvm.ctlz.v8i16(<8 x i16> undef, i1 false) + call <16 x i16> @llvm.ctlz.v16i16(<16 x i16> undef, i1 false) + call @llvm.ctlz.nxv1i16( undef, i1 false) + call @llvm.ctlz.nxv2i16( undef, i1 false) + call @llvm.ctlz.nxv4i16( undef, i1 false) + call @llvm.ctlz.nxv8i16( undef, i1 false) + call @llvm.ctlz.nxv16i16( undef, i1 false) + call @llvm.ctlz.nxv32i16( undef, i1 false) + call <2 x i32> @llvm.ctlz.v2i32(<2 x i32> undef, i1 false) + call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> undef, i1 false) + call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> undef, i1 false) + call <16 x i32> @llvm.ctlz.v16i32(<16 x i32> undef, i1 false) + call @llvm.ctlz.nxv1i32( undef, i1 false) + call @llvm.ctlz.nxv2i32( undef, i1 false) + call @llvm.ctlz.nxv4i32( undef, i1 false) + call @llvm.ctlz.nxv8i32( undef, i1 false) + call @llvm.ctlz.nxv16i32( undef, i1 false) + call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> undef, i1 false) + call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> undef, i1 false) + call <8 x i64> @llvm.ctlz.v8i64(<8 x i64> undef, i1 false) + call <16 x i64> @llvm.ctlz.v16i64(<16 x i64> undef, i1 false) + call @llvm.ctlz.nxv1i64( undef, i1 false) + call @llvm.ctlz.nxv2i64( undef, i1 false) + call @llvm.ctlz.nxv4i64( undef, i1 false) + call @llvm.ctlz.nxv8i64( undef, i1 false) + call @llvm.ctlz.nxv16i64( undef, i1 false) + ret void +} + +define void @cttz() { +; NOZVBB-LABEL: 'cttz' +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %1 = call <2 x i8> @llvm.cttz.v2i8(<2 x i8> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %2 = call <4 x i8> @llvm.cttz.v4i8(<4 x i8> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %3 = call <8 x i8> @llvm.cttz.v8i8(<8 x i8> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %4 = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %5 = call @llvm.cttz.nxv1i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %6 = call @llvm.cttz.nxv2i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %7 = call @llvm.cttz.nxv4i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %8 = call @llvm.cttz.nxv8i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %9 = call @llvm.cttz.nxv16i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %10 = call @llvm.cttz.nxv32i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %11 = call @llvm.cttz.nxv64i8( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %12 = call <2 x i16> @llvm.cttz.v2i16(<2 x i16> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %13 = call <4 x i16> @llvm.cttz.v4i16(<4 x i16> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %14 = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %15 = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %16 = call @llvm.cttz.nxv1i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %17 = call @llvm.cttz.nxv2i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %18 = call @llvm.cttz.nxv4i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %19 = call @llvm.cttz.nxv8i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %20 = call @llvm.cttz.nxv16i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %21 = call @llvm.cttz.nxv32i16( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %22 = call <2 x i32> @llvm.cttz.v2i32(<2 x i32> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %23 = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %24 = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %25 = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %26 = call @llvm.cttz.nxv1i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %27 = call @llvm.cttz.nxv2i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %28 = call @llvm.cttz.nxv4i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %29 = call @llvm.cttz.nxv8i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %30 = call @llvm.cttz.nxv16i32( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %31 = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %32 = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %33 = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %34 = call <16 x i64> @llvm.cttz.v16i64(<16 x i64> undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %35 = call @llvm.cttz.nxv1i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %36 = call @llvm.cttz.nxv2i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %37 = call @llvm.cttz.nxv4i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %38 = call @llvm.cttz.nxv8i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %39 = call @llvm.cttz.nxv16i64( undef, i1 false) +; NOZVBB-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; ZVBB-LABEL: 'cttz' +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %1 = call <2 x i8> @llvm.cttz.v2i8(<2 x i8> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %2 = call <4 x i8> @llvm.cttz.v4i8(<4 x i8> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %3 = call <8 x i8> @llvm.cttz.v8i8(<8 x i8> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %4 = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %5 = call @llvm.cttz.nxv1i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = call @llvm.cttz.nxv2i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = call @llvm.cttz.nxv4i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = call @llvm.cttz.nxv8i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %9 = call @llvm.cttz.nxv16i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = call @llvm.cttz.nxv32i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %11 = call @llvm.cttz.nxv64i8( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %12 = call <2 x i16> @llvm.cttz.v2i16(<2 x i16> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %13 = call <4 x i16> @llvm.cttz.v4i16(<4 x i16> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %15 = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %16 = call @llvm.cttz.nxv1i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %17 = call @llvm.cttz.nxv2i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %18 = call @llvm.cttz.nxv4i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %19 = call @llvm.cttz.nxv8i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %20 = call @llvm.cttz.nxv16i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %21 = call @llvm.cttz.nxv32i16( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %22 = call <2 x i32> @llvm.cttz.v2i32(<2 x i32> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %23 = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %24 = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %25 = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %26 = call @llvm.cttz.nxv1i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %27 = call @llvm.cttz.nxv2i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %28 = call @llvm.cttz.nxv4i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %29 = call @llvm.cttz.nxv8i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %30 = call @llvm.cttz.nxv16i32( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %31 = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %32 = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %33 = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %34 = call <16 x i64> @llvm.cttz.v16i64(<16 x i64> undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %35 = call @llvm.cttz.nxv1i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %36 = call @llvm.cttz.nxv2i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %37 = call @llvm.cttz.nxv4i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %38 = call @llvm.cttz.nxv8i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %39 = call @llvm.cttz.nxv16i64( undef, i1 false) +; ZVBB-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; + call <2 x i8> @llvm.cttz.v2i8(<2 x i8> undef, i1 false) + call <4 x i8> @llvm.cttz.v4i8(<4 x i8> undef, i1 false) + call <8 x i8> @llvm.cttz.v8i8(<8 x i8> undef, i1 false) + call <16 x i8> @llvm.cttz.v16i8(<16 x i8> undef, i1 false) + call @llvm.cttz.nxv1i8( undef, i1 false) + call @llvm.cttz.nxv2i8( undef, i1 false) + call @llvm.cttz.nxv4i8( undef, i1 false) + call @llvm.cttz.nxv8i8( undef, i1 false) + call @llvm.cttz.nxv16i8( undef, i1 false) + call @llvm.cttz.nxv32i8( undef, i1 false) + call @llvm.cttz.nxv64i8( undef, i1 false) + call <2 x i16> @llvm.cttz.v2i16(<2 x i16> undef, i1 false) + call <4 x i16> @llvm.cttz.v4i16(<4 x i16> undef, i1 false) + call <8 x i16> @llvm.cttz.v8i16(<8 x i16> undef, i1 false) + call <16 x i16> @llvm.cttz.v16i16(<16 x i16> undef, i1 false) + call @llvm.cttz.nxv1i16( undef, i1 false) + call @llvm.cttz.nxv2i16( undef, i1 false) + call @llvm.cttz.nxv4i16( undef, i1 false) + call @llvm.cttz.nxv8i16( undef, i1 false) + call @llvm.cttz.nxv16i16( undef, i1 false) + call @llvm.cttz.nxv32i16( undef, i1 false) + call <2 x i32> @llvm.cttz.v2i32(<2 x i32> undef, i1 false) + call <4 x i32> @llvm.cttz.v4i32(<4 x i32> undef, i1 false) + call <8 x i32> @llvm.cttz.v8i32(<8 x i32> undef, i1 false) + call <16 x i32> @llvm.cttz.v16i32(<16 x i32> undef, i1 false) + call @llvm.cttz.nxv1i32( undef, i1 false) + call @llvm.cttz.nxv2i32( undef, i1 false) + call @llvm.cttz.nxv4i32( undef, i1 false) + call @llvm.cttz.nxv8i32( undef, i1 false) + call @llvm.cttz.nxv16i32( undef, i1 false) + call <2 x i64> @llvm.cttz.v2i64(<2 x i64> undef, i1 false) + call <4 x i64> @llvm.cttz.v4i64(<4 x i64> undef, i1 false) + call <8 x i64> @llvm.cttz.v8i64(<8 x i64> undef, i1 false) + call <16 x i64> @llvm.cttz.v16i64(<16 x i64> undef, i1 false) + call @llvm.cttz.nxv1i64( undef, i1 false) + call @llvm.cttz.nxv2i64( undef, i1 false) + call @llvm.cttz.nxv4i64( undef, i1 false) + call @llvm.cttz.nxv8i64( undef, i1 false) + call @llvm.cttz.nxv16i64( undef, i1 false) + ret void +} + define void @ctpop() { ; NOZVBB-LABEL: 'ctpop' ; NOZVBB-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %1 = call i8 @llvm.ctpop.i8(i8 undef) @@ -778,6 +1032,86 @@ declare @llvm.vp.bswap.nxv4i64(, @llvm.vp.bswap.nxv8i64(, , i32) declare @llvm.vp.bswap.nxv16i64(, , i32) +declare <2 x i8> @llvm.ctlz.v2i8(<2 x i8>, i1) +declare <4 x i8> @llvm.ctlz.v4i8(<4 x i8>, i1) +declare <8 x i8> @llvm.ctlz.v8i8(<8 x i8>, i1) +declare <16 x i8> @llvm.ctlz.v16i8(<16 x i8>, i1) +declare @llvm.ctlz.nxv1i8(, i1) +declare @llvm.ctlz.nxv2i8(, i1) +declare @llvm.ctlz.nxv4i8(, i1) +declare @llvm.ctlz.nxv8i8(, i1) +declare @llvm.ctlz.nxv16i8(, i1) +declare @llvm.ctlz.nxv32i8(, i1) +declare @llvm.ctlz.nxv64i8(, i1) +declare <2 x i16> @llvm.ctlz.v2i16(<2 x i16>, i1) +declare <4 x i16> @llvm.ctlz.v4i16(<4 x i16>, i1) +declare <8 x i16> @llvm.ctlz.v8i16(<8 x i16>, i1) +declare <16 x i16> @llvm.ctlz.v16i16(<16 x i16>, i1) +declare @llvm.ctlz.nxv1i16(, i1) +declare @llvm.ctlz.nxv2i16(, i1) +declare @llvm.ctlz.nxv4i16(, i1) +declare @llvm.ctlz.nxv8i16(, i1) +declare @llvm.ctlz.nxv16i16(, i1) +declare @llvm.ctlz.nxv32i16(, i1) +declare <2 x i32> @llvm.ctlz.v2i32(<2 x i32>, i1) +declare <4 x i32> @llvm.ctlz.v4i32(<4 x i32>, i1) +declare <8 x i32> @llvm.ctlz.v8i32(<8 x i32>, i1) +declare <16 x i32> @llvm.ctlz.v16i32(<16 x i32>, i1) +declare @llvm.ctlz.nxv1i32(, i1) +declare @llvm.ctlz.nxv2i32(, i1) +declare @llvm.ctlz.nxv4i32(, i1) +declare @llvm.ctlz.nxv8i32(, i1) +declare @llvm.ctlz.nxv16i32(, i1) +declare <2 x i64> @llvm.ctlz.v2i64(<2 x i64>, i1) +declare <4 x i64> @llvm.ctlz.v4i64(<4 x i64>, i1) +declare <8 x i64> @llvm.ctlz.v8i64(<8 x i64>, i1) +declare <16 x i64> @llvm.ctlz.v16i64(<16 x i64>, i1) +declare @llvm.ctlz.nxv1i64(, i1) +declare @llvm.ctlz.nxv2i64(, i1) +declare @llvm.ctlz.nxv4i64(, i1) +declare @llvm.ctlz.nxv8i64(, i1) +declare @llvm.ctlz.nxv16i64(, i1) + +declare <2 x i8> @llvm.cttz.v2i8(<2 x i8>, i1) +declare <4 x i8> @llvm.cttz.v4i8(<4 x i8>, i1) +declare <8 x i8> @llvm.cttz.v8i8(<8 x i8>, i1) +declare <16 x i8> @llvm.cttz.v16i8(<16 x i8>, i1) +declare @llvm.cttz.nxv1i8(, i1) +declare @llvm.cttz.nxv2i8(, i1) +declare @llvm.cttz.nxv4i8(, i1) +declare @llvm.cttz.nxv8i8(, i1) +declare @llvm.cttz.nxv16i8(, i1) +declare @llvm.cttz.nxv32i8(, i1) +declare @llvm.cttz.nxv64i8(, i1) +declare <2 x i16> @llvm.cttz.v2i16(<2 x i16>, i1) +declare <4 x i16> @llvm.cttz.v4i16(<4 x i16>, i1) +declare <8 x i16> @llvm.cttz.v8i16(<8 x i16>, i1) +declare <16 x i16> @llvm.cttz.v16i16(<16 x i16>, i1) +declare @llvm.cttz.nxv1i16(, i1) +declare @llvm.cttz.nxv2i16(, i1) +declare @llvm.cttz.nxv4i16(, i1) +declare @llvm.cttz.nxv8i16(, i1) +declare @llvm.cttz.nxv16i16(, i1) +declare @llvm.cttz.nxv32i16(, i1) +declare <2 x i32> @llvm.cttz.v2i32(<2 x i32>, i1) +declare <4 x i32> @llvm.cttz.v4i32(<4 x i32>, i1) +declare <8 x i32> @llvm.cttz.v8i32(<8 x i32>, i1) +declare <16 x i32> @llvm.cttz.v16i32(<16 x i32>, i1) +declare @llvm.cttz.nxv1i32(, i1) +declare @llvm.cttz.nxv2i32(, i1) +declare @llvm.cttz.nxv4i32(, i1) +declare @llvm.cttz.nxv8i32(, i1) +declare @llvm.cttz.nxv16i32(, i1) +declare <2 x i64> @llvm.cttz.v2i64(<2 x i64>, i1) +declare <4 x i64> @llvm.cttz.v4i64(<4 x i64>, i1) +declare <8 x i64> @llvm.cttz.v8i64(<8 x i64>, i1) +declare <16 x i64> @llvm.cttz.v16i64(<16 x i64>, i1) +declare @llvm.cttz.nxv1i64(, i1) +declare @llvm.cttz.nxv2i64(, i1) +declare @llvm.cttz.nxv4i64(, i1) +declare @llvm.cttz.nxv8i64(, i1) +declare @llvm.cttz.nxv16i64(, i1) + declare <2 x i8> @llvm.vp.ctpop.v2i8(<2 x i8>, <2 x i1>, i32) declare <4 x i8> @llvm.vp.ctpop.v4i8(<4 x i8>, <4 x i1>, i32) declare <8 x i8> @llvm.vp.ctpop.v8i8(<8 x i8>, <8 x i1>, i32) diff --git a/llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll b/llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll index 800ea223850d3..c7cd845a0a03f 100644 --- a/llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll +++ b/llvm/test/Analysis/CostModel/RISCV/vp-intrinsics.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py -; RUN: opt < %s -passes="print" 2>&1 -disable-output -S -mtriple=riscv64 -mattr=+v | FileCheck %s -; RUN: opt < %s -passes="print" 2>&1 -disable-output -S -mtriple=riscv64 -mattr=+v --type-based-intrinsic-cost=true | FileCheck %s --check-prefixes=TYPEBASED +; RUN: opt < %s -passes="print" 2>&1 -disable-output -S -mtriple=riscv64 -mattr=+v,+zvfhmin,+zvfbfmin | FileCheck %s +; RUN: opt < %s -passes="print" 2>&1 -disable-output -S -mtriple=riscv64 -mattr=+v,+zvfhmin,+zvfbfmin --type-based-intrinsic-cost=true | FileCheck %s --check-prefixes=TYPEBASED define void @unsupported_fp_ops( %vec, i32 %extraarg) { ; CHECK-LABEL: 'unsupported_fp_ops' @@ -1147,28 +1147,28 @@ define void @abs() { ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %8 = call <16 x i8> @llvm.abs.v16i8(<16 x i8> undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %9 = call <2 x i64> @llvm.vp.abs.v2i64(<2 x i64> undef, i1 false, <2 x i1> undef, i32 undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %10 = call <2 x i64> @llvm.abs.v2i64(<2 x i64> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %11 = call <4 x i64> @llvm.vp.abs.v4i64(<4 x i64> undef, i1 false, <4 x i1> undef, i32 undef) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %12 = call <4 x i64> @llvm.abs.v4i64(<4 x i64> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %13 = call <8 x i64> @llvm.vp.abs.v8i64(<8 x i64> undef, i1 false, <8 x i1> undef, i32 undef) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %14 = call <8 x i64> @llvm.abs.v8i64(<8 x i64> undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %15 = call <16 x i64> @llvm.vp.abs.v16i64(<16 x i64> undef, i1 false, <16 x i1> undef, i32 undef) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %16 = call <16 x i64> @llvm.abs.v16i64(<16 x i64> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %11 = call <4 x i64> @llvm.vp.abs.v4i64(<4 x i64> undef, i1 false, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %12 = call <4 x i64> @llvm.abs.v4i64(<4 x i64> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %13 = call <8 x i64> @llvm.vp.abs.v8i64(<8 x i64> undef, i1 false, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %14 = call <8 x i64> @llvm.abs.v8i64(<8 x i64> undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %15 = call <16 x i64> @llvm.vp.abs.v16i64(<16 x i64> undef, i1 false, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %16 = call <16 x i64> @llvm.abs.v16i64(<16 x i64> undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %17 = call @llvm.vp.abs.nxv2i8( undef, i1 false, undef, i32 undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %18 = call @llvm.abs.nxv2i8( undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %19 = call @llvm.vp.abs.nxv4i8( undef, i1 false, undef, i32 undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %20 = call @llvm.abs.nxv4i8( undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %21 = call @llvm.vp.abs.nxv8i8( undef, i1 false, undef, i32 undef) ; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %22 = call @llvm.abs.nxv8i8( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %23 = call @llvm.vp.abs.nxv16i8( undef, i1 false, undef, i32 undef) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %24 = call @llvm.abs.nxv16i8( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %25 = call @llvm.vp.abs.nxv2i64( undef, i1 false, undef, i32 undef) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %26 = call @llvm.abs.nxv2i64( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %27 = call @llvm.vp.abs.nxv4i64( undef, i1 false, undef, i32 undef) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %28 = call @llvm.abs.nxv4i64( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %29 = call @llvm.vp.abs.nxv8i64( undef, i1 false, undef, i32 undef) -; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %30 = call @llvm.abs.nxv8i64( undef, i1 false) -; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %31 = call @llvm.vp.abs.nxv16i64( undef, i1 false, undef, i32 undef) -; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %32 = call @llvm.abs.nxv16i64( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %23 = call @llvm.vp.abs.nxv16i8( undef, i1 false, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %24 = call @llvm.abs.nxv16i8( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %25 = call @llvm.vp.abs.nxv2i64( undef, i1 false, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %26 = call @llvm.abs.nxv2i64( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %27 = call @llvm.vp.abs.nxv4i64( undef, i1 false, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %28 = call @llvm.abs.nxv4i64( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %29 = call @llvm.vp.abs.nxv8i64( undef, i1 false, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %30 = call @llvm.abs.nxv8i64( undef, i1 false) +; CHECK-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %31 = call @llvm.vp.abs.nxv16i64( undef, i1 false, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %32 = call @llvm.abs.nxv16i64( undef, i1 false) ; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; ; TYPEBASED-LABEL: 'abs' @@ -1182,28 +1182,28 @@ define void @abs() { ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %8 = call <16 x i8> @llvm.abs.v16i8(<16 x i8> undef, i1 false) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %9 = call <2 x i64> @llvm.vp.abs.v2i64(<2 x i64> undef, i1 false, <2 x i1> undef, i32 undef) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %10 = call <2 x i64> @llvm.abs.v2i64(<2 x i64> undef, i1 false) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %11 = call <4 x i64> @llvm.vp.abs.v4i64(<4 x i64> undef, i1 false, <4 x i1> undef, i32 undef) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %12 = call <4 x i64> @llvm.abs.v4i64(<4 x i64> undef, i1 false) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %13 = call <8 x i64> @llvm.vp.abs.v8i64(<8 x i64> undef, i1 false, <8 x i1> undef, i32 undef) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %14 = call <8 x i64> @llvm.abs.v8i64(<8 x i64> undef, i1 false) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %15 = call <16 x i64> @llvm.vp.abs.v16i64(<16 x i64> undef, i1 false, <16 x i1> undef, i32 undef) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %16 = call <16 x i64> @llvm.abs.v16i64(<16 x i64> undef, i1 false) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %11 = call <4 x i64> @llvm.vp.abs.v4i64(<4 x i64> undef, i1 false, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %12 = call <4 x i64> @llvm.abs.v4i64(<4 x i64> undef, i1 false) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %13 = call <8 x i64> @llvm.vp.abs.v8i64(<8 x i64> undef, i1 false, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %14 = call <8 x i64> @llvm.abs.v8i64(<8 x i64> undef, i1 false) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %15 = call <16 x i64> @llvm.vp.abs.v16i64(<16 x i64> undef, i1 false, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %16 = call <16 x i64> @llvm.abs.v16i64(<16 x i64> undef, i1 false) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %17 = call @llvm.vp.abs.nxv2i8( undef, i1 false, undef, i32 undef) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %18 = call @llvm.abs.nxv2i8( undef, i1 false) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %19 = call @llvm.vp.abs.nxv4i8( undef, i1 false, undef, i32 undef) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %20 = call @llvm.abs.nxv4i8( undef, i1 false) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %21 = call @llvm.vp.abs.nxv8i8( undef, i1 false, undef, i32 undef) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %22 = call @llvm.abs.nxv8i8( undef, i1 false) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %23 = call @llvm.vp.abs.nxv16i8( undef, i1 false, undef, i32 undef) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %24 = call @llvm.abs.nxv16i8( undef, i1 false) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %25 = call @llvm.vp.abs.nxv2i64( undef, i1 false, undef, i32 undef) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %26 = call @llvm.abs.nxv2i64( undef, i1 false) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %27 = call @llvm.vp.abs.nxv4i64( undef, i1 false, undef, i32 undef) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %28 = call @llvm.abs.nxv4i64( undef, i1 false) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %29 = call @llvm.vp.abs.nxv8i64( undef, i1 false, undef, i32 undef) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %30 = call @llvm.abs.nxv8i64( undef, i1 false) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %31 = call @llvm.vp.abs.nxv16i64( undef, i1 false, undef, i32 undef) -; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %32 = call @llvm.abs.nxv16i64( undef, i1 false) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %23 = call @llvm.vp.abs.nxv16i8( undef, i1 false, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %24 = call @llvm.abs.nxv16i8( undef, i1 false) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %25 = call @llvm.vp.abs.nxv2i64( undef, i1 false, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %26 = call @llvm.abs.nxv2i64( undef, i1 false) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %27 = call @llvm.vp.abs.nxv4i64( undef, i1 false, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %28 = call @llvm.abs.nxv4i64( undef, i1 false) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %29 = call @llvm.vp.abs.nxv8i64( undef, i1 false, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %30 = call @llvm.abs.nxv8i64( undef, i1 false) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %31 = call @llvm.vp.abs.nxv16i64( undef, i1 false, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %32 = call @llvm.abs.nxv16i64( undef, i1 false) ; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; call <2 x i8> @llvm.vp.abs.v2i8(<2 x i8> undef, i1 0, <2 x i1> undef, i32 undef) @@ -2125,6 +2125,232 @@ define void @vp_fdiv(){ ret void } +define void @splat() { +; CHECK-LABEL: 'splat' +; CHECK-NEXT: Cost Model: Invalid cost for instruction: %1 = call <2 x i1> @llvm.experimental.vp.splat.v2i1(i1 undef, <2 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Invalid cost for instruction: %2 = call <4 x i1> @llvm.experimental.vp.splat.v4i1(i1 undef, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Invalid cost for instruction: %3 = call <8 x i1> @llvm.experimental.vp.splat.v8i1(i1 undef, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Invalid cost for instruction: %4 = call <16 x i1> @llvm.experimental.vp.splat.v16i1(i1 undef, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %5 = call <2 x i8> @llvm.experimental.vp.splat.v2i8(i8 undef, <2 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = call <4 x i8> @llvm.experimental.vp.splat.v4i8(i8 undef, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = call <8 x i8> @llvm.experimental.vp.splat.v8i8(i8 undef, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = call <16 x i8> @llvm.experimental.vp.splat.v16i8(i8 undef, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %9 = call <2 x i16> @llvm.experimental.vp.splat.v2i16(i16 undef, <2 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = call <4 x i16> @llvm.experimental.vp.splat.v4i16(i16 undef, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %11 = call <8 x i16> @llvm.experimental.vp.splat.v8i16(i16 undef, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %12 = call <16 x i16> @llvm.experimental.vp.splat.v16i16(i16 undef, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %13 = call <2 x i32> @llvm.experimental.vp.splat.v2i32(i32 undef, <2 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = call <4 x i32> @llvm.experimental.vp.splat.v4i32(i32 undef, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %15 = call <8 x i32> @llvm.experimental.vp.splat.v8i32(i32 undef, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %16 = call <16 x i32> @llvm.experimental.vp.splat.v16i32(i32 undef, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %17 = call <2 x i64> @llvm.experimental.vp.splat.v2i64(i64 undef, <2 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %18 = call <4 x i64> @llvm.experimental.vp.splat.v4i64(i64 undef, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %19 = call <8 x i64> @llvm.experimental.vp.splat.v8i64(i64 undef, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %20 = call <16 x i64> @llvm.experimental.vp.splat.v16i64(i64 undef, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %21 = call <2 x bfloat> @llvm.experimental.vp.splat.v2bf16(bfloat undef, <2 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %22 = call <4 x bfloat> @llvm.experimental.vp.splat.v4bf16(bfloat undef, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %23 = call <8 x bfloat> @llvm.experimental.vp.splat.v8bf16(bfloat undef, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %24 = call <16 x bfloat> @llvm.experimental.vp.splat.v16bf16(bfloat undef, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %25 = call <2 x half> @llvm.experimental.vp.splat.v2f16(half undef, <2 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %26 = call <4 x half> @llvm.experimental.vp.splat.v4f16(half undef, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %27 = call <8 x half> @llvm.experimental.vp.splat.v8f16(half undef, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %28 = call <16 x half> @llvm.experimental.vp.splat.v16f16(half undef, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %29 = call <2 x float> @llvm.experimental.vp.splat.v2f32(float undef, <2 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %30 = call <4 x float> @llvm.experimental.vp.splat.v4f32(float undef, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %31 = call <8 x float> @llvm.experimental.vp.splat.v8f32(float undef, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %32 = call <16 x float> @llvm.experimental.vp.splat.v16f32(float undef, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %33 = call <2 x double> @llvm.experimental.vp.splat.v2f64(double undef, <2 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %34 = call <4 x double> @llvm.experimental.vp.splat.v4f64(double undef, <4 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %35 = call <8 x double> @llvm.experimental.vp.splat.v8f64(double undef, <8 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %36 = call <16 x double> @llvm.experimental.vp.splat.v16f64(double undef, <16 x i1> undef, i32 undef) +; CHECK-NEXT: Cost Model: Invalid cost for instruction: %37 = call @llvm.experimental.vp.splat.nxv2i1(i1 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Invalid cost for instruction: %38 = call @llvm.experimental.vp.splat.nxv4i1(i1 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Invalid cost for instruction: %39 = call @llvm.experimental.vp.splat.nxv8i1(i1 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Invalid cost for instruction: %40 = call @llvm.experimental.vp.splat.nxv16i1(i1 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %41 = call @llvm.experimental.vp.splat.nxv2i8(i8 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %42 = call @llvm.experimental.vp.splat.nxv4i8(i8 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %43 = call @llvm.experimental.vp.splat.nxv8i8(i8 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %44 = call @llvm.experimental.vp.splat.nxv16i8(i8 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %45 = call @llvm.experimental.vp.splat.nxv2i16(i16 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %46 = call @llvm.experimental.vp.splat.nxv4i16(i16 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %47 = call @llvm.experimental.vp.splat.nxv8i16(i16 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %48 = call @llvm.experimental.vp.splat.nxv16i16(i16 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %49 = call @llvm.experimental.vp.splat.nxv2i32(i32 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %50 = call @llvm.experimental.vp.splat.nxv4i32(i32 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %51 = call @llvm.experimental.vp.splat.nxv8i32(i32 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %52 = call @llvm.experimental.vp.splat.nxv16i32(i32 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %53 = call @llvm.experimental.vp.splat.nxv2i64(i64 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %54 = call @llvm.experimental.vp.splat.nxv4i64(i64 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %55 = call @llvm.experimental.vp.splat.nxv8i64(i64 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %56 = call @llvm.experimental.vp.splat.nxv16i64(i64 undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %57 = call @llvm.experimental.vp.splat.nxv2bf16(bfloat undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %58 = call @llvm.experimental.vp.splat.nxv4bf16(bfloat undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %59 = call @llvm.experimental.vp.splat.nxv8bf16(bfloat undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %60 = call @llvm.experimental.vp.splat.nxv16bf16(bfloat undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %61 = call @llvm.experimental.vp.splat.nxv2f16(half undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %62 = call @llvm.experimental.vp.splat.nxv4f16(half undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %63 = call @llvm.experimental.vp.splat.nxv8f16(half undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %64 = call @llvm.experimental.vp.splat.nxv16f16(half undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %65 = call @llvm.experimental.vp.splat.nxv2f32(float undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %66 = call @llvm.experimental.vp.splat.nxv4f32(float undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %67 = call @llvm.experimental.vp.splat.nxv8f32(float undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %68 = call @llvm.experimental.vp.splat.nxv16f32(float undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %69 = call @llvm.experimental.vp.splat.nxv2f64(double undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %70 = call @llvm.experimental.vp.splat.nxv4f64(double undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %71 = call @llvm.experimental.vp.splat.nxv8f64(double undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %72 = call @llvm.experimental.vp.splat.nxv16f64(double undef, undef, i32 undef) +; CHECK-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; +; TYPEBASED-LABEL: 'splat' +; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %1 = call <2 x i1> @llvm.experimental.vp.splat.v2i1(i1 undef, <2 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %2 = call <4 x i1> @llvm.experimental.vp.splat.v4i1(i1 undef, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %3 = call <8 x i1> @llvm.experimental.vp.splat.v8i1(i1 undef, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %4 = call <16 x i1> @llvm.experimental.vp.splat.v16i1(i1 undef, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %5 = call <2 x i8> @llvm.experimental.vp.splat.v2i8(i8 undef, <2 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %6 = call <4 x i8> @llvm.experimental.vp.splat.v4i8(i8 undef, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %7 = call <8 x i8> @llvm.experimental.vp.splat.v8i8(i8 undef, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %8 = call <16 x i8> @llvm.experimental.vp.splat.v16i8(i8 undef, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %9 = call <2 x i16> @llvm.experimental.vp.splat.v2i16(i16 undef, <2 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %10 = call <4 x i16> @llvm.experimental.vp.splat.v4i16(i16 undef, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %11 = call <8 x i16> @llvm.experimental.vp.splat.v8i16(i16 undef, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %12 = call <16 x i16> @llvm.experimental.vp.splat.v16i16(i16 undef, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %13 = call <2 x i32> @llvm.experimental.vp.splat.v2i32(i32 undef, <2 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %14 = call <4 x i32> @llvm.experimental.vp.splat.v4i32(i32 undef, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %15 = call <8 x i32> @llvm.experimental.vp.splat.v8i32(i32 undef, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %16 = call <16 x i32> @llvm.experimental.vp.splat.v16i32(i32 undef, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %17 = call <2 x i64> @llvm.experimental.vp.splat.v2i64(i64 undef, <2 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %18 = call <4 x i64> @llvm.experimental.vp.splat.v4i64(i64 undef, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %19 = call <8 x i64> @llvm.experimental.vp.splat.v8i64(i64 undef, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %20 = call <16 x i64> @llvm.experimental.vp.splat.v16i64(i64 undef, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %21 = call <2 x bfloat> @llvm.experimental.vp.splat.v2bf16(bfloat undef, <2 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %22 = call <4 x bfloat> @llvm.experimental.vp.splat.v4bf16(bfloat undef, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %23 = call <8 x bfloat> @llvm.experimental.vp.splat.v8bf16(bfloat undef, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %24 = call <16 x bfloat> @llvm.experimental.vp.splat.v16bf16(bfloat undef, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %25 = call <2 x half> @llvm.experimental.vp.splat.v2f16(half undef, <2 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %26 = call <4 x half> @llvm.experimental.vp.splat.v4f16(half undef, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %27 = call <8 x half> @llvm.experimental.vp.splat.v8f16(half undef, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %28 = call <16 x half> @llvm.experimental.vp.splat.v16f16(half undef, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %29 = call <2 x float> @llvm.experimental.vp.splat.v2f32(float undef, <2 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %30 = call <4 x float> @llvm.experimental.vp.splat.v4f32(float undef, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %31 = call <8 x float> @llvm.experimental.vp.splat.v8f32(float undef, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %32 = call <16 x float> @llvm.experimental.vp.splat.v16f32(float undef, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %33 = call <2 x double> @llvm.experimental.vp.splat.v2f64(double undef, <2 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %34 = call <4 x double> @llvm.experimental.vp.splat.v4f64(double undef, <4 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %35 = call <8 x double> @llvm.experimental.vp.splat.v8f64(double undef, <8 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %36 = call <16 x double> @llvm.experimental.vp.splat.v16f64(double undef, <16 x i1> undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %37 = call @llvm.experimental.vp.splat.nxv2i1(i1 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %38 = call @llvm.experimental.vp.splat.nxv4i1(i1 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %39 = call @llvm.experimental.vp.splat.nxv8i1(i1 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Invalid cost for instruction: %40 = call @llvm.experimental.vp.splat.nxv16i1(i1 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %41 = call @llvm.experimental.vp.splat.nxv2i8(i8 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %42 = call @llvm.experimental.vp.splat.nxv4i8(i8 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %43 = call @llvm.experimental.vp.splat.nxv8i8(i8 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %44 = call @llvm.experimental.vp.splat.nxv16i8(i8 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %45 = call @llvm.experimental.vp.splat.nxv2i16(i16 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %46 = call @llvm.experimental.vp.splat.nxv4i16(i16 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %47 = call @llvm.experimental.vp.splat.nxv8i16(i16 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %48 = call @llvm.experimental.vp.splat.nxv16i16(i16 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %49 = call @llvm.experimental.vp.splat.nxv2i32(i32 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %50 = call @llvm.experimental.vp.splat.nxv4i32(i32 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %51 = call @llvm.experimental.vp.splat.nxv8i32(i32 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %52 = call @llvm.experimental.vp.splat.nxv16i32(i32 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %53 = call @llvm.experimental.vp.splat.nxv2i64(i64 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %54 = call @llvm.experimental.vp.splat.nxv4i64(i64 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %55 = call @llvm.experimental.vp.splat.nxv8i64(i64 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %56 = call @llvm.experimental.vp.splat.nxv16i64(i64 undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %57 = call @llvm.experimental.vp.splat.nxv2bf16(bfloat undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %58 = call @llvm.experimental.vp.splat.nxv4bf16(bfloat undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %59 = call @llvm.experimental.vp.splat.nxv8bf16(bfloat undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %60 = call @llvm.experimental.vp.splat.nxv16bf16(bfloat undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %61 = call @llvm.experimental.vp.splat.nxv2f16(half undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %62 = call @llvm.experimental.vp.splat.nxv4f16(half undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %63 = call @llvm.experimental.vp.splat.nxv8f16(half undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %64 = call @llvm.experimental.vp.splat.nxv16f16(half undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %65 = call @llvm.experimental.vp.splat.nxv2f32(float undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %66 = call @llvm.experimental.vp.splat.nxv4f32(float undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %67 = call @llvm.experimental.vp.splat.nxv8f32(float undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %68 = call @llvm.experimental.vp.splat.nxv16f32(float undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %69 = call @llvm.experimental.vp.splat.nxv2f64(double undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %70 = call @llvm.experimental.vp.splat.nxv4f64(double undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %71 = call @llvm.experimental.vp.splat.nxv8f64(double undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %72 = call @llvm.experimental.vp.splat.nxv16f64(double undef, undef, i32 undef) +; TYPEBASED-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void +; + call <2 x i1> @llvm.experimental.vp.splat.v2i1(i1 undef, <2 x i1> undef, i32 undef) + call <4 x i1> @llvm.experimental.vp.splat.v4i1(i1 undef, <4 x i1> undef, i32 undef) + call <8 x i1> @llvm.experimental.vp.splat.v8i1(i1 undef, <8 x i1> undef, i32 undef) + call <16 x i1> @llvm.experimental.vp.splat.v16i1(i1 undef, <16 x i1> undef, i32 undef) + call <2 x i8> @llvm.experimental.vp.splat.v2i8(i8 undef, <2 x i1> undef, i32 undef) + call <4 x i8> @llvm.experimental.vp.splat.v4i8(i8 undef, <4 x i1> undef, i32 undef) + call <8 x i8> @llvm.experimental.vp.splat.v8i8(i8 undef, <8 x i1> undef, i32 undef) + call <16 x i8> @llvm.experimental.vp.splat.v16i8(i8 undef, <16 x i1> undef, i32 undef) + call <2 x i16> @llvm.experimental.vp.splat.v2i16(i16 undef, <2 x i1> undef, i32 undef) + call <4 x i16> @llvm.experimental.vp.splat.v4i16(i16 undef, <4 x i1> undef, i32 undef) + call <8 x i16> @llvm.experimental.vp.splat.v8i16(i16 undef, <8 x i1> undef, i32 undef) + call <16 x i16> @llvm.experimental.vp.splat.v16i16(i16 undef, <16 x i1> undef, i32 undef) + call <2 x i32> @llvm.experimental.vp.splat.v2i32(i32 undef, <2 x i1> undef, i32 undef) + call <4 x i32> @llvm.experimental.vp.splat.v4i32(i32 undef, <4 x i1> undef, i32 undef) + call <8 x i32> @llvm.experimental.vp.splat.v8i32(i32 undef, <8 x i1> undef, i32 undef) + call <16 x i32> @llvm.experimental.vp.splat.v16i32(i32 undef, <16 x i1> undef, i32 undef) + call <2 x i64> @llvm.experimental.vp.splat.v2i64(i64 undef, <2 x i1> undef, i32 undef) + call <4 x i64> @llvm.experimental.vp.splat.v4i64(i64 undef, <4 x i1> undef, i32 undef) + call <8 x i64> @llvm.experimental.vp.splat.v8i64(i64 undef, <8 x i1> undef, i32 undef) + call <16 x i64> @llvm.experimental.vp.splat.v16i64(i64 undef, <16 x i1> undef, i32 undef) + call <2 x bfloat> @llvm.experimental.vp.splat.v2bf16(bfloat undef, <2 x i1> undef, i32 undef) + call <4 x bfloat> @llvm.experimental.vp.splat.v4bf16(bfloat undef, <4 x i1> undef, i32 undef) + call <8 x bfloat> @llvm.experimental.vp.splat.v8bf16(bfloat undef, <8 x i1> undef, i32 undef) + call <16 x bfloat> @llvm.experimental.vp.splat.v16bf16(bfloat undef, <16 x i1> undef, i32 undef) + call <2 x half> @llvm.experimental.vp.splat.v2f16(half undef, <2 x i1> undef, i32 undef) + call <4 x half> @llvm.experimental.vp.splat.v4f16(half undef, <4 x i1> undef, i32 undef) + call <8 x half> @llvm.experimental.vp.splat.v8f16(half undef, <8 x i1> undef, i32 undef) + call <16 x half> @llvm.experimental.vp.splat.v16f16(half undef, <16 x i1> undef, i32 undef) + call <2 x float> @llvm.experimental.vp.splat.v2f32(float undef, <2 x i1> undef, i32 undef) + call <4 x float> @llvm.experimental.vp.splat.v4f32(float undef, <4 x i1> undef, i32 undef) + call <8 x float> @llvm.experimental.vp.splat.v8f32(float undef, <8 x i1> undef, i32 undef) + call <16 x float> @llvm.experimental.vp.splat.v16f32(float undef, <16 x i1> undef, i32 undef) + call <2 x double> @llvm.experimental.vp.splat.v2f64(double undef, <2 x i1> undef, i32 undef) + call <4 x double> @llvm.experimental.vp.splat.v4f64(double undef, <4 x i1> undef, i32 undef) + call <8 x double> @llvm.experimental.vp.splat.v8f64(double undef, <8 x i1> undef, i32 undef) + call <16 x double> @llvm.experimental.vp.splat.v16f64(double undef, <16 x i1> undef, i32 undef) + call @llvm.experimental.vp.splat.nxv2i1(i1 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv4i1(i1 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv8i1(i1 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv16i1(i1 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv2i8(i8 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv4i8(i8 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv8i8(i8 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv16i8(i8 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv2i16(i16 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv4i16(i16 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv8i16(i16 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv16i16(i16 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv2i32(i32 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv4i32(i32 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv8i32(i32 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv16i32(i32 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv2i64(i64 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv4i64(i64 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv8i64(i64 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv16i64(i64 undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv2bf16(bfloat undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv4bf16(bfloat undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv8bf16(bfloat undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv16bf16(bfloat undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv2f16(half undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv4f16(half undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv8f16(half undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv16f16(half undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv2f32(float undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv4f32(float undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv8f32(float undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv16f32(float undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv2f64(double undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv4f64(double undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv8f64(double undef, undef, i32 undef) + call @llvm.experimental.vp.splat.nxv16f64(double undef, undef, i32 undef) + ret void +} + declare <2 x i8> @llvm.vp.add.v2i8(<2 x i8>, <2 x i8>, <2 x i1>, i32) declare <4 x i8> @llvm.vp.add.v4i8(<4 x i8>, <4 x i8>, <4 x i1>, i32) declare <8 x i8> @llvm.vp.add.v8i8(<8 x i8>, <8 x i8>, <8 x i1>, i32) diff --git a/llvm/test/Analysis/CostModel/X86/fptoi_sat.ll b/llvm/test/Analysis/CostModel/X86/fptoi_sat.ll index 55b80350f595e..41bf88b1ec316 100644 --- a/llvm/test/Analysis/CostModel/X86/fptoi_sat.ll +++ b/llvm/test/Analysis/CostModel/X86/fptoi_sat.ll @@ -1016,45 +1016,45 @@ define void @fp16() { ; AVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %f16u32 = call i32 @llvm.fptoui.sat.i32.f16(half undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %f16s64 = call i64 @llvm.fptosi.sat.i64.f16(half undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %f16u64 = call i64 @llvm.fptoui.sat.i64.f16(half undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %v2f16s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f16(<2 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %v2f16s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f16(<2 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v2f16u1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f16(<2 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %v2f16s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f16(<2 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %v2f16s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f16(<2 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %v2f16u8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f16(<2 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v2f16s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f16(<2 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %v2f16s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f16(<2 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %v2f16u16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f16(<2 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %v2f16s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f16(<2 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %v2f16s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f16(<2 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %v2f16u32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f16(<2 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %v2f16s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f16(<2 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %v2f16s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f16(<2 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v2f16u64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f16(<2 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 42 for instruction: %v4f16s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f16(<4 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 36 for instruction: %v4f16s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f16(<4 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %v4f16u1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f16(<4 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 37 for instruction: %v4f16s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f16(<4 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %v4f16s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f16(<4 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %v4f16u8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f16(<4 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 36 for instruction: %v4f16s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f16(<4 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 30 for instruction: %v4f16s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f16(<4 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %v4f16u16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f16(<4 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %v4f16s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f16(<4 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %v4f16s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f16(<4 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %v4f16u32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f16(<4 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %v4f16s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f16(<4 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 42 for instruction: %v4f16s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f16(<4 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %v4f16u64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f16(<4 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 90 for instruction: %v8f16s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f16(<8 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 76 for instruction: %v8f16s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f16(<8 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %v8f16u1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f16(<8 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 102 for instruction: %v8f16s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f16(<8 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 88 for instruction: %v8f16s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f16(<8 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 86 for instruction: %v8f16u8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f16(<8 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 102 for instruction: %v8f16s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f16(<8 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 88 for instruction: %v8f16s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f16(<8 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 86 for instruction: %v8f16u16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f16(<8 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 100 for instruction: %v8f16s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f16(<8 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 86 for instruction: %v8f16s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f16(<8 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 84 for instruction: %v8f16u32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f16(<8 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 104 for instruction: %v8f16s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f16(<8 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 90 for instruction: %v8f16s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f16(<8 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 88 for instruction: %v8f16u64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f16(<8 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 186 for instruction: %v16f16s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f16(<16 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 156 for instruction: %v16f16s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f16(<16 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 123 for instruction: %v16f16u1 = call <16 x i1> @llvm.fptoui.sat.v16i1.v16f16(<16 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 210 for instruction: %v16f16s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f16(<16 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 180 for instruction: %v16f16s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f16(<16 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 178 for instruction: %v16f16u8 = call <16 x i8> @llvm.fptoui.sat.v16i8.v16f16(<16 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 210 for instruction: %v16f16s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f16(<16 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 180 for instruction: %v16f16s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f16(<16 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 178 for instruction: %v16f16u16 = call <16 x i16> @llvm.fptoui.sat.v16i16.v16f16(<16 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 208 for instruction: %v16f16s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f16(<16 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 178 for instruction: %v16f16s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f16(<16 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 176 for instruction: %v16f16u32 = call <16 x i32> @llvm.fptoui.sat.v16i32.v16f16(<16 x half> undef) -; AVX512F-NEXT: Cost Model: Found an estimated cost of 216 for instruction: %v16f16s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f16(<16 x half> undef) +; AVX512F-NEXT: Cost Model: Found an estimated cost of 186 for instruction: %v16f16s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f16(<16 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 183 for instruction: %v16f16u64 = call <16 x i64> @llvm.fptoui.sat.v16i64.v16f16(<16 x half> undef) ; AVX512F-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; @@ -1069,45 +1069,45 @@ define void @fp16() { ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %f16u32 = call i32 @llvm.fptoui.sat.i32.f16(half undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %f16s64 = call i64 @llvm.fptosi.sat.i64.f16(half undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %f16u64 = call i64 @llvm.fptoui.sat.i64.f16(half undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 23 for instruction: %v2f16s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f16(<2 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %v2f16s1 = call <2 x i1> @llvm.fptosi.sat.v2i1.v2f16(<2 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v2f16u1 = call <2 x i1> @llvm.fptoui.sat.v2i1.v2f16(<2 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %v2f16s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f16(<2 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %v2f16s8 = call <2 x i8> @llvm.fptosi.sat.v2i8.v2f16(<2 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %v2f16u8 = call <2 x i8> @llvm.fptoui.sat.v2i8.v2f16(<2 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %v2f16s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f16(<2 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 14 for instruction: %v2f16s16 = call <2 x i16> @llvm.fptosi.sat.v2i16.v2f16(<2 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %v2f16u16 = call <2 x i16> @llvm.fptoui.sat.v2i16.v2f16(<2 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %v2f16s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f16(<2 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %v2f16s32 = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f16(<2 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %v2f16u32 = call <2 x i32> @llvm.fptoui.sat.v2i32.v2f16(<2 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %v2f16s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f16(<2 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %v2f16s64 = call <2 x i64> @llvm.fptosi.sat.v2i64.v2f16(<2 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %v2f16u64 = call <2 x i64> @llvm.fptoui.sat.v2i64.v2f16(<2 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 42 for instruction: %v4f16s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f16(<4 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 36 for instruction: %v4f16s1 = call <4 x i1> @llvm.fptosi.sat.v4i1.v4f16(<4 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %v4f16u1 = call <4 x i1> @llvm.fptoui.sat.v4i1.v4f16(<4 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 37 for instruction: %v4f16s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f16(<4 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 31 for instruction: %v4f16s8 = call <4 x i8> @llvm.fptosi.sat.v4i8.v4f16(<4 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %v4f16u8 = call <4 x i8> @llvm.fptoui.sat.v4i8.v4f16(<4 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 36 for instruction: %v4f16s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f16(<4 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 30 for instruction: %v4f16s16 = call <4 x i16> @llvm.fptosi.sat.v4i16.v4f16(<4 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 28 for instruction: %v4f16u16 = call <4 x i16> @llvm.fptoui.sat.v4i16.v4f16(<4 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 35 for instruction: %v4f16s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f16(<4 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 29 for instruction: %v4f16s32 = call <4 x i32> @llvm.fptosi.sat.v4i32.v4f16(<4 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 27 for instruction: %v4f16u32 = call <4 x i32> @llvm.fptoui.sat.v4i32.v4f16(<4 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %v4f16s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f16(<4 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 42 for instruction: %v4f16s64 = call <4 x i64> @llvm.fptosi.sat.v4i64.v4f16(<4 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %v4f16u64 = call <4 x i64> @llvm.fptoui.sat.v4i64.v4f16(<4 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 90 for instruction: %v8f16s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f16(<8 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 76 for instruction: %v8f16s1 = call <8 x i1> @llvm.fptosi.sat.v8i1.v8f16(<8 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 59 for instruction: %v8f16u1 = call <8 x i1> @llvm.fptoui.sat.v8i1.v8f16(<8 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 102 for instruction: %v8f16s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f16(<8 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 88 for instruction: %v8f16s8 = call <8 x i8> @llvm.fptosi.sat.v8i8.v8f16(<8 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 86 for instruction: %v8f16u8 = call <8 x i8> @llvm.fptoui.sat.v8i8.v8f16(<8 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 102 for instruction: %v8f16s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f16(<8 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 88 for instruction: %v8f16s16 = call <8 x i16> @llvm.fptosi.sat.v8i16.v8f16(<8 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 86 for instruction: %v8f16u16 = call <8 x i16> @llvm.fptoui.sat.v8i16.v8f16(<8 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 100 for instruction: %v8f16s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f16(<8 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 86 for instruction: %v8f16s32 = call <8 x i32> @llvm.fptosi.sat.v8i32.v8f16(<8 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 84 for instruction: %v8f16u32 = call <8 x i32> @llvm.fptoui.sat.v8i32.v8f16(<8 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 104 for instruction: %v8f16s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f16(<8 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 90 for instruction: %v8f16s64 = call <8 x i64> @llvm.fptosi.sat.v8i64.v8f16(<8 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 88 for instruction: %v8f16u64 = call <8 x i64> @llvm.fptoui.sat.v8i64.v8f16(<8 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 186 for instruction: %v16f16s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f16(<16 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 156 for instruction: %v16f16s1 = call <16 x i1> @llvm.fptosi.sat.v16i1.v16f16(<16 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 123 for instruction: %v16f16u1 = call <16 x i1> @llvm.fptoui.sat.v16i1.v16f16(<16 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 210 for instruction: %v16f16s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f16(<16 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 180 for instruction: %v16f16s8 = call <16 x i8> @llvm.fptosi.sat.v16i8.v16f16(<16 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 178 for instruction: %v16f16u8 = call <16 x i8> @llvm.fptoui.sat.v16i8.v16f16(<16 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 210 for instruction: %v16f16s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f16(<16 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 180 for instruction: %v16f16s16 = call <16 x i16> @llvm.fptosi.sat.v16i16.v16f16(<16 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 178 for instruction: %v16f16u16 = call <16 x i16> @llvm.fptoui.sat.v16i16.v16f16(<16 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 208 for instruction: %v16f16s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f16(<16 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 178 for instruction: %v16f16s32 = call <16 x i32> @llvm.fptosi.sat.v16i32.v16f16(<16 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 176 for instruction: %v16f16u32 = call <16 x i32> @llvm.fptoui.sat.v16i32.v16f16(<16 x half> undef) -; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 216 for instruction: %v16f16s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f16(<16 x half> undef) +; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 186 for instruction: %v16f16s64 = call <16 x i64> @llvm.fptosi.sat.v16i64.v16f16(<16 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 183 for instruction: %v16f16u64 = call <16 x i64> @llvm.fptoui.sat.v16i64.v16f16(<16 x half> undef) ; AVX512DQ-NEXT: Cost Model: Found an estimated cost of 0 for instruction: ret void ; diff --git a/llvm/test/Analysis/MemoryDependenceAnalysis/load-size-cache.ll b/llvm/test/Analysis/MemoryDependenceAnalysis/load-size-cache.ll index 388f0217d200d..6f50f2c0a7186 100644 --- a/llvm/test/Analysis/MemoryDependenceAnalysis/load-size-cache.ll +++ b/llvm/test/Analysis/MemoryDependenceAnalysis/load-size-cache.ll @@ -22,9 +22,11 @@ define i8 @f(i1 %arg0, i1 %arg1, i1 %arg2) { ; CHECK-NEXT: call void @use(i64 undef) ; CHECK-NEXT: br label %[[BB9:.*]] ; CHECK: [[BB7]]: +; CHECK-NEXT: [[LOAD8:%.*]] = load i8, ptr [[CALL]], align 4 ; CHECK-NEXT: br label %[[BB9]] ; CHECK: [[BB9]]: -; CHECK-NEXT: ret i8 4 +; CHECK-NEXT: [[PHI10:%.*]] = phi i8 [ [[LOAD8]], %[[BB7]] ], [ 4, %[[BB6]] ] +; CHECK-NEXT: ret i8 [[PHI10]] ; bb: br i1 %arg2, label %bb2, label %bb11 diff --git a/llvm/test/Analysis/ScalarEvolution/pr116483.ll b/llvm/test/Analysis/ScalarEvolution/pr116483.ll new file mode 100644 index 0000000000000..cc2334e9c64f9 --- /dev/null +++ b/llvm/test/Analysis/ScalarEvolution/pr116483.ll @@ -0,0 +1,26 @@ +; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py UTC_ARGS: --version 5 +; RUN: opt -S -disable-output "-passes=print" < %s 2>&1 | FileCheck %s + +define i16 @test() { +; CHECK-LABEL: 'test' +; CHECK-NEXT: Classifying expressions for: @test +; CHECK-NEXT: %xor = xor i32 0, 3 +; CHECK-NEXT: --> %xor U: [3,4) S: [3,4) +; CHECK-NEXT: %mul = mul i32 %xor, 329 +; CHECK-NEXT: --> (329 * %xor) U: [987,988) S: [987,988) +; CHECK-NEXT: %conv = trunc i32 %mul to i16 +; CHECK-NEXT: --> (329 * (trunc i32 %xor to i16)) U: [987,988) S: [987,988) +; CHECK-NEXT: %sext = shl i16 %conv, 8 +; CHECK-NEXT: --> (18688 * (trunc i32 %xor to i16)) U: [-9472,-9471) S: [-9472,-9471) +; CHECK-NEXT: %conv1 = ashr i16 %sext, 8 +; CHECK-NEXT: --> (sext i8 (73 * (trunc i32 %xor to i8)) to i16) U: [-37,-36) S: [-37,-36) +; CHECK-NEXT: Determining loop execution counts for: @test +; +entry: + %xor = xor i32 0, 3 + %mul = mul i32 %xor, 329 + %conv = trunc i32 %mul to i16 + %sext = shl i16 %conv, 8 + %conv1 = ashr i16 %sext, 8 + ret i16 %conv1 +} diff --git a/llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll b/llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll index bea56a72bdeae..8615363a985d1 100644 --- a/llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll +++ b/llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll @@ -15,7 +15,7 @@ define void @test0_yes(ptr %p) nounwind { ret void } -; CHECK: define void @test0_no(ptr nocapture writeonly %p) #1 { +; CHECK: define void @test0_no(ptr nocapture writeonly initializes((0, 4)) %p) #1 { define void @test0_no(ptr %p) nounwind { store i32 0, ptr %p, !tbaa !2 ret void diff --git a/llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll b/llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll index 00a3aaf77f900..fb1420ee34004 100644 --- a/llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll +++ b/llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll @@ -261,6 +261,50 @@ bb: ret void } +declare <2 x i32> @llvm.amdgcn.ds.read.tr4.b64.v2i32(ptr addrspace(3)) + +; CHECK: DIVERGENT: %tmp0 = call <2 x i32> @llvm.amdgcn.ds.read.tr4.b64.v2i32(ptr addrspace(3) %gep) +define amdgpu_kernel void @ds_read_b64_tr4_v2i32(ptr addrspace(3) %addr, ptr addrspace(1) %out) { +bb: + %gep = getelementptr i64, ptr addrspace(3) %addr, i32 4 + %tmp0 = call <2 x i32> @llvm.amdgcn.ds.read.tr4.b64.v2i32(ptr addrspace(3) %gep) + store <2 x i32> %tmp0, ptr addrspace(1) %out, align 8 + ret void +} + +declare <3 x i32> @llvm.amdgcn.ds.read.tr6.b96.v3i32(ptr addrspace(3)) + +; CHECK: DIVERGENT: %tmp0 = call <3 x i32> @llvm.amdgcn.ds.read.tr6.b96.v3i32(ptr addrspace(3) %gep) +define amdgpu_kernel void @ds_read_b96_tr6_v3i32(ptr addrspace(3) %addr, ptr addrspace(1) %out) { +bb: + %gep = getelementptr i64, ptr addrspace(3) %addr, i32 4 + %tmp0 = call <3 x i32> @llvm.amdgcn.ds.read.tr6.b96.v3i32(ptr addrspace(3) %gep) + store <3 x i32> %tmp0, ptr addrspace(1) %out, align 16 + ret void +} + +declare <2 x i32> @llvm.amdgcn.ds.read.tr8.b64.v2i32(ptr addrspace(3)) + +; CHECK: DIVERGENT: %tmp0 = call <2 x i32> @llvm.amdgcn.ds.read.tr8.b64.v2i32(ptr addrspace(3) %gep) +define amdgpu_kernel void @ds_read_b64_tr8_v2i32(ptr addrspace(3) %addr, ptr addrspace(1) %out) { +bb: + %gep = getelementptr i64, ptr addrspace(3) %addr, i32 4 + %tmp0 = call <2 x i32> @llvm.amdgcn.ds.read.tr8.b64.v2i32(ptr addrspace(3) %gep) + store <2 x i32> %tmp0, ptr addrspace(1) %out, align 8 + ret void +} + +declare <4 x i16> @llvm.amdgcn.ds.read.tr16.b64.v4i16(ptr addrspace(3)) + +; CHECK: DIVERGENT: %tmp0 = call <4 x i16> @llvm.amdgcn.ds.read.tr16.b64.v4i16(ptr addrspace(3) %gep) +define amdgpu_kernel void @ds_read_b64_tr_b16_v4i16(ptr addrspace(3) %addr, ptr addrspace(1) %out) { +bb: + %gep = getelementptr i64, ptr addrspace(3) %addr, i16 4 + %tmp0 = call <4 x i16> @llvm.amdgcn.ds.read.tr16.b64.v4i16(ptr addrspace(3) %gep) + store <4 x i16> %tmp0, ptr addrspace(1) %out, align 16 + ret void +} + declare <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.f16(<8 x half>, <8 x half>, <4 x float>, i32 immarg, i32 immarg, i32 immarg) declare <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half>, <8 x half>, <16 x float>, i32 immarg, i32 immarg, i32 immarg) @@ -285,6 +329,176 @@ define amdgpu_kernel void @mfma_f32_32x32x16_bf16(<8 x bfloat> %arg0, <8 x bfloa ret void } +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32>, <8 x i32>, <4 x float>, i32 immarg, i32 immarg, + i32 immarg, i32, i32 immarg, i32) + +; CHECK: DIVERGENT: %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0, i32 %arg3, i32 immarg 0, i32 %arg4) +define amdgpu_kernel void @mfma_scale_f32_16x16x128_f8f6f4(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 %arg4, ptr addrspace(1) %out) { + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0, i32 %arg3, i32 immarg 0, i32 %arg4) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4(<8 x i32>, <8 x i32>, <16 x float>, i32 immarg, i32 immarg, + i32 immarg, i32, i32 immarg, i32) + +; CHECK: DIVERGENT: %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0, i32 %arg3, i32 immarg 0, i32 %arg4) +define amdgpu_kernel void @mfma_f32_scale_32x32x64_f8f6f4(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 %arg4, ptr addrspace(1) %out) { + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0, i32 %arg3, i32 immarg 0, i32 %arg4) + store <16 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <4 x i32> @llvm.amdgcn.mfma.i32.16x16x64.i8(<4 x i32>, <4 x i32>, <4 x i32>, i32 immarg, i32 immarg, i32 immarg) + +; CHECK: DIVERGENT: %result = call <4 x i32> @llvm.amdgcn.mfma.i32.16x16x64.i8(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0) +define amdgpu_kernel void @mfma_i32_16x16x64_i8(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, ptr addrspace(1) %out) { + %result = call <4 x i32> @llvm.amdgcn.mfma.i32.16x16x64.i8(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0) + store <4 x i32> %result, ptr addrspace(1) %out + ret void +} + +declare <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32>, <4 x i32>, <16 x i32>, i32 immarg, i32 immarg, i32 immarg) + +; CHECK: DIVERGENT: %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0) +define amdgpu_kernel void @mfma_i32_32x32x32_i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, ptr addrspace(1) %out) { + %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0) + store <16 x i32> %result, ptr addrspace(1) %out + ret void +} + +declare <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.bf16(<8 x bfloat>, <8 x bfloat>, <4 x float>, i32 immarg, i32 immarg, i32 immarg) + +; CHECK: DIVERGENT: %result = call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.bf16(<8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0) +define amdgpu_kernel void @mfma_f32_16x16x32_bf16(<8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2, ptr addrspace(1) %out) { + %result = call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.bf16(<8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2, i32 immarg 0, i32 immarg 0, i32 immarg 0) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <4 x float> @llvm.amdgcn.smmfmac.f32.16x16x64.f16(<8 x half>, <16 x half>, <4 x float>, i32, i32 immarg, i32 immarg) + +; CHECK: DIVERGENT: %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.f16(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) +define amdgpu_kernel void @smfmac_f32_16x16x64_f16(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.f16(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half>, <16 x half>, <16 x float>, i32, i32 immarg, i32 immarg) + +; CHECK: DIVERGENT: %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) +define amdgpu_kernel void @smfmac_f32_32x32x32_f16(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + store <16 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <4 x float> @llvm.amdgcn.smmfmac.f32.16x16x64.bf16(<8 x bfloat>, <16 x bfloat>, <4 x float>, i32, i32 immarg, i32 immarg) + +; CHECK: DIVERGENT: %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) +define amdgpu_kernel void @smfmac_f32_16x16x64_bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32) + +; CHECK: DIVERGENT: %result = call <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3, i32 1, i32 2) +define amdgpu_kernel void @smfmac_i32_16x16x128_i8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3, i32 1, i32 2) + store <4 x i32> %result, ptr addrspace(1) %out + ret void +} + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32>, <8 x i32>, <4 x float>, i32, i32, i32) + +; CHECK: DIVERGENT: %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 1, i32 2) +define amdgpu_kernel void @smfmac_f32_16x16x128_bf8_bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 1, i32 2) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32>, <8 x i32>, <4 x float>, i32, i32, i32) + +; CHECK: DIVERGENT: %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 1, i32 2) +define amdgpu_kernel void @smfmac_f32_16x16x128_bf8_fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 1, i32 2) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32>, <8 x i32>, <4 x float>, i32, i32, i32) + +; CHECK: DIVERGENT: %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 1, i32 2) +define amdgpu_kernel void @smfmac_f32_16x16x128_fp8_bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 1, i32 2) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32>, <8 x i32>, <4 x float>, i32, i32, i32) + +; CHECK: DIVERGENT: %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 1, i32 2) +define amdgpu_kernel void @smfmac_f32_16x16x128_fp8_fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 1, i32 2) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32>, <8 x i32>, <16 x float>, i32, i32, i32) + +; CHECK: DIVERGENT: %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 1, i32 2) +define amdgpu_kernel void @smfmac_f32_32x32x64_bf8_bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 1, i32 2) + store <16 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32>, <8 x i32>, <16 x float>, i32, i32, i32) + +; CHECK: DIVERGENT: %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 1, i32 2) +define amdgpu_kernel void @smfmac_f32_32x32x64_bf8_fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 1, i32 2) + store <16 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32>, <8 x i32>, <16 x float>, i32, i32, i32) + +; CHECK: DIVERGENT: %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 1, i32 2) +define amdgpu_kernel void @smfmac_f32_32x32x64_fp8_bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 1, i32 2) + store <16 x float> %result, ptr addrspace(1) %out + ret void +} + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32>, <8 x i32>, <16 x float>, i32, i32, i32) + +; CHECK: DIVERGENT: %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 1, i32 2) +define amdgpu_kernel void @smfmac_f32_32x32x64_fp8_fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, ptr addrspace(1) %out) { + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 1, i32 2) + store <16 x float> %result, ptr addrspace(1) %out + ret void +} + +; CHECK: DIVERGENT: %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %src0, i32 %src1, i1 false, i1 false) +define amdgpu_kernel void @v_permlane16_swap(ptr addrspace(1) %out, i32 %src0, i32 %src1) #0 { + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %src0, i32 %src1, i1 false, i1 false) + store { i32, i32 } %v, ptr addrspace(1) %out + ret void +} + +; CHECK: DIVERGENT: %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %src0, i32 %src1, i1 false, i1 false) +define amdgpu_kernel void @v_permlane32_swap(ptr addrspace(1) %out, i32 %src0, i32 %src1) #0 { + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %src0, i32 %src1, i1 false, i1 false) + store { i32, i32 } %v, ptr addrspace(1) %out + ret void +} + + declare i32 @llvm.amdgcn.ds.swizzle(i32, i32) #1 declare i32 @llvm.amdgcn.permlane16.i32(i32, i32, i32, i32, i1, i1) #1 diff --git a/llvm/test/Assembler/constant-splat.ll b/llvm/test/Assembler/constant-splat.ll index 1c2831058b887..82e25adda0e10 100644 --- a/llvm/test/Assembler/constant-splat.ll +++ b/llvm/test/Assembler/constant-splat.ll @@ -51,13 +51,13 @@ define <4 x i32> @ret_fixed_lenth_vector_splat_i32() { } define void @add_fixed_lenth_vector_splat_double( %a) { -; CHECK: %add = fadd %a, shufflevector ( insertelement ( poison, double 5.700000e+00, i64 0), poison, zeroinitializer) +; CHECK: %add = fadd %a, splat (double 5.700000e+00) %add = fadd %a, splat (double 5.700000e+00) ret void } define @ret_scalable_vector_splat_i32() { -; CHECK: ret shufflevector ( insertelement ( poison, i32 78, i64 0), poison, zeroinitializer) +; CHECK: ret splat (i32 78) ret splat (i32 78) } diff --git a/llvm/test/Assembler/target-type-properties.ll b/llvm/test/Assembler/target-type-properties.ll index 60790dbc5c17b..8d58b09d3b170 100644 --- a/llvm/test/Assembler/target-type-properties.ll +++ b/llvm/test/Assembler/target-type-properties.ll @@ -3,6 +3,10 @@ ; RUN: not llvm-as < %t/global-var.ll -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-GLOBAL-VAR %s ; RUN: not llvm-as < %t/global-array.ll -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-GLOBAL-ARRAY %s ; RUN: not llvm-as < %t/global-struct.ll -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-GLOBAL-STRUCT %s +; RUN: not llvm-as < %t/alloca.ll -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-ALLOCA %s +; RUN: not llvm-as < %t/alloca-struct.ll -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-ALLOCA-STRUCT %s +; RUN: not llvm-as < %t/byval.ll -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BYVAL %s +; RUN: not llvm-as < %t/byval-array.ll -o /dev/null 2>&1 | FileCheck --check-prefix=CHECK-BYVAL-ARRAY %s ; Check target extension type properties are verified in the assembler. ;--- zeroinit-error.ll @@ -24,3 +28,25 @@ define void @foo() { ;--- global-struct.ll @global_struct = external global {target("unknown_target_type")} ; CHECK-GLOBAL-STRUCT: Global @global_struct has illegal target extension type + +;--- alloca.ll +define void @foo() { + %val = alloca target("amdgcn.named.barrier", 0) +; CHECK-ALLOCA: Alloca has illegal target extension type + ret void +} + +;--- alloca-struct.ll +define void @foo() { + %val = alloca {target("amdgcn.named.barrier", 0), target("amdgcn.named.barrier", 0)} +; CHECK-ALLOCA-STRUCT: Alloca has illegal target extension type + ret void +} + +;--- byval.ll +declare void @foo(ptr byval(target("amdgcn.named.barrier", 0))) +; CHECK-BYVAL: 'byval' argument has illegal target extension type + +;--- byval-array.ll +declare void @foo(ptr byval([4 x target("amdgcn.named.barrier", 0)])) +; CHECK-BYVAL-ARRAY: 'byval' argument has illegal target extension type diff --git a/llvm/test/Bitcode/vscale-shuffle.ll b/llvm/test/Bitcode/vscale-shuffle.ll index 3f36209c7aaf5..f92794961b61e 100644 --- a/llvm/test/Bitcode/vscale-shuffle.ll +++ b/llvm/test/Bitcode/vscale-shuffle.ll @@ -2,8 +2,8 @@ ; RUN: verify-uselistorder < %s define void @f() { - %l = call @l( shufflevector ( insertelement ( undef, i1 true, i32 0), undef, zeroinitializer)) - %i = add undef, shufflevector ( insertelement ( undef, i64 1, i32 0), undef, zeroinitializer) + %l = call @l( splat (i1 true)) + %i = add undef, splat (i64 1) unreachable } diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-shuffle-vector.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-shuffle-vector.mir index c92718f9e9b3c..2464026aa125b 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-shuffle-vector.mir +++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-shuffle-vector.mir @@ -59,8 +59,11 @@ body: | ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x p0>) = COPY $q0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x p0>) = COPY $q1 - ; CHECK-NEXT: [[SHUF:%[0-9]+]]:_(<2 x p0>) = G_SHUFFLE_VECTOR [[COPY]](<2 x p0>), [[COPY1]], shufflemask(0, 0) - ; CHECK-NEXT: $q0 = COPY [[SHUF]](<2 x p0>) + ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:_(<2 x s64>) = G_PTRTOINT [[COPY]](<2 x p0>) + ; CHECK-NEXT: [[PTRTOINT1:%[0-9]+]]:_(<2 x s64>) = G_PTRTOINT [[COPY1]](<2 x p0>) + ; CHECK-NEXT: [[SHUF:%[0-9]+]]:_(<2 x s64>) = G_SHUFFLE_VECTOR [[PTRTOINT]](<2 x s64>), [[PTRTOINT1]], shufflemask(0, 0) + ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:_(<2 x p0>) = G_INTTOPTR [[SHUF]](<2 x s64>) + ; CHECK-NEXT: $q0 = COPY [[INTTOPTR]](<2 x p0>) ; CHECK-NEXT: RET_ReallyLR implicit $q0 %0:_(<2 x p0>) = COPY $q0 %1:_(<2 x p0>) = COPY $q1 diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir b/llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir index 216f94b2b51e3..f1d1b691fe1aa 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir +++ b/llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir @@ -57,11 +57,11 @@ tracksRegLiveness: true body: | bb.1: ; CHECK-LABEL: name: inlineasm_virt_reg_output - ; CHECK: INLINEASM &"mov ${0:w}, 7", 0 /* attdialect */, 2883594 /* regdef:GPR32common */, def %0 + ; CHECK: INLINEASM &"mov ${0:w}, 7", 0 /* attdialect */, 2490378 /* regdef:GPR32common */, def %0 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY %0 ; CHECK-NEXT: $w0 = COPY [[COPY]](s32) ; CHECK-NEXT: RET_ReallyLR implicit $w0 - INLINEASM &"mov ${0:w}, 7", 0 /* attdialect */, 2883594 /* regdef:GPR32common */, def %0:gpr32common + INLINEASM &"mov ${0:w}, 7", 0 /* attdialect */, 2490378 /* regdef:GPR32common */, def %0:gpr32common %1:_(s32) = COPY %0 $w0 = COPY %1(s32) RET_ReallyLR implicit $w0 @@ -75,12 +75,12 @@ tracksRegLiveness: true body: | bb.1: ; CHECK-LABEL: name: inlineasm_virt_mixed_types - ; CHECK: INLINEASM &"mov $0, #0; mov $1, #0", 0 /* attdialect */, 2883594 /* regdef:GPR32common */, def %0, 3735562 /* regdef:FPR64 */, def %1 + ; CHECK: INLINEASM &"mov $0, #0; mov $1, #0", 0 /* attdialect */, 2490378 /* regdef:GPR32common */, def %0, 3342346 /* regdef:FPR64 */, def %1 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY %0 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr(s64) = COPY %1 ; CHECK-NEXT: $d0 = COPY [[COPY1]](s64) ; CHECK-NEXT: RET_ReallyLR implicit $d0 - INLINEASM &"mov $0, #0; mov $1, #0", 0 /* attdialect */, 2883594 /* regdef:GPR32common */, def %0:gpr32common, 3735562 /* regdef:FPR64 */, def %1:fpr64 + INLINEASM &"mov $0, #0; mov $1, #0", 0 /* attdialect */, 2490378 /* regdef:GPR32common */, def %0:gpr32common, 3342346 /* regdef:FPR64 */, def %1:fpr64 %3:_(s32) = COPY %0 %4:_(s64) = COPY %1 $d0 = COPY %4(s64) diff --git a/llvm/test/CodeGen/AArch64/aarch64-sve-asm.ll b/llvm/test/CodeGen/AArch64/aarch64-sve-asm.ll index 0e8465e741993..ff66206228a4a 100644 --- a/llvm/test/CodeGen/AArch64/aarch64-sve-asm.ll +++ b/llvm/test/CodeGen/AArch64/aarch64-sve-asm.ll @@ -13,7 +13,7 @@ define @test_svadd_i8( %Zn, asm "add $0.b, $1.b, $2.b", "=w,w,y"( %Zn, %Zm) @@ -29,7 +29,7 @@ define @test_svsub_i64( %Zn, asm "sub $0.d, $1.d, $2.d", "=w,w,x"( %Zn, %Zm) @@ -45,7 +45,7 @@ define @test_svfmul_f16( %Zn, asm "fmul $0.h, $1.h, $2.h", "=w,w,y"( %Zn, %Zm) @@ -61,7 +61,7 @@ define @test_svfmul_f( %Zn, asm "fmul $0.s, $1.s, $2.s", "=w,w,x"( %Zn, %Zm) @@ -79,7 +79,7 @@ define @test_svfadd_f16( %Pg, asm "fadd $0.h, $1/m, $2.h, $3.h", "=w,@3Upl,w,w"( %Pg, %Zn, %Zm) @@ -95,7 +95,7 @@ define @test_incp( %Pg, ; CHECK-NEXT: [[COPY1:%[0-9]+]]:ppr = COPY $p0 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:ppr = COPY [[COPY1]] ; CHECK-NEXT: [[COPY3:%[0-9]+]]:zpr = COPY [[COPY]] - ; CHECK-NEXT: INLINEASM &"incp $0.s, $1", 0 /* attdialect */, {{[0-9]+}} /* regdef:ZPR */, def %2, {{[0-9]+}} /* reguse:PPR */, [[COPY2]], {{[0-9]+}} /* reguse tiedto:$0 */, [[COPY3]](tied-def 3) + ; CHECK-NEXT: INLINEASM &"incp $0.s, $1", 0 /* attdialect */, 5767178 /* regdef:ZPR */, def %2, 458761 /* reguse:PPR */, [[COPY2]], 2147483657 /* reguse tiedto:$0 */, [[COPY3]](tied-def 3) ; CHECK-NEXT: $z0 = COPY %2 ; CHECK-NEXT: RET_ReallyLR implicit $z0 %1 = tail call asm "incp $0.s, $1", "=w,@3Upa,0"( %Pg, %Zn) @@ -113,7 +113,7 @@ define @test_svfadd_f16_Uph_constraint( %P ; CHECK-NEXT: [[COPY3:%[0-9]+]]:ppr_p8to15 = COPY [[COPY2]] ; CHECK-NEXT: [[COPY4:%[0-9]+]]:zpr = COPY [[COPY1]] ; CHECK-NEXT: [[COPY5:%[0-9]+]]:zpr = COPY [[COPY]] - ; CHECK-NEXT: INLINEASM &"fadd $0.h, $1/m, $2.h, $3.h", 0 /* attdialect */, {{[0-9]+}} /* regdef:ZPR */, def %3, {{[0-9]+}} /* reguse:PPR_p8to15 */, [[COPY3]], {{[0-9]+}} /* reguse:ZPR */, [[COPY4]], {{[0-9]+}} /* reguse:ZPR */, [[COPY5]] + ; CHECK-NEXT: INLINEASM &"fadd $0.h, $1/m, $2.h, $3.h", 0 /* attdialect */, 5767178 /* regdef:ZPR */, def %3, 786441 /* reguse:PPR_p8to15 */, [[COPY3]], 5767177 /* reguse:ZPR */, [[COPY4]], 5767177 /* reguse:ZPR */, [[COPY5]] ; CHECK-NEXT: $z0 = COPY %3 ; CHECK-NEXT: RET_ReallyLR implicit $z0 %1 = tail call asm "fadd $0.h, $1/m, $2.h, $3.h", "=w,@3Uph,w,w"( %Pg, %Zn, %Zm) @@ -129,7 +129,7 @@ define void @explicit_p0(ptr %p) { ; CHECK-NEXT: [[PTRUE_B:%[0-9]+]]:ppr = PTRUE_B 31, implicit $vg ; CHECK-NEXT: $p0 = COPY [[PTRUE_B]] ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY [[COPY]] - ; CHECK-NEXT: INLINEASM &"ld4w { z0.s, z1.s, z2.s, z3.s }, $1/z, [$0]", 1 /* sideeffect attdialect */, {{[0-9]+}} /* regdef:GPR64common */, def %1, 9 /* reguse */, $p0, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3) + ; CHECK-NEXT: INLINEASM &"ld4w { z0.s, z1.s, z2.s, z3.s }, $1/z, [$0]", 1 /* sideeffect attdialect */, 3538954 /* regdef:GPR64common */, def %1, 9 /* reguse */, $p0, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3) ; CHECK-NEXT: RET_ReallyLR %1 = tail call @llvm.aarch64.sve.ptrue.b8(i32 31) %2 = tail call i64 asm sideeffect "ld4w { z0.s, z1.s, z2.s, z3.s }, $1/z, [$0]", "=r,{p0},0"( %1, ptr %p) @@ -145,7 +145,7 @@ define void @explicit_p8_invalid(ptr %p) { ; CHECK-NEXT: [[PTRUE_B:%[0-9]+]]:ppr = PTRUE_B 31, implicit $vg ; CHECK-NEXT: $p8 = COPY [[PTRUE_B]] ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY [[COPY]] - ; CHECK-NEXT: INLINEASM &"ld4w { z0.s, z1.s, z2.s, z3.s }, $1/z, [$0]", 1 /* sideeffect attdialect */, {{[0-9]+}} /* regdef:GPR64common */, def %1, 9 /* reguse */, $p8, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3) + ; CHECK-NEXT: INLINEASM &"ld4w { z0.s, z1.s, z2.s, z3.s }, $1/z, [$0]", 1 /* sideeffect attdialect */, 3538954 /* regdef:GPR64common */, def %1, 9 /* reguse */, $p8, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3) ; CHECK-NEXT: RET_ReallyLR %1 = tail call @llvm.aarch64.sve.ptrue.b8(i32 31) %2 = tail call i64 asm sideeffect "ld4w { z0.s, z1.s, z2.s, z3.s }, $1/z, [$0]", "=r,{p8},0"( %1, ptr %p) @@ -161,7 +161,7 @@ define void @explicit_pn8(ptr %p) { ; CHECK-NEXT: [[PTRUE_C_B:%[0-9]+]]:pnr_p8to15 = PTRUE_C_B implicit $vg ; CHECK-NEXT: $pn8 = COPY [[PTRUE_C_B]] ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY [[COPY]] - ; CHECK-NEXT: INLINEASM &"ld1w { z0.s, z4.s, z8.s, z12.s }, $1/z, [$0]", 1 /* sideeffect attdialect */, {{[0-9]+}} /* regdef:GPR64common */, def %1, 9 /* reguse */, $pn8, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3) + ; CHECK-NEXT: INLINEASM &"ld1w { z0.s, z4.s, z8.s, z12.s }, $1/z, [$0]", 1 /* sideeffect attdialect */, 3538954 /* regdef:GPR64common */, def %1, 9 /* reguse */, $pn8, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3) ; CHECK-NEXT: RET_ReallyLR %1 = tail call target("aarch64.svcount") @llvm.aarch64.sve.ptrue.c8() %2 = tail call i64 asm sideeffect "ld1w { z0.s, z4.s, z8.s, z12.s }, $1/z, [$0]", "=r,{pn8},0"(target("aarch64.svcount") %1, ptr %p) @@ -177,7 +177,7 @@ define void @explicit_pn0_invalid(ptr %p) { ; CHECK-NEXT: [[PTRUE_C_B:%[0-9]+]]:pnr_p8to15 = PTRUE_C_B implicit $vg ; CHECK-NEXT: $pn0 = COPY [[PTRUE_C_B]] ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY [[COPY]] - ; CHECK-NEXT: INLINEASM &"ld1w { z0.s, z4.s, z8.s, z12.s }, $1/z, [$0]", 1 /* sideeffect attdialect */, {{[0-9]+}} /* regdef:GPR64common */, def %1, 9 /* reguse */, $pn0, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3) + ; CHECK-NEXT: INLINEASM &"ld1w { z0.s, z4.s, z8.s, z12.s }, $1/z, [$0]", 1 /* sideeffect attdialect */, 3538954 /* regdef:GPR64common */, def %1, 9 /* reguse */, $pn0, 2147483657 /* reguse tiedto:$0 */, [[COPY1]](tied-def 3) ; CHECK-NEXT: RET_ReallyLR %1 = tail call target("aarch64.svcount") @llvm.aarch64.sve.ptrue.c8() %2 = tail call i64 asm sideeffect "ld1w { z0.s, z4.s, z8.s, z12.s }, $1/z, [$0]", "=r,{pn0},0"(target("aarch64.svcount") %1, ptr %p) diff --git a/llvm/test/CodeGen/AArch64/abs.ll b/llvm/test/CodeGen/AArch64/abs.ll index 25a14ef9a49ee..d501d9ed24547 100644 --- a/llvm/test/CodeGen/AArch64/abs.ll +++ b/llvm/test/CodeGen/AArch64/abs.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 ; RUN: llc -mtriple=aarch64-none-linux-gnu %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GI ; ===== Legal Scalars ===== diff --git a/llvm/test/CodeGen/AArch64/arm64-clrsb.ll b/llvm/test/CodeGen/AArch64/arm64-clrsb.ll index 412c2b00a5ac0..9c54238c68e2c 100644 --- a/llvm/test/CodeGen/AArch64/arm64-clrsb.ll +++ b/llvm/test/CodeGen/AArch64/arm64-clrsb.ll @@ -1,78 +1,68 @@ -; RUN: llc < %s -mtriple=arm64-apple-ios7.0.0 | FileCheck %s -; RUN: llc < %s -mtriple=arm64-apple-ios7.0.0 -O0 -pass-remarks-missed=gisel* -global-isel-abort=2 | FileCheck %s --check-prefixes=GISEL,FALLBACK +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc < %s -mtriple=arm64-apple-ios7.0.0 | FileCheck %s --check-prefixes=CHECK,CHECK-SD +; RUN: llc < %s -mtriple=arm64-apple-ios7.0.0 -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" -; Function Attrs: nounwind readnone declare i32 @llvm.ctlz.i32(i32, i1) #0 declare i64 @llvm.ctlz.i64(i64, i1) #1 -; Function Attrs: nounwind ssp -; FALLBACK-NOT: remark{{.*}}clrsb32 define i32 @clrsb32(i32 %x) #2 { +; CHECK-LABEL: clrsb32: +; CHECK: ; %bb.0: ; %entry +; CHECK-NEXT: cls w0, w0 +; CHECK-NEXT: ret entry: %shr = ashr i32 %x, 31 %xor = xor i32 %shr, %x %mul = shl i32 %xor, 1 %add = or i32 %mul, 1 %0 = tail call i32 @llvm.ctlz.i32(i32 %add, i1 false) - ret i32 %0 -; CHECK-LABEL: clrsb32 -; CHECK: cls [[TEMP:w[0-9]+]], [[TEMP]] - -; GISEL-LABEL: clrsb32 -; GISEL: cls [[TEMP:w[0-9]+]], [[TEMP]] } -; Function Attrs: nounwind ssp -; FALLBACK-NOT: remark{{.*}}clrsb64 define i64 @clrsb64(i64 %x) #3 { +; CHECK-LABEL: clrsb64: +; CHECK: ; %bb.0: ; %entry +; CHECK-NEXT: cls x0, x0 +; CHECK-NEXT: ret entry: %shr = ashr i64 %x, 63 %xor = xor i64 %shr, %x %mul = shl nsw i64 %xor, 1 %add = or i64 %mul, 1 %0 = tail call i64 @llvm.ctlz.i64(i64 %add, i1 false) - ret i64 %0 -; CHECK-LABEL: clrsb64 -; CHECK: cls [[TEMP:x[0-9]+]], [[TEMP]] -; GISEL-LABEL: clrsb64 -; GISEL: cls [[TEMP:x[0-9]+]], [[TEMP]] } -; Function Attrs: nounwind ssp -; FALLBACK-NOT: remark{{.*}}clrsb32_zeroundef define i32 @clrsb32_zeroundef(i32 %x) #2 { +; CHECK-LABEL: clrsb32_zeroundef: +; CHECK: ; %bb.0: ; %entry +; CHECK-NEXT: cls w0, w0 +; CHECK-NEXT: ret entry: %shr = ashr i32 %x, 31 %xor = xor i32 %shr, %x %mul = shl i32 %xor, 1 %add = or i32 %mul, 1 %0 = tail call i32 @llvm.ctlz.i32(i32 %add, i1 true) - ret i32 %0 -; CHECK-LABEL: clrsb32_zeroundef -; CHECK: cls [[TEMP:w[0-9]+]], [[TEMP]] - -; GISEL-LABEL: clrsb32_zeroundef -; GISEL: cls [[TEMP:w[0-9]+]], [[TEMP]] } -; Function Attrs: nounwind ssp -; FALLBACK-NOT: remark{{.*}}clrsb64 define i64 @clrsb64_zeroundef(i64 %x) #3 { +; CHECK-LABEL: clrsb64_zeroundef: +; CHECK: ; %bb.0: ; %entry +; CHECK-NEXT: cls x0, x0 +; CHECK-NEXT: ret entry: %shr = ashr i64 %x, 63 %xor = xor i64 %shr, %x %mul = shl nsw i64 %xor, 1 %add = or i64 %mul, 1 %0 = tail call i64 @llvm.ctlz.i64(i64 %add, i1 true) - ret i64 %0 -; CHECK-LABEL: clrsb64_zeroundef -; CHECK: cls [[TEMP:x[0-9]+]], [[TEMP]] -; GISEL-LABEL: clrsb64_zeroundef -; GISEL: cls [[TEMP:x[0-9]+]], [[TEMP]] } + +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; CHECK-GI: {{.*}} +; CHECK-SD: {{.*}} diff --git a/llvm/test/CodeGen/AArch64/arm64-ext.ll b/llvm/test/CodeGen/AArch64/arm64-ext.ll index e32d83327fe42..50df6a0388587 100644 --- a/llvm/test/CodeGen/AArch64/arm64-ext.ll +++ b/llvm/test/CodeGen/AArch64/arm64-ext.ll @@ -1,8 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 ; RUN: llc < %s -mtriple=arm64-eabi -global-isel=0 | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=arm64-eabi -global-isel=1 -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI - -; CHECK-GI: warning: Instruction selection used fallback path for test_v2p0 +; RUN: llc < %s -mtriple=arm64-eabi -global-isel=1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI define <8 x i8> @test_vextd(<8 x i8> %tmp1, <8 x i8> %tmp2) { ; CHECK-LABEL: test_vextd: diff --git a/llvm/test/CodeGen/AArch64/arm64-sli-sri-opt.ll b/llvm/test/CodeGen/AArch64/arm64-sli-sri-opt.ll index 475affa358bd1..0e1e15f9b6b91 100644 --- a/llvm/test/CodeGen/AArch64/arm64-sli-sri-opt.ll +++ b/llvm/test/CodeGen/AArch64/arm64-sli-sri-opt.ll @@ -1,12 +1,22 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -mtriple=arm64-eabi -aarch64-neon-syntax=apple | FileCheck %s +; RUN: llc < %s -mtriple=arm64-eabi -aarch64-neon-syntax=apple | FileCheck %s --check-prefixes=CHECK,CHECK-SD +; RUN: llc < %s -mtriple=arm64-eabi -aarch64-neon-syntax=apple -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI define void @testLeftGood8x8(<8 x i8> %src1, <8 x i8> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftGood8x8: -; CHECK: // %bb.0: -; CHECK-NEXT: sli.8b v0, v1, #3 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftGood8x8: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sli.8b v0, v1, #3 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftGood8x8: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.8b v2, #7 +; CHECK-GI-NEXT: shl.8b v1, v1, #3 +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <8 x i8> %src1, %vshl_n = shl <8 x i8> %src2, %result = or <8 x i8> %and.i, %vshl_n @@ -15,14 +25,23 @@ define void @testLeftGood8x8(<8 x i8> %src1, <8 x i8> %src2, ptr %dest) nounwind } define void @testLeftBad8x8(<8 x i8> %src1, <8 x i8> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftBad8x8: -; CHECK: // %bb.0: -; CHECK-NEXT: movi.8b v2, #165 -; CHECK-NEXT: add.8b v1, v1, v1 -; CHECK-NEXT: and.8b v0, v0, v2 -; CHECK-NEXT: orr.8b v0, v0, v1 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftBad8x8: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: movi.8b v2, #165 +; CHECK-SD-NEXT: add.8b v1, v1, v1 +; CHECK-SD-NEXT: and.8b v0, v0, v2 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftBad8x8: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.8b v2, #165 +; CHECK-GI-NEXT: shl.8b v1, v1, #1 +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <8 x i8> %src1, %vshl_n = shl <8 x i8> %src2, %result = or <8 x i8> %and.i, %vshl_n @@ -31,11 +50,20 @@ define void @testLeftBad8x8(<8 x i8> %src1, <8 x i8> %src2, ptr %dest) nounwind } define void @testRightGood8x8(<8 x i8> %src1, <8 x i8> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightGood8x8: -; CHECK: // %bb.0: -; CHECK-NEXT: sri.8b v0, v1, #3 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightGood8x8: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sri.8b v0, v1, #3 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightGood8x8: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.8b v2, #224 +; CHECK-GI-NEXT: ushr.8b v1, v1, #3 +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <8 x i8> %src1, %vshl_n = lshr <8 x i8> %src2, %result = or <8 x i8> %and.i, %vshl_n @@ -60,11 +88,20 @@ define void @testRightBad8x8(<8 x i8> %src1, <8 x i8> %src2, ptr %dest) nounwind } define void @testLeftGood16x8(<16 x i8> %src1, <16 x i8> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftGood16x8: -; CHECK: // %bb.0: -; CHECK-NEXT: sli.16b v0, v1, #3 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftGood16x8: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sli.16b v0, v1, #3 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftGood16x8: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.16b v2, #7 +; CHECK-GI-NEXT: shl.16b v1, v1, #3 +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <16 x i8> %src1, %vshl_n = shl <16 x i8> %src2, %result = or <16 x i8> %and.i, %vshl_n @@ -73,14 +110,23 @@ define void @testLeftGood16x8(<16 x i8> %src1, <16 x i8> %src2, ptr %dest) nounw } define void @testLeftBad16x8(<16 x i8> %src1, <16 x i8> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftBad16x8: -; CHECK: // %bb.0: -; CHECK-NEXT: movi.16b v2, #165 -; CHECK-NEXT: add.16b v1, v1, v1 -; CHECK-NEXT: and.16b v0, v0, v2 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftBad16x8: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: movi.16b v2, #165 +; CHECK-SD-NEXT: add.16b v1, v1, v1 +; CHECK-SD-NEXT: and.16b v0, v0, v2 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftBad16x8: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.16b v2, #165 +; CHECK-GI-NEXT: shl.16b v1, v1, #1 +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <16 x i8> %src1, %vshl_n = shl <16 x i8> %src2, %result = or <16 x i8> %and.i, %vshl_n @@ -89,11 +135,20 @@ define void @testLeftBad16x8(<16 x i8> %src1, <16 x i8> %src2, ptr %dest) nounwi } define void @testRightGood16x8(<16 x i8> %src1, <16 x i8> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightGood16x8: -; CHECK: // %bb.0: -; CHECK-NEXT: sri.16b v0, v1, #3 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightGood16x8: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sri.16b v0, v1, #3 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightGood16x8: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.16b v2, #224 +; CHECK-GI-NEXT: ushr.16b v1, v1, #3 +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <16 x i8> %src1, %vshl_n = lshr <16 x i8> %src2, %result = or <16 x i8> %and.i, %vshl_n @@ -118,11 +173,20 @@ define void @testRightBad16x8(<16 x i8> %src1, <16 x i8> %src2, ptr %dest) nounw } define void @testLeftGood4x16(<4 x i16> %src1, <4 x i16> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftGood4x16: -; CHECK: // %bb.0: -; CHECK-NEXT: sli.4h v0, v1, #14 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftGood4x16: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sli.4h v0, v1, #14 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftGood4x16: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mvni.4h v2, #192, lsl #8 +; CHECK-GI-NEXT: shl.4h v1, v1, #14 +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <4 x i16> %src1, %vshl_n = shl <4 x i16> %src2, %result = or <4 x i16> %and.i, %vshl_n @@ -131,15 +195,25 @@ define void @testLeftGood4x16(<4 x i16> %src1, <4 x i16> %src2, ptr %dest) nounw } define void @testLeftBad4x16(<4 x i16> %src1, <4 x i16> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftBad4x16: -; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #16500 -; CHECK-NEXT: shl.4h v1, v1, #14 -; CHECK-NEXT: dup.4h v2, w8 -; CHECK-NEXT: and.8b v0, v0, v2 -; CHECK-NEXT: orr.8b v0, v0, v1 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftBad4x16: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov w8, #16500 // =0x4074 +; CHECK-SD-NEXT: shl.4h v1, v1, #14 +; CHECK-SD-NEXT: dup.4h v2, w8 +; CHECK-SD-NEXT: and.8b v0, v0, v2 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftBad4x16: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI9_0 +; CHECK-GI-NEXT: shl.4h v1, v1, #14 +; CHECK-GI-NEXT: ldr d2, [x8, :lo12:.LCPI9_0] +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <4 x i16> %src1, %vshl_n = shl <4 x i16> %src2, %result = or <4 x i16> %and.i, %vshl_n @@ -148,11 +222,20 @@ define void @testLeftBad4x16(<4 x i16> %src1, <4 x i16> %src2, ptr %dest) nounwi } define void @testRightGood4x16(<4 x i16> %src1, <4 x i16> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightGood4x16: -; CHECK: // %bb.0: -; CHECK-NEXT: sri.4h v0, v1, #14 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightGood4x16: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sri.4h v0, v1, #14 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightGood4x16: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mvni.4h v2, #3 +; CHECK-GI-NEXT: ushr.4h v1, v1, #14 +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <4 x i16> %src1, %vshl_n = lshr <4 x i16> %src2, %result = or <4 x i16> %and.i, %vshl_n @@ -161,14 +244,24 @@ define void @testRightGood4x16(<4 x i16> %src1, <4 x i16> %src2, ptr %dest) noun } define void @testRightBad4x16(<4 x i16> %src1, <4 x i16> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightBad4x16: -; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #16500 -; CHECK-NEXT: dup.4h v2, w8 -; CHECK-NEXT: and.8b v0, v0, v2 -; CHECK-NEXT: usra.4h v0, v1, #14 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightBad4x16: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov w8, #16500 // =0x4074 +; CHECK-SD-NEXT: dup.4h v2, w8 +; CHECK-SD-NEXT: and.8b v0, v0, v2 +; CHECK-SD-NEXT: usra.4h v0, v1, #14 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightBad4x16: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI11_0 +; CHECK-GI-NEXT: ushr.4h v1, v1, #14 +; CHECK-GI-NEXT: ldr d2, [x8, :lo12:.LCPI11_0] +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <4 x i16> %src1, %vshl_n = lshr <4 x i16> %src2, %result = or <4 x i16> %and.i, %vshl_n @@ -177,11 +270,20 @@ define void @testRightBad4x16(<4 x i16> %src1, <4 x i16> %src2, ptr %dest) nounw } define void @testLeftGood8x16(<8 x i16> %src1, <8 x i16> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftGood8x16: -; CHECK: // %bb.0: -; CHECK-NEXT: sli.8h v0, v1, #14 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftGood8x16: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sli.8h v0, v1, #14 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftGood8x16: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mvni.8h v2, #192, lsl #8 +; CHECK-GI-NEXT: shl.8h v1, v1, #14 +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <8 x i16> %src1, %vshl_n = shl <8 x i16> %src2, %result = or <8 x i16> %and.i, %vshl_n @@ -190,15 +292,25 @@ define void @testLeftGood8x16(<8 x i16> %src1, <8 x i16> %src2, ptr %dest) nounw } define void @testLeftBad8x16(<8 x i16> %src1, <8 x i16> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftBad8x16: -; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #16500 -; CHECK-NEXT: shl.8h v1, v1, #14 -; CHECK-NEXT: dup.8h v2, w8 -; CHECK-NEXT: and.16b v0, v0, v2 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftBad8x16: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov w8, #16500 // =0x4074 +; CHECK-SD-NEXT: shl.8h v1, v1, #14 +; CHECK-SD-NEXT: dup.8h v2, w8 +; CHECK-SD-NEXT: and.16b v0, v0, v2 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftBad8x16: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI13_0 +; CHECK-GI-NEXT: shl.8h v1, v1, #14 +; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI13_0] +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <8 x i16> %src1, %vshl_n = shl <8 x i16> %src2, %result = or <8 x i16> %and.i, %vshl_n @@ -207,11 +319,20 @@ define void @testLeftBad8x16(<8 x i16> %src1, <8 x i16> %src2, ptr %dest) nounwi } define void @testRightGood8x16(<8 x i16> %src1, <8 x i16> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightGood8x16: -; CHECK: // %bb.0: -; CHECK-NEXT: sri.8h v0, v1, #14 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightGood8x16: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sri.8h v0, v1, #14 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightGood8x16: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mvni.8h v2, #3 +; CHECK-GI-NEXT: ushr.8h v1, v1, #14 +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <8 x i16> %src1, %vshl_n = lshr <8 x i16> %src2, %result = or <8 x i16> %and.i, %vshl_n @@ -220,14 +341,24 @@ define void @testRightGood8x16(<8 x i16> %src1, <8 x i16> %src2, ptr %dest) noun } define void @testRightBad8x16(<8 x i16> %src1, <8 x i16> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightBad8x16: -; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #16500 -; CHECK-NEXT: dup.8h v2, w8 -; CHECK-NEXT: and.16b v0, v0, v2 -; CHECK-NEXT: usra.8h v0, v1, #14 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightBad8x16: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov w8, #16500 // =0x4074 +; CHECK-SD-NEXT: dup.8h v2, w8 +; CHECK-SD-NEXT: and.16b v0, v0, v2 +; CHECK-SD-NEXT: usra.8h v0, v1, #14 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightBad8x16: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI15_0 +; CHECK-GI-NEXT: ushr.8h v1, v1, #14 +; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI15_0] +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <8 x i16> %src1, %vshl_n = lshr <8 x i16> %src2, %result = or <8 x i16> %and.i, %vshl_n @@ -236,11 +367,20 @@ define void @testRightBad8x16(<8 x i16> %src1, <8 x i16> %src2, ptr %dest) nounw } define void @testLeftGood2x32(<2 x i32> %src1, <2 x i32> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftGood2x32: -; CHECK: // %bb.0: -; CHECK-NEXT: sli.2s v0, v1, #22 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftGood2x32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sli.2s v0, v1, #22 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftGood2x32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.2s v2, #63, msl #16 +; CHECK-GI-NEXT: shl.2s v1, v1, #22 +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <2 x i32> %src1, %vshl_n = shl <2 x i32> %src2, %result = or <2 x i32> %and.i, %vshl_n @@ -249,15 +389,25 @@ define void @testLeftGood2x32(<2 x i32> %src1, <2 x i32> %src2, ptr %dest) nounw } define void @testLeftBad2x32(<2 x i32> %src1, <2 x i32> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftBad2x32: -; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #4194300 -; CHECK-NEXT: shl.2s v1, v1, #22 -; CHECK-NEXT: dup.2s v2, w8 -; CHECK-NEXT: and.8b v0, v0, v2 -; CHECK-NEXT: orr.8b v0, v0, v1 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftBad2x32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov w8, #4194300 // =0x3ffffc +; CHECK-SD-NEXT: shl.2s v1, v1, #22 +; CHECK-SD-NEXT: dup.2s v2, w8 +; CHECK-SD-NEXT: and.8b v0, v0, v2 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftBad2x32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI17_0 +; CHECK-GI-NEXT: shl.2s v1, v1, #22 +; CHECK-GI-NEXT: ldr d2, [x8, :lo12:.LCPI17_0] +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <2 x i32> %src1, %vshl_n = shl <2 x i32> %src2, %result = or <2 x i32> %and.i, %vshl_n @@ -266,11 +416,20 @@ define void @testLeftBad2x32(<2 x i32> %src1, <2 x i32> %src2, ptr %dest) nounwi } define void @testRightGood2x32(<2 x i32> %src1, <2 x i32> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightGood2x32: -; CHECK: // %bb.0: -; CHECK-NEXT: sri.2s v0, v1, #22 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightGood2x32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sri.2s v0, v1, #22 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightGood2x32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mvni.2s v2, #3, msl #8 +; CHECK-GI-NEXT: ushr.2s v1, v1, #22 +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <2 x i32> %src1, %vshl_n = lshr <2 x i32> %src2, %result = or <2 x i32> %and.i, %vshl_n @@ -279,15 +438,25 @@ define void @testRightGood2x32(<2 x i32> %src1, <2 x i32> %src2, ptr %dest) noun } define void @testRightBad2x32(<2 x i32> %src1, <2 x i32> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightBad2x32: -; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #4194300 -; CHECK-NEXT: ushr.2s v1, v1, #22 -; CHECK-NEXT: dup.2s v2, w8 -; CHECK-NEXT: and.8b v0, v0, v2 -; CHECK-NEXT: orr.8b v0, v0, v1 -; CHECK-NEXT: str d0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightBad2x32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov w8, #4194300 // =0x3ffffc +; CHECK-SD-NEXT: ushr.2s v1, v1, #22 +; CHECK-SD-NEXT: dup.2s v2, w8 +; CHECK-SD-NEXT: and.8b v0, v0, v2 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: str d0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightBad2x32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI19_0 +; CHECK-GI-NEXT: ushr.2s v1, v1, #22 +; CHECK-GI-NEXT: ldr d2, [x8, :lo12:.LCPI19_0] +; CHECK-GI-NEXT: and.8b v0, v0, v2 +; CHECK-GI-NEXT: orr.8b v0, v0, v1 +; CHECK-GI-NEXT: str d0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <2 x i32> %src1, %vshl_n = lshr <2 x i32> %src2, %result = or <2 x i32> %and.i, %vshl_n @@ -296,11 +465,20 @@ define void @testRightBad2x32(<2 x i32> %src1, <2 x i32> %src2, ptr %dest) nounw } define void @testLeftGood4x32(<4 x i32> %src1, <4 x i32> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftGood4x32: -; CHECK: // %bb.0: -; CHECK-NEXT: sli.4s v0, v1, #22 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftGood4x32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sli.4s v0, v1, #22 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftGood4x32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.4s v2, #63, msl #16 +; CHECK-GI-NEXT: shl.4s v1, v1, #22 +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <4 x i32> %src1, %vshl_n = shl <4 x i32> %src2, %result = or <4 x i32> %and.i, %vshl_n @@ -309,15 +487,25 @@ define void @testLeftGood4x32(<4 x i32> %src1, <4 x i32> %src2, ptr %dest) nounw } define void @testLeftBad4x32(<4 x i32> %src1, <4 x i32> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftBad4x32: -; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #4194300 -; CHECK-NEXT: shl.4s v1, v1, #22 -; CHECK-NEXT: dup.4s v2, w8 -; CHECK-NEXT: and.16b v0, v0, v2 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftBad4x32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov w8, #4194300 // =0x3ffffc +; CHECK-SD-NEXT: shl.4s v1, v1, #22 +; CHECK-SD-NEXT: dup.4s v2, w8 +; CHECK-SD-NEXT: and.16b v0, v0, v2 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftBad4x32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI21_0 +; CHECK-GI-NEXT: shl.4s v1, v1, #22 +; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI21_0] +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <4 x i32> %src1, %vshl_n = shl <4 x i32> %src2, %result = or <4 x i32> %and.i, %vshl_n @@ -326,11 +514,20 @@ define void @testLeftBad4x32(<4 x i32> %src1, <4 x i32> %src2, ptr %dest) nounwi } define void @testRightGood4x32(<4 x i32> %src1, <4 x i32> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightGood4x32: -; CHECK: // %bb.0: -; CHECK-NEXT: sri.4s v0, v1, #22 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightGood4x32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sri.4s v0, v1, #22 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightGood4x32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mvni.4s v2, #3, msl #8 +; CHECK-GI-NEXT: ushr.4s v1, v1, #22 +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <4 x i32> %src1, %vshl_n = lshr <4 x i32> %src2, %result = or <4 x i32> %and.i, %vshl_n @@ -339,15 +536,25 @@ define void @testRightGood4x32(<4 x i32> %src1, <4 x i32> %src2, ptr %dest) noun } define void @testRightBad4x32(<4 x i32> %src1, <4 x i32> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightBad4x32: -; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #4194300 -; CHECK-NEXT: ushr.4s v1, v1, #22 -; CHECK-NEXT: dup.4s v2, w8 -; CHECK-NEXT: and.16b v0, v0, v2 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightBad4x32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov w8, #4194300 // =0x3ffffc +; CHECK-SD-NEXT: ushr.4s v1, v1, #22 +; CHECK-SD-NEXT: dup.4s v2, w8 +; CHECK-SD-NEXT: and.16b v0, v0, v2 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightBad4x32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI23_0 +; CHECK-GI-NEXT: ushr.4s v1, v1, #22 +; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI23_0] +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <4 x i32> %src1, %vshl_n = lshr <4 x i32> %src2, %result = or <4 x i32> %and.i, %vshl_n @@ -356,11 +563,20 @@ define void @testRightBad4x32(<4 x i32> %src1, <4 x i32> %src2, ptr %dest) nounw } define void @testLeftGood2x64(<2 x i64> %src1, <2 x i64> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftGood2x64: -; CHECK: // %bb.0: -; CHECK-NEXT: sli.2d v0, v1, #48 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftGood2x64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sli.2d v0, v1, #48 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftGood2x64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.2d v2, #0x00ffffffffffff +; CHECK-GI-NEXT: shl.2d v1, v1, #48 +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <2 x i64> %src1, %vshl_n = shl <2 x i64> %src2, %result = or <2 x i64> %and.i, %vshl_n @@ -369,16 +585,26 @@ define void @testLeftGood2x64(<2 x i64> %src1, <2 x i64> %src2, ptr %dest) nounw } define void @testLeftBad2x64(<2 x i64> %src1, <2 x i64> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftBad2x64: -; CHECK: // %bb.0: -; CHECK-NEXT: mov x8, #10 -; CHECK-NEXT: shl.2d v1, v1, #48 -; CHECK-NEXT: movk x8, #1, lsl #48 -; CHECK-NEXT: dup.2d v2, x8 -; CHECK-NEXT: and.16b v0, v0, v2 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftBad2x64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov x8, #10 // =0xa +; CHECK-SD-NEXT: shl.2d v1, v1, #48 +; CHECK-SD-NEXT: movk x8, #1, lsl #48 +; CHECK-SD-NEXT: dup.2d v2, x8 +; CHECK-SD-NEXT: and.16b v0, v0, v2 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftBad2x64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI25_0 +; CHECK-GI-NEXT: shl.2d v1, v1, #48 +; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI25_0] +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <2 x i64> %src1, %vshl_n = shl <2 x i64> %src2, %result = or <2 x i64> %and.i, %vshl_n @@ -387,11 +613,20 @@ define void @testLeftBad2x64(<2 x i64> %src1, <2 x i64> %src2, ptr %dest) nounwi } define void @testRightGood2x64(<2 x i64> %src1, <2 x i64> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightGood2x64: -; CHECK: // %bb.0: -; CHECK-NEXT: sri.2d v0, v1, #48 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightGood2x64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sri.2d v0, v1, #48 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightGood2x64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi.2d v2, #0xffffffffffff0000 +; CHECK-GI-NEXT: ushr.2d v1, v1, #48 +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <2 x i64> %src1, %vshl_n = lshr <2 x i64> %src2, %result = or <2 x i64> %and.i, %vshl_n @@ -400,16 +635,26 @@ define void @testRightGood2x64(<2 x i64> %src1, <2 x i64> %src2, ptr %dest) noun } define void @testRightBad2x64(<2 x i64> %src1, <2 x i64> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testRightBad2x64: -; CHECK: // %bb.0: -; CHECK-NEXT: mov x8, #10 -; CHECK-NEXT: ushr.2d v1, v1, #48 -; CHECK-NEXT: movk x8, #1, lsl #48 -; CHECK-NEXT: dup.2d v2, x8 -; CHECK-NEXT: and.16b v0, v0, v2 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testRightBad2x64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: mov x8, #10 // =0xa +; CHECK-SD-NEXT: ushr.2d v1, v1, #48 +; CHECK-SD-NEXT: movk x8, #1, lsl #48 +; CHECK-SD-NEXT: dup.2d v2, x8 +; CHECK-SD-NEXT: and.16b v0, v0, v2 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testRightBad2x64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI27_0 +; CHECK-GI-NEXT: ushr.2d v1, v1, #48 +; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI27_0] +; CHECK-GI-NEXT: and.16b v0, v0, v2 +; CHECK-GI-NEXT: orr.16b v0, v0, v1 +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret %and.i = and <2 x i64> %src1, %vshl_n = lshr <2 x i64> %src2, %result = or <2 x i64> %and.i, %vshl_n @@ -418,11 +663,19 @@ define void @testRightBad2x64(<2 x i64> %src1, <2 x i64> %src2, ptr %dest) nounw } define void @testLeftShouldNotCreateSLI1x128(<1 x i128> %src1, <1 x i128> %src2, ptr %dest) nounwind { -; CHECK-LABEL: testLeftShouldNotCreateSLI1x128: -; CHECK: // %bb.0: -; CHECK-NEXT: bfi x1, x2, #6, #58 -; CHECK-NEXT: stp x0, x1, [x4] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: testLeftShouldNotCreateSLI1x128: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: bfi x1, x2, #6, #58 +; CHECK-SD-NEXT: stp x0, x1, [x4] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: testLeftShouldNotCreateSLI1x128: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov.d v0[0], x0 +; CHECK-GI-NEXT: bfi x1, x2, #6, #58 +; CHECK-GI-NEXT: mov.d v0[1], x1 +; CHECK-GI-NEXT: str q0, [x4] +; CHECK-GI-NEXT: ret %and.i = and <1 x i128> %src1, %vshl_n = shl <1 x i128> %src2, %result = or <1 x i128> %and.i, %vshl_n diff --git a/llvm/test/CodeGen/AArch64/arm64-vclz.ll b/llvm/test/CodeGen/AArch64/arm64-vclz.ll index 38c0572e23f89..c65e75c89e8da 100644 --- a/llvm/test/CodeGen/AArch64/arm64-vclz.ll +++ b/llvm/test/CodeGen/AArch64/arm64-vclz.ll @@ -1,154 +1,254 @@ -; RUN: llc < %s -mtriple=arm64-eabi -aarch64-neon-syntax=apple | FileCheck %s -; RUN: llc < %s -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel* -mtriple=arm64-eabi -aarch64-neon-syntax=apple | FileCheck %s +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc < %s -mtriple=arm64-eabi -aarch64-neon-syntax=apple | FileCheck %s --check-prefixes=CHECK,CHECK-SD +; RUN: llc < %s -mtriple=arm64-eabi -aarch64-neon-syntax=apple -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI -; FALLBACK-NOT: remark{{.*}}test_vclz_u8 define <8 x i8> @test_vclz_u8(<8 x i8> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclz_u8: - ; CHECK: clz.8b v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclz_u8: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.8b v0, v0 +; CHECK-NEXT: ret %vclz.i = tail call <8 x i8> @llvm.ctlz.v8i8(<8 x i8> %a, i1 false) nounwind ret <8 x i8> %vclz.i } -; FALLBACK-NOT: remark{{.*}}test_vclz_s8 define <8 x i8> @test_vclz_s8(<8 x i8> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclz_s8: - ; CHECK: clz.8b v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclz_s8: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.8b v0, v0 +; CHECK-NEXT: ret %vclz.i = tail call <8 x i8> @llvm.ctlz.v8i8(<8 x i8> %a, i1 false) nounwind ret <8 x i8> %vclz.i } -; FALLBACK-NOT: remark{{.*}}test_vclz_u16 define <4 x i16> @test_vclz_u16(<4 x i16> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclz_u16: - ; CHECK: clz.4h v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclz_u16: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.4h v0, v0 +; CHECK-NEXT: ret %vclz1.i = tail call <4 x i16> @llvm.ctlz.v4i16(<4 x i16> %a, i1 false) nounwind ret <4 x i16> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclz_s16 define <4 x i16> @test_vclz_s16(<4 x i16> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclz_s16: - ; CHECK: clz.4h v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclz_s16: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.4h v0, v0 +; CHECK-NEXT: ret %vclz1.i = tail call <4 x i16> @llvm.ctlz.v4i16(<4 x i16> %a, i1 false) nounwind ret <4 x i16> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclz_u32 define <2 x i32> @test_vclz_u32(<2 x i32> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclz_u32: - ; CHECK: clz.2s v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclz_u32: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.2s v0, v0 +; CHECK-NEXT: ret %vclz1.i = tail call <2 x i32> @llvm.ctlz.v2i32(<2 x i32> %a, i1 false) nounwind ret <2 x i32> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclz_s32 define <2 x i32> @test_vclz_s32(<2 x i32> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclz_s32: - ; CHECK: clz.2s v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclz_s32: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.2s v0, v0 +; CHECK-NEXT: ret %vclz1.i = tail call <2 x i32> @llvm.ctlz.v2i32(<2 x i32> %a, i1 false) nounwind ret <2 x i32> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclz_u64 define <1 x i64> @test_vclz_u64(<1 x i64> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclz_u64: +; CHECK-SD-LABEL: test_vclz_u64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ushr d1, d0, #1 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #2 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #4 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #8 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #16 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #32 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: mvn.8b v0, v0 +; CHECK-SD-NEXT: cnt.8b v0, v0 +; CHECK-SD-NEXT: uaddlp.4h v0, v0 +; CHECK-SD-NEXT: uaddlp.2s v0, v0 +; CHECK-SD-NEXT: uaddlp.1d v0, v0 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: test_vclz_u64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: fmov x8, d0 +; CHECK-GI-NEXT: clz x8, x8 +; CHECK-GI-NEXT: fmov d0, x8 +; CHECK-GI-NEXT: ret %vclz1.i = tail call <1 x i64> @llvm.ctlz.v1i64(<1 x i64> %a, i1 false) nounwind ret <1 x i64> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclz_s64 define <1 x i64> @test_vclz_s64(<1 x i64> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclz_s64: +; CHECK-SD-LABEL: test_vclz_s64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ushr d1, d0, #1 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #2 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #4 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #8 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #16 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: ushr d1, d0, #32 +; CHECK-SD-NEXT: orr.8b v0, v0, v1 +; CHECK-SD-NEXT: mvn.8b v0, v0 +; CHECK-SD-NEXT: cnt.8b v0, v0 +; CHECK-SD-NEXT: uaddlp.4h v0, v0 +; CHECK-SD-NEXT: uaddlp.2s v0, v0 +; CHECK-SD-NEXT: uaddlp.1d v0, v0 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: test_vclz_s64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: fmov x8, d0 +; CHECK-GI-NEXT: clz x8, x8 +; CHECK-GI-NEXT: fmov d0, x8 +; CHECK-GI-NEXT: ret %vclz1.i = tail call <1 x i64> @llvm.ctlz.v1i64(<1 x i64> %a, i1 false) nounwind ret <1 x i64> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclzq_u8 define <16 x i8> @test_vclzq_u8(<16 x i8> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclzq_u8: - ; CHECK: clz.16b v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclzq_u8: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.16b v0, v0 +; CHECK-NEXT: ret %vclz.i = tail call <16 x i8> @llvm.ctlz.v16i8(<16 x i8> %a, i1 false) nounwind ret <16 x i8> %vclz.i } -; FALLBACK-NOT: remark{{.*}}test_vclzq_s8 define <16 x i8> @test_vclzq_s8(<16 x i8> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclzq_s8: - ; CHECK: clz.16b v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclzq_s8: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.16b v0, v0 +; CHECK-NEXT: ret %vclz.i = tail call <16 x i8> @llvm.ctlz.v16i8(<16 x i8> %a, i1 false) nounwind ret <16 x i8> %vclz.i } -; FALLBACK-NOT: remark{{.*}}test_vclzq_u16 define <8 x i16> @test_vclzq_u16(<8 x i16> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclzq_u16: - ; CHECK: clz.8h v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclzq_u16: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.8h v0, v0 +; CHECK-NEXT: ret %vclz1.i = tail call <8 x i16> @llvm.ctlz.v8i16(<8 x i16> %a, i1 false) nounwind ret <8 x i16> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclzq_s16 define <8 x i16> @test_vclzq_s16(<8 x i16> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclzq_s16: - ; CHECK: clz.8h v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclzq_s16: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.8h v0, v0 +; CHECK-NEXT: ret %vclz1.i = tail call <8 x i16> @llvm.ctlz.v8i16(<8 x i16> %a, i1 false) nounwind ret <8 x i16> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclzq_u32 define <4 x i32> @test_vclzq_u32(<4 x i32> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclzq_u32: - ; CHECK: clz.4s v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclzq_u32: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.4s v0, v0 +; CHECK-NEXT: ret %vclz1.i = tail call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %a, i1 false) nounwind ret <4 x i32> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclzq_s32 define <4 x i32> @test_vclzq_s32(<4 x i32> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclzq_s32: - ; CHECK: clz.4s v0, v0 - ; CHECK-NEXT: ret +; CHECK-LABEL: test_vclzq_s32: +; CHECK: // %bb.0: +; CHECK-NEXT: clz.4s v0, v0 +; CHECK-NEXT: ret %vclz1.i = tail call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %a, i1 false) nounwind ret <4 x i32> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclzq_u64 define <2 x i64> @test_vclzq_u64(<2 x i64> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclzq_u64: +; CHECK-SD-LABEL: test_vclzq_u64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ushr.2d v1, v0, #1 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #2 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #4 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #8 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #16 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #32 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: mvn.16b v0, v0 +; CHECK-SD-NEXT: cnt.16b v0, v0 +; CHECK-SD-NEXT: uaddlp.8h v0, v0 +; CHECK-SD-NEXT: uaddlp.4s v0, v0 +; CHECK-SD-NEXT: uaddlp.2d v0, v0 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: test_vclzq_u64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: fmov x8, d0 +; CHECK-GI-NEXT: mov.d x9, v0[1] +; CHECK-GI-NEXT: clz x8, x8 +; CHECK-GI-NEXT: mov.d v0[0], x8 +; CHECK-GI-NEXT: clz x8, x9 +; CHECK-GI-NEXT: mov.d v0[1], x8 +; CHECK-GI-NEXT: ret %vclz1.i = tail call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %a, i1 false) nounwind ret <2 x i64> %vclz1.i } -; FALLBACK-NOT: remark{{.*}}test_vclzq_s64 define <2 x i64> @test_vclzq_s64(<2 x i64> %a) nounwind readnone ssp { - ; CHECK-LABEL: test_vclzq_s64: +; CHECK-SD-LABEL: test_vclzq_s64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ushr.2d v1, v0, #1 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #2 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #4 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #8 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #16 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: ushr.2d v1, v0, #32 +; CHECK-SD-NEXT: orr.16b v0, v0, v1 +; CHECK-SD-NEXT: mvn.16b v0, v0 +; CHECK-SD-NEXT: cnt.16b v0, v0 +; CHECK-SD-NEXT: uaddlp.8h v0, v0 +; CHECK-SD-NEXT: uaddlp.4s v0, v0 +; CHECK-SD-NEXT: uaddlp.2d v0, v0 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: test_vclzq_s64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: fmov x8, d0 +; CHECK-GI-NEXT: mov.d x9, v0[1] +; CHECK-GI-NEXT: clz x8, x8 +; CHECK-GI-NEXT: mov.d v0[0], x8 +; CHECK-GI-NEXT: clz x8, x9 +; CHECK-GI-NEXT: mov.d v0[1], x8 +; CHECK-GI-NEXT: ret %vclz1.i = tail call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %a, i1 false) nounwind ret <2 x i64> %vclz1.i } declare <2 x i64> @llvm.ctlz.v2i64(<2 x i64>, i1) nounwind readnone - declare <4 x i32> @llvm.ctlz.v4i32(<4 x i32>, i1) nounwind readnone - declare <8 x i16> @llvm.ctlz.v8i16(<8 x i16>, i1) nounwind readnone - declare <16 x i8> @llvm.ctlz.v16i8(<16 x i8>, i1) nounwind readnone - declare <1 x i64> @llvm.ctlz.v1i64(<1 x i64>, i1) nounwind readnone - declare <2 x i32> @llvm.ctlz.v2i32(<2 x i32>, i1) nounwind readnone - declare <4 x i16> @llvm.ctlz.v4i16(<4 x i16>, i1) nounwind readnone - declare <8 x i8> @llvm.ctlz.v8i8(<8 x i8>, i1) nounwind readnone diff --git a/llvm/test/CodeGen/AArch64/arm64-vshift.ll b/llvm/test/CodeGen/AArch64/arm64-vshift.ll index 7af7c235f9ac1..2f543cc324bc2 100644 --- a/llvm/test/CodeGen/AArch64/arm64-vshift.ll +++ b/llvm/test/CodeGen/AArch64/arm64-vshift.ll @@ -1,12 +1,114 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 -; RUN: llc < %s -mtriple=arm64-eabi -aarch64-neon-syntax=apple -enable-misched=false | FileCheck %s +; RUN: llc < %s -mtriple=arm64-eabi -global-isel=0 | FileCheck %s --check-prefixes=CHECK,CHECK-SD +; RUN: llc < %s -mtriple=arm64-eabi -global-isel=1 -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI + +; CHECK-GI: warning: Instruction selection used fallback path for sqshl1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshl1d_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshl_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshl_scalar_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshl1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshl1d_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshl_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshl_scalar_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for srshl1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for srshl1d_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for srshl_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for srshl_scalar_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for urshl1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for urshl1d_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for urshl_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for urshl_scalar_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshl1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshl1d_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshl_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshl_scalar_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshl1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshl1d_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshl_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshl_scalar_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for urshr1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for urshr_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for srshr1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for srshr_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu8b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu4h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu2s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu16b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu8h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu4s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu2d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu1d_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu_i64_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu_i32_constant +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrn1s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrn8b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrn4h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrn2s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrn16b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrn8h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrn4s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrun1s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrun8b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrun4h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrun2s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrun16b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrun8h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshrun4s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrn1s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrn8b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrn4h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrn2s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrn16b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrn8h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrn4s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrun1s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrun8b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrun4h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrun2s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrun16b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrun8h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrshrun4s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshrn1s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshrn8b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshrn4h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshrn2s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshrn16b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshrn8h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqrshrn4s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshrn1s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshrn8b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshrn4h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshrn2s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshrn16b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshrn8h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uqshrn4s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for neon_ushl_vscalar_constant_shift +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for neon_ushl_scalar_constant_shift +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for neon_sshll_vscalar_constant_shift +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for neon_sshll_scalar_constant_shift +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for neon_sshll_scalar_constant_shift_m1 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ursra1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ursra_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for srsra1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for srsra_scalar +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sli8b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sli4h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sli2s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sli1d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sli16b +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sli8h +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sli4s +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sli2d +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqshlu_zero_shift_amount +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for lshr_trunc_v2i64_v2i8 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ashr_trunc_v2i64_v2i8 define <8 x i8> @sqshl8b(ptr %A, ptr %B) nounwind { ; CHECK-LABEL: sqshl8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: sqshl.8b v0, v0, v1 +; CHECK-NEXT: sqshl v0.8b, v0.8b, v1.8b ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = load <8 x i8>, ptr %B @@ -19,7 +121,7 @@ define <4 x i16> @sqshl4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: sqshl.4h v0, v0, v1 +; CHECK-NEXT: sqshl v0.4h, v0.4h, v1.4h ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = load <4 x i16>, ptr %B @@ -32,7 +134,7 @@ define <2 x i32> @sqshl2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: sqshl.2s v0, v0, v1 +; CHECK-NEXT: sqshl v0.2s, v0.2s, v1.2s ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = load <2 x i32>, ptr %B @@ -97,7 +199,7 @@ define <8 x i8> @uqshl8b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: uqshl.8b v0, v0, v1 +; CHECK-NEXT: uqshl v0.8b, v0.8b, v1.8b ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = load <8 x i8>, ptr %B @@ -110,7 +212,7 @@ define <4 x i16> @uqshl4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: uqshl.4h v0, v0, v1 +; CHECK-NEXT: uqshl v0.4h, v0.4h, v1.4h ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = load <4 x i16>, ptr %B @@ -123,7 +225,7 @@ define <2 x i32> @uqshl2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: uqshl.2s v0, v0, v1 +; CHECK-NEXT: uqshl v0.2s, v0.2s, v1.2s ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = load <2 x i32>, ptr %B @@ -136,7 +238,7 @@ define <16 x i8> @sqshl16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshl.16b v0, v0, v1 +; CHECK-NEXT: sqshl v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = load <16 x i8>, ptr %B @@ -149,7 +251,7 @@ define <8 x i16> @sqshl8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshl.8h v0, v0, v1 +; CHECK-NEXT: sqshl v0.8h, v0.8h, v1.8h ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp2 = load <8 x i16>, ptr %B @@ -162,7 +264,7 @@ define <4 x i32> @sqshl4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshl.4s v0, v0, v1 +; CHECK-NEXT: sqshl v0.4s, v0.4s, v1.4s ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp2 = load <4 x i32>, ptr %B @@ -175,7 +277,7 @@ define <2 x i64> @sqshl2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshl.2d v0, v0, v1 +; CHECK-NEXT: sqshl v0.2d, v0.2d, v1.2d ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp2 = load <2 x i64>, ptr %B @@ -188,7 +290,7 @@ define <16 x i8> @uqshl16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqshl.16b v0, v0, v1 +; CHECK-NEXT: uqshl v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = load <16 x i8>, ptr %B @@ -201,7 +303,7 @@ define <8 x i16> @uqshl8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqshl.8h v0, v0, v1 +; CHECK-NEXT: uqshl v0.8h, v0.8h, v1.8h ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp2 = load <8 x i16>, ptr %B @@ -214,7 +316,7 @@ define <4 x i32> @uqshl4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqshl.4s v0, v0, v1 +; CHECK-NEXT: uqshl v0.4s, v0.4s, v1.4s ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp2 = load <4 x i32>, ptr %B @@ -227,7 +329,7 @@ define <2 x i64> @uqshl2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqshl.2d v0, v0, v1 +; CHECK-NEXT: uqshl v0.2d, v0.2d, v1.2d ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp2 = load <2 x i64>, ptr %B @@ -315,7 +417,7 @@ define <8 x i8> @srshl8b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: srshl.8b v0, v0, v1 +; CHECK-NEXT: srshl v0.8b, v0.8b, v1.8b ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = load <8 x i8>, ptr %B @@ -328,7 +430,7 @@ define <4 x i16> @srshl4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: srshl.4h v0, v0, v1 +; CHECK-NEXT: srshl v0.4h, v0.4h, v1.4h ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = load <4 x i16>, ptr %B @@ -341,7 +443,7 @@ define <2 x i32> @srshl2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: srshl.2s v0, v0, v1 +; CHECK-NEXT: srshl v0.2s, v0.2s, v1.2s ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = load <2 x i32>, ptr %B @@ -394,10 +496,10 @@ define i64 @srshl_scalar(ptr %A, ptr %B) nounwind { define i64 @srshl_scalar_constant(ptr %A) nounwind { ; CHECK-LABEL: srshl_scalar_constant: ; CHECK: // %bb.0: -; CHECK-NEXT: ldr x8, [x0] -; CHECK-NEXT: mov w9, #1 // =0x1 -; CHECK-NEXT: fmov d1, x9 -; CHECK-NEXT: fmov d0, x8 +; CHECK-NEXT: ldr x9, [x0] +; CHECK-NEXT: mov w8, #1 // =0x1 +; CHECK-NEXT: fmov d1, x8 +; CHECK-NEXT: fmov d0, x9 ; CHECK-NEXT: srshl d0, d0, d1 ; CHECK-NEXT: fmov x0, d0 ; CHECK-NEXT: ret @@ -411,7 +513,7 @@ define <8 x i8> @urshl8b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: urshl.8b v0, v0, v1 +; CHECK-NEXT: urshl v0.8b, v0.8b, v1.8b ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = load <8 x i8>, ptr %B @@ -424,7 +526,7 @@ define <4 x i16> @urshl4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: urshl.4h v0, v0, v1 +; CHECK-NEXT: urshl v0.4h, v0.4h, v1.4h ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = load <4 x i16>, ptr %B @@ -437,7 +539,7 @@ define <2 x i32> @urshl2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: urshl.2s v0, v0, v1 +; CHECK-NEXT: urshl v0.2s, v0.2s, v1.2s ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = load <2 x i32>, ptr %B @@ -490,10 +592,10 @@ define i64 @urshl_scalar(ptr %A, ptr %B) nounwind { define i64 @urshl_scalar_constant(ptr %A) nounwind { ; CHECK-LABEL: urshl_scalar_constant: ; CHECK: // %bb.0: -; CHECK-NEXT: ldr x8, [x0] -; CHECK-NEXT: mov w9, #1 // =0x1 -; CHECK-NEXT: fmov d1, x9 -; CHECK-NEXT: fmov d0, x8 +; CHECK-NEXT: ldr x9, [x0] +; CHECK-NEXT: mov w8, #1 // =0x1 +; CHECK-NEXT: fmov d1, x8 +; CHECK-NEXT: fmov d0, x9 ; CHECK-NEXT: urshl d0, d0, d1 ; CHECK-NEXT: fmov x0, d0 ; CHECK-NEXT: ret @@ -507,7 +609,7 @@ define <16 x i8> @srshl16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: srshl.16b v0, v0, v1 +; CHECK-NEXT: srshl v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = load <16 x i8>, ptr %B @@ -520,7 +622,7 @@ define <8 x i16> @srshl8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: srshl.8h v0, v0, v1 +; CHECK-NEXT: srshl v0.8h, v0.8h, v1.8h ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp2 = load <8 x i16>, ptr %B @@ -533,7 +635,7 @@ define <4 x i32> @srshl4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: srshl.4s v0, v0, v1 +; CHECK-NEXT: srshl v0.4s, v0.4s, v1.4s ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp2 = load <4 x i32>, ptr %B @@ -546,7 +648,7 @@ define <2 x i64> @srshl2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: srshl.2d v0, v0, v1 +; CHECK-NEXT: srshl v0.2d, v0.2d, v1.2d ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp2 = load <2 x i64>, ptr %B @@ -559,7 +661,7 @@ define <16 x i8> @urshl16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: urshl.16b v0, v0, v1 +; CHECK-NEXT: urshl v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = load <16 x i8>, ptr %B @@ -572,7 +674,7 @@ define <8 x i16> @urshl8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: urshl.8h v0, v0, v1 +; CHECK-NEXT: urshl v0.8h, v0.8h, v1.8h ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp2 = load <8 x i16>, ptr %B @@ -585,7 +687,7 @@ define <4 x i32> @urshl4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: urshl.4s v0, v0, v1 +; CHECK-NEXT: urshl v0.4s, v0.4s, v1.4s ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp2 = load <4 x i32>, ptr %B @@ -598,7 +700,7 @@ define <2 x i64> @urshl2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: urshl.2d v0, v0, v1 +; CHECK-NEXT: urshl v0.2d, v0.2d, v1.2d ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp2 = load <2 x i64>, ptr %B @@ -633,7 +735,7 @@ define <8 x i8> @sqrshl8b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: sqrshl.8b v0, v0, v1 +; CHECK-NEXT: sqrshl v0.8b, v0.8b, v1.8b ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = load <8 x i8>, ptr %B @@ -646,7 +748,7 @@ define <4 x i16> @sqrshl4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: sqrshl.4h v0, v0, v1 +; CHECK-NEXT: sqrshl v0.4h, v0.4h, v1.4h ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = load <4 x i16>, ptr %B @@ -659,7 +761,7 @@ define <2 x i32> @sqrshl2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: sqrshl.2s v0, v0, v1 +; CHECK-NEXT: sqrshl v0.2s, v0.2s, v1.2s ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = load <2 x i32>, ptr %B @@ -672,7 +774,7 @@ define <8 x i8> @uqrshl8b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: uqrshl.8b v0, v0, v1 +; CHECK-NEXT: uqrshl v0.8b, v0.8b, v1.8b ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = load <8 x i8>, ptr %B @@ -685,7 +787,7 @@ define <4 x i16> @uqrshl4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: uqrshl.4h v0, v0, v1 +; CHECK-NEXT: uqrshl v0.4h, v0.4h, v1.4h ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = load <4 x i16>, ptr %B @@ -698,7 +800,7 @@ define <2 x i32> @uqrshl2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: uqrshl.2s v0, v0, v1 +; CHECK-NEXT: uqrshl v0.2s, v0.2s, v1.2s ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = load <2 x i32>, ptr %B @@ -711,7 +813,7 @@ define <16 x i8> @sqrshl16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshl.16b v0, v0, v1 +; CHECK-NEXT: sqrshl v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = load <16 x i8>, ptr %B @@ -724,7 +826,7 @@ define <8 x i16> @sqrshl8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshl.8h v0, v0, v1 +; CHECK-NEXT: sqrshl v0.8h, v0.8h, v1.8h ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp2 = load <8 x i16>, ptr %B @@ -737,7 +839,7 @@ define <4 x i32> @sqrshl4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshl.4s v0, v0, v1 +; CHECK-NEXT: sqrshl v0.4s, v0.4s, v1.4s ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp2 = load <4 x i32>, ptr %B @@ -750,7 +852,7 @@ define <2 x i64> @sqrshl2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshl.2d v0, v0, v1 +; CHECK-NEXT: sqrshl v0.2d, v0.2d, v1.2d ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp2 = load <2 x i64>, ptr %B @@ -803,10 +905,10 @@ define i64 @sqrshl_scalar(ptr %A, ptr %B) nounwind { define i64 @sqrshl_scalar_constant(ptr %A) nounwind { ; CHECK-LABEL: sqrshl_scalar_constant: ; CHECK: // %bb.0: -; CHECK-NEXT: ldr x8, [x0] -; CHECK-NEXT: mov w9, #1 // =0x1 -; CHECK-NEXT: fmov d1, x9 -; CHECK-NEXT: fmov d0, x8 +; CHECK-NEXT: ldr x9, [x0] +; CHECK-NEXT: mov w8, #1 // =0x1 +; CHECK-NEXT: fmov d1, x8 +; CHECK-NEXT: fmov d0, x9 ; CHECK-NEXT: sqrshl d0, d0, d1 ; CHECK-NEXT: fmov x0, d0 ; CHECK-NEXT: ret @@ -820,7 +922,7 @@ define <16 x i8> @uqrshl16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqrshl.16b v0, v0, v1 +; CHECK-NEXT: uqrshl v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = load <16 x i8>, ptr %B @@ -833,7 +935,7 @@ define <8 x i16> @uqrshl8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqrshl.8h v0, v0, v1 +; CHECK-NEXT: uqrshl v0.8h, v0.8h, v1.8h ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp2 = load <8 x i16>, ptr %B @@ -846,7 +948,7 @@ define <4 x i32> @uqrshl4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqrshl.4s v0, v0, v1 +; CHECK-NEXT: uqrshl v0.4s, v0.4s, v1.4s ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp2 = load <4 x i32>, ptr %B @@ -859,7 +961,7 @@ define <2 x i64> @uqrshl2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqrshl.2d v0, v0, v1 +; CHECK-NEXT: uqrshl v0.2d, v0.2d, v1.2d ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp2 = load <2 x i64>, ptr %B @@ -912,10 +1014,10 @@ define i64 @uqrshl_scalar(ptr %A, ptr %B) nounwind { define i64 @uqrshl_scalar_constant(ptr %A) nounwind { ; CHECK-LABEL: uqrshl_scalar_constant: ; CHECK: // %bb.0: -; CHECK-NEXT: ldr x8, [x0] -; CHECK-NEXT: mov w9, #1 // =0x1 -; CHECK-NEXT: fmov d1, x9 -; CHECK-NEXT: fmov d0, x8 +; CHECK-NEXT: ldr x9, [x0] +; CHECK-NEXT: mov w8, #1 // =0x1 +; CHECK-NEXT: fmov d1, x8 +; CHECK-NEXT: fmov d0, x9 ; CHECK-NEXT: uqrshl d0, d0, d1 ; CHECK-NEXT: fmov x0, d0 ; CHECK-NEXT: ret @@ -947,77 +1049,126 @@ declare <4 x i32> @llvm.aarch64.neon.uqrshl.v4i32(<4 x i32>, <4 x i32>) nounwind declare <2 x i64> @llvm.aarch64.neon.uqrshl.v2i64(<2 x i64>, <2 x i64>) nounwind readnone define <8 x i8> @urshr8b(ptr %A) nounwind { -; CHECK-LABEL: urshr8b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: urshr.8b v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: urshr8b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: urshr v0.8b, v0.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: urshr8b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: urshl v0.8b, v1.8b, v0.8b +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.urshl.v8i8(<8 x i8> %tmp1, <8 x i8> ) ret <8 x i8> %tmp3 } define <4 x i16> @urshr4h(ptr %A) nounwind { -; CHECK-LABEL: urshr4h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: urshr.4h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: urshr4h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: urshr v0.4h, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: urshr4h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: urshl v0.4h, v1.4h, v0.4h +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.urshl.v4i16(<4 x i16> %tmp1, <4 x i16> ) ret <4 x i16> %tmp3 } define <2 x i32> @urshr2s(ptr %A) nounwind { -; CHECK-LABEL: urshr2s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: urshr.2s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: urshr2s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: urshr v0.2s, v0.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: urshr2s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: urshl v0.2s, v1.2s, v0.2s +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.urshl.v2i32(<2 x i32> %tmp1, <2 x i32> ) ret <2 x i32> %tmp3 } define <16 x i8> @urshr16b(ptr %A) nounwind { -; CHECK-LABEL: urshr16b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: urshr.16b v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: urshr16b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: urshr v0.16b, v0.16b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: urshr16b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: urshl v0.16b, v1.16b, v0.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp3 = call <16 x i8> @llvm.aarch64.neon.urshl.v16i8(<16 x i8> %tmp1, <16 x i8> ) ret <16 x i8> %tmp3 } define <8 x i16> @urshr8h(ptr %A) nounwind { -; CHECK-LABEL: urshr8h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: urshr.8h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: urshr8h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: urshr v0.8h, v0.8h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: urshr8h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: urshl v0.8h, v1.8h, v0.8h +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i16> @llvm.aarch64.neon.urshl.v8i16(<8 x i16> %tmp1, <8 x i16> ) ret <8 x i16> %tmp3 } define <4 x i32> @urshr4s(ptr %A) nounwind { -; CHECK-LABEL: urshr4s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: urshr.4s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: urshr4s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: urshr v0.4s, v0.4s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: urshr4s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: urshl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i32> @llvm.aarch64.neon.urshl.v4i32(<4 x i32> %tmp1, <4 x i32> ) ret <4 x i32> %tmp3 } define <2 x i64> @urshr2d(ptr %A) nounwind { -; CHECK-LABEL: urshr2d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: urshr.2d v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: urshr2d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: urshr v0.2d, v0.2d, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: urshr2d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: urshl v0.2d, v1.2d, v0.2d +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i64> @llvm.aarch64.neon.urshl.v2i64(<2 x i64> %tmp1, <2 x i64> ) ret <2 x i64> %tmp3 @@ -1047,77 +1198,126 @@ define i64 @urshr_scalar(ptr %A) nounwind { } define <8 x i8> @srshr8b(ptr %A) nounwind { -; CHECK-LABEL: srshr8b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: srshr.8b v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srshr8b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: srshr v0.8b, v0.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srshr8b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: srshl v0.8b, v1.8b, v0.8b +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.srshl.v8i8(<8 x i8> %tmp1, <8 x i8> ) ret <8 x i8> %tmp3 } define <4 x i16> @srshr4h(ptr %A) nounwind { -; CHECK-LABEL: srshr4h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: srshr.4h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srshr4h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: srshr v0.4h, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srshr4h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: srshl v0.4h, v1.4h, v0.4h +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.srshl.v4i16(<4 x i16> %tmp1, <4 x i16> ) ret <4 x i16> %tmp3 } define <2 x i32> @srshr2s(ptr %A) nounwind { -; CHECK-LABEL: srshr2s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: srshr.2s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srshr2s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: srshr v0.2s, v0.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srshr2s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: srshl v0.2s, v1.2s, v0.2s +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.srshl.v2i32(<2 x i32> %tmp1, <2 x i32> ) ret <2 x i32> %tmp3 } define <16 x i8> @srshr16b(ptr %A) nounwind { -; CHECK-LABEL: srshr16b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: srshr.16b v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srshr16b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: srshr v0.16b, v0.16b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srshr16b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: srshl v0.16b, v1.16b, v0.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp3 = call <16 x i8> @llvm.aarch64.neon.srshl.v16i8(<16 x i8> %tmp1, <16 x i8> ) ret <16 x i8> %tmp3 } define <8 x i16> @srshr8h(ptr %A) nounwind { -; CHECK-LABEL: srshr8h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: srshr.8h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srshr8h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: srshr v0.8h, v0.8h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srshr8h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: srshl v0.8h, v1.8h, v0.8h +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i16> @llvm.aarch64.neon.srshl.v8i16(<8 x i16> %tmp1, <8 x i16> ) ret <8 x i16> %tmp3 } define <4 x i32> @srshr4s(ptr %A) nounwind { -; CHECK-LABEL: srshr4s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: srshr.4s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srshr4s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: srshr v0.4s, v0.4s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srshr4s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: srshl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i32> @llvm.aarch64.neon.srshl.v4i32(<4 x i32> %tmp1, <4 x i32> ) ret <4 x i32> %tmp3 } define <2 x i64> @srshr2d(ptr %A) nounwind { -; CHECK-LABEL: srshr2d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: srshr.2d v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srshr2d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: srshr v0.2d, v0.2d, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srshr2d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: srshl v0.2d, v1.2d, v0.2d +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i64> @llvm.aarch64.neon.srshl.v2i64(<2 x i64> %tmp1, <2 x i64> ) ret <2 x i64> %tmp3 @@ -1150,7 +1350,7 @@ define <8 x i8> @sqshlu8b(ptr %A) nounwind { ; CHECK-LABEL: sqshlu8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sqshlu.8b v0, v0, #1 +; CHECK-NEXT: sqshlu v0.8b, v0.8b, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.sqshlu.v8i8(<8 x i8> %tmp1, <8 x i8> ) @@ -1161,7 +1361,7 @@ define <4 x i16> @sqshlu4h(ptr %A) nounwind { ; CHECK-LABEL: sqshlu4h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sqshlu.4h v0, v0, #1 +; CHECK-NEXT: sqshlu v0.4h, v0.4h, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.sqshlu.v4i16(<4 x i16> %tmp1, <4 x i16> ) @@ -1172,7 +1372,7 @@ define <2 x i32> @sqshlu2s(ptr %A) nounwind { ; CHECK-LABEL: sqshlu2s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sqshlu.2s v0, v0, #1 +; CHECK-NEXT: sqshlu v0.2s, v0.2s, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.sqshlu.v2i32(<2 x i32> %tmp1, <2 x i32> ) @@ -1183,7 +1383,7 @@ define <16 x i8> @sqshlu16b(ptr %A) nounwind { ; CHECK-LABEL: sqshlu16b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshlu.16b v0, v0, #1 +; CHECK-NEXT: sqshlu v0.16b, v0.16b, #1 ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp3 = call <16 x i8> @llvm.aarch64.neon.sqshlu.v16i8(<16 x i8> %tmp1, <16 x i8> ) @@ -1194,7 +1394,7 @@ define <8 x i16> @sqshlu8h(ptr %A) nounwind { ; CHECK-LABEL: sqshlu8h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshlu.8h v0, v0, #1 +; CHECK-NEXT: sqshlu v0.8h, v0.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i16> @llvm.aarch64.neon.sqshlu.v8i16(<8 x i16> %tmp1, <8 x i16> ) @@ -1205,7 +1405,7 @@ define <4 x i32> @sqshlu4s(ptr %A) nounwind { ; CHECK-LABEL: sqshlu4s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshlu.4s v0, v0, #1 +; CHECK-NEXT: sqshlu v0.4s, v0.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i32> @llvm.aarch64.neon.sqshlu.v4i32(<4 x i32> %tmp1, <4 x i32> ) @@ -1216,7 +1416,7 @@ define <2 x i64> @sqshlu2d(ptr %A) nounwind { ; CHECK-LABEL: sqshlu2d: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshlu.2d v0, v0, #1 +; CHECK-NEXT: sqshlu v0.2d, v0.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i64> @llvm.aarch64.neon.sqshlu.v2i64(<2 x i64> %tmp1, <2 x i64> ) @@ -1275,7 +1475,7 @@ define <8 x i8> @rshrn8b(ptr %A) nounwind { ; CHECK-LABEL: rshrn8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: rshrn.8b v0, v0, #1 +; CHECK-NEXT: rshrn v0.8b, v0.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.rshrn.v8i8(<8 x i16> %tmp1, i32 1) @@ -1286,7 +1486,7 @@ define <4 x i16> @rshrn4h(ptr %A) nounwind { ; CHECK-LABEL: rshrn4h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: rshrn.4h v0, v0, #1 +; CHECK-NEXT: rshrn v0.4h, v0.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.rshrn.v4i16(<4 x i32> %tmp1, i32 1) @@ -1297,7 +1497,7 @@ define <2 x i32> @rshrn2s(ptr %A) nounwind { ; CHECK-LABEL: rshrn2s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: rshrn.2s v0, v0, #1 +; CHECK-NEXT: rshrn v0.2s, v0.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.rshrn.v2i32(<2 x i64> %tmp1, i32 1) @@ -1309,7 +1509,7 @@ define <16 x i8> @rshrn16b(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: rshrn2.16b v0, v1, #1 +; CHECK-NEXT: rshrn2 v0.16b, v1.8h, #1 ; CHECK-NEXT: ret %out = load <8 x i8>, ptr %ret %tmp1 = load <8 x i16>, ptr %A @@ -1323,7 +1523,7 @@ define <8 x i16> @rshrn8h(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: rshrn2.8h v0, v1, #1 +; CHECK-NEXT: rshrn2 v0.8h, v1.4s, #1 ; CHECK-NEXT: ret %out = load <4 x i16>, ptr %ret %tmp1 = load <4 x i32>, ptr %A @@ -1337,7 +1537,7 @@ define <4 x i32> @rshrn4s(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: rshrn2.4s v0, v1, #1 +; CHECK-NEXT: rshrn2 v0.4s, v1.2d, #1 ; CHECK-NEXT: ret %out = load <2 x i32>, ptr %ret %tmp1 = load <2 x i64>, ptr %A @@ -1354,7 +1554,7 @@ define <8 x i8> @shrn8b(ptr %A) nounwind { ; CHECK-LABEL: shrn8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: shrn.8b v0, v0, #1 +; CHECK-NEXT: shrn v0.8b, v0.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp2 = lshr <8 x i16> %tmp1, @@ -1366,7 +1566,7 @@ define <4 x i16> @shrn4h(ptr %A) nounwind { ; CHECK-LABEL: shrn4h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: shrn.4h v0, v0, #1 +; CHECK-NEXT: shrn v0.4h, v0.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp2 = lshr <4 x i32> %tmp1, @@ -1378,7 +1578,7 @@ define <2 x i32> @shrn2s(ptr %A) nounwind { ; CHECK-LABEL: shrn2s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: shrn.2s v0, v0, #1 +; CHECK-NEXT: shrn v0.2s, v0.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp2 = lshr <2 x i64> %tmp1, @@ -1391,7 +1591,7 @@ define <16 x i8> @shrn16b(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: shrn2.16b v0, v1, #1 +; CHECK-NEXT: shrn2 v0.16b, v1.8h, #1 ; CHECK-NEXT: ret %out = load <8 x i8>, ptr %ret %tmp1 = load <8 x i16>, ptr %A @@ -1406,7 +1606,7 @@ define <8 x i16> @shrn8h(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: shrn2.8h v0, v1, #1 +; CHECK-NEXT: shrn2 v0.8h, v1.4s, #1 ; CHECK-NEXT: ret %out = load <4 x i16>, ptr %ret %tmp1 = load <4 x i32>, ptr %A @@ -1421,7 +1621,7 @@ define <4 x i32> @shrn4s(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: shrn2.4s v0, v1, #1 +; CHECK-NEXT: shrn2 v0.4s, v1.2d, #1 ; CHECK-NEXT: ret %out = load <2 x i32>, ptr %ret %tmp1 = load <2 x i64>, ptr %A @@ -1450,7 +1650,7 @@ define <8 x i8> @sqshrn8b(ptr %A) nounwind { ; CHECK-LABEL: sqshrn8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshrn.8b v0, v0, #1 +; CHECK-NEXT: sqshrn v0.8b, v0.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.sqshrn.v8i8(<8 x i16> %tmp1, i32 1) @@ -1461,7 +1661,7 @@ define <4 x i16> @sqshrn4h(ptr %A) nounwind { ; CHECK-LABEL: sqshrn4h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshrn.4h v0, v0, #1 +; CHECK-NEXT: sqshrn v0.4h, v0.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.sqshrn.v4i16(<4 x i32> %tmp1, i32 1) @@ -1472,7 +1672,7 @@ define <2 x i32> @sqshrn2s(ptr %A) nounwind { ; CHECK-LABEL: sqshrn2s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshrn.2s v0, v0, #1 +; CHECK-NEXT: sqshrn v0.2s, v0.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.sqshrn.v2i32(<2 x i64> %tmp1, i32 1) @@ -1485,7 +1685,7 @@ define <16 x i8> @sqshrn16b(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshrn2.16b v0, v1, #1 +; CHECK-NEXT: sqshrn2 v0.16b, v1.8h, #1 ; CHECK-NEXT: ret %out = load <8 x i8>, ptr %ret %tmp1 = load <8 x i16>, ptr %A @@ -1499,7 +1699,7 @@ define <8 x i16> @sqshrn8h(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshrn2.8h v0, v1, #1 +; CHECK-NEXT: sqshrn2 v0.8h, v1.4s, #1 ; CHECK-NEXT: ret %out = load <4 x i16>, ptr %ret %tmp1 = load <4 x i32>, ptr %A @@ -1513,7 +1713,7 @@ define <4 x i32> @sqshrn4s(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshrn2.4s v0, v1, #1 +; CHECK-NEXT: sqshrn2 v0.4s, v1.2d, #1 ; CHECK-NEXT: ret %out = load <2 x i32>, ptr %ret %tmp1 = load <2 x i64>, ptr %A @@ -1542,7 +1742,7 @@ define <8 x i8> @sqshrun8b(ptr %A) nounwind { ; CHECK-LABEL: sqshrun8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshrun.8b v0, v0, #1 +; CHECK-NEXT: sqshrun v0.8b, v0.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.sqshrun.v8i8(<8 x i16> %tmp1, i32 1) @@ -1553,7 +1753,7 @@ define <4 x i16> @sqshrun4h(ptr %A) nounwind { ; CHECK-LABEL: sqshrun4h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshrun.4h v0, v0, #1 +; CHECK-NEXT: sqshrun v0.4h, v0.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.sqshrun.v4i16(<4 x i32> %tmp1, i32 1) @@ -1564,7 +1764,7 @@ define <2 x i32> @sqshrun2s(ptr %A) nounwind { ; CHECK-LABEL: sqshrun2s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshrun.2s v0, v0, #1 +; CHECK-NEXT: sqshrun v0.2s, v0.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.sqshrun.v2i32(<2 x i64> %tmp1, i32 1) @@ -1576,7 +1776,7 @@ define <16 x i8> @sqshrun16b(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshrun2.16b v0, v1, #1 +; CHECK-NEXT: sqshrun2 v0.16b, v1.8h, #1 ; CHECK-NEXT: ret %out = load <8 x i8>, ptr %ret %tmp1 = load <8 x i16>, ptr %A @@ -1590,7 +1790,7 @@ define <8 x i16> @sqshrun8h(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshrun2.8h v0, v1, #1 +; CHECK-NEXT: sqshrun2 v0.8h, v1.4s, #1 ; CHECK-NEXT: ret %out = load <4 x i16>, ptr %ret %tmp1 = load <4 x i32>, ptr %A @@ -1604,7 +1804,7 @@ define <4 x i32> @sqshrun4s(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqshrun2.4s v0, v1, #1 +; CHECK-NEXT: sqshrun2 v0.4s, v1.2d, #1 ; CHECK-NEXT: ret %out = load <2 x i32>, ptr %ret %tmp1 = load <2 x i64>, ptr %A @@ -1633,7 +1833,7 @@ define <8 x i8> @sqrshrn8b(ptr %A) nounwind { ; CHECK-LABEL: sqrshrn8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqrshrn.8b v0, v0, #1 +; CHECK-NEXT: sqrshrn v0.8b, v0.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.sqrshrn.v8i8(<8 x i16> %tmp1, i32 1) @@ -1644,7 +1844,7 @@ define <4 x i16> @sqrshrn4h(ptr %A) nounwind { ; CHECK-LABEL: sqrshrn4h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqrshrn.4h v0, v0, #1 +; CHECK-NEXT: sqrshrn v0.4h, v0.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.sqrshrn.v4i16(<4 x i32> %tmp1, i32 1) @@ -1655,7 +1855,7 @@ define <2 x i32> @sqrshrn2s(ptr %A) nounwind { ; CHECK-LABEL: sqrshrn2s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqrshrn.2s v0, v0, #1 +; CHECK-NEXT: sqrshrn v0.2s, v0.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.sqrshrn.v2i32(<2 x i64> %tmp1, i32 1) @@ -1667,7 +1867,7 @@ define <16 x i8> @sqrshrn16b(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshrn2.16b v0, v1, #1 +; CHECK-NEXT: sqrshrn2 v0.16b, v1.8h, #1 ; CHECK-NEXT: ret %out = load <8 x i8>, ptr %ret %tmp1 = load <8 x i16>, ptr %A @@ -1681,7 +1881,7 @@ define <8 x i16> @sqrshrn8h(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshrn2.8h v0, v1, #1 +; CHECK-NEXT: sqrshrn2 v0.8h, v1.4s, #1 ; CHECK-NEXT: ret %out = load <4 x i16>, ptr %ret %tmp1 = load <4 x i32>, ptr %A @@ -1695,7 +1895,7 @@ define <4 x i32> @sqrshrn4s(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshrn2.4s v0, v1, #1 +; CHECK-NEXT: sqrshrn2 v0.4s, v1.2d, #1 ; CHECK-NEXT: ret %out = load <2 x i32>, ptr %ret %tmp1 = load <2 x i64>, ptr %A @@ -1724,7 +1924,7 @@ define <8 x i8> @sqrshrun8b(ptr %A) nounwind { ; CHECK-LABEL: sqrshrun8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqrshrun.8b v0, v0, #1 +; CHECK-NEXT: sqrshrun v0.8b, v0.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.sqrshrun.v8i8(<8 x i16> %tmp1, i32 1) @@ -1735,7 +1935,7 @@ define <4 x i16> @sqrshrun4h(ptr %A) nounwind { ; CHECK-LABEL: sqrshrun4h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqrshrun.4h v0, v0, #1 +; CHECK-NEXT: sqrshrun v0.4h, v0.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.sqrshrun.v4i16(<4 x i32> %tmp1, i32 1) @@ -1746,7 +1946,7 @@ define <2 x i32> @sqrshrun2s(ptr %A) nounwind { ; CHECK-LABEL: sqrshrun2s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqrshrun.2s v0, v0, #1 +; CHECK-NEXT: sqrshrun v0.2s, v0.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.sqrshrun.v2i32(<2 x i64> %tmp1, i32 1) @@ -1758,7 +1958,7 @@ define <16 x i8> @sqrshrun16b(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshrun2.16b v0, v1, #1 +; CHECK-NEXT: sqrshrun2 v0.16b, v1.8h, #1 ; CHECK-NEXT: ret %out = load <8 x i8>, ptr %ret %tmp1 = load <8 x i16>, ptr %A @@ -1772,7 +1972,7 @@ define <8 x i16> @sqrshrun8h(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshrun2.8h v0, v1, #1 +; CHECK-NEXT: sqrshrun2 v0.8h, v1.4s, #1 ; CHECK-NEXT: ret %out = load <4 x i16>, ptr %ret %tmp1 = load <4 x i32>, ptr %A @@ -1786,7 +1986,7 @@ define <4 x i32> @sqrshrun4s(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sqrshrun2.4s v0, v1, #1 +; CHECK-NEXT: sqrshrun2 v0.4s, v1.2d, #1 ; CHECK-NEXT: ret %out = load <2 x i32>, ptr %ret %tmp1 = load <2 x i64>, ptr %A @@ -1815,7 +2015,7 @@ define <8 x i8> @uqrshrn8b(ptr %A) nounwind { ; CHECK-LABEL: uqrshrn8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqrshrn.8b v0, v0, #1 +; CHECK-NEXT: uqrshrn v0.8b, v0.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.uqrshrn.v8i8(<8 x i16> %tmp1, i32 1) @@ -1826,7 +2026,7 @@ define <4 x i16> @uqrshrn4h(ptr %A) nounwind { ; CHECK-LABEL: uqrshrn4h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqrshrn.4h v0, v0, #1 +; CHECK-NEXT: uqrshrn v0.4h, v0.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.uqrshrn.v4i16(<4 x i32> %tmp1, i32 1) @@ -1837,7 +2037,7 @@ define <2 x i32> @uqrshrn2s(ptr %A) nounwind { ; CHECK-LABEL: uqrshrn2s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqrshrn.2s v0, v0, #1 +; CHECK-NEXT: uqrshrn v0.2s, v0.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.uqrshrn.v2i32(<2 x i64> %tmp1, i32 1) @@ -1849,7 +2049,7 @@ define <16 x i8> @uqrshrn16b(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqrshrn2.16b v0, v1, #1 +; CHECK-NEXT: uqrshrn2 v0.16b, v1.8h, #1 ; CHECK-NEXT: ret %out = load <8 x i8>, ptr %ret %tmp1 = load <8 x i16>, ptr %A @@ -1863,7 +2063,7 @@ define <8 x i16> @uqrshrn8h(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqrshrn2.8h v0, v1, #1 +; CHECK-NEXT: uqrshrn2 v0.8h, v1.4s, #1 ; CHECK-NEXT: ret %out = load <4 x i16>, ptr %ret %tmp1 = load <4 x i32>, ptr %A @@ -1877,7 +2077,7 @@ define <4 x i32> @uqrshrn4s(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqrshrn2.4s v0, v1, #1 +; CHECK-NEXT: uqrshrn2 v0.4s, v1.2d, #1 ; CHECK-NEXT: ret %out = load <2 x i32>, ptr %ret %tmp1 = load <2 x i64>, ptr %A @@ -1906,7 +2106,7 @@ define <8 x i8> @uqshrn8b(ptr %A) nounwind { ; CHECK-LABEL: uqshrn8b: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqshrn.8b v0, v0, #1 +; CHECK-NEXT: uqshrn v0.8b, v0.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.uqshrn.v8i8(<8 x i16> %tmp1, i32 1) @@ -1917,7 +2117,7 @@ define <4 x i16> @uqshrn4h(ptr %A) nounwind { ; CHECK-LABEL: uqshrn4h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqshrn.4h v0, v0, #1 +; CHECK-NEXT: uqshrn v0.4h, v0.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.uqshrn.v4i16(<4 x i32> %tmp1, i32 1) @@ -1928,7 +2128,7 @@ define <2 x i32> @uqshrn2s(ptr %A) nounwind { ; CHECK-LABEL: uqshrn2s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqshrn.2s v0, v0, #1 +; CHECK-NEXT: uqshrn v0.2s, v0.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.uqshrn.v2i32(<2 x i64> %tmp1, i32 1) @@ -1940,7 +2140,7 @@ define <16 x i8> @uqshrn16b(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqshrn2.16b v0, v1, #1 +; CHECK-NEXT: uqshrn2 v0.16b, v1.8h, #1 ; CHECK-NEXT: ret %out = load <8 x i8>, ptr %ret %tmp1 = load <8 x i16>, ptr %A @@ -1954,7 +2154,7 @@ define <8 x i16> @uqshrn8h(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqshrn2.8h v0, v1, #1 +; CHECK-NEXT: uqshrn2 v0.8h, v1.4s, #1 ; CHECK-NEXT: ret %out = load <4 x i16>, ptr %ret %tmp1 = load <4 x i32>, ptr %A @@ -1968,7 +2168,7 @@ define <4 x i32> @uqshrn4s(ptr %ret, ptr %A) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: uqshrn2.4s v0, v1, #1 +; CHECK-NEXT: uqshrn2 v0.4s, v1.2d, #1 ; CHECK-NEXT: ret %out = load <2 x i32>, ptr %ret %tmp1 = load <2 x i64>, ptr %A @@ -1986,7 +2186,7 @@ define <8 x i16> @ushll8h(ptr %A) nounwind { ; CHECK-LABEL: ushll8h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ushll.8h v0, v0, #1 +; CHECK-NEXT: ushll v0.8h, v0.8b, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = zext <8 x i8> %tmp1 to <8 x i16> @@ -1998,7 +2198,7 @@ define <4 x i32> @ushll4s(ptr %A) nounwind { ; CHECK-LABEL: ushll4s: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ushll.4s v0, v0, #1 +; CHECK-NEXT: ushll v0.4s, v0.4h, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = zext <4 x i16> %tmp1 to <4 x i32> @@ -2010,7 +2210,7 @@ define <2 x i64> @ushll2d(ptr %A) nounwind { ; CHECK-LABEL: ushll2d: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ushll.2d v0, v0, #1 +; CHECK-NEXT: ushll v0.2d, v0.2s, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = zext <2 x i32> %tmp1 to <2 x i64> @@ -2019,11 +2219,18 @@ define <2 x i64> @ushll2d(ptr %A) nounwind { } define <8 x i16> @ushll2_8h(ptr %A) nounwind { -; CHECK-LABEL: ushll2_8h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0, #8] -; CHECK-NEXT: ushll.8h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ushll2_8h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0, #8] +; CHECK-SD-NEXT: ushll v0.8h, v0.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ushll2_8h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: mov d0, v0.d[1] +; CHECK-GI-NEXT: ushll v0.8h, v0.8b, #1 +; CHECK-GI-NEXT: ret %load1 = load <16 x i8>, ptr %A %tmp1 = shufflevector <16 x i8> %load1, <16 x i8> undef, <8 x i32> %tmp2 = zext <8 x i8> %tmp1 to <8 x i16> @@ -2032,11 +2239,18 @@ define <8 x i16> @ushll2_8h(ptr %A) nounwind { } define <4 x i32> @ushll2_4s(ptr %A) nounwind { -; CHECK-LABEL: ushll2_4s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0, #8] -; CHECK-NEXT: ushll.4s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ushll2_4s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0, #8] +; CHECK-SD-NEXT: ushll v0.4s, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ushll2_4s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: mov d0, v0.d[1] +; CHECK-GI-NEXT: ushll v0.4s, v0.4h, #1 +; CHECK-GI-NEXT: ret %load1 = load <8 x i16>, ptr %A %tmp1 = shufflevector <8 x i16> %load1, <8 x i16> undef, <4 x i32> %tmp2 = zext <4 x i16> %tmp1 to <4 x i32> @@ -2045,11 +2259,18 @@ define <4 x i32> @ushll2_4s(ptr %A) nounwind { } define <2 x i64> @ushll2_2d(ptr %A) nounwind { -; CHECK-LABEL: ushll2_2d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0, #8] -; CHECK-NEXT: ushll.2d v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ushll2_2d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0, #8] +; CHECK-SD-NEXT: ushll v0.2d, v0.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ushll2_2d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: mov d0, v0.d[1] +; CHECK-GI-NEXT: ushll v0.2d, v0.2s, #1 +; CHECK-GI-NEXT: ret %load1 = load <4 x i32>, ptr %A %tmp1 = shufflevector <4 x i32> %load1, <4 x i32> undef, <2 x i32> %tmp2 = zext <2 x i32> %tmp1 to <2 x i64> @@ -2064,24 +2285,32 @@ declare <2 x i64> @llvm.aarch64.neon.ushl.v2i64(<2 x i64>, <2 x i64>) declare <1 x i64> @llvm.aarch64.neon.ushl.v1i64(<1 x i64>, <1 x i64>) declare i64 @llvm.aarch64.neon.ushl.i64(i64, i64) -define <8 x i16> @neon.ushll8h_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.ushll8h_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ushll.8h v0, v0, #1 -; CHECK-NEXT: ret +define <8 x i16> @neon_ushll8h_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_ushll8h_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: ushll v0.8h, v0.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_ushll8h_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: movi v1.8h, #1 +; CHECK-GI-NEXT: ushll v0.8h, v0.8b, #0 +; CHECK-GI-NEXT: ushl v0.8h, v0.8h, v1.8h +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = zext <8 x i8> %tmp1 to <8 x i16> %tmp3 = call <8 x i16> @llvm.aarch64.neon.ushl.v8i16(<8 x i16> %tmp2, <8 x i16> ) ret <8 x i16> %tmp3 } -define <8 x i16> @neon.ushl8h_no_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.ushl8h_no_constant_shift: +define <8 x i16> @neon_ushl8h_no_constant_shift(ptr %A) nounwind { +; CHECK-LABEL: neon_ushl8h_no_constant_shift: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ushll.8h v0, v0, #0 -; CHECK-NEXT: ushl.8h v0, v0, v0 +; CHECK-NEXT: ushll v0.8h, v0.8b, #0 +; CHECK-NEXT: ushl v0.8h, v0.8h, v0.8h ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = zext <8 x i8> %tmp1 to <8 x i16> @@ -2089,36 +2318,76 @@ define <8 x i16> @neon.ushl8h_no_constant_shift(ptr %A) nounwind { ret <8 x i16> %tmp3 } -define <4 x i32> @neon.ushl8h_constant_shift_extend_not_2x(ptr %A) nounwind { -; CHECK-LABEL: neon.ushl8h_constant_shift_extend_not_2x: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr s0, [x0] -; CHECK-NEXT: ushll.8h v0, v0, #0 -; CHECK-NEXT: ushll.4s v0, v0, #1 -; CHECK-NEXT: ret +define <4 x i32> @neon_ushl8h_constant_shift_extend_not_2x(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_ushl8h_constant_shift_extend_not_2x: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr s0, [x0] +; CHECK-SD-NEXT: ushll v0.8h, v0.8b, #0 +; CHECK-SD-NEXT: ushll v0.4s, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_ushl8h_constant_shift_extend_not_2x: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr w8, [x0] +; CHECK-GI-NEXT: movi v0.4s, #1 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: uxtb w8, w8 +; CHECK-GI-NEXT: mov b2, v1.b[2] +; CHECK-GI-NEXT: mov b3, v1.b[1] +; CHECK-GI-NEXT: mov b4, v1.b[3] +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmov w9, s2 +; CHECK-GI-NEXT: fmov w10, s3 +; CHECK-GI-NEXT: fmov w11, s4 +; CHECK-GI-NEXT: uxtb w9, w9 +; CHECK-GI-NEXT: uxtb w10, w10 +; CHECK-GI-NEXT: uxtb w11, w11 +; CHECK-GI-NEXT: fmov s2, w9 +; CHECK-GI-NEXT: mov v1.h[1], w10 +; CHECK-GI-NEXT: mov v2.h[1], w11 +; CHECK-GI-NEXT: ushll v1.4s, v1.4h, #0 +; CHECK-GI-NEXT: ushll v2.4s, v2.4h, #0 +; CHECK-GI-NEXT: mov v1.d[1], v2.d[0] +; CHECK-GI-NEXT: ushl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i8>, ptr %A %tmp2 = zext <4 x i8> %tmp1 to <4 x i32> %tmp3 = call <4 x i32> @llvm.aarch64.neon.ushl.v4i32(<4 x i32> %tmp2, <4 x i32> ) ret <4 x i32> %tmp3 } -define <8 x i16> @neon.ushl8_noext_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.ushl8_noext_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: add.8h v0, v0, v0 -; CHECK-NEXT: ret +define <8 x i16> @neon_ushl8_noext_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_ushl8_noext_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: add v0.8h, v0.8h, v0.8h +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_ushl8_noext_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.8h, #1 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: ushl v0.8h, v1.8h, v0.8h +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i16> @llvm.aarch64.neon.ushl.v8i16(<8 x i16> %tmp1, <8 x i16> ) ret <8 x i16> %tmp3 } -define <4 x i32> @neon.ushll4s_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.ushll4s_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ushll.4s v0, v0, #1 -; CHECK-NEXT: ret +define <4 x i32> @neon_ushll4s_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_ushll4s_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: ushll v0.4s, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_ushll4s_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: movi v1.4s, #1 +; CHECK-GI-NEXT: ushll v0.4s, v0.4h, #0 +; CHECK-GI-NEXT: ushl v0.4s, v0.4s, v1.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = zext <4 x i16> %tmp1 to <4 x i32> %tmp3 = call <4 x i32> @llvm.aarch64.neon.ushl.v4i32(<4 x i32> %tmp2, <4 x i32> ) @@ -2126,13 +2395,21 @@ define <4 x i32> @neon.ushll4s_constant_shift(ptr %A) nounwind { } ; FIXME: unnecessary ushll.4s v0, v0, #0? -define <4 x i32> @neon.ushll4s_neg_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.ushll4s_neg_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ushll.4s v0, v0, #0 -; CHECK-NEXT: ushr.4s v0, v0, #1 -; CHECK-NEXT: ret +define <4 x i32> @neon_ushll4s_neg_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_ushll4s_neg_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: ushll v0.4s, v0.4h, #0 +; CHECK-SD-NEXT: ushr v0.4s, v0.4s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_ushll4s_neg_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: movi v1.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ushll v0.4s, v0.4h, #0 +; CHECK-GI-NEXT: ushl v0.4s, v0.4s, v1.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = zext <4 x i16> %tmp1 to <4 x i32> %tmp3 = call <4 x i32> @llvm.aarch64.neon.ushl.v4i32(<4 x i32> %tmp2, <4 x i32> ) @@ -2140,35 +2417,52 @@ define <4 x i32> @neon.ushll4s_neg_constant_shift(ptr %A) nounwind { } ; FIXME: should be constant folded. -define <4 x i32> @neon.ushll4s_constant_fold() nounwind { -; CHECK-LABEL: neon.ushll4s_constant_fold: -; CHECK: // %bb.0: -; CHECK-NEXT: adrp x8, .LCPI160_0 -; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI160_0] -; CHECK-NEXT: add.4s v0, v0, v0 -; CHECK-NEXT: ret +define <4 x i32> @neon_ushll4s_constant_fold() nounwind { +; CHECK-SD-LABEL: neon_ushll4s_constant_fold: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: adrp x8, .LCPI160_0 +; CHECK-SD-NEXT: ldr q0, [x8, :lo12:.LCPI160_0] +; CHECK-SD-NEXT: add v0.4s, v0.4s, v0.4s +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_ushll4s_constant_fold: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.4s, #1 +; CHECK-GI-NEXT: adrp x8, .LCPI160_0 +; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI160_0] +; CHECK-GI-NEXT: ushl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ret %tmp3 = call <4 x i32> @llvm.aarch64.neon.ushl.v4i32(<4 x i32> , <4 x i32> ) ret <4 x i32> %tmp3 } -define <2 x i64> @neon.ushll2d_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.ushll2d_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ushll.2d v0, v0, #1 -; CHECK-NEXT: ret +define <2 x i64> @neon_ushll2d_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_ushll2d_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: ushll v0.2d, v0.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_ushll2d_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: adrp x8, .LCPI161_0 +; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI161_0] +; CHECK-GI-NEXT: ushll v0.2d, v0.2s, #0 +; CHECK-GI-NEXT: ushl v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = zext <2 x i32> %tmp1 to <2 x i64> %tmp3 = call <2 x i64> @llvm.aarch64.neon.ushl.v2i64(<2 x i64> %tmp2, <2 x i64> ) ret <2 x i64> %tmp3 } -define <1 x i64> @neon.ushl_vscalar_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.ushl_vscalar_constant_shift: +define <1 x i64> @neon_ushl_vscalar_constant_shift(ptr %A) nounwind { +; CHECK-LABEL: neon_ushl_vscalar_constant_shift: ; CHECK: // %bb.0: -; CHECK-NEXT: movi.2d v1, #0000000000000000 -; CHECK-NEXT: ldr s0, [x0] -; CHECK-NEXT: zip1.2s v0, v0, v1 +; CHECK-NEXT: movi v0.2d, #0000000000000000 +; CHECK-NEXT: ldr s1, [x0] +; CHECK-NEXT: zip1 v0.2s, v1.2s, v0.2s ; CHECK-NEXT: shl d0, d0, #1 ; CHECK-NEXT: ret %tmp1 = load <1 x i32>, ptr %A @@ -2177,8 +2471,8 @@ define <1 x i64> @neon.ushl_vscalar_constant_shift(ptr %A) nounwind { ret <1 x i64> %tmp3 } -define i64 @neon.ushl_scalar_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.ushl_scalar_constant_shift: +define i64 @neon_ushl_scalar_constant_shift(ptr %A) nounwind { +; CHECK-LABEL: neon_ushl_scalar_constant_shift: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr w8, [x0] ; CHECK-NEXT: fmov d0, x8 @@ -2195,7 +2489,7 @@ define <8 x i16> @sshll8h(ptr %A) nounwind { ; CHECK-LABEL: sshll8h: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sshll.8h v0, v0, #1 +; CHECK-NEXT: sshll v0.8h, v0.8b, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = sext <8 x i8> %tmp1 to <8 x i16> @@ -2207,7 +2501,7 @@ define <2 x i64> @sshll2d(ptr %A) nounwind { ; CHECK-LABEL: sshll2d: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sshll.2d v0, v0, #1 +; CHECK-NEXT: sshll v0.2d, v0.2s, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = sext <2 x i32> %tmp1 to <2 x i64> @@ -2222,85 +2516,156 @@ declare <2 x i64> @llvm.aarch64.neon.sshl.v2i64(<2 x i64>, <2 x i64>) declare <1 x i64> @llvm.aarch64.neon.sshl.v1i64(<1 x i64>, <1 x i64>) declare i64 @llvm.aarch64.neon.sshl.i64(i64, i64) -define <16 x i8> @neon.sshl16b_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshl16b_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: add.16b v0, v0, v0 -; CHECK-NEXT: ret +define <16 x i8> @neon_sshl16b_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshl16b_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: add v0.16b, v0.16b, v0.16b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshl16b_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.16b, #1 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: sshl v0.16b, v1.16b, v0.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = call <16 x i8> @llvm.aarch64.neon.sshl.v16i8(<16 x i8> %tmp1, <16 x i8> ) ret <16 x i8> %tmp2 } -define <16 x i8> @neon.sshl16b_non_splat_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshl16b_non_splat_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: adrp x8, .LCPI167_0 -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: ldr q1, [x8, :lo12:.LCPI167_0] -; CHECK-NEXT: sshl.16b v0, v0, v1 -; CHECK-NEXT: ret +define <16 x i8> @neon_sshl16b_non_splat_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshl16b_non_splat_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: adrp x8, .LCPI167_0 +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI167_0] +; CHECK-SD-NEXT: sshl v0.16b, v0.16b, v1.16b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshl16b_non_splat_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI167_0 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: ldr q0, [x8, :lo12:.LCPI167_0] +; CHECK-GI-NEXT: sshl v0.16b, v1.16b, v0.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = call <16 x i8> @llvm.aarch64.neon.sshl.v16i8(<16 x i8> %tmp1, <16 x i8> ) ret <16 x i8> %tmp2 } -define <16 x i8> @neon.sshl16b_neg_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshl16b_neg_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sshr.16b v0, v0, #2 -; CHECK-NEXT: ret +define <16 x i8> @neon_sshl16b_neg_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshl16b_neg_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: sshr v0.16b, v0.16b, #2 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshl16b_neg_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.16b, #254 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: sshl v0.16b, v1.16b, v0.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = call <16 x i8> @llvm.aarch64.neon.sshl.v16i8(<16 x i8> %tmp1, <16 x i8> ) ret <16 x i8> %tmp2 } -define <8 x i16> @neon.sshll8h_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshll8h_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sshll.8h v0, v0, #1 -; CHECK-NEXT: ret +define <8 x i16> @neon_sshll8h_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshll8h_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: sshll v0.8h, v0.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshll8h_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: movi v1.8h, #1 +; CHECK-GI-NEXT: sshll v0.8h, v0.8b, #0 +; CHECK-GI-NEXT: sshl v0.8h, v0.8h, v1.8h +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = sext <8 x i8> %tmp1 to <8 x i16> %tmp3 = call <8 x i16> @llvm.aarch64.neon.sshl.v8i16(<8 x i16> %tmp2, <8 x i16> ) ret <8 x i16> %tmp3 } -define <4 x i32> @neon.sshl4s_wrong_ext_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshl4s_wrong_ext_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr s0, [x0] -; CHECK-NEXT: sshll.8h v0, v0, #0 -; CHECK-NEXT: sshll.4s v0, v0, #1 -; CHECK-NEXT: ret +define <4 x i32> @neon_sshl4s_wrong_ext_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshl4s_wrong_ext_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr s0, [x0] +; CHECK-SD-NEXT: sshll v0.8h, v0.8b, #0 +; CHECK-SD-NEXT: sshll v0.4s, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshl4s_wrong_ext_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr w8, [x0] +; CHECK-GI-NEXT: movi v0.4s, #1 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: sxtb w8, w8 +; CHECK-GI-NEXT: mov b2, v1.b[2] +; CHECK-GI-NEXT: mov b3, v1.b[1] +; CHECK-GI-NEXT: mov b4, v1.b[3] +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmov w9, s2 +; CHECK-GI-NEXT: fmov w10, s3 +; CHECK-GI-NEXT: fmov w11, s4 +; CHECK-GI-NEXT: sxtb w9, w9 +; CHECK-GI-NEXT: sxtb w10, w10 +; CHECK-GI-NEXT: sxtb w11, w11 +; CHECK-GI-NEXT: fmov s2, w9 +; CHECK-GI-NEXT: mov v1.h[1], w10 +; CHECK-GI-NEXT: mov v2.h[1], w11 +; CHECK-GI-NEXT: sshll v1.4s, v1.4h, #0 +; CHECK-GI-NEXT: sshll v2.4s, v2.4h, #0 +; CHECK-GI-NEXT: mov v1.d[1], v2.d[0] +; CHECK-GI-NEXT: sshl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i8>, ptr %A %tmp2 = sext <4 x i8> %tmp1 to <4 x i32> %tmp3 = call <4 x i32> @llvm.aarch64.neon.sshl.v4i32(<4 x i32> %tmp2, <4 x i32> ) ret <4 x i32> %tmp3 } -define <4 x i32> @neon.sshll4s_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshll4s_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sshll.4s v0, v0, #1 -; CHECK-NEXT: ret +define <4 x i32> @neon_sshll4s_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshll4s_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: sshll v0.4s, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshll4s_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: movi v1.4s, #1 +; CHECK-GI-NEXT: sshll v0.4s, v0.4h, #0 +; CHECK-GI-NEXT: sshl v0.4s, v0.4s, v1.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = sext <4 x i16> %tmp1 to <4 x i32> %tmp3 = call <4 x i32> @llvm.aarch64.neon.sshl.v4i32(<4 x i32> %tmp2, <4 x i32> ) ret <4 x i32> %tmp3 } -define <4 x i32> @neon.sshll4s_neg_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshll4s_neg_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sshll.4s v0, v0, #0 -; CHECK-NEXT: sshr.4s v0, v0, #1 -; CHECK-NEXT: ret +define <4 x i32> @neon_sshll4s_neg_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshll4s_neg_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: sshll v0.4s, v0.4h, #0 +; CHECK-SD-NEXT: sshr v0.4s, v0.4s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshll4s_neg_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: movi v1.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: sshll v0.4s, v0.4h, #0 +; CHECK-GI-NEXT: sshl v0.4s, v0.4s, v1.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = sext <4 x i16> %tmp1 to <4 x i32> %tmp3 = call <4 x i32> @llvm.aarch64.neon.sshl.v4i32(<4 x i32> %tmp2, <4 x i32> ) @@ -2308,46 +2673,70 @@ define <4 x i32> @neon.sshll4s_neg_constant_shift(ptr %A) nounwind { } ; FIXME: should be constant folded. -define <4 x i32> @neon.sshl4s_constant_fold() nounwind { -; CHECK-LABEL: neon.sshl4s_constant_fold: -; CHECK: // %bb.0: -; CHECK-NEXT: adrp x8, .LCPI173_0 -; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI173_0] -; CHECK-NEXT: shl.4s v0, v0, #2 -; CHECK-NEXT: ret +define <4 x i32> @neon_sshl4s_constant_fold() nounwind { +; CHECK-SD-LABEL: neon_sshl4s_constant_fold: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: adrp x8, .LCPI173_0 +; CHECK-SD-NEXT: ldr q0, [x8, :lo12:.LCPI173_0] +; CHECK-SD-NEXT: shl v0.4s, v0.4s, #2 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshl4s_constant_fold: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.4s, #2 +; CHECK-GI-NEXT: adrp x8, .LCPI173_0 +; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI173_0] +; CHECK-GI-NEXT: sshl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ret %tmp3 = call <4 x i32> @llvm.aarch64.neon.sshl.v4i32(<4 x i32> , <4 x i32> ) ret <4 x i32> %tmp3 } -define <4 x i32> @neon.sshl4s_no_fold(ptr %A) nounwind { -; CHECK-LABEL: neon.sshl4s_no_fold: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: add.4s v0, v0, v0 -; CHECK-NEXT: ret +define <4 x i32> @neon_sshl4s_no_fold(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshl4s_no_fold: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: add v0.4s, v0.4s, v0.4s +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshl4s_no_fold: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.4s, #1 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: sshl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i32> @llvm.aarch64.neon.sshl.v4i32(<4 x i32> %tmp1, <4 x i32> ) ret <4 x i32> %tmp3 } -define <2 x i64> @neon.sshll2d_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshll2d_constant_shift: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sshll.2d v0, v0, #1 -; CHECK-NEXT: ret +define <2 x i64> @neon_sshll2d_constant_shift(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshll2d_constant_shift: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: sshll v0.2d, v0.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshll2d_constant_shift: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: adrp x8, .LCPI175_0 +; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI175_0] +; CHECK-GI-NEXT: sshll v0.2d, v0.2s, #0 +; CHECK-GI-NEXT: sshl v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = sext <2 x i32> %tmp1 to <2 x i64> %tmp3 = call <2 x i64> @llvm.aarch64.neon.sshl.v2i64(<2 x i64> %tmp2, <2 x i64> ) ret <2 x i64> %tmp3 } -define <1 x i64> @neon.sshll_vscalar_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshll_vscalar_constant_shift: +define <1 x i64> @neon_sshll_vscalar_constant_shift(ptr %A) nounwind { +; CHECK-LABEL: neon_sshll_vscalar_constant_shift: ; CHECK: // %bb.0: -; CHECK-NEXT: movi.2d v1, #0000000000000000 -; CHECK-NEXT: ldr s0, [x0] -; CHECK-NEXT: zip1.2s v0, v0, v1 +; CHECK-NEXT: movi v0.2d, #0000000000000000 +; CHECK-NEXT: ldr s1, [x0] +; CHECK-NEXT: zip1 v0.2s, v1.2s, v0.2s ; CHECK-NEXT: shl d0, d0, #1 ; CHECK-NEXT: ret %tmp1 = load <1 x i32>, ptr %A @@ -2356,8 +2745,8 @@ define <1 x i64> @neon.sshll_vscalar_constant_shift(ptr %A) nounwind { ret <1 x i64> %tmp3 } -define i64 @neon.sshll_scalar_constant_shift(ptr %A) nounwind { -; CHECK-LABEL: neon.sshll_scalar_constant_shift: +define i64 @neon_sshll_scalar_constant_shift(ptr %A) nounwind { +; CHECK-LABEL: neon_sshll_scalar_constant_shift: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr w8, [x0] ; CHECK-NEXT: fmov d0, x8 @@ -2370,8 +2759,8 @@ define i64 @neon.sshll_scalar_constant_shift(ptr %A) nounwind { ret i64 %tmp3 } -define i64 @neon.sshll_scalar_constant_shift_m1(ptr %A) nounwind { -; CHECK-LABEL: neon.sshll_scalar_constant_shift_m1: +define i64 @neon_sshll_scalar_constant_shift_m1(ptr %A) nounwind { +; CHECK-LABEL: neon_sshll_scalar_constant_shift_m1: ; CHECK: // %bb.0: ; CHECK-NEXT: ldr w8, [x0] ; CHECK-NEXT: fmov d0, x8 @@ -2385,34 +2774,58 @@ define i64 @neon.sshll_scalar_constant_shift_m1(ptr %A) nounwind { } ; FIXME: should be constant folded. -define <2 x i64> @neon.sshl2d_constant_fold() nounwind { -; CHECK-LABEL: neon.sshl2d_constant_fold: -; CHECK: // %bb.0: -; CHECK-NEXT: adrp x8, .LCPI179_0 -; CHECK-NEXT: ldr q0, [x8, :lo12:.LCPI179_0] -; CHECK-NEXT: add.2d v0, v0, v0 -; CHECK-NEXT: ret +define <2 x i64> @neon_sshl2d_constant_fold() nounwind { +; CHECK-SD-LABEL: neon_sshl2d_constant_fold: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: adrp x8, .LCPI179_0 +; CHECK-SD-NEXT: ldr q0, [x8, :lo12:.LCPI179_0] +; CHECK-SD-NEXT: add v0.2d, v0.2d, v0.2d +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshl2d_constant_fold: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI179_1 +; CHECK-GI-NEXT: adrp x9, .LCPI179_0 +; CHECK-GI-NEXT: ldr q0, [x8, :lo12:.LCPI179_1] +; CHECK-GI-NEXT: ldr q1, [x9, :lo12:.LCPI179_0] +; CHECK-GI-NEXT: sshl v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: ret %tmp3 = call <2 x i64> @llvm.aarch64.neon.sshl.v2i64(<2 x i64> , <2 x i64> ) ret <2 x i64> %tmp3 } -define <2 x i64> @neon.sshl2d_no_fold(ptr %A) nounwind { -; CHECK-LABEL: neon.sshl2d_no_fold: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: shl.2d v0, v0, #2 -; CHECK-NEXT: ret +define <2 x i64> @neon_sshl2d_no_fold(ptr %A) nounwind { +; CHECK-SD-LABEL: neon_sshl2d_no_fold: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: shl v0.2d, v0.2d, #2 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: neon_sshl2d_no_fold: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI180_0 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: ldr q0, [x8, :lo12:.LCPI180_0] +; CHECK-GI-NEXT: sshl v0.2d, v1.2d, v0.2d +; CHECK-GI-NEXT: ret %tmp2 = load <2 x i64>, ptr %A %tmp3 = call <2 x i64> @llvm.aarch64.neon.sshl.v2i64(<2 x i64> %tmp2, <2 x i64> ) ret <2 x i64> %tmp3 } define <8 x i16> @sshll2_8h(ptr %A) nounwind { -; CHECK-LABEL: sshll2_8h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0, #8] -; CHECK-NEXT: sshll.8h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sshll2_8h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0, #8] +; CHECK-SD-NEXT: sshll v0.8h, v0.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sshll2_8h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: mov d0, v0.d[1] +; CHECK-GI-NEXT: sshll v0.8h, v0.8b, #1 +; CHECK-GI-NEXT: ret %load1 = load <16 x i8>, ptr %A %tmp1 = shufflevector <16 x i8> %load1, <16 x i8> undef, <8 x i32> %tmp2 = sext <8 x i8> %tmp1 to <8 x i16> @@ -2421,11 +2834,18 @@ define <8 x i16> @sshll2_8h(ptr %A) nounwind { } define <4 x i32> @sshll2_4s(ptr %A) nounwind { -; CHECK-LABEL: sshll2_4s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0, #8] -; CHECK-NEXT: sshll.4s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sshll2_4s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0, #8] +; CHECK-SD-NEXT: sshll v0.4s, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sshll2_4s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: mov d0, v0.d[1] +; CHECK-GI-NEXT: sshll v0.4s, v0.4h, #1 +; CHECK-GI-NEXT: ret %load1 = load <8 x i16>, ptr %A %tmp1 = shufflevector <8 x i16> %load1, <8 x i16> undef, <4 x i32> %tmp2 = sext <4 x i16> %tmp1 to <4 x i32> @@ -2434,11 +2854,18 @@ define <4 x i32> @sshll2_4s(ptr %A) nounwind { } define <2 x i64> @sshll2_2d(ptr %A) nounwind { -; CHECK-LABEL: sshll2_2d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0, #8] -; CHECK-NEXT: sshll.2d v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sshll2_2d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0, #8] +; CHECK-SD-NEXT: sshll v0.2d, v0.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sshll2_2d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: mov d0, v0.d[1] +; CHECK-GI-NEXT: sshll v0.2d, v0.2s, #1 +; CHECK-GI-NEXT: ret %load1 = load <4 x i32>, ptr %A %tmp1 = shufflevector <4 x i32> %load1, <4 x i32> undef, <2 x i32> %tmp2 = sext <2 x i32> %tmp1 to <2 x i64> @@ -2447,88 +2874,145 @@ define <2 x i64> @sshll2_2d(ptr %A) nounwind { } define <8 x i8> @sqshli8b(ptr %A) nounwind { -; CHECK-LABEL: sqshli8b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sqshl.8b v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sqshli8b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: sqshl v0.8b, v0.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sqshli8b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.8b, #1 +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: sqshl v0.8b, v1.8b, v0.8b +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.sqshl.v8i8(<8 x i8> %tmp1, <8 x i8> ) ret <8 x i8> %tmp3 } define <4 x i16> @sqshli4h(ptr %A) nounwind { -; CHECK-LABEL: sqshli4h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sqshl.4h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sqshli4h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: sqshl v0.4h, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sqshli4h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.4h, #1 +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: sqshl v0.4h, v1.4h, v0.4h +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.sqshl.v4i16(<4 x i16> %tmp1, <4 x i16> ) ret <4 x i16> %tmp3 } define <2 x i32> @sqshli2s(ptr %A) nounwind { -; CHECK-LABEL: sqshli2s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: sqshl.2s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sqshli2s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: sqshl v0.2s, v0.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sqshli2s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2s, #1 +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: sqshl v0.2s, v1.2s, v0.2s +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.sqshl.v2i32(<2 x i32> %tmp1, <2 x i32> ) ret <2 x i32> %tmp3 } define <16 x i8> @sqshli16b(ptr %A) nounwind { -; CHECK-LABEL: sqshli16b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshl.16b v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sqshli16b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: sqshl v0.16b, v0.16b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sqshli16b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.16b, #1 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: sqshl v0.16b, v1.16b, v0.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp3 = call <16 x i8> @llvm.aarch64.neon.sqshl.v16i8(<16 x i8> %tmp1, <16 x i8> ) ret <16 x i8> %tmp3 } define <8 x i16> @sqshli8h(ptr %A) nounwind { -; CHECK-LABEL: sqshli8h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshl.8h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sqshli8h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: sqshl v0.8h, v0.8h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sqshli8h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.8h, #1 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: sqshl v0.8h, v1.8h, v0.8h +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i16> @llvm.aarch64.neon.sqshl.v8i16(<8 x i16> %tmp1, <8 x i16> ) ret <8 x i16> %tmp3 } define <4 x i32> @sqshli4s(ptr %A) nounwind { -; CHECK-LABEL: sqshli4s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshl.4s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sqshli4s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: sqshl v0.4s, v0.4s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sqshli4s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.4s, #1 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: sqshl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i32> @llvm.aarch64.neon.sqshl.v4i32(<4 x i32> %tmp1, <4 x i32> ) ret <4 x i32> %tmp3 } define <2 x i64> @sqshli2d(ptr %A) nounwind { -; CHECK-LABEL: sqshli2d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: sqshl.2d v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sqshli2d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: sqshl v0.2d, v0.2d, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sqshli2d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI190_0 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: ldr q0, [x8, :lo12:.LCPI190_0] +; CHECK-GI-NEXT: sqshl v0.2d, v1.2d, v0.2d +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i64> @llvm.aarch64.neon.sqshl.v2i64(<2 x i64> %tmp1, <2 x i64> ) ret <2 x i64> %tmp3 } define <8 x i8> @uqshli8b(ptr %A) nounwind { -; CHECK-LABEL: uqshli8b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: uqshl.8b v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: uqshli8b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: uqshl v0.8b, v0.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: uqshli8b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.8b, #1 +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: uqshl v0.8b, v1.8b, v0.8b +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.uqshl.v8i8(<8 x i8> %tmp1, <8 x i8> ) ret <8 x i8> %tmp3 @@ -2537,9 +3021,9 @@ define <8 x i8> @uqshli8b(ptr %A) nounwind { define <8 x i8> @uqshli8b_1(ptr %A) nounwind { ; CHECK-LABEL: uqshli8b_1: ; CHECK: // %bb.0: -; CHECK-NEXT: movi.8b v1, #8 -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: uqshl.8b v0, v0, v1 +; CHECK-NEXT: movi v0.8b, #8 +; CHECK-NEXT: ldr d1, [x0] +; CHECK-NEXT: uqshl v0.8b, v1.8b, v0.8b ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.uqshl.v8i8(<8 x i8> %tmp1, <8 x i8> ) @@ -2547,78 +3031,130 @@ define <8 x i8> @uqshli8b_1(ptr %A) nounwind { } define <4 x i16> @uqshli4h(ptr %A) nounwind { -; CHECK-LABEL: uqshli4h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: uqshl.4h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: uqshli4h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: uqshl v0.4h, v0.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: uqshli4h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.4h, #1 +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: uqshl v0.4h, v1.4h, v0.4h +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.uqshl.v4i16(<4 x i16> %tmp1, <4 x i16> ) ret <4 x i16> %tmp3 } define <2 x i32> @uqshli2s(ptr %A) nounwind { -; CHECK-LABEL: uqshli2s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: uqshl.2s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: uqshli2s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: uqshl v0.2s, v0.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: uqshli2s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2s, #1 +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: uqshl v0.2s, v1.2s, v0.2s +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.uqshl.v2i32(<2 x i32> %tmp1, <2 x i32> ) ret <2 x i32> %tmp3 } define <16 x i8> @uqshli16b(ptr %A) nounwind { -; CHECK-LABEL: uqshli16b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqshl.16b v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: uqshli16b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: uqshl v0.16b, v0.16b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: uqshli16b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.16b, #1 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: uqshl v0.16b, v1.16b, v0.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp3 = call <16 x i8> @llvm.aarch64.neon.uqshl.v16i8(<16 x i8> %tmp1, <16 x i8> ) ret <16 x i8> %tmp3 } define <8 x i16> @uqshli8h(ptr %A) nounwind { -; CHECK-LABEL: uqshli8h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqshl.8h v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: uqshli8h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: uqshl v0.8h, v0.8h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: uqshli8h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.8h, #1 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: uqshl v0.8h, v1.8h, v0.8h +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i16> @llvm.aarch64.neon.uqshl.v8i16(<8 x i16> %tmp1, <8 x i16> ) ret <8 x i16> %tmp3 } define <4 x i32> @uqshli4s(ptr %A) nounwind { -; CHECK-LABEL: uqshli4s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqshl.4s v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: uqshli4s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: uqshl v0.4s, v0.4s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: uqshli4s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.4s, #1 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: uqshl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i32> @llvm.aarch64.neon.uqshl.v4i32(<4 x i32> %tmp1, <4 x i32> ) ret <4 x i32> %tmp3 } define <2 x i64> @uqshli2d(ptr %A) nounwind { -; CHECK-LABEL: uqshli2d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: uqshl.2d v0, v0, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: uqshli2d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: uqshl v0.2d, v0.2d, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: uqshli2d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adrp x8, .LCPI198_0 +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: ldr q0, [x8, :lo12:.LCPI198_0] +; CHECK-GI-NEXT: uqshl v0.2d, v1.2d, v0.2d +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i64> @llvm.aarch64.neon.uqshl.v2i64(<2 x i64> %tmp1, <2 x i64> ) ret <2 x i64> %tmp3 } define <8 x i8> @ursra8b(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: ursra8b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d1, [x0] -; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: ursra.8b v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ursra8b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d1, [x0] +; CHECK-SD-NEXT: ldr d0, [x1] +; CHECK-SD-NEXT: ursra v0.8b, v1.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ursra8b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: urshl v0.8b, v1.8b, v0.8b +; CHECK-GI-NEXT: ldr d1, [x1] +; CHECK-GI-NEXT: add v0.8b, v0.8b, v1.8b +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.urshl.v8i8(<8 x i8> %tmp1, <8 x i8> ) %tmp4 = load <8 x i8>, ptr %B @@ -2627,12 +3163,21 @@ define <8 x i8> @ursra8b(ptr %A, ptr %B) nounwind { } define <4 x i16> @ursra4h(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: ursra4h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d1, [x0] -; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: ursra.4h v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ursra4h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d1, [x0] +; CHECK-SD-NEXT: ldr d0, [x1] +; CHECK-SD-NEXT: ursra v0.4h, v1.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ursra4h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: urshl v0.4h, v1.4h, v0.4h +; CHECK-GI-NEXT: ldr d1, [x1] +; CHECK-GI-NEXT: add v0.4h, v0.4h, v1.4h +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.urshl.v4i16(<4 x i16> %tmp1, <4 x i16> ) %tmp4 = load <4 x i16>, ptr %B @@ -2641,12 +3186,21 @@ define <4 x i16> @ursra4h(ptr %A, ptr %B) nounwind { } define <2 x i32> @ursra2s(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: ursra2s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d1, [x0] -; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: ursra.2s v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ursra2s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d1, [x0] +; CHECK-SD-NEXT: ldr d0, [x1] +; CHECK-SD-NEXT: ursra v0.2s, v1.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ursra2s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: urshl v0.2s, v1.2s, v0.2s +; CHECK-GI-NEXT: ldr d1, [x1] +; CHECK-GI-NEXT: add v0.2s, v0.2s, v1.2s +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.urshl.v2i32(<2 x i32> %tmp1, <2 x i32> ) %tmp4 = load <2 x i32>, ptr %B @@ -2655,12 +3209,21 @@ define <2 x i32> @ursra2s(ptr %A, ptr %B) nounwind { } define <16 x i8> @ursra16b(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: ursra16b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q1, [x0] -; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: ursra.16b v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ursra16b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q1, [x0] +; CHECK-SD-NEXT: ldr q0, [x1] +; CHECK-SD-NEXT: ursra v0.16b, v1.16b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ursra16b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: urshl v0.16b, v1.16b, v0.16b +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: add v0.16b, v0.16b, v1.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp3 = call <16 x i8> @llvm.aarch64.neon.urshl.v16i8(<16 x i8> %tmp1, <16 x i8> ) %tmp4 = load <16 x i8>, ptr %B @@ -2669,12 +3232,21 @@ define <16 x i8> @ursra16b(ptr %A, ptr %B) nounwind { } define <8 x i16> @ursra8h(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: ursra8h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q1, [x0] -; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: ursra.8h v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ursra8h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q1, [x0] +; CHECK-SD-NEXT: ldr q0, [x1] +; CHECK-SD-NEXT: ursra v0.8h, v1.8h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ursra8h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: urshl v0.8h, v1.8h, v0.8h +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: add v0.8h, v0.8h, v1.8h +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i16> @llvm.aarch64.neon.urshl.v8i16(<8 x i16> %tmp1, <8 x i16> ) %tmp4 = load <8 x i16>, ptr %B @@ -2683,12 +3255,21 @@ define <8 x i16> @ursra8h(ptr %A, ptr %B) nounwind { } define <4 x i32> @ursra4s(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: ursra4s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q1, [x0] -; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: ursra.4s v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ursra4s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q1, [x0] +; CHECK-SD-NEXT: ldr q0, [x1] +; CHECK-SD-NEXT: ursra v0.4s, v1.4s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ursra4s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: urshl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: add v0.4s, v0.4s, v1.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i32> @llvm.aarch64.neon.urshl.v4i32(<4 x i32> %tmp1, <4 x i32> ) %tmp4 = load <4 x i32>, ptr %B @@ -2697,12 +3278,21 @@ define <4 x i32> @ursra4s(ptr %A, ptr %B) nounwind { } define <2 x i64> @ursra2d(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: ursra2d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q1, [x0] -; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: ursra.2d v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ursra2d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q1, [x0] +; CHECK-SD-NEXT: ldr q0, [x1] +; CHECK-SD-NEXT: ursra v0.2d, v1.2d, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ursra2d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: urshl v0.2d, v1.2d, v0.2d +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: add v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i64> @llvm.aarch64.neon.urshl.v2i64(<2 x i64> %tmp1, <2 x i64> ) %tmp4 = load <2 x i64>, ptr %B @@ -2740,12 +3330,21 @@ define i64 @ursra_scalar(ptr %A, ptr %B) nounwind { } define <8 x i8> @srsra8b(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: srsra8b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d1, [x0] -; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: srsra.8b v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srsra8b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d1, [x0] +; CHECK-SD-NEXT: ldr d0, [x1] +; CHECK-SD-NEXT: srsra v0.8b, v1.8b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srsra8b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: srshl v0.8b, v1.8b, v0.8b +; CHECK-GI-NEXT: ldr d1, [x1] +; CHECK-GI-NEXT: add v0.8b, v0.8b, v1.8b +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = call <8 x i8> @llvm.aarch64.neon.srshl.v8i8(<8 x i8> %tmp1, <8 x i8> ) %tmp4 = load <8 x i8>, ptr %B @@ -2754,12 +3353,21 @@ define <8 x i8> @srsra8b(ptr %A, ptr %B) nounwind { } define <4 x i16> @srsra4h(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: srsra4h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d1, [x0] -; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: srsra.4h v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srsra4h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d1, [x0] +; CHECK-SD-NEXT: ldr d0, [x1] +; CHECK-SD-NEXT: srsra v0.4h, v1.4h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srsra4h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: srshl v0.4h, v1.4h, v0.4h +; CHECK-GI-NEXT: ldr d1, [x1] +; CHECK-GI-NEXT: add v0.4h, v0.4h, v1.4h +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp3 = call <4 x i16> @llvm.aarch64.neon.srshl.v4i16(<4 x i16> %tmp1, <4 x i16> ) %tmp4 = load <4 x i16>, ptr %B @@ -2768,12 +3376,21 @@ define <4 x i16> @srsra4h(ptr %A, ptr %B) nounwind { } define <2 x i32> @srsra2s(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: srsra2s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d1, [x0] -; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: srsra.2s v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srsra2s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d1, [x0] +; CHECK-SD-NEXT: ldr d0, [x1] +; CHECK-SD-NEXT: srsra v0.2s, v1.2s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srsra2s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi d0, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr d1, [x0] +; CHECK-GI-NEXT: srshl v0.2s, v1.2s, v0.2s +; CHECK-GI-NEXT: ldr d1, [x1] +; CHECK-GI-NEXT: add v0.2s, v0.2s, v1.2s +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp3 = call <2 x i32> @llvm.aarch64.neon.srshl.v2i32(<2 x i32> %tmp1, <2 x i32> ) %tmp4 = load <2 x i32>, ptr %B @@ -2782,12 +3399,21 @@ define <2 x i32> @srsra2s(ptr %A, ptr %B) nounwind { } define <16 x i8> @srsra16b(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: srsra16b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q1, [x0] -; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: srsra.16b v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srsra16b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q1, [x0] +; CHECK-SD-NEXT: ldr q0, [x1] +; CHECK-SD-NEXT: srsra v0.16b, v1.16b, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srsra16b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: srshl v0.16b, v1.16b, v0.16b +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: add v0.16b, v0.16b, v1.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp3 = call <16 x i8> @llvm.aarch64.neon.srshl.v16i8(<16 x i8> %tmp1, <16 x i8> ) %tmp4 = load <16 x i8>, ptr %B @@ -2796,12 +3422,21 @@ define <16 x i8> @srsra16b(ptr %A, ptr %B) nounwind { } define <8 x i16> @srsra8h(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: srsra8h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q1, [x0] -; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: srsra.8h v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srsra8h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q1, [x0] +; CHECK-SD-NEXT: ldr q0, [x1] +; CHECK-SD-NEXT: srsra v0.8h, v1.8h, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srsra8h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: srshl v0.8h, v1.8h, v0.8h +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: add v0.8h, v0.8h, v1.8h +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = call <8 x i16> @llvm.aarch64.neon.srshl.v8i16(<8 x i16> %tmp1, <8 x i16> ) %tmp4 = load <8 x i16>, ptr %B @@ -2810,12 +3445,21 @@ define <8 x i16> @srsra8h(ptr %A, ptr %B) nounwind { } define <4 x i32> @srsra4s(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: srsra4s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q1, [x0] -; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: srsra.4s v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srsra4s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q1, [x0] +; CHECK-SD-NEXT: ldr q0, [x1] +; CHECK-SD-NEXT: srsra v0.4s, v1.4s, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srsra4s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: srshl v0.4s, v1.4s, v0.4s +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: add v0.4s, v0.4s, v1.4s +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = call <4 x i32> @llvm.aarch64.neon.srshl.v4i32(<4 x i32> %tmp1, <4 x i32> ) %tmp4 = load <4 x i32>, ptr %B @@ -2824,12 +3468,21 @@ define <4 x i32> @srsra4s(ptr %A, ptr %B) nounwind { } define <2 x i64> @srsra2d(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: srsra2d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q1, [x0] -; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: srsra.2d v0, v1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srsra2d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q1, [x0] +; CHECK-SD-NEXT: ldr q0, [x1] +; CHECK-SD-NEXT: srsra v0.2d, v1.2d, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srsra2d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2d, #0xffffffffffffffff +; CHECK-GI-NEXT: ldr q1, [x0] +; CHECK-GI-NEXT: srshl v0.2d, v1.2d, v0.2d +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: add v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = call <2 x i64> @llvm.aarch64.neon.srshl.v2i64(<2 x i64> %tmp1, <2 x i64> ) %tmp4 = load <2 x i64>, ptr %B @@ -2871,7 +3524,7 @@ define <8 x i8> @usra8b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d1, [x0] ; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: usra.8b v0, v1, #1 +; CHECK-NEXT: usra v0.8b, v1.8b, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = lshr <8 x i8> %tmp1, @@ -2885,7 +3538,7 @@ define <4 x i16> @usra4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d1, [x0] ; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: usra.4h v0, v1, #1 +; CHECK-NEXT: usra v0.4h, v1.4h, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp3 = lshr <4 x i16> %tmp1, @@ -2899,7 +3552,7 @@ define <2 x i32> @usra2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d1, [x0] ; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: usra.2s v0, v1, #1 +; CHECK-NEXT: usra v0.2s, v1.2s, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp3 = lshr <2 x i32> %tmp1, @@ -2913,7 +3566,7 @@ define <16 x i8> @usra16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q1, [x0] ; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: usra.16b v0, v1, #1 +; CHECK-NEXT: usra v0.16b, v1.16b, #1 ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp3 = lshr <16 x i8> %tmp1, @@ -2927,7 +3580,7 @@ define <8 x i16> @usra8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q1, [x0] ; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: usra.8h v0, v1, #1 +; CHECK-NEXT: usra v0.8h, v1.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = lshr <8 x i16> %tmp1, @@ -2941,7 +3594,7 @@ define <4 x i32> @usra4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q1, [x0] ; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: usra.4s v0, v1, #1 +; CHECK-NEXT: usra v0.4s, v1.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = lshr <4 x i32> %tmp1, @@ -2955,7 +3608,7 @@ define <2 x i64> @usra2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q1, [x0] ; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: usra.2d v0, v1, #1 +; CHECK-NEXT: usra v0.2d, v1.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = lshr <2 x i64> %tmp1, @@ -2965,12 +3618,20 @@ define <2 x i64> @usra2d(ptr %A, ptr %B) nounwind { } define <1 x i64> @usra1d(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: usra1d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d1, [x0] -; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: usra d0, d1, #1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: usra1d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d1, [x0] +; CHECK-SD-NEXT: ldr d0, [x1] +; CHECK-SD-NEXT: usra d0, d1, #1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: usra1d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr x8, [x0] +; CHECK-GI-NEXT: ldr x9, [x1] +; CHECK-GI-NEXT: add x8, x9, x8, lsr #1 +; CHECK-GI-NEXT: fmov d0, x8 +; CHECK-GI-NEXT: ret %tmp1 = load <1 x i64>, ptr %A %tmp3 = lshr <1 x i64> %tmp1, %tmp4 = load <1 x i64>, ptr %B @@ -2983,7 +3644,7 @@ define <8 x i8> @ssra8b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d1, [x0] ; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: ssra.8b v0, v1, #1 +; CHECK-NEXT: ssra v0.8b, v1.8b, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp3 = ashr <8 x i8> %tmp1, @@ -2997,7 +3658,7 @@ define <4 x i16> @ssra4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d1, [x0] ; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: ssra.4h v0, v1, #1 +; CHECK-NEXT: ssra v0.4h, v1.4h, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp3 = ashr <4 x i16> %tmp1, @@ -3011,7 +3672,7 @@ define <2 x i32> @ssra2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d1, [x0] ; CHECK-NEXT: ldr d0, [x1] -; CHECK-NEXT: ssra.2s v0, v1, #1 +; CHECK-NEXT: ssra v0.2s, v1.2s, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp3 = ashr <2 x i32> %tmp1, @@ -3025,7 +3686,7 @@ define <16 x i8> @ssra16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q1, [x0] ; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: ssra.16b v0, v1, #1 +; CHECK-NEXT: ssra v0.16b, v1.16b, #1 ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp3 = ashr <16 x i8> %tmp1, @@ -3039,7 +3700,7 @@ define <8 x i16> @ssra8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q1, [x0] ; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: ssra.8h v0, v1, #1 +; CHECK-NEXT: ssra v0.8h, v1.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp3 = ashr <8 x i16> %tmp1, @@ -3053,7 +3714,7 @@ define <4 x i32> @ssra4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q1, [x0] ; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: ssra.4s v0, v1, #1 +; CHECK-NEXT: ssra v0.4s, v1.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp3 = ashr <4 x i32> %tmp1, @@ -3067,7 +3728,7 @@ define <2 x i64> @ssra2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q1, [x0] ; CHECK-NEXT: ldr q0, [x1] -; CHECK-NEXT: ssra.2d v0, v1, #1 +; CHECK-NEXT: ssra v0.2d, v1.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp3 = ashr <2 x i64> %tmp1, @@ -3081,8 +3742,8 @@ define <8 x i8> @shr_orr8b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: ushr.8b v0, v0, #1 -; CHECK-NEXT: orr.8b v0, v0, v1 +; CHECK-NEXT: ushr v0.8b, v0.8b, #1 +; CHECK-NEXT: orr v0.8b, v0.8b, v1.8b ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp4 = load <8 x i8>, ptr %B @@ -3096,8 +3757,8 @@ define <4 x i16> @shr_orr4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: ushr.4h v0, v0, #1 -; CHECK-NEXT: orr.8b v0, v0, v1 +; CHECK-NEXT: ushr v0.4h, v0.4h, #1 +; CHECK-NEXT: orr v0.8b, v0.8b, v1.8b ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp4 = load <4 x i16>, ptr %B @@ -3111,8 +3772,8 @@ define <2 x i32> @shr_orr2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: ushr.2s v0, v0, #1 -; CHECK-NEXT: orr.8b v0, v0, v1 +; CHECK-NEXT: ushr v0.2s, v0.2s, #1 +; CHECK-NEXT: orr v0.8b, v0.8b, v1.8b ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp4 = load <2 x i32>, ptr %B @@ -3126,8 +3787,8 @@ define <16 x i8> @shr_orr16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: ushr.16b v0, v0, #1 -; CHECK-NEXT: orr.16b v0, v0, v1 +; CHECK-NEXT: ushr v0.16b, v0.16b, #1 +; CHECK-NEXT: orr v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp4 = load <16 x i8>, ptr %B @@ -3141,8 +3802,8 @@ define <8 x i16> @shr_orr8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: ushr.8h v0, v0, #1 -; CHECK-NEXT: orr.16b v0, v0, v1 +; CHECK-NEXT: ushr v0.8h, v0.8h, #1 +; CHECK-NEXT: orr v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp4 = load <8 x i16>, ptr %B @@ -3156,8 +3817,8 @@ define <4 x i32> @shr_orr4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: ushr.4s v0, v0, #1 -; CHECK-NEXT: orr.16b v0, v0, v1 +; CHECK-NEXT: ushr v0.4s, v0.4s, #1 +; CHECK-NEXT: orr v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp4 = load <4 x i32>, ptr %B @@ -3171,8 +3832,8 @@ define <2 x i64> @shr_orr2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: ushr.2d v0, v0, #1 -; CHECK-NEXT: orr.16b v0, v0, v1 +; CHECK-NEXT: ushr v0.2d, v0.2d, #1 +; CHECK-NEXT: orr v0.16b, v0.16b, v1.16b ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp4 = load <2 x i64>, ptr %B @@ -3182,13 +3843,21 @@ define <2 x i64> @shr_orr2d(ptr %A, ptr %B) nounwind { } define <8 x i8> @shl_orr8b(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: shl_orr8b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: add.8b v0, v0, v0 -; CHECK-NEXT: orr.8b v0, v0, v1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shl_orr8b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: ldr d1, [x1] +; CHECK-SD-NEXT: add v0.8b, v0.8b, v0.8b +; CHECK-SD-NEXT: orr v0.8b, v0.8b, v1.8b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shl_orr8b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: ldr d1, [x1] +; CHECK-GI-NEXT: shl v0.8b, v0.8b, #1 +; CHECK-GI-NEXT: orr v0.8b, v0.8b, v1.8b +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp4 = load <8 x i8>, ptr %B %tmp3 = shl <8 x i8> %tmp1, @@ -3197,13 +3866,21 @@ define <8 x i8> @shl_orr8b(ptr %A, ptr %B) nounwind { } define <4 x i16> @shl_orr4h(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: shl_orr4h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: add.4h v0, v0, v0 -; CHECK-NEXT: orr.8b v0, v0, v1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shl_orr4h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: ldr d1, [x1] +; CHECK-SD-NEXT: add v0.4h, v0.4h, v0.4h +; CHECK-SD-NEXT: orr v0.8b, v0.8b, v1.8b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shl_orr4h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: ldr d1, [x1] +; CHECK-GI-NEXT: shl v0.4h, v0.4h, #1 +; CHECK-GI-NEXT: orr v0.8b, v0.8b, v1.8b +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp4 = load <4 x i16>, ptr %B %tmp3 = shl <4 x i16> %tmp1, @@ -3212,13 +3889,21 @@ define <4 x i16> @shl_orr4h(ptr %A, ptr %B) nounwind { } define <2 x i32> @shl_orr2s(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: shl_orr2s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr d0, [x0] -; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: add.2s v0, v0, v0 -; CHECK-NEXT: orr.8b v0, v0, v1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shl_orr2s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr d0, [x0] +; CHECK-SD-NEXT: ldr d1, [x1] +; CHECK-SD-NEXT: add v0.2s, v0.2s, v0.2s +; CHECK-SD-NEXT: orr v0.8b, v0.8b, v1.8b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shl_orr2s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr d0, [x0] +; CHECK-GI-NEXT: ldr d1, [x1] +; CHECK-GI-NEXT: shl v0.2s, v0.2s, #1 +; CHECK-GI-NEXT: orr v0.8b, v0.8b, v1.8b +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp4 = load <2 x i32>, ptr %B %tmp3 = shl <2 x i32> %tmp1, @@ -3227,13 +3912,21 @@ define <2 x i32> @shl_orr2s(ptr %A, ptr %B) nounwind { } define <16 x i8> @shl_orr16b(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: shl_orr16b: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: add.16b v0, v0, v0 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shl_orr16b: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: ldr q1, [x1] +; CHECK-SD-NEXT: add v0.16b, v0.16b, v0.16b +; CHECK-SD-NEXT: orr v0.16b, v0.16b, v1.16b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shl_orr16b: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: shl v0.16b, v0.16b, #1 +; CHECK-GI-NEXT: orr v0.16b, v0.16b, v1.16b +; CHECK-GI-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp4 = load <16 x i8>, ptr %B %tmp3 = shl <16 x i8> %tmp1, @@ -3242,13 +3935,21 @@ define <16 x i8> @shl_orr16b(ptr %A, ptr %B) nounwind { } define <8 x i16> @shl_orr8h(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: shl_orr8h: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: add.8h v0, v0, v0 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shl_orr8h: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: ldr q1, [x1] +; CHECK-SD-NEXT: add v0.8h, v0.8h, v0.8h +; CHECK-SD-NEXT: orr v0.16b, v0.16b, v1.16b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shl_orr8h: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: shl v0.8h, v0.8h, #1 +; CHECK-GI-NEXT: orr v0.16b, v0.16b, v1.16b +; CHECK-GI-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp4 = load <8 x i16>, ptr %B %tmp3 = shl <8 x i16> %tmp1, @@ -3257,13 +3958,21 @@ define <8 x i16> @shl_orr8h(ptr %A, ptr %B) nounwind { } define <4 x i32> @shl_orr4s(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: shl_orr4s: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: add.4s v0, v0, v0 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shl_orr4s: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: ldr q1, [x1] +; CHECK-SD-NEXT: add v0.4s, v0.4s, v0.4s +; CHECK-SD-NEXT: orr v0.16b, v0.16b, v1.16b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shl_orr4s: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: shl v0.4s, v0.4s, #1 +; CHECK-GI-NEXT: orr v0.16b, v0.16b, v1.16b +; CHECK-GI-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp4 = load <4 x i32>, ptr %B %tmp3 = shl <4 x i32> %tmp1, @@ -3272,13 +3981,21 @@ define <4 x i32> @shl_orr4s(ptr %A, ptr %B) nounwind { } define <2 x i64> @shl_orr2d(ptr %A, ptr %B) nounwind { -; CHECK-LABEL: shl_orr2d: -; CHECK: // %bb.0: -; CHECK-NEXT: ldr q0, [x0] -; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: add.2d v0, v0, v0 -; CHECK-NEXT: orr.16b v0, v0, v1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shl_orr2d: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ldr q0, [x0] +; CHECK-SD-NEXT: ldr q1, [x1] +; CHECK-SD-NEXT: add v0.2d, v0.2d, v0.2d +; CHECK-SD-NEXT: orr v0.16b, v0.16b, v1.16b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shl_orr2d: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: ldr q1, [x1] +; CHECK-GI-NEXT: shl v0.2d, v0.2d, #1 +; CHECK-GI-NEXT: orr v0.16b, v0.16b, v1.16b +; CHECK-GI-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp4 = load <2 x i64>, ptr %B %tmp3 = shl <2 x i64> %tmp1, @@ -3287,20 +4004,32 @@ define <2 x i64> @shl_orr2d(ptr %A, ptr %B) nounwind { } define <8 x i16> @shll(<8 x i8> %in) { -; CHECK-LABEL: shll: -; CHECK: // %bb.0: -; CHECK-NEXT: shll.8h v0, v0, #8 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shll: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: shll v0.8h, v0.8b, #8 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shll: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ushll v0.8h, v0.8b, #0 +; CHECK-GI-NEXT: shl v0.8h, v0.8h, #8 +; CHECK-GI-NEXT: ret %ext = zext <8 x i8> %in to <8 x i16> %res = shl <8 x i16> %ext, ret <8 x i16> %res } define <4 x i32> @shll_high(<8 x i16> %in) { -; CHECK-LABEL: shll_high: -; CHECK: // %bb.0: -; CHECK-NEXT: shll2.4s v0, v0, #16 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shll_high: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: shll2 v0.4s, v0.8h, #16 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shll_high: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ushll2 v0.4s, v0.8h, #0 +; CHECK-GI-NEXT: shl v0.4s, v0.4s, #16 +; CHECK-GI-NEXT: ret %extract = shufflevector <8 x i16> %in, <8 x i16> undef, <4 x i32> %ext = zext <4 x i16> %extract to <4 x i32> %res = shl <4 x i32> %ext, @@ -3312,7 +4041,7 @@ define <8 x i8> @sli8b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: sli.8b v0, v1, #1 +; CHECK-NEXT: sli v0.8b, v1.8b, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i8>, ptr %A %tmp2 = load <8 x i8>, ptr %B @@ -3325,7 +4054,7 @@ define <4 x i16> @sli4h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: sli.4h v0, v1, #1 +; CHECK-NEXT: sli v0.4h, v1.4h, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i16>, ptr %A %tmp2 = load <4 x i16>, ptr %B @@ -3338,7 +4067,7 @@ define <2 x i32> @sli2s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr d0, [x0] ; CHECK-NEXT: ldr d1, [x1] -; CHECK-NEXT: sli.2s v0, v1, #1 +; CHECK-NEXT: sli v0.2s, v1.2s, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i32>, ptr %A %tmp2 = load <2 x i32>, ptr %B @@ -3364,7 +4093,7 @@ define <16 x i8> @sli16b(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sli.16b v0, v1, #1 +; CHECK-NEXT: sli v0.16b, v1.16b, #1 ; CHECK-NEXT: ret %tmp1 = load <16 x i8>, ptr %A %tmp2 = load <16 x i8>, ptr %B @@ -3377,7 +4106,7 @@ define <8 x i16> @sli8h(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sli.8h v0, v1, #1 +; CHECK-NEXT: sli v0.8h, v1.8h, #1 ; CHECK-NEXT: ret %tmp1 = load <8 x i16>, ptr %A %tmp2 = load <8 x i16>, ptr %B @@ -3390,7 +4119,7 @@ define <4 x i32> @sli4s(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sli.4s v0, v1, #1 +; CHECK-NEXT: sli v0.4s, v1.4s, #1 ; CHECK-NEXT: ret %tmp1 = load <4 x i32>, ptr %A %tmp2 = load <4 x i32>, ptr %B @@ -3403,7 +4132,7 @@ define <2 x i64> @sli2d(ptr %A, ptr %B) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: ldr q0, [x0] ; CHECK-NEXT: ldr q1, [x1] -; CHECK-NEXT: sli.2d v0, v1, #1 +; CHECK-NEXT: sli v0.2d, v1.2d, #1 ; CHECK-NEXT: ret %tmp1 = load <2 x i64>, ptr %A %tmp2 = load <2 x i64>, ptr %B @@ -3422,21 +4151,37 @@ declare <4 x i32> @llvm.aarch64.neon.vsli.v4i32(<4 x i32>, <4 x i32>, i32) nounw declare <2 x i64> @llvm.aarch64.neon.vsli.v2i64(<2 x i64>, <2 x i64>, i32) nounwind readnone define <1 x i64> @ashr_v1i64(<1 x i64> %a, <1 x i64> %b) { -; CHECK-LABEL: ashr_v1i64: -; CHECK: // %bb.0: -; CHECK-NEXT: neg d1, d1 -; CHECK-NEXT: sshl d0, d0, d1 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ashr_v1i64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: neg d1, d1 +; CHECK-SD-NEXT: sshl d0, d0, d1 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ashr_v1i64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: fmov x8, d0 +; CHECK-GI-NEXT: fmov x9, d1 +; CHECK-GI-NEXT: asr x8, x8, x9 +; CHECK-GI-NEXT: fmov d0, x8 +; CHECK-GI-NEXT: ret %c = ashr <1 x i64> %a, %b ret <1 x i64> %c } define void @sqshl_zero_shift_amount(<2 x i64> %a, <2 x i64> %b, ptr %dst) { -; CHECK-LABEL: sqshl_zero_shift_amount: -; CHECK: // %bb.0: // %entry -; CHECK-NEXT: addp.2d v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sqshl_zero_shift_amount: +; CHECK-SD: // %bb.0: // %entry +; CHECK-SD-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sqshl_zero_shift_amount: +; CHECK-GI: // %bb.0: // %entry +; CHECK-GI-NEXT: movi v2.2d, #0000000000000000 +; CHECK-GI-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: sqshl v0.2d, v0.2d, v2.2d +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret entry: %vpaddq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.addp.v2i64(<2 x i64> %a, <2 x i64> %b) %vshlq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.sqshl.v2i64(<2 x i64> %vpaddq_v2.i.i, <2 x i64> zeroinitializer) @@ -3445,11 +4190,19 @@ entry: } define void @uqshl_zero_shift_amount(<2 x i64> %a, <2 x i64> %b, ptr %dst) { -; CHECK-LABEL: uqshl_zero_shift_amount: -; CHECK: // %bb.0: // %entry -; CHECK-NEXT: addp.2d v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: uqshl_zero_shift_amount: +; CHECK-SD: // %bb.0: // %entry +; CHECK-SD-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: uqshl_zero_shift_amount: +; CHECK-GI: // %bb.0: // %entry +; CHECK-GI-NEXT: movi v2.2d, #0000000000000000 +; CHECK-GI-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: uqshl v0.2d, v0.2d, v2.2d +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret entry: %vpaddq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.addp.v2i64(<2 x i64> %a, <2 x i64> %b) %vshlq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.uqshl.v2i64(<2 x i64> %vpaddq_v2.i.i, <2 x i64> zeroinitializer) @@ -3458,11 +4211,19 @@ entry: } define void @srshl_zero_shift_amount(<2 x i64> %a, <2 x i64> %b, ptr %dst) { -; CHECK-LABEL: srshl_zero_shift_amount: -; CHECK: // %bb.0: // %entry -; CHECK-NEXT: addp.2d v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: srshl_zero_shift_amount: +; CHECK-SD: // %bb.0: // %entry +; CHECK-SD-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: srshl_zero_shift_amount: +; CHECK-GI: // %bb.0: // %entry +; CHECK-GI-NEXT: movi v2.2d, #0000000000000000 +; CHECK-GI-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: srshl v0.2d, v0.2d, v2.2d +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret entry: %vpaddq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.addp.v2i64(<2 x i64> %a, <2 x i64> %b) %vshlq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.srshl.v2i64(<2 x i64> %vpaddq_v2.i.i, <2 x i64> zeroinitializer) @@ -3471,11 +4232,19 @@ entry: } define void @urshl_zero_shift_amount(<2 x i64> %a, <2 x i64> %b, ptr %dst) { -; CHECK-LABEL: urshl_zero_shift_amount: -; CHECK: // %bb.0: // %entry -; CHECK-NEXT: addp.2d v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: urshl_zero_shift_amount: +; CHECK-SD: // %bb.0: // %entry +; CHECK-SD-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: urshl_zero_shift_amount: +; CHECK-GI: // %bb.0: // %entry +; CHECK-GI-NEXT: movi v2.2d, #0000000000000000 +; CHECK-GI-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: urshl v0.2d, v0.2d, v2.2d +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret entry: %vpaddq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.addp.v2i64(<2 x i64> %a, <2 x i64> %b) %vshlq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.urshl.v2i64(<2 x i64> %vpaddq_v2.i.i, <2 x i64> zeroinitializer) @@ -3486,8 +4255,8 @@ entry: define void @sqshlu_zero_shift_amount(<2 x i64> %a, <2 x i64> %b, ptr %dst) { ; CHECK-LABEL: sqshlu_zero_shift_amount: ; CHECK: // %bb.0: // %entry -; CHECK-NEXT: addp.2d v0, v0, v1 -; CHECK-NEXT: sqshlu.2d v0, v0, #0 +; CHECK-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-NEXT: sqshlu v0.2d, v0.2d, #0 ; CHECK-NEXT: str q0, [x0] ; CHECK-NEXT: ret entry: @@ -3498,11 +4267,19 @@ entry: } define void @sshl_zero_shift_amount(<2 x i64> %a, <2 x i64> %b, ptr %dst) { -; CHECK-LABEL: sshl_zero_shift_amount: -; CHECK: // %bb.0: // %entry -; CHECK-NEXT: addp.2d v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: sshl_zero_shift_amount: +; CHECK-SD: // %bb.0: // %entry +; CHECK-SD-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: sshl_zero_shift_amount: +; CHECK-GI: // %bb.0: // %entry +; CHECK-GI-NEXT: movi v2.2d, #0000000000000000 +; CHECK-GI-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: sshl v0.2d, v0.2d, v2.2d +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret entry: %vpaddq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.addp.v2i64(<2 x i64> %a, <2 x i64> %b) %vshlq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.sshl.v2i64(<2 x i64> %vpaddq_v2.i.i, <2 x i64> zeroinitializer) @@ -3511,11 +4288,19 @@ entry: } define void @ushl_zero_shift_amount(<2 x i64> %a, <2 x i64> %b, ptr %dst) { -; CHECK-LABEL: ushl_zero_shift_amount: -; CHECK: // %bb.0: // %entry -; CHECK-NEXT: addp.2d v0, v0, v1 -; CHECK-NEXT: str q0, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ushl_zero_shift_amount: +; CHECK-SD: // %bb.0: // %entry +; CHECK-SD-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-SD-NEXT: str q0, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ushl_zero_shift_amount: +; CHECK-GI: // %bb.0: // %entry +; CHECK-GI-NEXT: movi v2.2d, #0000000000000000 +; CHECK-GI-NEXT: addp v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: ushl v0.2d, v0.2d, v2.2d +; CHECK-GI-NEXT: str q0, [x0] +; CHECK-GI-NEXT: ret entry: %vpaddq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.addp.v2i64(<2 x i64> %a, <2 x i64> %b) %vshlq_v2.i.i = tail call <2 x i64> @llvm.aarch64.neon.ushl.v2i64(<2 x i64> %vpaddq_v2.i.i, <2 x i64> zeroinitializer) @@ -3526,8 +4311,8 @@ entry: define <4 x i32> @sext_rshrn(<4 x i32> noundef %a) { ; CHECK-LABEL: sext_rshrn: ; CHECK: // %bb.0: // %entry -; CHECK-NEXT: rshrn.4h v0, v0, #13 -; CHECK-NEXT: sshll.4s v0, v0, #0 +; CHECK-NEXT: rshrn v0.4h, v0.4s, #13 +; CHECK-NEXT: sshll v0.4s, v0.4h, #0 ; CHECK-NEXT: ret entry: %vrshrn_n1 = tail call <4 x i16> @llvm.aarch64.neon.rshrn.v4i16(<4 x i32> %a, i32 13) @@ -3538,8 +4323,8 @@ entry: define <4 x i32> @zext_rshrn(<4 x i32> noundef %a) { ; CHECK-LABEL: zext_rshrn: ; CHECK: // %bb.0: // %entry -; CHECK-NEXT: rshrn.4h v0, v0, #13 -; CHECK-NEXT: ushll.4s v0, v0, #0 +; CHECK-NEXT: rshrn v0.4h, v0.4s, #13 +; CHECK-NEXT: ushll v0.4s, v0.4h, #0 ; CHECK-NEXT: ret entry: %vrshrn_n1 = tail call <4 x i16> @llvm.aarch64.neon.rshrn.v4i16(<4 x i32> %a, i32 13) @@ -3550,9 +4335,9 @@ entry: define <4 x i16> @mul_rshrn(<4 x i32> noundef %a) { ; CHECK-LABEL: mul_rshrn: ; CHECK: // %bb.0: // %entry -; CHECK-NEXT: movi.4s v1, #3 -; CHECK-NEXT: add.4s v0, v0, v1 -; CHECK-NEXT: rshrn.4h v0, v0, #13 +; CHECK-NEXT: movi v1.4s, #3 +; CHECK-NEXT: add v0.4s, v0.4s, v1.4s +; CHECK-NEXT: rshrn v0.4h, v0.4s, #13 ; CHECK-NEXT: ret entry: %b = add <4 x i32> %a, @@ -3561,15 +4346,61 @@ entry: } define <8 x i16> @signbits_vashr(<8 x i16> %a) { -; CHECK-LABEL: signbits_vashr: -; CHECK: // %bb.0: -; CHECK-NEXT: sshr.8h v0, v0, #8 -; CHECK-NEXT: sshr.8h v0, v0, #9 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: signbits_vashr: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: sshr v0.8h, v0.8h, #8 +; CHECK-SD-NEXT: sshr v0.8h, v0.8h, #9 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: signbits_vashr: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mvni v1.8h, #7 +; CHECK-GI-NEXT: mvni v2.8h, #8 +; CHECK-GI-NEXT: sshl v0.8h, v0.8h, v1.8h +; CHECK-GI-NEXT: sshl v0.8h, v0.8h, v2.8h +; CHECK-GI-NEXT: sshr v0.8h, v0.8h, #7 +; CHECK-GI-NEXT: ret %b = call <8 x i16> @llvm.aarch64.neon.sshl.v8i16(<8 x i16> %a, <8 x i16> ) %c = call <8 x i16> @llvm.aarch64.neon.sshl.v8i16(<8 x i16> %b, <8 x i16> ) %d = ashr <8 x i16> %c, ret <8 x i16> %d } +define <2 x i8> @lshr_trunc_v2i64_v2i8(<2 x i64> %a) { +; CHECK-LABEL: lshr_trunc_v2i64_v2i8: +; CHECK: // %bb.0: +; CHECK-NEXT: shrn v0.2s, v0.2d, #16 +; CHECK-NEXT: ret + %b = lshr <2 x i64> %a, + %c = trunc <2 x i64> %b to <2 x i8> + ret <2 x i8> %c +} + +define <2 x i8> @ashr_trunc_v2i64_v2i8(<2 x i64> %a) { +; CHECK-LABEL: ashr_trunc_v2i64_v2i8: +; CHECK: // %bb.0: +; CHECK-NEXT: shrn v0.2s, v0.2d, #16 +; CHECK-NEXT: ret + %b = ashr <2 x i64> %a, + %c = trunc <2 x i64> %b to <2 x i8> + ret <2 x i8> %c +} + +define <2 x i8> @shl_trunc_v2i64_v2i8(<2 x i64> %a) { +; CHECK-SD-LABEL: shl_trunc_v2i64_v2i8: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: xtn v0.2s, v0.2d +; CHECK-SD-NEXT: shl v0.2s, v0.2s, #16 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shl_trunc_v2i64_v2i8: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: shl v0.2d, v0.2d, #16 +; CHECK-GI-NEXT: xtn v0.2s, v0.2d +; CHECK-GI-NEXT: ret + %b = shl <2 x i64> %a, + %c = trunc <2 x i64> %b to <2 x i8> + ret <2 x i8> %c +} + declare <2 x i64> @llvm.aarch64.neon.addp.v2i64(<2 x i64>, <2 x i64>) diff --git a/llvm/test/CodeGen/AArch64/blr-bti-preserves-operands.mir b/llvm/test/CodeGen/AArch64/blr-bti-preserves-operands.mir index 6d4f21fdee950..760ae4794e304 100644 --- a/llvm/test/CodeGen/AArch64/blr-bti-preserves-operands.mir +++ b/llvm/test/CodeGen/AArch64/blr-bti-preserves-operands.mir @@ -8,7 +8,7 @@ # The arguments to the call must become implicit arguments, because the branch # only expects to get 1 explicit operand which is the branch target. -# CHECK: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $w30_hi, implicit-def $sp, implicit-def $wsp, implicit-def $wsp_hi, implicit $sp, implicit $x0, implicit $w1 { +# CHECK: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit $sp, implicit $x0, implicit $w1 { # CHECK: BL @_setjmp, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $x0, implicit $w1, implicit-def dead $lr, implicit $sp, implicit-def $sp # CHECK: HINT 36 # CHECK: } diff --git a/llvm/test/CodeGen/Generic/cgdata-merge-crash.ll b/llvm/test/CodeGen/AArch64/cgdata-merge-crash.ll similarity index 100% rename from llvm/test/CodeGen/Generic/cgdata-merge-crash.ll rename to llvm/test/CodeGen/AArch64/cgdata-merge-crash.ll diff --git a/llvm/test/ThinLTO/AArch64/cgdata-merge-local.ll b/llvm/test/CodeGen/AArch64/cgdata-merge-local.ll similarity index 87% rename from llvm/test/ThinLTO/AArch64/cgdata-merge-local.ll rename to llvm/test/CodeGen/AArch64/cgdata-merge-local.ll index 660ffe6109948..608fe29e17398 100644 --- a/llvm/test/ThinLTO/AArch64/cgdata-merge-local.ll +++ b/llvm/test/CodeGen/AArch64/cgdata-merge-local.ll @@ -2,9 +2,9 @@ ; while parameterizing a difference in their global variables, g1 and g2. ; To achieve this, we create two instances of the global merging function, f1.Tgm and f2.Tgm, ; which are tail-called from thunks f1 and f2 respectively. -; These identical functions, f1.Tgm and f2.Tgm, will be folded by the linker via Identical Code Folding (IFC). +; These identical functions, f1.Tgm and f2.Tgm, will be folded by the linker via Identical Code Folding (ICF). -; RUN: opt -S --passes=global-merge-func %s | FileCheck %s +; RUN: opt -mtriple=arm64-apple-darwin -S --passes=global-merge-func %s | FileCheck %s ; A merging instance is created with additional parameter. ; CHECK: define internal i32 @f1.Tgm(i32 %0, ptr %1) @@ -38,8 +38,8 @@ ; CHECK-NEXT: %1 = tail call i32 @f2.Tgm(i32 %a, ptr @g2) ; CHECK-NEXT: ret i32 %1 -; RUN: llc -enable-global-merge-func=true < %s | FileCheck %s --check-prefix=MERGE -; RUN: llc -enable-global-merge-func=false < %s | FileCheck %s --check-prefix=NOMERGE +; RUN: llc -mtriple=arm64-apple-darwin -enable-global-merge-func=true < %s | FileCheck %s --check-prefix=MERGE +; RUN: llc -mtriple=arm64-apple-darwin -enable-global-merge-func=false < %s | FileCheck %s --check-prefix=NOMERGE ; MERGE: _f1.Tgm ; MERGE: _f2.Tgm @@ -47,9 +47,6 @@ ; NOMERGE-NOT: _f1.Tgm ; NOMERGE-NOT: _f2.Tgm -target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" -target triple = "arm64-unknown-ios12.0.0" - @g = external local_unnamed_addr global [0 x i32], align 4 @g1 = external global i32, align 4 @g2 = external global i32, align 4 diff --git a/llvm/test/CodeGen/AArch64/cgdata-merge-no-params.ll b/llvm/test/CodeGen/AArch64/cgdata-merge-no-params.ll new file mode 100644 index 0000000000000..10f0e10f11d66 --- /dev/null +++ b/llvm/test/CodeGen/AArch64/cgdata-merge-no-params.ll @@ -0,0 +1,39 @@ +; This test verifies whether two identical functions, f1 and f2, can be merged +; locally using the global merge function. +; The functions, f1.Tgm and f2.Tgm, will be folded by the linker through +; Identical Code Folding (ICF). +; While identical functions can already be folded by the linker, creating this +; canonical form can be beneficial in downstream passes. This merging process +; can be controlled by the -global-merging-skip-no-params option. + +; RUN: llc -mtriple=arm64-apple-darwin -enable-global-merge-func=true -global-merging-skip-no-params=false < %s | FileCheck %s --check-prefix=MERGE +; RUN: llc -mtriple=arm64-apple-darwin -enable-global-merge-func=true -global-merging-skip-no-params=true < %s | FileCheck %s --implicit-check-not=".Tgm" + +; MERGE: _f1.Tgm +; MERGE: _f2.Tgm + +@g = external local_unnamed_addr global [0 x i32], align 4 +@g1 = external global i32, align 4 +@g2 = external global i32, align 4 + +define i32 @f1(i32 %a) { +entry: + %idxprom = sext i32 %a to i64 + %arrayidx = getelementptr inbounds [0 x i32], [0 x i32]* @g, i64 0, i64 %idxprom + %0 = load i32, i32* %arrayidx, align 4 + %1 = load volatile i32, i32* @g1, align 4 + %mul = mul nsw i32 %1, %0 + %add = add nsw i32 %mul, 1 + ret i32 %add +} + +define i32 @f2(i32 %a) { +entry: + %idxprom = sext i32 %a to i64 + %arrayidx = getelementptr inbounds [0 x i32], [0 x i32]* @g, i64 0, i64 %idxprom + %0 = load i32, i32* %arrayidx, align 4 + %1 = load volatile i32, i32* @g1, align 4 + %mul = mul nsw i32 %1, %0 + %add = add nsw i32 %mul, 1 + ret i32 %add +} diff --git a/llvm/test/CodeGen/AArch64/concat-vector.ll b/llvm/test/CodeGen/AArch64/concat-vector.ll index d9aaae20afc69..d4d89a7c9c22e 100644 --- a/llvm/test/CodeGen/AArch64/concat-vector.ll +++ b/llvm/test/CodeGen/AArch64/concat-vector.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc -mtriple=aarch64 -global-isel -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc -mtriple=aarch64 -global-isel %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GI define <4 x i8> @concat1(<2 x i8> %A, <2 x i8> %B) { ; CHECK-SD-LABEL: concat1: diff --git a/llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir b/llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir index f9878adfe5e44..ffa7453e48b4f 100644 --- a/llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir +++ b/llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir @@ -91,10 +91,10 @@ body: | ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: [[LOADgot:%[0-9]+]]:gpr64common = LOADgot target-flags(aarch64-got) @c ; CHECK-NEXT: [[LDRDui:%[0-9]+]]:fpr64 = LDRDui [[LOADgot]], 0 :: (dereferenceable load (s64) from @c) - ; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 3735562 /* regdef:FPR64 */, def %2, 2147483657 /* reguse tiedto:$0 */, [[LDRDui]](tied-def 3) + ; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 3342346 /* regdef:FPR64 */, def %2, 2147483657 /* reguse tiedto:$0 */, [[LDRDui]](tied-def 3) ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY %2 ; CHECK-NEXT: [[LDRDui1:%[0-9]+]]:fpr64 = LDRDui [[LOADgot]], 0 :: (dereferenceable load (s64) from @c) - ; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 3735562 /* regdef:FPR64 */, def %4, 2147483657 /* reguse tiedto:$0 */, [[LDRDui1]](tied-def 3) + ; CHECK-NEXT: INLINEASM &"", 1 /* sideeffect attdialect */, 3342346 /* regdef:FPR64 */, def %4, 2147483657 /* reguse tiedto:$0 */, [[LDRDui1]](tied-def 3) ; CHECK-NEXT: [[FNEGDr:%[0-9]+]]:fpr64 = FNEGDr %2 ; CHECK-NEXT: nofpexcept FCMPDrr %4, killed [[FNEGDr]], implicit-def $nzcv, implicit $fpcr ; CHECK-NEXT: Bcc 1, %bb.2, implicit $nzcv @@ -111,10 +111,10 @@ body: | %6:gpr64common = LOADgot target-flags(aarch64-got) @c %3:fpr64 = LDRDui %6, 0 :: (dereferenceable load (s64) from @c) - INLINEASM &"", 1 /* sideeffect attdialect */, 3735562 /* regdef:FPR64 */, def %2, 2147483657 /* reguse tiedto:$0 */, %3(tied-def 3) + INLINEASM &"", 1 /* sideeffect attdialect */, 3342346 /* regdef:FPR64 */, def %2, 2147483657 /* reguse tiedto:$0 */, %3(tied-def 3) %0:fpr64 = COPY %2 %5:fpr64 = LDRDui %6, 0 :: (dereferenceable load (s64) from @c) - INLINEASM &"", 1 /* sideeffect attdialect */, 3735562 /* regdef:FPR64 */, def %4, 2147483657 /* reguse tiedto:$0 */, %5(tied-def 3) + INLINEASM &"", 1 /* sideeffect attdialect */, 3342346 /* regdef:FPR64 */, def %4, 2147483657 /* reguse tiedto:$0 */, %5(tied-def 3) %7:fpr64 = FNEGDr %2 nofpexcept FCMPDrr %4, killed %7, implicit-def $nzcv, implicit $fpcr Bcc 1, %bb.2, implicit $nzcv diff --git a/llvm/test/CodeGen/AArch64/expand-blr-rvmarker-pseudo.mir b/llvm/test/CodeGen/AArch64/expand-blr-rvmarker-pseudo.mir index 89102a8c3770d..b1e48346c2746 100644 --- a/llvm/test/CodeGen/AArch64/expand-blr-rvmarker-pseudo.mir +++ b/llvm/test/CodeGen/AArch64/expand-blr-rvmarker-pseudo.mir @@ -39,7 +39,7 @@ # CHECK: bb.0: # CHECK-NEXT: liveins: # CHECK-NEXT: {{ $}} -# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $w30_hi, implicit-def $sp, implicit-def $wsp, implicit-def $wsp_hi, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit-def $w29_hi, implicit $x0, implicit $sp, implicit $xzr, implicit $fp { +# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit $x0, implicit $sp, implicit $xzr, implicit $fp { # CHECK-NEXT: BLR $x0, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0 # CHECK-NEXT: ORRXrs $xzr, $fp, 0 # CHECK-NEXT: BL @attachedcall, implicit-def $lr, implicit internal $sp @@ -62,7 +62,7 @@ body: | # CHECK: bb.0: # CHECK-NEXT: liveins: # CHECK-NEXT: {{ $}} -# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $w30_hi, implicit-def $sp, implicit-def $wsp, implicit-def $wsp_hi, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit-def $w29_hi, implicit $sp, implicit $x0, implicit $xzr, implicit $fp { +# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit $sp, implicit $x0, implicit $xzr, implicit $fp { # CHECK-NEXT: BL @foo, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $x0, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0 # CHECK-NEXT: $fp = ORRXrs $xzr, $fp, 0 # CHECK-NEXT: BL @attachedcall, implicit-def $lr, implicit internal $sp @@ -82,7 +82,7 @@ body: | # CHECK: bb.0: # CHECK-NEXT: liveins: # CHECK-NEXT: {{ $}} -# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $w30_hi, implicit-def $sp, implicit-def $wsp, implicit-def $wsp_hi, implicit-def $x0, implicit-def $w0, implicit-def $w0_hi, implicit-def $fp, implicit-def $w29, implicit-def $w29_hi, implicit $sp, implicit $x0, implicit $x1, implicit $x2, implicit $xzr, implicit $fp { +# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def $x0, implicit-def $w0, implicit-def $fp, implicit-def $w29, implicit $sp, implicit $x0, implicit $x1, implicit $x2, implicit $xzr, implicit $fp { # CHECK-NEXT: BL @foo, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $x0 # CHECK-NEXT: $fp = ORRXrs $xzr, $fp, 0 # CHECK-NEXT: BL @attachedcall, implicit-def $lr, implicit internal $sp @@ -102,7 +102,7 @@ body: | # CHECK: bb.0: # CHECK-NEXT: liveins: # CHECK-NEXT: {{ $}} -# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $w30_hi, implicit-def $sp, implicit-def $wsp, implicit-def $wsp_hi, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit-def $w29_hi, implicit $sp, implicit $w0, implicit $w1, implicit $xzr, implicit $fp { +# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit $sp, implicit $w0, implicit $w1, implicit $xzr, implicit $fp { # CHECK-NEXT: BL @foo, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit $w1, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0 # CHECK-NEXT: $fp = ORRXrs $xzr, $fp, 0 # CHECK-NEXT: BL @attachedcall, implicit-def $lr, implicit internal $sp @@ -123,7 +123,7 @@ body: | # CHECK: bb.0: # CHECK-NEXT: liveins: # CHECK-NEXT: {{ $}} -# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $w30_hi, implicit-def $sp, implicit-def $wsp, implicit-def $wsp_hi, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit-def $w29_hi, implicit $x8, implicit $sp, implicit $w0, implicit $w1, implicit $xzr, implicit $fp { +# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit $x8, implicit $sp, implicit $w0, implicit $w1, implicit $xzr, implicit $fp { # CHECK-NEXT: BLR $x8, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit $w1, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0 # CHECK-NEXT: $fp = ORRXrs $xzr, $fp, 0 # CHECK-NEXT: BL @attachedcall, implicit-def $lr, implicit internal $sp @@ -145,7 +145,7 @@ body: | # CHECK: bb.0: # CHECK-NEXT: liveins: # CHECK-NEXT: {{ $}} -# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $w30_hi, implicit-def $sp, implicit-def $wsp, implicit-def $wsp_hi, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit-def $w29_hi, implicit $sp, implicit undef $x0, implicit $xzr, implicit $fp { +# CHECK-NEXT: BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit $sp, implicit undef $x0, implicit $xzr, implicit $fp { # CHECK-NEXT: BL @foo, csr_darwin_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit undef $x0, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0 # CHECK-NEXT: $fp = ORRXrs $xzr, $fp, 0 # CHECK-NEXT: BL @objc_retainAutoreleasedReturnValue, implicit-def $lr, implicit internal $sp diff --git a/llvm/test/CodeGen/AArch64/extract-subvec-combine.ll b/llvm/test/CodeGen/AArch64/extract-subvec-combine.ll index 43c6e01911462..75d55773b3681 100644 --- a/llvm/test/CodeGen/AArch64/extract-subvec-combine.ll +++ b/llvm/test/CodeGen/AArch64/extract-subvec-combine.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=aarch64-linux-gnu < %s | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc -mtriple=aarch64 -global-isel -global-isel-abort=2 -verify-machineinstrs %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc -mtriple=aarch64 -global-isel -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GI define <2 x i32> @and_extract_zext_idx0(<4 x i16> %vec) nounwind { ; CHECK-SD-LABEL: and_extract_zext_idx0: diff --git a/llvm/test/CodeGen/AArch64/extract-vector-elt-sve.ll b/llvm/test/CodeGen/AArch64/extract-vector-elt-sve.ll index d18af3d5ae945..7705d8949ca1e 100644 --- a/llvm/test/CodeGen/AArch64/extract-vector-elt-sve.ll +++ b/llvm/test/CodeGen/AArch64/extract-vector-elt-sve.ll @@ -2,6 +2,13 @@ ; RUN: llc -mtriple=aarch64 -mattr=+sve -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD ; RUN: llc -mtriple=aarch64 -mattr=+sve -aarch64-enable-gisel-sve=1 -global-isel -global-isel-abort=2 -verify-machineinstrs %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; CHECK-GI: warning: Instruction selection used fallback path for insert_vscale_8_i16_zero +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for insert_vscale_8_i16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for insert_vscale_16_i8_zero +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for insert_vscale_16_i8 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for extract_vscale_16_i8 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for extract_vscale_16_i8_zero + define @insert_vscale_2_i64_zero( %vec, i64 %elt) { ; CHECK-SD-LABEL: insert_vscale_2_i64_zero: ; CHECK-SD: // %bb.0: // %entry diff --git a/llvm/test/CodeGen/AArch64/fcvt-fixed.ll b/llvm/test/CodeGen/AArch64/fcvt-fixed.ll index 7056a4d28fed3..51aad4fe25d3b 100644 --- a/llvm/test/CodeGen/AArch64/fcvt-fixed.ll +++ b/llvm/test/CodeGen/AArch64/fcvt-fixed.ll @@ -1,164 +1,308 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu | FileCheck %s --check-prefixes=CHECK,CHECK-NO16 -; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mattr=+fullfp16 | FileCheck %s --check-prefixes=CHECK,CHECK-FP16 +; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu | FileCheck %s --check-prefixes=CHECK,CHECK-SD,CHECK-NO16,CHECK-SD-NO16 +; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mattr=+fullfp16 | FileCheck %s --check-prefixes=CHECK,CHECK-SD,CHECK-FP16,CHECK-SD-FP16 +; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-NO16,CHECK-GI-NO16 +; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mattr=+fullfp16 -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-FP16,CHECK-GI-FP16 ; fptoui define i32 @fcvtzs_f32_i32_7(float %flt) { -; CHECK-LABEL: fcvtzs_f32_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs w0, s0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_f32_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs w0, s0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_f32_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzs w0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 128.0 %cvt = fptosi float %fix to i32 ret i32 %cvt } define i32 @fcvtzs_f32_i32_32(float %flt) { -; CHECK-LABEL: fcvtzs_f32_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs w0, s0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_f32_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs w0, s0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_f32_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov w8, #1333788672 // =0x4f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzs w0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 4294967296.0 %cvt = fptosi float %fix to i32 ret i32 %cvt } define i64 @fcvtzs_f32_i64_7(float %flt) { -; CHECK-LABEL: fcvtzs_f32_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs x0, s0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_f32_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs x0, s0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_f32_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzs x0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 128.0 %cvt = fptosi float %fix to i64 ret i64 %cvt } define i64 @fcvtzs_f32_i64_64(float %flt) { -; CHECK-LABEL: fcvtzs_f32_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs x0, s0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_f32_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs x0, s0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_f32_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov w8, #1602224128 // =0x5f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzs x0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 18446744073709551616.0 %cvt = fptosi float %fix to i64 ret i64 %cvt } define i32 @fcvtzs_f64_i32_7(double %dbl) { -; CHECK-LABEL: fcvtzs_f64_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs w0, d0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_f64_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs w0, d0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_f64_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzs w0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 128.0 %cvt = fptosi double %fix to i32 ret i32 %cvt } define i32 @fcvtzs_f64_i32_32(double %dbl) { -; CHECK-LABEL: fcvtzs_f64_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs w0, d0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_f64_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs w0, d0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_f64_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4751297606875873280 // =0x41f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzs w0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 4294967296.0 %cvt = fptosi double %fix to i32 ret i32 %cvt } define i64 @fcvtzs_f64_i64_7(double %dbl) { -; CHECK-LABEL: fcvtzs_f64_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs x0, d0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_f64_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs x0, d0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_f64_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzs x0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 128.0 %cvt = fptosi double %fix to i64 ret i64 %cvt } define i64 @fcvtzs_f64_i64_64(double %dbl) { -; CHECK-LABEL: fcvtzs_f64_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs x0, d0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_f64_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs x0, d0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_f64_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4895412794951729152 // =0x43f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzs x0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 18446744073709551616.0 %cvt = fptosi double %fix to i64 ret i64 %cvt } define i32 @fcvtzs_f16_i32_7(half %flt) { -; CHECK-NO16-LABEL: fcvtzs_f16_i32_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #67, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzs w0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzs_f16_i32_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzs w0, h0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzs_f16_i32_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzs w0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzs_f16_i32_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzs w0, h0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzs_f16_i32_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzs w0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzs_f16_i32_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI8_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI8_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzs w0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %flt, 128.0 %cvt = fptosi half %fix to i32 ret i32 %cvt } define i32 @fcvtzs_f16_i32_15(half %flt) { -; CHECK-NO16-LABEL: fcvtzs_f16_i32_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #71, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzs w0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzs_f16_i32_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzs w0, h0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzs_f16_i32_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #71, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzs w0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzs_f16_i32_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzs w0, h0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzs_f16_i32_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzs w0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzs_f16_i32_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI9_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI9_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzs w0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %flt, 32768.0 %cvt = fptosi half %fix to i32 ret i32 %cvt } define i64 @fcvtzs_f16_i64_7(half %flt) { -; CHECK-NO16-LABEL: fcvtzs_f16_i64_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #67, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzs x0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzs_f16_i64_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzs x0, h0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzs_f16_i64_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzs x0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzs_f16_i64_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzs x0, h0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzs_f16_i64_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzs x0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzs_f16_i64_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI10_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI10_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzs x0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %flt, 128.0 %cvt = fptosi half %fix to i64 ret i64 %cvt } define i64 @fcvtzs_f16_i64_15(half %flt) { -; CHECK-NO16-LABEL: fcvtzs_f16_i64_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #71, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzs x0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzs_f16_i64_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzs x0, h0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzs_f16_i64_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #71, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzs x0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzs_f16_i64_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzs x0, h0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzs_f16_i64_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzs x0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzs_f16_i64_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI11_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI11_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzs x0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %flt, 32768.0 %cvt = fptosi half %fix to i64 ret i64 %cvt @@ -167,160 +311,302 @@ define i64 @fcvtzs_f16_i64_15(half %flt) { ; fptoui define i32 @fcvtzu_f32_i32_7(float %flt) { -; CHECK-LABEL: fcvtzu_f32_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu w0, s0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_f32_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu w0, s0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_f32_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzu w0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 128.0 %cvt = fptoui float %fix to i32 ret i32 %cvt } define i32 @fcvtzu_f32_i32_32(float %flt) { -; CHECK-LABEL: fcvtzu_f32_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu w0, s0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_f32_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu w0, s0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_f32_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov w8, #1333788672 // =0x4f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzu w0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 4294967296.0 %cvt = fptoui float %fix to i32 ret i32 %cvt } define i64 @fcvtzu_f32_i64_7(float %flt) { -; CHECK-LABEL: fcvtzu_f32_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu x0, s0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_f32_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu x0, s0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_f32_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzu x0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 128.0 %cvt = fptoui float %fix to i64 ret i64 %cvt } define i64 @fcvtzu_f32_i64_64(float %flt) { -; CHECK-LABEL: fcvtzu_f32_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu x0, s0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_f32_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu x0, s0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_f32_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov w8, #1602224128 // =0x5f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzu x0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 18446744073709551616.0 %cvt = fptoui float %fix to i64 ret i64 %cvt } define i32 @fcvtzu_f64_i32_7(double %dbl) { -; CHECK-LABEL: fcvtzu_f64_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu w0, d0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_f64_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu w0, d0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_f64_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzu w0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 128.0 %cvt = fptoui double %fix to i32 ret i32 %cvt } define i32 @fcvtzu_f64_i32_32(double %dbl) { -; CHECK-LABEL: fcvtzu_f64_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu w0, d0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_f64_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu w0, d0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_f64_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4751297606875873280 // =0x41f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzu w0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 4294967296.0 %cvt = fptoui double %fix to i32 ret i32 %cvt } define i64 @fcvtzu_f64_i64_7(double %dbl) { -; CHECK-LABEL: fcvtzu_f64_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu x0, d0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_f64_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu x0, d0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_f64_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzu x0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 128.0 %cvt = fptoui double %fix to i64 ret i64 %cvt } define i64 @fcvtzu_f64_i64_64(double %dbl) { -; CHECK-LABEL: fcvtzu_f64_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu x0, d0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_f64_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu x0, d0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_f64_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4895412794951729152 // =0x43f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzu x0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 18446744073709551616.0 %cvt = fptoui double %fix to i64 ret i64 %cvt } define i32 @fcvtzu_f16_i32_7(half %flt) { -; CHECK-NO16-LABEL: fcvtzu_f16_i32_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #67, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzu w0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzu_f16_i32_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzu w0, h0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzu_f16_i32_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzu w0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzu_f16_i32_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzu w0, h0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzu_f16_i32_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzu w0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzu_f16_i32_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI20_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI20_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzu w0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %flt, 128.0 %cvt = fptoui half %fix to i32 ret i32 %cvt } define i32 @fcvtzu_f16_i32_15(half %flt) { -; CHECK-NO16-LABEL: fcvtzu_f16_i32_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #71, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzu w0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzu_f16_i32_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzu w0, h0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzu_f16_i32_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #71, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzu w0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzu_f16_i32_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzu w0, h0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzu_f16_i32_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzu w0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzu_f16_i32_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI21_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI21_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzu w0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %flt, 32768.0 %cvt = fptoui half %fix to i32 ret i32 %cvt } define i64 @fcvtzu_f16_i64_7(half %flt) { -; CHECK-NO16-LABEL: fcvtzu_f16_i64_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #67, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzu x0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzu_f16_i64_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzu x0, h0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzu_f16_i64_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzu x0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzu_f16_i64_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzu x0, h0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzu_f16_i64_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzu x0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzu_f16_i64_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI22_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI22_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzu x0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %flt, 128.0 %cvt = fptoui half %fix to i64 ret i64 %cvt } define i64 @fcvtzu_f16_i64_15(half %flt) { -; CHECK-NO16-LABEL: fcvtzu_f16_i64_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #71, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzu x0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzu_f16_i64_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzu x0, h0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzu_f16_i64_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #71, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzu x0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzu_f16_i64_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzu x0, h0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzu_f16_i64_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzu x0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzu_f16_i64_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI23_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI23_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzu x0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %flt, 32768.0 %cvt = fptoui half %fix to i64 ret i64 %cvt @@ -329,160 +615,302 @@ define i64 @fcvtzu_f16_i64_15(half %flt) { ; sitofp define float @scvtf_f32_i32_7(i32 %int) { -; CHECK-LABEL: scvtf_f32_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: scvtf s0, w0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: scvtf_f32_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: scvtf s0, w0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: scvtf_f32_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2s, #67, lsl #24 +; CHECK-GI-NEXT: scvtf s1, w0 +; CHECK-GI-NEXT: fdiv s0, s1, s0 +; CHECK-GI-NEXT: ret %cvt = sitofp i32 %int to float %fix = fdiv float %cvt, 128.0 ret float %fix } define float @scvtf_f32_i32_32(i32 %int) { -; CHECK-LABEL: scvtf_f32_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: scvtf s0, w0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: scvtf_f32_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: scvtf s0, w0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: scvtf_f32_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: scvtf s0, w0 +; CHECK-GI-NEXT: mov w8, #1333788672 // =0x4f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NEXT: ret %cvt = sitofp i32 %int to float %fix = fdiv float %cvt, 4294967296.0 ret float %fix } define float @scvtf_f32_i64_7(i64 %long) { -; CHECK-LABEL: scvtf_f32_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: scvtf s0, x0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: scvtf_f32_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: scvtf s0, x0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: scvtf_f32_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2s, #67, lsl #24 +; CHECK-GI-NEXT: scvtf s1, x0 +; CHECK-GI-NEXT: fdiv s0, s1, s0 +; CHECK-GI-NEXT: ret %cvt = sitofp i64 %long to float %fix = fdiv float %cvt, 128.0 ret float %fix } define float @scvtf_f32_i64_64(i64 %long) { -; CHECK-LABEL: scvtf_f32_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: scvtf s0, x0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: scvtf_f32_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: scvtf s0, x0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: scvtf_f32_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: scvtf s0, x0 +; CHECK-GI-NEXT: mov w8, #1602224128 // =0x5f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NEXT: ret %cvt = sitofp i64 %long to float %fix = fdiv float %cvt, 18446744073709551616.0 ret float %fix } define double @scvtf_f64_i32_7(i32 %int) { -; CHECK-LABEL: scvtf_f64_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: scvtf d0, w0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: scvtf_f64_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: scvtf d0, w0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: scvtf_f64_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: scvtf d0, w0 +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fdiv d0, d0, d1 +; CHECK-GI-NEXT: ret %cvt = sitofp i32 %int to double %fix = fdiv double %cvt, 128.0 ret double %fix } define double @scvtf_f64_i32_32(i32 %int) { -; CHECK-LABEL: scvtf_f64_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: scvtf d0, w0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: scvtf_f64_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: scvtf d0, w0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: scvtf_f64_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: scvtf d0, w0 +; CHECK-GI-NEXT: mov x8, #4751297606875873280 // =0x41f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fdiv d0, d0, d1 +; CHECK-GI-NEXT: ret %cvt = sitofp i32 %int to double %fix = fdiv double %cvt, 4294967296.0 ret double %fix } define double @scvtf_f64_i64_7(i64 %long) { -; CHECK-LABEL: scvtf_f64_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: scvtf d0, x0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: scvtf_f64_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: scvtf d0, x0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: scvtf_f64_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: scvtf d0, x0 +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fdiv d0, d0, d1 +; CHECK-GI-NEXT: ret %cvt = sitofp i64 %long to double %fix = fdiv double %cvt, 128.0 ret double %fix } define double @scvtf_f64_i64_64(i64 %long) { -; CHECK-LABEL: scvtf_f64_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: scvtf d0, x0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: scvtf_f64_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: scvtf d0, x0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: scvtf_f64_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: scvtf d0, x0 +; CHECK-GI-NEXT: mov x8, #4895412794951729152 // =0x43f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fdiv d0, d0, d1 +; CHECK-GI-NEXT: ret %cvt = sitofp i64 %long to double %fix = fdiv double %cvt, 18446744073709551616.0 ret double %fix } define half @scvtf_f16_i32_7(i32 %int) { -; CHECK-NO16-LABEL: scvtf_f16_i32_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: scvtf s1, w0 -; CHECK-NO16-NEXT: movi v0.2s, #60, lsl #24 -; CHECK-NO16-NEXT: fcvt h1, s1 -; CHECK-NO16-NEXT: fcvt s1, h1 -; CHECK-NO16-NEXT: fmul s0, s1, s0 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: scvtf_f16_i32_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: scvtf h0, w0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: scvtf_f16_i32_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: scvtf s1, w0 +; CHECK-SD-NO16-NEXT: movi v0.2s, #60, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt h1, s1 +; CHECK-SD-NO16-NEXT: fcvt s1, h1 +; CHECK-SD-NO16-NEXT: fmul s0, s1, s0 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: scvtf_f16_i32_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: scvtf h0, w0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: scvtf_f16_i32_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: scvtf s0, w0 +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: scvtf_f16_i32_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: scvtf h0, w0 +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI32_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI32_0] +; CHECK-GI-FP16-NEXT: fdiv h0, h0, h1 +; CHECK-GI-FP16-NEXT: ret %cvt = sitofp i32 %int to half %fix = fdiv half %cvt, 128.0 ret half %fix } define half @scvtf_f16_i32_15(i32 %int) { -; CHECK-NO16-LABEL: scvtf_f16_i32_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: scvtf s1, w0 -; CHECK-NO16-NEXT: movi v0.2s, #56, lsl #24 -; CHECK-NO16-NEXT: fcvt h1, s1 -; CHECK-NO16-NEXT: fcvt s1, h1 -; CHECK-NO16-NEXT: fmul s0, s1, s0 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: scvtf_f16_i32_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: scvtf h0, w0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: scvtf_f16_i32_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: scvtf s1, w0 +; CHECK-SD-NO16-NEXT: movi v0.2s, #56, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt h1, s1 +; CHECK-SD-NO16-NEXT: fcvt s1, h1 +; CHECK-SD-NO16-NEXT: fmul s0, s1, s0 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: scvtf_f16_i32_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: scvtf h0, w0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: scvtf_f16_i32_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: scvtf s0, w0 +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: scvtf_f16_i32_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: scvtf h0, w0 +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI33_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI33_0] +; CHECK-GI-FP16-NEXT: fdiv h0, h0, h1 +; CHECK-GI-FP16-NEXT: ret %cvt = sitofp i32 %int to half %fix = fdiv half %cvt, 32768.0 ret half %fix } define half @scvtf_f16_i64_7(i64 %long) { -; CHECK-NO16-LABEL: scvtf_f16_i64_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: scvtf s1, x0 -; CHECK-NO16-NEXT: movi v0.2s, #60, lsl #24 -; CHECK-NO16-NEXT: fcvt h1, s1 -; CHECK-NO16-NEXT: fcvt s1, h1 -; CHECK-NO16-NEXT: fmul s0, s1, s0 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: scvtf_f16_i64_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: scvtf h0, x0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: scvtf_f16_i64_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: scvtf s1, x0 +; CHECK-SD-NO16-NEXT: movi v0.2s, #60, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt h1, s1 +; CHECK-SD-NO16-NEXT: fcvt s1, h1 +; CHECK-SD-NO16-NEXT: fmul s0, s1, s0 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: scvtf_f16_i64_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: scvtf h0, x0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: scvtf_f16_i64_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: scvtf s0, x0 +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: scvtf_f16_i64_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: scvtf h0, x0 +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI34_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI34_0] +; CHECK-GI-FP16-NEXT: fdiv h0, h0, h1 +; CHECK-GI-FP16-NEXT: ret %cvt = sitofp i64 %long to half %fix = fdiv half %cvt, 128.0 ret half %fix } define half @scvtf_f16_i64_15(i64 %long) { -; CHECK-NO16-LABEL: scvtf_f16_i64_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: scvtf s1, x0 -; CHECK-NO16-NEXT: movi v0.2s, #56, lsl #24 -; CHECK-NO16-NEXT: fcvt h1, s1 -; CHECK-NO16-NEXT: fcvt s1, h1 -; CHECK-NO16-NEXT: fmul s0, s1, s0 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: scvtf_f16_i64_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: scvtf h0, x0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: scvtf_f16_i64_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: scvtf s1, x0 +; CHECK-SD-NO16-NEXT: movi v0.2s, #56, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt h1, s1 +; CHECK-SD-NO16-NEXT: fcvt s1, h1 +; CHECK-SD-NO16-NEXT: fmul s0, s1, s0 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: scvtf_f16_i64_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: scvtf h0, x0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: scvtf_f16_i64_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: scvtf s0, x0 +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: scvtf_f16_i64_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: scvtf h0, x0 +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI35_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI35_0] +; CHECK-GI-FP16-NEXT: fdiv h0, h0, h1 +; CHECK-GI-FP16-NEXT: ret %cvt = sitofp i64 %long to half %fix = fdiv half %cvt, 32768.0 ret half %fix @@ -491,160 +919,302 @@ define half @scvtf_f16_i64_15(i64 %long) { ; uitofp define float @ucvtf_f32_i32_7(i32 %int) { -; CHECK-LABEL: ucvtf_f32_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: ucvtf s0, w0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ucvtf_f32_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ucvtf s0, w0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ucvtf_f32_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2s, #67, lsl #24 +; CHECK-GI-NEXT: ucvtf s1, w0 +; CHECK-GI-NEXT: fdiv s0, s1, s0 +; CHECK-GI-NEXT: ret %cvt = uitofp i32 %int to float %fix = fdiv float %cvt, 128.0 ret float %fix } define float @ucvtf_f32_i32_32(i32 %int) { -; CHECK-LABEL: ucvtf_f32_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: ucvtf s0, w0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ucvtf_f32_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ucvtf s0, w0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ucvtf_f32_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ucvtf s0, w0 +; CHECK-GI-NEXT: mov w8, #1333788672 // =0x4f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NEXT: ret %cvt = uitofp i32 %int to float %fix = fdiv float %cvt, 4294967296.0 ret float %fix } define float @ucvtf_f32_i64_7(i64 %long) { -; CHECK-LABEL: ucvtf_f32_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: ucvtf s0, x0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ucvtf_f32_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ucvtf s0, x0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ucvtf_f32_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v0.2s, #67, lsl #24 +; CHECK-GI-NEXT: ucvtf s1, x0 +; CHECK-GI-NEXT: fdiv s0, s1, s0 +; CHECK-GI-NEXT: ret %cvt = uitofp i64 %long to float %fix = fdiv float %cvt, 128.0 ret float %fix } define float @ucvtf_f32_i64_64(i64 %long) { -; CHECK-LABEL: ucvtf_f32_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: ucvtf s0, x0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ucvtf_f32_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ucvtf s0, x0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ucvtf_f32_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ucvtf s0, x0 +; CHECK-GI-NEXT: mov w8, #1602224128 // =0x5f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NEXT: ret %cvt = uitofp i64 %long to float %fix = fdiv float %cvt, 18446744073709551616.0 ret float %fix } define double @ucvtf_f64_i32_7(i32 %int) { -; CHECK-LABEL: ucvtf_f64_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: ucvtf d0, w0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ucvtf_f64_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ucvtf d0, w0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ucvtf_f64_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ucvtf d0, w0 +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fdiv d0, d0, d1 +; CHECK-GI-NEXT: ret %cvt = uitofp i32 %int to double %fix = fdiv double %cvt, 128.0 ret double %fix } define double @ucvtf_f64_i32_32(i32 %int) { -; CHECK-LABEL: ucvtf_f64_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: ucvtf d0, w0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ucvtf_f64_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ucvtf d0, w0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ucvtf_f64_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ucvtf d0, w0 +; CHECK-GI-NEXT: mov x8, #4751297606875873280 // =0x41f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fdiv d0, d0, d1 +; CHECK-GI-NEXT: ret %cvt = uitofp i32 %int to double %fix = fdiv double %cvt, 4294967296.0 ret double %fix } define double @ucvtf_f64_i64_7(i64 %long) { -; CHECK-LABEL: ucvtf_f64_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: ucvtf d0, x0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ucvtf_f64_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ucvtf d0, x0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ucvtf_f64_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ucvtf d0, x0 +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fdiv d0, d0, d1 +; CHECK-GI-NEXT: ret %cvt = uitofp i64 %long to double %fix = fdiv double %cvt, 128.0 ret double %fix } define double @ucvtf_f64_i64_64(i64 %long) { -; CHECK-LABEL: ucvtf_f64_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: ucvtf d0, x0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: ucvtf_f64_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ucvtf d0, x0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: ucvtf_f64_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ucvtf d0, x0 +; CHECK-GI-NEXT: mov x8, #4895412794951729152 // =0x43f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fdiv d0, d0, d1 +; CHECK-GI-NEXT: ret %cvt = uitofp i64 %long to double %fix = fdiv double %cvt, 18446744073709551616.0 ret double %fix } define half @ucvtf_f16_i32_7(i32 %int) { -; CHECK-NO16-LABEL: ucvtf_f16_i32_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: ucvtf s1, w0 -; CHECK-NO16-NEXT: movi v0.2s, #60, lsl #24 -; CHECK-NO16-NEXT: fcvt h1, s1 -; CHECK-NO16-NEXT: fcvt s1, h1 -; CHECK-NO16-NEXT: fmul s0, s1, s0 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: ucvtf_f16_i32_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: ucvtf h0, w0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: ucvtf_f16_i32_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: ucvtf s1, w0 +; CHECK-SD-NO16-NEXT: movi v0.2s, #60, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt h1, s1 +; CHECK-SD-NO16-NEXT: fcvt s1, h1 +; CHECK-SD-NO16-NEXT: fmul s0, s1, s0 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: ucvtf_f16_i32_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: ucvtf h0, w0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: ucvtf_f16_i32_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: ucvtf s0, w0 +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: ucvtf_f16_i32_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: ucvtf h0, w0 +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI44_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI44_0] +; CHECK-GI-FP16-NEXT: fdiv h0, h0, h1 +; CHECK-GI-FP16-NEXT: ret %cvt = uitofp i32 %int to half %fix = fdiv half %cvt, 128.0 ret half %fix } define half @ucvtf_f16_i32_15(i32 %int) { -; CHECK-NO16-LABEL: ucvtf_f16_i32_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: ucvtf s1, w0 -; CHECK-NO16-NEXT: movi v0.2s, #56, lsl #24 -; CHECK-NO16-NEXT: fcvt h1, s1 -; CHECK-NO16-NEXT: fcvt s1, h1 -; CHECK-NO16-NEXT: fmul s0, s1, s0 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: ucvtf_f16_i32_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: ucvtf h0, w0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: ucvtf_f16_i32_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: ucvtf s1, w0 +; CHECK-SD-NO16-NEXT: movi v0.2s, #56, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt h1, s1 +; CHECK-SD-NO16-NEXT: fcvt s1, h1 +; CHECK-SD-NO16-NEXT: fmul s0, s1, s0 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: ucvtf_f16_i32_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: ucvtf h0, w0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: ucvtf_f16_i32_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: ucvtf s0, w0 +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: ucvtf_f16_i32_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: ucvtf h0, w0 +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI45_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI45_0] +; CHECK-GI-FP16-NEXT: fdiv h0, h0, h1 +; CHECK-GI-FP16-NEXT: ret %cvt = uitofp i32 %int to half %fix = fdiv half %cvt, 32768.0 ret half %fix } define half @ucvtf_f16_i64_7(i64 %long) { -; CHECK-NO16-LABEL: ucvtf_f16_i64_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: ucvtf s1, x0 -; CHECK-NO16-NEXT: movi v0.2s, #60, lsl #24 -; CHECK-NO16-NEXT: fcvt h1, s1 -; CHECK-NO16-NEXT: fcvt s1, h1 -; CHECK-NO16-NEXT: fmul s0, s1, s0 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: ucvtf_f16_i64_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: ucvtf h0, x0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: ucvtf_f16_i64_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: ucvtf s1, x0 +; CHECK-SD-NO16-NEXT: movi v0.2s, #60, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt h1, s1 +; CHECK-SD-NO16-NEXT: fcvt s1, h1 +; CHECK-SD-NO16-NEXT: fmul s0, s1, s0 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: ucvtf_f16_i64_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: ucvtf h0, x0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: ucvtf_f16_i64_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: ucvtf s0, x0 +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: ucvtf_f16_i64_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: ucvtf h0, x0 +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI46_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI46_0] +; CHECK-GI-FP16-NEXT: fdiv h0, h0, h1 +; CHECK-GI-FP16-NEXT: ret %cvt = uitofp i64 %long to half %fix = fdiv half %cvt, 128.0 ret half %fix } define half @ucvtf_f16_i64_15(i64 %long) { -; CHECK-NO16-LABEL: ucvtf_f16_i64_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: ucvtf s1, x0 -; CHECK-NO16-NEXT: movi v0.2s, #56, lsl #24 -; CHECK-NO16-NEXT: fcvt h1, s1 -; CHECK-NO16-NEXT: fcvt s1, h1 -; CHECK-NO16-NEXT: fmul s0, s1, s0 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: ucvtf_f16_i64_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: ucvtf h0, x0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: ucvtf_f16_i64_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: ucvtf s1, x0 +; CHECK-SD-NO16-NEXT: movi v0.2s, #56, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt h1, s1 +; CHECK-SD-NO16-NEXT: fcvt s1, h1 +; CHECK-SD-NO16-NEXT: fmul s0, s1, s0 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: ucvtf_f16_i64_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: ucvtf h0, x0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: ucvtf_f16_i64_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: ucvtf s0, x0 +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fdiv s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: ucvtf_f16_i64_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: ucvtf h0, x0 +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI47_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI47_0] +; CHECK-GI-FP16-NEXT: fdiv h0, h0, h1 +; CHECK-GI-FP16-NEXT: ret %cvt = uitofp i64 %long to half %fix = fdiv half %cvt, 32768.0 ret half %fix @@ -661,150 +1231,285 @@ declare i32 @llvm.fptosi.sat.i32.f16(half) declare i64 @llvm.fptosi.sat.i64.f16(half) define i32 @fcvtzs_sat_f32_i32_7(float %flt) { -; CHECK-LABEL: fcvtzs_sat_f32_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs w0, s0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_sat_f32_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs w0, s0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_sat_f32_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzs w0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 128.0 %cvt = call i32 @llvm.fptosi.sat.i32.f32(float %fix) ret i32 %cvt } define i32 @fcvtzs_sat_f32_i32_32(float %flt) { -; CHECK-LABEL: fcvtzs_sat_f32_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs w0, s0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_sat_f32_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs w0, s0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_sat_f32_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov w8, #1333788672 // =0x4f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzs w0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 4294967296.0 %cvt = call i32 @llvm.fptosi.sat.i32.f32(float %fix) ret i32 %cvt } define i64 @fcvtzs_sat_f32_i64_64(float %flt) { -; CHECK-LABEL: fcvtzs_sat_f32_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs x0, s0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_sat_f32_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs x0, s0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_sat_f32_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov w8, #1602224128 // =0x5f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzs x0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 18446744073709551616.0 %cvt = call i64 @llvm.fptosi.sat.i64.f32(float %fix) ret i64 %cvt } define i32 @fcvtzs_sat_f64_i32_7(double %dbl) { -; CHECK-LABEL: fcvtzs_sat_f64_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs w0, d0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_sat_f64_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs w0, d0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_sat_f64_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzs w0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 128.0 %cvt = call i32 @llvm.fptosi.sat.i32.f64(double %fix) ret i32 %cvt } define i32 @fcvtzs_sat_f64_i32_32(double %dbl) { -; CHECK-LABEL: fcvtzs_sat_f64_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs w0, d0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_sat_f64_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs w0, d0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_sat_f64_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4751297606875873280 // =0x41f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzs w0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 4294967296.0 %cvt = call i32 @llvm.fptosi.sat.i32.f64(double %fix) ret i32 %cvt } define i64 @fcvtzs_sat_f64_i64_7(double %dbl) { -; CHECK-LABEL: fcvtzs_sat_f64_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs x0, d0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_sat_f64_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs x0, d0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_sat_f64_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzs x0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 128.0 %cvt = call i64 @llvm.fptosi.sat.i64.f64(double %fix) ret i64 %cvt } define i64 @fcvtzs_sat_f64_i64_64(double %dbl) { -; CHECK-LABEL: fcvtzs_sat_f64_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzs x0, d0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzs_sat_f64_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzs x0, d0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzs_sat_f64_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4895412794951729152 // =0x43f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzs x0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 18446744073709551616.0 %cvt = call i64 @llvm.fptosi.sat.i64.f64(double %fix) ret i64 %cvt } define i32 @fcvtzs_sat_f16_i32_7(half %dbl) { -; CHECK-NO16-LABEL: fcvtzs_sat_f16_i32_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #67, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzs w0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzs_sat_f16_i32_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzs w0, h0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzs_sat_f16_i32_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzs w0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzs_sat_f16_i32_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzs w0, h0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzs_sat_f16_i32_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzs w0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzs_sat_f16_i32_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI55_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI55_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzs w0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %dbl, 128.0 %cvt = call i32 @llvm.fptosi.sat.i32.f16(half %fix) ret i32 %cvt } define i32 @fcvtzs_sat_f16_i32_15(half %dbl) { -; CHECK-NO16-LABEL: fcvtzs_sat_f16_i32_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #71, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzs w0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzs_sat_f16_i32_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzs w0, h0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzs_sat_f16_i32_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #71, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzs w0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzs_sat_f16_i32_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzs w0, h0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzs_sat_f16_i32_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzs w0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzs_sat_f16_i32_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI56_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI56_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzs w0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %dbl, 32768.0 %cvt = call i32 @llvm.fptosi.sat.i32.f16(half %fix) ret i32 %cvt } define i64 @fcvtzs_sat_f16_i64_7(half %dbl) { -; CHECK-NO16-LABEL: fcvtzs_sat_f16_i64_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #67, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzs x0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzs_sat_f16_i64_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzs x0, h0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzs_sat_f16_i64_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzs x0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzs_sat_f16_i64_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzs x0, h0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzs_sat_f16_i64_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzs x0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzs_sat_f16_i64_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI57_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI57_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzs x0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %dbl, 128.0 %cvt = call i64 @llvm.fptosi.sat.i64.f16(half %fix) ret i64 %cvt } define i64 @fcvtzs_sat_f16_i64_15(half %dbl) { -; CHECK-NO16-LABEL: fcvtzs_sat_f16_i64_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #71, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzs x0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzs_sat_f16_i64_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzs x0, h0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzs_sat_f16_i64_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #71, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzs x0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzs_sat_f16_i64_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzs x0, h0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzs_sat_f16_i64_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzs x0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzs_sat_f16_i64_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI58_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI58_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzs x0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %dbl, 32768.0 %cvt = call i64 @llvm.fptosi.sat.i64.f16(half %fix) ret i64 %cvt @@ -820,151 +1525,290 @@ declare i32 @llvm.fptoui.sat.i32.f16(half) declare i64 @llvm.fptoui.sat.i64.f16(half) define i32 @fcvtzu_sat_f32_i32_7(float %flt) { -; CHECK-LABEL: fcvtzu_sat_f32_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu w0, s0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_sat_f32_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu w0, s0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_sat_f32_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzu w0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 128.0 %cvt = call i32 @llvm.fptoui.sat.i32.f32(float %fix) ret i32 %cvt } define i32 @fcvtzu_sat_f32_i32_32(float %flt) { -; CHECK-LABEL: fcvtzu_sat_f32_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu w0, s0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_sat_f32_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu w0, s0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_sat_f32_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov w8, #1333788672 // =0x4f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzu w0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 4294967296.0 %cvt = call i32 @llvm.fptoui.sat.i32.f32(float %fix) ret i32 %cvt } define i64 @fcvtzu_sat_f32_i64_64(float %flt) { -; CHECK-LABEL: fcvtzu_sat_f32_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu x0, s0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_sat_f32_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu x0, s0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_sat_f32_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov w8, #1602224128 // =0x5f800000 +; CHECK-GI-NEXT: fmov s1, w8 +; CHECK-GI-NEXT: fmul s0, s0, s1 +; CHECK-GI-NEXT: fcvtzu x0, s0 +; CHECK-GI-NEXT: ret %fix = fmul float %flt, 18446744073709551616.0 %cvt = call i64 @llvm.fptoui.sat.i64.f32(float %fix) ret i64 %cvt } define i32 @fcvtzu_sat_f64_i32_7(double %dbl) { -; CHECK-LABEL: fcvtzu_sat_f64_i32_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu w0, d0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_sat_f64_i32_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu w0, d0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_sat_f64_i32_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzu w0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 128.0 %cvt = call i32 @llvm.fptoui.sat.i32.f64(double %fix) ret i32 %cvt } define i32 @fcvtzu_sat_f64_i32_32(double %dbl) { -; CHECK-LABEL: fcvtzu_sat_f64_i32_32: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu w0, d0, #32 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_sat_f64_i32_32: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu w0, d0, #32 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_sat_f64_i32_32: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4751297606875873280 // =0x41f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzu w0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 4294967296.0 %cvt = call i32 @llvm.fptoui.sat.i32.f64(double %fix) ret i32 %cvt } define i64 @fcvtzu_sat_f64_i64_7(double %dbl) { -; CHECK-LABEL: fcvtzu_sat_f64_i64_7: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu x0, d0, #7 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_sat_f64_i64_7: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu x0, d0, #7 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_sat_f64_i64_7: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4638707616191610880 // =0x4060000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzu x0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 128.0 %cvt = call i64 @llvm.fptoui.sat.i64.f64(double %fix) ret i64 %cvt } define i64 @fcvtzu_sat_f64_i64_64(double %dbl) { -; CHECK-LABEL: fcvtzu_sat_f64_i64_64: -; CHECK: // %bb.0: -; CHECK-NEXT: fcvtzu x0, d0, #64 -; CHECK-NEXT: ret +; CHECK-SD-LABEL: fcvtzu_sat_f64_i64_64: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fcvtzu x0, d0, #64 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: fcvtzu_sat_f64_i64_64: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: mov x8, #4895412794951729152 // =0x43f0000000000000 +; CHECK-GI-NEXT: fmov d1, x8 +; CHECK-GI-NEXT: fmul d0, d0, d1 +; CHECK-GI-NEXT: fcvtzu x0, d0 +; CHECK-GI-NEXT: ret %fix = fmul double %dbl, 18446744073709551616.0 %cvt = call i64 @llvm.fptoui.sat.i64.f64(double %fix) ret i64 %cvt } define i32 @fcvtzu_sat_f16_i32_7(half %dbl) { -; CHECK-NO16-LABEL: fcvtzu_sat_f16_i32_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #67, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzu w0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzu_sat_f16_i32_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzu w0, h0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzu_sat_f16_i32_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzu w0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzu_sat_f16_i32_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzu w0, h0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzu_sat_f16_i32_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzu w0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzu_sat_f16_i32_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI66_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI66_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzu w0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %dbl, 128.0 %cvt = call i32 @llvm.fptoui.sat.i32.f16(half %fix) ret i32 %cvt } define i32 @fcvtzu_sat_f16_i32_15(half %dbl) { -; CHECK-NO16-LABEL: fcvtzu_sat_f16_i32_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #71, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzu w0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzu_sat_f16_i32_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzu w0, h0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzu_sat_f16_i32_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #71, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzu w0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzu_sat_f16_i32_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzu w0, h0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzu_sat_f16_i32_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzu w0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzu_sat_f16_i32_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI67_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI67_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzu w0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %dbl, 32768.0 %cvt = call i32 @llvm.fptoui.sat.i32.f16(half %fix) ret i32 %cvt } define i64 @fcvtzu_sat_f16_i64_7(half %dbl) { -; CHECK-NO16-LABEL: fcvtzu_sat_f16_i64_7: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #67, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzu x0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzu_sat_f16_i64_7: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzu x0, h0, #7 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzu_sat_f16_i64_7: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #67, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzu x0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzu_sat_f16_i64_7: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzu x0, h0, #7 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzu_sat_f16_i64_7: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #22528 // =0x5800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzu x0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzu_sat_f16_i64_7: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI68_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI68_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzu x0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %dbl, 128.0 %cvt = call i64 @llvm.fptoui.sat.i64.f16(half %fix) ret i64 %cvt } define i64 @fcvtzu_sat_f16_i64_15(half %dbl) { -; CHECK-NO16-LABEL: fcvtzu_sat_f16_i64_15: -; CHECK-NO16: // %bb.0: -; CHECK-NO16-NEXT: movi v1.2s, #71, lsl #24 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fmul s0, s0, s1 -; CHECK-NO16-NEXT: fcvt h0, s0 -; CHECK-NO16-NEXT: fcvt s0, h0 -; CHECK-NO16-NEXT: fcvtzu x0, s0 -; CHECK-NO16-NEXT: ret -; -; CHECK-FP16-LABEL: fcvtzu_sat_f16_i64_15: -; CHECK-FP16: // %bb.0: -; CHECK-FP16-NEXT: fcvtzu x0, h0, #15 -; CHECK-FP16-NEXT: ret +; CHECK-SD-NO16-LABEL: fcvtzu_sat_f16_i64_15: +; CHECK-SD-NO16: // %bb.0: +; CHECK-SD-NO16-NEXT: movi v1.2s, #71, lsl #24 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fmul s0, s0, s1 +; CHECK-SD-NO16-NEXT: fcvt h0, s0 +; CHECK-SD-NO16-NEXT: fcvt s0, h0 +; CHECK-SD-NO16-NEXT: fcvtzu x0, s0 +; CHECK-SD-NO16-NEXT: ret +; +; CHECK-SD-FP16-LABEL: fcvtzu_sat_f16_i64_15: +; CHECK-SD-FP16: // %bb.0: +; CHECK-SD-FP16-NEXT: fcvtzu x0, h0, #15 +; CHECK-SD-FP16-NEXT: ret +; +; CHECK-GI-NO16-LABEL: fcvtzu_sat_f16_i64_15: +; CHECK-GI-NO16: // %bb.0: +; CHECK-GI-NO16-NEXT: mov w8, #30720 // =0x7800 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fmov s1, w8 +; CHECK-GI-NO16-NEXT: fcvt s1, h1 +; CHECK-GI-NO16-NEXT: fmul s0, s0, s1 +; CHECK-GI-NO16-NEXT: fcvt h0, s0 +; CHECK-GI-NO16-NEXT: fcvt s0, h0 +; CHECK-GI-NO16-NEXT: fcvtzu x0, s0 +; CHECK-GI-NO16-NEXT: ret +; +; CHECK-GI-FP16-LABEL: fcvtzu_sat_f16_i64_15: +; CHECK-GI-FP16: // %bb.0: +; CHECK-GI-FP16-NEXT: adrp x8, .LCPI69_0 +; CHECK-GI-FP16-NEXT: ldr h1, [x8, :lo12:.LCPI69_0] +; CHECK-GI-FP16-NEXT: fmul h0, h0, h1 +; CHECK-GI-FP16-NEXT: fcvtzu x0, h0 +; CHECK-GI-FP16-NEXT: ret %fix = fmul half %dbl, 32768.0 %cvt = call i64 @llvm.fptoui.sat.i64.f16(half %fix) ret i64 %cvt } +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; CHECK: {{.*}} +; CHECK-FP16: {{.*}} +; CHECK-NO16: {{.*}} diff --git a/llvm/test/CodeGen/AArch64/fixed-vector-deinterleave.ll b/llvm/test/CodeGen/AArch64/fixed-vector-deinterleave.ll index bbfec8c7c3361..4ab5db450a7f3 100644 --- a/llvm/test/CodeGen/AArch64/fixed-vector-deinterleave.ll +++ b/llvm/test/CodeGen/AArch64/fixed-vector-deinterleave.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=aarch64-none-linux-gnu %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GI define {<2 x half>, <2 x half>} @vector_deinterleave_v2f16_v4f16(<4 x half> %vec) { ; CHECK-SD-LABEL: vector_deinterleave_v2f16_v4f16: diff --git a/llvm/test/CodeGen/AArch64/fp-intrinsics-fp16.ll b/llvm/test/CodeGen/AArch64/fp-intrinsics-fp16.ll index 4cce06dce44c9..d323a7e677b5a 100644 --- a/llvm/test/CodeGen/AArch64/fp-intrinsics-fp16.ll +++ b/llvm/test/CodeGen/AArch64/fp-intrinsics-fp16.ll @@ -1,11 +1,85 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-NOFP16 ; RUN: llc -mtriple=aarch64 -mattr=+fullfp16 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-FP16 -; RUN: llc -mtriple=aarch64 -global-isel=true -global-isel-abort=2 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-NOFP16 -; RUN: llc -mtriple=aarch64 -global-isel=true -global-isel-abort=2 -mattr=+fullfp16 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-FP16 +; RUN: llc -mtriple=aarch64 -global-isel=true -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc -mtriple=aarch64 -global-isel=true -global-isel-abort=2 -mattr=+fullfp16 %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI ; Check that constrained fp intrinsics are correctly lowered. +; CHECK-GI: warning: Instruction selection used fallback path for add_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sub_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for mul_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for div_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for frem_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fma_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_i32_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_i32_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_i64_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_i64_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f16_i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f16_i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f16_i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f16_i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f16_i128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f16_i128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrt_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for powi_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sin_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cos_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tan_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for asin_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for acos_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan2_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sinh_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cosh_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tanh_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for pow_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log10_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log2_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp2_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for rint_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for nearbyint_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for lrint_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for llrint_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for maxnum_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for minnum_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ceil_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for floor_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for lround_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for llround_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for round_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for roundeven_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for trunc_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ldexp_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_olt_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ole_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ogt_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_oge_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_oeq_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_one_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ult_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ule_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ugt_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_uge_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ueq_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_une_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_olt_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ole_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ogt_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_oge_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_oeq_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_one_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ult_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ule_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ugt_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_uge_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ueq_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_une_f16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptrunc_f16_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fpext_f32_f16 ; Half-precision intrinsics @@ -760,6 +834,21 @@ define half @trunc_f16(half %x) #0 { ret half %val } +define half @ldexp_f16(half %x, i32 %y) #0 { +; CHECK-LABEL: ldexp_f16: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: fcvt s0, h0 +; CHECK-NEXT: bl ldexpf +; CHECK-NEXT: fcvt h0, s0 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret + %val = call half @llvm.experimental.constrained.ldexp.f16.i32(half %x, i32 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 + ret half %val +} + define i32 @fcmp_olt_f16(half %a, half %b) #0 { ; CHECK-NOFP16-LABEL: fcmp_olt_f16: ; CHECK-NOFP16: // %bb.0: diff --git a/llvm/test/CodeGen/AArch64/fp-intrinsics-vector.ll b/llvm/test/CodeGen/AArch64/fp-intrinsics-vector.ll index 6147afba4e603..83e60c1089762 100644 --- a/llvm/test/CodeGen/AArch64/fp-intrinsics-vector.ll +++ b/llvm/test/CodeGen/AArch64/fp-intrinsics-vector.ll @@ -1,9 +1,86 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64 %s -disable-strictnode-mutation -o - | FileCheck %s -; RUN: llc -mtriple=aarch64 -global-isel=true -global-isel-abort=2 -disable-strictnode-mutation %s -o - | FileCheck %s +; RUN: llc -mtriple=aarch64 %s -disable-strictnode-mutation -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD +; RUN: llc -mtriple=aarch64 -global-isel=true -global-isel-abort=2 -disable-strictnode-mutation %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI ; Check that constrained fp vector intrinsics are correctly lowered. +; CHECK-GI: warning: Instruction selection used fallback path for add_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sub_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for mul_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for div_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fma_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_v4i32_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_v4i32_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_v4i64_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_v4i64_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_v4f32_v4i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_v4f32_v4i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_v4f32_v4i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_v4f32_v4i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrt_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for rint_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for nearbyint_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for maxnum_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for minnum_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ceil_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for floor_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for round_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for roundeven_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for trunc_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_v4f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for add_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sub_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for mul_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for div_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fma_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_v2i32_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_v2i32_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_v2i64_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_v2i64_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_v2f64_v2i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_v2f64_v2i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_v2f64_v2i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_v2f64_v2i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrt_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for rint_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for nearbyint_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for maxnum_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for minnum_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ceil_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for floor_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for round_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for roundeven_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for trunc_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for add_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sub_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for mul_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for div_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fma_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_v1i32_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_v1i32_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_v1i64_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_v1i64_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_v1f64_v1i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_v1f64_v1i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_v1f64_v1i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_v1f64_v1i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrt_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for rint_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for nearbyint_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for maxnum_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for minnum_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ceil_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for floor_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for round_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for roundeven_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for trunc_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_v1f61 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_v1f61 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptrunc_v2f32_v2f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fpext_v2f64_v2f32 ; Single-precision intrinsics @@ -882,3 +959,7 @@ declare <1 x i1> @llvm.experimental.constrained.fcmps.v1f64(<1 x double>, <1 x d declare <2 x float> @llvm.experimental.constrained.fptrunc.v2f32.v2f64(<2 x double>, metadata, metadata) declare <2 x double> @llvm.experimental.constrained.fpext.v2f64.v2f32(<2 x float>, metadata) + +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; CHECK-GI: {{.*}} +; CHECK-SD: {{.*}} diff --git a/llvm/test/CodeGen/AArch64/fp-intrinsics.ll b/llvm/test/CodeGen/AArch64/fp-intrinsics.ll index fd3a0c3207606..f2a14a9b73fa1 100644 --- a/llvm/test/CodeGen/AArch64/fp-intrinsics.ll +++ b/llvm/test/CodeGen/AArch64/fp-intrinsics.ll @@ -1,543 +1,1037 @@ -; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s -; RUN: llc -mtriple=aarch64 -global-isel=true -global-isel-abort=2 %s -o - | FileCheck %s +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD +; RUN: llc -mtriple=aarch64 -global-isel=true -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI ; Check that constrained fp intrinsics are correctly lowered. +; CHECK-GI: warning: Instruction selection used fallback path for add_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sub_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for mul_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for div_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for frem_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fma_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_i32_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_i32_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_i64_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_i64_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f32_i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f32_i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f32_i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f32_i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f32_i128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f32_i128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrt_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for powi_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sin_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cos_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tan_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for asin_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for acos_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan2_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sinh_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cosh_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tanh_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for pow_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log10_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log2_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp2_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for rint_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for nearbyint_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for lrint_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for llrint_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for maxnum_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for minnum_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for maximum_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for minimum_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ceil_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for floor_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for lround_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for llround_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for round_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for roundeven_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for trunc_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_olt_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ole_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ogt_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_oge_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_oeq_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_one_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ult_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ule_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ugt_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_uge_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ueq_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_une_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_olt_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ole_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ogt_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_oge_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_oeq_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_one_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ult_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ule_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ugt_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_uge_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ueq_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_une_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for add_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sub_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for mul_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for div_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for frem_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fma_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_i32_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_i32_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_i64_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_i64_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f64_i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f64_i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f64_i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f64_i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f64_i128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f64_i128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrt_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for powi_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sin_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cos_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tan_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for asin_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for acos_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan2_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sinh_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cosh_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tanh_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for pow_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log10_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log2_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp2_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for rint_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for nearbyint_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for lrint_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for llrint_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for maxnum_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for minnum_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for maximum_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for minimum_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ceil_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for floor_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for lround_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for llround_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for round_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for roundeven_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for trunc_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_olt_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ole_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ogt_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_oge_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_oeq_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_one_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ult_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ule_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ugt_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_uge_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ueq_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_une_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_olt_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ole_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ogt_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_oge_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_oeq_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_one_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ult_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ule_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ugt_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_uge_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ueq_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_une_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for add_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sub_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for mul_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for div_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for frem_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fma_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_i32_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_i32_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptosi_i64_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptoui_i64_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f128_i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f128_i32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f128_i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f128_i64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sitofp_f128_i128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for uitofp_f128_i128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sqrt_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for powi_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sin_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cos_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tan_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for asin_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for acos_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan2_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sinh_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cosh_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tanh_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for pow_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log10_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log2_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp2_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for rint_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for nearbyint_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for lrint_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for llrint_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for maxnum_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for minnum_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for ceil_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for floor_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for lround_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for llround_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for round_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for trunc_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_olt_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ole_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ogt_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_oge_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_oeq_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_one_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ult_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ule_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ugt_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_uge_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_ueq_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmp_une_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_olt_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ole_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ogt_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_oge_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_oeq_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_one_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ult_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ule_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ugt_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_uge_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_ueq_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fcmps_une_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptrunc_f32_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptrunc_f32_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fptrunc_f64_f128 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fpext_f64_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fpext_f128_f32 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for fpext_f128_f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sin_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cos_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tan_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for asin_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for acos_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for atan2_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for sinh_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for cosh_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for tanh_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for pow_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log2_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for log10_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp_v1f64 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for exp2_v1f64 + ; Single-precision intrinsics -; CHECK-LABEL: add_f32: -; CHECK: fadd s0, s0, s1 define float @add_f32(float %x, float %y) #0 { +; CHECK-LABEL: add_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fadd s0, s0, s1 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.fadd.f32(float %x, float %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: sub_f32: -; CHECK: fsub s0, s0, s1 define float @sub_f32(float %x, float %y) #0 { +; CHECK-LABEL: sub_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fsub s0, s0, s1 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.fsub.f32(float %x, float %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: mul_f32: -; CHECK: fmul s0, s0, s1 define float @mul_f32(float %x, float %y) #0 { +; CHECK-LABEL: mul_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fmul s0, s0, s1 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.fmul.f32(float %x, float %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: div_f32: -; CHECK: fdiv s0, s0, s1 define float @div_f32(float %x, float %y) #0 { +; CHECK-LABEL: div_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fdiv s0, s0, s1 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.fdiv.f32(float %x, float %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: frem_f32: -; CHECK: bl fmodf define float @frem_f32(float %x, float %y) #0 { +; CHECK-LABEL: frem_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl fmodf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.frem.f32(float %x, float %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: fma_f32: -; CHECK: fmadd s0, s0, s1, s2 define float @fma_f32(float %x, float %y, float %z) #0 { +; CHECK-LABEL: fma_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fmadd s0, s0, s1, s2 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.fma.f32(float %x, float %y, float %z, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: fptosi_i32_f32: -; CHECK: fcvtzs w0, s0 define i32 @fptosi_i32_f32(float %x) #0 { +; CHECK-LABEL: fptosi_i32_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtzs w0, s0 +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.fptosi.i32.f32(float %x, metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: fptoui_i32_f32: -; CHECK: fcvtzu w0, s0 define i32 @fptoui_i32_f32(float %x) #0 { +; CHECK-LABEL: fptoui_i32_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtzu w0, s0 +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.fptoui.i32.f32(float %x, metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: fptosi_i64_f32: -; CHECK: fcvtzs x0, s0 define i64 @fptosi_i64_f32(float %x) #0 { +; CHECK-LABEL: fptosi_i64_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtzs x0, s0 +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.fptosi.i64.f32(float %x, metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: fptoui_i64_f32: -; CHECK: fcvtzu x0, s0 define i64 @fptoui_i64_f32(float %x) #0 { +; CHECK-LABEL: fptoui_i64_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtzu x0, s0 +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.fptoui.i64.f32(float %x, metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: sitofp_f32_i32: -; CHECK: scvtf s0, w0 define float @sitofp_f32_i32(i32 %x) #0 { +; CHECK-LABEL: sitofp_f32_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: scvtf s0, w0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.sitofp.f32.i32(i32 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: uitofp_f32_i32: -; CHECK: ucvtf s0, w0 define float @uitofp_f32_i32(i32 %x) #0 { +; CHECK-LABEL: uitofp_f32_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: ucvtf s0, w0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.uitofp.f32.i32(i32 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: sitofp_f32_i64: -; CHECK: scvtf s0, x0 define float @sitofp_f32_i64(i64 %x) #0 { +; CHECK-LABEL: sitofp_f32_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: scvtf s0, x0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.sitofp.f32.i64(i64 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: uitofp_f32_i64: -; CHECK: ucvtf s0, x0 define float @uitofp_f32_i64(i64 %x) #0 { +; CHECK-LABEL: uitofp_f32_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: ucvtf s0, x0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.uitofp.f32.i64(i64 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: sitofp_f32_i128: -; CHECK: bl __floattisf define float @sitofp_f32_i128(i128 %x) #0 { +; CHECK-LABEL: sitofp_f32_i128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floattisf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.sitofp.f32.i128(i128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: uitofp_f32_i128: -; CHECK: bl __floatuntisf define float @uitofp_f32_i128(i128 %x) #0 { +; CHECK-LABEL: uitofp_f32_i128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floatuntisf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.uitofp.f32.i128(i128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: sqrt_f32: -; CHECK: fsqrt s0, s0 define float @sqrt_f32(float %x) #0 { +; CHECK-LABEL: sqrt_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fsqrt s0, s0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.sqrt.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: powi_f32: -; CHECK: bl __powisf2 define float @powi_f32(float %x, i32 %y) #0 { +; CHECK-LABEL: powi_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __powisf2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.powi.f32(float %x, i32 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: sin_f32: -; CHECK: bl sinf define float @sin_f32(float %x) #0 { +; CHECK-LABEL: sin_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl sinf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.sin.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: cos_f32: -; CHECK: bl cosf define float @cos_f32(float %x) #0 { +; CHECK-LABEL: cos_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl cosf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.cos.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: tan_f32: -; CHECK: bl tanf define float @tan_f32(float %x) #0 { +; CHECK-LABEL: tan_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl tanf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.tan.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: asin_f32: -; CHECK: bl asinf define float @asin_f32(float %x) #0 { +; CHECK-LABEL: asin_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl asinf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.asin.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: acos_f32: -; CHECK: bl acosf define float @acos_f32(float %x) #0 { +; CHECK-LABEL: acos_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl acosf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.acos.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: atan_f32: -; CHECK: bl atanf define float @atan_f32(float %x) #0 { +; CHECK-LABEL: atan_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl atanf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.atan.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: atan2_f32: -; CHECK: bl atan2f define float @atan2_f32(float %x, float %y) #0 { +; CHECK-LABEL: atan2_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl atan2f +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.atan2.f32(float %x, float %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: sinh_f32: -; CHECK: bl sinhf define float @sinh_f32(float %x) #0 { +; CHECK-LABEL: sinh_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl sinhf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.sinh.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: cosh_f32: -; CHECK: bl coshf define float @cosh_f32(float %x) #0 { +; CHECK-LABEL: cosh_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl coshf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.cosh.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: tanh_f32: -; CHECK: bl tanhf define float @tanh_f32(float %x) #0 { +; CHECK-LABEL: tanh_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl tanhf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.tanh.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: pow_f32: -; CHECK: bl powf define float @pow_f32(float %x, float %y) #0 { +; CHECK-LABEL: pow_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl powf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.pow.f32(float %x, float %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: log_f32: -; CHECK: bl logf define float @log_f32(float %x) #0 { +; CHECK-LABEL: log_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl logf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.log.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: log10_f32: -; CHECK: bl log10f define float @log10_f32(float %x) #0 { +; CHECK-LABEL: log10_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log10f +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.log10.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: log2_f32: -; CHECK: bl log2f define float @log2_f32(float %x) #0 { +; CHECK-LABEL: log2_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log2f +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.log2.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: exp_f32: -; CHECK: bl expf define float @exp_f32(float %x) #0 { +; CHECK-LABEL: exp_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl expf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.exp.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: exp2_f32: -; CHECK: bl exp2f define float @exp2_f32(float %x) #0 { +; CHECK-LABEL: exp2_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl exp2f +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.exp2.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: rint_f32: -; CHECK: frintx s0, s0 define float @rint_f32(float %x) #0 { +; CHECK-LABEL: rint_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: frintx s0, s0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.rint.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: nearbyint_f32: -; CHECK: frinti s0, s0 define float @nearbyint_f32(float %x) #0 { +; CHECK-LABEL: nearbyint_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: frinti s0, s0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.nearbyint.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: lrint_f32: -; CHECK: frintx [[REG:s[0-9]+]], s0 -; CHECK: fcvtzs w0, [[REG]] define i32 @lrint_f32(float %x) #0 { +; CHECK-LABEL: lrint_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: frintx s0, s0 +; CHECK-NEXT: fcvtzs w0, s0 +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.lrint.i32.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: llrint_f32: -; CHECK: frintx [[REG:s[0-9]+]], s0 -; CHECK: fcvtzs x0, [[REG]] define i64 @llrint_f32(float %x) #0 { +; CHECK-LABEL: llrint_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: frintx s0, s0 +; CHECK-NEXT: fcvtzs x0, s0 +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.llrint.i64.f32(float %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: maxnum_f32: -; CHECK: fmaxnm s0, s0, s1 define float @maxnum_f32(float %x, float %y) #0 { +; CHECK-LABEL: maxnum_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fmaxnm s0, s0, s1 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.maxnum.f32(float %x, float %y, metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: minnum_f32: -; CHECK: fminnm s0, s0, s1 define float @minnum_f32(float %x, float %y) #0 { +; CHECK-LABEL: minnum_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fminnm s0, s0, s1 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.minnum.f32(float %x, float %y, metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: maximum_f32: -; CHECK: fmax s0, s0, s1 define float @maximum_f32(float %x, float %y) #0 { +; CHECK-LABEL: maximum_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fmax s0, s0, s1 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.maximum.f32(float %x, float %y, metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: minimum_f32: -; CHECK: fmin s0, s0, s1 define float @minimum_f32(float %x, float %y) #0 { +; CHECK-LABEL: minimum_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fmin s0, s0, s1 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.minimum.f32(float %x, float %y, metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: ceil_f32: -; CHECK: frintp s0, s0 define float @ceil_f32(float %x) #0 { +; CHECK-LABEL: ceil_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: frintp s0, s0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.ceil.f32(float %x, metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: floor_f32: -; CHECK: frintm s0, s0 define float @floor_f32(float %x) #0 { +; CHECK-LABEL: floor_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: frintm s0, s0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.floor.f32(float %x, metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: lround_f32: -; CHECK: fcvtas w0, s0 define i32 @lround_f32(float %x) #0 { +; CHECK-LABEL: lround_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtas w0, s0 +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.lround.i32.f32(float %x, metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: llround_f32: -; CHECK: fcvtas x0, s0 define i64 @llround_f32(float %x) #0 { +; CHECK-LABEL: llround_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtas x0, s0 +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.llround.i64.f32(float %x, metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: round_f32: -; CHECK: frinta s0, s0 define float @round_f32(float %x) #0 { +; CHECK-LABEL: round_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: frinta s0, s0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.round.f32(float %x, metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: roundeven_f32: -; CHECK: frintn s0, s0 define float @roundeven_f32(float %x) #0 { +; CHECK-LABEL: roundeven_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: frintn s0, s0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.roundeven.f32(float %x, metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: trunc_f32: -; CHECK: frintz s0, s0 define float @trunc_f32(float %x) #0 { +; CHECK-LABEL: trunc_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: frintz s0, s0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.trunc.f32(float %x, metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: fcmp_olt_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_olt_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_olt_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, mi +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"olt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ole_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_ole_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_ole_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, ls +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ole", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ogt_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_ogt_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_ogt_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, gt +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ogt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_oge_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_oge_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_oge_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, ge +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"oge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_oeq_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_oeq_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_oeq_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, eq +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"oeq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_one_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_one_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_one_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w8, mi +; CHECK-NEXT: csinc w0, w8, wzr, le +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"one", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ult_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_ult_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_ult_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, lt +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ult", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ule_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_ule_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_ule_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, le +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ule", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ugt_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_ugt_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_ugt_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, hi +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ugt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_uge_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_uge_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_uge_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, pl +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"uge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ueq_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_ueq_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_ueq_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w8, eq +; CHECK-NEXT: csinc w0, w8, wzr, vc +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"ueq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_une_f32: -; CHECK: fcmp s0, s1 define i32 @fcmp_une_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmp_une_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp s0, s1 +; CHECK-NEXT: cset w0, ne +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(float %a, float %b, metadata !"une", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_olt_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_olt_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_olt_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, mi +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"olt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ole_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_ole_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_ole_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, ls +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ole", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ogt_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_ogt_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_ogt_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, gt +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ogt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_oge_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_oge_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_oge_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, ge +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"oge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_oeq_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_oeq_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_oeq_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, eq +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"oeq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_one_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_one_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_one_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w8, mi +; CHECK-NEXT: csinc w0, w8, wzr, le +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"one", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ult_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_ult_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_ult_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, lt +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ult", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ule_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_ule_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_ule_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, le +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ule", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ugt_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_ugt_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_ugt_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, hi +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ugt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_uge_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_uge_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_uge_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, pl +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"uge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ueq_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_ueq_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_ueq_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w8, eq +; CHECK-NEXT: csinc w0, w8, wzr, vc +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"ueq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_une_f32: -; CHECK: fcmpe s0, s1 define i32 @fcmps_une_f32(float %a, float %b) #0 { +; CHECK-LABEL: fcmps_une_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe s0, s1 +; CHECK-NEXT: cset w0, ne +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f32(float %a, float %b, metadata !"une", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv @@ -546,538 +1040,792 @@ define i32 @fcmps_une_f32(float %a, float %b) #0 { ; Double-precision intrinsics -; CHECK-LABEL: add_f64: -; CHECK: fadd d0, d0, d1 define double @add_f64(double %x, double %y) #0 { +; CHECK-LABEL: add_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fadd d0, d0, d1 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.fadd.f64(double %x, double %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: sub_f64: -; CHECK: fsub d0, d0, d1 define double @sub_f64(double %x, double %y) #0 { +; CHECK-LABEL: sub_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fsub d0, d0, d1 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.fsub.f64(double %x, double %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: mul_f64: -; CHECK: fmul d0, d0, d1 define double @mul_f64(double %x, double %y) #0 { +; CHECK-LABEL: mul_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fmul d0, d0, d1 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.fmul.f64(double %x, double %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: div_f64: -; CHECK: fdiv d0, d0, d1 define double @div_f64(double %x, double %y) #0 { +; CHECK-LABEL: div_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fdiv d0, d0, d1 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.fdiv.f64(double %x, double %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: frem_f64: -; CHECK: bl fmod define double @frem_f64(double %x, double %y) #0 { +; CHECK-LABEL: frem_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl fmod +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.frem.f64(double %x, double %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: fma_f64: -; CHECK: fmadd d0, d0, d1, d2 define double @fma_f64(double %x, double %y, double %z) #0 { +; CHECK-LABEL: fma_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fmadd d0, d0, d1, d2 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.fma.f64(double %x, double %y, double %z, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: fptosi_i32_f64: -; CHECK: fcvtzs w0, d0 define i32 @fptosi_i32_f64(double %x) #0 { +; CHECK-LABEL: fptosi_i32_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtzs w0, d0 +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.fptosi.i32.f64(double %x, metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: fptoui_i32_f64: -; CHECK: fcvtzu w0, d0 define i32 @fptoui_i32_f64(double %x) #0 { +; CHECK-LABEL: fptoui_i32_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtzu w0, d0 +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.fptoui.i32.f64(double %x, metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: fptosi_i64_f64: -; CHECK: fcvtzs x0, d0 define i64 @fptosi_i64_f64(double %x) #0 { +; CHECK-LABEL: fptosi_i64_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtzs x0, d0 +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.fptosi.i64.f64(double %x, metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: fptoui_i64_f64: -; CHECK: fcvtzu x0, d0 define i64 @fptoui_i64_f64(double %x) #0 { +; CHECK-LABEL: fptoui_i64_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtzu x0, d0 +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.fptoui.i64.f64(double %x, metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: sitofp_f64_i32: -; CHECK: scvtf d0, w0 define double @sitofp_f64_i32(i32 %x) #0 { +; CHECK-LABEL: sitofp_f64_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: scvtf d0, w0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.sitofp.f64.i32(i32 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: uitofp_f64_i32: -; CHECK: ucvtf d0, w0 define double @uitofp_f64_i32(i32 %x) #0 { +; CHECK-LABEL: uitofp_f64_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: ucvtf d0, w0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.uitofp.f64.i32(i32 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: sitofp_f64_i64: -; CHECK: scvtf d0, x0 define double @sitofp_f64_i64(i64 %x) #0 { +; CHECK-LABEL: sitofp_f64_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: scvtf d0, x0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.sitofp.f64.i64(i64 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: uitofp_f64_i64: -; CHECK: ucvtf d0, x0 define double @uitofp_f64_i64(i64 %x) #0 { +; CHECK-LABEL: uitofp_f64_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: ucvtf d0, x0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.uitofp.f64.i64(i64 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: sitofp_f64_i128: -; CHECK: bl __floattidf define double @sitofp_f64_i128(i128 %x) #0 { +; CHECK-LABEL: sitofp_f64_i128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floattidf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.sitofp.f64.i128(i128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: uitofp_f64_i128: -; CHECK: bl __floatuntidf define double @uitofp_f64_i128(i128 %x) #0 { +; CHECK-LABEL: uitofp_f64_i128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floatuntidf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.uitofp.f64.i128(i128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: sqrt_f64: -; CHECK: fsqrt d0, d0 define double @sqrt_f64(double %x) #0 { +; CHECK-LABEL: sqrt_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fsqrt d0, d0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.sqrt.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: powi_f64: -; CHECK: bl __powidf2 define double @powi_f64(double %x, i32 %y) #0 { +; CHECK-LABEL: powi_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __powidf2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.powi.f64(double %x, i32 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: sin_f64: -; CHECK: bl sin define double @sin_f64(double %x) #0 { +; CHECK-LABEL: sin_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl sin +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.sin.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: cos_f64: -; CHECK: bl cos define double @cos_f64(double %x) #0 { +; CHECK-LABEL: cos_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl cos +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.cos.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: tan_f64: -; CHECK: bl tan define double @tan_f64(double %x) #0 { +; CHECK-LABEL: tan_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl tan +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.tan.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: asin_f64: -; CHECK: bl asin define double @asin_f64(double %x) #0 { +; CHECK-LABEL: asin_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl asin +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.asin.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: acos_f64: -; CHECK: bl acos define double @acos_f64(double %x) #0 { +; CHECK-LABEL: acos_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl acos +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.acos.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: atan_f64: -; CHECK: bl atan define double @atan_f64(double %x) #0 { +; CHECK-LABEL: atan_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl atan +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.atan.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: atan2_f64: -; CHECK: bl atan2 define double @atan2_f64(double %x, double %y) #0 { +; CHECK-LABEL: atan2_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl atan2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.atan2.f64(double %x, double %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: sinh_f64: -; CHECK: bl sinh define double @sinh_f64(double %x) #0 { +; CHECK-LABEL: sinh_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl sinh +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.sinh.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: cosh_f64: -; CHECK: bl cosh define double @cosh_f64(double %x) #0 { +; CHECK-LABEL: cosh_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl cosh +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.cosh.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: tanh_f64: -; CHECK: bl tanh define double @tanh_f64(double %x) #0 { +; CHECK-LABEL: tanh_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl tanh +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.tanh.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: pow_f64: -; CHECK: bl pow define double @pow_f64(double %x, double %y) #0 { +; CHECK-LABEL: pow_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl pow +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.pow.f64(double %x, double %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: log_f64: -; CHECK: bl log define double @log_f64(double %x) #0 { +; CHECK-LABEL: log_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.log.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: log10_f64: -; CHECK: bl log10 define double @log10_f64(double %x) #0 { +; CHECK-LABEL: log10_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log10 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.log10.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: log2_f64: -; CHECK: bl log2 define double @log2_f64(double %x) #0 { +; CHECK-LABEL: log2_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.log2.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: exp_f64: -; CHECK: bl exp define double @exp_f64(double %x) #0 { +; CHECK-LABEL: exp_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl exp +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.exp.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: exp2_f64: -; CHECK: bl exp2 define double @exp2_f64(double %x) #0 { +; CHECK-LABEL: exp2_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl exp2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.exp2.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: rint_f64: -; CHECK: frintx d0, d0 define double @rint_f64(double %x) #0 { +; CHECK-LABEL: rint_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: frintx d0, d0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.rint.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: nearbyint_f64: -; CHECK: frinti d0, d0 define double @nearbyint_f64(double %x) #0 { +; CHECK-LABEL: nearbyint_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: frinti d0, d0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.nearbyint.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: lrint_f64: -; CHECK: frintx [[REG:d[0-9]+]], d0 -; CHECK: fcvtzs w0, [[REG]] define i32 @lrint_f64(double %x) #0 { +; CHECK-LABEL: lrint_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: frintx d0, d0 +; CHECK-NEXT: fcvtzs w0, d0 +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.lrint.i32.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: llrint_f64: -; CHECK: frintx [[REG:d[0-9]+]], d0 -; CHECK: fcvtzs x0, [[REG]] define i64 @llrint_f64(double %x) #0 { +; CHECK-LABEL: llrint_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: frintx d0, d0 +; CHECK-NEXT: fcvtzs x0, d0 +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.llrint.i64.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: maxnum_f64: -; CHECK: fmaxnm d0, d0, d1 define double @maxnum_f64(double %x, double %y) #0 { +; CHECK-LABEL: maxnum_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fmaxnm d0, d0, d1 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.maxnum.f64(double %x, double %y, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: minnum_f64: -; CHECK: fminnm d0, d0, d1 define double @minnum_f64(double %x, double %y) #0 { +; CHECK-LABEL: minnum_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fminnm d0, d0, d1 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.minnum.f64(double %x, double %y, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: maximum_f64: -; CHECK: fmax d0, d0, d1 define double @maximum_f64(double %x, double %y) #0 { +; CHECK-LABEL: maximum_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fmax d0, d0, d1 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.maximum.f64(double %x, double %y, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: minimum_f64: -; CHECK: fmin d0, d0, d1 define double @minimum_f64(double %x, double %y) #0 { +; CHECK-LABEL: minimum_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fmin d0, d0, d1 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.minimum.f64(double %x, double %y, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: ceil_f64: -; CHECK: frintp d0, d0 define double @ceil_f64(double %x) #0 { +; CHECK-LABEL: ceil_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: frintp d0, d0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.ceil.f64(double %x, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: floor_f64: -; CHECK: frintm d0, d0 define double @floor_f64(double %x) #0 { +; CHECK-LABEL: floor_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: frintm d0, d0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.floor.f64(double %x, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: lround_f64: -; CHECK: fcvtas w0, d0 define i32 @lround_f64(double %x) #0 { +; CHECK-LABEL: lround_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtas w0, d0 +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.lround.i32.f64(double %x, metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: llround_f64: -; CHECK: fcvtas x0, d0 define i64 @llround_f64(double %x) #0 { +; CHECK-LABEL: llround_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvtas x0, d0 +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.llround.i64.f64(double %x, metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: round_f64: -; CHECK: frinta d0, d0 define double @round_f64(double %x) #0 { +; CHECK-LABEL: round_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: frinta d0, d0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.round.f64(double %x, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: roundeven_f64: -; CHECK: frintn d0, d0 define double @roundeven_f64(double %x) #0 { +; CHECK-LABEL: roundeven_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: frintn d0, d0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.roundeven.f64(double %x, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: trunc_f64: -; CHECK: frintz d0, d0 define double @trunc_f64(double %x) #0 { +; CHECK-LABEL: trunc_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: frintz d0, d0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.trunc.f64(double %x, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: fcmp_olt_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_olt_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_olt_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, mi +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"olt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ole_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_ole_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_ole_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, ls +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ole", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ogt_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_ogt_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_ogt_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, gt +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ogt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_oge_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_oge_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_oge_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, ge +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"oge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_oeq_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_oeq_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_oeq_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, eq +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"oeq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_one_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_one_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_one_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w8, mi +; CHECK-NEXT: csinc w0, w8, wzr, le +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"one", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ult_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_ult_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_ult_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, lt +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ult", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ule_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_ule_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_ule_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, le +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ule", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ugt_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_ugt_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_ugt_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, hi +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ugt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_uge_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_uge_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_uge_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, pl +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"uge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ueq_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_ueq_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_ueq_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w8, eq +; CHECK-NEXT: csinc w0, w8, wzr, vc +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"ueq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_une_f64: -; CHECK: fcmp d0, d1 define i32 @fcmp_une_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmp_une_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmp d0, d1 +; CHECK-NEXT: cset w0, ne +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f64(double %a, double %b, metadata !"une", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_olt_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_olt_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_olt_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, mi +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"olt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ole_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_ole_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_ole_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, ls +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ole", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ogt_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_ogt_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_ogt_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, gt +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ogt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_oge_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_oge_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_oge_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, ge +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"oge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_oeq_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_oeq_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_oeq_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, eq +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"oeq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_one_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_one_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_one_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w8, mi +; CHECK-NEXT: csinc w0, w8, wzr, le +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"one", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ult_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_ult_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_ult_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, lt +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ult", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ule_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_ule_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_ule_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, le +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ule", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ugt_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_ugt_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_ugt_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, hi +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ugt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_uge_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_uge_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_uge_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, pl +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"uge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ueq_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_ueq_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_ueq_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w8, eq +; CHECK-NEXT: csinc w0, w8, wzr, vc +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"ueq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_une_f64: -; CHECK: fcmpe d0, d1 define i32 @fcmps_une_f64(double %a, double %b) #0 { +; CHECK-LABEL: fcmps_une_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcmpe d0, d1 +; CHECK-NEXT: cset w0, ne +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f64(double %a, double %b, metadata !"une", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv @@ -1086,515 +1834,1015 @@ define i32 @fcmps_une_f64(double %a, double %b) #0 { ; Long-double-precision intrinsics -; CHECK-LABEL: add_f128: -; CHECK: bl __addtf3 define fp128 @add_f128(fp128 %x, fp128 %y) #0 { +; CHECK-LABEL: add_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __addtf3 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.fadd.f128(fp128 %x, fp128 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: sub_f128: -; CHECK: bl __subtf3 define fp128 @sub_f128(fp128 %x, fp128 %y) #0 { +; CHECK-LABEL: sub_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __subtf3 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.fsub.f128(fp128 %x, fp128 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: mul_f128: -; CHECK: bl __multf3 define fp128 @mul_f128(fp128 %x, fp128 %y) #0 { +; CHECK-LABEL: mul_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __multf3 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.fmul.f128(fp128 %x, fp128 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: div_f128: -; CHECK: bl __divtf3 define fp128 @div_f128(fp128 %x, fp128 %y) #0 { +; CHECK-LABEL: div_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __divtf3 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.fdiv.f128(fp128 %x, fp128 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: frem_f128: -; CHECK: bl fmodl define fp128 @frem_f128(fp128 %x, fp128 %y) #0 { +; CHECK-LABEL: frem_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl fmodl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.frem.f128(fp128 %x, fp128 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: fma_f128: -; CHECK: fmal define fp128 @fma_f128(fp128 %x, fp128 %y, fp128 %z) #0 { +; CHECK-LABEL: fma_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl fmal +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.fma.f128(fp128 %x, fp128 %y, fp128 %z, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: fptosi_i32_f128: -; CHECK: bl __fixtfsi define i32 @fptosi_i32_f128(fp128 %x) #0 { +; CHECK-LABEL: fptosi_i32_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __fixtfsi +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.fptosi.i32.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: fptoui_i32_f128: -; CHECK: bl __fixunstfsi define i32 @fptoui_i32_f128(fp128 %x) #0 { +; CHECK-LABEL: fptoui_i32_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __fixunstfsi +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.fptoui.i32.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: fptosi_i64_f128: -; CHECK: bl __fixtfdi define i64 @fptosi_i64_f128(fp128 %x) #0 { +; CHECK-LABEL: fptosi_i64_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __fixtfdi +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.fptosi.i64.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: fptoui_i64_f128: -; CHECK: bl __fixunstfdi define i64 @fptoui_i64_f128(fp128 %x) #0 { +; CHECK-LABEL: fptoui_i64_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __fixunstfdi +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.fptoui.i64.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: sitofp_f128_i32: -; CHECK: bl __floatsitf define fp128 @sitofp_f128_i32(i32 %x) #0 { +; CHECK-LABEL: sitofp_f128_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floatsitf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.sitofp.f128.i32(i32 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: uitofp_f128_i32: -; CHECK: bl __floatunsitf define fp128 @uitofp_f128_i32(i32 %x) #0 { +; CHECK-LABEL: uitofp_f128_i32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floatunsitf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.uitofp.f128.i32(i32 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: sitofp_f128_i64: -; CHECK: bl __floatditf define fp128 @sitofp_f128_i64(i64 %x) #0 { +; CHECK-LABEL: sitofp_f128_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floatditf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.sitofp.f128.i64(i64 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: uitofp_f128_i64: -; CHECK: bl __floatunditf define fp128 @uitofp_f128_i64(i64 %x) #0 { +; CHECK-LABEL: uitofp_f128_i64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floatunditf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.uitofp.f128.i64(i64 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: sitofp_f128_i128: -; CHECK: bl __floattitf define fp128 @sitofp_f128_i128(i128 %x) #0 { +; CHECK-LABEL: sitofp_f128_i128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floattitf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.sitofp.f128.i128(i128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: uitofp_f128_i128: -; CHECK: bl __floatuntitf define fp128 @uitofp_f128_i128(i128 %x) #0 { +; CHECK-LABEL: uitofp_f128_i128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __floatuntitf +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.uitofp.f128.i128(i128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: sqrt_f128: -; CHECK: bl sqrtl define fp128 @sqrt_f128(fp128 %x) #0 { +; CHECK-LABEL: sqrt_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl sqrtl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.sqrt.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: powi_f128: -; CHECK: bl __powitf2 define fp128 @powi_f128(fp128 %x, i32 %y) #0 { +; CHECK-LABEL: powi_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __powitf2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.powi.f128(fp128 %x, i32 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: sin_f128: -; CHECK: bl sinl define fp128 @sin_f128(fp128 %x) #0 { +; CHECK-LABEL: sin_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl sinl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.sin.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: cos_f128: -; CHECK: bl cosl define fp128 @cos_f128(fp128 %x) #0 { +; CHECK-LABEL: cos_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl cosl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.cos.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: tan_f128: -; CHECK: bl tanl define fp128 @tan_f128(fp128 %x) #0 { +; CHECK-LABEL: tan_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl tanl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.tan.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: asin_f128: -; CHECK: bl asinl define fp128 @asin_f128(fp128 %x) #0 { +; CHECK-LABEL: asin_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl asinl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.asin.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: acos_f128: -; CHECK: bl acosl define fp128 @acos_f128(fp128 %x) #0 { +; CHECK-LABEL: acos_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl acosl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.acos.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: atan_f128: -; CHECK: bl atanl define fp128 @atan_f128(fp128 %x) #0 { +; CHECK-LABEL: atan_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl atanl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.atan.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: atan2_f128: -; CHECK: bl atan2l define fp128 @atan2_f128(fp128 %x, fp128 %y) #0 { +; CHECK-LABEL: atan2_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl atan2l +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.atan2.f128(fp128 %x, fp128 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: sinh_f128: -; CHECK: bl sinhl define fp128 @sinh_f128(fp128 %x) #0 { +; CHECK-LABEL: sinh_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl sinhl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.sinh.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: cosh_f128: -; CHECK: bl coshl define fp128 @cosh_f128(fp128 %x) #0 { +; CHECK-LABEL: cosh_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl coshl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.cosh.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: tanh_f128: -; CHECK: bl tanhl define fp128 @tanh_f128(fp128 %x) #0 { +; CHECK-LABEL: tanh_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl tanhl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.tanh.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: pow_f128: -; CHECK: bl powl define fp128 @pow_f128(fp128 %x, fp128 %y) #0 { +; CHECK-LABEL: pow_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl powl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.pow.f128(fp128 %x, fp128 %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: log_f128: -; CHECK: bl logl define fp128 @log_f128(fp128 %x) #0 { +; CHECK-LABEL: log_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl logl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.log.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: log10_f128: -; CHECK: bl log10l define fp128 @log10_f128(fp128 %x) #0 { +; CHECK-LABEL: log10_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log10l +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.log10.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: log2_f128: -; CHECK: bl log2l define fp128 @log2_f128(fp128 %x) #0 { +; CHECK-LABEL: log2_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log2l +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.log2.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: exp_f128: -; CHECK: bl expl define fp128 @exp_f128(fp128 %x) #0 { +; CHECK-LABEL: exp_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl expl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.exp.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: exp2_f128: -; CHECK: bl exp2l define fp128 @exp2_f128(fp128 %x) #0 { +; CHECK-LABEL: exp2_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl exp2l +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.exp2.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: rint_f128: -; CHECK: bl rintl define fp128 @rint_f128(fp128 %x) #0 { +; CHECK-LABEL: rint_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl rintl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.rint.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: nearbyint_f128: -; CHECK: bl nearbyintl define fp128 @nearbyint_f128(fp128 %x) #0 { +; CHECK-LABEL: nearbyint_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl nearbyintl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.nearbyint.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: lrint_f128: -; CHECK: bl lrintl define i32 @lrint_f128(fp128 %x) #0 { +; CHECK-LABEL: lrint_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl lrintl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.lrint.i32.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: llrint_f128: -; CHECK: bl llrintl define i64 @llrint_f128(fp128 %x) #0 { +; CHECK-LABEL: llrint_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl llrintl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.llrint.i64.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: maxnum_f128: -; CHECK: bl fmaxl define fp128 @maxnum_f128(fp128 %x, fp128 %y) #0 { +; CHECK-LABEL: maxnum_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl fmaxl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.maxnum.f128(fp128 %x, fp128 %y, metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: minnum_f128: -; CHECK: bl fminl define fp128 @minnum_f128(fp128 %x, fp128 %y) #0 { +; CHECK-LABEL: minnum_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl fminl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.minnum.f128(fp128 %x, fp128 %y, metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: ceil_f128: -; CHECK: bl ceill define fp128 @ceil_f128(fp128 %x) #0 { +; CHECK-LABEL: ceil_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl ceill +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.ceil.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: floor_f128: -; CHECK: bl floorl define fp128 @floor_f128(fp128 %x) #0 { +; CHECK-LABEL: floor_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl floorl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.floor.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: lround_f128: -; CHECK: bl lroundl define i32 @lround_f128(fp128 %x) #0 { +; CHECK-LABEL: lround_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl lroundl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call i32 @llvm.experimental.constrained.lround.i32.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret i32 %val } -; CHECK-LABEL: llround_f128: -; CHECK: bl llroundl define i64 @llround_f128(fp128 %x) #0 { +; CHECK-LABEL: llround_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl llroundl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call i64 @llvm.experimental.constrained.llround.i64.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret i64 %val } -; CHECK-LABEL: round_f128: -; CHECK: bl roundl define fp128 @round_f128(fp128 %x) #0 { +; CHECK-LABEL: round_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl roundl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.round.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: trunc_f128: -; CHECK: bl truncl define fp128 @trunc_f128(fp128 %x) #0 { +; CHECK-LABEL: trunc_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl truncl +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.trunc.f128(fp128 %x, metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: fcmp_olt_f128: -; CHECK: bl __lttf2 define i32 @fcmp_olt_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_olt_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __lttf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, lt +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"olt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ole_f128: -; CHECK: bl __letf2 define i32 @fcmp_ole_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_ole_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __letf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, le +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"ole", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ogt_f128: -; CHECK: bl __gttf2 define i32 @fcmp_ogt_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_ogt_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __gttf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, gt +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"ogt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_oge_f128: -; CHECK: bl __getf2 define i32 @fcmp_oge_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_oge_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __getf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, ge +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"oge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_oeq_f128: -; CHECK: bl __eqtf2 define i32 @fcmp_oeq_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_oeq_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __eqtf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, eq +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"oeq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_one_f128: -; CHECK: bl __eqtf2 define i32 @fcmp_one_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_one_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: sub sp, sp, #48 +; CHECK-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: .cfi_offset w19, -8 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill +; CHECK-NEXT: bl __eqtf2 +; CHECK-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload +; CHECK-NEXT: mov w19, w0 +; CHECK-NEXT: bl __unordtf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: ccmp w19, #0, #4, eq +; CHECK-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: cset w0, ne +; CHECK-NEXT: add sp, sp, #48 +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"one", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ult_f128: -; CHECK: bl __getf2 define i32 @fcmp_ult_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_ult_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __getf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, lt +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"ult", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ule_f128: -; CHECK: bl __gttf2 define i32 @fcmp_ule_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_ule_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __gttf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, le +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"ule", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ugt_f128: -; CHECK: bl __letf2 define i32 @fcmp_ugt_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_ugt_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __letf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, gt +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"ugt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_uge_f128: -; CHECK: bl __lttf2 define i32 @fcmp_uge_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_uge_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __lttf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, ge +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"uge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_ueq_f128: -; CHECK: bl __eqtf2 define i32 @fcmp_ueq_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_ueq_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: sub sp, sp, #48 +; CHECK-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: .cfi_offset w19, -8 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill +; CHECK-NEXT: bl __eqtf2 +; CHECK-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload +; CHECK-NEXT: mov w19, w0 +; CHECK-NEXT: bl __unordtf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: ccmp w19, #0, #4, eq +; CHECK-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: cset w0, eq +; CHECK-NEXT: add sp, sp, #48 +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"ueq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmp_une_f128: -; CHECK: bl __netf2 define i32 @fcmp_une_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmp_une_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __netf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, ne +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(fp128 %a, fp128 %b, metadata !"une", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_olt_f128: -; CHECK: bl __lttf2 define i32 @fcmps_olt_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_olt_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __lttf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, lt +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"olt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ole_f128: -; CHECK: bl __letf2 define i32 @fcmps_ole_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_ole_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __letf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, le +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"ole", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ogt_f128: -; CHECK: bl __gttf2 define i32 @fcmps_ogt_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_ogt_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __gttf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, gt +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"ogt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_oge_f128: -; CHECK: bl __getf2 define i32 @fcmps_oge_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_oge_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __getf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, ge +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"oge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_oeq_f128: -; CHECK: bl __eqtf2 define i32 @fcmps_oeq_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_oeq_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __eqtf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, eq +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"oeq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_one_f128: -; CHECK: bl __eqtf2 define i32 @fcmps_one_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_one_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: sub sp, sp, #48 +; CHECK-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: .cfi_offset w19, -8 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill +; CHECK-NEXT: bl __eqtf2 +; CHECK-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload +; CHECK-NEXT: mov w19, w0 +; CHECK-NEXT: bl __unordtf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: ccmp w19, #0, #4, eq +; CHECK-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: cset w0, ne +; CHECK-NEXT: add sp, sp, #48 +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"one", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ult_f128: -; CHECK: bl __getf2 define i32 @fcmps_ult_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_ult_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __getf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, lt +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"ult", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ule_f128: -; CHECK: bl __gttf2 define i32 @fcmps_ule_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_ule_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __gttf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, le +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"ule", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ugt_f128: -; CHECK: bl __letf2 define i32 @fcmps_ugt_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_ugt_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __letf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, gt +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"ugt", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_uge_f128: -; CHECK: bl __lttf2 define i32 @fcmps_uge_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_uge_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __lttf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, ge +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"uge", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_ueq_f128: -; CHECK: bl __eqtf2 define i32 @fcmps_ueq_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_ueq_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: sub sp, sp, #48 +; CHECK-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: .cfi_offset w19, -8 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill +; CHECK-NEXT: bl __eqtf2 +; CHECK-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload +; CHECK-NEXT: mov w19, w0 +; CHECK-NEXT: bl __unordtf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: ccmp w19, #0, #4, eq +; CHECK-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: cset w0, eq +; CHECK-NEXT: add sp, sp, #48 +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"ueq", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv } -; CHECK-LABEL: fcmps_une_f128: -; CHECK: bl __netf2 define i32 @fcmps_une_f128(fp128 %a, fp128 %b) #0 { +; CHECK-LABEL: fcmps_une_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __netf2 +; CHECK-NEXT: cmp w0, #0 +; CHECK-NEXT: cset w0, ne +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %cmp = call i1 @llvm.experimental.constrained.fcmps.f128(fp128 %a, fp128 %b, metadata !"une", metadata !"fpexcept.strict") #0 %conv = zext i1 %cmp to i32 ret i32 %conv @@ -1603,156 +2851,280 @@ define i32 @fcmps_une_f128(fp128 %a, fp128 %b) #0 { ; Intrinsics to convert between floating-point types -; CHECK-LABEL: fptrunc_f32_f64: -; CHECK: fcvt s0, d0 define float @fptrunc_f32_f64(double %x) #0 { +; CHECK-LABEL: fptrunc_f32_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvt s0, d0 +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.fptrunc.f32.f64(double %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: fptrunc_f32_f128: -; CHECK: bl __trunctfsf2 define float @fptrunc_f32_f128(fp128 %x) #0 { +; CHECK-LABEL: fptrunc_f32_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __trunctfsf2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call float @llvm.experimental.constrained.fptrunc.f32.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret float %val } -; CHECK-LABEL: fptrunc_f64_f128: -; CHECK: bl __trunctfdf2 define double @fptrunc_f64_f128(fp128 %x) #0 { +; CHECK-LABEL: fptrunc_f64_f128: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __trunctfdf2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.fptrunc.f64.f128(fp128 %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: fpext_f64_f32: -; CHECK: fcvt d0, s0 define double @fpext_f64_f32(float %x) #0 { +; CHECK-LABEL: fpext_f64_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: fcvt d0, s0 +; CHECK-NEXT: ret %val = call double @llvm.experimental.constrained.fpext.f64.f32(float %x, metadata !"fpexcept.strict") #0 ret double %val } -; CHECK-LABEL: fpext_f128_f32: -; CHECK: bl __extendsftf2 define fp128 @fpext_f128_f32(float %x) #0 { +; CHECK-LABEL: fpext_f128_f32: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __extendsftf2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %x, metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: fpext_f128_f64: -; CHECK: bl __extenddftf2 define fp128 @fpext_f128_f64(double %x) #0 { +; CHECK-LABEL: fpext_f128_f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl __extenddftf2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call fp128 @llvm.experimental.constrained.fpext.f128.f64(double %x, metadata !"fpexcept.strict") #0 ret fp128 %val } -; CHECK-LABEL: sin_v1f64: -; CHECK: bl sin define <1 x double> @sin_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: sin_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl sin +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.sin.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: cos_v1f64: -; CHECK: bl cos define <1 x double> @cos_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: cos_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl cos +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.cos.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: tan_v1f64: -; CHECK: bl tan define <1 x double> @tan_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: tan_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl tan +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.tan.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: asin_v1f64: -; CHECK: bl asin define <1 x double> @asin_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: asin_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl asin +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.asin.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: acos_v1f64: -; CHECK: bl acos define <1 x double> @acos_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: acos_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl acos +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.acos.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: atan_v1f64: -; CHECK: bl atan define <1 x double> @atan_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: atan_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl atan +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.atan.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: atan2_v1f64: -; CHECK: bl atan2 define <1 x double> @atan2_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: atan2_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl atan2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.atan2.v1f64(<1 x double> %x, <1 x double> %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: sinh_v1f64: -; CHECK: bl sinh define <1 x double> @sinh_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: sinh_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl sinh +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.sinh.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: cosh_v1f64: -; CHECK: bl cosh define <1 x double> @cosh_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: cosh_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl cosh +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.cosh.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: tanh_v1f64: -; CHECK: bl tanh define <1 x double> @tanh_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: tanh_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl tanh +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.tanh.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: pow_v1f64: -; CHECK: bl pow define <1 x double> @pow_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: pow_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl pow +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.pow.v1f64(<1 x double> %x, <1 x double> %y, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: log_v1f64: -; CHECK: bl log define <1 x double> @log_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: log_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.log.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: log2_v1f64: -; CHECK: bl log2 define <1 x double> @log2_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: log2_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.log2.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: log10_v1f64: -; CHECK: bl log10 define <1 x double> @log10_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: log10_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl log10 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.log10.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: exp_v1f64: -; CHECK: bl exp define <1 x double> @exp_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: exp_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl exp +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.exp.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } -; CHECK-LABEL: exp2_v1f64: -; CHECK: bl exp2 define <1 x double> @exp2_v1f64(<1 x double> %x, <1 x double> %y) #0 { +; CHECK-LABEL: exp2_v1f64: +; CHECK: // %bb.0: +; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: .cfi_offset w30, -16 +; CHECK-NEXT: bl exp2 +; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload +; CHECK-NEXT: ret %val = call <1 x double> @llvm.experimental.constrained.exp2.v1f64(<1 x double> %x, metadata !"round.tonearest", metadata !"fpexcept.strict") #0 ret <1 x double> %val } @@ -1918,3 +3290,7 @@ declare double @llvm.experimental.constrained.fptrunc.f64.f128(fp128, metadata, declare double @llvm.experimental.constrained.fpext.f64.f32(float, metadata) declare fp128 @llvm.experimental.constrained.fpext.f128.f32(float, metadata) declare fp128 @llvm.experimental.constrained.fpext.f128.f64(double, metadata) + +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; CHECK-GI: {{.*}} +; CHECK-SD: {{.*}} diff --git a/llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll b/llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll index 17c87a5dae419..bfb5c67801e6c 100644 --- a/llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll +++ b/llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll @@ -1,8 +1,8 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64 | FileCheck %s --check-prefixes=CHECK,CHECK-SD,CHECK-SD-CVT ; RUN: llc < %s -mtriple=aarch64 -mattr=+fullfp16 | FileCheck %s --check-prefixes=CHECK,CHECK-SD,CHECK-SD-FP16 -; RUN: llc < %s -mtriple=aarch64 -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-CVT -; RUN: llc < %s -mtriple=aarch64 -mattr=+fullfp16 -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-FP16 +; RUN: llc < %s -mtriple=aarch64 -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-CVT +; RUN: llc < %s -mtriple=aarch64 -mattr=+fullfp16 -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-FP16 ; ; 32-bit float to signed integer diff --git a/llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll b/llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll index 3c19fca4a22ae..0dea7be5052d0 100644 --- a/llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll +++ b/llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll @@ -1,8 +1,8 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64 | FileCheck %s --check-prefixes=CHECK,CHECK-SD,CHECK-SD-CVT ; RUN: llc < %s -mtriple=aarch64 -mattr=+fullfp16 | FileCheck %s --check-prefixes=CHECK,CHECK-SD,CHECK-SD-FP16 -; RUN: llc < %s -mtriple=aarch64 -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-CVT -; RUN: llc < %s -mtriple=aarch64 -mattr=+fullfp16 -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-FP16 +; RUN: llc < %s -mtriple=aarch64 -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-CVT +; RUN: llc < %s -mtriple=aarch64 -mattr=+fullfp16 -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-FP16 ; ; 32-bit float to unsigned integer diff --git a/llvm/test/CodeGen/AArch64/funnel-shift.ll b/llvm/test/CodeGen/AArch64/funnel-shift.ll index 20a6dd0899b40..3037a9552bc27 100644 --- a/llvm/test/CodeGen/AArch64/funnel-shift.ll +++ b/llvm/test/CodeGen/AArch64/funnel-shift.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-- -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i8 @llvm.fshl.i8(i8, i8, i8) declare i16 @llvm.fshl.i16(i16, i16, i16) diff --git a/llvm/test/CodeGen/AArch64/init-undef.mir b/llvm/test/CodeGen/AArch64/init-undef.mir index c9d23006d3523..7935c09d7df5e 100644 --- a/llvm/test/CodeGen/AArch64/init-undef.mir +++ b/llvm/test/CodeGen/AArch64/init-undef.mir @@ -1,6 +1,5 @@ # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 -# RUN: llc -mtriple=aarch64-- -aarch64-enable-subreg-liveness-tracking=false -run-pass=init-undef -o - %s | FileCheck %s -# RUN: llc -mtriple=aarch64-- -aarch64-enable-subreg-liveness-tracking=true -run-pass=init-undef -o - %s | FileCheck %s +# RUN: llc -mtriple=aarch64-- -run-pass=init-undef -o - %s | FileCheck %s --- name: test_stxp_undef diff --git a/llvm/test/CodeGen/AArch64/itofp-bf16.ll b/llvm/test/CodeGen/AArch64/itofp-bf16.ll index 978fe0b5ba3b3..58591b11c184f 100644 --- a/llvm/test/CodeGen/AArch64/itofp-bf16.ll +++ b/llvm/test/CodeGen/AArch64/itofp-bf16.ll @@ -4,6 +4,63 @@ ; RUN: llc -mtriple=aarch64 -global-isel -global-isel-abort=2 -verify-machineinstrs %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-NOFP16 ; RUN: llc -mtriple=aarch64 -mattr=+fullfp16 -global-isel -global-isel-abort=2 -verify-machineinstrs %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI,CHECK-GI-FP16 +; CHECK-GI: warning: Instruction selection used fallback path for stofp_i64_bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_i64_bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_i32_bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_i32_bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_i16_bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_i16_bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_i8_bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_i8_bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v2i64_v2bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v2i64_v2bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v3i64_v3bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v3i64_v3bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v4i64_v4bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v4i64_v4bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v8i64_v8bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v8i64_v8bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v16i64_v16bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v16i64_v16bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v32i64_v32bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v32i64_v32bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v2i32_v2bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v2i32_v2bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v3i32_v3bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v3i32_v3bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v4i32_v4bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v4i32_v4bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v8i32_v8bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v8i32_v8bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v16i32_v16bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v16i32_v16bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v32i32_v32bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v32i32_v32bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v2i16_v2bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v2i16_v2bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v3i16_v3bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v3i16_v3bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v4i16_v4bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v4i16_v4bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v8i16_v8bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v8i16_v8bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v16i16_v16bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v16i16_v16bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v32i16_v32bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v32i16_v32bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v2i8_v2bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v2i8_v2bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v3i8_v3bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v3i8_v3bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v4i8_v4bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v4i8_v4bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v8i8_v8bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v8i8_v8bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v16i8_v16bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v16i8_v16bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for stofp_v32i8_v32bf16 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for utofp_v32i8_v32bf16 + define bfloat @stofp_i64_bf16(i64 %a) { ; CHECK-LABEL: stofp_i64_bf16: ; CHECK: // %bb.0: // %entry diff --git a/llvm/test/CodeGen/AArch64/ldrpre-ldr-merge.mir b/llvm/test/CodeGen/AArch64/ldrpre-ldr-merge.mir index a10d7588cb442..8e29255189bf5 100644 --- a/llvm/test/CodeGen/AArch64/ldrpre-ldr-merge.mir +++ b/llvm/test/CodeGen/AArch64/ldrpre-ldr-merge.mir @@ -155,7 +155,7 @@ body: | ; CHECK: liveins: $q0, $q1, $x1 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $q1 = LDRQui renamable $x1, 1 :: (load (s128)) - ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 48, implicit $w1, implicit $w1_hi :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 48, implicit $w1 :: (load (s128)) ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128)) ; CHECK-NEXT: RET undef $lr renamable $q1 = LDRQui renamable $x1, 1 :: (load (s128)) @@ -246,7 +246,7 @@ body: | ; CHECK-LABEL: name: 9-ldrspre-ldrsui-mod-base-reg-no-merge ; CHECK: liveins: $s0, $s1, $x0, $x1 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: dead early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s32)) + ; CHECK-NEXT: dead early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 12, implicit $w1 :: (load (s32)) ; CHECK-NEXT: renamable $x1 = LDRXui renamable $x0, 1 :: (load (s64)) ; CHECK-NEXT: renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32)) ; CHECK-NEXT: STPSi renamable $s0, renamable $s1, renamable $x1, 0 :: (store (s32)) @@ -280,7 +280,7 @@ body: | ; CHECK-LABEL: name: 10-ldrspre-ldrsui-used-base-reg-no-merge ; CHECK: liveins: $s0, $s1, $x0, $x1 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 12, implicit $w1 :: (load (s32)) ; CHECK-NEXT: renamable $x0 = LDRXui renamable $x1, 1 :: (load (s64)) ; CHECK-NEXT: STRXui renamable $x0, renamable $x0, 1 :: (store (s64)) ; CHECK-NEXT: renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32)) @@ -315,12 +315,12 @@ body: | ; CHECK-LABEL: name: 11-ldrqpre-ldrqpre-no-merge ; CHECK: liveins: $q0, $q1, $x1 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q0 = LDRQpre renamable $x1, 48, implicit $w1, implicit $w1_hi :: (load (s128)) - ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q1 = LDRQpre renamable $x1, 1, implicit $w1, implicit $w1_hi :: (load (s128)) - ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q0 = LDRQpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s128)) - ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q1 = LDRQpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s128)) - ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s128)) - ; CHECK-NEXT: early-clobber renamable $x1, renamable $q1 = LDRQpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q0 = LDRQpre renamable $x1, 48, implicit $w1 :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q1 = LDRQpre renamable $x1, 1, implicit $w1 :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q0 = LDRQpre renamable $x1, 16, implicit $w1 :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $q1 = LDRQpre renamable $x1, 12, implicit $w1 :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 16, implicit $w1 :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $q1 = LDRQpre renamable $x1, 16, implicit $w1 :: (load (s128)) ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128)) ; CHECK-NEXT: RET undef $lr early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 48 :: (load (s128)) @@ -352,7 +352,7 @@ body: | ; CHECK-LABEL: name: 12-ldrspre-ldrsui-no-merge ; CHECK: liveins: $s0, $s1, $x1 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 12, implicit $w1 :: (load (s32)) ; CHECK-NEXT: renamable $s1 = LDRSui renamable $x1, 2 :: (load (s32)) ; CHECK-NEXT: STPSi renamable $s0, renamable $s1, renamable $x1, 0 :: (store (s32)) ; CHECK-NEXT: RET undef $lr @@ -383,7 +383,7 @@ body: | ; CHECK-LABEL: name: 13-ldrqpre-ldrdui-no-merge ; CHECK: liveins: $d1, $q0, $x1 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1, implicit $w1_hi :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1 :: (load (s128)) ; CHECK-NEXT: renamable $d1 = LDRDui renamable $x1, 1 :: (load (s64)) ; CHECK-NEXT: STRQui renamable $q0, renamable $x1, 0 :: (store (s128)) ; CHECK-NEXT: STRDui renamable $d1, renamable $x1, 1 :: (store (s64)) @@ -415,7 +415,7 @@ body: | ; CHECK-LABEL: name: 14-ldrqpre-strqui-no-merge ; CHECK: liveins: $q0, $q1, $x1 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1, implicit $w1_hi :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1 :: (load (s128)) ; CHECK-NEXT: STRQui renamable $q0, renamable $x1, 0 :: (store (s128)) ; CHECK-NEXT: RET undef $lr early-clobber renamable $x1, renamable $q0 = LDRQpre killed renamable $x1, 32 :: (load (s128)) @@ -473,7 +473,7 @@ body: | ; CHECK-LABEL: name: 16-ldrqpre-ldrqui-diff-base-reg-no-merge ; CHECK: liveins: $q0, $q1, $x1, $x2 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1, implicit $w1_hi :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1 :: (load (s128)) ; CHECK-NEXT: renamable $q1 = LDRQui renamable $x2, 1 :: (load (s128)) ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128)) ; CHECK-NEXT: RET undef $lr @@ -534,7 +534,7 @@ body: | ; CHECK-LABEL: name: 18-ldrqpre-ldurqi-no-merge ; CHECK: liveins: $q0, $q1, $x1 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1, implicit $w1_hi :: (load (s128)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $q0 = LDRQpre renamable $x1, 32, implicit $w1 :: (load (s128)) ; CHECK-NEXT: renamable $q1 = LDURQi renamable $x1, 1 :: (load (s128)) ; CHECK-NEXT: STPQi renamable $q0, renamable $q1, renamable $x1, 0 :: (store (s128)) ; CHECK-NEXT: RET undef $lr @@ -587,7 +587,7 @@ body: | ; CHECK-LABEL: name: 20-ldrspre-ldrsui-unaligned-no-merge ; CHECK: liveins: $s0, $s1, $x1 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 251, implicit $w1, implicit $w1_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $s0 = LDRSpre renamable $x1, 251, implicit $w1 :: (load (s32)) ; CHECK-NEXT: renamable $s1 = LDRSui renamable $x1, 1 :: (load (s32)) ; CHECK-NEXT: STPSi renamable $s0, renamable $s1, renamable $x1, 0 :: (store (s32)) ; CHECK-NEXT: RET undef $lr @@ -667,7 +667,7 @@ body: | ; CHECK: liveins: $x0, $x1, $x2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $x2 = LDRSWui renamable $x1, 1 :: (load (s32)) - ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1, implicit $w1_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1 :: (load (s32)) ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64)) ; CHECK-NEXT: RET undef $lr renamable $x2 = LDRSWui renamable $x1, 1 :: (load (s32)) @@ -694,7 +694,7 @@ body: | ; CHECK: liveins: $x0, $x1, $x2 ; CHECK-NEXT: {{ $}} ; CHECK-NEXT: renamable $x2 = LDURSWi renamable $x1, 4 :: (load (s32)) - ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1, implicit $w1_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1 :: (load (s32)) ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64)) ; CHECK-NEXT: RET undef $lr renamable $x2 = LDURSWi renamable $x1, 4 :: (load (s32)) @@ -720,12 +720,12 @@ body: | ; CHECK-LABEL: name: 25-ldrswpre-ldrswpre-no-merge ; CHECK: liveins: $x0, $x1, $x2 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x0 = LDRSWpre renamable $x1, 48, implicit $w1, implicit $w1_hi :: (load (s32)) - ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x2 = LDRSWpre renamable $x1, 1, implicit $w1, implicit $w1_hi :: (load (s32)) - ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x0 = LDRSWpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s32)) - ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x2 = LDRSWpre renamable $x1, 12, implicit $w1, implicit $w1_hi :: (load (s32)) - ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s32)) - ; CHECK-NEXT: early-clobber renamable $x1, renamable $x2 = LDRSWpre renamable $x1, 16, implicit $w1, implicit $w1_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x0 = LDRSWpre renamable $x1, 48, implicit $w1 :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x2 = LDRSWpre renamable $x1, 1, implicit $w1 :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x0 = LDRSWpre renamable $x1, 16, implicit $w1 :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, dead renamable $x2 = LDRSWpre renamable $x1, 12, implicit $w1 :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 16, implicit $w1 :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $x2 = LDRSWpre renamable $x1, 16, implicit $w1 :: (load (s32)) ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64)) ; CHECK-NEXT: RET undef $lr early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 48 :: (load (s32)) @@ -755,8 +755,8 @@ body: | ; CHECK-LABEL: name: 26-ldrswpre-ldrwui-no-merge ; CHECK: liveins: $x0, $x1, $x2 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1, implicit $w1_hi :: (load (s32)) - ; CHECK-NEXT: renamable $w2 = LDRWui renamable $x1, 1, implicit-def $x2, implicit $w2_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $x0 = LDRSWpre renamable $x1, 40, implicit $w1 :: (load (s32)) + ; CHECK-NEXT: renamable $w2 = LDRWui renamable $x1, 1, implicit-def $x2 :: (load (s32)) ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64)) ; CHECK-NEXT: RET undef $lr early-clobber renamable $x1, renamable $x0 = LDRSWpre killed renamable $x1, 40 :: (load (s32)) @@ -782,7 +782,7 @@ body: | ; CHECK-LABEL: name: 27-ldrwpre-ldrswui-no-merge ; CHECK: liveins: $x0, $x1, $x2 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x1, renamable $w0 = LDRWpre renamable $x1, 40, implicit $w1, implicit $w1_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x1, renamable $w0 = LDRWpre renamable $x1, 40, implicit $w1 :: (load (s32)) ; CHECK-NEXT: renamable $x2 = LDRSWui renamable $x1, 1 :: (load (s32)) ; CHECK-NEXT: STPXi renamable $x0, renamable $x2, renamable $x1, 0 :: (store (s64)) ; CHECK-NEXT: RET undef $lr @@ -808,9 +808,9 @@ body: | ; CHECK-LABEL: name: 28-ldrswpre-ldrwpre-no-merge ; CHECK: liveins: $x11, $x13 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $x10 = LDRSWpre renamable $x11, 8, implicit $w11, implicit $w11_hi :: (load (s32), align 8) + ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $x10 = LDRSWpre renamable $x11, 8, implicit $w11 :: (load (s32), align 8) ; CHECK-NEXT: $x14 = EORXrs renamable $x11, renamable $x13, 0 - ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $w12 = LDRWpre renamable $x11, 4, implicit $w11, implicit $w11_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $w12 = LDRWpre renamable $x11, 4, implicit $w11 :: (load (s32)) ; CHECK-NEXT: $x13 = EORXrs renamable $x11, renamable $x13, 0 ; CHECK-NEXT: STPXi renamable $x13, renamable $x14, renamable $x11, 0 :: (store (s64)) ; CHECK-NEXT: RET undef $lr @@ -838,9 +838,9 @@ body: | ; CHECK-LABEL: name: 29-ldrwpre-ldrswpre-no-merge ; CHECK: liveins: $x11, $x13 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $w12 = LDRWpre renamable $x11, 8, implicit $w11, implicit $w11_hi :: (load (s32)) + ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $w12 = LDRWpre renamable $x11, 8, implicit $w11 :: (load (s32)) ; CHECK-NEXT: $x14 = EORXrs renamable $x11, renamable $x13, 0 - ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $x10 = LDRSWpre renamable $x11, 4, implicit $w11, implicit $w11_hi :: (load (s32), align 8) + ; CHECK-NEXT: early-clobber renamable $x11, dead renamable $x10 = LDRSWpre renamable $x11, 4, implicit $w11 :: (load (s32), align 8) ; CHECK-NEXT: $x13 = EORXrs renamable $x11, renamable $x13, 0 ; CHECK-NEXT: STPXi renamable $x13, renamable $x14, renamable $x11, 0 :: (store (s64)) ; CHECK-NEXT: RET undef $lr diff --git a/llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll b/llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll index 932a5af264a00..17f8263560430 100644 --- a/llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll +++ b/llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll @@ -499,16 +499,16 @@ for.exit: ; preds = %for.body @a = external local_unnamed_addr global i32, align 4 -; FIXME: Load hoisted out of the loop across memory barriers. +; Make sure the load is not hoisted out of the loop across memory barriers. define i32 @load_between_memory_barriers() { ; CHECK-LABEL: load_between_memory_barriers: ; CHECK: // %bb.0: ; CHECK-NEXT: adrp x8, :got:a ; CHECK-NEXT: ldr x8, [x8, :got_lo12:a] -; CHECK-NEXT: ldr w0, [x8] ; CHECK-NEXT: .LBB8_1: // %loop ; CHECK-NEXT: // =>This Inner Loop Header: Depth=1 ; CHECK-NEXT: //MEMBARRIER +; CHECK-NEXT: ldr w0, [x8] ; CHECK-NEXT: //MEMBARRIER ; CHECK-NEXT: cbz w0, .LBB8_1 ; CHECK-NEXT: // %bb.2: // %exit diff --git a/llvm/test/CodeGen/AArch64/machine-outliner-calls.mir b/llvm/test/CodeGen/AArch64/machine-outliner-calls.mir index 700a5b228122f..8abd56fa20549 100644 --- a/llvm/test/CodeGen/AArch64/machine-outliner-calls.mir +++ b/llvm/test/CodeGen/AArch64/machine-outliner-calls.mir @@ -57,7 +57,7 @@ body: | # CHECK: name: OUTLINED_FUNCTION_0 # CHECK: bb.0: -# CHECK: liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $d8, $d9, $d10, $d11, $d12, $d13, $d14, $d15, $lr +# CHECK: liveins: $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x26, $x27, $x28, $d15, $d8, $d9, $d10, $d11, $d12, $d13, $d14, $lr # CHECK-DAG: frame-setup CFI_INSTRUCTION def_cfa_offset 16 # CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $w30, -16 # CHECK-NEXT: early-clobber $sp = STRXpre $lr, $sp, -16 diff --git a/llvm/test/CodeGen/AArch64/mingw-refptr.ll b/llvm/test/CodeGen/AArch64/mingw-refptr.ll index 306bee9f85c42..cc9fac0506ff5 100644 --- a/llvm/test/CodeGen/AArch64/mingw-refptr.ll +++ b/llvm/test/CodeGen/AArch64/mingw-refptr.ll @@ -1,6 +1,6 @@ -; RUN: llc < %s -mtriple=aarch64-w64-mingw32 | FileCheck %s -; RUN: llc < %s -global-isel -global-isel-abort=2 -pass-remarks-missed=gisel* \ -; RUN: -mtriple=aarch64-w64-mingw32 2>&1| FileCheck %s --check-prefixes=GISEL,FALLBACK +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc < %s -mtriple=aarch64-w64-mingw32 | FileCheck %s --check-prefixes=CHECK,CHECK-SD +; RUN: llc < %s -mtriple=aarch64-w64-mingw32 -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI @var = external local_unnamed_addr global i32, align 4 @dsolocalvar = external dso_local local_unnamed_addr global i32, align 4 @@ -10,10 +10,11 @@ define dso_local i32 @getVar() { ; CHECK-LABEL: getVar: -; CHECK: adrp x8, .refptr.var -; CHECK: ldr x8, [x8, :lo12:.refptr.var] -; CHECK: ldr w0, [x8] -; CHECK: ret +; CHECK: // %bb.0: // %entry +; CHECK-NEXT: adrp x8, .refptr.var +; CHECK-NEXT: ldr x8, [x8, :lo12:.refptr.var] +; CHECK-NEXT: ldr w0, [x8] +; CHECK-NEXT: ret entry: %0 = load i32, ptr @var, align 4 ret i32 %0 @@ -21,9 +22,10 @@ entry: define dso_local i32 @getDsoLocalVar() { ; CHECK-LABEL: getDsoLocalVar: -; CHECK: adrp x8, dsolocalvar -; CHECK: ldr w0, [x8, :lo12:dsolocalvar] -; CHECK: ret +; CHECK: // %bb.0: // %entry +; CHECK-NEXT: adrp x8, dsolocalvar +; CHECK-NEXT: ldr w0, [x8, :lo12:dsolocalvar] +; CHECK-NEXT: ret entry: %0 = load i32, ptr @dsolocalvar, align 4 ret i32 %0 @@ -31,9 +33,10 @@ entry: define dso_local i32 @getLocalVar() { ; CHECK-LABEL: getLocalVar: -; CHECK: adrp x8, localvar -; CHECK: ldr w0, [x8, :lo12:localvar] -; CHECK: ret +; CHECK: // %bb.0: // %entry +; CHECK-NEXT: adrp x8, localvar +; CHECK-NEXT: ldr w0, [x8, :lo12:localvar] +; CHECK-NEXT: ret entry: %0 = load i32, ptr @localvar, align 4 ret i32 %0 @@ -41,9 +44,10 @@ entry: define dso_local i32 @getLocalCommon() { ; CHECK-LABEL: getLocalCommon: -; CHECK: adrp x8, localcommon -; CHECK: ldr w0, [x8, :lo12:localcommon] -; CHECK: ret +; CHECK: // %bb.0: // %entry +; CHECK-NEXT: adrp x8, localcommon +; CHECK-NEXT: ldr w0, [x8, :lo12:localcommon] +; CHECK-NEXT: ret entry: %0 = load i32, ptr @localcommon, align 4 ret i32 %0 @@ -51,10 +55,11 @@ entry: define dso_local i32 @getExtVar() { ; CHECK-LABEL: getExtVar: -; CHECK: adrp x8, __imp_extvar -; CHECK: ldr x8, [x8, :lo12:__imp_extvar] -; CHECK: ldr w0, [x8] -; CHECK: ret +; CHECK: // %bb.0: // %entry +; CHECK-NEXT: adrp x8, __imp_extvar +; CHECK-NEXT: ldr x8, [x8, :lo12:__imp_extvar] +; CHECK-NEXT: ldr w0, [x8] +; CHECK-NEXT: ret entry: %0 = load i32, ptr @extvar, align 4 ret i32 %0 @@ -62,7 +67,8 @@ entry: define dso_local void @callFunc() { ; CHECK-LABEL: callFunc: -; CHECK: b otherFunc +; CHECK: // %bb.0: // %entry +; CHECK-NEXT: b otherFunc entry: tail call void @otherFunc() ret void @@ -70,16 +76,40 @@ entry: declare dso_local void @otherFunc() -; FALLBACK-NOT: remark:{{.*}}sspFunc define dso_local void @sspFunc() #0 { ; CHECK-LABEL: sspFunc: -; CHECK: adrp x8, .refptr.__stack_chk_guard -; CHECK: ldr x8, [x8, :lo12:.refptr.__stack_chk_guard] -; CHECK: ldr x8, [x8] -; GISEL-LABEL: sspFunc: -; GISEL: adrp x8, .refptr.__stack_chk_guard -; GISEL: ldr x8, [x8, :lo12:.refptr.__stack_chk_guard] -; GISEL: ldr x8, [x8] +; CHECK: .seh_proc sspFunc +; CHECK-NEXT: // %bb.0: // %entry +; CHECK-NEXT: sub sp, sp, #32 +; CHECK-NEXT: .seh_stackalloc 32 +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: .seh_save_reg x30, 16 +; CHECK-NEXT: .seh_endprologue +; CHECK-NEXT: adrp x8, .refptr.__stack_chk_guard +; CHECK-NEXT: add x0, sp, #7 +; CHECK-NEXT: ldr x8, [x8, :lo12:.refptr.__stack_chk_guard] +; CHECK-NEXT: ldr x8, [x8] +; CHECK-NEXT: str x8, [sp, #8] +; CHECK-NEXT: bl ptrUser +; CHECK-NEXT: adrp x8, .refptr.__stack_chk_guard +; CHECK-NEXT: ldr x8, [x8, :lo12:.refptr.__stack_chk_guard] +; CHECK-NEXT: ldr x9, [sp, #8] +; CHECK-NEXT: ldr x8, [x8] +; CHECK-NEXT: cmp x8, x9 +; CHECK-NEXT: b.ne .LBB6_2 +; CHECK-NEXT: // %bb.1: // %entry +; CHECK-NEXT: .seh_startepilogue +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: .seh_save_reg x30, 16 +; CHECK-NEXT: add sp, sp, #32 +; CHECK-NEXT: .seh_stackalloc 32 +; CHECK-NEXT: .seh_endepilogue +; CHECK-NEXT: ret +; CHECK-NEXT: .LBB6_2: // %entry +; CHECK-NEXT: bl __stack_chk_fail +; CHECK-NEXT: brk #0x1 +; CHECK-NEXT: .seh_endfunclet +; CHECK-NEXT: .seh_endproc entry: %c = alloca i8, align 1 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %c) @@ -102,3 +132,7 @@ attributes #0 = { sspstrong } ; CHECK: .globl .refptr.var ; CHECK: .refptr.var: ; CHECK: .xword var + +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; CHECK-GI: {{.*}} +; CHECK-SD: {{.*}} diff --git a/llvm/test/CodeGen/AArch64/misched-bundle.mir b/llvm/test/CodeGen/AArch64/misched-bundle.mir index ac6112e8c60ef..9adcd2904a250 100644 --- a/llvm/test/CodeGen/AArch64/misched-bundle.mir +++ b/llvm/test/CodeGen/AArch64/misched-bundle.mir @@ -17,18 +17,13 @@ # CHECK-NEXT: Single Issue : false; # CHECK-NEXT: SU(1): renamable $z1 = LD1H renamable $p0, renamable $x2, renamable $x10 :: (load unknown-size, align 1) # CHECK-NEXT: # preds left : 0 -# CHECK-NEXT: # succs left : 9 +# CHECK-NEXT: # succs left : 4 # CHECK-NEXT: # rdefs left : 0 # CHECK-NEXT: Latency : 3 # CHECK-NEXT: Depth : 0 # CHECK-NEXT: Height : 7 # CHECK-NEXT: Successors: # CHECK-NEXT: SU(7): Out Latency=1 -# CHECK-NEXT: SU(7): Out Latency=1 -# CHECK-NEXT: SU(7): Out Latency=1 -# CHECK-NEXT: SU(7): Out Latency=1 -# CHECK-NEXT: SU(7): Out Latency=1 -# CHECK-NEXT: SU(7): Out Latency=1 # CHECK-NEXT: SU(6): Data Latency=3 Reg=$z1 # CHECK-NEXT: SU(9): Ord Latency=0 Memory # CHECK-NEXT: SU(8): Ord Latency=0 Memory @@ -83,7 +78,7 @@ # CHECK-NEXT: Single Issue : false; # CHECK-NEXT: SU(6): $z0 = FMAD_ZPmZZ_H renamable $p0, killed $z0(tied-def 0), killed renamable $z1, killed renamable $z2 # CHECK-NEXT: # preds left : 4 -# CHECK-NEXT: # succs left : 7 +# CHECK-NEXT: # succs left : 2 # CHECK-NEXT: # rdefs left : 0 # CHECK-NEXT: Latency : 4 # CHECK-NEXT: Depth : 3 @@ -96,14 +91,9 @@ # CHECK-NEXT: Successors: # CHECK-NEXT: SU(8): Data Latency=4 Reg=$z0 # CHECK-NEXT: SU(7): Anti Latency=0 -# CHECK-NEXT: SU(7): Anti Latency=0 -# CHECK-NEXT: SU(7): Anti Latency=0 -# CHECK-NEXT: SU(7): Anti Latency=0 -# CHECK-NEXT: SU(7): Anti Latency=0 -# CHECK-NEXT: SU(7): Anti Latency=0 # CHECK-NEXT: Single Issue : false; # CHECK-NEXT: SU(7): BUNDLE implicit-def $z1, implicit-def $q1, implicit-def $d1, implicit-def $s1, implicit-def $h1, implicit-def $b1, implicit $z5, implicit $p0, implicit killed $z4, implicit killed $z3 -# CHECK-NEXT: # preds left : 15 +# CHECK-NEXT: # preds left : 5 # CHECK-NEXT: # succs left : 1 # CHECK-NEXT: # rdefs left : 0 # CHECK-NEXT: Latency : 1 @@ -111,20 +101,10 @@ # CHECK-NEXT: Height : 4 # CHECK-NEXT: Predecessors: # CHECK-NEXT: SU(6): Anti Latency=0 -# CHECK-NEXT: SU(6): Anti Latency=0 -# CHECK-NEXT: SU(6): Anti Latency=0 -# CHECK-NEXT: SU(6): Anti Latency=0 -# CHECK-NEXT: SU(6): Anti Latency=0 -# CHECK-NEXT: SU(6): Anti Latency=0 # CHECK-NEXT: SU(5): Data Latency=3 Reg=$z5 # CHECK-NEXT: SU(4): Data Latency=3 Reg=$z4 # CHECK-NEXT: SU(3): Data Latency=3 Reg=$z3 # CHECK-NEXT: SU(1): Out Latency=1 -# CHECK-NEXT: SU(1): Out Latency=1 -# CHECK-NEXT: SU(1): Out Latency=1 -# CHECK-NEXT: SU(1): Out Latency=1 -# CHECK-NEXT: SU(1): Out Latency=1 -# CHECK-NEXT: SU(1): Out Latency=1 # CHECK-NEXT: Successors: # CHECK-NEXT: SU(9): Data Latency=4 Reg=$z1 # CHECK-NEXT: Single Issue : false; diff --git a/llvm/test/CodeGen/AArch64/misched-detail-resource-booking-01.mir b/llvm/test/CodeGen/AArch64/misched-detail-resource-booking-01.mir index 6fb8ba2dfc839..6cdbbb8c53d69 100644 --- a/llvm/test/CodeGen/AArch64/misched-detail-resource-booking-01.mir +++ b/llvm/test/CodeGen/AArch64/misched-detail-resource-booking-01.mir @@ -1583,18 +1583,6 @@ body: | # CHECK-NEXT: B0 [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r # CHECK-NEXT: B1 [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r # CHECK-NEXT: B2 [0B,96r:0) 0@0B-phi -# CHECK-NEXT: B0_HI [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r -# CHECK-NEXT: H0_HI [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r -# CHECK-NEXT: S0_HI [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r -# CHECK-NEXT: B1_HI [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r -# CHECK-NEXT: H1_HI [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r -# CHECK-NEXT: S1_HI [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r -# CHECK-NEXT: B2_HI [0B,96r:0) 0@0B-phi -# CHECK-NEXT: H2_HI [0B,96r:0) 0@0B-phi -# CHECK-NEXT: S2_HI [0B,96r:0) 0@0B-phi -# CHECK-NEXT: D0_HI [0B,48r:0)[192r,224r:1) 0@0B-phi 1@192r -# CHECK-NEXT: D1_HI [0B,88r:0)[208r,224r:1) 0@0B-phi 1@208r -# CHECK-NEXT: D2_HI [0B,96r:0) 0@0B-phi # CHECK-NEXT: %0 [48r,168r:0) 0@48r weight:0.000000e+00 # CHECK-NEXT: %1 [88r,120r:0) 0@88r weight:0.000000e+00 # CHECK-NEXT: %2 [96r,128r:0) 0@96r weight:0.000000e+00 diff --git a/llvm/test/CodeGen/AArch64/misched-detail-resource-booking-02.mir b/llvm/test/CodeGen/AArch64/misched-detail-resource-booking-02.mir index 9c9b6e281b15d..2cc6301881381 100644 --- a/llvm/test/CodeGen/AArch64/misched-detail-resource-booking-02.mir +++ b/llvm/test/CodeGen/AArch64/misched-detail-resource-booking-02.mir @@ -466,9 +466,6 @@ body: | # CHECK-NEXT: W0 [0B,16r:0) 0@0B-phi # CHECK-NEXT: W1 [0B,32r:0) 0@0B-phi # CHECK-NEXT: W2 [0B,48r:0) 0@0B-phi -# CHECK-NEXT: W0_HI [0B,16r:0) 0@0B-phi -# CHECK-NEXT: W1_HI [0B,32r:0) 0@0B-phi -# CHECK-NEXT: W2_HI [0B,48r:0) 0@0B-phi # CHECK-NEXT: RegMasks: # CHECK-NEXT: ********** MACHINEINSTRS ********** # CHECK-NEXT: # Machine code for function f: IsSSA, NoPHIs, TracksLiveness, NoVRegs @@ -479,4 +476,4 @@ body: | # CHECK-NEXT: 32B $x4 = ADDXrr $x1, $x1 # CHECK-NEXT: 48B $x5 = ADDXrr $x2, $x2 # CHECK-EMPTY: -# CHECK-NEXT: # End machine code for function f. +# CHECK-NEXT: # End machine code for function f. \ No newline at end of file diff --git a/llvm/test/CodeGen/AArch64/mulcmle.ll b/llvm/test/CodeGen/AArch64/mulcmle.ll index 32bc5c5e63b3e..5b9f438ed1d43 100644 --- a/llvm/test/CodeGen/AArch64/mulcmle.ll +++ b/llvm/test/CodeGen/AArch64/mulcmle.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=aarch64 %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc -mtriple=aarch64 %s -o - -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc -mtriple=aarch64 %s -o - -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI define <1 x i64> @v1i64(<1 x i64> %a) { ; CHECK-SD-LABEL: v1i64: diff --git a/llvm/test/CodeGen/AArch64/neon-perm.ll b/llvm/test/CodeGen/AArch64/neon-perm.ll index def0f15790a9b..7218204ba844c 100644 --- a/llvm/test/CodeGen/AArch64/neon-perm.ll +++ b/llvm/test/CodeGen/AArch64/neon-perm.ll @@ -1,13 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI - -; CHECK-GI: warning: Instruction selection used fallback path for test_vuzp1q_p0 -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for test_vuzp2q_p0 -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for test_vzip1q_p0 -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for test_vzip2q_p0 -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for test_vtrn1q_p0 -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for test_vtrn2q_p0 +; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI %struct.int8x8x2_t = type { [2 x <8 x i8>] } %struct.int16x4x2_t = type { [2 x <4 x i16>] } diff --git a/llvm/test/CodeGen/AArch64/neon-vector-splat.ll b/llvm/test/CodeGen/AArch64/neon-vector-splat.ll index 489eaf179a1bd..d3846cab46f55 100644 --- a/llvm/test/CodeGen/AArch64/neon-vector-splat.ll +++ b/llvm/test/CodeGen/AArch64/neon-vector-splat.ll @@ -1,8 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -global-isel=0 | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -global-isel=1 -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI - -; CHECK-GI: warning: Instruction selection used fallback path for shuffle8 +; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -global-isel=1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI define <2 x i32> @shuffle(ptr %P) { ; CHECK-SD-LABEL: shuffle: @@ -116,10 +114,16 @@ define <2 x i64> @shuffle7(ptr %P) { } define <2 x ptr> @shuffle8(ptr %P) { -; CHECK-LABEL: shuffle8: -; CHECK: // %bb.0: -; CHECK-NEXT: ld1r { v0.2d }, [x0] -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shuffle8: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: ld1r { v0.2d }, [x0] +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shuffle8: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: ldr q0, [x0] +; CHECK-GI-NEXT: dup v0.2d, v0.d[0] +; CHECK-GI-NEXT: ret %lv2ptr = load <2 x ptr>, ptr %P %sv2ptr = shufflevector <2 x ptr> %lv2ptr, <2 x ptr> undef, <2 x i32> zeroinitializer ret <2 x ptr> %sv2ptr diff --git a/llvm/test/CodeGen/AArch64/overflow.ll b/llvm/test/CodeGen/AArch64/overflow.ll index 977141f2b84f4..489d46f8b0e72 100644 --- a/llvm/test/CodeGen/AArch64/overflow.ll +++ b/llvm/test/CodeGen/AArch64/overflow.ll @@ -1,7 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc < %s -mtriple=arm64-eabi -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,SDAG -; RUN: llc < %s -mtriple=arm64-eabi -global-isel -global-isel-abort=2 -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,GISEL - +; RUN: llc < %s -mtriple=arm64-eabi -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,CHECK-SD +; RUN: llc < %s -mtriple=arm64-eabi -global-isel -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,CHECK-GI define zeroext i1 @saddo1.i32.unused(i32 %v1, i32 %v2, ptr %res) { ; CHECK-LABEL: saddo1.i32.unused: @@ -105,19 +104,19 @@ entry: ret i1 %obit } define zeroext i1 @saddo.add.i32(i32 %v1, i32 %v2, i32 %v3, i32 %v4, i32 %v5, ptr %res) { -; SDAG-LABEL: saddo.add.i32: -; SDAG: // %bb.0: // %entry -; SDAG-NEXT: add w8, w4, #100 -; SDAG-NEXT: subs w8, w8, #100 -; SDAG-NEXT: cset w0, vs -; SDAG-NEXT: str w8, [x5] -; SDAG-NEXT: ret +; CHECK-SD-LABEL: saddo.add.i32: +; CHECK-SD: // %bb.0: // %entry +; CHECK-SD-NEXT: add w8, w4, #100 +; CHECK-SD-NEXT: subs w8, w8, #100 +; CHECK-SD-NEXT: cset w0, vs +; CHECK-SD-NEXT: str w8, [x5] +; CHECK-SD-NEXT: ret ; -; GISEL-LABEL: saddo.add.i32: -; GISEL: // %bb.0: // %entry -; GISEL-NEXT: mov w0, wzr -; GISEL-NEXT: str w4, [x5] -; GISEL-NEXT: ret +; CHECK-GI-LABEL: saddo.add.i32: +; CHECK-GI: // %bb.0: // %entry +; CHECK-GI-NEXT: mov w0, wzr +; CHECK-GI-NEXT: str w4, [x5] +; CHECK-GI-NEXT: ret entry: %lhs = add nsw i32 %v5, 100 %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %lhs, i32 -100) @@ -128,20 +127,20 @@ entry: } define zeroext i1 @uaddo.add.i32(i32 %v1, i32 %v2, i32 %v3, i32 %v4, i32 %v5, ptr %res) { -; SDAG-LABEL: uaddo.add.i32: -; SDAG: // %bb.0: // %entry -; SDAG-NEXT: add w8, w4, #5 -; SDAG-NEXT: adds w8, w8, #5 -; SDAG-NEXT: cset w0, hs -; SDAG-NEXT: str w8, [x5] -; SDAG-NEXT: ret +; CHECK-SD-LABEL: uaddo.add.i32: +; CHECK-SD: // %bb.0: // %entry +; CHECK-SD-NEXT: add w8, w4, #5 +; CHECK-SD-NEXT: adds w8, w8, #5 +; CHECK-SD-NEXT: cset w0, hs +; CHECK-SD-NEXT: str w8, [x5] +; CHECK-SD-NEXT: ret ; -; GISEL-LABEL: uaddo.add.i32: -; GISEL: // %bb.0: // %entry -; GISEL-NEXT: adds w8, w4, #10 -; GISEL-NEXT: cset w0, hs -; GISEL-NEXT: str w8, [x5] -; GISEL-NEXT: ret +; CHECK-GI-LABEL: uaddo.add.i32: +; CHECK-GI: // %bb.0: // %entry +; CHECK-GI-NEXT: adds w8, w4, #10 +; CHECK-GI-NEXT: cset w0, hs +; CHECK-GI-NEXT: str w8, [x5] +; CHECK-GI-NEXT: ret entry: %lhs = add nuw i32 %v5, 5 %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %lhs, i32 5) diff --git a/llvm/test/CodeGen/AArch64/peephole-insvigpr.mir b/llvm/test/CodeGen/AArch64/peephole-insvigpr.mir index 3174d3c8c1a73..f8af5b9637017 100644 --- a/llvm/test/CodeGen/AArch64/peephole-insvigpr.mir +++ b/llvm/test/CodeGen/AArch64/peephole-insvigpr.mir @@ -487,7 +487,7 @@ body: | ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr64common = COPY $x0 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr64all = IMPLICIT_DEF ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64sp = COPY [[DEF]] - ; CHECK-NEXT: INLINEASM &"ldr ${0:s}, $1", 8 /* mayload attdialect */, 3735562 /* regdef:FPR64 */, def %1, 262158 /* mem:m */, killed [[COPY1]] + ; CHECK-NEXT: INLINEASM &"ldr ${0:s}, $1", 8 /* mayload attdialect */, 3342346 /* regdef:FPR64 */, def %1, 262158 /* mem:m */, killed [[COPY1]] ; CHECK-NEXT: [[MOVIv2d_ns:%[0-9]+]]:fpr128 = MOVIv2d_ns 0 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:fpr64 = COPY [[MOVIv2d_ns]].dsub ; CHECK-NEXT: [[DEF1:%[0-9]+]]:fpr128 = IMPLICIT_DEF @@ -505,7 +505,7 @@ body: | %0:gpr64common = COPY $x0 %2:gpr64all = IMPLICIT_DEF %3:gpr64sp = COPY %2 - INLINEASM &"ldr ${0:s}, $1", 8 /* mayload attdialect */, 3735562 /* regdef:FPR64 */, def %1, 262158 /* mem:m */, killed %3 + INLINEASM &"ldr ${0:s}, $1", 8 /* mayload attdialect */, 3342346 /* regdef:FPR64 */, def %1, 262158 /* mem:m */, killed %3 %4:fpr128 = MOVIv2d_ns 0 %5:fpr64 = COPY %4.dsub %7:fpr128 = IMPLICIT_DEF diff --git a/llvm/test/CodeGen/AArch64/phi.ll b/llvm/test/CodeGen/AArch64/phi.ll index eeafbaffbcc69..55942d0e421bb 100644 --- a/llvm/test/CodeGen/AArch64/phi.ll +++ b/llvm/test/CodeGen/AArch64/phi.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 ; RUN: llc -mtriple=aarch64 -global-isel=0 -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc -mtriple=aarch64 -global-isel=1 -global-isel-abort=2 -verify-machineinstrs %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc -mtriple=aarch64 -global-isel=1 -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GI define i8 @ti8(i1 %c, ptr %p, i8 %a, i8 %b) { ; CHECK-SD-LABEL: ti8: diff --git a/llvm/test/CodeGen/AArch64/preserve.ll b/llvm/test/CodeGen/AArch64/preserve.ll index 49fb3685bcfc1..ffd479e1bd739 100644 --- a/llvm/test/CodeGen/AArch64/preserve.ll +++ b/llvm/test/CodeGen/AArch64/preserve.ll @@ -8,19 +8,20 @@ target triple = "aarch64-unknown-unknown" declare void @bar1() define preserve_mostcc void @baz() #0 { -; CHECK: baz Clobbered Registers: $ffr $fpcr $fpmr $fpsr $nzcv $sp $vg $wsp $wsp_hi $za $b0 $b1 $b2 $b3 $b4 $b5 $b6 $b7 $b16 $b17 $b18 $b19 $b20 $b21 $b22 $b23 $b24 $b25 $b26 $b27 $b28 $b29 $b30 $b31 $d0 $d1 $d2 $d3 $d4 $d5 $d6 $d7 $d16 $d17 $d18 $d19 $d20 $d21 $d22 $d23 $d24 $d25 $d26 $d27 $d28 $d29 $d30 $d31 $h0 $h1 $h2 $h3 $h4 $h5 $h6 $h7 $h16 $h17 $h18 $h19 $h20 $h21 $h22 $h23 $h24 $h25 $h26 $h27 $h28 $h29 $h30 $h31 $p0 $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9 $p10 $p11 $p12 $p13 $p14 $p15 $pn0 $pn1 $pn2 $pn3 $pn4 $pn5 $pn6 $pn7 $pn8 $pn9 $pn10 $pn11 $pn12 $pn13 $pn14 $pn15 $q0 $q1 $q2 $q3 $q4 $q5 $q6 $q7 $q8 $q9 $q10 $q11 $q12 $q13 $q14 $q15 $q16 $q17 $q18 $q19 $q20 $q21 $q22 $q23 $q24 $q25 $q26 $q27 $q28 $q29 $q30 $q31 $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 $s16 $s17 $s18 $s19 $s20 $s21 $s22 $s23 $s24 $s25 $s26 $s27 $s28 $s29 $s30 $s31 $w0 $w1 $w2 $w3 $w4 $w5 $w6 $w7 $w8 $w16 $w17 $w18 $x0 $x1 $x2 $x3 $x4 $x5 $x6 $x7 $x8 $x16 $x17 $x18 $z0 $z1 $z2 $z3 $z4 $z5 $z6 $z7 $z8 $z9 $z10 $z11 $z12 $z13 $z14 $z15 $z16 $z17 $z18 $z19 $z20 $z21 $z22 $z23 $z24 $z25 $z26 $z27 $z28 $z29 $z30 $z31 $zab0 $zad0 $zad1 $zad2 $zad3 $zad4 $zad5 $zad6 $zad7 $zah0 $zah1 $zaq0 $zaq1 $zaq2 $zaq3 $zaq4 $zaq5 $zaq6 $zaq7 $zaq8 $zaq9 $zaq10 $zaq11 $zaq12 $zaq13 $zaq14 $zaq15 $zas0 $zas1 $zas2 $zas3 $zt0 $b0_hi $b1_hi $b2_hi $b3_hi $b4_hi $b5_hi $b6_hi $b7_hi $b16_hi $b17_hi $b18_hi $b19_hi $b20_hi $b21_hi $b22_hi $b23_hi $b24_hi $b25_hi $b26_hi $b27_hi $b28_hi $b29_hi $b30_hi $b31_hi $d0_hi $d1_hi $d2_hi $d3_hi $d4_hi $d5_hi $d6_hi $d7_hi $d8_hi $d9_hi $d10_hi $d11_hi $d12_hi $d13_hi $d14_hi $d15_hi $d16_hi $d17_hi $d18_hi $d19_hi $d20_hi $d21_hi $d22_hi $d23_hi $d24_hi $d25_hi $d26_hi $d27_hi $d28_hi $d29_hi $d30_hi $d31_hi $h0_hi $h1_hi $h2_hi $h3_hi $h4_hi $h5_hi $h6_hi $h7_hi $h16_hi $h17_hi $h18_hi $h19_hi $h20_hi $h21_hi $h22_hi $h23_hi $h24_hi $h25_hi $h26_hi $h27_hi $h28_hi $h29_hi $h30_hi $h31_hi $q0_hi $q1_hi $q2_hi $q3_hi $q4_hi $q5_hi $q6_hi $q7_hi $q8_hi $q9_hi $q10_hi $q11_hi $q12_hi $q13_hi $q14_hi $q15_hi $q16_hi $q17_hi $q18_hi $q19_hi $q20_hi $q21_hi $q22_hi $q23_hi $q24_hi $q25_hi $q26_hi $q27_hi $q28_hi $q29_hi $q30_hi $q31_hi $s0_hi $s1_hi $s2_hi $s3_hi $s4_hi $s5_hi $s6_hi $s7_hi $s16_hi $s17_hi $s18_hi $s19_hi $s20_hi $s21_hi $s22_hi $s23_hi $s24_hi $s25_hi $s26_hi $s27_hi $s28_hi $s29_hi $s30_hi $s31_hi $w0_hi $w1_hi $w2_hi $w3_hi $w4_hi $w5_hi $w6_hi $w7_hi $w8_hi $w16_hi $w17_hi $w18_hi $d0_d1 $d1_d2 $d2_d3 $d3_d4 $d4_d5 $d5_d6 $d6_d7 $d7_d8 $d15_d16 $d16_d17 $d17_d18 $d18_d19 $d19_d20 $d20_d21 $d21_d22 $d22_d23 $d23_d24 $d24_d25 $d25_d26 $d26_d27 $d27_d28 $d28_d29 $d29_d30 $d30_d31 $d31_d0 $d0_d1_d2_d3 $d1_d2_d3_d4 $d2_d3_d4_d5 $d3_d4_d5_d6 $d4_d5_d6_d7 $d5_d6_d7_d8 $d6_d7_d8_d9 $d7_d8_d9_d10 $d13_d14_d15_d16 $d14_d15_d16_d17 $d15_d16_d17_d18 $d16_d17_d18_d19 $d17_d18_d19_d20 $d18_d19_d20_d21 $d19_d20_d21_d22 $d20_d21_d22_d23 $d21_d22_d23_d24 $d22_d23_d24_d25 $d23_d24_d25_d26 $d24_d25_d26_d27 $d25_d26_d27_d28 $d26_d27_d28_d29 $d27_d28_d29_d30 $d28_d29_d30_d31 $d29_d30_d31_d0 $d30_d31_d0_d1 $d31_d0_d1_d2 $d0_d1_d2 $d1_d2_d3 $d2_d3_d4 $d3_d4_d5 $d4_d5_d6 $d5_d6_d7 $d6_d7_d8 $d7_d8_d9 $d14_d15_d16 $d15_d16_d17 $d16_d17_d18 $d17_d18_d19 $d18_d19_d20 $d19_d20_d21 $d20_d21_d22 $d21_d22_d23 $d22_d23_d24 $d23_d24_d25 $d24_d25_d26 $d25_d26_d27 $d26_d27_d28 $d27_d28_d29 $d28_d29_d30 $d29_d30_d31 $d30_d31_d0 $d31_d0_d1 $p0_p1 $p1_p2 $p2_p3 $p3_p4 $p4_p5 $p5_p6 $p6_p7 $p7_p8 $p8_p9 $p9_p10 $p10_p11 $p11_p12 $p12_p13 $p13_p14 $p14_p15 $p15_p0 $q0_q1 $q1_q2 $q2_q3 $q3_q4 $q4_q5 $q5_q6 $q6_q7 $q7_q8 $q8_q9 $q9_q10 $q10_q11 $q11_q12 $q12_q13 $q13_q14 $q14_q15 $q15_q16 $q16_q17 $q17_q18 $q18_q19 $q19_q20 $q20_q21 $q21_q22 $q22_q23 $q23_q24 $q24_q25 $q25_q26 $q26_q27 $q27_q28 $q28_q29 $q29_q30 $q30_q31 $q31_q0 $q0_q1_q2_q3 $q1_q2_q3_q4 $q2_q3_q4_q5 $q3_q4_q5_q6 $q4_q5_q6_q7 $q5_q6_q7_q8 $q6_q7_q8_q9 $q7_q8_q9_q10 $q8_q9_q10_q11 $q9_q10_q11_q12 $q10_q11_q12_q13 $q11_q12_q13_q14 $q12_q13_q14_q15 $q13_q14_q15_q16 $q14_q15_q16_q17 $q15_q16_q17_q18 $q16_q17_q18_q19 $q17_q18_q19_q20 $q18_q19_q20_q21 $q19_q20_q21_q22 $q20_q21_q22_q23 $q21_q22_q23_q24 $q22_q23_q24_q25 $q23_q24_q25_q26 $q24_q25_q26_q27 $q25_q26_q27_q28 $q26_q27_q28_q29 $q27_q28_q29_q30 $q28_q29_q30_q31 $q29_q30_q31_q0 $q30_q31_q0_q1 $q31_q0_q1_q2 $q0_q1_q2 $q1_q2_q3 $q2_q3_q4 $q3_q4_q5 $q4_q5_q6 $q5_q6_q7 $q6_q7_q8 $q7_q8_q9 $q8_q9_q10 $q9_q10_q11 $q10_q11_q12 $q11_q12_q13 $q12_q13_q14 $q13_q14_q15 $q14_q15_q16 $q15_q16_q17 $q16_q17_q18 $q17_q18_q19 $q18_q19_q20 $q19_q20_q21 $q20_q21_q22 $q21_q22_q23 $q22_q23_q24 $q23_q24_q25 $q24_q25_q26 $q25_q26_q27 $q26_q27_q28 $q27_q28_q29 $q28_q29_q30 $q29_q30_q31 $q30_q31_q0 $q31_q0_q1 $x0_x1_x2_x3_x4_x5_x6_x7 $x2_x3_x4_x5_x6_x7_x8_x9 $x4_x5_x6_x7_x8_x9_x10_x11 $x6_x7_x8_x9_x10_x11_x12_x13 $x8_x9_x10_x11_x12_x13_x14_x15 $x10_x11_x12_x13_x14_x15_x16_x17 $x12_x13_x14_x15_x16_x17_x18_x19 $x14_x15_x16_x17_x18_x19_x20_x21 $x16_x17_x18_x19_x20_x21_x22_x23 $x18_x19_x20_x21_x22_x23_x24_x25 $w30_wzr $w0_w1 $w2_w3 $w4_w5 $w6_w7 $w8_w9 $w10_w11 $w12_w13 $w14_w15 $w16_w17 $w18_w19 $lr_xzr $x0_x1 $x2_x3 $x4_x5 $x6_x7 $x8_x9 $x10_x11 $x12_x13 $x14_x15 $x16_x17 $x18_x19 $z0_z1 $z1_z2 $z2_z3 $z3_z4 $z4_z5 $z5_z6 $z6_z7 $z7_z8 $z8_z9 $z9_z10 $z10_z11 $z11_z12 $z12_z13 $z13_z14 $z14_z15 $z15_z16 $z16_z17 $z17_z18 $z18_z19 $z19_z20 $z20_z21 $z21_z22 $z22_z23 $z23_z24 $z24_z25 $z25_z26 $z26_z27 $z27_z28 $z28_z29 $z29_z30 $z30_z31 $z31_z0 $z0_z1_z2_z3 $z1_z2_z3_z4 $z2_z3_z4_z5 $z3_z4_z5_z6 $z4_z5_z6_z7 $z5_z6_z7_z8 $z6_z7_z8_z9 $z7_z8_z9_z10 $z8_z9_z10_z11 $z9_z10_z11_z12 $z10_z11_z12_z13 $z11_z12_z13_z14 $z12_z13_z14_z15 $z13_z14_z15_z16 $z14_z15_z16_z17 $z15_z16_z17_z18 $z16_z17_z18_z19 $z17_z18_z19_z20 $z18_z19_z20_z21 $z19_z20_z21_z22 $z20_z21_z22_z23 $z21_z22_z23_z24 $z22_z23_z24_z25 $z23_z24_z25_z26 $z24_z25_z26_z27 $z25_z26_z27_z28 $z26_z27_z28_z29 $z27_z28_z29_z30 $z28_z29_z30_z31 $z29_z30_z31_z0 $z30_z31_z0_z1 $z31_z0_z1_z2 $z0_z1_z2 $z1_z2_z3 $z2_z3_z4 $z3_z4_z5 $z4_z5_z6 $z5_z6_z7 $z6_z7_z8 $z7_z8_z9 $z8_z9_z10 $z9_z10_z11 $z10_z11_z12 $z11_z12_z13 $z12_z13_z14 $z13_z14_z15 $z14_z15_z16 $z15_z16_z17 $z16_z17_z18 $z17_z18_z19 $z18_z19_z20 $z19_z20_z21 $z20_z21_z22 $z21_z22_z23 $z22_z23_z24 $z23_z24_z25 $z24_z25_z26 $z25_z26_z27 $z26_z27_z28 $z27_z28_z29 $z28_z29_z30 $z29_z30_z31 $z30_z31_z0 $z31_z0_z1 $z16_z24 $z17_z25 $z18_z26 $z19_z27 $z20_z28 $z21_z29 $z22_z30 $z23_z31 $z0_z8 $z1_z9 $z2_z10 $z3_z11 $z4_z12 $z5_z13 $z6_z14 $z7_z15 $z16_z20_z24_z28 $z17_z21_z25_z29 $z18_z22_z26_z30 $z19_z23_z27_z31 $z0_z4_z8_z12 $z1_z5_z9_z13 $z2_z6_z10_z14 $z3_z7_z11_z15 +; CHECK: baz Clobbered Registers: $ffr $fpcr $fpmr $fpsr $nzcv $sp $vg $wsp $za $b0 $b1 $b2 $b3 $b4 $b5 $b6 $b7 $b16 $b17 $b18 $b19 $b20 $b21 $b22 $b23 $b24 $b25 $b26 $b27 $b28 $b29 $b30 $b31 $d0 $d1 $d2 $d3 $d4 $d5 $d6 $d7 $d16 $d17 $d18 $d19 $d20 $d21 $d22 $d23 $d24 $d25 $d26 $d27 $d28 $d29 $d30 $d31 $h0 $h1 $h2 $h3 $h4 $h5 $h6 $h7 $h16 $h17 $h18 $h19 $h20 $h21 $h22 $h23 $h24 $h25 $h26 $h27 $h28 $h29 $h30 $h31 $p0 $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9 $p10 $p11 $p12 $p13 $p14 $p15 $pn0 $pn1 $pn2 $pn3 $pn4 $pn5 $pn6 $pn7 $pn8 $pn9 $pn10 $pn11 $pn12 $pn13 $pn14 $pn15 $q0 $q1 $q2 $q3 $q4 $q5 $q6 $q7 $q8 $q9 $q10 $q11 $q12 $q13 $q14 $q15 $q16 $q17 $q18 $q19 $q20 $q21 $q22 $q23 $q24 $q25 $q26 $q27 $q28 $q29 $q30 $q31 $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 $s16 $s17 $s18 $s19 $s20 $s21 $s22 $s23 $s24 $s25 $s26 $s27 $s28 $s29 $s30 $s31 $w0 $w1 $w2 $w3 $w4 $w5 $w6 $w7 $w8 $w16 $w17 $w18 $x0 $x1 $x2 $x3 $x4 $x5 $x6 $x7 $x8 $x16 $x17 $x18 $z0 $z1 $z2 $z3 $z4 $z5 $z6 $z7 $z8 $z9 $z10 $z11 $z12 $z13 $z14 $z15 $z16 $z17 $z18 $z19 $z20 $z21 $z22 $z23 $z24 $z25 $z26 $z27 $z28 $z29 $z30 $z31 $zab0 $zad0 $zad1 $zad2 $zad3 $zad4 $zad5 $zad6 $zad7 $zah0 $zah1 $zaq0 $zaq1 $zaq2 $zaq3 $zaq4 $zaq5 $zaq6 $zaq7 $zaq8 $zaq9 $zaq10 $zaq11 $zaq12 $zaq13 $zaq14 $zaq15 $zas0 $zas1 $zas2 $zas3 $zt0 $d0_d1 $d1_d2 $d2_d3 $d3_d4 $d4_d5 $d5_d6 $d6_d7 $d7_d8 $d15_d16 $d16_d17 $d17_d18 $d18_d19 $d19_d20 $d20_d21 $d21_d22 $d22_d23 $d23_d24 $d24_d25 $d25_d26 $d26_d27 $d27_d28 $d28_d29 $d29_d30 $d30_d31 $d31_d0 $d0_d1_d2_d3 $d1_d2_d3_d4 $d2_d3_d4_d5 $d3_d4_d5_d6 $d4_d5_d6_d7 $d5_d6_d7_d8 $d6_d7_d8_d9 $d7_d8_d9_d10 $d13_d14_d15_d16 $d14_d15_d16_d17 $d15_d16_d17_d18 $d16_d17_d18_d19 $d17_d18_d19_d20 $d18_d19_d20_d21 $d19_d20_d21_d22 $d20_d21_d22_d23 $d21_d22_d23_d24 $d22_d23_d24_d25 $d23_d24_d25_d26 $d24_d25_d26_d27 $d25_d26_d27_d28 $d26_d27_d28_d29 $d27_d28_d29_d30 $d28_d29_d30_d31 $d29_d30_d31_d0 $d30_d31_d0_d1 $d31_d0_d1_d2 $d0_d1_d2 $d1_d2_d3 $d2_d3_d4 $d3_d4_d5 $d4_d5_d6 $d5_d6_d7 $d6_d7_d8 $d7_d8_d9 $d14_d15_d16 $d15_d16_d17 $d16_d17_d18 $d17_d18_d19 $d18_d19_d20 $d19_d20_d21 $d20_d21_d22 $d21_d22_d23 $d22_d23_d24 $d23_d24_d25 $d24_d25_d26 $d25_d26_d27 $d26_d27_d28 $d27_d28_d29 $d28_d29_d30 $d29_d30_d31 $d30_d31_d0 $d31_d0_d1 $p0_p1 $p1_p2 $p2_p3 $p3_p4 $p4_p5 $p5_p6 $p6_p7 $p7_p8 $p8_p9 $p9_p10 $p10_p11 $p11_p12 $p12_p13 $p13_p14 $p14_p15 $p15_p0 $q0_q1 $q1_q2 $q2_q3 $q3_q4 $q4_q5 $q5_q6 $q6_q7 $q7_q8 $q8_q9 $q9_q10 $q10_q11 $q11_q12 $q12_q13 $q13_q14 $q14_q15 $q15_q16 $q16_q17 $q17_q18 $q18_q19 $q19_q20 $q20_q21 $q21_q22 $q22_q23 $q23_q24 $q24_q25 $q25_q26 $q26_q27 $q27_q28 $q28_q29 $q29_q30 $q30_q31 $q31_q0 $q0_q1_q2_q3 $q1_q2_q3_q4 $q2_q3_q4_q5 $q3_q4_q5_q6 $q4_q5_q6_q7 $q5_q6_q7_q8 $q6_q7_q8_q9 $q7_q8_q9_q10 $q8_q9_q10_q11 $q9_q10_q11_q12 $q10_q11_q12_q13 $q11_q12_q13_q14 $q12_q13_q14_q15 $q13_q14_q15_q16 $q14_q15_q16_q17 $q15_q16_q17_q18 $q16_q17_q18_q19 $q17_q18_q19_q20 $q18_q19_q20_q21 $q19_q20_q21_q22 $q20_q21_q22_q23 $q21_q22_q23_q24 $q22_q23_q24_q25 $q23_q24_q25_q26 $q24_q25_q26_q27 $q25_q26_q27_q28 $q26_q27_q28_q29 $q27_q28_q29_q30 $q28_q29_q30_q31 $q29_q30_q31_q0 $q30_q31_q0_q1 $q31_q0_q1_q2 $q0_q1_q2 $q1_q2_q3 $q2_q3_q4 $q3_q4_q5 $q4_q5_q6 $q5_q6_q7 $q6_q7_q8 $q7_q8_q9 $q8_q9_q10 $q9_q10_q11 $q10_q11_q12 $q11_q12_q13 $q12_q13_q14 $q13_q14_q15 $q14_q15_q16 $q15_q16_q17 $q16_q17_q18 $q17_q18_q19 $q18_q19_q20 $q19_q20_q21 $q20_q21_q22 $q21_q22_q23 $q22_q23_q24 $q23_q24_q25 $q24_q25_q26 $q25_q26_q27 $q26_q27_q28 $q27_q28_q29 $q28_q29_q30 $q29_q30_q31 $q30_q31_q0 $q31_q0_q1 $x0_x1_x2_x3_x4_x5_x6_x7 $x2_x3_x4_x5_x6_x7_x8_x9 $x4_x5_x6_x7_x8_x9_x10_x11 $x6_x7_x8_x9_x10_x11_x12_x13 $x8_x9_x10_x11_x12_x13_x14_x15 $x10_x11_x12_x13_x14_x15_x16_x17 $x12_x13_x14_x15_x16_x17_x18_x19 $x14_x15_x16_x17_x18_x19_x20_x21 $x16_x17_x18_x19_x20_x21_x22_x23 $x18_x19_x20_x21_x22_x23_x24_x25 $w30_wzr $w0_w1 $w2_w3 $w4_w5 $w6_w7 $w8_w9 $w10_w11 $w12_w13 $w14_w15 $w16_w17 $w18_w19 $lr_xzr $x0_x1 $x2_x3 $x4_x5 $x6_x7 $x8_x9 $x10_x11 $x12_x13 $x14_x15 $x16_x17 $x18_x19 $z0_z1 $z1_z2 $z2_z3 $z3_z4 $z4_z5 $z5_z6 $z6_z7 $z7_z8 $z8_z9 $z9_z10 $z10_z11 $z11_z12 $z12_z13 $z13_z14 $z14_z15 $z15_z16 $z16_z17 $z17_z18 $z18_z19 $z19_z20 $z20_z21 $z21_z22 $z22_z23 $z23_z24 $z24_z25 $z25_z26 $z26_z27 $z27_z28 $z28_z29 $z29_z30 $z30_z31 $z31_z0 $z0_z1_z2_z3 $z1_z2_z3_z4 $z2_z3_z4_z5 $z3_z4_z5_z6 $z4_z5_z6_z7 $z5_z6_z7_z8 $z6_z7_z8_z9 $z7_z8_z9_z10 $z8_z9_z10_z11 $z9_z10_z11_z12 $z10_z11_z12_z13 $z11_z12_z13_z14 $z12_z13_z14_z15 $z13_z14_z15_z16 $z14_z15_z16_z17 $z15_z16_z17_z18 $z16_z17_z18_z19 $z17_z18_z19_z20 $z18_z19_z20_z21 $z19_z20_z21_z22 $z20_z21_z22_z23 $z21_z22_z23_z24 $z22_z23_z24_z25 $z23_z24_z25_z26 $z24_z25_z26_z27 $z25_z26_z27_z28 $z26_z27_z28_z29 $z27_z28_z29_z30 $z28_z29_z30_z31 $z29_z30_z31_z0 $z30_z31_z0_z1 $z31_z0_z1_z2 $z0_z1_z2 $z1_z2_z3 $z2_z3_z4 $z3_z4_z5 $z4_z5_z6 $z5_z6_z7 $z6_z7_z8 $z7_z8_z9 $z8_z9_z10 $z9_z10_z11 $z10_z11_z12 $z11_z12_z13 $z12_z13_z14 $z13_z14_z15 $z14_z15_z16 $z15_z16_z17 $z16_z17_z18 $z17_z18_z19 $z18_z19_z20 $z19_z20_z21 $z20_z21_z22 $z21_z22_z23 $z22_z23_z24 $z23_z24_z25 $z24_z25_z26 $z25_z26_z27 $z26_z27_z28 $z27_z28_z29 $z28_z29_z30 $z29_z30_z31 $z30_z31_z0 $z31_z0_z1 $z16_z24 $z17_z25 $z18_z26 $z19_z27 $z20_z28 $z21_z29 $z22_z30 $z23_z31 $z0_z8 $z1_z9 $z2_z10 $z3_z11 $z4_z12 $z5_z13 $z6_z14 $z7_z15 $z16_z20_z24_z28 $z17_z21_z25_z29 $z18_z22_z26_z30 $z19_z23_z27_z31 $z0_z4_z8_z12 $z1_z5_z9_z13 $z2_z6_z10_z14 $z3_z7_z11_z15 call void @bar1() call void @bar2() ret void } define preserve_allcc void @foo() #0 { -; CHECK: foo Clobbered Registers: $ffr $fpcr $fpmr $fpsr $nzcv $sp $vg $wsp $wsp_hi $za $b0 $b1 $b2 $b3 $b4 $b5 $b6 $b7 $d0 $d1 $d2 $d3 $d4 $d5 $d6 $d7 $h0 $h1 $h2 $h3 $h4 $h5 $h6 $h7 $p0 $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9 $p10 $p11 $p12 $p13 $p14 $p15 $pn0 $pn1 $pn2 $pn3 $pn4 $pn5 $pn6 $pn7 $pn8 $pn9 $pn10 $pn11 $pn12 $pn13 $pn14 $pn15 $q0 $q1 $q2 $q3 $q4 $q5 $q6 $q7 $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 $w0 $w1 $w2 $w3 $w4 $w5 $w6 $w7 $w8 $w16 $w17 $w18 $x0 $x1 $x2 $x3 $x4 $x5 $x6 $x7 $x8 $x16 $x17 $x18 $z0 $z1 $z2 $z3 $z4 $z5 $z6 $z7 $z8 $z9 $z10 $z11 $z12 $z13 $z14 $z15 $z16 $z17 $z18 $z19 $z20 $z21 $z22 $z23 $z24 $z25 $z26 $z27 $z28 $z29 $z30 $z31 $zab0 $zad0 $zad1 $zad2 $zad3 $zad4 $zad5 $zad6 $zad7 $zah0 $zah1 $zaq0 $zaq1 $zaq2 $zaq3 $zaq4 $zaq5 $zaq6 $zaq7 $zaq8 $zaq9 $zaq10 $zaq11 $zaq12 $zaq13 $zaq14 $zaq15 $zas0 $zas1 $zas2 $zas3 $zt0 $b0_hi $b1_hi $b2_hi $b3_hi $b4_hi $b5_hi $b6_hi $b7_hi $d0_hi $d1_hi $d2_hi $d3_hi $d4_hi $d5_hi $d6_hi $d7_hi $h0_hi $h1_hi $h2_hi $h3_hi $h4_hi $h5_hi $h6_hi $h7_hi $q0_hi $q1_hi $q2_hi $q3_hi $q4_hi $q5_hi $q6_hi $q7_hi $q8_hi $q9_hi $q10_hi $q11_hi $q12_hi $q13_hi $q14_hi $q15_hi $q16_hi $q17_hi $q18_hi $q19_hi $q20_hi $q21_hi $q22_hi $q23_hi $q24_hi $q25_hi $q26_hi $q27_hi $q28_hi $q29_hi $q30_hi $q31_hi $s0_hi $s1_hi $s2_hi $s3_hi $s4_hi $s5_hi $s6_hi $s7_hi $w0_hi $w1_hi $w2_hi $w3_hi $w4_hi $w5_hi $w6_hi $w7_hi $w8_hi $w16_hi $w17_hi $w18_hi $d0_d1 $d1_d2 $d2_d3 $d3_d4 $d4_d5 $d5_d6 $d6_d7 $d7_d8 $d15_d16 $d16_d17 $d17_d18 $d18_d19 $d19_d20 $d20_d21 $d21_d22 $d22_d23 $d23_d24 $d24_d25 $d25_d26 $d26_d27 $d27_d28 $d28_d29 $d29_d30 $d30_d31 $d31_d0 $d0_d1_d2_d3 $d1_d2_d3_d4 $d2_d3_d4_d5 $d3_d4_d5_d6 $d4_d5_d6_d7 $d5_d6_d7_d8 $d6_d7_d8_d9 $d7_d8_d9_d10 $d13_d14_d15_d16 $d14_d15_d16_d17 $d15_d16_d17_d18 $d16_d17_d18_d19 $d17_d18_d19_d20 $d18_d19_d20_d21 $d19_d20_d21_d22 $d20_d21_d22_d23 $d21_d22_d23_d24 $d22_d23_d24_d25 $d23_d24_d25_d26 $d24_d25_d26_d27 $d25_d26_d27_d28 $d26_d27_d28_d29 $d27_d28_d29_d30 $d28_d29_d30_d31 $d29_d30_d31_d0 $d30_d31_d0_d1 $d31_d0_d1_d2 $d0_d1_d2 $d1_d2_d3 $d2_d3_d4 $d3_d4_d5 $d4_d5_d6 $d5_d6_d7 $d6_d7_d8 $d7_d8_d9 $d14_d15_d16 $d15_d16_d17 $d16_d17_d18 $d17_d18_d19 $d18_d19_d20 $d19_d20_d21 $d20_d21_d22 $d21_d22_d23 $d22_d23_d24 $d23_d24_d25 $d24_d25_d26 $d25_d26_d27 $d26_d27_d28 $d27_d28_d29 $d28_d29_d30 $d29_d30_d31 $d30_d31_d0 $d31_d0_d1 $p0_p1 $p1_p2 $p2_p3 $p3_p4 $p4_p5 $p5_p6 $p6_p7 $p7_p8 $p8_p9 $p9_p10 $p10_p11 $p11_p12 $p12_p13 $p13_p14 $p14_p15 $p15_p0 $q0_q1 $q1_q2 $q2_q3 $q3_q4 $q4_q5 $q5_q6 $q6_q7 $q7_q8 $q8_q9 $q9_q10 $q10_q11 $q11_q12 $q12_q13 $q13_q14 $q14_q15 $q15_q16 $q16_q17 $q17_q18 $q18_q19 $q19_q20 $q20_q21 $q21_q22 $q22_q23 $q23_q24 $q24_q25 $q25_q26 $q26_q27 $q27_q28 $q28_q29 $q29_q30 $q30_q31 $q31_q0 $q0_q1_q2_q3 $q1_q2_q3_q4 $q2_q3_q4_q5 $q3_q4_q5_q6 $q4_q5_q6_q7 $q5_q6_q7_q8 $q6_q7_q8_q9 $q7_q8_q9_q10 $q8_q9_q10_q11 $q9_q10_q11_q12 $q10_q11_q12_q13 $q11_q12_q13_q14 $q12_q13_q14_q15 $q13_q14_q15_q16 $q14_q15_q16_q17 $q15_q16_q17_q18 $q16_q17_q18_q19 $q17_q18_q19_q20 $q18_q19_q20_q21 $q19_q20_q21_q22 $q20_q21_q22_q23 $q21_q22_q23_q24 $q22_q23_q24_q25 $q23_q24_q25_q26 $q24_q25_q26_q27 $q25_q26_q27_q28 $q26_q27_q28_q29 $q27_q28_q29_q30 $q28_q29_q30_q31 $q29_q30_q31_q0 $q30_q31_q0_q1 $q31_q0_q1_q2 $q0_q1_q2 $q1_q2_q3 $q2_q3_q4 $q3_q4_q5 $q4_q5_q6 $q5_q6_q7 $q6_q7_q8 $q7_q8_q9 $q8_q9_q10 $q9_q10_q11 $q10_q11_q12 $q11_q12_q13 $q12_q13_q14 $q13_q14_q15 $q14_q15_q16 $q15_q16_q17 $q16_q17_q18 $q17_q18_q19 $q18_q19_q20 $q19_q20_q21 $q20_q21_q22 $q21_q22_q23 $q22_q23_q24 $q23_q24_q25 $q24_q25_q26 $q25_q26_q27 $q26_q27_q28 $q27_q28_q29 $q28_q29_q30 $q29_q30_q31 $q30_q31_q0 $q31_q0_q1 $x0_x1_x2_x3_x4_x5_x6_x7 $x2_x3_x4_x5_x6_x7_x8_x9 $x4_x5_x6_x7_x8_x9_x10_x11 $x6_x7_x8_x9_x10_x11_x12_x13 $x8_x9_x10_x11_x12_x13_x14_x15 $x10_x11_x12_x13_x14_x15_x16_x17 $x12_x13_x14_x15_x16_x17_x18_x19 $x14_x15_x16_x17_x18_x19_x20_x21 $x16_x17_x18_x19_x20_x21_x22_x23 $x18_x19_x20_x21_x22_x23_x24_x25 $w30_wzr $w0_w1 $w2_w3 $w4_w5 $w6_w7 $w8_w9 $w10_w11 $w12_w13 $w14_w15 $w16_w17 $w18_w19 $lr_xzr $x0_x1 $x2_x3 $x4_x5 $x6_x7 $x8_x9 $x10_x11 $x12_x13 $x14_x15 $x16_x17 $x18_x19 $z0_z1 $z1_z2 $z2_z3 $z3_z4 $z4_z5 $z5_z6 $z6_z7 $z7_z8 $z8_z9 $z9_z10 $z10_z11 $z11_z12 $z12_z13 $z13_z14 $z14_z15 $z15_z16 $z16_z17 $z17_z18 $z18_z19 $z19_z20 $z20_z21 $z21_z22 $z22_z23 $z23_z24 $z24_z25 $z25_z26 $z26_z27 $z27_z28 $z28_z29 $z29_z30 $z30_z31 $z31_z0 $z0_z1_z2_z3 $z1_z2_z3_z4 $z2_z3_z4_z5 $z3_z4_z5_z6 $z4_z5_z6_z7 $z5_z6_z7_z8 $z6_z7_z8_z9 $z7_z8_z9_z10 $z8_z9_z10_z11 $z9_z10_z11_z12 $z10_z11_z12_z13 $z11_z12_z13_z14 $z12_z13_z14_z15 $z13_z14_z15_z16 $z14_z15_z16_z17 $z15_z16_z17_z18 $z16_z17_z18_z19 $z17_z18_z19_z20 $z18_z19_z20_z21 $z19_z20_z21_z22 $z20_z21_z22_z23 $z21_z22_z23_z24 $z22_z23_z24_z25 $z23_z24_z25_z26 $z24_z25_z26_z27 $z25_z26_z27_z28 $z26_z27_z28_z29 $z27_z28_z29_z30 $z28_z29_z30_z31 $z29_z30_z31_z0 $z30_z31_z0_z1 $z31_z0_z1_z2 $z0_z1_z2 $z1_z2_z3 $z2_z3_z4 $z3_z4_z5 $z4_z5_z6 $z5_z6_z7 $z6_z7_z8 $z7_z8_z9 $z8_z9_z10 $z9_z10_z11 $z10_z11_z12 $z11_z12_z13 $z12_z13_z14 $z13_z14_z15 $z14_z15_z16 $z15_z16_z17 $z16_z17_z18 $z17_z18_z19 $z18_z19_z20 $z19_z20_z21 $z20_z21_z22 $z21_z22_z23 $z22_z23_z24 $z23_z24_z25 $z24_z25_z26 $z25_z26_z27 $z26_z27_z28 $z27_z28_z29 $z28_z29_z30 $z29_z30_z31 $z30_z31_z0 $z31_z0_z1 $z16_z24 $z17_z25 $z18_z26 $z19_z27 $z20_z28 $z21_z29 $z22_z30 $z23_z31 $z0_z8 $z1_z9 $z2_z10 $z3_z11 $z4_z12 $z5_z13 $z6_z14 $z7_z15 $z16_z20_z24_z28 $z17_z21_z25_z29 $z18_z22_z26_z30 $z19_z23_z27_z31 $z0_z4_z8_z12 $z1_z5_z9_z13 $z2_z6_z10_z14 $z3_z7_z11_z15 +; CHECK: foo Clobbered Registers: $ffr $fpcr $fpmr $fpsr $nzcv $sp $vg $wsp $za $b0 $b1 $b2 $b3 $b4 $b5 $b6 $b7 $d0 $d1 $d2 $d3 $d4 $d5 $d6 $d7 $h0 $h1 $h2 $h3 $h4 $h5 $h6 $h7 $p0 $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9 $p10 $p11 $p12 $p13 $p14 $p15 $pn0 $pn1 $pn2 $pn3 $pn4 $pn5 $pn6 $pn7 $pn8 $pn9 $pn10 $pn11 $pn12 $pn13 $pn14 $pn15 $q0 $q1 $q2 $q3 $q4 $q5 $q6 $q7 $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 $w0 $w1 $w2 $w3 $w4 $w5 $w6 $w7 $w8 $w16 $w17 $w18 $x0 $x1 $x2 $x3 $x4 $x5 $x6 $x7 $x8 $x16 $x17 $x18 $z0 $z1 $z2 $z3 $z4 $z5 $z6 $z7 $z8 $z9 $z10 $z11 $z12 $z13 $z14 $z15 $z16 $z17 $z18 $z19 $z20 $z21 $z22 $z23 $z24 $z25 $z26 $z27 $z28 $z29 $z30 $z31 $zab0 $zad0 $zad1 $zad2 $zad3 $zad4 $zad5 $zad6 $zad7 $zah0 $zah1 $zaq0 $zaq1 $zaq2 $zaq3 $zaq4 $zaq5 $zaq6 $zaq7 $zaq8 $zaq9 $zaq10 $zaq11 $zaq12 $zaq13 $zaq14 $zaq15 $zas0 $zas1 $zas2 $zas3 $zt0 $d0_d1 $d1_d2 $d2_d3 $d3_d4 $d4_d5 $d5_d6 $d6_d7 $d7_d8 $d15_d16 $d16_d17 $d17_d18 $d18_d19 $d19_d20 $d20_d21 $d21_d22 $d22_d23 $d23_d24 $d24_d25 $d25_d26 $d26_d27 $d27_d28 $d28_d29 $d29_d30 $d30_d31 $d31_d0 $d0_d1_d2_d3 $d1_d2_d3_d4 $d2_d3_d4_d5 $d3_d4_d5_d6 $d4_d5_d6_d7 $d5_d6_d7_d8 $d6_d7_d8_d9 $d7_d8_d9_d10 $d13_d14_d15_d16 $d14_d15_d16_d17 $d15_d16_d17_d18 $d16_d17_d18_d19 $d17_d18_d19_d20 $d18_d19_d20_d21 $d19_d20_d21_d22 $d20_d21_d22_d23 $d21_d22_d23_d24 $d22_d23_d24_d25 $d23_d24_d25_d26 $d24_d25_d26_d27 $d25_d26_d27_d28 $d26_d27_d28_d29 $d27_d28_d29_d30 $d28_d29_d30_d31 $d29_d30_d31_d0 $d30_d31_d0_d1 $d31_d0_d1_d2 $d0_d1_d2 $d1_d2_d3 $d2_d3_d4 $d3_d4_d5 $d4_d5_d6 $d5_d6_d7 $d6_d7_d8 $d7_d8_d9 $d14_d15_d16 $d15_d16_d17 $d16_d17_d18 $d17_d18_d19 $d18_d19_d20 $d19_d20_d21 $d20_d21_d22 $d21_d22_d23 $d22_d23_d24 $d23_d24_d25 $d24_d25_d26 $d25_d26_d27 $d26_d27_d28 $d27_d28_d29 $d28_d29_d30 $d29_d30_d31 $d30_d31_d0 $d31_d0_d1 $p0_p1 $p1_p2 $p2_p3 $p3_p4 $p4_p5 $p5_p6 $p6_p7 $p7_p8 $p8_p9 $p9_p10 $p10_p11 $p11_p12 $p12_p13 $p13_p14 $p14_p15 $p15_p0 $q0_q1 $q1_q2 $q2_q3 $q3_q4 $q4_q5 $q5_q6 $q6_q7 $q7_q8 $q8_q9 $q9_q10 $q10_q11 $q11_q12 $q12_q13 $q13_q14 $q14_q15 $q15_q16 $q16_q17 $q17_q18 $q18_q19 $q19_q20 $q20_q21 $q21_q22 $q22_q23 $q23_q24 $q24_q25 $q25_q26 $q26_q27 $q27_q28 $q28_q29 $q29_q30 $q30_q31 $q31_q0 $q0_q1_q2_q3 $q1_q2_q3_q4 $q2_q3_q4_q5 $q3_q4_q5_q6 $q4_q5_q6_q7 $q5_q6_q7_q8 $q6_q7_q8_q9 $q7_q8_q9_q10 $q8_q9_q10_q11 $q9_q10_q11_q12 $q10_q11_q12_q13 $q11_q12_q13_q14 $q12_q13_q14_q15 $q13_q14_q15_q16 $q14_q15_q16_q17 $q15_q16_q17_q18 $q16_q17_q18_q19 $q17_q18_q19_q20 $q18_q19_q20_q21 $q19_q20_q21_q22 $q20_q21_q22_q23 $q21_q22_q23_q24 $q22_q23_q24_q25 $q23_q24_q25_q26 $q24_q25_q26_q27 $q25_q26_q27_q28 $q26_q27_q28_q29 $q27_q28_q29_q30 $q28_q29_q30_q31 $q29_q30_q31_q0 $q30_q31_q0_q1 $q31_q0_q1_q2 $q0_q1_q2 $q1_q2_q3 $q2_q3_q4 $q3_q4_q5 $q4_q5_q6 $q5_q6_q7 $q6_q7_q8 $q7_q8_q9 $q8_q9_q10 $q9_q10_q11 $q10_q11_q12 $q11_q12_q13 $q12_q13_q14 $q13_q14_q15 $q14_q15_q16 $q15_q16_q17 $q16_q17_q18 $q17_q18_q19 $q18_q19_q20 $q19_q20_q21 $q20_q21_q22 $q21_q22_q23 $q22_q23_q24 $q23_q24_q25 $q24_q25_q26 $q25_q26_q27 $q26_q27_q28 $q27_q28_q29 $q28_q29_q30 $q29_q30_q31 $q30_q31_q0 $q31_q0_q1 $x0_x1_x2_x3_x4_x5_x6_x7 $x2_x3_x4_x5_x6_x7_x8_x9 $x4_x5_x6_x7_x8_x9_x10_x11 $x6_x7_x8_x9_x10_x11_x12_x13 $x8_x9_x10_x11_x12_x13_x14_x15 $x10_x11_x12_x13_x14_x15_x16_x17 $x12_x13_x14_x15_x16_x17_x18_x19 $x14_x15_x16_x17_x18_x19_x20_x21 $x16_x17_x18_x19_x20_x21_x22_x23 $x18_x19_x20_x21_x22_x23_x24_x25 $w30_wzr $w0_w1 $w2_w3 $w4_w5 $w6_w7 $w8_w9 $w10_w11 $w12_w13 $w14_w15 $w16_w17 $w18_w19 $lr_xzr $x0_x1 $x2_x3 $x4_x5 $x6_x7 $x8_x9 $x10_x11 $x12_x13 $x14_x15 $x16_x17 $x18_x19 $z0_z1 $z1_z2 $z2_z3 $z3_z4 $z4_z5 $z5_z6 $z6_z7 $z7_z8 $z8_z9 $z9_z10 $z10_z11 $z11_z12 $z12_z13 $z13_z14 $z14_z15 $z15_z16 $z16_z17 $z17_z18 $z18_z19 $z19_z20 $z20_z21 $z21_z22 $z22_z23 $z23_z24 $z24_z25 $z25_z26 $z26_z27 $z27_z28 $z28_z29 $z29_z30 $z30_z31 $z31_z0 $z0_z1_z2_z3 $z1_z2_z3_z4 $z2_z3_z4_z5 $z3_z4_z5_z6 $z4_z5_z6_z7 $z5_z6_z7_z8 $z6_z7_z8_z9 $z7_z8_z9_z10 $z8_z9_z10_z11 $z9_z10_z11_z12 $z10_z11_z12_z13 $z11_z12_z13_z14 $z12_z13_z14_z15 $z13_z14_z15_z16 $z14_z15_z16_z17 $z15_z16_z17_z18 $z16_z17_z18_z19 $z17_z18_z19_z20 $z18_z19_z20_z21 $z19_z20_z21_z22 $z20_z21_z22_z23 $z21_z22_z23_z24 $z22_z23_z24_z25 $z23_z24_z25_z26 $z24_z25_z26_z27 $z25_z26_z27_z28 $z26_z27_z28_z29 $z27_z28_z29_z30 $z28_z29_z30_z31 $z29_z30_z31_z0 $z30_z31_z0_z1 $z31_z0_z1_z2 $z0_z1_z2 $z1_z2_z3 $z2_z3_z4 $z3_z4_z5 $z4_z5_z6 $z5_z6_z7 $z6_z7_z8 $z7_z8_z9 $z8_z9_z10 $z9_z10_z11 $z10_z11_z12 $z11_z12_z13 $z12_z13_z14 $z13_z14_z15 $z14_z15_z16 $z15_z16_z17 $z16_z17_z18 $z17_z18_z19 $z18_z19_z20 $z19_z20_z21 $z20_z21_z22 $z21_z22_z23 $z22_z23_z24 $z23_z24_z25 $z24_z25_z26 $z25_z26_z27 $z26_z27_z28 $z27_z28_z29 $z28_z29_z30 $z29_z30_z31 $z30_z31_z0 $z31_z0_z1 $z16_z24 $z17_z25 $z18_z26 $z19_z27 $z20_z28 $z21_z29 $z22_z30 $z23_z31 $z0_z8 $z1_z9 $z2_z10 $z3_z11 $z4_z12 $z5_z13 $z6_z14 $z7_z15 $z16_z20_z24_z28 $z17_z21_z25_z29 $z18_z22_z26_z30 $z19_z23_z27_z31 $z0_z4_z8_z12 $z1_z5_z9_z13 $z2_z6_z10_z14 $z3_z7_z11_z15 call void @bar1() call void @bar2() ret void } define preserve_nonecc void @qux() #0 { -; CHECK: qux Clobbered Registers: $ffr $fpcr $fpmr $fpsr $nzcv $sp $vg $wsp $wsp_hi $za $b0 $b1 $b2 $b3 $b4 $b5 $b6 $b7 $b16 $b17 $b18 $b19 $b20 $b21 $b22 $b23 $b24 $b25 $b26 $b27 $b28 $b29 $b30 $b31 $d0 $d1 $d2 $d3 $d4 $d5 $d6 $d7 $d16 $d17 $d18 $d19 $d20 $d21 $d22 $d23 $d24 $d25 $d26 $d27 $d28 $d29 $d30 $d31 $h0 $h1 $h2 $h3 $h4 $h5 $h6 $h7 $h16 $h17 $h18 $h19 $h20 $h21 $h22 $h23 $h24 $h25 $h26 $h27 $h28 $h29 $h30 $h31 $p0 $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9 $p10 $p11 $p12 $p13 $p14 $p15 $pn0 $pn1 $pn2 $pn3 $pn4 $pn5 $pn6 $pn7 $pn8 $pn9 $pn10 $pn11 $pn12 $pn13 $pn14 $pn15 $q0 $q1 $q2 $q3 $q4 $q5 $q6 $q7 $q8 $q9 $q10 $q11 $q12 $q13 $q14 $q15 $q16 $q17 $q18 $q19 $q20 $q21 $q22 $q23 $q24 $q25 $q26 $q27 $q28 $q29 $q30 $q31 $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 $s16 $s17 $s18 $s19 $s20 $s21 $s22 $s23 $s24 $s25 $s26 $s27 $s28 $s29 $s30 $s31 $w0 $w1 $w2 $w3 $w4 $w5 $w6 $w7 $w8 $w9 $w10 $w11 $w12 $w13 $w14 $w15 $w16 $w17 $w18 $x0 $x1 $x2 $x3 $x4 $x5 $x6 $x7 $x8 $x9 $x10 $x11 $x12 $x13 $x14 $x15 $x16 $x17 $x18 $z0 $z1 $z2 $z3 $z4 $z5 $z6 $z7 $z8 $z9 $z10 $z11 $z12 $z13 $z14 $z15 $z16 $z17 $z18 $z19 $z20 $z21 $z22 $z23 $z24 $z25 $z26 $z27 $z28 $z29 $z30 $z31 $zab0 $zad0 $zad1 $zad2 $zad3 $zad4 $zad5 $zad6 $zad7 $zah0 $zah1 $zaq0 $zaq1 $zaq2 $zaq3 $zaq4 $zaq5 $zaq6 $zaq7 $zaq8 $zaq9 $zaq10 $zaq11 $zaq12 $zaq13 $zaq14 $zaq15 $zas0 $zas1 $zas2 $zas3 $zt0 $b0_hi $b1_hi $b2_hi $b3_hi $b4_hi $b5_hi $b6_hi $b7_hi $b16_hi $b17_hi $b18_hi $b19_hi $b20_hi $b21_hi $b22_hi $b23_hi $b24_hi $b25_hi $b26_hi $b27_hi $b28_hi $b29_hi $b30_hi $b31_hi $d0_hi $d1_hi $d2_hi $d3_hi $d4_hi $d5_hi $d6_hi $d7_hi $d8_hi $d9_hi $d10_hi $d11_hi $d12_hi $d13_hi $d14_hi $d15_hi $d16_hi $d17_hi $d18_hi $d19_hi $d20_hi $d21_hi $d22_hi $d23_hi $d24_hi $d25_hi $d26_hi $d27_hi $d28_hi $d29_hi $d30_hi $d31_hi $h0_hi $h1_hi $h2_hi $h3_hi $h4_hi $h5_hi $h6_hi $h7_hi $h16_hi $h17_hi $h18_hi $h19_hi $h20_hi $h21_hi $h22_hi $h23_hi $h24_hi $h25_hi $h26_hi $h27_hi $h28_hi $h29_hi $h30_hi $h31_hi $q0_hi $q1_hi $q2_hi $q3_hi $q4_hi $q5_hi $q6_hi $q7_hi $q8_hi $q9_hi $q10_hi $q11_hi $q12_hi $q13_hi $q14_hi $q15_hi $q16_hi $q17_hi $q18_hi $q19_hi $q20_hi $q21_hi $q22_hi $q23_hi $q24_hi $q25_hi $q26_hi $q27_hi $q28_hi $q29_hi $q30_hi $q31_hi $s0_hi $s1_hi $s2_hi $s3_hi $s4_hi $s5_hi $s6_hi $s7_hi $s16_hi $s17_hi $s18_hi $s19_hi $s20_hi $s21_hi $s22_hi $s23_hi $s24_hi $s25_hi $s26_hi $s27_hi $s28_hi $s29_hi $s30_hi $s31_hi $w0_hi $w1_hi $w2_hi $w3_hi $w4_hi $w5_hi $w6_hi $w7_hi $w8_hi $w9_hi $w10_hi $w11_hi $w12_hi $w13_hi $w14_hi $w15_hi $w16_hi $w17_hi $w18_hi $d0_d1 $d1_d2 $d2_d3 $d3_d4 $d4_d5 $d5_d6 $d6_d7 $d7_d8 $d15_d16 $d16_d17 $d17_d18 $d18_d19 $d19_d20 $d20_d21 $d21_d22 $d22_d23 $d23_d24 $d24_d25 $d25_d26 $d26_d27 $d27_d28 $d28_d29 $d29_d30 $d30_d31 $d31_d0 $d0_d1_d2_d3 $d1_d2_d3_d4 $d2_d3_d4_d5 $d3_d4_d5_d6 $d4_d5_d6_d7 $d5_d6_d7_d8 $d6_d7_d8_d9 $d7_d8_d9_d10 $d13_d14_d15_d16 $d14_d15_d16_d17 $d15_d16_d17_d18 $d16_d17_d18_d19 $d17_d18_d19_d20 $d18_d19_d20_d21 $d19_d20_d21_d22 $d20_d21_d22_d23 $d21_d22_d23_d24 $d22_d23_d24_d25 $d23_d24_d25_d26 $d24_d25_d26_d27 $d25_d26_d27_d28 $d26_d27_d28_d29 $d27_d28_d29_d30 $d28_d29_d30_d31 $d29_d30_d31_d0 $d30_d31_d0_d1 $d31_d0_d1_d2 $d0_d1_d2 $d1_d2_d3 $d2_d3_d4 $d3_d4_d5 $d4_d5_d6 $d5_d6_d7 $d6_d7_d8 $d7_d8_d9 $d14_d15_d16 $d15_d16_d17 $d16_d17_d18 $d17_d18_d19 $d18_d19_d20 $d19_d20_d21 $d20_d21_d22 $d21_d22_d23 $d22_d23_d24 $d23_d24_d25 $d24_d25_d26 $d25_d26_d27 $d26_d27_d28 $d27_d28_d29 $d28_d29_d30 $d29_d30_d31 $d30_d31_d0 $d31_d0_d1 $p0_p1 $p1_p2 $p2_p3 $p3_p4 $p4_p5 $p5_p6 $p6_p7 $p7_p8 $p8_p9 $p9_p10 $p10_p11 $p11_p12 $p12_p13 $p13_p14 $p14_p15 $p15_p0 $q0_q1 $q1_q2 $q2_q3 $q3_q4 $q4_q5 $q5_q6 $q6_q7 $q7_q8 $q8_q9 $q9_q10 $q10_q11 $q11_q12 $q12_q13 $q13_q14 $q14_q15 $q15_q16 $q16_q17 $q17_q18 $q18_q19 $q19_q20 $q20_q21 $q21_q22 $q22_q23 $q23_q24 $q24_q25 $q25_q26 $q26_q27 $q27_q28 $q28_q29 $q29_q30 $q30_q31 $q31_q0 $q0_q1_q2_q3 $q1_q2_q3_q4 $q2_q3_q4_q5 $q3_q4_q5_q6 $q4_q5_q6_q7 $q5_q6_q7_q8 $q6_q7_q8_q9 $q7_q8_q9_q10 $q8_q9_q10_q11 $q9_q10_q11_q12 $q10_q11_q12_q13 $q11_q12_q13_q14 $q12_q13_q14_q15 $q13_q14_q15_q16 $q14_q15_q16_q17 $q15_q16_q17_q18 $q16_q17_q18_q19 $q17_q18_q19_q20 $q18_q19_q20_q21 $q19_q20_q21_q22 $q20_q21_q22_q23 $q21_q22_q23_q24 $q22_q23_q24_q25 $q23_q24_q25_q26 $q24_q25_q26_q27 $q25_q26_q27_q28 $q26_q27_q28_q29 $q27_q28_q29_q30 $q28_q29_q30_q31 $q29_q30_q31_q0 $q30_q31_q0_q1 $q31_q0_q1_q2 $q0_q1_q2 $q1_q2_q3 $q2_q3_q4 $q3_q4_q5 $q4_q5_q6 $q5_q6_q7 $q6_q7_q8 $q7_q8_q9 $q8_q9_q10 $q9_q10_q11 $q10_q11_q12 $q11_q12_q13 $q12_q13_q14 $q13_q14_q15 $q14_q15_q16 $q15_q16_q17 $q16_q17_q18 $q17_q18_q19 $q18_q19_q20 $q19_q20_q21 $q20_q21_q22 $q21_q22_q23 $q22_q23_q24 $q23_q24_q25 $q24_q25_q26 $q25_q26_q27 $q26_q27_q28 $q27_q28_q29 $q28_q29_q30 $q29_q30_q31 $q30_q31_q0 $q31_q0_q1 $x0_x1_x2_x3_x4_x5_x6_x7 $x2_x3_x4_x5_x6_x7_x8_x9 $x4_x5_x6_x7_x8_x9_x10_x11 $x6_x7_x8_x9_x10_x11_x12_x13 $x8_x9_x10_x11_x12_x13_x14_x15 $x10_x11_x12_x13_x14_x15_x16_x17 $x12_x13_x14_x15_x16_x17_x18_x19 $x14_x15_x16_x17_x18_x19_x20_x21 $x16_x17_x18_x19_x20_x21_x22_x23 $x18_x19_x20_x21_x22_x23_x24_x25 $w30_wzr $w0_w1 $w2_w3 $w4_w5 $w6_w7 $w8_w9 $w10_w11 $w12_w13 $w14_w15 $w16_w17 $w18_w19 $lr_xzr $x0_x1 $x2_x3 $x4_x5 $x6_x7 $x8_x9 $x10_x11 $x12_x13 $x14_x15 $x16_x17 $x18_x19 $z0_z1 $z1_z2 $z2_z3 $z3_z4 $z4_z5 $z5_z6 $z6_z7 $z7_z8 $z8_z9 $z9_z10 $z10_z11 $z11_z12 $z12_z13 $z13_z14 $z14_z15 $z15_z16 $z16_z17 $z17_z18 $z18_z19 $z19_z20 $z20_z21 $z21_z22 $z22_z23 $z23_z24 $z24_z25 $z25_z26 $z26_z27 $z27_z28 $z28_z29 $z29_z30 $z30_z31 $z31_z0 $z0_z1_z2_z3 $z1_z2_z3_z4 $z2_z3_z4_z5 $z3_z4_z5_z6 $z4_z5_z6_z7 $z5_z6_z7_z8 $z6_z7_z8_z9 $z7_z8_z9_z10 $z8_z9_z10_z11 $z9_z10_z11_z12 $z10_z11_z12_z13 $z11_z12_z13_z14 $z12_z13_z14_z15 $z13_z14_z15_z16 $z14_z15_z16_z17 $z15_z16_z17_z18 $z16_z17_z18_z19 $z17_z18_z19_z20 $z18_z19_z20_z21 $z19_z20_z21_z22 $z20_z21_z22_z23 $z21_z22_z23_z24 $z22_z23_z24_z25 $z23_z24_z25_z26 $z24_z25_z26_z27 $z25_z26_z27_z28 $z26_z27_z28_z29 $z27_z28_z29_z30 $z28_z29_z30_z31 $z29_z30_z31_z0 $z30_z31_z0_z1 $z31_z0_z1_z2 $z0_z1_z2 $z1_z2_z3 $z2_z3_z4 $z3_z4_z5 $z4_z5_z6 $z5_z6_z7 $z6_z7_z8 $z7_z8_z9 $z8_z9_z10 $z9_z10_z11 $z10_z11_z12 $z11_z12_z13 $z12_z13_z14 $z13_z14_z15 $z14_z15_z16 $z15_z16_z17 $z16_z17_z18 $z17_z18_z19 $z18_z19_z20 $z19_z20_z21 $z20_z21_z22 $z21_z22_z23 $z22_z23_z24 $z23_z24_z25 $z24_z25_z26 $z25_z26_z27 $z26_z27_z28 $z27_z28_z29 $z28_z29_z30 $z29_z30_z31 $z30_z31_z0 $z31_z0_z1 $z16_z24 $z17_z25 $z18_z26 $z19_z27 $z20_z28 $z21_z29 $z22_z30 $z23_z31 $z0_z8 $z1_z9 $z2_z10 $z3_z11 $z4_z12 $z5_z13 $z6_z14 $z7_z15 $z16_z20_z24_z28 $z17_z21_z25_z29 $z18_z22_z26_z30 $z19_z23_z27_z31 $z0_z4_z8_z12 $z1_z5_z9_z13 $z2_z6_z10_z14 $z3_z7_z11_z15 +; CHECK: qux Clobbered Registers: $ffr $fpcr $fpmr $fpsr $nzcv $sp $vg $wsp $za $b0 $b1 $b2 $b3 $b4 $b5 $b6 $b7 $b16 $b17 $b18 $b19 $b20 $b21 $b22 $b23 $b24 $b25 $b26 $b27 $b28 $b29 $b30 $b31 $d0 $d1 $d2 $d3 $d4 $d5 $d6 $d7 $d16 $d17 $d18 $d19 $d20 $d21 $d22 $d23 $d24 $d25 $d26 $d27 $d28 $d29 $d30 $d31 $h0 $h1 $h2 $h3 $h4 $h5 $h6 $h7 $h16 $h17 $h18 $h19 $h20 $h21 $h22 $h23 $h24 $h25 $h26 $h27 $h28 $h29 $h30 $h31 $p0 $p1 $p2 $p3 $p4 $p5 $p6 $p7 $p8 $p9 $p10 $p11 $p12 $p13 $p14 $p15 $pn0 $pn1 $pn2 $pn3 $pn4 $pn5 $pn6 $pn7 $pn8 $pn9 $pn10 $pn11 $pn12 $pn13 $pn14 $pn15 $q0 $q1 $q2 $q3 $q4 $q5 $q6 $q7 $q8 $q9 $q10 $q11 $q12 $q13 $q14 $q15 $q16 $q17 $q18 $q19 $q20 $q21 $q22 $q23 $q24 $q25 $q26 $q27 $q28 $q29 $q30 $q31 $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 $s16 $s17 $s18 $s19 $s20 $s21 $s22 $s23 $s24 $s25 $s26 $s27 $s28 $s29 $s30 $s31 $w0 $w1 $w2 $w3 $w4 $w5 $w6 $w7 $w8 $w9 $w10 $w11 $w12 $w13 $w14 $w15 $w16 $w17 $w18 $x0 $x1 $x2 $x3 $x4 $x5 $x6 $x7 $x8 $x9 $x10 $x11 $x12 $x13 $x14 $x15 $x16 $x17 $x18 $z0 $z1 $z2 $z3 $z4 $z5 $z6 $z7 $z8 $z9 $z10 $z11 $z12 $z13 $z14 $z15 $z16 $z17 $z18 $z19 $z20 $z21 $z22 $z23 $z24 $z25 $z26 $z27 $z28 $z29 $z30 $z31 $zab0 $zad0 $zad1 $zad2 $zad3 $zad4 $zad5 $zad6 $zad7 $zah0 $zah1 $zaq0 $zaq1 $zaq2 $zaq3 $zaq4 $zaq5 $zaq6 $zaq7 $zaq8 $zaq9 $zaq10 $zaq11 $zaq12 $zaq13 $zaq14 $zaq15 $zas0 $zas1 $zas2 $zas3 $zt0 $d0_d1 $d1_d2 $d2_d3 $d3_d4 $d4_d5 $d5_d6 $d6_d7 $d7_d8 $d15_d16 $d16_d17 $d17_d18 $d18_d19 $d19_d20 $d20_d21 $d21_d22 $d22_d23 $d23_d24 $d24_d25 $d25_d26 $d26_d27 $d27_d28 $d28_d29 $d29_d30 $d30_d31 $d31_d0 $d0_d1_d2_d3 $d1_d2_d3_d4 $d2_d3_d4_d5 $d3_d4_d5_d6 $d4_d5_d6_d7 $d5_d6_d7_d8 $d6_d7_d8_d9 $d7_d8_d9_d10 $d13_d14_d15_d16 $d14_d15_d16_d17 $d15_d16_d17_d18 $d16_d17_d18_d19 $d17_d18_d19_d20 $d18_d19_d20_d21 $d19_d20_d21_d22 $d20_d21_d22_d23 $d21_d22_d23_d24 $d22_d23_d24_d25 $d23_d24_d25_d26 $d24_d25_d26_d27 $d25_d26_d27_d28 $d26_d27_d28_d29 $d27_d28_d29_d30 $d28_d29_d30_d31 $d29_d30_d31_d0 $d30_d31_d0_d1 $d31_d0_d1_d2 $d0_d1_d2 $d1_d2_d3 $d2_d3_d4 $d3_d4_d5 $d4_d5_d6 $d5_d6_d7 $d6_d7_d8 $d7_d8_d9 $d14_d15_d16 $d15_d16_d17 $d16_d17_d18 $d17_d18_d19 $d18_d19_d20 $d19_d20_d21 $d20_d21_d22 $d21_d22_d23 $d22_d23_d24 $d23_d24_d25 $d24_d25_d26 $d25_d26_d27 $d26_d27_d28 $d27_d28_d29 $d28_d29_d30 $d29_d30_d31 $d30_d31_d0 $d31_d0_d1 $p0_p1 $p1_p2 $p2_p3 $p3_p4 $p4_p5 $p5_p6 $p6_p7 $p7_p8 $p8_p9 $p9_p10 $p10_p11 $p11_p12 $p12_p13 $p13_p14 $p14_p15 $p15_p0 $q0_q1 $q1_q2 $q2_q3 $q3_q4 $q4_q5 $q5_q6 $q6_q7 $q7_q8 $q8_q9 $q9_q10 $q10_q11 $q11_q12 $q12_q13 $q13_q14 $q14_q15 $q15_q16 $q16_q17 $q17_q18 $q18_q19 $q19_q20 $q20_q21 $q21_q22 $q22_q23 $q23_q24 $q24_q25 $q25_q26 $q26_q27 $q27_q28 $q28_q29 $q29_q30 $q30_q31 $q31_q0 $q0_q1_q2_q3 $q1_q2_q3_q4 $q2_q3_q4_q5 $q3_q4_q5_q6 $q4_q5_q6_q7 $q5_q6_q7_q8 $q6_q7_q8_q9 $q7_q8_q9_q10 $q8_q9_q10_q11 $q9_q10_q11_q12 $q10_q11_q12_q13 $q11_q12_q13_q14 $q12_q13_q14_q15 $q13_q14_q15_q16 $q14_q15_q16_q17 $q15_q16_q17_q18 $q16_q17_q18_q19 $q17_q18_q19_q20 $q18_q19_q20_q21 $q19_q20_q21_q22 $q20_q21_q22_q23 $q21_q22_q23_q24 $q22_q23_q24_q25 $q23_q24_q25_q26 $q24_q25_q26_q27 $q25_q26_q27_q28 $q26_q27_q28_q29 $q27_q28_q29_q30 $q28_q29_q30_q31 $q29_q30_q31_q0 $q30_q31_q0_q1 $q31_q0_q1_q2 $q0_q1_q2 $q1_q2_q3 $q2_q3_q4 $q3_q4_q5 $q4_q5_q6 $q5_q6_q7 $q6_q7_q8 $q7_q8_q9 $q8_q9_q10 $q9_q10_q11 $q10_q11_q12 $q11_q12_q13 $q12_q13_q14 $q13_q14_q15 $q14_q15_q16 $q15_q16_q17 $q16_q17_q18 $q17_q18_q19 $q18_q19_q20 $q19_q20_q21 $q20_q21_q22 $q21_q22_q23 $q22_q23_q24 $q23_q24_q25 $q24_q25_q26 $q25_q26_q27 $q26_q27_q28 $q27_q28_q29 $q28_q29_q30 $q29_q30_q31 $q30_q31_q0 $q31_q0_q1 $x0_x1_x2_x3_x4_x5_x6_x7 $x2_x3_x4_x5_x6_x7_x8_x9 $x4_x5_x6_x7_x8_x9_x10_x11 $x6_x7_x8_x9_x10_x11_x12_x13 $x8_x9_x10_x11_x12_x13_x14_x15 $x10_x11_x12_x13_x14_x15_x16_x17 $x12_x13_x14_x15_x16_x17_x18_x19 $x14_x15_x16_x17_x18_x19_x20_x21 $x16_x17_x18_x19_x20_x21_x22_x23 $x18_x19_x20_x21_x22_x23_x24_x25 $w30_wzr $w0_w1 $w2_w3 $w4_w5 $w6_w7 $w8_w9 $w10_w11 $w12_w13 $w14_w15 $w16_w17 $w18_w19 $lr_xzr $x0_x1 $x2_x3 $x4_x5 $x6_x7 $x8_x9 $x10_x11 $x12_x13 $x14_x15 $x16_x17 $x18_x19 $z0_z1 $z1_z2 $z2_z3 $z3_z4 $z4_z5 $z5_z6 $z6_z7 $z7_z8 $z8_z9 $z9_z10 $z10_z11 $z11_z12 $z12_z13 $z13_z14 $z14_z15 $z15_z16 $z16_z17 $z17_z18 $z18_z19 $z19_z20 $z20_z21 $z21_z22 $z22_z23 $z23_z24 $z24_z25 $z25_z26 $z26_z27 $z27_z28 $z28_z29 $z29_z30 $z30_z31 $z31_z0 $z0_z1_z2_z3 $z1_z2_z3_z4 $z2_z3_z4_z5 $z3_z4_z5_z6 $z4_z5_z6_z7 $z5_z6_z7_z8 $z6_z7_z8_z9 $z7_z8_z9_z10 $z8_z9_z10_z11 $z9_z10_z11_z12 $z10_z11_z12_z13 $z11_z12_z13_z14 $z12_z13_z14_z15 $z13_z14_z15_z16 $z14_z15_z16_z17 $z15_z16_z17_z18 $z16_z17_z18_z19 $z17_z18_z19_z20 $z18_z19_z20_z21 $z19_z20_z21_z22 $z20_z21_z22_z23 $z21_z22_z23_z24 $z22_z23_z24_z25 $z23_z24_z25_z26 $z24_z25_z26_z27 $z25_z26_z27_z28 $z26_z27_z28_z29 $z27_z28_z29_z30 $z28_z29_z30_z31 $z29_z30_z31_z0 $z30_z31_z0_z1 $z31_z0_z1_z2 $z0_z1_z2 $z1_z2_z3 $z2_z3_z4 $z3_z4_z5 $z4_z5_z6 $z5_z6_z7 $z6_z7_z8 $z7_z8_z9 $z8_z9_z10 $z9_z10_z11 $z10_z11_z12 $z11_z12_z13 $z12_z13_z14 $z13_z14_z15 $z14_z15_z16 $z15_z16_z17 $z16_z17_z18 $z17_z18_z19 $z18_z19_z20 $z19_z20_z21 $z20_z21_z22 $z21_z22_z23 $z22_z23_z24 $z23_z24_z25 $z24_z25_z26 $z25_z26_z27 $z26_z27_z28 $z27_z28_z29 $z28_z29_z30 $z29_z30_z31 $z30_z31_z0 $z31_z0_z1 $z16_z24 $z17_z25 $z18_z26 $z19_z27 $z20_z28 $z21_z29 $z22_z30 $z23_z31 $z0_z8 $z1_z9 $z2_z10 $z3_z11 $z4_z12 $z5_z13 $z6_z14 $z7_z15 $z16_z20_z24_z28 $z17_z21_z25_z29 $z18_z22_z26_z30 $z19_z23_z27_z31 $z0_z4_z8_z12 $z1_z5_z9_z13 $z2_z6_z10_z14 $z3_z7_z11_z15 + call void @bar1() call void @bar2() ret void diff --git a/llvm/test/CodeGen/AArch64/register-coalesce-update-subranges-remat.mir b/llvm/test/CodeGen/AArch64/register-coalesce-update-subranges-remat.mir deleted file mode 100644 index b61fa4be04007..0000000000000 --- a/llvm/test/CodeGen/AArch64/register-coalesce-update-subranges-remat.mir +++ /dev/null @@ -1,38 +0,0 @@ -# RUN: llc -mtriple=aarch64 -verify-machineinstrs -o - -run-pass=register-coalescer -aarch64-enable-subreg-liveness-tracking %s | FileCheck %s --check-prefix=CHECK -# RUN: llc -mtriple=aarch64 -verify-machineinstrs -o /dev/null -run-pass=register-coalescer -aarch64-enable-subreg-liveness-tracking -debug-only=regalloc %s 2>&1 | FileCheck %s --check-prefix=CHECK-DBG -# REQUIRES: asserts - -# CHECK-DBG: ********** REGISTER COALESCER ********** -# CHECK-DBG: ********** Function: test -# CHECK-DBG: ********** JOINING INTERVALS *********** -# CHECK-DBG: ********** INTERVALS ********** -# CHECK-DBG: %0 [16r,32r:0) 0@16r weight:0.000000e+00 -# CHECK-DBG: %3 [48r,112r:0) 0@48r L0000000000000040 [48r,112r:0) 0@48r weight:0.000000e+00 -# CHECK-DBG: %4 [80r,112e:1)[112e,112d:0) 0@112e 1@80r L0000000000000080 [112e,112d:0) 0@112e L0000000000000040 [80r,112e:1)[112e,112d:0) 0@112e 1@80r weight:0.000000e+00 -# CHECK-DBG: %5 [32r,112r:1)[112r,112d:0) 0@112r 1@32r weight:0.000000e+00 ---- -name: test -tracksRegLiveness: true -fixedStack: [] -stack: - - { id: 0, name: '', type: default, offset: 0, size: 65, alignment: 16, - stack-id: default } -body: | - bb.0.entry: - ; CHECK-LABEL: name: test - ; CHECK: [[ADDXri:%[0-9]+]]:gpr64sp = ADDXri %stack.0, 0, 0 - ; CHECK-NEXT: [[ADDXri1:%[0-9]+]]:gpr64common = nuw ADDXri [[ADDXri]], 64, 0 - ; CHECK-NEXT: undef [[MOVi32imm:%[0-9]+]].sub_32:gpr64 = MOVi32imm 64 - ; CHECK-NEXT: undef [[MOVi32imm1:%[0-9]+]].sub_32:gpr64 = MOVi32imm 64 - ; CHECK-NEXT: dead [[ADDXri1]]:gpr64common, dead early-clobber [[MOVi32imm1]]:gpr64 = MOPSMemorySetPseudo [[ADDXri1]], [[MOVi32imm1]], [[MOVi32imm]], implicit-def dead $nzcv - ; CHECK-NEXT: RET_ReallyLR - %1:gpr64sp = ADDXri %stack.0, 0, 0 - %2:gpr64common = nuw ADDXri killed %1, 64, 0 - %3:gpr32 = MOVi32imm 64 - %4:gpr64 = SUBREG_TO_REG 0, killed %3, %subreg.sub_32 - %6:gpr64 = COPY %4 - %5:gpr64common = COPY killed %2 - dead %5:gpr64common, dead early-clobber %6:gpr64 = MOPSMemorySetPseudo %5, %6, %4, implicit-def dead $nzcv - RET_ReallyLR - -... diff --git a/llvm/test/CodeGen/AArch64/replace-with-veclib-armpl.ll b/llvm/test/CodeGen/AArch64/replace-with-veclib-armpl.ll index 26fb4ca602da1..71c6380177b3a 100644 --- a/llvm/test/CodeGen/AArch64/replace-with-veclib-armpl.ll +++ b/llvm/test/CodeGen/AArch64/replace-with-veclib-armpl.ll @@ -14,9 +14,9 @@ declare <4 x float> @llvm.cos.v4f32(<4 x float>) declare @llvm.cos.nxv2f64() declare @llvm.cos.nxv4f32() + ;. ; CHECK: @llvm.compiler.used = appending global [68 x ptr] [ptr @armpl_vcosq_f64, ptr @armpl_vcosq_f32, ptr @armpl_svcos_f64_x, ptr @armpl_svcos_f32_x, ptr @armpl_vexpq_f64, ptr @armpl_vexpq_f32, ptr @armpl_svexp_f64_x, ptr @armpl_svexp_f32_x, ptr @armpl_vexp10q_f64, ptr @armpl_vexp10q_f32, ptr @armpl_svexp10_f64_x, ptr @armpl_svexp10_f32_x, ptr @armpl_vexp2q_f64, ptr @armpl_vexp2q_f32, ptr @armpl_svexp2_f64_x, ptr @armpl_svexp2_f32_x, ptr @armpl_vlogq_f64, ptr @armpl_vlogq_f32, ptr @armpl_svlog_f64_x, ptr @armpl_svlog_f32_x, ptr @armpl_vlog10q_f64, ptr @armpl_vlog10q_f32, ptr @armpl_svlog10_f64_x, ptr @armpl_svlog10_f32_x, ptr @armpl_vlog2q_f64, ptr @armpl_vlog2q_f32, ptr @armpl_svlog2_f64_x, ptr @armpl_svlog2_f32_x, ptr @armpl_vpowq_f64, ptr @armpl_vpowq_f32, ptr @armpl_svpow_f64_x, ptr @armpl_svpow_f32_x, ptr @armpl_vsinq_f64, ptr @armpl_vsinq_f32, ptr @armpl_svsin_f64_x, ptr @armpl_svsin_f32_x, ptr @armpl_vtanq_f64, ptr @armpl_vtanq_f32, ptr @armpl_svtan_f64_x, ptr @armpl_svtan_f32_x, ptr @armpl_vacosq_f64, ptr @armpl_vacosq_f32, ptr @armpl_svacos_f64_x, ptr @armpl_svacos_f32_x, ptr @armpl_vasinq_f64, ptr @armpl_vasinq_f32, ptr @armpl_svasin_f64_x, ptr @armpl_svasin_f32_x, ptr @armpl_vatanq_f64, ptr @armpl_vatanq_f32, ptr @armpl_svatan_f64_x, ptr @armpl_svatan_f32_x, ptr @armpl_vatan2q_f64, ptr @armpl_vatan2q_f32, ptr @armpl_svatan2_f64_x, ptr @armpl_svatan2_f32_x, ptr @armpl_vcoshq_f64, ptr @armpl_vcoshq_f32, ptr @armpl_svcosh_f64_x, ptr @armpl_svcosh_f32_x, ptr @armpl_vsinhq_f64, ptr @armpl_vsinhq_f32, ptr @armpl_svsinh_f64_x, ptr @armpl_svsinh_f32_x, ptr @armpl_vtanhq_f64, ptr @armpl_vtanhq_f32, ptr @armpl_svtanh_f64_x, ptr @armpl_svtanh_f32_x], section "llvm.metadata" - ;. define <2 x double> @llvm_cos_f64(<2 x double> %in) { ; CHECK-LABEL: define <2 x double> @llvm_cos_f64 @@ -41,7 +41,7 @@ define <4 x float> @llvm_cos_f32(<4 x float> %in) { define @llvm_cos_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_cos_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1:[0-9]+]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svcos_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svcos_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.cos.nxv2f64( %in) @@ -51,7 +51,7 @@ define @llvm_cos_vscale_f64( %in) #0 define @llvm_cos_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_cos_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svcos_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svcos_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.cos.nxv4f32( %in) @@ -86,7 +86,7 @@ define <4 x float> @llvm_exp_f32(<4 x float> %in) { define @llvm_exp_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_exp_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp.nxv2f64( %in) @@ -96,7 +96,7 @@ define @llvm_exp_vscale_f64( %in) #0 define @llvm_exp_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_exp_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp.nxv4f32( %in) @@ -131,7 +131,7 @@ define <4 x float> @llvm_exp10_f32(<4 x float> %in) { define @llvm_exp10_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_exp10_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp10_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp10_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp10.nxv2f64( %in) @@ -141,7 +141,7 @@ define @llvm_exp10_vscale_f64( %in) # define @llvm_exp10_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_exp10_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp10_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp10_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp10.nxv4f32( %in) @@ -176,7 +176,7 @@ define <4 x float> @llvm_exp2_f32(<4 x float> %in) { define @llvm_exp2_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_exp2_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp2_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp2_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp2.nxv2f64( %in) @@ -186,7 +186,7 @@ define @llvm_exp2_vscale_f64( %in) #0 define @llvm_exp2_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_exp2_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp2_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svexp2_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp2.nxv4f32( %in) @@ -221,7 +221,7 @@ define <4 x float> @llvm_log_f32(<4 x float> %in) { define @llvm_log_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_log_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log.nxv2f64( %in) @@ -231,7 +231,7 @@ define @llvm_log_vscale_f64( %in) #0 define @llvm_log_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_log_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log.nxv4f32( %in) @@ -266,7 +266,7 @@ define <4 x float> @llvm_log10_f32(<4 x float> %in) { define @llvm_log10_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_log10_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog10_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog10_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log10.nxv2f64( %in) @@ -276,7 +276,7 @@ define @llvm_log10_vscale_f64( %in) # define @llvm_log10_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_log10_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog10_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog10_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log10.nxv4f32( %in) @@ -311,7 +311,7 @@ define <4 x float> @llvm_log2_f32(<4 x float> %in) { define @llvm_log2_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_log2_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog2_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog2_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log2.nxv2f64( %in) @@ -321,7 +321,7 @@ define @llvm_log2_vscale_f64( %in) #0 define @llvm_log2_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_log2_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog2_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svlog2_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log2.nxv4f32( %in) @@ -356,7 +356,7 @@ define <4 x float> @llvm_pow_f32(<4 x float> %in, <4 x float> %power) { define @llvm_pow_vscale_f64( %in, %power) #0 { ; CHECK-LABEL: define @llvm_pow_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]], [[POWER:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svpow_f64_x( [[IN]], [[POWER]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svpow_f64_x( [[IN]], [[POWER]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.pow.nxv2f64( %in, %power) @@ -366,7 +366,7 @@ define @llvm_pow_vscale_f64( %in, @llvm_pow_vscale_f32( %in, %power) #0 { ; CHECK-LABEL: define @llvm_pow_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]], [[POWER:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svpow_f32_x( [[IN]], [[POWER]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svpow_f32_x( [[IN]], [[POWER]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.pow.nxv4f32( %in, %power) @@ -401,7 +401,7 @@ define <4 x float> @llvm_sin_f32(<4 x float> %in) { define @llvm_sin_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_sin_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svsin_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svsin_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.sin.nxv2f64( %in) @@ -411,7 +411,7 @@ define @llvm_sin_vscale_f64( %in) #0 define @llvm_sin_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_sin_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svsin_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svsin_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.sin.nxv4f32( %in) @@ -446,7 +446,7 @@ define <4 x float> @llvm_tan_f32(<4 x float> %in) { define @llvm_tan_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_tan_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svtan_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svtan_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.tan.nxv2f64( %in) @@ -456,7 +456,7 @@ define @llvm_tan_vscale_f64( %in) #0 define @llvm_tan_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_tan_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svtan_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svtan_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.tan.nxv4f32( %in) @@ -491,7 +491,7 @@ define <4 x float> @llvm_acos_f32(<4 x float> %in) { define @llvm_acos_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_acos_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svacos_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svacos_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.acos.nxv2f64( %in) @@ -501,7 +501,7 @@ define @llvm_acos_vscale_f64( %in) #0 define @llvm_acos_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_acos_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svacos_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svacos_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.acos.nxv4f32( %in) @@ -536,7 +536,7 @@ define <4 x float> @llvm_asin_f32(<4 x float> %in) { define @llvm_asin_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_asin_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svasin_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svasin_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.asin.nxv2f64( %in) @@ -546,7 +546,7 @@ define @llvm_asin_vscale_f64( %in) #0 define @llvm_asin_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_asin_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svasin_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svasin_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.asin.nxv4f32( %in) @@ -581,7 +581,7 @@ define <4 x float> @llvm_atan_f32(<4 x float> %in) { define @llvm_atan_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_atan_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svatan_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svatan_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.atan.nxv2f64( %in) @@ -591,7 +591,7 @@ define @llvm_atan_vscale_f64( %in) #0 define @llvm_atan_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_atan_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svatan_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svatan_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.atan.nxv4f32( %in) @@ -626,7 +626,7 @@ define <4 x float> @llvm_atan2_f32(<4 x float> %in1, <4 x float> %in2) { define @llvm_atan2_vscale_f64( %in1, %in2) #0 { ; CHECK-LABEL: define @llvm_atan2_vscale_f64 ; CHECK-SAME: ( [[IN1:%.*]], [[IN2:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svatan2_f64_x( [[IN1]], [[IN2]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svatan2_f64_x( [[IN1]], [[IN2]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.atan2.nxv2f64( %in1, %in2) @@ -636,7 +636,7 @@ define @llvm_atan2_vscale_f64( %in1, define @llvm_atan2_vscale_f32( %in1, %in2) #0 { ; CHECK-LABEL: define @llvm_atan2_vscale_f32 ; CHECK-SAME: ( [[IN1:%.*]], [[IN2:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svatan2_f32_x( [[IN1]], [[IN2]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svatan2_f32_x( [[IN1]], [[IN2]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.atan2.nxv4f32( %in1, %in2) @@ -671,7 +671,7 @@ define <4 x float> @llvm_cosh_f32(<4 x float> %in) { define @llvm_cosh_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_cosh_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svcosh_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svcosh_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.cosh.nxv2f64( %in) @@ -681,7 +681,7 @@ define @llvm_cosh_vscale_f64( %in) #0 define @llvm_cosh_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_cosh_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svcosh_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svcosh_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.cosh.nxv4f32( %in) @@ -716,7 +716,7 @@ define <4 x float> @llvm_sinh_f32(<4 x float> %in) { define @llvm_sinh_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_sinh_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svsinh_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svsinh_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.sinh.nxv2f64( %in) @@ -726,7 +726,7 @@ define @llvm_sinh_vscale_f64( %in) #0 define @llvm_sinh_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_sinh_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svsinh_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svsinh_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.sinh.nxv4f32( %in) @@ -761,7 +761,7 @@ define <4 x float> @llvm_tanh_f32(<4 x float> %in) { define @llvm_tanh_vscale_f64( %in) #0 { ; CHECK-LABEL: define @llvm_tanh_vscale_f64 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svtanh_f64_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svtanh_f64_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.tanh.nxv2f64( %in) @@ -771,7 +771,7 @@ define @llvm_tanh_vscale_f64( %in) #0 define @llvm_tanh_vscale_f32( %in) #0 { ; CHECK-LABEL: define @llvm_tanh_vscale_f32 ; CHECK-SAME: ( [[IN:%.*]]) #[[ATTR1]] { -; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svtanh_f32_x( [[IN]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @armpl_svtanh_f32_x( [[IN]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.tanh.nxv4f32( %in) diff --git a/llvm/test/CodeGen/AArch64/replace-with-veclib-sleef-scalable.ll b/llvm/test/CodeGen/AArch64/replace-with-veclib-sleef-scalable.ll index 07edb4649569c..1d429ece6f810 100644 --- a/llvm/test/CodeGen/AArch64/replace-with-veclib-sleef-scalable.ll +++ b/llvm/test/CodeGen/AArch64/replace-with-veclib-sleef-scalable.ll @@ -44,7 +44,7 @@ define @llvm_copysign_vscale_f32( %mag, define @llvm_cos_vscale_f64( %in) { ; CHECK-LABEL: @llvm_cos_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_cos( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_cos( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.cos.nxv2f64( %in) @@ -53,7 +53,7 @@ define @llvm_cos_vscale_f64( %in) { define @llvm_cos_vscale_f32( %in) { ; CHECK-LABEL: @llvm_cos_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_cosf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_cosf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.cos.nxv4f32( %in) @@ -62,7 +62,7 @@ define @llvm_cos_vscale_f32( %in) { define @llvm_exp_vscale_f64( %in) { ; CHECK-LABEL: @llvm_exp_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp.nxv2f64( %in) @@ -71,7 +71,7 @@ define @llvm_exp_vscale_f64( %in) { define @llvm_exp_vscale_f32( %in) { ; CHECK-LABEL: @llvm_exp_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_expf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_expf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp.nxv4f32( %in) @@ -80,7 +80,7 @@ define @llvm_exp_vscale_f32( %in) { define @llvm_exp10_vscale_f64( %in) { ; CHECK-LABEL: @llvm_exp10_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp10( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp10( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp10.nxv2f64( %in) @@ -89,7 +89,7 @@ define @llvm_exp10_vscale_f64( %in) { define @llvm_exp10_vscale_f32( %in) { ; CHECK-LABEL: @llvm_exp10_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp10f( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp10f( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp10.nxv4f32( %in) @@ -98,7 +98,7 @@ define @llvm_exp10_vscale_f32( %in) { define @llvm_exp2_vscale_f64( %in) { ; CHECK-LABEL: @llvm_exp2_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp2( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp2( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp2.nxv2f64( %in) @@ -107,7 +107,7 @@ define @llvm_exp2_vscale_f64( %in) { define @llvm_exp2_vscale_f32( %in) { ; CHECK-LABEL: @llvm_exp2_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp2f( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_exp2f( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.exp2.nxv4f32( %in) @@ -170,7 +170,7 @@ define @llvm_fma_vscale_f32( %a, @llvm_log_vscale_f64( %in) { ; CHECK-LABEL: @llvm_log_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log.nxv2f64( %in) @@ -179,7 +179,7 @@ define @llvm_log_vscale_f64( %in) { define @llvm_log_vscale_f32( %in) { ; CHECK-LABEL: @llvm_log_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_logf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_logf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log.nxv4f32( %in) @@ -188,7 +188,7 @@ define @llvm_log_vscale_f32( %in) { define @llvm_log10_vscale_f64( %in) { ; CHECK-LABEL: @llvm_log10_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log10( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log10( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log10.nxv2f64( %in) @@ -197,7 +197,7 @@ define @llvm_log10_vscale_f64( %in) { define @llvm_log10_vscale_f32( %in) { ; CHECK-LABEL: @llvm_log10_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log10f( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log10f( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log10.nxv4f32( %in) @@ -206,7 +206,7 @@ define @llvm_log10_vscale_f32( %in) { define @llvm_log2_vscale_f64( %in) { ; CHECK-LABEL: @llvm_log2_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log2( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log2( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log2.nxv2f64( %in) @@ -215,7 +215,7 @@ define @llvm_log2_vscale_f64( %in) { define @llvm_log2_vscale_f32( %in) { ; CHECK-LABEL: @llvm_log2_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log2f( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_log2f( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.log2.nxv4f32( %in) @@ -278,7 +278,7 @@ define @llvm_nearbyint_vscale_f32( %in) define @llvm_pow_vscale_f64( %in, %pow) { ; CHECK-LABEL: @llvm_pow_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxvv_pow( [[IN:%.*]], [[POW:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxvv_pow( [[IN:%.*]], [[POW:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.pow.nxv2f64( %in, %pow) @@ -287,7 +287,7 @@ define @llvm_pow_vscale_f64( %in, @llvm_pow_vscale_f32( %in, %pow) { ; CHECK-LABEL: @llvm_pow_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxvv_powf( [[IN:%.*]], [[POW:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxvv_powf( [[IN:%.*]], [[POW:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.pow.nxv4f32( %in, %pow) @@ -332,7 +332,7 @@ define @llvm_round_vscale_f32( %in) { define @llvm_sin_vscale_f64( %in) { ; CHECK-LABEL: @llvm_sin_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_sin( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_sin( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.sin.nxv2f64( %in) @@ -341,7 +341,7 @@ define @llvm_sin_vscale_f64( %in) { define @llvm_sin_vscale_f32( %in) { ; CHECK-LABEL: @llvm_sin_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_sinf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_sinf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.sin.nxv4f32( %in) @@ -368,7 +368,7 @@ define @llvm_sqrt_vscale_f32( %in) { define @llvm_tan_vscale_f64( %in) { ; CHECK-LABEL: @llvm_tan_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_tan( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_tan( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.tan.nxv2f64( %in) @@ -377,7 +377,7 @@ define @llvm_tan_vscale_f64( %in) { define @llvm_tan_vscale_f32( %in) { ; CHECK-LABEL: @llvm_tan_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_tanf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_tanf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.tan.nxv4f32( %in) @@ -386,7 +386,7 @@ define @llvm_tan_vscale_f32( %in) { define @llvm_acos_vscale_f64( %in) { ; CHECK-LABEL: @llvm_acos_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_acos( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_acos( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.acos.nxv2f64( %in) @@ -395,7 +395,7 @@ define @llvm_acos_vscale_f64( %in) { define @llvm_acos_vscale_f32( %in) { ; CHECK-LABEL: @llvm_acos_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_acosf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_acosf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.acos.nxv4f32( %in) @@ -404,7 +404,7 @@ define @llvm_acos_vscale_f32( %in) { define @llvm_asin_vscale_f64( %in) { ; CHECK-LABEL: @llvm_asin_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_asin( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_asin( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.asin.nxv2f64( %in) @@ -413,7 +413,7 @@ define @llvm_asin_vscale_f64( %in) { define @llvm_asin_vscale_f32( %in) { ; CHECK-LABEL: @llvm_asin_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_asinf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_asinf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.asin.nxv4f32( %in) @@ -422,7 +422,7 @@ define @llvm_asin_vscale_f32( %in) { define @llvm_atan_vscale_f64( %in) { ; CHECK-LABEL: @llvm_atan_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_atan( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_atan( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.atan.nxv2f64( %in) @@ -431,7 +431,7 @@ define @llvm_atan_vscale_f64( %in) { define @llvm_atan_vscale_f32( %in) { ; CHECK-LABEL: @llvm_atan_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_atanf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_atanf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.atan.nxv4f32( %in) @@ -440,7 +440,7 @@ define @llvm_atan_vscale_f32( %in) { define @llvm_atan2_vscale_f64( %x, %y) { ; CHECK-LABEL: @llvm_atan2_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxvv_atan2( [[INX:%.*]], [[INY:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxvv_atan2( [[X:%.*]], [[Y:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.atan2.nxv2f64( %x, %y) @@ -449,7 +449,7 @@ define @llvm_atan2_vscale_f64( %x, @llvm_atan2_vscale_f32( %x, %y) { ; CHECK-LABEL: @llvm_atan2_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxvv_atan2f( [[INX:%.*]], [[INY:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxvv_atan2f( [[X:%.*]], [[Y:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.atan2.nxv4f32( %x, %y) @@ -458,7 +458,7 @@ define @llvm_atan2_vscale_f32( %x, @llvm_cosh_vscale_f64( %in) { ; CHECK-LABEL: @llvm_cosh_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_cosh( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_cosh( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.cosh.nxv2f64( %in) @@ -467,7 +467,7 @@ define @llvm_cosh_vscale_f64( %in) { define @llvm_cosh_vscale_f32( %in) { ; CHECK-LABEL: @llvm_cosh_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_coshf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_coshf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.cosh.nxv4f32( %in) @@ -476,7 +476,7 @@ define @llvm_cosh_vscale_f32( %in) { define @llvm_sinh_vscale_f64( %in) { ; CHECK-LABEL: @llvm_sinh_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_sinh( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_sinh( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.sinh.nxv2f64( %in) @@ -485,7 +485,7 @@ define @llvm_sinh_vscale_f64( %in) { define @llvm_sinh_vscale_f32( %in) { ; CHECK-LABEL: @llvm_sinh_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_sinhf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_sinhf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.sinh.nxv4f32( %in) @@ -494,7 +494,7 @@ define @llvm_sinh_vscale_f32( %in) { define @llvm_tanh_vscale_f64( %in) { ; CHECK-LABEL: @llvm_tanh_vscale_f64( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_tanh( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_tanh( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.tanh.nxv2f64( %in) @@ -503,7 +503,7 @@ define @llvm_tanh_vscale_f64( %in) { define @llvm_tanh_vscale_f32( %in) { ; CHECK-LABEL: @llvm_tanh_vscale_f32( -; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_tanhf( [[IN:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call fast @_ZGVsMxv_tanhf( [[IN:%.*]], splat (i1 true)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call fast @llvm.tanh.nxv4f32( %in) diff --git a/llvm/test/CodeGen/AArch64/sadd_sat.ll b/llvm/test/CodeGen/AArch64/sadd_sat.ll index cb52c17e2531c..d07fcbc29806f 100644 --- a/llvm/test/CodeGen/AArch64/sadd_sat.ll +++ b/llvm/test/CodeGen/AArch64/sadd_sat.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-- -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i4 @llvm.sadd.sat.i4(i4, i4) declare i8 @llvm.sadd.sat.i8(i8, i8) diff --git a/llvm/test/CodeGen/AArch64/sadd_sat_plus.ll b/llvm/test/CodeGen/AArch64/sadd_sat_plus.ll index f6fb4dd5e4b41..4a0e49518517b 100644 --- a/llvm/test/CodeGen/AArch64/sadd_sat_plus.ll +++ b/llvm/test/CodeGen/AArch64/sadd_sat_plus.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-- -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i4 @llvm.sadd.sat.i4(i4, i4) declare i8 @llvm.sadd.sat.i8(i8, i8) diff --git a/llvm/test/CodeGen/AArch64/sadd_sat_vec.ll b/llvm/test/CodeGen/AArch64/sadd_sat_vec.ll index 29318bd28c45d..531562d3aa678 100644 --- a/llvm/test/CodeGen/AArch64/sadd_sat_vec.ll +++ b/llvm/test/CodeGen/AArch64/sadd_sat_vec.ll @@ -2,6 +2,9 @@ ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD ; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; CHECK-GI: warning: Instruction selection used fallback path for v16i4 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for v16i1 + declare <1 x i8> @llvm.sadd.sat.v1i8(<1 x i8>, <1 x i8>) declare <2 x i8> @llvm.sadd.sat.v2i8(<2 x i8>, <2 x i8>) declare <4 x i8> @llvm.sadd.sat.v4i8(<4 x i8>, <4 x i8>) @@ -494,21 +497,45 @@ define <8 x i64> @v8i64(<8 x i64> %x, <8 x i64> %y) nounwind { } define <2 x i128> @v2i128(<2 x i128> %x, <2 x i128> %y) nounwind { -; CHECK-LABEL: v2i128: -; CHECK: // %bb.0: -; CHECK-NEXT: adds x8, x0, x4 -; CHECK-NEXT: adcs x9, x1, x5 -; CHECK-NEXT: asr x10, x9, #63 -; CHECK-NEXT: eor x11, x10, #0x8000000000000000 -; CHECK-NEXT: csel x0, x10, x8, vs -; CHECK-NEXT: csel x1, x11, x9, vs -; CHECK-NEXT: adds x8, x2, x6 -; CHECK-NEXT: adcs x9, x3, x7 -; CHECK-NEXT: asr x10, x9, #63 -; CHECK-NEXT: eor x11, x10, #0x8000000000000000 -; CHECK-NEXT: csel x2, x10, x8, vs -; CHECK-NEXT: csel x3, x11, x9, vs -; CHECK-NEXT: ret +; CHECK-SD-LABEL: v2i128: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: adds x8, x0, x4 +; CHECK-SD-NEXT: adcs x9, x1, x5 +; CHECK-SD-NEXT: asr x10, x9, #63 +; CHECK-SD-NEXT: eor x11, x10, #0x8000000000000000 +; CHECK-SD-NEXT: csel x0, x10, x8, vs +; CHECK-SD-NEXT: csel x1, x11, x9, vs +; CHECK-SD-NEXT: adds x8, x2, x6 +; CHECK-SD-NEXT: adcs x9, x3, x7 +; CHECK-SD-NEXT: asr x10, x9, #63 +; CHECK-SD-NEXT: eor x11, x10, #0x8000000000000000 +; CHECK-SD-NEXT: csel x2, x10, x8, vs +; CHECK-SD-NEXT: csel x3, x11, x9, vs +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: v2i128: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adds x9, x0, x4 +; CHECK-GI-NEXT: mov w8, wzr +; CHECK-GI-NEXT: mov x13, #-9223372036854775808 // =0x8000000000000000 +; CHECK-GI-NEXT: adcs x10, x1, x5 +; CHECK-GI-NEXT: asr x11, x10, #63 +; CHECK-GI-NEXT: cset w12, vs +; CHECK-GI-NEXT: cmp w8, #1 +; CHECK-GI-NEXT: adc x14, x11, x13 +; CHECK-GI-NEXT: tst w12, #0x1 +; CHECK-GI-NEXT: csel x0, x11, x9, ne +; CHECK-GI-NEXT: csel x1, x14, x10, ne +; CHECK-GI-NEXT: adds x9, x2, x6 +; CHECK-GI-NEXT: adcs x10, x3, x7 +; CHECK-GI-NEXT: asr x11, x10, #63 +; CHECK-GI-NEXT: cset w12, vs +; CHECK-GI-NEXT: cmp w8, #1 +; CHECK-GI-NEXT: adc x8, x11, x13 +; CHECK-GI-NEXT: tst w12, #0x1 +; CHECK-GI-NEXT: csel x2, x11, x9, ne +; CHECK-GI-NEXT: csel x3, x8, x10, ne +; CHECK-GI-NEXT: ret %z = call <2 x i128> @llvm.sadd.sat.v2i128(<2 x i128> %x, <2 x i128> %y) ret <2 x i128> %z } diff --git a/llvm/test/CodeGen/AArch64/sext.ll b/llvm/test/CodeGen/AArch64/sext.ll index 3604db33d5c4b..53fbb351954fc 100644 --- a/llvm/test/CodeGen/AArch64/sext.ll +++ b/llvm/test/CodeGen/AArch64/sext.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 ; RUN: llc -mtriple=aarch64 -verify-machineinstrs %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc -mtriple=aarch64 -global-isel -global-isel-abort=2 -verify-machineinstrs %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc -mtriple=aarch64 -global-isel -verify-machineinstrs %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GI define i16 @sext_i8_to_i16(i8 %a) { ; CHECK-LABEL: sext_i8_to_i16: diff --git a/llvm/test/CodeGen/AArch64/shufflevector.ll b/llvm/test/CodeGen/AArch64/shufflevector.ll index 69d3174581e3e..0f5b240e387ed 100644 --- a/llvm/test/CodeGen/AArch64/shufflevector.ll +++ b/llvm/test/CodeGen/AArch64/shufflevector.ll @@ -1,11 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 ; RUN: llc -mtriple=aarch64-none-linux-gnu %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel -global-isel-abort=2 %s -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI - -; CHECK-GI: warning: Instruction selection used fallback path for shufflevector_v2p0 -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for shufflevector_v2p0_zeroes -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for shufflevector_v4p0 -; CHECK-GI-NEXT: warning: Instruction selection used fallback path for shufflevector_v4p0_zeroes +; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-GI ; ===== Legal Vector Types ===== @@ -392,13 +387,49 @@ define <4 x i64> @shufflevector_v4i64(<4 x i64> %a, <4 x i64> %b) { ret <4 x i64> %c } +define <3 x ptr> @shufflevector_v3p0(<3 x ptr> %a, <3 x ptr> %b) { +; CHECK-SD-LABEL: shufflevector_v3p0: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: fmov d2, d5 +; CHECK-SD-NEXT: fmov d0, d1 +; CHECK-SD-NEXT: fmov d1, d3 +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shufflevector_v3p0: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: fmov x8, d0 +; CHECK-GI-NEXT: fmov x9, d3 +; CHECK-GI-NEXT: mov v0.d[0], x8 +; CHECK-GI-NEXT: mov v2.d[0], x9 +; CHECK-GI-NEXT: fmov x8, d1 +; CHECK-GI-NEXT: fmov x9, d4 +; CHECK-GI-NEXT: mov v0.d[1], x8 +; CHECK-GI-NEXT: mov v2.d[1], x9 +; CHECK-GI-NEXT: fmov x8, d5 +; CHECK-GI-NEXT: mov v1.d[0], x8 +; CHECK-GI-NEXT: ext v0.16b, v0.16b, v2.16b, #8 +; CHECK-GI-NEXT: fmov x10, d1 +; CHECK-GI-NEXT: mov d2, v0.d[1] +; CHECK-GI-NEXT: fmov d1, d2 +; CHECK-GI-NEXT: fmov d2, x10 +; CHECK-GI-NEXT: ret + %c = shufflevector <3 x ptr> %a, <3 x ptr> %b, <3 x i32> + ret <3 x ptr> %c +} + define <4 x ptr> @shufflevector_v4p0(<4 x ptr> %a, <4 x ptr> %b) { -; CHECK-LABEL: shufflevector_v4p0: -; CHECK: // %bb.0: -; CHECK-NEXT: zip2 v2.2d, v2.2d, v3.2d -; CHECK-NEXT: zip2 v0.2d, v0.2d, v1.2d -; CHECK-NEXT: mov v1.16b, v2.16b -; CHECK-NEXT: ret +; CHECK-SD-LABEL: shufflevector_v4p0: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: zip2 v2.2d, v2.2d, v3.2d +; CHECK-SD-NEXT: zip2 v0.2d, v0.2d, v1.2d +; CHECK-SD-NEXT: mov v1.16b, v2.16b +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: shufflevector_v4p0: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: zip2 v0.2d, v0.2d, v1.2d +; CHECK-GI-NEXT: zip2 v1.2d, v2.2d, v3.2d +; CHECK-GI-NEXT: ret %c = shufflevector <4 x ptr> %a, <4 x ptr> %b, <4 x i32> ret <4 x ptr> %c } @@ -549,13 +580,13 @@ define <3 x i8> @shufflevector_v3i8(<3 x i8> %a, <3 x i8> %b) { ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: fmov s0, w0 ; CHECK-GI-NEXT: fmov s1, w3 -; CHECK-GI-NEXT: adrp x8, .LCPI34_0 +; CHECK-GI-NEXT: adrp x8, .LCPI35_0 ; CHECK-GI-NEXT: mov v0.b[1], w1 ; CHECK-GI-NEXT: mov v1.b[1], w4 ; CHECK-GI-NEXT: mov v0.b[2], w2 ; CHECK-GI-NEXT: mov v1.b[2], w5 ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr d1, [x8, :lo12:.LCPI34_0] +; CHECK-GI-NEXT: ldr d1, [x8, :lo12:.LCPI35_0] ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b }, v1.16b ; CHECK-GI-NEXT: umov w0, v0.b[0] ; CHECK-GI-NEXT: umov w1, v0.b[1] @@ -570,9 +601,9 @@ define <7 x i8> @shufflevector_v7i8(<7 x i8> %a, <7 x i8> %b) { ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 def $q1 -; CHECK-SD-NEXT: adrp x8, .LCPI35_0 +; CHECK-SD-NEXT: adrp x8, .LCPI36_0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: ldr d1, [x8, :lo12:.LCPI35_0] +; CHECK-SD-NEXT: ldr d1, [x8, :lo12:.LCPI36_0] ; CHECK-SD-NEXT: tbl v0.8b, { v0.16b }, v1.8b ; CHECK-SD-NEXT: ret ; @@ -580,9 +611,9 @@ define <7 x i8> @shufflevector_v7i8(<7 x i8> %a, <7 x i8> %b) { ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-GI-NEXT: // kill: def $d1 killed $d1 def $q1 -; CHECK-GI-NEXT: adrp x8, .LCPI35_0 +; CHECK-GI-NEXT: adrp x8, .LCPI36_0 ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr d1, [x8, :lo12:.LCPI35_0] +; CHECK-GI-NEXT: ldr d1, [x8, :lo12:.LCPI36_0] ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b }, v1.16b ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: ret @@ -601,9 +632,9 @@ define <3 x i16> @shufflevector_v3i16(<3 x i16> %a, <3 x i16> %b) { ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-GI-NEXT: // kill: def $d1 killed $d1 def $q1 -; CHECK-GI-NEXT: adrp x8, .LCPI36_0 +; CHECK-GI-NEXT: adrp x8, .LCPI37_0 ; CHECK-GI-NEXT: mov v0.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr d1, [x8, :lo12:.LCPI36_0] +; CHECK-GI-NEXT: ldr d1, [x8, :lo12:.LCPI37_0] ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b }, v1.16b ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: ret @@ -614,18 +645,18 @@ define <3 x i16> @shufflevector_v3i16(<3 x i16> %a, <3 x i16> %b) { define <7 x i16> @shufflevector_v7i16(<7 x i16> %a, <7 x i16> %b) { ; CHECK-SD-LABEL: shufflevector_v7i16: ; CHECK-SD: // %bb.0: -; CHECK-SD-NEXT: adrp x8, .LCPI37_0 +; CHECK-SD-NEXT: adrp x8, .LCPI38_0 ; CHECK-SD-NEXT: // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1 -; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI37_0] +; CHECK-SD-NEXT: ldr q2, [x8, :lo12:.LCPI38_0] ; CHECK-SD-NEXT: // kill: def $q0 killed $q0 killed $q0_q1 def $q0_q1 ; CHECK-SD-NEXT: tbl v0.16b, { v0.16b, v1.16b }, v2.16b ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: shufflevector_v7i16: ; CHECK-GI: // %bb.0: -; CHECK-GI-NEXT: adrp x8, .LCPI37_0 +; CHECK-GI-NEXT: adrp x8, .LCPI38_0 ; CHECK-GI-NEXT: // kill: def $q0 killed $q0 killed $q0_q1 def $q0_q1 -; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI37_0] +; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI38_0] ; CHECK-GI-NEXT: // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1 ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b, v1.16b }, v2.16b ; CHECK-GI-NEXT: ret @@ -642,9 +673,9 @@ define <3 x i32> @shufflevector_v3i32(<3 x i32> %a, <3 x i32> %b) { ; ; CHECK-GI-LABEL: shufflevector_v3i32: ; CHECK-GI: // %bb.0: -; CHECK-GI-NEXT: adrp x8, .LCPI38_0 +; CHECK-GI-NEXT: adrp x8, .LCPI39_0 ; CHECK-GI-NEXT: // kill: def $q0 killed $q0 killed $q0_q1 def $q0_q1 -; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI38_0] +; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI39_0] ; CHECK-GI-NEXT: // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1 ; CHECK-GI-NEXT: tbl v0.16b, { v0.16b, v1.16b }, v2.16b ; CHECK-GI-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/ssub_sat.ll b/llvm/test/CodeGen/AArch64/ssub_sat.ll index cf201d628b7e1..23550d3c41cc7 100644 --- a/llvm/test/CodeGen/AArch64/ssub_sat.ll +++ b/llvm/test/CodeGen/AArch64/ssub_sat.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-- -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i4 @llvm.ssub.sat.i4(i4, i4) declare i8 @llvm.ssub.sat.i8(i8, i8) diff --git a/llvm/test/CodeGen/AArch64/ssub_sat_plus.ll b/llvm/test/CodeGen/AArch64/ssub_sat_plus.ll index cabd580e20d50..f08629c15f26c 100644 --- a/llvm/test/CodeGen/AArch64/ssub_sat_plus.ll +++ b/llvm/test/CodeGen/AArch64/ssub_sat_plus.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-- -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i4 @llvm.ssub.sat.i4(i4, i4) declare i8 @llvm.ssub.sat.i8(i8, i8) diff --git a/llvm/test/CodeGen/AArch64/ssub_sat_vec.ll b/llvm/test/CodeGen/AArch64/ssub_sat_vec.ll index 30e2a70ace072..be4a5843e8215 100644 --- a/llvm/test/CodeGen/AArch64/ssub_sat_vec.ll +++ b/llvm/test/CodeGen/AArch64/ssub_sat_vec.ll @@ -2,6 +2,9 @@ ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD ; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; CHECK-GI: warning: Instruction selection used fallback path for v16i4 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for v16i1 + declare <1 x i8> @llvm.ssub.sat.v1i8(<1 x i8>, <1 x i8>) declare <2 x i8> @llvm.ssub.sat.v2i8(<2 x i8>, <2 x i8>) declare <4 x i8> @llvm.ssub.sat.v4i8(<4 x i8>, <4 x i8>) @@ -497,21 +500,45 @@ define <8 x i64> @v8i64(<8 x i64> %x, <8 x i64> %y) nounwind { } define <2 x i128> @v2i128(<2 x i128> %x, <2 x i128> %y) nounwind { -; CHECK-LABEL: v2i128: -; CHECK: // %bb.0: -; CHECK-NEXT: subs x8, x0, x4 -; CHECK-NEXT: sbcs x9, x1, x5 -; CHECK-NEXT: asr x10, x9, #63 -; CHECK-NEXT: eor x11, x10, #0x8000000000000000 -; CHECK-NEXT: csel x0, x10, x8, vs -; CHECK-NEXT: csel x1, x11, x9, vs -; CHECK-NEXT: subs x8, x2, x6 -; CHECK-NEXT: sbcs x9, x3, x7 -; CHECK-NEXT: asr x10, x9, #63 -; CHECK-NEXT: eor x11, x10, #0x8000000000000000 -; CHECK-NEXT: csel x2, x10, x8, vs -; CHECK-NEXT: csel x3, x11, x9, vs -; CHECK-NEXT: ret +; CHECK-SD-LABEL: v2i128: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: subs x8, x0, x4 +; CHECK-SD-NEXT: sbcs x9, x1, x5 +; CHECK-SD-NEXT: asr x10, x9, #63 +; CHECK-SD-NEXT: eor x11, x10, #0x8000000000000000 +; CHECK-SD-NEXT: csel x0, x10, x8, vs +; CHECK-SD-NEXT: csel x1, x11, x9, vs +; CHECK-SD-NEXT: subs x8, x2, x6 +; CHECK-SD-NEXT: sbcs x9, x3, x7 +; CHECK-SD-NEXT: asr x10, x9, #63 +; CHECK-SD-NEXT: eor x11, x10, #0x8000000000000000 +; CHECK-SD-NEXT: csel x2, x10, x8, vs +; CHECK-SD-NEXT: csel x3, x11, x9, vs +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: v2i128: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: subs x9, x0, x4 +; CHECK-GI-NEXT: mov w8, wzr +; CHECK-GI-NEXT: mov x13, #-9223372036854775808 // =0x8000000000000000 +; CHECK-GI-NEXT: sbcs x10, x1, x5 +; CHECK-GI-NEXT: asr x11, x10, #63 +; CHECK-GI-NEXT: cset w12, vs +; CHECK-GI-NEXT: cmp w8, #1 +; CHECK-GI-NEXT: adc x14, x11, x13 +; CHECK-GI-NEXT: tst w12, #0x1 +; CHECK-GI-NEXT: csel x0, x11, x9, ne +; CHECK-GI-NEXT: csel x1, x14, x10, ne +; CHECK-GI-NEXT: subs x9, x2, x6 +; CHECK-GI-NEXT: sbcs x10, x3, x7 +; CHECK-GI-NEXT: asr x11, x10, #63 +; CHECK-GI-NEXT: cset w12, vs +; CHECK-GI-NEXT: cmp w8, #1 +; CHECK-GI-NEXT: adc x8, x11, x13 +; CHECK-GI-NEXT: tst w12, #0x1 +; CHECK-GI-NEXT: csel x2, x11, x9, ne +; CHECK-GI-NEXT: csel x3, x8, x10, ne +; CHECK-GI-NEXT: ret %z = call <2 x i128> @llvm.ssub.sat.v2i128(<2 x i128> %x, <2 x i128> %y) ret <2 x i128> %z } diff --git a/llvm/test/CodeGen/AArch64/strpre-str-merge.mir b/llvm/test/CodeGen/AArch64/strpre-str-merge.mir index 5c1937e0d7753..722de6bb343e2 100644 --- a/llvm/test/CodeGen/AArch64/strpre-str-merge.mir +++ b/llvm/test/CodeGen/AArch64/strpre-str-merge.mir @@ -156,7 +156,7 @@ body: | ; CHECK-LABEL: name: 6-strqui-strqpre-no-merge ; CHECK: liveins: $q0, $q1, $x0 ; CHECK: STRQui renamable $q1, renamable $x0, 1 :: (store (s128)) - ; CHECK: early-clobber renamable $x0 = STRQpre renamable $q0, renamable $x0, 48, implicit $w0, implicit $w0_hi :: (store (s128)) + ; CHECK: early-clobber renamable $x0 = STRQpre renamable $q0, renamable $x0, 48, implicit $w0 :: (store (s128)) ; CHECK: RET undef $lr, implicit $x0 STRQui killed renamable $q1, renamable $x0, 1 :: (store (s128)) early-clobber renamable $x0 = STRQpre killed renamable $q0, killed renamable $x0, 48 :: (store (s128)) @@ -235,7 +235,7 @@ body: | liveins: $s0, $s1, $x0, $x1 ; CHECK-LABEL: name: 9-strspre-strsui-mod-base-reg-no-merge ; CHECK: liveins: $s0, $s1, $x0, $x1 - ; CHECK: dead early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 12, implicit $w0, implicit $w0_hi :: (store (s32)) + ; CHECK: dead early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 12, implicit $w0 :: (store (s32)) ; CHECK: renamable $x0 = LDRXui renamable $x1, 1 :: (load (s64)) ; CHECK: STRSui renamable $s1, renamable $x0, 1 :: (store (s32)) ; CHECK: RET undef $lr, implicit $x0 @@ -265,7 +265,7 @@ body: | liveins: $s0, $s1, $x0, $x1 ; CHECK-LABEL: name: 10-strspre-strsui-used-base-reg-no-merge ; CHECK: liveins: $s0, $s1, $x0, $x1 - ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 12, implicit $w0, implicit $w0_hi :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 12, implicit $w0 :: (store (s32)) ; CHECK: STRXui renamable $x1, renamable $x1, 1 :: (store (s32)) ; CHECK: STRSui renamable $s1, renamable $x0, 1 :: (store (s32)) ; CHECK: RET undef $lr, implicit $x0 @@ -296,12 +296,12 @@ body: | liveins: $s0, $s1, $x0 ; CHECK-LABEL: name: 11-strspre-strspre-no-merge ; CHECK: liveins: $s0, $s1, $x0 - ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 12, implicit $w0, implicit $w0_hi :: (store (s32)) - ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s1, renamable $x0, 16, implicit $w0, implicit $w0_hi :: (store (s32)) - ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 4, implicit $w0, implicit $w0_hi :: (store (s32)) - ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s1, renamable $x0, 12, implicit $w0, implicit $w0_hi :: (store (s32)) - ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 4, implicit $w0, implicit $w0_hi :: (store (s32)) - ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s1, renamable $x0, 4, implicit $w0, implicit $w0_hi :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 12, implicit $w0 :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s1, renamable $x0, 16, implicit $w0 :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 4, implicit $w0 :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s1, renamable $x0, 12, implicit $w0 :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 4, implicit $w0 :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s1, renamable $x0, 4, implicit $w0 :: (store (s32)) ; CHECK: RET undef $lr, implicit $x0 early-clobber renamable $x0 = STRSpre renamable $s0, killed renamable $x0, 12 :: (store (s32)) early-clobber renamable $x0 = STRSpre renamable $s1, killed renamable $x0, 16 :: (store (s32)) @@ -335,7 +335,7 @@ body: | liveins: $s0, $s1, $x0 ; CHECK-LABEL: name: 12-strspre-strsui-no-merge ; CHECK: liveins: $s0, $s1, $x0 - ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 12, implicit $w0, implicit $w0_hi :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 12, implicit $w0 :: (store (s32)) ; CHECK: STRSui renamable $s1, renamable $x0, 2 :: (store (s32)) ; CHECK: RET undef $lr, implicit $x0 early-clobber renamable $x0 = STRSpre killed renamable $s0, killed renamable $x0, 12 :: (store (s32)) @@ -390,7 +390,7 @@ body: | liveins: $q0, $q1, $x0 ; CHECK-LABEL: name: 14-strqpre-sturqi-no-merge ; CHECK: liveins: $q0, $q1, $x0 - ; CHECK: early-clobber renamable $x0 = STRQpre renamable $q0, renamable $x0, 48, implicit $w0, implicit $w0_hi :: (store (s128)) + ; CHECK: early-clobber renamable $x0 = STRQpre renamable $q0, renamable $x0, 48, implicit $w0 :: (store (s128)) ; CHECK: STURQi renamable $q1, renamable $x0, 1 :: (store (s128)) ; CHECK: RET undef $lr, implicit $x0 early-clobber renamable $x0 = STRQpre killed renamable $q0, killed renamable $x0, 48 :: (store (s128)) @@ -417,7 +417,7 @@ body: | liveins: $s0, $s1, $x0 ; CHECK-LABEL: name: 15-strspre-strsui-unaligned-no-merge ; CHECK: liveins: $s0, $s1, $x0 - ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 251, implicit $w0, implicit $w0_hi :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRSpre renamable $s0, renamable $x0, 251, implicit $w0 :: (store (s32)) ; CHECK: STRSui renamable $s1, renamable $x0, 1 :: (store (s32)) ; CHECK: RET undef $lr, implicit $x0 early-clobber renamable $x0 = STRSpre killed renamable $s0, killed renamable $x0, 251 :: (store (s32)) @@ -443,7 +443,7 @@ body: | liveins: $x0, $x1, $x2 ; CHECK-LABEL: name: 16-strxpre-strxui-same-reg-no-merge ; CHECK: liveins: $x0, $x1, $x2 - ; CHECK: early-clobber renamable $x0 = STRXpre renamable $x1, renamable $x0, 24, implicit $w0, implicit $w0_hi :: (store (s64)) + ; CHECK: early-clobber renamable $x0 = STRXpre renamable $x1, renamable $x0, 24, implicit $w0 :: (store (s64)) ; CHECK: STRXui renamable $x0, renamable $x0, 1 :: (store (s64)) ; CHECK: RET undef $lr, implicit $x0 early-clobber renamable $x0 = STRXpre killed renamable $x1, killed renamable $x0, 24 :: (store (s64)) @@ -470,7 +470,7 @@ body: | liveins: $x0, $x1, $x2 ; CHECK-LABEL: name: 17-strwpre-strwui-same-reg-no-merge ; CHECK: liveins: $x0, $x1, $x2 - ; CHECK: early-clobber renamable $x0 = STRWpre renamable $w1, renamable $x0, 24, implicit $w0, implicit $w0_hi, implicit-def $w0 :: (store (s32)) + ; CHECK: early-clobber renamable $x0 = STRWpre renamable $w1, renamable $x0, 24, implicit $w0, implicit-def $w0 :: (store (s32)) ; CHECK: STRWui renamable $w0, renamable $x0, 1 :: (store (s32)) ; CHECK: RET undef $lr, implicit $x0 early-clobber renamable $x0 = STRWpre killed renamable $w1, killed renamable $x0, 24 :: (store (s32)) diff --git a/llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.mir b/llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.mir index f85658e9a596a..45829b3198224 100644 --- a/llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.mir +++ b/llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.mir @@ -28,7 +28,7 @@ body: | ; CHECK-LABEL: name: bic_i16_zero ; CHECK: liveins: $p0, $z0 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: BUNDLE implicit-def $z0, implicit-def $q0, implicit-def $d0, implicit-def $s0, implicit-def $h0, implicit-def $b0, implicit-def $b0_hi, implicit-def $h0_hi, implicit-def $s0_hi, implicit-def $d0_hi, implicit-def $q0_hi, implicit killed $p0, implicit $z0 { + ; CHECK-NEXT: BUNDLE implicit-def $z0, implicit-def $q0, implicit-def $d0, implicit-def $s0, implicit-def $h0, implicit-def $b0, implicit killed $p0, implicit $z0 { ; CHECK-NEXT: $z0 = MOVPRFX_ZPzZ_H $p0, $z0 ; CHECK-NEXT: $z0 = LSL_ZPmI_H killed renamable $p0, internal $z0, 0 ; CHECK-NEXT: $z0 = BIC_ZPmZ_H killed renamable $p0, internal killed $z0, internal killed renamable $z0 diff --git a/llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryComm-merging.mir b/llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryComm-merging.mir index 0e2f1c3ff4f69..970077fdfea7b 100644 --- a/llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryComm-merging.mir +++ b/llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryComm-merging.mir @@ -28,7 +28,7 @@ body: | ; CHECK-LABEL: name: fmul_float_zero ; CHECK: liveins: $p0, $z0 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: BUNDLE implicit-def $z0, implicit-def $q0, implicit-def $d0, implicit-def $s0, implicit-def $h0, implicit-def $b0, implicit-def $b0_hi, implicit-def $h0_hi, implicit-def $s0_hi, implicit-def $d0_hi, implicit-def $q0_hi, implicit $p0, implicit $z0 { + ; CHECK-NEXT: BUNDLE implicit-def $z0, implicit-def $q0, implicit-def $d0, implicit-def $s0, implicit-def $h0, implicit-def $b0, implicit $p0, implicit $z0 { ; CHECK-NEXT: $z0 = MOVPRFX_ZPzZ_S $p0, $z0 ; CHECK-NEXT: $z0 = LSL_ZPmI_S renamable $p0, internal $z0, 0 ; CHECK-NEXT: $z0 = FMUL_ZPmZ_S renamable $p0, internal killed $z0, internal killed renamable $z0 diff --git a/llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryCommWithRev-merging.mir b/llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryCommWithRev-merging.mir index 548ebc26b83e8..308291fb6fe93 100644 --- a/llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryCommWithRev-merging.mir +++ b/llvm/test/CodeGen/AArch64/sve-intrinsics-int-binaryCommWithRev-merging.mir @@ -30,7 +30,7 @@ body: | ; CHECK-LABEL: name: fsub_s_zero ; CHECK: liveins: $p0, $z0 ; CHECK-NEXT: {{ $}} - ; CHECK-NEXT: BUNDLE implicit-def $z0, implicit-def $q0, implicit-def $d0, implicit-def $s0, implicit-def $h0, implicit-def $b0, implicit-def $b0_hi, implicit-def $h0_hi, implicit-def $s0_hi, implicit-def $d0_hi, implicit-def $q0_hi, implicit $p0, implicit $z0 { + ; CHECK-NEXT: BUNDLE implicit-def $z0, implicit-def $q0, implicit-def $d0, implicit-def $s0, implicit-def $h0, implicit-def $b0, implicit $p0, implicit $z0 { ; CHECK-NEXT: $z0 = MOVPRFX_ZPzZ_S $p0, $z0 ; CHECK-NEXT: $z0 = LSL_ZPmI_S renamable $p0, internal $z0, 0 ; CHECK-NEXT: $z0 = FSUBR_ZPmZ_S renamable $p0, internal killed $z0, internal killed renamable $z0 diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-concat.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-concat.ll index 6e2ecfca9e963..619840fc6afb2 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-concat.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-concat.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mattr=+sve2 -force-streaming-compatible < %s | FileCheck %s --check-prefixes=CHECK,SVE2 -; RUN: llc -mattr=+sme -force-streaming < %s | FileCheck %s --check-prefixes=CHECK,SME +; RUN: llc -mattr=+sve2 -force-streaming-compatible < %s | FileCheck %s --check-prefixes=CHECK +; RUN: llc -mattr=+sme -force-streaming < %s | FileCheck %s --check-prefixes=CHECK ; RUN: llc -force-streaming-compatible < %s | FileCheck %s --check-prefix=NONEON-NOSVE target triple = "aarch64-unknown-linux-gnu" @@ -406,33 +406,13 @@ define void @concat_v8i64(ptr %a, ptr %b, ptr %c) { ; define <4 x half> @concat_v4f16(<2 x half> %op1, <2 x half> %op2) { -; SVE2-LABEL: concat_v4f16: -; SVE2: // %bb.0: -; SVE2-NEXT: cnth x8 -; SVE2-NEXT: adrp x9, .LCPI15_0 -; SVE2-NEXT: adrp x10, .LCPI15_1 -; SVE2-NEXT: mov z2.h, w8 -; SVE2-NEXT: ldr q3, [x9, :lo12:.LCPI15_0] -; SVE2-NEXT: ldr q4, [x10, :lo12:.LCPI15_1] -; SVE2-NEXT: ptrue p0.h, vl8 -; SVE2-NEXT: // kill: def $d1 killed $d1 killed $z0_z1 def $z0_z1 -; SVE2-NEXT: // kill: def $d0 killed $d0 killed $z0_z1 def $z0_z1 -; SVE2-NEXT: mad z2.h, p0/m, z3.h, z4.h -; SVE2-NEXT: tbl z0.h, { z0.h, z1.h }, z2.h -; SVE2-NEXT: // kill: def $d0 killed $d0 killed $z0 -; SVE2-NEXT: ret -; -; SME-LABEL: concat_v4f16: -; SME: // %bb.0: -; SME-NEXT: // kill: def $d1 killed $d1 def $z1 -; SME-NEXT: // kill: def $d0 killed $d0 def $z0 -; SME-NEXT: mov z2.h, z1.h[1] -; SME-NEXT: mov z3.h, z0.h[1] -; SME-NEXT: zip1 z1.h, z1.h, z2.h -; SME-NEXT: zip1 z0.h, z0.h, z3.h -; SME-NEXT: zip1 z0.s, z0.s, z1.s -; SME-NEXT: // kill: def $d0 killed $d0 killed $z0 -; SME-NEXT: ret +; CHECK-LABEL: concat_v4f16: +; CHECK: // %bb.0: +; CHECK-NEXT: // kill: def $d0 killed $d0 def $z0 +; CHECK-NEXT: // kill: def $d1 killed $d1 def $z1 +; CHECK-NEXT: zip1 z0.s, z0.s, z1.s +; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 +; CHECK-NEXT: ret ; ; NONEON-NOSVE-LABEL: concat_v4f16: ; NONEON-NOSVE: // %bb.0: diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-extract-subvector.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-extract-subvector.ll index a728cbe97056d..35dd827bbabc5 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-extract-subvector.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-extract-subvector.ll @@ -276,10 +276,8 @@ define void @extract_subvector_v4i64(ptr %a, ptr %b) { define <2 x half> @extract_subvector_v4f16(<4 x half> %op) { ; CHECK-LABEL: extract_subvector_v4f16: ; CHECK: // %bb.0: -; CHECK-NEXT: adrp x8, .LCPI12_0 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $z0 -; CHECK-NEXT: ldr q1, [x8, :lo12:.LCPI12_0] -; CHECK-NEXT: tbl z0.h, { z0.h }, z1.h +; CHECK-NEXT: mov z0.s, z0.s[1] ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 ; CHECK-NEXT: ret ; diff --git a/llvm/test/CodeGen/AArch64/uadd_sat.ll b/llvm/test/CodeGen/AArch64/uadd_sat.ll index ccf46e8fce2e1..e9d22c7be52ef 100644 --- a/llvm/test/CodeGen/AArch64/uadd_sat.ll +++ b/llvm/test/CodeGen/AArch64/uadd_sat.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-- -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i4 @llvm.uadd.sat.i4(i4, i4) declare i8 @llvm.uadd.sat.i8(i8, i8) diff --git a/llvm/test/CodeGen/AArch64/uadd_sat_plus.ll b/llvm/test/CodeGen/AArch64/uadd_sat_plus.ll index d29564029544c..5c81e3f20277a 100644 --- a/llvm/test/CodeGen/AArch64/uadd_sat_plus.ll +++ b/llvm/test/CodeGen/AArch64/uadd_sat_plus.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-- -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i4 @llvm.uadd.sat.i4(i4, i4) declare i8 @llvm.uadd.sat.i8(i8, i8) diff --git a/llvm/test/CodeGen/AArch64/uadd_sat_vec.ll b/llvm/test/CodeGen/AArch64/uadd_sat_vec.ll index badd31c1c561c..924bd3981779e 100644 --- a/llvm/test/CodeGen/AArch64/uadd_sat_vec.ll +++ b/llvm/test/CodeGen/AArch64/uadd_sat_vec.ll @@ -2,6 +2,9 @@ ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD ; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; CHECK-GI: warning: Instruction selection used fallback path for v16i4 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for v16i1 + declare <1 x i8> @llvm.uadd.sat.v1i8(<1 x i8>, <1 x i8>) declare <2 x i8> @llvm.uadd.sat.v2i8(<2 x i8>, <2 x i8>) declare <4 x i8> @llvm.uadd.sat.v4i8(<4 x i8>, <4 x i8>) @@ -488,17 +491,33 @@ define <8 x i64> @v8i64(<8 x i64> %x, <8 x i64> %y) nounwind { } define <2 x i128> @v2i128(<2 x i128> %x, <2 x i128> %y) nounwind { -; CHECK-LABEL: v2i128: -; CHECK: // %bb.0: -; CHECK-NEXT: adds x8, x0, x4 -; CHECK-NEXT: adcs x9, x1, x5 -; CHECK-NEXT: csinv x0, x8, xzr, lo -; CHECK-NEXT: csinv x1, x9, xzr, lo -; CHECK-NEXT: adds x8, x2, x6 -; CHECK-NEXT: adcs x9, x3, x7 -; CHECK-NEXT: csinv x2, x8, xzr, lo -; CHECK-NEXT: csinv x3, x9, xzr, lo -; CHECK-NEXT: ret +; CHECK-SD-LABEL: v2i128: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: adds x8, x0, x4 +; CHECK-SD-NEXT: adcs x9, x1, x5 +; CHECK-SD-NEXT: csinv x0, x8, xzr, lo +; CHECK-SD-NEXT: csinv x1, x9, xzr, lo +; CHECK-SD-NEXT: adds x8, x2, x6 +; CHECK-SD-NEXT: adcs x9, x3, x7 +; CHECK-SD-NEXT: csinv x2, x8, xzr, lo +; CHECK-SD-NEXT: csinv x3, x9, xzr, lo +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: v2i128: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: adds x8, x0, x4 +; CHECK-GI-NEXT: adcs x9, x1, x5 +; CHECK-GI-NEXT: cset w10, hs +; CHECK-GI-NEXT: tst w10, #0x1 +; CHECK-GI-NEXT: csinv x0, x8, xzr, eq +; CHECK-GI-NEXT: csinv x1, x9, xzr, eq +; CHECK-GI-NEXT: adds x8, x2, x6 +; CHECK-GI-NEXT: adcs x9, x3, x7 +; CHECK-GI-NEXT: cset w10, hs +; CHECK-GI-NEXT: tst w10, #0x1 +; CHECK-GI-NEXT: csinv x2, x8, xzr, eq +; CHECK-GI-NEXT: csinv x3, x9, xzr, eq +; CHECK-GI-NEXT: ret %z = call <2 x i128> @llvm.uadd.sat.v2i128(<2 x i128> %x, <2 x i128> %y) ret <2 x i128> %z } diff --git a/llvm/test/CodeGen/AArch64/usub_sat.ll b/llvm/test/CodeGen/AArch64/usub_sat.ll index 160e7e6607cdc..54d7fc5a63b11 100644 --- a/llvm/test/CodeGen/AArch64/usub_sat.ll +++ b/llvm/test/CodeGen/AArch64/usub_sat.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-- -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i4 @llvm.usub.sat.i4(i4, i4) declare i8 @llvm.usub.sat.i8(i8, i8) diff --git a/llvm/test/CodeGen/AArch64/usub_sat_plus.ll b/llvm/test/CodeGen/AArch64/usub_sat_plus.ll index a9932216dbe34..2793aeb163c94 100644 --- a/llvm/test/CodeGen/AArch64/usub_sat_plus.ll +++ b/llvm/test/CodeGen/AArch64/usub_sat_plus.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-- -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i4 @llvm.usub.sat.i4(i4, i4) declare i8 @llvm.usub.sat.i8(i8, i8) diff --git a/llvm/test/CodeGen/AArch64/usub_sat_vec.ll b/llvm/test/CodeGen/AArch64/usub_sat_vec.ll index 45418b5c648fa..a623eb554cac7 100644 --- a/llvm/test/CodeGen/AArch64/usub_sat_vec.ll +++ b/llvm/test/CodeGen/AArch64/usub_sat_vec.ll @@ -2,6 +2,9 @@ ; RUN: llc < %s -mtriple=aarch64-- | FileCheck %s --check-prefixes=CHECK,CHECK-SD ; RUN: llc < %s -mtriple=aarch64-- -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; CHECK-GI: warning: Instruction selection used fallback path for v16i4 +; CHECK-GI-NEXT: warning: Instruction selection used fallback path for v16i1 + declare <1 x i8> @llvm.usub.sat.v1i8(<1 x i8>, <1 x i8>) declare <2 x i8> @llvm.usub.sat.v2i8(<2 x i8>, <2 x i8>) declare <4 x i8> @llvm.usub.sat.v4i8(<4 x i8>, <4 x i8>) @@ -486,17 +489,33 @@ define <8 x i64> @v8i64(<8 x i64> %x, <8 x i64> %y) nounwind { } define <2 x i128> @v2i128(<2 x i128> %x, <2 x i128> %y) nounwind { -; CHECK-LABEL: v2i128: -; CHECK: // %bb.0: -; CHECK-NEXT: subs x8, x0, x4 -; CHECK-NEXT: sbcs x9, x1, x5 -; CHECK-NEXT: csel x0, xzr, x8, lo -; CHECK-NEXT: csel x1, xzr, x9, lo -; CHECK-NEXT: subs x8, x2, x6 -; CHECK-NEXT: sbcs x9, x3, x7 -; CHECK-NEXT: csel x2, xzr, x8, lo -; CHECK-NEXT: csel x3, xzr, x9, lo -; CHECK-NEXT: ret +; CHECK-SD-LABEL: v2i128: +; CHECK-SD: // %bb.0: +; CHECK-SD-NEXT: subs x8, x0, x4 +; CHECK-SD-NEXT: sbcs x9, x1, x5 +; CHECK-SD-NEXT: csel x0, xzr, x8, lo +; CHECK-SD-NEXT: csel x1, xzr, x9, lo +; CHECK-SD-NEXT: subs x8, x2, x6 +; CHECK-SD-NEXT: sbcs x9, x3, x7 +; CHECK-SD-NEXT: csel x2, xzr, x8, lo +; CHECK-SD-NEXT: csel x3, xzr, x9, lo +; CHECK-SD-NEXT: ret +; +; CHECK-GI-LABEL: v2i128: +; CHECK-GI: // %bb.0: +; CHECK-GI-NEXT: subs x8, x0, x4 +; CHECK-GI-NEXT: sbcs x9, x1, x5 +; CHECK-GI-NEXT: cset w10, lo +; CHECK-GI-NEXT: tst w10, #0x1 +; CHECK-GI-NEXT: csel x0, xzr, x8, ne +; CHECK-GI-NEXT: csel x1, xzr, x9, ne +; CHECK-GI-NEXT: subs x8, x2, x6 +; CHECK-GI-NEXT: sbcs x9, x3, x7 +; CHECK-GI-NEXT: cset w10, lo +; CHECK-GI-NEXT: tst w10, #0x1 +; CHECK-GI-NEXT: csel x2, xzr, x8, ne +; CHECK-GI-NEXT: csel x3, xzr, x9, ne +; CHECK-GI-NEXT: ret %z = call <2 x i128> @llvm.usub.sat.v2i128(<2 x i128> %x, <2 x i128> %y) ret <2 x i128> %z } diff --git a/llvm/test/CodeGen/AArch64/vecreduce-umax-legalization.ll b/llvm/test/CodeGen/AArch64/vecreduce-umax-legalization.ll index d71aed2d17506..809a6d6556a7b 100644 --- a/llvm/test/CodeGen/AArch64/vecreduce-umax-legalization.ll +++ b/llvm/test/CodeGen/AArch64/vecreduce-umax-legalization.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s --check-prefixes=CHECK,CHECK-SD -; RUN: llc < %s -mtriple=aarch64-none-linux-gnu -mattr=+neon -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI +; RUN: llc < %s -mtriple=aarch64-none-linux-gnu -mattr=+neon -global-isel | FileCheck %s --check-prefixes=CHECK,CHECK-GI declare i1 @llvm.vector.reduce.umax.v1i1(<1 x i1> %a) declare i8 @llvm.vector.reduce.umax.v1i8(<1 x i8> %a) diff --git a/llvm/test/CodeGen/AArch64/zero-call-used-regs.ll b/llvm/test/CodeGen/AArch64/zero-call-used-regs.ll index 75a7c7f4a0511..4799ea3bcd19f 100644 --- a/llvm/test/CodeGen/AArch64/zero-call-used-regs.ll +++ b/llvm/test/CodeGen/AArch64/zero-call-used-regs.ll @@ -1,6 +1,10 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-unknown-unknown | FileCheck %s --check-prefixes=CHECK,DEFAULT -; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-unknown-unknown -mattr=+sve | FileCheck %s --check-prefixes=CHECK,SVE +; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-unknown-unknown -mattr=+sve | FileCheck %s --check-prefixes=CHECK,SVE-OR-SME +; RUN: llc -mattr=+sme -force-streaming < %s | FileCheck %s --check-prefixes=CHECK,SVE-OR-SME +; RUN: llc -force-streaming-compatible < %s | FileCheck %s --check-prefixes=CHECK,STREAMING-COMPAT + +target triple = "aarch64-unknown-linux-gnu" @result = dso_local global i32 0, align 4 @@ -156,32 +160,55 @@ define dso_local i32 @all_arg(i32 noundef %a, i32 noundef %b, i32 noundef %c) lo ; DEFAULT-NEXT: movi v7.2d, #0000000000000000 ; DEFAULT-NEXT: ret ; -; SVE-LABEL: all_arg: -; SVE: // %bb.0: // %entry -; SVE-NEXT: mul w8, w1, w0 -; SVE-NEXT: mov x1, #0 // =0x0 -; SVE-NEXT: mov x3, #0 // =0x0 -; SVE-NEXT: mov x4, #0 // =0x0 -; SVE-NEXT: mov x5, #0 // =0x0 -; SVE-NEXT: mov x6, #0 // =0x0 -; SVE-NEXT: mov x7, #0 // =0x0 -; SVE-NEXT: mov x18, #0 // =0x0 -; SVE-NEXT: mov z0.d, #0 // =0x0 -; SVE-NEXT: orr w0, w8, w2 -; SVE-NEXT: mov x2, #0 // =0x0 -; SVE-NEXT: mov x8, #0 // =0x0 -; SVE-NEXT: mov z1.d, #0 // =0x0 -; SVE-NEXT: mov z2.d, #0 // =0x0 -; SVE-NEXT: mov z3.d, #0 // =0x0 -; SVE-NEXT: mov z4.d, #0 // =0x0 -; SVE-NEXT: mov z5.d, #0 // =0x0 -; SVE-NEXT: mov z6.d, #0 // =0x0 -; SVE-NEXT: mov z7.d, #0 // =0x0 -; SVE-NEXT: pfalse p0.b -; SVE-NEXT: pfalse p1.b -; SVE-NEXT: pfalse p2.b -; SVE-NEXT: pfalse p3.b -; SVE-NEXT: ret +; SVE-OR-SME-LABEL: all_arg: +; SVE-OR-SME: // %bb.0: // %entry +; SVE-OR-SME-NEXT: mul w8, w1, w0 +; SVE-OR-SME-NEXT: mov x1, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x3, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x4, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x5, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x6, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x7, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x18, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z0.d, #0 // =0x0 +; SVE-OR-SME-NEXT: orr w0, w8, w2 +; SVE-OR-SME-NEXT: mov x2, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x8, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z1.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z2.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z3.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z4.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z5.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z6.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z7.d, #0 // =0x0 +; SVE-OR-SME-NEXT: pfalse p0.b +; SVE-OR-SME-NEXT: pfalse p1.b +; SVE-OR-SME-NEXT: pfalse p2.b +; SVE-OR-SME-NEXT: pfalse p3.b +; SVE-OR-SME-NEXT: ret +; +; STREAMING-COMPAT-LABEL: all_arg: +; STREAMING-COMPAT: // %bb.0: // %entry +; STREAMING-COMPAT-NEXT: mul w8, w1, w0 +; STREAMING-COMPAT-NEXT: mov x1, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x3, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x4, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x5, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x6, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x7, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x18, #0 // =0x0 +; STREAMING-COMPAT-NEXT: fmov d0, xzr +; STREAMING-COMPAT-NEXT: orr w0, w8, w2 +; STREAMING-COMPAT-NEXT: mov x2, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x8, #0 // =0x0 +; STREAMING-COMPAT-NEXT: fmov d1, xzr +; STREAMING-COMPAT-NEXT: fmov d2, xzr +; STREAMING-COMPAT-NEXT: fmov d3, xzr +; STREAMING-COMPAT-NEXT: fmov d4, xzr +; STREAMING-COMPAT-NEXT: fmov d5, xzr +; STREAMING-COMPAT-NEXT: fmov d6, xzr +; STREAMING-COMPAT-NEXT: fmov d7, xzr +; STREAMING-COMPAT-NEXT: ret entry: %mul = mul nsw i32 %b, %a @@ -238,69 +265,117 @@ define dso_local i32 @all(i32 noundef %a, i32 noundef %b, i32 noundef %c) local_ ; DEFAULT-NEXT: movi v31.2d, #0000000000000000 ; DEFAULT-NEXT: ret ; -; SVE-LABEL: all: -; SVE: // %bb.0: // %entry -; SVE-NEXT: mul w8, w1, w0 -; SVE-NEXT: mov x1, #0 // =0x0 -; SVE-NEXT: mov x3, #0 // =0x0 -; SVE-NEXT: mov x4, #0 // =0x0 -; SVE-NEXT: mov x5, #0 // =0x0 -; SVE-NEXT: mov x6, #0 // =0x0 -; SVE-NEXT: mov x7, #0 // =0x0 -; SVE-NEXT: mov x9, #0 // =0x0 -; SVE-NEXT: mov x10, #0 // =0x0 -; SVE-NEXT: orr w0, w8, w2 -; SVE-NEXT: mov x2, #0 // =0x0 -; SVE-NEXT: mov x8, #0 // =0x0 -; SVE-NEXT: mov x11, #0 // =0x0 -; SVE-NEXT: mov x12, #0 // =0x0 -; SVE-NEXT: mov x13, #0 // =0x0 -; SVE-NEXT: mov x14, #0 // =0x0 -; SVE-NEXT: mov x15, #0 // =0x0 -; SVE-NEXT: mov x16, #0 // =0x0 -; SVE-NEXT: mov x17, #0 // =0x0 -; SVE-NEXT: mov x18, #0 // =0x0 -; SVE-NEXT: mov z0.d, #0 // =0x0 -; SVE-NEXT: mov z1.d, #0 // =0x0 -; SVE-NEXT: mov z2.d, #0 // =0x0 -; SVE-NEXT: mov z3.d, #0 // =0x0 -; SVE-NEXT: mov z4.d, #0 // =0x0 -; SVE-NEXT: mov z5.d, #0 // =0x0 -; SVE-NEXT: mov z6.d, #0 // =0x0 -; SVE-NEXT: mov z7.d, #0 // =0x0 -; SVE-NEXT: mov z16.d, #0 // =0x0 -; SVE-NEXT: mov z17.d, #0 // =0x0 -; SVE-NEXT: mov z18.d, #0 // =0x0 -; SVE-NEXT: mov z19.d, #0 // =0x0 -; SVE-NEXT: mov z20.d, #0 // =0x0 -; SVE-NEXT: mov z21.d, #0 // =0x0 -; SVE-NEXT: mov z22.d, #0 // =0x0 -; SVE-NEXT: mov z23.d, #0 // =0x0 -; SVE-NEXT: mov z24.d, #0 // =0x0 -; SVE-NEXT: mov z25.d, #0 // =0x0 -; SVE-NEXT: mov z26.d, #0 // =0x0 -; SVE-NEXT: mov z27.d, #0 // =0x0 -; SVE-NEXT: mov z28.d, #0 // =0x0 -; SVE-NEXT: mov z29.d, #0 // =0x0 -; SVE-NEXT: mov z30.d, #0 // =0x0 -; SVE-NEXT: mov z31.d, #0 // =0x0 -; SVE-NEXT: pfalse p0.b -; SVE-NEXT: pfalse p1.b -; SVE-NEXT: pfalse p2.b -; SVE-NEXT: pfalse p3.b -; SVE-NEXT: pfalse p4.b -; SVE-NEXT: pfalse p5.b -; SVE-NEXT: pfalse p6.b -; SVE-NEXT: pfalse p7.b -; SVE-NEXT: pfalse p8.b -; SVE-NEXT: pfalse p9.b -; SVE-NEXT: pfalse p10.b -; SVE-NEXT: pfalse p11.b -; SVE-NEXT: pfalse p12.b -; SVE-NEXT: pfalse p13.b -; SVE-NEXT: pfalse p14.b -; SVE-NEXT: pfalse p15.b -; SVE-NEXT: ret +; SVE-OR-SME-LABEL: all: +; SVE-OR-SME: // %bb.0: // %entry +; SVE-OR-SME-NEXT: mul w8, w1, w0 +; SVE-OR-SME-NEXT: mov x1, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x3, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x4, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x5, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x6, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x7, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x9, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x10, #0 // =0x0 +; SVE-OR-SME-NEXT: orr w0, w8, w2 +; SVE-OR-SME-NEXT: mov x2, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x8, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x11, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x12, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x13, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x14, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x15, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x16, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x17, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x18, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z0.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z1.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z2.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z3.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z4.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z5.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z6.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z7.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z16.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z17.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z18.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z19.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z20.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z21.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z22.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z23.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z24.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z25.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z26.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z27.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z28.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z29.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z30.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z31.d, #0 // =0x0 +; SVE-OR-SME-NEXT: pfalse p0.b +; SVE-OR-SME-NEXT: pfalse p1.b +; SVE-OR-SME-NEXT: pfalse p2.b +; SVE-OR-SME-NEXT: pfalse p3.b +; SVE-OR-SME-NEXT: pfalse p4.b +; SVE-OR-SME-NEXT: pfalse p5.b +; SVE-OR-SME-NEXT: pfalse p6.b +; SVE-OR-SME-NEXT: pfalse p7.b +; SVE-OR-SME-NEXT: pfalse p8.b +; SVE-OR-SME-NEXT: pfalse p9.b +; SVE-OR-SME-NEXT: pfalse p10.b +; SVE-OR-SME-NEXT: pfalse p11.b +; SVE-OR-SME-NEXT: pfalse p12.b +; SVE-OR-SME-NEXT: pfalse p13.b +; SVE-OR-SME-NEXT: pfalse p14.b +; SVE-OR-SME-NEXT: pfalse p15.b +; SVE-OR-SME-NEXT: ret +; +; STREAMING-COMPAT-LABEL: all: +; STREAMING-COMPAT: // %bb.0: // %entry +; STREAMING-COMPAT-NEXT: mul w8, w1, w0 +; STREAMING-COMPAT-NEXT: mov x1, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x3, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x4, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x5, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x6, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x7, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x9, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x10, #0 // =0x0 +; STREAMING-COMPAT-NEXT: orr w0, w8, w2 +; STREAMING-COMPAT-NEXT: mov x2, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x8, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x11, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x12, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x13, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x14, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x15, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x16, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x17, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x18, #0 // =0x0 +; STREAMING-COMPAT-NEXT: fmov d0, xzr +; STREAMING-COMPAT-NEXT: fmov d1, xzr +; STREAMING-COMPAT-NEXT: fmov d2, xzr +; STREAMING-COMPAT-NEXT: fmov d3, xzr +; STREAMING-COMPAT-NEXT: fmov d4, xzr +; STREAMING-COMPAT-NEXT: fmov d5, xzr +; STREAMING-COMPAT-NEXT: fmov d6, xzr +; STREAMING-COMPAT-NEXT: fmov d7, xzr +; STREAMING-COMPAT-NEXT: fmov d16, xzr +; STREAMING-COMPAT-NEXT: fmov d17, xzr +; STREAMING-COMPAT-NEXT: fmov d18, xzr +; STREAMING-COMPAT-NEXT: fmov d19, xzr +; STREAMING-COMPAT-NEXT: fmov d20, xzr +; STREAMING-COMPAT-NEXT: fmov d21, xzr +; STREAMING-COMPAT-NEXT: fmov d22, xzr +; STREAMING-COMPAT-NEXT: fmov d23, xzr +; STREAMING-COMPAT-NEXT: fmov d24, xzr +; STREAMING-COMPAT-NEXT: fmov d25, xzr +; STREAMING-COMPAT-NEXT: fmov d26, xzr +; STREAMING-COMPAT-NEXT: fmov d27, xzr +; STREAMING-COMPAT-NEXT: fmov d28, xzr +; STREAMING-COMPAT-NEXT: fmov d29, xzr +; STREAMING-COMPAT-NEXT: fmov d30, xzr +; STREAMING-COMPAT-NEXT: fmov d31, xzr +; STREAMING-COMPAT-NEXT: ret entry: %mul = mul nsw i32 %b, %a @@ -355,12 +430,19 @@ define dso_local double @used_arg_float(double noundef %a, float noundef %b) loc ; DEFAULT-NEXT: movi v1.2d, #0000000000000000 ; DEFAULT-NEXT: ret ; -; SVE-LABEL: used_arg_float: -; SVE: // %bb.0: // %entry -; SVE-NEXT: fcvt d1, s1 -; SVE-NEXT: fmul d0, d1, d0 -; SVE-NEXT: mov z1.d, #0 // =0x0 -; SVE-NEXT: ret +; SVE-OR-SME-LABEL: used_arg_float: +; SVE-OR-SME: // %bb.0: // %entry +; SVE-OR-SME-NEXT: fcvt d1, s1 +; SVE-OR-SME-NEXT: fmul d0, d1, d0 +; SVE-OR-SME-NEXT: mov z1.d, #0 // =0x0 +; SVE-OR-SME-NEXT: ret +; +; STREAMING-COMPAT-LABEL: used_arg_float: +; STREAMING-COMPAT: // %bb.0: // %entry +; STREAMING-COMPAT-NEXT: fcvt d1, s1 +; STREAMING-COMPAT-NEXT: fmul d0, d1, d0 +; STREAMING-COMPAT-NEXT: fmov d1, xzr +; STREAMING-COMPAT-NEXT: ret entry: %conv = fpext float %b to double @@ -376,12 +458,19 @@ define dso_local double @used_float(double noundef %a, float noundef %b) local_u ; DEFAULT-NEXT: movi v1.2d, #0000000000000000 ; DEFAULT-NEXT: ret ; -; SVE-LABEL: used_float: -; SVE: // %bb.0: // %entry -; SVE-NEXT: fcvt d1, s1 -; SVE-NEXT: fmul d0, d1, d0 -; SVE-NEXT: mov z1.d, #0 // =0x0 -; SVE-NEXT: ret +; SVE-OR-SME-LABEL: used_float: +; SVE-OR-SME: // %bb.0: // %entry +; SVE-OR-SME-NEXT: fcvt d1, s1 +; SVE-OR-SME-NEXT: fmul d0, d1, d0 +; SVE-OR-SME-NEXT: mov z1.d, #0 // =0x0 +; SVE-OR-SME-NEXT: ret +; +; STREAMING-COMPAT-LABEL: used_float: +; STREAMING-COMPAT: // %bb.0: // %entry +; STREAMING-COMPAT-NEXT: fcvt d1, s1 +; STREAMING-COMPAT-NEXT: fmul d0, d1, d0 +; STREAMING-COMPAT-NEXT: fmov d1, xzr +; STREAMING-COMPAT-NEXT: ret entry: %conv = fpext float %b to double @@ -468,32 +557,55 @@ define dso_local double @all_arg_float(double noundef %a, float noundef %b) loca ; DEFAULT-NEXT: movi v7.2d, #0000000000000000 ; DEFAULT-NEXT: ret ; -; SVE-LABEL: all_arg_float: -; SVE: // %bb.0: // %entry -; SVE-NEXT: fcvt d1, s1 -; SVE-NEXT: fmul d0, d1, d0 -; SVE-NEXT: mov x0, #0 // =0x0 -; SVE-NEXT: mov x1, #0 // =0x0 -; SVE-NEXT: mov x2, #0 // =0x0 -; SVE-NEXT: mov x3, #0 // =0x0 -; SVE-NEXT: mov x4, #0 // =0x0 -; SVE-NEXT: mov x5, #0 // =0x0 -; SVE-NEXT: mov x6, #0 // =0x0 -; SVE-NEXT: mov x7, #0 // =0x0 -; SVE-NEXT: mov x8, #0 // =0x0 -; SVE-NEXT: mov x18, #0 // =0x0 -; SVE-NEXT: mov z1.d, #0 // =0x0 -; SVE-NEXT: mov z2.d, #0 // =0x0 -; SVE-NEXT: mov z3.d, #0 // =0x0 -; SVE-NEXT: mov z4.d, #0 // =0x0 -; SVE-NEXT: mov z5.d, #0 // =0x0 -; SVE-NEXT: mov z6.d, #0 // =0x0 -; SVE-NEXT: mov z7.d, #0 // =0x0 -; SVE-NEXT: pfalse p0.b -; SVE-NEXT: pfalse p1.b -; SVE-NEXT: pfalse p2.b -; SVE-NEXT: pfalse p3.b -; SVE-NEXT: ret +; SVE-OR-SME-LABEL: all_arg_float: +; SVE-OR-SME: // %bb.0: // %entry +; SVE-OR-SME-NEXT: fcvt d1, s1 +; SVE-OR-SME-NEXT: fmul d0, d1, d0 +; SVE-OR-SME-NEXT: mov x0, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x1, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x2, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x3, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x4, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x5, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x6, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x7, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x8, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x18, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z1.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z2.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z3.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z4.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z5.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z6.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z7.d, #0 // =0x0 +; SVE-OR-SME-NEXT: pfalse p0.b +; SVE-OR-SME-NEXT: pfalse p1.b +; SVE-OR-SME-NEXT: pfalse p2.b +; SVE-OR-SME-NEXT: pfalse p3.b +; SVE-OR-SME-NEXT: ret +; +; STREAMING-COMPAT-LABEL: all_arg_float: +; STREAMING-COMPAT: // %bb.0: // %entry +; STREAMING-COMPAT-NEXT: fcvt d1, s1 +; STREAMING-COMPAT-NEXT: fmul d0, d1, d0 +; STREAMING-COMPAT-NEXT: mov x0, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x1, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x2, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x3, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x4, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x5, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x6, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x7, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x8, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x18, #0 // =0x0 +; STREAMING-COMPAT-NEXT: fmov d1, xzr +; STREAMING-COMPAT-NEXT: fmov d2, xzr +; STREAMING-COMPAT-NEXT: fmov d3, xzr +; STREAMING-COMPAT-NEXT: fmov d4, xzr +; STREAMING-COMPAT-NEXT: fmov d5, xzr +; STREAMING-COMPAT-NEXT: fmov d6, xzr +; STREAMING-COMPAT-NEXT: fmov d7, xzr +; STREAMING-COMPAT-NEXT: ret entry: %conv = fpext float %b to double @@ -550,69 +662,117 @@ define dso_local double @all_float(double noundef %a, float noundef %b) local_un ; DEFAULT-NEXT: movi v31.2d, #0000000000000000 ; DEFAULT-NEXT: ret ; -; SVE-LABEL: all_float: -; SVE: // %bb.0: // %entry -; SVE-NEXT: fcvt d1, s1 -; SVE-NEXT: fmul d0, d1, d0 -; SVE-NEXT: mov x0, #0 // =0x0 -; SVE-NEXT: mov x1, #0 // =0x0 -; SVE-NEXT: mov x2, #0 // =0x0 -; SVE-NEXT: mov x3, #0 // =0x0 -; SVE-NEXT: mov x4, #0 // =0x0 -; SVE-NEXT: mov x5, #0 // =0x0 -; SVE-NEXT: mov x6, #0 // =0x0 -; SVE-NEXT: mov x7, #0 // =0x0 -; SVE-NEXT: mov x8, #0 // =0x0 -; SVE-NEXT: mov x9, #0 // =0x0 -; SVE-NEXT: mov x10, #0 // =0x0 -; SVE-NEXT: mov x11, #0 // =0x0 -; SVE-NEXT: mov x12, #0 // =0x0 -; SVE-NEXT: mov x13, #0 // =0x0 -; SVE-NEXT: mov x14, #0 // =0x0 -; SVE-NEXT: mov x15, #0 // =0x0 -; SVE-NEXT: mov x16, #0 // =0x0 -; SVE-NEXT: mov x17, #0 // =0x0 -; SVE-NEXT: mov x18, #0 // =0x0 -; SVE-NEXT: mov z1.d, #0 // =0x0 -; SVE-NEXT: mov z2.d, #0 // =0x0 -; SVE-NEXT: mov z3.d, #0 // =0x0 -; SVE-NEXT: mov z4.d, #0 // =0x0 -; SVE-NEXT: mov z5.d, #0 // =0x0 -; SVE-NEXT: mov z6.d, #0 // =0x0 -; SVE-NEXT: mov z7.d, #0 // =0x0 -; SVE-NEXT: mov z16.d, #0 // =0x0 -; SVE-NEXT: mov z17.d, #0 // =0x0 -; SVE-NEXT: mov z18.d, #0 // =0x0 -; SVE-NEXT: mov z19.d, #0 // =0x0 -; SVE-NEXT: mov z20.d, #0 // =0x0 -; SVE-NEXT: mov z21.d, #0 // =0x0 -; SVE-NEXT: mov z22.d, #0 // =0x0 -; SVE-NEXT: mov z23.d, #0 // =0x0 -; SVE-NEXT: mov z24.d, #0 // =0x0 -; SVE-NEXT: mov z25.d, #0 // =0x0 -; SVE-NEXT: mov z26.d, #0 // =0x0 -; SVE-NEXT: mov z27.d, #0 // =0x0 -; SVE-NEXT: mov z28.d, #0 // =0x0 -; SVE-NEXT: mov z29.d, #0 // =0x0 -; SVE-NEXT: mov z30.d, #0 // =0x0 -; SVE-NEXT: mov z31.d, #0 // =0x0 -; SVE-NEXT: pfalse p0.b -; SVE-NEXT: pfalse p1.b -; SVE-NEXT: pfalse p2.b -; SVE-NEXT: pfalse p3.b -; SVE-NEXT: pfalse p4.b -; SVE-NEXT: pfalse p5.b -; SVE-NEXT: pfalse p6.b -; SVE-NEXT: pfalse p7.b -; SVE-NEXT: pfalse p8.b -; SVE-NEXT: pfalse p9.b -; SVE-NEXT: pfalse p10.b -; SVE-NEXT: pfalse p11.b -; SVE-NEXT: pfalse p12.b -; SVE-NEXT: pfalse p13.b -; SVE-NEXT: pfalse p14.b -; SVE-NEXT: pfalse p15.b -; SVE-NEXT: ret +; SVE-OR-SME-LABEL: all_float: +; SVE-OR-SME: // %bb.0: // %entry +; SVE-OR-SME-NEXT: fcvt d1, s1 +; SVE-OR-SME-NEXT: fmul d0, d1, d0 +; SVE-OR-SME-NEXT: mov x0, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x1, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x2, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x3, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x4, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x5, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x6, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x7, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x8, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x9, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x10, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x11, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x12, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x13, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x14, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x15, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x16, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x17, #0 // =0x0 +; SVE-OR-SME-NEXT: mov x18, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z1.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z2.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z3.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z4.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z5.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z6.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z7.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z16.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z17.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z18.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z19.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z20.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z21.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z22.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z23.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z24.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z25.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z26.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z27.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z28.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z29.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z30.d, #0 // =0x0 +; SVE-OR-SME-NEXT: mov z31.d, #0 // =0x0 +; SVE-OR-SME-NEXT: pfalse p0.b +; SVE-OR-SME-NEXT: pfalse p1.b +; SVE-OR-SME-NEXT: pfalse p2.b +; SVE-OR-SME-NEXT: pfalse p3.b +; SVE-OR-SME-NEXT: pfalse p4.b +; SVE-OR-SME-NEXT: pfalse p5.b +; SVE-OR-SME-NEXT: pfalse p6.b +; SVE-OR-SME-NEXT: pfalse p7.b +; SVE-OR-SME-NEXT: pfalse p8.b +; SVE-OR-SME-NEXT: pfalse p9.b +; SVE-OR-SME-NEXT: pfalse p10.b +; SVE-OR-SME-NEXT: pfalse p11.b +; SVE-OR-SME-NEXT: pfalse p12.b +; SVE-OR-SME-NEXT: pfalse p13.b +; SVE-OR-SME-NEXT: pfalse p14.b +; SVE-OR-SME-NEXT: pfalse p15.b +; SVE-OR-SME-NEXT: ret +; +; STREAMING-COMPAT-LABEL: all_float: +; STREAMING-COMPAT: // %bb.0: // %entry +; STREAMING-COMPAT-NEXT: fcvt d1, s1 +; STREAMING-COMPAT-NEXT: fmul d0, d1, d0 +; STREAMING-COMPAT-NEXT: mov x0, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x1, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x2, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x3, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x4, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x5, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x6, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x7, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x8, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x9, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x10, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x11, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x12, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x13, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x14, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x15, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x16, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x17, #0 // =0x0 +; STREAMING-COMPAT-NEXT: mov x18, #0 // =0x0 +; STREAMING-COMPAT-NEXT: fmov d1, xzr +; STREAMING-COMPAT-NEXT: fmov d2, xzr +; STREAMING-COMPAT-NEXT: fmov d3, xzr +; STREAMING-COMPAT-NEXT: fmov d4, xzr +; STREAMING-COMPAT-NEXT: fmov d5, xzr +; STREAMING-COMPAT-NEXT: fmov d6, xzr +; STREAMING-COMPAT-NEXT: fmov d7, xzr +; STREAMING-COMPAT-NEXT: fmov d16, xzr +; STREAMING-COMPAT-NEXT: fmov d17, xzr +; STREAMING-COMPAT-NEXT: fmov d18, xzr +; STREAMING-COMPAT-NEXT: fmov d19, xzr +; STREAMING-COMPAT-NEXT: fmov d20, xzr +; STREAMING-COMPAT-NEXT: fmov d21, xzr +; STREAMING-COMPAT-NEXT: fmov d22, xzr +; STREAMING-COMPAT-NEXT: fmov d23, xzr +; STREAMING-COMPAT-NEXT: fmov d24, xzr +; STREAMING-COMPAT-NEXT: fmov d25, xzr +; STREAMING-COMPAT-NEXT: fmov d26, xzr +; STREAMING-COMPAT-NEXT: fmov d27, xzr +; STREAMING-COMPAT-NEXT: fmov d28, xzr +; STREAMING-COMPAT-NEXT: fmov d29, xzr +; STREAMING-COMPAT-NEXT: fmov d30, xzr +; STREAMING-COMPAT-NEXT: fmov d31, xzr +; STREAMING-COMPAT-NEXT: ret entry: %conv = fpext float %b to double diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w32.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w32.mir index b5f91b6b86083..55015c6d13d8a 100644 --- a/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w32.mir +++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w32.mir @@ -30,8 +30,8 @@ body: | ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec - ; GFX11-FAKE16-NEXT: [[V_CMP_F_F16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_F_F16_t16_e64 0, [[V_CVT_F16_F32_fake16_e64_]], 0, [[V_CVT_F16_F32_fake16_e64_1]], 0, implicit $mode, implicit $exec - ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_F_F16_t16_e64_]] + ; GFX11-FAKE16-NEXT: [[V_CMP_F_F16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_F_F16_fake16_e64 0, [[V_CVT_F16_F32_fake16_e64_]], 0, [[V_CVT_F16_F32_fake16_e64_1]], 0, implicit $mode, implicit $exec + ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_F_F16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_FPTRUNC %0 @@ -68,8 +68,8 @@ body: | ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec - ; GFX11-FAKE16-NEXT: [[V_CMP_TRU_F16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_TRU_F16_t16_e64 0, [[V_CVT_F16_F32_fake16_e64_]], 0, [[V_CVT_F16_F32_fake16_e64_1]], 0, implicit $mode, implicit $exec - ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_TRU_F16_t16_e64_]] + ; GFX11-FAKE16-NEXT: [[V_CMP_TRU_F16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_TRU_F16_fake16_e64 0, [[V_CVT_F16_F32_fake16_e64_]], 0, [[V_CVT_F16_F32_fake16_e64_1]], 0, implicit $mode, implicit $exec + ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_TRU_F16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_FPTRUNC %0 diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w64.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w64.mir index a67a0b6455fac..4241f945a87d5 100644 --- a/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w64.mir +++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.fcmp.constants.w64.mir @@ -30,8 +30,8 @@ body: | ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec - ; GFX11-FAKE16-NEXT: [[V_CMP_F_F16_t16_e64_:%[0-9]+]]:sreg_64 = V_CMP_F_F16_t16_e64 0, [[V_CVT_F16_F32_fake16_e64_]], 0, [[V_CVT_F16_F32_fake16_e64_1]], 0, implicit $mode, implicit $exec - ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_F_F16_t16_e64_]] + ; GFX11-FAKE16-NEXT: [[V_CMP_F_F16_fake16_e64_:%[0-9]+]]:sreg_64 = V_CMP_F_F16_fake16_e64 0, [[V_CVT_F16_F32_fake16_e64_]], 0, [[V_CVT_F16_F32_fake16_e64_1]], 0, implicit $mode, implicit $exec + ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_F_F16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_FPTRUNC %0 @@ -68,8 +68,8 @@ body: | ; GFX11-FAKE16-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec ; GFX11-FAKE16-NEXT: [[V_CVT_F16_F32_fake16_e64_1:%[0-9]+]]:vgpr_32 = nofpexcept V_CVT_F16_F32_fake16_e64 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec - ; GFX11-FAKE16-NEXT: [[V_CMP_TRU_F16_t16_e64_:%[0-9]+]]:sreg_64 = V_CMP_TRU_F16_t16_e64 0, [[V_CVT_F16_F32_fake16_e64_]], 0, [[V_CVT_F16_F32_fake16_e64_1]], 0, implicit $mode, implicit $exec - ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_TRU_F16_t16_e64_]] + ; GFX11-FAKE16-NEXT: [[V_CMP_TRU_F16_fake16_e64_:%[0-9]+]]:sreg_64 = V_CMP_TRU_F16_fake16_e64 0, [[V_CVT_F16_F32_fake16_e64_]], 0, [[V_CVT_F16_F32_fake16_e64_1]], 0, implicit $mode, implicit $exec + ; GFX11-FAKE16-NEXT: S_ENDPGM 0, implicit [[V_CMP_TRU_F16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_FPTRUNC %0 diff --git a/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-icmp.s16.mir b/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-icmp.s16.mir index e994f42e0d60d..d45bc31a12729 100644 --- a/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-icmp.s16.mir +++ b/llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-icmp.s16.mir @@ -20,6 +20,7 @@ body: | ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 ; WAVE64-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]] + ; ; WAVE32-LABEL: name: icmp_eq_s16_sv ; WAVE32: liveins: $sgpr0, $vgpr0 ; WAVE32-NEXT: {{ $}} @@ -27,13 +28,14 @@ body: | ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 ; WAVE32-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]] + ; ; GFX11-LABEL: name: icmp_eq_s16_sv ; GFX11: liveins: $sgpr0, $vgpr0 ; GFX11-NEXT: {{ $}} ; GFX11-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0 - ; GFX11-NEXT: [[V_CMP_EQ_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_t16_e64 [[COPY]], [[COPY1]], implicit $exec - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_t16_e64_]] + ; GFX11-NEXT: [[V_CMP_EQ_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec + ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_fake16_e64_]] %0:sgpr(s32) = COPY $sgpr0 %1:vgpr(s32) = COPY $vgpr0 %2:sgpr(s16) = G_TRUNC %0 @@ -59,6 +61,7 @@ body: | ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 ; WAVE64-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]] + ; ; WAVE32-LABEL: name: icmp_eq_s16_vs ; WAVE32: liveins: $sgpr0, $vgpr0 ; WAVE32-NEXT: {{ $}} @@ -66,13 +69,14 @@ body: | ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 ; WAVE32-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]] + ; ; GFX11-LABEL: name: icmp_eq_s16_vs ; GFX11: liveins: $sgpr0, $vgpr0 ; GFX11-NEXT: {{ $}} ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0 - ; GFX11-NEXT: [[V_CMP_EQ_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_t16_e64 [[COPY]], [[COPY1]], implicit $exec - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_t16_e64_]] + ; GFX11-NEXT: [[V_CMP_EQ_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec + ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:sgpr(s32) = COPY $sgpr0 %2:vgpr(s16) = G_TRUNC %0 @@ -98,6 +102,7 @@ body: | ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE64-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]] + ; ; WAVE32-LABEL: name: icmp_eq_s16_vv ; WAVE32: liveins: $vgpr0, $vgpr1 ; WAVE32-NEXT: {{ $}} @@ -105,13 +110,14 @@ body: | ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE32-NEXT: [[V_CMP_EQ_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_e64_]] + ; ; GFX11-LABEL: name: icmp_eq_s16_vv ; GFX11: liveins: $vgpr0, $vgpr1 ; GFX11-NEXT: {{ $}} ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 - ; GFX11-NEXT: [[V_CMP_EQ_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_t16_e64 [[COPY]], [[COPY1]], implicit $exec - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_t16_e64_]] + ; GFX11-NEXT: [[V_CMP_EQ_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec + ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_U16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_TRUNC %0 @@ -137,6 +143,7 @@ body: | ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE64-NEXT: [[V_CMP_NE_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_NE_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_e64_]] + ; ; WAVE32-LABEL: name: icmp_ne_s16_vv ; WAVE32: liveins: $vgpr0, $vgpr1 ; WAVE32-NEXT: {{ $}} @@ -144,13 +151,14 @@ body: | ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE32-NEXT: [[V_CMP_NE_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_NE_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_e64_]] + ; ; GFX11-LABEL: name: icmp_ne_s16_vv ; GFX11: liveins: $vgpr0, $vgpr1 ; GFX11-NEXT: {{ $}} ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 - ; GFX11-NEXT: [[V_CMP_NE_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_NE_U16_t16_e64 [[COPY]], [[COPY1]], implicit $exec - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_t16_e64_]] + ; GFX11-NEXT: [[V_CMP_NE_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_NE_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec + ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NE_U16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_TRUNC %0 @@ -176,6 +184,7 @@ body: | ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE64-NEXT: [[V_CMP_LT_I16_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_I16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_e64_]] + ; ; WAVE32-LABEL: name: icmp_slt_s16_vv ; WAVE32: liveins: $vgpr0, $vgpr1 ; WAVE32-NEXT: {{ $}} @@ -183,13 +192,14 @@ body: | ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE32-NEXT: [[V_CMP_LT_I16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_I16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_e64_]] + ; ; GFX11-LABEL: name: icmp_slt_s16_vv ; GFX11: liveins: $vgpr0, $vgpr1 ; GFX11-NEXT: {{ $}} ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 - ; GFX11-NEXT: [[V_CMP_LT_I16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_I16_t16_e64 [[COPY]], [[COPY1]], implicit $exec - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_t16_e64_]] + ; GFX11-NEXT: [[V_CMP_LT_I16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_I16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec + ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_I16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_TRUNC %0 @@ -215,6 +225,7 @@ body: | ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE64-NEXT: [[V_CMP_LE_I16_e64_:%[0-9]+]]:sreg_64 = V_CMP_LE_I16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_e64_]] + ; ; WAVE32-LABEL: name: icmp_sle_s16_vv ; WAVE32: liveins: $vgpr0, $vgpr1 ; WAVE32-NEXT: {{ $}} @@ -222,13 +233,14 @@ body: | ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE32-NEXT: [[V_CMP_LE_I16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_I16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_e64_]] + ; ; GFX11-LABEL: name: icmp_sle_s16_vv ; GFX11: liveins: $vgpr0, $vgpr1 ; GFX11-NEXT: {{ $}} ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 - ; GFX11-NEXT: [[V_CMP_LE_I16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_I16_t16_e64 [[COPY]], [[COPY1]], implicit $exec - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_t16_e64_]] + ; GFX11-NEXT: [[V_CMP_LE_I16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_I16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec + ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_I16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_TRUNC %0 @@ -254,6 +266,7 @@ body: | ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE64-NEXT: [[V_CMP_LT_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_LT_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_e64_]] + ; ; WAVE32-LABEL: name: icmp_ult_s16_vv ; WAVE32: liveins: $vgpr0, $vgpr1 ; WAVE32-NEXT: {{ $}} @@ -261,13 +274,14 @@ body: | ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE32-NEXT: [[V_CMP_LT_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_e64_]] + ; ; GFX11-LABEL: name: icmp_ult_s16_vv ; GFX11: liveins: $vgpr0, $vgpr1 ; GFX11-NEXT: {{ $}} ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 - ; GFX11-NEXT: [[V_CMP_LT_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_U16_t16_e64 [[COPY]], [[COPY1]], implicit $exec - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_t16_e64_]] + ; GFX11-NEXT: [[V_CMP_LT_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LT_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec + ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_U16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_TRUNC %0 @@ -293,6 +307,7 @@ body: | ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE64-NEXT: [[V_CMP_LE_U16_e64_:%[0-9]+]]:sreg_64 = V_CMP_LE_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_e64_]] + ; ; WAVE32-LABEL: name: icmp_ule_s16_vv ; WAVE32: liveins: $vgpr0, $vgpr1 ; WAVE32-NEXT: {{ $}} @@ -300,13 +315,14 @@ body: | ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 ; WAVE32-NEXT: [[V_CMP_LE_U16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_U16_e64 [[COPY]], [[COPY1]], implicit $exec ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_e64_]] + ; ; GFX11-LABEL: name: icmp_ule_s16_vv ; GFX11: liveins: $vgpr0, $vgpr1 ; GFX11-NEXT: {{ $}} ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 - ; GFX11-NEXT: [[V_CMP_LE_U16_t16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_U16_t16_e64 [[COPY]], [[COPY1]], implicit $exec - ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_t16_e64_]] + ; GFX11-NEXT: [[V_CMP_LE_U16_fake16_e64_:%[0-9]+]]:sreg_32 = V_CMP_LE_U16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec + ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_U16_fake16_e64_]] %0:vgpr(s32) = COPY $vgpr0 %1:vgpr(s32) = COPY $vgpr1 %2:vgpr(s16) = G_TRUNC %0 diff --git a/llvm/test/CodeGen/AMDGPU/amdgpu-libcall-sincos-pass-ordering.ll b/llvm/test/CodeGen/AMDGPU/amdgpu-libcall-sincos-pass-ordering.ll index 6b835bb4eef66..317a069eed26e 100644 --- a/llvm/test/CodeGen/AMDGPU/amdgpu-libcall-sincos-pass-ordering.ll +++ b/llvm/test/CodeGen/AMDGPU/amdgpu-libcall-sincos-pass-ordering.ll @@ -10,7 +10,7 @@ ; Should have call to sincos declarations, not calls to the asm pseudo-libcalls define protected amdgpu_kernel void @swdev456865(ptr addrspace(1) %out0, ptr addrspace(1) %out1, ptr addrspace(1) %out2, float noundef %x) #0 { ; CHECK-LABEL: define protected amdgpu_kernel void @swdev456865( -; CHECK-SAME: ptr addrspace(1) nocapture writeonly [[OUT0:%.*]], ptr addrspace(1) nocapture writeonly [[OUT1:%.*]], ptr addrspace(1) nocapture writeonly [[OUT2:%.*]], float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { +; CHECK-SAME: ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[OUT0:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[OUT1:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[OUT2:%.*]], float noundef [[X:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[I_I:%.*]] = call float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]) #[[ATTR1:[0-9]+]] diff --git a/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.ll b/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.ll index 1358d91ae102c..07587eaacd703 100644 --- a/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.ll +++ b/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-sincos.ll @@ -49,7 +49,7 @@ declare float @_Z6sincosfPU3AS0f(float %x, ptr writeonly %ptr) #1 define void @sincos_f16_nocontract(half %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f16_nocontract -; CHECK-SAME: (half [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2:[0-9]+]] { +; CHECK-SAME: (half [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 2)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 2)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2:[0-9]+]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call half @_Z3sinDh(half [[X]]) ; CHECK-NEXT: store half [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 2 @@ -68,7 +68,7 @@ entry: define void @sincos_v2f16_nocontract(<2 x half> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v2f16_nocontract -; CHECK-SAME: (<2 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (<2 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call <2 x half> @_Z3sinDv2_Dh(<2 x half> [[X]]) ; CHECK-NEXT: store <2 x half> [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 4 @@ -87,7 +87,7 @@ entry: define void @sincos_f16(half %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f16 -; CHECK-SAME: (half [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (half [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 2)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 2)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract half @_Z3sinDh(half [[X]]) ; CHECK-NEXT: store half [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 2 @@ -105,7 +105,7 @@ entry: define void @sincos_f16_order1(half %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f16_order1 -; CHECK-SAME: (half [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (half [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 2)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 2)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL1:%.*]] = tail call contract half @_Z3cosDh(half [[X]]) ; CHECK-NEXT: store half [[CALL1]], ptr addrspace(1) [[COS_OUT]], align 2 @@ -123,7 +123,7 @@ entry: define void @sincos_v2f16(<2 x half> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v2f16 -; CHECK-SAME: (<2 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (<2 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract <2 x half> @_Z3sinDv2_Dh(<2 x half> [[X]]) ; CHECK-NEXT: store <2 x half> [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 4 @@ -141,7 +141,7 @@ entry: define void @sincos_v3f16(<3 x half> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v3f16 -; CHECK-SAME: (<3 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (<3 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract <3 x half> @_Z3sinDv3_Dh(<3 x half> [[X]]) ; CHECK-NEXT: [[EXTRACTVEC2:%.*]] = shufflevector <3 x half> [[CALL]], <3 x half> poison, <4 x i32> @@ -164,7 +164,7 @@ entry: define void @sincos_v4f16(<4 x half> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v4f16 -; CHECK-SAME: (<4 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (<4 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract <4 x half> @_Z3sinDv4_Dh(<4 x half> [[X]]) ; CHECK-NEXT: store <4 x half> [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 8 @@ -182,7 +182,7 @@ entry: define void @sincos_v8f16(<8 x half> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v8f16 -; CHECK-SAME: (<8 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (<8 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract <8 x half> @_Z3sinDv8_Dh(<8 x half> [[X]]) ; CHECK-NEXT: store <8 x half> [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 16 @@ -201,7 +201,7 @@ entry: define void @sincos_v16f16(<16 x half> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v16f16 -; CHECK-SAME: (<16 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (<16 x half> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 32)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 32)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract <16 x half> @_Z3sinDv16_Dh(<16 x half> [[X]]) ; CHECK-NEXT: store <16 x half> [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 32 @@ -220,7 +220,7 @@ entry: define void @sincos_f32_nocontract(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_nocontract -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3:[0-9]+]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3:[0-9]+]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -240,7 +240,7 @@ entry: define void @sincos_v2f32_nocontract(<2 x float> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v2f32_nocontract -; CHECK-SAME: (<2 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4:[0-9]+]] { +; CHECK-SAME: (<2 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4:[0-9]+]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <2 x float>, align 8, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call <2 x float> @_Z6sincosDv2_fPU3AS5S_(<2 x float> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -260,7 +260,7 @@ entry: define void @sincos_f32(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -279,7 +279,7 @@ entry: define void @sincos_f32_order1(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_order1 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -298,7 +298,7 @@ entry: define void @sincos_v2f32(<2 x float> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v2f32 -; CHECK-SAME: (<2 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<2 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <2 x float>, align 8, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <2 x float> @_Z6sincosDv2_fPU3AS5S_(<2 x float> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -317,7 +317,7 @@ entry: define void @sincos_v3f32(<3 x float> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v3f32 -; CHECK-SAME: (<3 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<3 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <3 x float>, align 16, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <3 x float> @_Z6sincosDv3_fPU3AS5S_(<3 x float> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -340,7 +340,7 @@ entry: define void @sincos_v4f32(<4 x float> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v4f32 -; CHECK-SAME: (<4 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<4 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <4 x float>, align 16, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <4 x float> @_Z6sincosDv4_fPU3AS5S_(<4 x float> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -359,7 +359,7 @@ entry: define void @sincos_v8f32(<8 x float> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v8f32 -; CHECK-SAME: (<8 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<8 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 32)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 32)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <8 x float>, align 32, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <8 x float> @_Z6sincosDv8_fPU3AS5S_(<8 x float> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -378,7 +378,7 @@ entry: define void @sincos_v16f32(<16 x float> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v16f32 -; CHECK-SAME: (<16 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<16 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 64)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 64)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <16 x float>, align 64, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <16 x float> @_Z6sincosDv16_fPU3AS5S_(<16 x float> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -397,7 +397,7 @@ entry: define void @sincos_f64_nocontract(double %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f64_nocontract -; CHECK-SAME: (double [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (double [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca double, align 8, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call double @_Z6sincosdPU3AS5d(double [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -417,7 +417,7 @@ entry: define void @sincos_v2f64_nocontract(<2 x double> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v2f64_nocontract -; CHECK-SAME: (<2 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<2 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <2 x double>, align 16, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call <2 x double> @_Z6sincosDv2_dPU3AS5S_(<2 x double> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -436,7 +436,7 @@ entry: define void @sincos_f64(double %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f64 -; CHECK-SAME: (double [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (double [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca double, align 8, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract double @_Z6sincosdPU3AS5d(double [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -455,7 +455,7 @@ entry: define void @sincos_f64_order1(double %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f64_order1 -; CHECK-SAME: (double [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (double [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca double, align 8, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract double @_Z6sincosdPU3AS5d(double [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -474,7 +474,7 @@ entry: define void @sincos_v2f64(<2 x double> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v2f64 -; CHECK-SAME: (<2 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<2 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 16)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <2 x double>, align 16, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <2 x double> @_Z6sincosDv2_dPU3AS5S_(<2 x double> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -493,7 +493,7 @@ entry: define void @sincos_v3f64(<3 x double> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v3f64 -; CHECK-SAME: (<3 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<3 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 32)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 32)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <3 x double>, align 32, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <3 x double> @_Z6sincosDv3_dPU3AS5S_(<3 x double> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -516,7 +516,7 @@ entry: define void @sincos_v4f64(<4 x double> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v4f64 -; CHECK-SAME: (<4 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<4 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 32)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 32)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <4 x double>, align 32, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <4 x double> @_Z6sincosDv4_dPU3AS5S_(<4 x double> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -535,7 +535,7 @@ entry: define void @sincos_v8f64(<8 x double> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v8f64 -; CHECK-SAME: (<8 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<8 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 64)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 64)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <8 x double>, align 64, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <8 x double> @_Z6sincosDv8_dPU3AS5S_(<8 x double> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -554,7 +554,7 @@ entry: define void @sincos_v16f64(<16 x double> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v16f64 -; CHECK-SAME: (<16 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<16 x double> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 128)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 128)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <16 x double>, align 128, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract <16 x double> @_Z6sincosDv16_dPU3AS5S_(<16 x double> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -607,7 +607,7 @@ bb1: ; The sin and cos are in different blocks but always execute define void @sincos_f32_different_blocks_dominating_always_execute(i1 %cond, float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out, ptr addrspace(1) %other) { ; CHECK-LABEL: define void @sincos_f32_different_blocks_dominating_always_execute -; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[OTHER:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[OTHER:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -639,7 +639,7 @@ bb1: ; sin dominates cos but cos doesn't always execute. define void @sincos_f32_different_blocks_dominating_conditional_execute(i1 %cond, float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out, ptr addrspace(1) %other) { ; CHECK-LABEL: define void @sincos_f32_different_blocks_dominating_conditional_execute -; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]], ptr addrspace(1) nocapture readnone [[OTHER:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]], ptr addrspace(1) nocapture readnone [[OTHER:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -685,7 +685,7 @@ declare void @func(ptr addrspace(1)) define void @sincos_f32_value_is_instr(ptr addrspace(1) %value.ptr, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_value_is_instr -; CHECK-SAME: (ptr addrspace(1) [[VALUE_PTR:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (ptr addrspace(1) [[VALUE_PTR:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: tail call void @func(ptr addrspace(1) [[VALUE_PTR]]) @@ -708,7 +708,7 @@ entry: define void @sincos_f32_value_is_same_constexpr(ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_value_is_same_constexpr -; CHECK-SAME: (ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float bitcast (i32 ptrtoint (ptr @func to i32) to float), ptr addrspace(5) [[__SINCOS_]]) @@ -727,7 +727,7 @@ entry: define void @sincos_f32_value_is_different_constexpr(ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_value_is_different_constexpr -; CHECK-SAME: (ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) #[[ATTR2]] { +; CHECK-SAME: (ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract float @_Z3sinf(float bitcast (i32 ptrtoint (ptr @func to i32) to float)) ; CHECK-NEXT: store float [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 4 @@ -745,7 +745,7 @@ entry: define void @sincos_f32_value_is_same_constantfp(ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_value_is_same_constantfp -; CHECK-SAME: (ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float 4.200000e+01, ptr addrspace(5) [[__SINCOS_]]) @@ -764,7 +764,7 @@ entry: define void @sincos_f32_value_is_different_constantfp(ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_value_is_different_constantfp -; CHECK-SAME: (ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract float @_Z3sinf(float 4.200000e+01) ; CHECK-NEXT: store float [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 4 @@ -782,7 +782,7 @@ entry: define void @sincos_f32_different_args(float %x, float %y, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_different_args -; CHECK-SAME: (float [[X:%.*]], float [[Y:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { +; CHECK-SAME: (float [[X:%.*]], float [[Y:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR2]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract float @_Z3sinf(float [[X]]) ; CHECK-NEXT: store float [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 4 @@ -800,7 +800,7 @@ entry: define void @sincos_f32_flag_intersect0(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_flag_intersect0 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -819,7 +819,7 @@ entry: define void @sincos_f32_flag_intersect1(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_flag_intersect1 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call nnan contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -838,7 +838,7 @@ entry: define void @sincos_v2f32_flag_intersect1(<2 x float> %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_v2f32_flag_intersect1 -; CHECK-SAME: (<2 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (<2 x float> [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 8)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca <2 x float>, align 8, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call nnan contract <2 x float> @_Z6sincosDv2_fPU3AS5S_(<2 x float> [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -947,7 +947,7 @@ entry: define void @sin_f32_indirect_call_user(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out, ptr %func.ptr) { ; CHECK-LABEL: define void @sin_f32_indirect_call_user -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]], ptr nocapture readonly [[FUNC_PTR:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]], ptr nocapture readonly [[FUNC_PTR:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract float @_Z3sinf(float [[X]]) ; CHECK-NEXT: store float [[CALL]], ptr addrspace(1) [[SIN_OUT]], align 4 @@ -965,7 +965,7 @@ entry: define void @cos_f32_indirect_call_user(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out, ptr %func.ptr) { ; CHECK-LABEL: define void @cos_f32_indirect_call_user -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]], ptr nocapture readonly [[FUNC_PTR:%.*]]) local_unnamed_addr #[[ATTR4]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]], ptr nocapture readonly [[FUNC_PTR:%.*]]) local_unnamed_addr #[[ATTR4]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CALL:%.*]] = tail call contract float @_Z3cosf(float [[X]]) ; CHECK-NEXT: store float [[CALL]], ptr addrspace(1) [[COS_OUT]], align 4 @@ -983,7 +983,7 @@ entry: define void @sincos_f32_preserve_fpmath_0(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_preserve_fpmath_0 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]), !fpmath [[META5:![0-9]+]] @@ -1002,7 +1002,7 @@ entry: define void @sincos_f32_preserve_fpmath_1(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_preserve_fpmath_1 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]), !fpmath [[META6:![0-9]+]] @@ -1022,7 +1022,7 @@ entry: ; Should drop the metadata define void @sincos_f32_drop_fpmath(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) { ; CHECK-LABEL: define void @sincos_f32_drop_fpmath -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]) @@ -1041,7 +1041,7 @@ entry: define void @sincos_f32_debuginfo(float %x, ptr addrspace(1) nocapture writeonly %sin_out, ptr addrspace(1) nocapture writeonly %cos_out) !dbg !15 { ; CHECK-LABEL: define void @sincos_f32_debuginfo -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] !dbg [[DBG7:![0-9]+]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] !dbg [[DBG7:![0-9]+]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5), !dbg [[DBG14:![0-9]+]] ; CHECK-NEXT: [[TMP0:%.*]] = call contract float @_Z6sincosfPU3AS5f(float [[X]], ptr addrspace(5) [[__SINCOS_]]), !dbg [[DBG14]] @@ -1064,7 +1064,7 @@ entry: define float @sin_sincos_private_f32(float %x, ptr addrspace(1) %sin_out, ptr addrspace(1) %cos_out) { ; CHECK-LABEL: define float @sin_sincos_private_f32 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[COS_TMP:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[SIN0:%.*]] = tail call nnan ninf nsz contract float @_Z3sinf(float [[X]]), !fpmath [[META5]] @@ -1086,7 +1086,7 @@ entry: define float @sin_sincos_generic_f32(float %x, ptr addrspace(1) %sin_out, ptr addrspace(1) %cos_out) { ; CHECK-LABEL: define float @sin_sincos_generic_f32 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[COS_TMP:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[SIN0:%.*]] = tail call nsz contract float @_Z3sinf(float [[X]]), !fpmath [[META5]] @@ -1110,7 +1110,7 @@ entry: define float @cos_sincos_private_f32(float %x, ptr addrspace(1) %sin_out, ptr addrspace(1) %cos_out) { ; CHECK-LABEL: define float @cos_sincos_private_f32 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[COS_TMP:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[COS0:%.*]] = tail call contract float @_Z3cosf(float [[X]]) @@ -1132,7 +1132,7 @@ entry: define float @cos_sincos_generic_f32(float %x, ptr addrspace(1) %sin_out, ptr addrspace(1) %cos_out) { ; CHECK-LABEL: define float @cos_sincos_generic_f32 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[COS_TMP:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[COS0:%.*]] = tail call contract float @_Z3cosf(float [[X]]) @@ -1156,7 +1156,7 @@ entry: define float @sincos_private_f32_x2(float %x, ptr addrspace(1) %sin_out, ptr addrspace(1) %cos_out) { ; CHECK-LABEL: define float @sincos_private_f32_x2 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[COS_TMP0:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[COS_TMP1:%.*]] = alloca float, align 4, addrspace(5) @@ -1184,7 +1184,7 @@ entry: define float @sincos_generic_f32_x2(float %x, ptr addrspace(1) %sin_out, ptr addrspace(1) %cos_out) { ; CHECK-LABEL: define float @sincos_generic_f32_x2 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[COS_TMP0:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[COS_TMP1:%.*]] = alloca float, align 4, addrspace(5) @@ -1213,7 +1213,7 @@ entry: define float @sincos_generic_private_f32(float %x, ptr addrspace(1) %sin_out, ptr addrspace(1) %cos_out) { ; CHECK-LABEL: define float @sincos_generic_private_f32 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture readnone [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[COS_TMP0:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[COS_TMP1:%.*]] = alloca float, align 4, addrspace(5) @@ -1240,7 +1240,7 @@ entry: define float @sincos_mixed_sin_cos_generic_private_f32(float %x, ptr addrspace(1) %sin_out, ptr addrspace(1) %cos_out) { ; CHECK-LABEL: define float @sincos_mixed_sin_cos_generic_private_f32 -; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { +; CHECK-SAME: (float [[X:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[SIN_OUT:%.*]], ptr addrspace(1) nocapture writeonly initializes((0, 4)) [[COS_OUT:%.*]]) local_unnamed_addr #[[ATTR3]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[COS_TMP0:%.*]] = alloca float, align 4, addrspace(5) ; CHECK-NEXT: [[__SINCOS_:%.*]] = alloca float, align 4, addrspace(5) diff --git a/llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll b/llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll new file mode 100644 index 0000000000000..cce0fb7e003c5 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/dagcombine-fmul-sel.ll @@ -0,0 +1,2719 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +;RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx700 < %s | FileCheck -check-prefix=GFX7 %s +;RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 < %s | FileCheck -check-prefix=GFX9 %s +;RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 < %s | FileCheck -check-prefix=GFX1030 %s +;RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1100 < %s | FileCheck -check-prefix=GFX1100 %s + +define float @fmul_select_f32_test1(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test1: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, 1.0, 2.0, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test1: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e64 v1, 1.0, 2.0, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test1: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e64 v1, 1.0, 2.0, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test1: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: v_cndmask_b32_e64 v1, 1.0, 2.0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float 2.000000e+00, float 1.000000e+00 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define float @fmul_select_f32_test2(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test2: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, 1.0, 0.5, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test2: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e64 v1, 1.0, 0.5, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test2: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e64 v1, 1.0, 0.5, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test2: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: v_cndmask_b32_e64 v1, 1.0, 0.5, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float 5.000000e-01, float 1.000000e+00 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define <2 x float> @fmul_select_v2f32_test3(<2 x float> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2f32_test3: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v3, v5 +; GFX7-NEXT: v_cndmask_b32_e64 v3, 1.0, 2.0, vcc +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX7-NEXT: v_cndmask_b32_e64 v2, 1.0, 2.0, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX7-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2f32_test3: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v3, v5 +; GFX9-NEXT: v_cndmask_b32_e64 v3, 1.0, 2.0, vcc +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX9-NEXT: v_cndmask_b32_e64 v2, 1.0, 2.0, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX9-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2f32_test3: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1030-NEXT: v_cndmask_b32_e64 v2, 1.0, 2.0, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v3, v5 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX1030-NEXT: v_cndmask_b32_e64 v3, 1.0, 2.0, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2f32_test3: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1100-NEXT: v_cndmask_b32_e64 v2, 1.0, 2.0, vcc_lo +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v3, v5 +; GFX1100-NEXT: v_cndmask_b32_e64 v3, 1.0, 2.0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_dual_mul_f32 v0, v0, v2 :: v_dual_mul_f32 v1, v1, v3 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x float> , <2 x float> + %ldexp = fmul <2 x float> %x, %y + ret <2 x float> %ldexp +} + +define <2 x float> @fmul_select_v2f32_test4(<2 x float> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2f32_test4: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v3, v5 +; GFX7-NEXT: v_cndmask_b32_e64 v3, 1.0, 0.5, vcc +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX7-NEXT: v_cndmask_b32_e64 v2, 1.0, 0.5, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX7-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2f32_test4: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v3, v5 +; GFX9-NEXT: v_cndmask_b32_e64 v3, 1.0, 0.5, vcc +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX9-NEXT: v_cndmask_b32_e64 v2, 1.0, 0.5, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX9-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2f32_test4: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1030-NEXT: v_cndmask_b32_e64 v2, 1.0, 0.5, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v3, v5 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX1030-NEXT: v_cndmask_b32_e64 v3, 1.0, 0.5, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2f32_test4: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1100-NEXT: v_cndmask_b32_e64 v2, 1.0, 0.5, vcc_lo +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v3, v5 +; GFX1100-NEXT: v_cndmask_b32_e64 v3, 1.0, 0.5, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_dual_mul_f32 v0, v0, v2 :: v_dual_mul_f32 v1, v1, v3 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x float> , <2 x float> + %ldexp = fmul <2 x float> %x, %y + ret <2 x float> %ldexp +} + +define float @fmul_select_f32_test5(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test5: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, -1.0, -2.0, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test5: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e64 v1, -1.0, -2.0, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test5: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e64 v1, -1.0, -2.0, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test5: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: v_cndmask_b32_e64 v1, -1.0, -2.0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float -2.000000e+00, float -1.000000e+00 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define float @fmul_select_f32_test6(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test6: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v3, 0x41000000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0xc0400000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test6: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x41000000 +; GFX9-NEXT: v_mov_b32_e32 v4, 0xc0400000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test6: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0xc0400000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x41000000, v3, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test6: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0xc0400000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x41000000, v3, vcc_lo +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float -3.000000e+00, float 8.000000e+00 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define float @fmul_select_f32_test7_sel_log2val_pos59_pos92(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test7_sel_log2val_pos59_pos92: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v3, 0x6d800000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0x5d000000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test7_sel_log2val_pos59_pos92: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x6d800000 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x5d000000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test7_sel_log2val_pos59_pos92: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x5d000000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x6d800000, v3, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test7_sel_log2val_pos59_pos92: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0x5d000000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x6d800000, v3, vcc_lo +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float 0x43A0000000000000, float 0x45B0000000000000 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define float @fmul_select_f32_test8(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test8: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v3, 0xc1000000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0x41800000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test8: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0xc1000000 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x41800000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test8: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x41800000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0xc1000000, v3, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test8: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0x41800000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0xc1000000, v3, vcc_lo +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float 1.600000e+01, float -8.000000e+00 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define float @fmul_select_f32_test9(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test9: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, 2.0, 0, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test9: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e64 v1, 2.0, 0, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test9: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e64 v1, 2.0, 0, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test9: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: v_cndmask_b32_e64 v1, 2.0, 0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float 0.000000e+00, float 2.000000e+00 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define float @fmul_select_f32_test10(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test10: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_bfrev_b32_e32 v3, 1 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, 0, v3, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test10: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_bfrev_b32_e32 v3, 1 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, 0, v3, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test10: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e64 v1, 0, 0x80000000, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test10: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: v_cndmask_b32_e64 v1, 0, 0x80000000, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float -0.000000e+00, float 0.000000e+00 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define float @fmul_select_f32_test11_sel_log2val_pos78_pos56(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test11_sel_log2val_pos78_pos56: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v3, 0xdb800000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0xe6800000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test11_sel_log2val_pos78_pos56: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0xdb800000 +; GFX9-NEXT: v_mov_b32_e32 v4, 0xe6800000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test11_sel_log2val_pos78_pos56: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0xe6800000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0xdb800000, v3, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test11_sel_log2val_pos78_pos56: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0xe6800000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0xdb800000, v3, vcc_lo +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float 0xC4D0000000000000, float 0xC370000000000000 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define float @fmul_select_f32_test12_sel_log2val_neg48_pos68(float %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f32_test12_sel_log2val_neg48_pos68: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v3, 0x61800000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0x27800000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f32_test12_sel_log2val_neg48_pos68: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x61800000 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x27800000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f32_test12_sel_log2val_neg48_pos68: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x27800000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x61800000, v3, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f32_test12_sel_log2val_neg48_pos68: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0x27800000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x61800000, v3, vcc_lo +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, float 0x3CF0000000000000, float 0x4430000000000000 + %ldexp = fmul float %x, %y + ret float %ldexp +} + +define double @fmul_select_f64_test1(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test1: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v4, 0x3ff00000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e64 v3, v4, 2.0, vcc +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test1: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v4, 0x3ff00000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e64 v3, v4, 2.0, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test1: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e64 v5, 0x3ff00000, 2.0, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test1: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: v_mov_b32_e32 v4, 0 +; GFX1100-NEXT: v_cndmask_b32_e64 v5, 0x3ff00000, 2.0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double 2.000000e+00, double 1.000000e+00 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define double @fmul_select_f64_test2(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test2: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v4, 0x3ff00000 +; GFX7-NEXT: v_mov_b32_e32 v5, 0x3fe00000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test2: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v4, 0x3ff00000 +; GFX9-NEXT: v_mov_b32_e32 v5, 0x3fe00000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test2: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v5, 0x3fe00000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e32 v5, 0x3ff00000, v5, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test2: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v5, 0x3fe00000 :: v_dual_mov_b32 v4, 0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v5, 0x3ff00000, v5, vcc_lo +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double 5.000000e-01, double 1.000000e+00 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define <2 x double> @fmul_select_v2f64_test3(<2 x double> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2f64_test3: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v11, 0x3ff00000 +; GFX7-NEXT: v_mov_b32_e32 v8, 0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v4, v6 +; GFX7-NEXT: v_cndmask_b32_e64 v10, v11, 2.0, vcc +; GFX7-NEXT: v_mov_b32_e32 v9, v8 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v5, v7 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[9:10] +; GFX7-NEXT: v_cndmask_b32_e64 v9, v11, 2.0, vcc +; GFX7-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2f64_test3: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v11, 0x3ff00000 +; GFX9-NEXT: v_mov_b32_e32 v8, 0 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v4, v6 +; GFX9-NEXT: v_cndmask_b32_e64 v10, v11, 2.0, vcc +; GFX9-NEXT: v_mov_b32_e32 v9, v8 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v5, v7 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[9:10] +; GFX9-NEXT: v_cndmask_b32_e64 v9, v11, 2.0, vcc +; GFX9-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2f64_test3: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v4, v6 +; GFX1030-NEXT: v_mov_b32_e32 v8, 0 +; GFX1030-NEXT: v_cndmask_b32_e64 v11, 0x3ff00000, 2.0, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v5, v7 +; GFX1030-NEXT: v_mov_b32_e32 v10, v8 +; GFX1030-NEXT: v_cndmask_b32_e64 v9, 0x3ff00000, 2.0, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[10:11] +; GFX1030-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2f64_test3: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v4, v6 +; GFX1100-NEXT: v_mov_b32_e32 v8, 0 +; GFX1100-NEXT: v_cndmask_b32_e64 v11, 0x3ff00000, 2.0, vcc_lo +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v5, v7 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_2) +; GFX1100-NEXT: v_mov_b32_e32 v10, v8 +; GFX1100-NEXT: v_cndmask_b32_e64 v9, 0x3ff00000, 2.0, vcc_lo +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[10:11] +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) +; GFX1100-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x double> , <2 x double> + %ldexp = fmul <2 x double> %x, %y + ret <2 x double> %ldexp +} + +define <2 x double> @fmul_select_v2f64_test4(<2 x double> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2f64_test4: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v11, 0x3ff00000 +; GFX7-NEXT: v_mov_b32_e32 v12, 0x3fe00000 +; GFX7-NEXT: v_mov_b32_e32 v8, 0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v4, v6 +; GFX7-NEXT: v_cndmask_b32_e32 v10, v11, v12, vcc +; GFX7-NEXT: v_mov_b32_e32 v9, v8 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v5, v7 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[9:10] +; GFX7-NEXT: v_cndmask_b32_e32 v9, v11, v12, vcc +; GFX7-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2f64_test4: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v11, 0x3ff00000 +; GFX9-NEXT: v_mov_b32_e32 v12, 0x3fe00000 +; GFX9-NEXT: v_mov_b32_e32 v8, 0 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v4, v6 +; GFX9-NEXT: v_cndmask_b32_e32 v10, v11, v12, vcc +; GFX9-NEXT: v_mov_b32_e32 v9, v8 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v5, v7 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[9:10] +; GFX9-NEXT: v_cndmask_b32_e32 v9, v11, v12, vcc +; GFX9-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2f64_test4: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v9, 0x3fe00000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v4, v6 +; GFX1030-NEXT: v_mov_b32_e32 v8, 0 +; GFX1030-NEXT: v_cndmask_b32_e32 v11, 0x3ff00000, v9, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v5, v7 +; GFX1030-NEXT: v_mov_b32_e32 v10, v8 +; GFX1030-NEXT: v_cndmask_b32_e32 v9, 0x3ff00000, v9, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[10:11] +; GFX1030-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2f64_test4: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v9, 0x3fe00000 :: v_dual_mov_b32 v8, 0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v4, v6 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2) +; GFX1100-NEXT: v_dual_mov_b32 v10, v8 :: v_dual_cndmask_b32 v11, 0x3ff00000, v9 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v5, v7 +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[10:11] +; GFX1100-NEXT: v_cndmask_b32_e32 v9, 0x3ff00000, v9, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x double> , <2 x double> + %ldexp = fmul <2 x double> %x, %y + ret <2 x double> %ldexp +} + +define double @fmul_select_f64_test5(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test5: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v4, 0xbff00000 +; GFX7-NEXT: v_mov_b32_e32 v5, 0xbfe00000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test5: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v4, 0xbff00000 +; GFX9-NEXT: v_mov_b32_e32 v5, 0xbfe00000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test5: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v5, 0xbfe00000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e32 v5, 0xbff00000, v5, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test5: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v5, 0xbfe00000 :: v_dual_mov_b32 v4, 0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v5, 0xbff00000, v5, vcc_lo +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double -5.000000e-01, double -1.000000e+00 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define double @fmul_select_f64_test6(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test6: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v4, 0xbff00000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e64 v3, v4, -2.0, vcc +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test6: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v4, 0xbff00000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e64 v3, v4, -2.0, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test6: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e64 v5, 0xbff00000, -2.0, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test6: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: v_mov_b32_e32 v4, 0 +; GFX1100-NEXT: v_cndmask_b32_e64 v5, 0xbff00000, -2.0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double -2.000000e+00, double -1.000000e+00 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define double @fmul_select_f64_test7(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test7: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v4, 0xbff00000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e64 v3, v4, 2.0, vcc +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test7: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v4, 0xbff00000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e64 v3, v4, 2.0, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test7: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e64 v5, 0xbff00000, 2.0, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test7: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: v_mov_b32_e32 v4, 0 +; GFX1100-NEXT: v_cndmask_b32_e64 v5, 0xbff00000, 2.0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double 2.000000e+00, double -1.000000e+00 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define double @fmul_select_f64_test8(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test8: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v4, 0xc0400000 +; GFX7-NEXT: v_mov_b32_e32 v5, 0xc0100000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test8: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v4, 0xc0400000 +; GFX9-NEXT: v_mov_b32_e32 v5, 0xc0100000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test8: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v5, 0xc0100000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e32 v5, 0xc0400000, v5, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test8: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v5, 0xc0100000 :: v_dual_mov_b32 v4, 0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v5, 0xc0400000, v5, vcc_lo +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double -4.000000e+00, double -3.200000e+01 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define <2 x double> @fmul_select_v2f64_test9(<2 x double> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2f64_test9: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v11, 0xbff00000 +; GFX7-NEXT: v_mov_b32_e32 v8, 0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v4, v6 +; GFX7-NEXT: v_cndmask_b32_e64 v10, v11, -2.0, vcc +; GFX7-NEXT: v_mov_b32_e32 v9, v8 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v5, v7 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[9:10] +; GFX7-NEXT: v_cndmask_b32_e64 v9, v11, -2.0, vcc +; GFX7-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2f64_test9: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v11, 0xbff00000 +; GFX9-NEXT: v_mov_b32_e32 v8, 0 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v4, v6 +; GFX9-NEXT: v_cndmask_b32_e64 v10, v11, -2.0, vcc +; GFX9-NEXT: v_mov_b32_e32 v9, v8 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v5, v7 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[9:10] +; GFX9-NEXT: v_cndmask_b32_e64 v9, v11, -2.0, vcc +; GFX9-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2f64_test9: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v4, v6 +; GFX1030-NEXT: v_mov_b32_e32 v8, 0 +; GFX1030-NEXT: v_cndmask_b32_e64 v11, 0xbff00000, -2.0, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v5, v7 +; GFX1030-NEXT: v_mov_b32_e32 v10, v8 +; GFX1030-NEXT: v_cndmask_b32_e64 v9, 0xbff00000, -2.0, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[10:11] +; GFX1030-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2f64_test9: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v4, v6 +; GFX1100-NEXT: v_mov_b32_e32 v8, 0 +; GFX1100-NEXT: v_cndmask_b32_e64 v11, 0xbff00000, -2.0, vcc_lo +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v5, v7 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(SKIP_1) | instid1(VALU_DEP_2) +; GFX1100-NEXT: v_mov_b32_e32 v10, v8 +; GFX1100-NEXT: v_cndmask_b32_e64 v9, 0xbff00000, -2.0, vcc_lo +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[10:11] +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) +; GFX1100-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x double> , <2 x double> + %ldexp = fmul <2 x double> %x, %y + ret <2 x double> %ldexp +} + +define <2 x double> @fmul_select_v2f64_test10(<2 x double> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2f64_test10: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v8, 0 +; GFX7-NEXT: v_mov_b32_e32 v9, 0xbff00000 +; GFX7-NEXT: v_mov_b32_e32 v10, 0x3fe00000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v4, v6 +; GFX7-NEXT: v_mov_b32_e32 v11, 0x3ff00000 +; GFX7-NEXT: v_cndmask_b32_e32 v10, v9, v10, vcc +; GFX7-NEXT: v_mov_b32_e32 v9, v8 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v5, v7 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[9:10] +; GFX7-NEXT: v_cndmask_b32_e64 v9, v11, 2.0, vcc +; GFX7-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2f64_test10: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v8, 0 +; GFX9-NEXT: v_mov_b32_e32 v9, 0xbff00000 +; GFX9-NEXT: v_mov_b32_e32 v10, 0x3fe00000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v4, v6 +; GFX9-NEXT: v_mov_b32_e32 v11, 0x3ff00000 +; GFX9-NEXT: v_cndmask_b32_e32 v10, v9, v10, vcc +; GFX9-NEXT: v_mov_b32_e32 v9, v8 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v5, v7 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[9:10] +; GFX9-NEXT: v_cndmask_b32_e64 v9, v11, 2.0, vcc +; GFX9-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2f64_test10: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v9, 0x3fe00000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v4, v6 +; GFX1030-NEXT: v_mov_b32_e32 v8, 0 +; GFX1030-NEXT: v_cndmask_b32_e32 v11, 0xbff00000, v9, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v5, v7 +; GFX1030-NEXT: v_mov_b32_e32 v10, v8 +; GFX1030-NEXT: v_cndmask_b32_e64 v9, 0x3ff00000, 2.0, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[10:11] +; GFX1030-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2f64_test10: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v9, 0x3fe00000 :: v_dual_mov_b32 v8, 0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v4, v6 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2) +; GFX1100-NEXT: v_dual_mov_b32 v10, v8 :: v_dual_cndmask_b32 v11, 0xbff00000, v9 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v5, v7 +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[10:11] +; GFX1100-NEXT: v_cndmask_b32_e64 v9, 0x3ff00000, 2.0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f64 v[2:3], v[2:3], v[8:9] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x double> , <2 x double> + %ldexp = fmul <2 x double> %x, %y + ret <2 x double> %ldexp +} + +define double @fmul_select_f64_test11(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test11: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_bfrev_b32_e32 v4, 1 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e64 v3, v4, -2.0, vcc +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test11: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_bfrev_b32_e32 v4, 1 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e64 v3, v4, -2.0, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test11: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e64 v5, 0x80000000, -2.0, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test11: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: v_mov_b32_e32 v4, 0 +; GFX1100-NEXT: v_cndmask_b32_e64 v5, 0x80000000, -2.0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double -2.000000e+00, double -0.000000e+00 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define double @fmul_select_f64_test12(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test12: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_ne_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e64 v2, 0, 1, vcc +; GFX7-NEXT: v_lshlrev_b32_e32 v3, 31, v2 +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test12: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_cmp_ne_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e64 v2, 0, 1, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v3, 31, v2 +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test12: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_ne_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v2, 0 +; GFX1030-NEXT: v_cndmask_b32_e64 v3, 0, 1, vcc_lo +; GFX1030-NEXT: v_lshlrev_b32_e32 v3, 31, v3 +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test12: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_ne_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: v_cndmask_b32_e64 v3, 0, 1, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_dual_mov_b32 v2, 0 :: v_dual_lshlrev_b32 v3, 31, v3 +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double 0.000000e+00, double -0.000000e+00 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define double @fmul_select_f64_test13(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test13: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v5, 0x40300000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_mov_b32_e32 v4, 0 +; GFX7-NEXT: v_cndmask_b32_e64 v5, v5, 0, vcc +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test13: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v5, 0x40300000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_mov_b32_e32 v4, 0 +; GFX9-NEXT: v_cndmask_b32_e64 v5, v5, 0, vcc +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test13: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e64 v5, 0x40300000, 0, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test13: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: v_mov_b32_e32 v4, 0 +; GFX1100-NEXT: v_cndmask_b32_e64 v5, 0x40300000, 0, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double 0.000000e+00, double 1.600000e+01 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define double @fmul_select_f64_test14_sel_log2val_pos92_neg27(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test14_sel_log2val_pos92_neg27: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v4, 0x3e400000 +; GFX7-NEXT: v_mov_b32_e32 v5, 0x45b00000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test14_sel_log2val_pos92_neg27: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v4, 0x3e400000 +; GFX9-NEXT: v_mov_b32_e32 v5, 0x45b00000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test14_sel_log2val_pos92_neg27: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v5, 0x45b00000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e32 v5, 0x3e400000, v5, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test14_sel_log2val_pos92_neg27: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v5, 0x45b00000 :: v_dual_mov_b32 v4, 0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v5, 0x3e400000, v5, vcc_lo +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double 0x45B0000000000000, double 0x3E40000000000000 + %ldexp = fmul double %x, %y + ret double %ldexp +} + +define double @fmul_select_f64_test15_sel_log2val_neg42_neg33(double %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f64_test15_sel_log2val_neg42_neg33: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mov_b32_e32 v4, 0x3de00000 +; GFX7-NEXT: v_mov_b32_e32 v5, 0x3d500000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX7-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX7-NEXT: v_mov_b32_e32 v2, 0 +; GFX7-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f64_test15_sel_log2val_neg42_neg33: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v4, 0x3de00000 +; GFX9-NEXT: v_mov_b32_e32 v5, 0x3d500000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v3 +; GFX9-NEXT: v_cndmask_b32_e32 v3, v4, v5, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 0 +; GFX9-NEXT: v_mul_f64 v[0:1], v[0:1], v[2:3] +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f64_test15_sel_log2val_neg42_neg33: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v5, 0x3d500000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1030-NEXT: v_mov_b32_e32 v4, 0 +; GFX1030-NEXT: v_cndmask_b32_e32 v5, 0x3de00000, v5, vcc_lo +; GFX1030-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f64_test15_sel_log2val_neg42_neg33: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v5, 0x3d500000 :: v_dual_mov_b32 v4, 0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v3 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v5, 0x3de00000, v5, vcc_lo +; GFX1100-NEXT: v_mul_f64 v[0:1], v[0:1], v[4:5] +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, double 0x3D50000000000000, double 0x3DE0000000000000 + %ldexp = fmul double %x, %y + ret double %ldexp +} + + +define half @fmul_select_f16_test1(half %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f16_test1: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, 1.0, 2.0, vcc +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f16_test1: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x3c00 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x4000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f16_test1: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x4000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x3c00, v3, vcc_lo +; GFX1030-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f16_test1: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0x4000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x3c00, v3, vcc_lo +; GFX1100-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, half 2.000000e+00, half 1.000000e+00 + %ldexp = fmul half %x, %y + ret half %ldexp +} + +define half @fmul_select_f16_test2(half %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f16_test2: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, 1.0, 0.5, vcc +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f16_test2: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x3c00 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x3800 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f16_test2: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x3800 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x3c00, v3, vcc_lo +; GFX1030-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f16_test2: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0x3800 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x3c00, v3, vcc_lo +; GFX1100-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, half 5.000000e-01, half 1.000000e+00 + %ldexp = fmul half %x, %y + ret half %ldexp +} + +define <2 x half> @fmul_select_v2f16_test3(<2 x half> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2f16_test3: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1 +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v3, v5 +; GFX7-NEXT: v_cndmask_b32_e64 v3, 1.0, 2.0, vcc +; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1 +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX7-NEXT: v_cndmask_b32_e64 v2, 1.0, 2.0, vcc +; GFX7-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2f16_test3: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v5, 0x3c00 +; GFX9-NEXT: v_mov_b32_e32 v6, 0x4000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX9-NEXT: v_cndmask_b32_e32 v2, v5, v6, vcc +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v3 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v5, v6, vcc +; GFX9-NEXT: v_pack_b32_f16 v1, v1, v2 +; GFX9-NEXT: v_pk_mul_f16 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2f16_test3: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v5, 0x4000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1030-NEXT: v_cndmask_b32_e32 v2, 0x3c00, v5, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v3 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x3c00, v5, vcc_lo +; GFX1030-NEXT: v_pack_b32_f16 v1, v1, v2 +; GFX1030-NEXT: v_pk_mul_f16 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2f16_test3: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v5, 0x4000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v2, 0x3c00, v5, vcc_lo +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v3 +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x3c00, v5, vcc_lo +; GFX1100-NEXT: v_pack_b32_f16 v1, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_pk_mul_f16 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x half> , <2 x half> + %ldexp = fmul <2 x half> %x, %y + ret <2 x half> %ldexp +} + +define <2 x half> @fmul_select_v2f16_test4(<2 x half> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2f16_test4: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v1, v1 +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v3, v5 +; GFX7-NEXT: v_cndmask_b32_e64 v3, 1.0, 0.5, vcc +; GFX7-NEXT: v_cvt_f32_f16_e32 v1, v1 +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX7-NEXT: v_cndmask_b32_e64 v2, 1.0, 0.5, vcc +; GFX7-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2f16_test4: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v5, 0x3c00 +; GFX9-NEXT: v_mov_b32_e32 v6, 0x3800 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX9-NEXT: v_cndmask_b32_e32 v2, v5, v6, vcc +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v3 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v5, v6, vcc +; GFX9-NEXT: v_pack_b32_f16 v1, v1, v2 +; GFX9-NEXT: v_pk_mul_f16 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2f16_test4: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v5, 0x3800 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1030-NEXT: v_cndmask_b32_e32 v2, 0x3c00, v5, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v3 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x3c00, v5, vcc_lo +; GFX1030-NEXT: v_pack_b32_f16 v1, v1, v2 +; GFX1030-NEXT: v_pk_mul_f16 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2f16_test4: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v5, 0x3800 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_2) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v2, 0x3c00, v5, vcc_lo +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v3 +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x3c00, v5, vcc_lo +; GFX1100-NEXT: v_pack_b32_f16 v1, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_pk_mul_f16 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x half> , <2 x half> + %ldexp = fmul <2 x half> %x, %y + ret <2 x half> %ldexp +} + +define half @fmul_select_f16_test5(half %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f16_test5: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0x41000000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, v3, 2.0, vcc +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f16_test5: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x4800 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x4000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f16_test5: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x4000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x4800, v3, vcc_lo +; GFX1030-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f16_test5: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0x4000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x4800, v3, vcc_lo +; GFX1100-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, half 2.000000e+00, half 8.000000e+00 + %ldexp = fmul half %x, %y + ret half %ldexp +} + +define half @fmul_select_f16_test6(half %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f16_test6: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0x40400000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0xc1000000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f16_test6: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x4200 +; GFX9-NEXT: v_mov_b32_e32 v4, 0xc800 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f16_test6: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0xc800 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x4200, v3, vcc_lo +; GFX1030-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f16_test6: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0xc800 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x4200, v3, vcc_lo +; GFX1100-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, half -8.000000e+00, half 3.000000e+00 + %ldexp = fmul half %x, %y + ret half %ldexp +} + +define half @fmul_select_f16_test7(half %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f16_test7: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0x41000000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, -4.0, v3, vcc +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f16_test7: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0xc400 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x4800 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f16_test7: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x4800 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0xc400, v3, vcc_lo +; GFX1030-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f16_test7: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0x4800 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0xc400, v3, vcc_lo +; GFX1100-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, half 8.000000e+00, half -4.000000e+00 + %ldexp = fmul half %x, %y + ret half %ldexp +} + +define half @fmul_select_f16_test8(half %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f16_test8: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_bfrev_b32_e32 v3, 1 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, 0, v3, vcc +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f16_test8: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x8000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, 0, v3, vcc +; GFX9-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f16_test8: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e64 v1, 0, 0x8000, vcc_lo +; GFX1030-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f16_test8: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: v_cndmask_b32_e64 v1, 0, 0x8000, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, half -0.000000e+00, half 0.000000e+00 + %ldexp = fmul half %x, %y + ret half %ldexp +} + +define half @fmul_select_f16_test9(half %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f16_test9: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0xc2000000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0xc1800000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f16_test9: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0xd000 +; GFX9-NEXT: v_mov_b32_e32 v4, 0xcc00 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f16_test9: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0xcc00 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0xd000, v3, vcc_lo +; GFX1030-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f16_test9: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0xcc00 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0xd000, v3, vcc_lo +; GFX1100-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, half -1.600000e+01, half -3.200000e+01 + %ldexp = fmul half %x, %y + ret half %ldexp +} + +define half @fmul_select_f16_test10_sel_log2val_neg11_pos11(half %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f16_test10_sel_log2val_neg11_pos11: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0x45000000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0x3a000000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f16_test10_sel_log2val_neg11_pos11: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x6800 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x1000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f16_test10_sel_log2val_neg11_pos11: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x1000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x6800, v3, vcc_lo +; GFX1030-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f16_test10_sel_log2val_neg11_pos11: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0x1000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x6800, v3, vcc_lo +; GFX1100-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, half 0xH1000, half 0xH6800 + %ldexp = fmul half %x, %y + ret half %ldexp +} + +define half @fmul_select_f16_test11_sel_log2val_pos7_neg14(half %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_f16_test11_sel_log2val_pos7_neg14: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cvt_f16_f32_e32 v0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0x38800000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0x43000000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cvt_f32_f16_e32 v0, v0 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_f16_test11_sel_log2val_pos7_neg14: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x400 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x5800 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_f16_test11_sel_log2val_pos7_neg14: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x5800 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x400, v3, vcc_lo +; GFX1030-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_f16_test11_sel_log2val_pos7_neg14: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v3, 0x5800 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x400, v3, vcc_lo +; GFX1100-NEXT: v_mul_f16_e32 v0, v0, v1 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, half 0xH5800, half 0xH0400 + %ldexp = fmul half %x, %y + ret half %ldexp +} + +define bfloat @fmul_select_bf16_test1(bfloat %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_bf16_test1: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, 1.0, 2.0, vcc +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_bf16_test1: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x3f80 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x4000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_add3_u32 v1, v1, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc +; GFX9-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_bf16_test1: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x4000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x3f80, v3, vcc_lo +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1030-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1030-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_bf16_test1: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v3, 0x4000 :: v_dual_lshlrev_b32 v0, 16, v0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x3f80, v3, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, bfloat 2.000000e+00, bfloat 1.000000e+00 + %ldexp = fmul bfloat %x, %y + ret bfloat %ldexp +} + +define bfloat @fmul_select_bf16_test2(bfloat %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_bf16_test2: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, 1.0, 0.5, vcc +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_bf16_test2: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x3f80 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x3f00 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_add3_u32 v1, v1, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc +; GFX9-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_bf16_test2: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x3f00 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x3f80, v3, vcc_lo +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1030-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1030-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_bf16_test2: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v3, 0x3f00 :: v_dual_lshlrev_b32 v0, 16, v0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x3f80, v3, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, bfloat 5.000000e-01, bfloat 1.000000e+00 + %ldexp = fmul bfloat %x, %y + ret bfloat %ldexp +} + +define <2 x bfloat> @fmul_select_v2bf16_test3(<2 x bfloat> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2bf16_test3: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_mul_f32_e32 v1, 1.0, v1 +; GFX7-NEXT: v_cndmask_b32_e64 v2, 1.0, 2.0, vcc +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v3, v5 +; GFX7-NEXT: v_cndmask_b32_e64 v3, 1.0, 2.0, vcc +; GFX7-NEXT: v_and_b32_e32 v1, 0xffff0000, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_and_b32_e32 v1, 0xffff0000, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2bf16_test3: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v5, 0x3f80 +; GFX9-NEXT: v_mov_b32_e32 v6, 0x4000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX9-NEXT: v_cndmask_b32_e32 v2, v5, v6, vcc +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v3 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v5, v6, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v3, 16, v0 +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_mul_f32_e32 v1, v3, v1 +; GFX9-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX9-NEXT: v_lshlrev_b32_e32 v2, 16, v2 +; GFX9-NEXT: v_bfe_u32 v3, v1, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX9-NEXT: v_add3_u32 v3, v3, v1, s4 +; GFX9-NEXT: v_or_b32_e32 v4, 0x400000, v1 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v1, v1 +; GFX9-NEXT: v_bfe_u32 v2, v0, 16, 1 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_add3_u32 v2, v2, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v3, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v2, v3, vcc +; GFX9-NEXT: s_mov_b32 s4, 0x7060302 +; GFX9-NEXT: v_perm_b32 v0, v0, v1, s4 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2bf16_test3: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v5, 0x4000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v3 +; GFX1030-NEXT: v_lshlrev_b32_e32 v3, 16, v0 +; GFX1030-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x3f80, v5, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_cndmask_b32_e32 v2, 0x3f80, v5, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v1, v3, v1 +; GFX1030-NEXT: v_lshlrev_b32_e32 v2, 16, v2 +; GFX1030-NEXT: v_or_b32_e32 v4, 0x400000, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX1030-NEXT: v_bfe_u32 v2, v1, 16, 1 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v1, v1 +; GFX1030-NEXT: v_bfe_u32 v3, v0, 16, 1 +; GFX1030-NEXT: v_add3_u32 v2, v2, v1, 0x7fff +; GFX1030-NEXT: v_or_b32_e32 v5, 0x400000, v0 +; GFX1030-NEXT: v_add3_u32 v3, v3, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v1, v2, v4, vcc_lo +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v3, v5, vcc_lo +; GFX1030-NEXT: v_perm_b32 v0, v0, v1, 0x7060302 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2bf16_test3: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v5, 0x4000 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v3 +; GFX1100-NEXT: v_lshlrev_b32_e32 v3, 16, v0 +; GFX1100-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_2) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x3f80, v5, vcc_lo +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1100-NEXT: v_cndmask_b32_e32 v2, 0x3f80, v5, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v2, 16, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_dual_mul_f32 v0, v0, v2 :: v_dual_lshlrev_b32 v1, 16, v1 +; GFX1100-NEXT: v_or_b32_e32 v5, 0x400000, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2) +; GFX1100-NEXT: v_mul_f32_e32 v1, v3, v1 +; GFX1100-NEXT: v_bfe_u32 v3, v0, 16, 1 +; GFX1100-NEXT: v_bfe_u32 v2, v1, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v4, 0x400000, v1 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v1, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) +; GFX1100-NEXT: v_add3_u32 v3, v3, v0, 0x7fff +; GFX1100-NEXT: v_add3_u32 v2, v2, v1, 0x7fff +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_4) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, v2, v4, vcc_lo +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v3, v5, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_perm_b32 v0, v0, v1, 0x7060302 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x bfloat> , <2 x bfloat> + %ldexp = fmul <2 x bfloat> %x, %y + ret <2 x bfloat> %ldexp +} + +define <2 x bfloat> @fmul_select_v2bf16_test4(<2 x bfloat> %x, <2 x i32> %bool.arg1, <2 x i32> %bool.arg2) { +; GFX7-LABEL: fmul_select_v2bf16_test4: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_mul_f32_e32 v1, 1.0, v1 +; GFX7-NEXT: v_cndmask_b32_e64 v2, 1.0, 0.5, vcc +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v3, v5 +; GFX7-NEXT: v_cndmask_b32_e64 v3, 1.0, 0.5, vcc +; GFX7-NEXT: v_and_b32_e32 v1, 0xffff0000, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v1, v1, v3 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_and_b32_e32 v1, 0xffff0000, v1 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_v2bf16_test4: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v5, 0x3f80 +; GFX9-NEXT: v_mov_b32_e32 v6, 0x3f00 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v2, v4 +; GFX9-NEXT: v_cndmask_b32_e32 v2, v5, v6, vcc +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v3 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v5, v6, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v3, 16, v0 +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_mul_f32_e32 v1, v3, v1 +; GFX9-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX9-NEXT: v_lshlrev_b32_e32 v2, 16, v2 +; GFX9-NEXT: v_bfe_u32 v3, v1, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX9-NEXT: v_add3_u32 v3, v3, v1, s4 +; GFX9-NEXT: v_or_b32_e32 v4, 0x400000, v1 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v1, v1 +; GFX9-NEXT: v_bfe_u32 v2, v0, 16, 1 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_add3_u32 v2, v2, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v3, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v2, v3, vcc +; GFX9-NEXT: s_mov_b32 s4, 0x7060302 +; GFX9-NEXT: v_perm_b32 v0, v0, v1, s4 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_v2bf16_test4: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v5, 0x3f00 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v3 +; GFX1030-NEXT: v_lshlrev_b32_e32 v3, 16, v0 +; GFX1030-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x3f80, v5, vcc_lo +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_cndmask_b32_e32 v2, 0x3f80, v5, vcc_lo +; GFX1030-NEXT: v_mul_f32_e32 v1, v3, v1 +; GFX1030-NEXT: v_lshlrev_b32_e32 v2, 16, v2 +; GFX1030-NEXT: v_or_b32_e32 v4, 0x400000, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v2 +; GFX1030-NEXT: v_bfe_u32 v2, v1, 16, 1 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v1, v1 +; GFX1030-NEXT: v_bfe_u32 v3, v0, 16, 1 +; GFX1030-NEXT: v_add3_u32 v2, v2, v1, 0x7fff +; GFX1030-NEXT: v_or_b32_e32 v5, 0x400000, v0 +; GFX1030-NEXT: v_add3_u32 v3, v3, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v1, v2, v4, vcc_lo +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v3, v5, vcc_lo +; GFX1030-NEXT: v_perm_b32 v0, v0, v1, 0x7060302 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_v2bf16_test4: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_mov_b32_e32 v5, 0x3f00 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v3 +; GFX1100-NEXT: v_lshlrev_b32_e32 v3, 16, v0 +; GFX1100-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(SKIP_2) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x3f80, v5, vcc_lo +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v2, v4 +; GFX1100-NEXT: v_cndmask_b32_e32 v2, 0x3f80, v5, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v2, 16, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_dual_mul_f32 v0, v0, v2 :: v_dual_lshlrev_b32 v1, 16, v1 +; GFX1100-NEXT: v_or_b32_e32 v5, 0x400000, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(SKIP_1) | instid1(VALU_DEP_2) +; GFX1100-NEXT: v_mul_f32_e32 v1, v3, v1 +; GFX1100-NEXT: v_bfe_u32 v3, v0, 16, 1 +; GFX1100-NEXT: v_bfe_u32 v2, v1, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v4, 0x400000, v1 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v1, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_4) | instskip(NEXT) | instid1(VALU_DEP_4) +; GFX1100-NEXT: v_add3_u32 v3, v3, v0, 0x7fff +; GFX1100-NEXT: v_add3_u32 v2, v2, v1, 0x7fff +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_4) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, v2, v4, vcc_lo +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v3, v5, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_perm_b32 v0, v0, v1, 0x7060302 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq <2 x i32> %bool.arg1, %bool.arg2 + %y = select <2 x i1> %bool, <2 x bfloat> , <2 x bfloat> + %ldexp = fmul <2 x bfloat> %x, %y + ret <2 x bfloat> %ldexp +} + +define bfloat @fmul_select_bf16_test5(bfloat %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_bf16_test5: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0x41000000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e64 v1, v3, 2.0, vcc +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_bf16_test5: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x4100 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x4000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_add3_u32 v1, v1, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc +; GFX9-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_bf16_test5: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x4000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x4100, v3, vcc_lo +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1030-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1030-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_bf16_test5: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v3, 0x4000 :: v_dual_lshlrev_b32 v0, 16, v0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x4100, v3, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, bfloat 2.000000e+00, bfloat 8.000000e+00 + %ldexp = fmul bfloat %x, %y + ret bfloat %ldexp +} + +define bfloat @fmul_select_bf16_test6(bfloat %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_bf16_test6: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0x40400000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0xc1000000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_bf16_test6: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x4040 +; GFX9-NEXT: v_mov_b32_e32 v4, 0xffffc100 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_add3_u32 v1, v1, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc +; GFX9-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_bf16_test6: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0xffffc100 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x4040, v3, vcc_lo +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1030-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1030-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_bf16_test6: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v3, 0xffffc100 :: v_dual_lshlrev_b32 v0, 16, v0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x4040, v3, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, bfloat -8.000000e+00, bfloat 3.000000e+00 + %ldexp = fmul bfloat %x, %y + ret bfloat %ldexp +} + +define bfloat @fmul_select_bf16_test7(bfloat %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_bf16_test7: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0x41000000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, -4.0, v3, vcc +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_bf16_test7: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0xffffc080 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x4100 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_add3_u32 v1, v1, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc +; GFX9-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_bf16_test7: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x4100 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0xffffc080, v3, vcc_lo +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1030-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1030-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_bf16_test7: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v3, 0x4100 :: v_dual_lshlrev_b32 v0, 16, v0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0xffffc080, v3, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, bfloat 8.000000e+00, bfloat -4.000000e+00 + %ldexp = fmul bfloat %x, %y + ret bfloat %ldexp +} + +define bfloat @fmul_select_bf16_test8(bfloat %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_bf16_test8: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_cndmask_b32_e64 v1, 0, 1, vcc +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_lshlrev_b32_e32 v1, 31, v1 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_bf16_test8: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e64 v1, 0, 1, vcc +; GFX9-NEXT: v_mov_b32_e32 v2, 15 +; GFX9-NEXT: v_lshlrev_b16_sdwa v1, v2, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:DWORD +; GFX9-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_add3_u32 v1, v1, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc +; GFX9-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_bf16_test8: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: v_cndmask_b32_e64 v1, 0, 1, vcc_lo +; GFX1030-NEXT: v_lshlrev_b16 v1, 15, v1 +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1030-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1030-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_bf16_test8: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: v_cndmask_b32_e64 v1, 0, 1, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_lshlrev_b16 v1, 15, v1 +; GFX1100-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, bfloat -0.000000e+00, bfloat 0.000000e+00 + %ldexp = fmul bfloat %x, %y + ret bfloat %ldexp +} + +define bfloat @fmul_select_bf16_test9(bfloat %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_bf16_test9: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0xc2000000 +; GFX7-NEXT: v_mov_b32_e32 v4, 0xc1800000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_bf16_test9: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0xffffc200 +; GFX9-NEXT: v_mov_b32_e32 v4, 0xffffc180 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_add3_u32 v1, v1, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc +; GFX9-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_bf16_test9: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0xffffc180 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0xffffc200, v3, vcc_lo +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1030-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1030-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_bf16_test9: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v3, 0xffffc180 :: v_dual_lshlrev_b32 v0, 16, v0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0xffffc200, v3, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, bfloat -1.600000e+01, bfloat -3.200000e+01 + %ldexp = fmul bfloat %x, %y + ret bfloat %ldexp +} + +define bfloat @fmul_select_bf16_test10_sel_log2val_pos65_pos56(bfloat %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_bf16_test10_sel_log2val_pos65_pos56: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_mov_b32_e32 v3, 0xdb800000 +; GFX7-NEXT: v_bfrev_b32_e32 v4, 7 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_bf16_test10_sel_log2val_pos65_pos56: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0xffffdb80 +; GFX9-NEXT: v_mov_b32_e32 v4, 0xffffe000 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_add3_u32 v1, v1, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc +; GFX9-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_bf16_test10_sel_log2val_pos65_pos56: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0xffffe000 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0xffffdb80, v3, vcc_lo +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1030-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1030-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_bf16_test10_sel_log2val_pos65_pos56: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v3, 0xffffe000 :: v_dual_lshlrev_b32 v0, 16, v0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0xffffdb80, v3, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, bfloat 0xRE000, bfloat 0xRDB80 + %ldexp = fmul bfloat %x, %y + ret bfloat %ldexp +} + +define bfloat @fmul_select_bf16_test11_sel_log2val_neg22_pos25(bfloat %x, i32 %bool.arg1, i32 %bool.arg2) { +; GFX7-LABEL: fmul_select_bf16_test11_sel_log2val_neg22_pos25: +; GFX7: ; %bb.0: +; GFX7-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX7-NEXT: v_mul_f32_e32 v0, 1.0, v0 +; GFX7-NEXT: v_bfrev_b32_e32 v3, 50 +; GFX7-NEXT: v_mov_b32_e32 v4, 0x34800000 +; GFX7-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX7-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX7-NEXT: v_and_b32_e32 v0, 0xffff0000, v0 +; GFX7-NEXT: s_setpc_b64 s[30:31] +; +; GFX9-LABEL: fmul_select_bf16_test11_sel_log2val_neg22_pos25: +; GFX9: ; %bb.0: +; GFX9-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX9-NEXT: v_mov_b32_e32 v3, 0x4c00 +; GFX9-NEXT: v_mov_b32_e32 v4, 0x3480 +; GFX9-NEXT: v_cmp_eq_u32_e32 vcc, v1, v2 +; GFX9-NEXT: v_cndmask_b32_e32 v1, v3, v4, vcc +; GFX9-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX9-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX9-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX9-NEXT: s_movk_i32 s4, 0x7fff +; GFX9-NEXT: v_add3_u32 v1, v1, v0, s4 +; GFX9-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX9-NEXT: v_cmp_u_f32_e32 vcc, v0, v0 +; GFX9-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc +; GFX9-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX9-NEXT: s_setpc_b64 s[30:31] +; +; GFX1030-LABEL: fmul_select_bf16_test11_sel_log2val_neg22_pos25: +; GFX1030: ; %bb.0: +; GFX1030-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1030-NEXT: v_mov_b32_e32 v3, 0x3480 +; GFX1030-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1030-NEXT: v_lshlrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: v_cndmask_b32_e32 v1, 0x4c00, v3, vcc_lo +; GFX1030-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1030-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1030-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1030-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1030-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1030-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1030-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1030-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1030-NEXT: s_setpc_b64 s[30:31] +; +; GFX1100-LABEL: fmul_select_bf16_test11_sel_log2val_neg22_pos25: +; GFX1100: ; %bb.0: +; GFX1100-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GFX1100-NEXT: v_dual_mov_b32 v3, 0x3480 :: v_dual_lshlrev_b32 v0, 16, v0 +; GFX1100-NEXT: v_cmp_eq_u32_e32 vcc_lo, v1, v2 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_cndmask_b32_e32 v1, 0x4c00, v3, vcc_lo +; GFX1100-NEXT: v_lshlrev_b32_e32 v1, 16, v1 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_mul_f32_e32 v0, v0, v1 +; GFX1100-NEXT: v_bfe_u32 v1, v0, 16, 1 +; GFX1100-NEXT: v_or_b32_e32 v2, 0x400000, v0 +; GFX1100-NEXT: v_cmp_u_f32_e32 vcc_lo, v0, v0 +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_3) | instskip(NEXT) | instid1(VALU_DEP_1) +; GFX1100-NEXT: v_add3_u32 v1, v1, v0, 0x7fff +; GFX1100-NEXT: v_cndmask_b32_e32 v0, v1, v2, vcc_lo +; GFX1100-NEXT: s_delay_alu instid0(VALU_DEP_1) +; GFX1100-NEXT: v_lshrrev_b32_e32 v0, 16, v0 +; GFX1100-NEXT: s_setpc_b64 s[30:31] + %bool = icmp eq i32 %bool.arg1, %bool.arg2 + %y = select i1 %bool, bfloat 0xR3480, bfloat 0xR4C00 + %ldexp = fmul bfloat %x, %y + ret bfloat %ldexp +} + diff --git a/llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-fake16.mir b/llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-fake16.mir index 30a24c675a76b..5d90bab1384eb 100644 --- a/llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-fake16.mir +++ b/llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-fake16.mir @@ -12,8 +12,8 @@ body: | ; GCN-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF ; GCN-NEXT: [[V_CVT_F16_U16_fake16_e64_:%[0-9]+]]:vgpr_32 = V_CVT_F16_U16_fake16_e64 [[DEF]], 0, 0, implicit $mode, implicit $exec ; GCN-NEXT: [[DEF2:%[0-9]+]]:sreg_32 = IMPLICIT_DEF - ; GCN-NEXT: [[V_CMP_LT_F16_t16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F16_t16_e64 0, [[V_CVT_F16_U16_fake16_e64_]], 0, [[DEF1]], 0, implicit $mode, implicit $exec - ; GCN-NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, -1, killed [[V_CMP_LT_F16_t16_e64_]], implicit $exec + ; GCN-NEXT: [[V_CMP_LT_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F16_fake16_e64 0, [[V_CVT_F16_U16_fake16_e64_]], 0, [[DEF1]], 0, implicit $mode, implicit $exec + ; GCN-NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, -1, killed [[V_CMP_LT_F16_fake16_e64_]], implicit $exec %0:vgpr_32 = IMPLICIT_DEF %1:sreg_32 = IMPLICIT_DEF %2:vgpr_32 = V_CVT_F16_U16_fake16_e64 %0:vgpr_32, 0, 0, implicit $mode, implicit $exec diff --git a/llvm/test/CodeGen/AMDGPU/fp-atomics-gfx950.ll b/llvm/test/CodeGen/AMDGPU/fp-atomics-gfx950.ll new file mode 100644 index 0000000000000..ab380dbef107a --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/fp-atomics-gfx950.ll @@ -0,0 +1,92 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc < %s -mtriple=amdgcn -mcpu=gfx950 -global-isel=0 -verify-machineinstrs | FileCheck %s -check-prefix=GFX950-SDAG +; RUN: llc < %s -mtriple=amdgcn -mcpu=gfx950 -global-isel=1 -verify-machineinstrs | FileCheck %s -check-prefix=GFX950-GISEL + +declare <2 x bfloat> @llvm.amdgcn.struct.buffer.atomic.fadd.v2bf16(<2 x bfloat>, <4 x i32>, i32, i32, i32, i32 immarg) +declare <2 x bfloat> @llvm.amdgcn.raw.buffer.atomic.fadd.v2bf16(<2 x bfloat> %val, <4 x i32> %rsrc, i32, i32, i32) + +define amdgpu_ps float @struct_buffer_atomic_add_v2bf16_ret(<2 x bfloat> %val, <4 x i32> inreg %rsrc, i32 %vindex, i32 %voffset, i32 inreg %soffset) { +; GFX950-SDAG-LABEL: struct_buffer_atomic_add_v2bf16_ret: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v3, v2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v2, v1 +; GFX950-SDAG-NEXT: buffer_atomic_pk_add_bf16 v0, v[2:3], s[0:3], s4 idxen offen sc0 +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[2:3], 0 +; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) +; GFX950-SDAG-NEXT: flat_store_dword v[2:3], v0 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v0, 1.0 +; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0) +; GFX950-SDAG-NEXT: ; return to shader part epilog +; +; GFX950-GISEL-LABEL: struct_buffer_atomic_add_v2bf16_ret: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b32_e32 v4, v1 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v5, v2 +; GFX950-GISEL-NEXT: buffer_atomic_pk_add_bf16 v0, v[4:5], s[0:3], s4 idxen offen sc0 +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[2:3], 0 +; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) +; GFX950-GISEL-NEXT: flat_store_dword v[2:3], v0 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v0, 1.0 +; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0) +; GFX950-GISEL-NEXT: ; return to shader part epilog + %orig = call <2 x bfloat> @llvm.amdgcn.struct.buffer.atomic.fadd.v2bf16(<2 x bfloat> %val, <4 x i32> %rsrc, i32 %vindex, i32 %voffset, i32 %soffset, i32 0) + store <2 x bfloat> %orig, ptr null + ret float 1.0 +} + +define amdgpu_ps void @struct_buffer_atomic_add_v2bf16_noret(<2 x bfloat> %val, <4 x i32> inreg %rsrc, i32 %vindex, i32 %voffset, i32 inreg %soffset) { +; GFX950-SDAG-LABEL: struct_buffer_atomic_add_v2bf16_noret: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v3, v2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v2, v1 +; GFX950-SDAG-NEXT: buffer_atomic_pk_add_bf16 v0, v[2:3], s[0:3], s4 idxen offen +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: struct_buffer_atomic_add_v2bf16_noret: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b32_e32 v4, v1 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v5, v2 +; GFX950-GISEL-NEXT: buffer_atomic_pk_add_bf16 v0, v[4:5], s[0:3], s4 idxen offen +; GFX950-GISEL-NEXT: s_endpgm + %orig = call <2 x bfloat> @llvm.amdgcn.struct.buffer.atomic.fadd.v2bf16(<2 x bfloat> %val, <4 x i32> %rsrc, i32 %vindex, i32 %voffset, i32 %soffset, i32 0) + ret void +} + +define amdgpu_ps void @raw_buffer_atomic_add_v2bf16(<2 x bfloat> %val, <4 x i32> inreg %rsrc, i32 %voffset, i32 inreg %soffset) { +; GFX950-SDAG-LABEL: raw_buffer_atomic_add_v2bf16: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: buffer_atomic_pk_add_bf16 v0, v1, s[0:3], s4 offen +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: raw_buffer_atomic_add_v2bf16: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: buffer_atomic_pk_add_bf16 v0, v1, s[0:3], s4 offen +; GFX950-GISEL-NEXT: s_endpgm + %ret = call <2 x bfloat> @llvm.amdgcn.raw.buffer.atomic.fadd.v2bf16(<2 x bfloat> %val, <4 x i32> %rsrc, i32 %voffset, i32 %soffset, i32 0) + ret void +} + +define amdgpu_ps float @raw_buffer_atomic_add_v2bf16_ret(<2 x bfloat> %val, <4 x i32> inreg %rsrc, i32 %voffset, i32 inreg %soffset) { +; GFX950-SDAG-LABEL: raw_buffer_atomic_add_v2bf16_ret: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: buffer_atomic_pk_add_bf16 v0, v1, s[0:3], s4 offen sc0 +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[2:3], 0 +; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) +; GFX950-SDAG-NEXT: flat_store_dword v[2:3], v0 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v0, 1.0 +; GFX950-SDAG-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0) +; GFX950-SDAG-NEXT: ; return to shader part epilog +; +; GFX950-GISEL-LABEL: raw_buffer_atomic_add_v2bf16_ret: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: buffer_atomic_pk_add_bf16 v0, v1, s[0:3], s4 offen sc0 +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[2:3], 0 +; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) +; GFX950-GISEL-NEXT: flat_store_dword v[2:3], v0 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v0, 1.0 +; GFX950-GISEL-NEXT: s_waitcnt vmcnt(0) lgkmcnt(0) +; GFX950-GISEL-NEXT: ; return to shader part epilog + %orig = call <2 x bfloat> @llvm.amdgcn.raw.buffer.atomic.fadd.v2bf16(<2 x bfloat> %val, <4 x i32> %rsrc, i32 %voffset, i32 %soffset, i32 0) + store <2 x bfloat> %orig, ptr null + ret float 1.0 +} diff --git a/llvm/test/CodeGen/AMDGPU/hazards-gfx950.mir b/llvm/test/CodeGen/AMDGPU/hazards-gfx950.mir new file mode 100644 index 0000000000000..7583431675095 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/hazards-gfx950.mir @@ -0,0 +1,257 @@ +# RUN: llc -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs -run-pass=post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN %s + +--- +# GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1 +# GCN: V_CMPX_EQ_I32_e32 +# GCN-NEXT: S_NOP 3 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vopc_write_exec_permlane16_swap_vop1 +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_vop3_write_exec_permlane16_swap_vop1 +# GCN: V_CMPX_EQ_I32_e64 +# GCN-NEXT: S_NOP 3 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vop3_write_exec_permlane16_swap_vop1 +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop3 +# GCN: V_CMPX_EQ_I32_e32 +# GCN-NEXT: S_NOP 3 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vopc_write_exec_permlane16_swap_vop3 +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_vop3_write_exec_permlane16_swap_vop3 +# GCN: V_CMPX_EQ_I32_e64 +# GCN-NEXT: S_NOP 3 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vop3_write_exec_permlane16_swap_vop3 +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_vopc_write_exec_permlane32_swap_vop1 +# GCN: V_CMPX_EQ_I32_e32 +# GCN-NEXT: S_NOP 3 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vopc_write_exec_permlane32_swap_vop1 +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_vop3_write_exec_permlane32_swap_vop1 +# GCN: V_CMPX_EQ_I32_e64 +# GCN-NEXT: S_NOP 3 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vop3_write_exec_permlane32_swap_vop1 +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_vopc_write_exec_permlane32_swap_vop3 +# GCN: V_CMPX_EQ_I32_e32 +# GCN-NEXT: S_NOP 3 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vopc_write_exec_permlane32_swap_vop3 +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_vop3_write_exec_permlane32_swap_vop3 +# GCN: V_CMPX_EQ_I32_e64 +# GCN-NEXT: S_NOP 3 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vop3_write_exec_permlane32_swap_vop3 +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + $exec = V_CMPX_EQ_I32_e64 $vgpr0, $vgpr1, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1__nowait +# GCN: V_CMPX_EQ_I32_e32 +# GCN-NEXT: V_MOV_B32 +# GCN-NEXT: V_MOV_B32 +# GCN-NEXT: V_MOV_B32 +# GCN-NEXT: V_MOV_B32 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vopc_write_exec_permlane16_swap_vop1__nowait +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec + $vgpr2 = V_MOV_B32_e32 0, implicit $exec + $vgpr3 = V_MOV_B32_e32 0, implicit $exec + $vgpr4 = V_MOV_B32_e32 0, implicit $exec + $vgpr5 = V_MOV_B32_e32 0, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_vopc_write_exec_permlane16_swap_vop1__wait1 +# GCN: V_CMPX_EQ_I32_e32 +# GCN-NEXT: V_MOV_B32 +# GCN-NEXT: V_MOV_B32 +# GCN-NEXT: V_MOV_B32 +# GCN-NEXT: S_NOP 0 +# GCN-NEXT: V_PERMLANE +name: vcmpx_vopc_write_exec_permlane16_swap_vop1__wait1 +body: | + bb.0: + liveins: $vgpr0, $vgpr1 + V_CMPX_EQ_I32_e32 $vgpr0, $vgpr1, implicit-def $exec, implicit-def $vcc, implicit $exec + $vgpr2 = V_MOV_B32_e32 0, implicit $exec + $vgpr3 = V_MOV_B32_e32 0, implicit $exec + $vgpr4 = V_MOV_B32_e32 0, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec +... + +--- +# GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_0 +# GCN: V_MOV_B32 +# GCN-NEXT: S_NOP 1 +# GCN-NEXT: V_PERMLANE +name: valu_write_vdst_read_permlane16_swap_0 +body: | + bb.0: + liveins: $vgpr1 + $vgpr0 = V_MOV_B32_e32 0, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec +... + +--- +# GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_1 +# GCN: V_MOV_B32 +# GCN-NEXT: S_NOP 1 +# GCN-NEXT: V_PERMLANE +name: valu_write_vdst_read_permlane16_swap_1 +body: | + bb.0: + liveins: $vgpr0 + $vgpr1 = V_MOV_B32_e32 0, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec +... + +--- +# GCN-LABEL: name: valu_write_vdst_read_permlane32_swap_0 +# GCN: V_MOV_B32 +# GCN-NEXT: S_NOP 1 +# GCN-NEXT: V_PERMLANE +name: valu_write_vdst_read_permlane32_swap_0 +body: | + bb.0: + liveins: $vgpr1 + $vgpr0 = V_MOV_B32_e32 0, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec +... + +--- +# GCN-LABEL: name: valu_write_vdst_read_permlane32_swap_1 +# GCN: V_MOV_B32 +# GCN-NEXT: S_NOP 1 +# GCN-NEXT: V_PERMLANE +name: valu_write_vdst_read_permlane32_swap_1 +body: | + bb.0: + liveins: $vgpr0 + $vgpr1 = V_MOV_B32_e32 0, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec +... + +--- +# No hazard, write of other register +# GCN-LABEL: name: valu_write_vdst_read_permlane16_swap_0_otherreg +# GCN: V_MOV_B32 +# GCN-NEXT: V_PERMLANE +name: valu_write_vdst_read_permlane16_swap_0_otherreg +body: | + bb.0: + liveins: $vgpr1 + $vgpr2 = V_MOV_B32_e32 0, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE16_SWAP_B32_e64 killed $vgpr0, killed $vgpr1, -1, 1, implicit $exec +... + +--- +# Both permlane hazards at once. +# GCN-LABEL: name: valu_writes_vdst__vcmpx_write_exec__permlane32_swap +# GCN: V_MOV_B32 +# GCN: V_CMPX_EQ_I32 +# GCN-NEXT: S_NOP 3 +# GCN-NEXT: V_PERMLANE +name: valu_writes_vdst__vcmpx_write_exec__permlane32_swap +body: | + bb.0: + liveins: $vgpr0, $vgpr2, $vgpr3 + $vgpr1 = V_MOV_B32_e32 0, implicit $exec + $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_write_exec__valu_writes_vdst___permlane32_swap +# GCN: V_CMPX_EQ_I32 +# GCN: V_MOV_B32 +# GCN-NEXT: S_NOP 2 +# GCN-NEXT: V_PERMLANE +name: vcmpx_write_exec__valu_writes_vdst___permlane32_swap +body: | + bb.0: + liveins: $vgpr0, $vgpr2, $vgpr3 + $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec + $vgpr1 = V_MOV_B32_e32 0, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec +... + +--- +# GCN-LABEL: name: vcmpx_write_exec__valu_writes_vdstx2___permlane32_swap +# GCN: V_CMPX_EQ_I32 +# GCN: V_MOV_B32 +# GCN: V_MOV_B32 +# GCN-NEXT: S_NOP 1 +# GCN-NEXT: V_PERMLANE +name: vcmpx_write_exec__valu_writes_vdstx2___permlane32_swap +body: | + bb.0: + liveins: $vgpr0, $vgpr2, $vgpr3 + $exec = V_CMPX_EQ_I32_e64 $vgpr2, $vgpr3, implicit $exec + $vgpr1 = V_MOV_B32_e32 0, implicit $exec + $vgpr0 = V_MOV_B32_e32 0, implicit $exec + renamable $vgpr0, renamable $vgpr1 = V_PERMLANE32_SWAP_B32_e32 killed $vgpr0, killed $vgpr1, implicit $exec +... diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.gfx950.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.gfx950.ll new file mode 100644 index 0000000000000..c407616556b5a --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.gfx950.ll @@ -0,0 +1,128 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 +; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX950-SDAG %s +; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs < %s | FileCheck --check-prefixes=GCN,GFX950-GISEL %s + +declare <6 x i32> @llvm.amdgcn.cvt.scalef32.2xpk16.bf6.f32(<16 x float> %src0, <16 x float> %src1, float %scale) +declare <6 x i32> @llvm.amdgcn.cvt.scalef32.2xpk16.fp6.f32(<16 x float> %src0, <16 x float> %src1, float %scale) + +define amdgpu_ps void @test_scalef32_pk32_fp6_f32_vv(<16 x float> %src, float %scale, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_fp6_f32_vv: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v19, v18 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v18, v17 +; GFX950-SDAG-NEXT: v_cvt_scalef32_2xpk16_fp6_f32 v[0:5], v[0:15], v[0:15], v16 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[18:19], v[4:5], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[18:19], v[0:3], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_fp6_f32_vv: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b32_e32 v20, v17 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v21, v18 +; GFX950-GISEL-NEXT: v_cvt_scalef32_2xpk16_fp6_f32 v[0:5], v[0:15], v[0:15], v16 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[20:21], v[0:3], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[20:21], v[4:5], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.2xpk16.fp6.f32(<16 x float> %src, <16 x float> %src, float %scale) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_fp6_f32_sl(<16 x float> inreg %src, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_fp6_f32_sl: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GFX950-SDAG-NEXT: s_mov_b32 s16, 0x42c80000 +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[12:13], s[10:11] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[10:11], s[8:9] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[8:9], s[6:7] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[6:7], s[4:5] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[4:5], s[2:3] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[2:3], s[0:1] +; GFX950-SDAG-NEXT: v_cvt_scalef32_2xpk16_fp6_f32 v[2:7], v[2:17], v[2:17], s16 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_fp6_f32_sl: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[12:13], s[10:11] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[10:11], s[8:9] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[8:9], s[6:7] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[6:7], s[4:5] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[4:5], s[2:3] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[2:3], s[0:1] +; GFX950-GISEL-NEXT: v_mov_b32_e32 v18, 0x42c80000 +; GFX950-GISEL-NEXT: v_cvt_scalef32_2xpk16_fp6_f32 v[2:7], v[2:17], v[2:17], v18 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.2xpk16.fp6.f32(<16 x float> %src, <16 x float> %src, float 100.0) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_bf6_f32_vv(<16 x float> %src, float %scale, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_bf6_f32_vv: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v19, v18 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v18, v17 +; GFX950-SDAG-NEXT: v_cvt_scalef32_2xpk16_bf6_f32 v[0:5], v[0:15], v[0:15], v16 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[18:19], v[4:5], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[18:19], v[0:3], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_bf6_f32_vv: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b32_e32 v20, v17 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v21, v18 +; GFX950-GISEL-NEXT: v_cvt_scalef32_2xpk16_bf6_f32 v[0:5], v[0:15], v[0:15], v16 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[20:21], v[0:3], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[20:21], v[4:5], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.2xpk16.bf6.f32(<16 x float> %src, <16 x float> %src, float %scale) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_bf6_f32_sl(<16 x float> inreg %src, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_bf6_f32_sl: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GFX950-SDAG-NEXT: s_mov_b32 s16, 0x42c80000 +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[12:13], s[10:11] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[10:11], s[8:9] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[8:9], s[6:7] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[6:7], s[4:5] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[4:5], s[2:3] +; GFX950-SDAG-NEXT: v_mov_b64_e32 v[2:3], s[0:1] +; GFX950-SDAG-NEXT: v_cvt_scalef32_2xpk16_bf6_f32 v[2:7], v[2:17], v[2:17], s16 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_bf6_f32_sl: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[12:13], s[10:11] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[10:11], s[8:9] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[8:9], s[6:7] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[6:7], s[4:5] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[4:5], s[2:3] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[2:3], s[0:1] +; GFX950-GISEL-NEXT: v_mov_b32_e32 v18, 0x42c80000 +; GFX950-GISEL-NEXT: v_cvt_scalef32_2xpk16_bf6_f32 v[2:7], v[2:17], v[2:17], v18 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.2xpk16.bf6.f32(<16 x float> %src, <16 x float> %src, float 100.0) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; GCN: {{.*}} diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.ll new file mode 100644 index 0000000000000..4153bc8f43563 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.scalef32.pk.ll @@ -0,0 +1,474 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 +; RUN: llc -global-isel=0 -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs < %s | FileCheck -check-prefix=GFX950-SDAG %s +; RUN: llc -global-isel=1 -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs < %s | FileCheck -check-prefix=GFX950-GISEL %s + +declare <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.bf6.bf16(<32 x bfloat> %src, float %scale) +declare <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.bf6.f16(<32 x half> %src, float %scale) +declare <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.fp6.bf16(<32 x bfloat> %src, float %scale) +declare <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.fp6.f16(<32 x half> %src, float %scale) + +define amdgpu_ps void @test_scalef32_pk32_bf6_bf16_vv(<32 x bfloat> %src, float %scale, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_bf6_bf16_vv: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v19, v18 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v18, v17 +; GFX950-SDAG-NEXT: v_cvt_scalef32_pk32_bf6_bf16 v[0:5], v[0:15], v16 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[18:19], v[4:5], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[18:19], v[0:3], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_bf6_bf16_vv: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b32_e32 v20, v17 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v21, v18 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v17, 16, v0 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v18, 16, v1 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v19, 16, v2 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v22, 16, v3 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v23, 16, v4 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v24, 16, v5 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v25, 16, v6 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v26, 16, v7 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v27, 16, v8 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v28, 16, v9 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v29, 16, v10 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v30, 16, v11 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v31, 16, v12 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v32, 16, v13 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v33, 16, v14 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v34, 16, v15 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v0, v17 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v1, v18 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v2, v19 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v3, v22 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v4, v23 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v5, v24 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v6, v25 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v7, v26 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v8, v27 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v9, v28 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v10, v29 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v11, v30 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v12, v31 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v13, v32 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v14, v33 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v15, v34 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: s_nop 0 +; GFX950-GISEL-NEXT: v_cvt_scalef32_pk32_bf6_bf16 v[0:5], v[0:15], v16 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[20:21], v[0:3], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[20:21], v[4:5], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.bf6.bf16(<32 x bfloat> %src, float %scale) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_bf6_bf16_sl(<32 x bfloat> inreg %src, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_bf6_bf16_sl: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v2, s0 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v3, s1 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v4, s2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v5, s3 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v6, s4 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v7, s5 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v8, s6 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v9, s7 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v10, s8 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v11, s9 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v12, s10 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v13, s11 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v14, s12 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v15, s13 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v16, s14 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v17, s15 +; GFX950-SDAG-NEXT: s_mov_b32 s0, 0x42c80000 +; GFX950-SDAG-NEXT: v_cvt_scalef32_pk32_bf6_bf16 v[2:7], v[2:17], s0 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_bf6_bf16_sl: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: s_lshr_b32 s16, s0, 16 +; GFX950-GISEL-NEXT: s_lshr_b32 s17, s1, 16 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s16, 16 +; GFX950-GISEL-NEXT: s_and_b32 s0, s0, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s18, s2, 16 +; GFX950-GISEL-NEXT: s_or_b32 s0, s16, s0 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s17, 16 +; GFX950-GISEL-NEXT: s_and_b32 s1, s1, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s19, s3, 16 +; GFX950-GISEL-NEXT: s_or_b32 s1, s16, s1 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s18, 16 +; GFX950-GISEL-NEXT: s_and_b32 s2, s2, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s20, s4, 16 +; GFX950-GISEL-NEXT: s_or_b32 s2, s16, s2 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s19, 16 +; GFX950-GISEL-NEXT: s_and_b32 s3, s3, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s21, s5, 16 +; GFX950-GISEL-NEXT: s_or_b32 s3, s16, s3 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s20, 16 +; GFX950-GISEL-NEXT: s_and_b32 s4, s4, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s22, s6, 16 +; GFX950-GISEL-NEXT: s_or_b32 s4, s16, s4 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s21, 16 +; GFX950-GISEL-NEXT: s_and_b32 s5, s5, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s23, s7, 16 +; GFX950-GISEL-NEXT: s_or_b32 s5, s16, s5 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s22, 16 +; GFX950-GISEL-NEXT: s_and_b32 s6, s6, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s24, s8, 16 +; GFX950-GISEL-NEXT: s_or_b32 s6, s16, s6 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s23, 16 +; GFX950-GISEL-NEXT: s_and_b32 s7, s7, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s25, s9, 16 +; GFX950-GISEL-NEXT: s_or_b32 s7, s16, s7 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s24, 16 +; GFX950-GISEL-NEXT: s_and_b32 s8, s8, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s26, s10, 16 +; GFX950-GISEL-NEXT: s_or_b32 s8, s16, s8 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s25, 16 +; GFX950-GISEL-NEXT: s_and_b32 s9, s9, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s27, s11, 16 +; GFX950-GISEL-NEXT: s_or_b32 s9, s16, s9 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s26, 16 +; GFX950-GISEL-NEXT: s_and_b32 s10, s10, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s28, s12, 16 +; GFX950-GISEL-NEXT: s_or_b32 s10, s16, s10 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s27, 16 +; GFX950-GISEL-NEXT: s_and_b32 s11, s11, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s29, s13, 16 +; GFX950-GISEL-NEXT: s_or_b32 s11, s16, s11 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s28, 16 +; GFX950-GISEL-NEXT: s_and_b32 s12, s12, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s30, s14, 16 +; GFX950-GISEL-NEXT: s_or_b32 s12, s16, s12 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s29, 16 +; GFX950-GISEL-NEXT: s_and_b32 s13, s13, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s31, s15, 16 +; GFX950-GISEL-NEXT: s_or_b32 s13, s16, s13 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s30, 16 +; GFX950-GISEL-NEXT: s_and_b32 s14, s14, 0xffff +; GFX950-GISEL-NEXT: s_or_b32 s14, s16, s14 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s31, 16 +; GFX950-GISEL-NEXT: s_and_b32 s15, s15, 0xffff +; GFX950-GISEL-NEXT: s_or_b32 s15, s16, s15 +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[12:13], s[10:11] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[10:11], s[8:9] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[8:9], s[6:7] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[6:7], s[4:5] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[4:5], s[2:3] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[2:3], s[0:1] +; GFX950-GISEL-NEXT: v_mov_b32_e32 v18, 0x42c80000 +; GFX950-GISEL-NEXT: v_cvt_scalef32_pk32_bf6_bf16 v[2:7], v[2:17], v18 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.bf6.bf16(<32 x bfloat> %src, float 100.0) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_bf6_f16_vv(<32 x half> %src, float %scale, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_bf6_f16_vv: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v19, v18 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v18, v17 +; GFX950-SDAG-NEXT: v_cvt_scalef32_pk32_bf6_f16 v[0:5], v[0:15], v16 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[18:19], v[4:5], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[18:19], v[0:3], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_bf6_f16_vv: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b32_e32 v20, v17 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v21, v18 +; GFX950-GISEL-NEXT: v_cvt_scalef32_pk32_bf6_f16 v[0:5], v[0:15], v16 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[20:21], v[0:3], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[20:21], v[4:5], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.bf6.f16(<32 x half> %src, float %scale) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_bf6_f16_sl(<32 x half> inreg %src, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_bf6_f16_sl: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v2, s0 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v3, s1 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v4, s2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v5, s3 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v6, s4 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v7, s5 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v8, s6 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v9, s7 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v10, s8 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v11, s9 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v12, s10 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v13, s11 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v14, s12 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v15, s13 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v16, s14 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v17, s15 +; GFX950-SDAG-NEXT: s_mov_b32 s0, 0x42c80000 +; GFX950-SDAG-NEXT: v_cvt_scalef32_pk32_bf6_f16 v[2:7], v[2:17], s0 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_bf6_f16_sl: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[12:13], s[10:11] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[10:11], s[8:9] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[8:9], s[6:7] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[6:7], s[4:5] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[4:5], s[2:3] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[2:3], s[0:1] +; GFX950-GISEL-NEXT: v_mov_b32_e32 v18, 0x42c80000 +; GFX950-GISEL-NEXT: v_cvt_scalef32_pk32_bf6_f16 v[2:7], v[2:17], v18 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.bf6.f16(<32 x half> %src, float 100.0) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_fp6_bf16_vv(<32 x bfloat> %src, float %scale, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_fp6_bf16_vv: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v19, v18 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v18, v17 +; GFX950-SDAG-NEXT: v_cvt_scalef32_pk32_fp6_bf16 v[0:5], v[0:15], v16 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[18:19], v[4:5], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[18:19], v[0:3], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_fp6_bf16_vv: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b32_e32 v20, v17 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v21, v18 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v17, 16, v0 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v18, 16, v1 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v19, 16, v2 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v22, 16, v3 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v23, 16, v4 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v24, 16, v5 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v25, 16, v6 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v26, 16, v7 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v27, 16, v8 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v28, 16, v9 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v29, 16, v10 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v30, 16, v11 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v31, 16, v12 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v32, 16, v13 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v33, 16, v14 +; GFX950-GISEL-NEXT: v_lshrrev_b32_e32 v34, 16, v15 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v0, v17 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v1, v18 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v2, v19 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v3, v22 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v4, v23 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v5, v24 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v6, v25 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v7, v26 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v8, v27 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v9, v28 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v10, v29 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v11, v30 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v12, v31 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v13, v32 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v14, v33 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: v_mov_b32_sdwa v15, v34 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GFX950-GISEL-NEXT: s_nop 0 +; GFX950-GISEL-NEXT: v_cvt_scalef32_pk32_fp6_bf16 v[0:5], v[0:15], v16 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[20:21], v[0:3], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[20:21], v[4:5], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.fp6.bf16(<32 x bfloat> %src, float %scale) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_fp6_bf16_sl(<32 x bfloat> inreg %src, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_fp6_bf16_sl: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v2, s0 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v3, s1 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v4, s2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v5, s3 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v6, s4 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v7, s5 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v8, s6 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v9, s7 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v10, s8 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v11, s9 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v12, s10 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v13, s11 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v14, s12 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v15, s13 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v16, s14 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v17, s15 +; GFX950-SDAG-NEXT: s_mov_b32 s0, 0x42c80000 +; GFX950-SDAG-NEXT: v_cvt_scalef32_pk32_fp6_bf16 v[2:7], v[2:17], s0 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_fp6_bf16_sl: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: s_lshr_b32 s16, s0, 16 +; GFX950-GISEL-NEXT: s_lshr_b32 s17, s1, 16 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s16, 16 +; GFX950-GISEL-NEXT: s_and_b32 s0, s0, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s18, s2, 16 +; GFX950-GISEL-NEXT: s_or_b32 s0, s16, s0 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s17, 16 +; GFX950-GISEL-NEXT: s_and_b32 s1, s1, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s19, s3, 16 +; GFX950-GISEL-NEXT: s_or_b32 s1, s16, s1 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s18, 16 +; GFX950-GISEL-NEXT: s_and_b32 s2, s2, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s20, s4, 16 +; GFX950-GISEL-NEXT: s_or_b32 s2, s16, s2 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s19, 16 +; GFX950-GISEL-NEXT: s_and_b32 s3, s3, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s21, s5, 16 +; GFX950-GISEL-NEXT: s_or_b32 s3, s16, s3 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s20, 16 +; GFX950-GISEL-NEXT: s_and_b32 s4, s4, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s22, s6, 16 +; GFX950-GISEL-NEXT: s_or_b32 s4, s16, s4 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s21, 16 +; GFX950-GISEL-NEXT: s_and_b32 s5, s5, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s23, s7, 16 +; GFX950-GISEL-NEXT: s_or_b32 s5, s16, s5 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s22, 16 +; GFX950-GISEL-NEXT: s_and_b32 s6, s6, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s24, s8, 16 +; GFX950-GISEL-NEXT: s_or_b32 s6, s16, s6 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s23, 16 +; GFX950-GISEL-NEXT: s_and_b32 s7, s7, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s25, s9, 16 +; GFX950-GISEL-NEXT: s_or_b32 s7, s16, s7 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s24, 16 +; GFX950-GISEL-NEXT: s_and_b32 s8, s8, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s26, s10, 16 +; GFX950-GISEL-NEXT: s_or_b32 s8, s16, s8 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s25, 16 +; GFX950-GISEL-NEXT: s_and_b32 s9, s9, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s27, s11, 16 +; GFX950-GISEL-NEXT: s_or_b32 s9, s16, s9 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s26, 16 +; GFX950-GISEL-NEXT: s_and_b32 s10, s10, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s28, s12, 16 +; GFX950-GISEL-NEXT: s_or_b32 s10, s16, s10 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s27, 16 +; GFX950-GISEL-NEXT: s_and_b32 s11, s11, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s29, s13, 16 +; GFX950-GISEL-NEXT: s_or_b32 s11, s16, s11 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s28, 16 +; GFX950-GISEL-NEXT: s_and_b32 s12, s12, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s30, s14, 16 +; GFX950-GISEL-NEXT: s_or_b32 s12, s16, s12 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s29, 16 +; GFX950-GISEL-NEXT: s_and_b32 s13, s13, 0xffff +; GFX950-GISEL-NEXT: s_lshr_b32 s31, s15, 16 +; GFX950-GISEL-NEXT: s_or_b32 s13, s16, s13 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s30, 16 +; GFX950-GISEL-NEXT: s_and_b32 s14, s14, 0xffff +; GFX950-GISEL-NEXT: s_or_b32 s14, s16, s14 +; GFX950-GISEL-NEXT: s_lshl_b32 s16, s31, 16 +; GFX950-GISEL-NEXT: s_and_b32 s15, s15, 0xffff +; GFX950-GISEL-NEXT: s_or_b32 s15, s16, s15 +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[12:13], s[10:11] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[10:11], s[8:9] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[8:9], s[6:7] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[6:7], s[4:5] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[4:5], s[2:3] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[2:3], s[0:1] +; GFX950-GISEL-NEXT: v_mov_b32_e32 v18, 0x42c80000 +; GFX950-GISEL-NEXT: v_cvt_scalef32_pk32_fp6_bf16 v[2:7], v[2:17], v18 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.fp6.bf16(<32 x bfloat> %src, float 100.0) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_fp6_f16_vv(<32 x half> %src, float %scale, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_fp6_f16_vv: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v19, v18 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v18, v17 +; GFX950-SDAG-NEXT: v_cvt_scalef32_pk32_fp6_f16 v[0:5], v[0:15], v16 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[18:19], v[4:5], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[18:19], v[0:3], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_fp6_f16_vv: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b32_e32 v20, v17 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v21, v18 +; GFX950-GISEL-NEXT: v_cvt_scalef32_pk32_fp6_f16 v[0:5], v[0:15], v16 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[20:21], v[0:3], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[20:21], v[4:5], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.fp6.f16(<32 x half> %src, float %scale) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} + +define amdgpu_ps void @test_scalef32_pk32_fp6_f16_sl(<32 x half> inreg %src, ptr addrspace(1) %out) { +; GFX950-SDAG-LABEL: test_scalef32_pk32_fp6_f16_sl: +; GFX950-SDAG: ; %bb.0: +; GFX950-SDAG-NEXT: v_mov_b32_e32 v2, s0 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v3, s1 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v4, s2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v5, s3 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v6, s4 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v7, s5 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v8, s6 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v9, s7 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v10, s8 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v11, s9 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v12, s10 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v13, s11 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v14, s12 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v15, s13 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v16, s14 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v17, s15 +; GFX950-SDAG-NEXT: s_mov_b32 s0, 0x42c80000 +; GFX950-SDAG-NEXT: v_cvt_scalef32_pk32_fp6_f16 v[2:7], v[2:17], s0 +; GFX950-SDAG-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-SDAG-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: test_scalef32_pk32_fp6_f16_sl: +; GFX950-GISEL: ; %bb.0: +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[12:13], s[10:11] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[10:11], s[8:9] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[8:9], s[6:7] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[6:7], s[4:5] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[4:5], s[2:3] +; GFX950-GISEL-NEXT: v_mov_b64_e32 v[2:3], s[0:1] +; GFX950-GISEL-NEXT: v_mov_b32_e32 v18, 0x42c80000 +; GFX950-GISEL-NEXT: v_cvt_scalef32_pk32_fp6_f16 v[2:7], v[2:17], v18 +; GFX950-GISEL-NEXT: global_store_dwordx4 v[0:1], v[2:5], off +; GFX950-GISEL-NEXT: global_store_dwordx2 v[0:1], v[6:7], off offset:16 +; GFX950-GISEL-NEXT: s_endpgm + %cvt = tail call <6 x i32> @llvm.amdgcn.cvt.scalef32.pk32.fp6.f16(<32 x half> %src, float 100.0) + store <6 x i32> %cvt, ptr addrspace(1) %out, align 8 + ret void +} diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.read.tr.gfx950.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.read.tr.gfx950.ll new file mode 100644 index 0000000000000..0689af0d56268 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.read.tr.gfx950.ll @@ -0,0 +1,108 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 +; RUN: llc -global-isel=0 -march=amdgcn -mcpu=gfx950 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX950-SDAG %s +; RUN: llc -global-isel=1 -march=amdgcn -mcpu=gfx950 -verify-machineinstrs < %s | FileCheck -check-prefixes=GFX950-GISEL %s + +declare <2 x i32> @llvm.amdgcn.ds.read.tr4.b64.v2i32.p3(ptr addrspace(3)) +declare <2 x i32> @llvm.amdgcn.ds.read.tr8.b64.v2i32.p3(ptr addrspace(3)) +declare <3 x i32> @llvm.amdgcn.ds.read.tr6.b64.v3i32.p3(ptr addrspace(3)) +declare <4 x i16> @llvm.amdgcn.ds.read.tr16.b64.v4i16.p3(ptr addrspace(3)) + +define amdgpu_ps void @ds_read_b64_tr_b4(ptr addrspace(3) %addr, ptr addrspace(1) %use) { +; GFX950-SDAG-LABEL: ds_read_b64_tr_b4: +; GFX950-SDAG: ; %bb.0: ; %entry +; GFX950-SDAG-NEXT: v_mov_b32_e32 v3, v2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v2, v1 +; GFX950-SDAG-NEXT: ds_read_b64_tr_b4 v[0:1], v0 offset:32 +; GFX950-SDAG-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-SDAG-NEXT: global_store_dwordx2 v[2:3], v[0:1], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: ds_read_b64_tr_b4: +; GFX950-GISEL: ; %bb.0: ; %entry +; GFX950-GISEL-NEXT: v_mov_b32_e32 v4, v1 +; GFX950-GISEL-NEXT: ds_read_b64_tr_b4 v[0:1], v0 offset:32 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v5, v2 +; GFX950-GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-GISEL-NEXT: global_store_dwordx2 v[4:5], v[0:1], off +; GFX950-GISEL-NEXT: s_endpgm +entry: + %gep = getelementptr i64, ptr addrspace(3) %addr, i32 4 + %val = call <2 x i32> @llvm.amdgcn.ds.read.tr4.b64.v2i32.p3(ptr addrspace(3) %gep) + store <2 x i32> %val, ptr addrspace(1) %use + ret void +} + +define amdgpu_ps void @ds_read_b96_tr_b6(ptr addrspace(3) %addr, ptr addrspace(1) %use) { +; GFX950-SDAG-LABEL: ds_read_b96_tr_b6: +; GFX950-SDAG: ; %bb.0: ; %entry +; GFX950-SDAG-NEXT: v_mov_b32_e32 v5, v2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v4, v1 +; GFX950-SDAG-NEXT: ds_read_b96_tr_b6 v[0:2], v0 offset:32 +; GFX950-SDAG-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-SDAG-NEXT: global_store_dwordx3 v[4:5], v[0:2], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: ds_read_b96_tr_b6: +; GFX950-GISEL: ; %bb.0: ; %entry +; GFX950-GISEL-NEXT: v_mov_b32_e32 v4, v1 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v5, v2 +; GFX950-GISEL-NEXT: ds_read_b96_tr_b6 v[0:2], v0 offset:32 +; GFX950-GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-GISEL-NEXT: global_store_dwordx3 v[4:5], v[0:2], off +; GFX950-GISEL-NEXT: s_endpgm +entry: + %gep = getelementptr i64, ptr addrspace(3) %addr, i32 4 + %val = call <3 x i32> @llvm.amdgcn.ds.read.tr6.b96.v3i32.p3(ptr addrspace(3) %gep) + store <3 x i32> %val, ptr addrspace(1) %use + ret void +} + +define amdgpu_ps void @ds_read_b64_tr_b8(ptr addrspace(3) %addr, ptr addrspace(1) %use) { +; GFX950-SDAG-LABEL: ds_read_b64_tr_b8: +; GFX950-SDAG: ; %bb.0: ; %entry +; GFX950-SDAG-NEXT: v_mov_b32_e32 v3, v2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v2, v1 +; GFX950-SDAG-NEXT: ds_read_b64_tr_b8 v[0:1], v0 offset:32 +; GFX950-SDAG-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-SDAG-NEXT: global_store_dwordx2 v[2:3], v[0:1], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: ds_read_b64_tr_b8: +; GFX950-GISEL: ; %bb.0: ; %entry +; GFX950-GISEL-NEXT: v_mov_b32_e32 v4, v1 +; GFX950-GISEL-NEXT: ds_read_b64_tr_b8 v[0:1], v0 offset:32 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v5, v2 +; GFX950-GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-GISEL-NEXT: global_store_dwordx2 v[4:5], v[0:1], off +; GFX950-GISEL-NEXT: s_endpgm +entry: + %gep = getelementptr i64, ptr addrspace(3) %addr, i32 4 + %val = call <2 x i32> @llvm.amdgcn.ds.read.tr8.b64.v2i32.p3(ptr addrspace(3) %gep) + store <2 x i32> %val, ptr addrspace(1) %use + ret void +} + +define amdgpu_ps void @ds_read_b64_tr_b16(ptr addrspace(3) %addr, ptr addrspace(1) %use) { +; GFX950-SDAG-LABEL: ds_read_b64_tr_b16: +; GFX950-SDAG: ; %bb.0: ; %entry +; GFX950-SDAG-NEXT: v_mov_b32_e32 v3, v2 +; GFX950-SDAG-NEXT: v_mov_b32_e32 v2, v1 +; GFX950-SDAG-NEXT: ds_read_b64_tr_b16 v[0:1], v0 offset:32 +; GFX950-SDAG-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-SDAG-NEXT: global_store_dwordx2 v[2:3], v[0:1], off +; GFX950-SDAG-NEXT: s_endpgm +; +; GFX950-GISEL-LABEL: ds_read_b64_tr_b16: +; GFX950-GISEL: ; %bb.0: ; %entry +; GFX950-GISEL-NEXT: v_mov_b32_e32 v4, v1 +; GFX950-GISEL-NEXT: ds_read_b64_tr_b16 v[0:1], v0 offset:32 +; GFX950-GISEL-NEXT: v_mov_b32_e32 v5, v2 +; GFX950-GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-GISEL-NEXT: global_store_dwordx2 v[4:5], v[0:1], off +; GFX950-GISEL-NEXT: s_endpgm +entry: + %gep = getelementptr i64, ptr addrspace(3) %addr, i32 4 + %val = call <4 x i16> @llvm.amdgcn.ds.read.tr16.b64.v4i16.p3(ptr addrspace(3) %gep) + store <4 x i16> %val, ptr addrspace(1) %use + ret void +} diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll index b0ef568fbdce3..42acf089e8648 100644 --- a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fdot2.f32.bf16.ll @@ -1,6 +1,8 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=GFX11 ; RUN: llc -global-isel -mtriple=amdgcn -mcpu=gfx1100 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=GFX11 +; RUN: llc -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=GFX950 +; RUN: llc -global-isel -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs < %s | FileCheck %s --check-prefixes=GFX950-ISEL declare float @llvm.amdgcn.fdot2.f32.bf16(<2 x bfloat> %a, <2 x bfloat> %b, float %c, i1 %clamp) @@ -18,6 +20,38 @@ define amdgpu_kernel void @test_llvm_amdgcn_fdot2_f32_bf16_clamp( ; GFX11-NEXT: v_dot2_f32_bf16 v0, s2, s3, v0 clamp ; GFX11-NEXT: global_store_b32 v1, v0, s[0:1] ; GFX11-NEXT: s_endpgm +; +; GFX950-LABEL: test_llvm_amdgcn_fdot2_f32_bf16_clamp: +; GFX950: ; %bb.0: ; %entry +; GFX950-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x24 +; GFX950-NEXT: v_mov_b32_e32 v0, 0 +; GFX950-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-NEXT: s_load_dword s0, s[12:13], 0x0 +; GFX950-NEXT: s_load_dword s1, s[14:15], 0x0 +; GFX950-NEXT: s_load_dword s2, s[10:11], 0x0 +; GFX950-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-NEXT: v_mov_b32_e32 v1, s0 +; GFX950-NEXT: v_mov_b32_e32 v2, s1 +; GFX950-NEXT: v_dot2_f32_bf16 v1, s2, v1, v2 clamp +; GFX950-NEXT: s_nop 2 +; GFX950-NEXT: global_store_dword v0, v1, s[8:9] +; GFX950-NEXT: s_endpgm +; +; GFX950-ISEL-LABEL: test_llvm_amdgcn_fdot2_f32_bf16_clamp: +; GFX950-ISEL: ; %bb.0: ; %entry +; GFX950-ISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x24 +; GFX950-ISEL-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-ISEL-NEXT: s_load_dword s0, s[12:13], 0x0 +; GFX950-ISEL-NEXT: s_load_dword s1, s[14:15], 0x0 +; GFX950-ISEL-NEXT: s_load_dword s2, s[10:11], 0x0 +; GFX950-ISEL-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-ISEL-NEXT: v_mov_b32_e32 v0, s0 +; GFX950-ISEL-NEXT: v_mov_b32_e32 v1, s1 +; GFX950-ISEL-NEXT: v_dot2_f32_bf16 v0, s2, v0, v1 clamp +; GFX950-ISEL-NEXT: v_mov_b32_e32 v1, 0 +; GFX950-ISEL-NEXT: s_nop 1 +; GFX950-ISEL-NEXT: global_store_dword v1, v0, s[8:9] +; GFX950-ISEL-NEXT: s_endpgm ptr addrspace(1) %r, ptr addrspace(1) %a, ptr addrspace(1) %b, @@ -46,6 +80,38 @@ define amdgpu_kernel void @test_llvm_amdgcn_fdot2_f32_bf16_no_clamp( ; GFX11-NEXT: v_dot2_f32_bf16 v0, s2, s3, v0 ; GFX11-NEXT: global_store_b32 v1, v0, s[0:1] ; GFX11-NEXT: s_endpgm +; +; GFX950-LABEL: test_llvm_amdgcn_fdot2_f32_bf16_no_clamp: +; GFX950: ; %bb.0: ; %entry +; GFX950-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x24 +; GFX950-NEXT: v_mov_b32_e32 v0, 0 +; GFX950-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-NEXT: s_load_dword s0, s[12:13], 0x0 +; GFX950-NEXT: s_load_dword s1, s[14:15], 0x0 +; GFX950-NEXT: s_load_dword s2, s[10:11], 0x0 +; GFX950-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-NEXT: v_mov_b32_e32 v1, s0 +; GFX950-NEXT: v_mov_b32_e32 v2, s1 +; GFX950-NEXT: v_dot2c_f32_bf16_e32 v2, s2, v1 +; GFX950-NEXT: s_nop 2 +; GFX950-NEXT: global_store_dword v0, v2, s[8:9] +; GFX950-NEXT: s_endpgm +; +; GFX950-ISEL-LABEL: test_llvm_amdgcn_fdot2_f32_bf16_no_clamp: +; GFX950-ISEL: ; %bb.0: ; %entry +; GFX950-ISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x24 +; GFX950-ISEL-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-ISEL-NEXT: s_load_dword s0, s[12:13], 0x0 +; GFX950-ISEL-NEXT: s_load_dword s1, s[14:15], 0x0 +; GFX950-ISEL-NEXT: s_load_dword s2, s[10:11], 0x0 +; GFX950-ISEL-NEXT: s_waitcnt lgkmcnt(0) +; GFX950-ISEL-NEXT: v_mov_b32_e32 v0, s0 +; GFX950-ISEL-NEXT: v_mov_b32_e32 v1, s1 +; GFX950-ISEL-NEXT: v_dot2c_f32_bf16_e32 v1, s2, v0 +; GFX950-ISEL-NEXT: v_mov_b32_e32 v0, 0 +; GFX950-ISEL-NEXT: s_nop 1 +; GFX950-ISEL-NEXT: global_store_dword v0, v1, s[8:9] +; GFX950-ISEL-NEXT: s_endpgm ptr addrspace(1) %r, ptr addrspace(1) %a, ptr addrspace(1) %b, diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll index 88d04e9fb428a..5d149f7c0c62e 100644 --- a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 -; RUN: llc -march=amdgcn -mcpu=gfx950 -global-isel=0 < %s | FileCheck -enable-var-scope --check-prefix=GCN %s -; RUN: llc -march=amdgcn -mcpu=gfx950 -global-isel=1 < %s | FileCheck -enable-var-scope --check-prefix=GCN %s +; RUN: llc -march=amdgcn -mcpu=gfx950 -global-isel=0 < %s | FileCheck -enable-var-scope --check-prefixes=GCN,SDAG %s +; RUN: llc -march=amdgcn -mcpu=gfx950 -global-isel=1 < %s | FileCheck -enable-var-scope --check-prefixes=GCN,GISEL %s declare <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.f16(<8 x half>, <8 x half>, <4 x float>, i32 immarg, i32 immarg, i32 immarg) declare <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half>, <8 x half>, <16 x float>, i32 immarg, i32 immarg, i32 immarg) @@ -49,52 +49,366 @@ define <4 x float> @test_mfma_f32_16x16x32_f16__flags(<8 x half> %arg0, <8 x hal ret <4 x float> %result } -define <4 x float> @test_mfma_f32_16x16x32_f16__mac(<4 x float> %arg2, <8 x half> %arg0, <8 x half> %arg1) { -; GCN-LABEL: test_mfma_f32_16x16x32_f16__mac: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_accvgpr_write_b32 a0, v0 -; GCN-NEXT: v_accvgpr_write_b32 a1, v1 -; GCN-NEXT: v_accvgpr_write_b32 a2, v2 -; GCN-NEXT: v_accvgpr_write_b32 a3, v3 -; GCN-NEXT: s_nop 1 -; GCN-NEXT: v_mfma_f32_16x16x32_f16 a[0:3], v[4:7], v[8:11], a[0:3] -; GCN-NEXT: s_nop 6 -; GCN-NEXT: v_accvgpr_read_b32 v0, a0 -; GCN-NEXT: v_accvgpr_read_b32 v1, a1 -; GCN-NEXT: v_accvgpr_read_b32 v2, a2 -; GCN-NEXT: v_accvgpr_read_b32 v3, a3 -; GCN-NEXT: s_setpc_b64 s[30:31] +define amdgpu_kernel void @test_mfma_f32_16x16x32_f16_no_agpr__vgprcd(ptr addrspace(1) %out, <8 x half> %arg0, <8 x half> %arg1, <4 x float> %arg2) #0 { +; SDAG-LABEL: test_mfma_f32_16x16x32_f16_no_agpr__vgprcd: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: v_mov_b32_e32 v8, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; SDAG-NEXT: v_accvgpr_write_b32 a0, s0 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; SDAG-NEXT: v_accvgpr_write_b32 a1, s1 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s2 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s3 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_f32_16x16x32_f16 a[0:3], v[0:3], v[4:7], a[0:3] +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v8, a[0:3], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_16x16x32_f16_no_agpr__vgprcd: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s0 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s1 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s2 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s3 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_f32_16x16x32_f16 a[0:3], v[0:3], v[4:7], a[0:3] +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[6:7] +; GISEL-NEXT: s_endpgm %result = call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.f16(<8 x half> %arg0, <8 x half> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0) - ret <4 x float> %result + store <4 x float> %result, ptr addrspace(1) %out + ret void } -define <4 x float> @test_mfma_f32_16x16x32_f16___flags__mac(<4 x float> %arg2, <8 x half> %arg0, <8 x half> %arg1) { -; GCN-LABEL: test_mfma_f32_16x16x32_f16___flags__mac: -; GCN: ; %bb.0: -; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_accvgpr_write_b32 a0, v0 -; GCN-NEXT: v_accvgpr_write_b32 a1, v1 -; GCN-NEXT: v_accvgpr_write_b32 a2, v2 -; GCN-NEXT: v_accvgpr_write_b32 a3, v3 -; GCN-NEXT: s_nop 1 -; GCN-NEXT: v_mfma_f32_16x16x32_f16 a[0:3], v[4:7], v[8:11], a[0:3] cbsz:1 abid:1 blgp:1 -; GCN-NEXT: s_nop 6 -; GCN-NEXT: v_accvgpr_read_b32 v0, a0 -; GCN-NEXT: v_accvgpr_read_b32 v1, a1 -; GCN-NEXT: v_accvgpr_read_b32 v2, a2 -; GCN-NEXT: v_accvgpr_read_b32 v3, a3 -; GCN-NEXT: s_setpc_b64 s[30:31] - %result = call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.f16(<8 x half> %arg0, <8 x half> %arg1, <4 x float> %arg2, i32 1, i32 1, i32 1) - ret <4 x float> %result +define amdgpu_kernel void @test_mfma_f32_16x16x32_f16_no_agpr__vgprcd__flags(ptr addrspace(1) %out, <8 x half> %arg0, <8 x half> %arg1, <4 x float> %arg2) #0 { +; SDAG-LABEL: test_mfma_f32_16x16x32_f16_no_agpr__vgprcd__flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: v_mov_b32_e32 v8, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; SDAG-NEXT: v_accvgpr_write_b32 a0, s0 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; SDAG-NEXT: v_accvgpr_write_b32 a1, s1 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s2 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s3 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_f32_16x16x32_f16 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:3 abid:2 blgp:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v8, a[0:3], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_16x16x32_f16_no_agpr__vgprcd__flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s0 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s1 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s2 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s3 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_f32_16x16x32_f16 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:3 abid:2 blgp:1 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[6:7] +; GISEL-NEXT: s_endpgm + %result = call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.f16(<8 x half> %arg0, <8 x half> %arg1, <4 x float> %arg2, i32 3, i32 2, i32 1) + store <4 x float> %result, ptr addrspace(1) %out + ret void } ; -------------------------------------------------------------------- ; llvm.amdgcn.mfma.f32.32x32x16.f16 ; -------------------------------------------------------------------- -define <16 x float> @test_mfma_f32_32x32x16_f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2) { -; GCN-LABEL: test_mfma_f32_32x32x16_f16: +define amdgpu_kernel void @test_mfma_f32_32x32x16_f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2) #1 { +; SDAG-LABEL: test_mfma_f32_32x32x16_f16: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: v_mov_b64_e32 v[12:13], 48 +; SDAG-NEXT: v_mov_b64_e32 v[14:15], 32 +; SDAG-NEXT: v_mov_b64_e32 v[16:17], 16 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: v_mov_b64_e32 v[18:19], 0 +; SDAG-NEXT: v_mov_b32_e32 v8, s16 +; SDAG-NEXT: v_mfma_f32_32x32x16_f16 a[16:31], v[0:3], v[4:7], a[0:15] +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: v_mov_b32_e32 v9, s17 +; SDAG-NEXT: v_mov_b32_e32 v10, s18 +; SDAG-NEXT: v_mov_b32_e32 v11, s19 +; SDAG-NEXT: s_nop 3 +; SDAG-NEXT: global_store_dwordx4 v[12:13], a[28:31], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[14:15], a[24:27], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[16:17], a[20:23], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[18:19], a[16:19], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[14:15], v[8:11], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[12:13], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v[18:19], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v[16:17], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_32x32x16_f16: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], 0 +; GISEL-NEXT: v_mov_b64_e32 v[26:27], 48 +; GISEL-NEXT: v_mov_b64_e32 v[22:23], 16 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[12:13] +; GISEL-NEXT: v_mfma_f32_32x32x16_f16 a[16:31], v[0:3], v[4:7], a[0:15] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], 32 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[18:19] +; GISEL-NEXT: s_nop 3 +; GISEL-NEXT: global_store_dwordx4 v[20:21], a[16:19], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], a[20:23], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[24:25], a[24:27], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[26:27], a[28:31], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], v[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], v[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[24:25], v[16:19], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[26:27], v[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0) + store volatile <16 x float> %result, ptr addrspace(1) null + store volatile <16 x float> %arg2, ptr addrspace(1) null + ret void +} + +define amdgpu_kernel void @test_mfma_f32_32x32x16_f16__flags(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2) #1 { +; SDAG-LABEL: test_mfma_f32_32x32x16_f16__flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: v_mov_b64_e32 v[12:13], 48 +; SDAG-NEXT: v_mov_b64_e32 v[14:15], 32 +; SDAG-NEXT: v_mov_b64_e32 v[16:17], 16 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: v_mov_b64_e32 v[18:19], 0 +; SDAG-NEXT: v_mov_b32_e32 v8, s16 +; SDAG-NEXT: v_mfma_f32_32x32x16_f16 a[16:31], v[0:3], v[4:7], a[0:15] cbsz:2 abid:3 blgp:1 +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: v_mov_b32_e32 v9, s17 +; SDAG-NEXT: v_mov_b32_e32 v10, s18 +; SDAG-NEXT: v_mov_b32_e32 v11, s19 +; SDAG-NEXT: s_nop 3 +; SDAG-NEXT: global_store_dwordx4 v[12:13], a[28:31], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[14:15], a[24:27], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[16:17], a[20:23], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[18:19], a[16:19], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[14:15], v[8:11], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[12:13], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v[18:19], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v[16:17], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_32x32x16_f16__flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], 0 +; GISEL-NEXT: v_mov_b64_e32 v[26:27], 48 +; GISEL-NEXT: v_mov_b64_e32 v[22:23], 16 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[12:13] +; GISEL-NEXT: v_mfma_f32_32x32x16_f16 a[16:31], v[0:3], v[4:7], a[0:15] cbsz:2 abid:3 blgp:1 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], 32 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[18:19] +; GISEL-NEXT: s_nop 3 +; GISEL-NEXT: global_store_dwordx4 v[20:21], a[16:19], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], a[20:23], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[24:25], a[24:27], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[26:27], a[28:31], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], v[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], v[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[24:25], v[16:19], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[26:27], v[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, i32 2, i32 3, i32 1) + store volatile <16 x float> %result, ptr addrspace(1) null + store volatile <16 x float> %arg2, ptr addrspace(1) null + ret void +} + +define <16 x float> @test_mfma_f32_32x32x16_f16__mac(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_f32_32x32x16_f16__mac: ; GCN: ; %bb.0: ; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; GCN-NEXT: v_accvgpr_write_b32 a0, v8 @@ -138,8 +452,8 @@ define <16 x float> @test_mfma_f32_32x32x16_f16(<8 x half> %arg0, <8 x half> %ar ret <16 x float> %result } -define <16 x float> @test_mfma_f32_32x32x16_f16__flags(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2) { -; GCN-LABEL: test_mfma_f32_32x32x16_f16__flags: +define <16 x float> @test_mfma_f32_32x32x16_f16__mac__flags(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_f32_32x32x16_f16__mac__flags: ; GCN: ; %bb.0: ; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; GCN-NEXT: v_accvgpr_write_b32 a0, v8 @@ -183,28 +497,860 @@ define <16 x float> @test_mfma_f32_32x32x16_f16__flags(<8 x half> %arg0, <8 x ha ret <16 x float> %result } -define <16 x float> @test_mfma_f32_32x32x16_f16__mac(<16 x float> %arg2, <8 x half> %arg0, <8 x half> %arg1) { -; GCN-LABEL: test_mfma_f32_32x32x16_f16__mac: +define amdgpu_kernel void @test_mfma_f32_32x32x16_f16__vgprcd(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, ptr addrspace(1) %out) #0 { +; SDAG-LABEL: test_mfma_f32_32x32x16_f16__vgprcd: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; SDAG-NEXT: v_mov_b32_e32 v12, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; SDAG-NEXT: v_accvgpr_write_b32 a31, s23 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; SDAG-NEXT: v_accvgpr_write_b32 a30, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a29, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a28, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a27, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a26, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a25, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a24, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a23, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a22, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a21, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a20, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a19, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a18, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a17, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a16, s8 +; SDAG-NEXT: v_mov_b32_e32 v8, s20 +; SDAG-NEXT: v_mov_b32_e32 v9, s21 +; SDAG-NEXT: v_mfma_f32_32x32x16_f16 a[0:15], v[0:3], v[4:7], a[16:31] +; SDAG-NEXT: v_mov_b32_e32 v10, s22 +; SDAG-NEXT: v_mov_b32_e32 v11, s23 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: global_store_dwordx4 v12, v[8:11], s[0:1] offset:48 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, v[0:3], s[0:1] offset:32 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v12, v[0:3], s[0:1] offset:16 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v12, v[0:3], s[0:1] sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, a[8:11], s[0:1] offset:32 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, a[12:15], s[0:1] offset:48 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, a[0:3], s[0:1] sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, a[4:7], s[0:1] offset:16 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_32x32x16_f16__vgprcd: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; GISEL-NEXT: v_mov_b32_e32 v24, 0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[10:11] +; GISEL-NEXT: v_mfma_f32_32x32x16_f16 a[16:31], v[0:3], v[4:7], a[0:15] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[22:23] +; GISEL-NEXT: global_store_dwordx4 v24, v[8:11], s[0:1] sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[12:15], s[0:1] offset:16 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[16:19], s[0:1] offset:32 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[20:23], s[0:1] offset:48 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[16:19], s[0:1] sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[20:23], s[0:1] offset:16 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[24:27], s[0:1] offset:32 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[28:31], s[0:1] offset:48 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0) + store volatile <16 x float> %arg2, ptr addrspace(1) %out + store volatile <16 x float> %result, ptr addrspace(1) %out + ret void +} + +define amdgpu_kernel void @test_mfma_f32_32x32x16_f16__vgprcd__flags(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, ptr addrspace(1) %out) #0 { +; SDAG-LABEL: test_mfma_f32_32x32x16_f16__vgprcd__flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; SDAG-NEXT: v_mov_b32_e32 v12, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; SDAG-NEXT: v_accvgpr_write_b32 a31, s23 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; SDAG-NEXT: v_accvgpr_write_b32 a30, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a29, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a28, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a27, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a26, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a25, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a24, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a23, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a22, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a21, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a20, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a19, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a18, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a17, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a16, s8 +; SDAG-NEXT: v_mov_b32_e32 v8, s20 +; SDAG-NEXT: v_mov_b32_e32 v9, s21 +; SDAG-NEXT: v_mfma_f32_32x32x16_f16 a[0:15], v[0:3], v[4:7], a[16:31] cbsz:1 abid:2 blgp:3 +; SDAG-NEXT: v_mov_b32_e32 v10, s22 +; SDAG-NEXT: v_mov_b32_e32 v11, s23 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: global_store_dwordx4 v12, v[8:11], s[0:1] offset:48 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, v[0:3], s[0:1] offset:32 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v12, v[0:3], s[0:1] offset:16 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v12, v[0:3], s[0:1] sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, a[8:11], s[0:1] offset:32 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, a[12:15], s[0:1] offset:48 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, a[0:3], s[0:1] sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v12, a[4:7], s[0:1] offset:16 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_32x32x16_f16__vgprcd__flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; GISEL-NEXT: v_mov_b32_e32 v24, 0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[10:11] +; GISEL-NEXT: v_mfma_f32_32x32x16_f16 a[16:31], v[0:3], v[4:7], a[0:15] cbsz:1 abid:2 blgp:3 +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[22:23] +; GISEL-NEXT: global_store_dwordx4 v24, v[8:11], s[0:1] sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[12:15], s[0:1] offset:16 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[16:19], s[0:1] offset:32 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[20:23], s[0:1] offset:48 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[16:19], s[0:1] sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[20:23], s[0:1] offset:16 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[24:27], s[0:1] offset:32 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[28:31], s[0:1] offset:48 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, i32 1, i32 2, i32 3) + store volatile <16 x float> %arg2, ptr addrspace(1) %out + store volatile <16 x float> %result, ptr addrspace(1) %out + ret void +} + +define amdgpu_kernel void @test_mfma_f32_32x32x16_f16__vgprcd_mac(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, ptr addrspace(1) %out) #0 { +; SDAG-LABEL: test_mfma_f32_32x32x16_f16__vgprcd_mac: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_f32_32x32x16_f16 a[0:15], v[0:3], v[4:7], a[0:15] +; SDAG-NEXT: v_mov_b32_e32 v0, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; SDAG-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_32x32x16_f16__vgprcd_mac: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_f32_32x32x16_f16 a[0:15], v[0:3], v[4:7], a[0:15] +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0) + store <16 x float> %result, ptr addrspace(1) %out + ret void +} + +define amdgpu_kernel void @test_mfma_f32_32x32x16_f16__vgprcd_mac_flags(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, ptr addrspace(1) %out) #0 { +; SDAG-LABEL: test_mfma_f32_32x32x16_f16__vgprcd_mac_flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_f32_32x32x16_f16 a[0:15], v[0:3], v[4:7], a[0:15] cbsz:3 abid:2 blgp:1 +; SDAG-NEXT: v_mov_b32_e32 v0, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; SDAG-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_32x32x16_f16__vgprcd_mac_flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_f32_32x32x16_f16 a[0:15], v[0:3], v[4:7], a[0:15] cbsz:3 abid:2 blgp:1 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, i32 3, i32 2, i32 1) + store <16 x float> %result, ptr addrspace(1) %out + ret void +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.mfma.i32.16x16x64.i8 +; -------------------------------------------------------------------- + +declare <4 x i32> @llvm.amdgcn.mfma.i32.16x16x64.i8(<4 x i32>, <4 x i32>, <4 x i32>, i32 immarg, i32 immarg, i32 immarg) + +define <4 x i32> @test_mfma_i32_16x16x64_i8(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2) { +; GCN-LABEL: test_mfma_i32_16x16x64_i8: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v8 +; GCN-NEXT: v_accvgpr_write_b32 a1, v9 +; GCN-NEXT: v_accvgpr_write_b32 a2, v10 +; GCN-NEXT: v_accvgpr_write_b32 a3, v11 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], v[4:7], a[0:3] +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x i32> @llvm.amdgcn.mfma.i32.16x16x64.i8(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 0, i32 0, i32 0) + ret <4 x i32> %result +} + +define <4 x i32> @test_mfma_i32_16x16x64_i8__flags(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2) { +; GCN-LABEL: test_mfma_i32_16x16x64_i8__flags: ; GCN: ; %bb.0: ; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_accvgpr_write_b32 a0, v0 -; GCN-NEXT: v_accvgpr_write_b32 a1, v1 -; GCN-NEXT: v_accvgpr_write_b32 a2, v2 -; GCN-NEXT: v_accvgpr_write_b32 a3, v3 -; GCN-NEXT: v_accvgpr_write_b32 a4, v4 -; GCN-NEXT: v_accvgpr_write_b32 a5, v5 -; GCN-NEXT: v_accvgpr_write_b32 a6, v6 -; GCN-NEXT: v_accvgpr_write_b32 a7, v7 -; GCN-NEXT: v_accvgpr_write_b32 a8, v8 -; GCN-NEXT: v_accvgpr_write_b32 a9, v9 -; GCN-NEXT: v_accvgpr_write_b32 a10, v10 -; GCN-NEXT: v_accvgpr_write_b32 a11, v11 -; GCN-NEXT: v_accvgpr_write_b32 a12, v12 -; GCN-NEXT: v_accvgpr_write_b32 a13, v13 -; GCN-NEXT: v_accvgpr_write_b32 a14, v14 -; GCN-NEXT: v_accvgpr_write_b32 a15, v15 +; GCN-NEXT: v_accvgpr_write_b32 a0, v8 +; GCN-NEXT: v_accvgpr_write_b32 a1, v9 +; GCN-NEXT: v_accvgpr_write_b32 a2, v10 +; GCN-NEXT: v_accvgpr_write_b32 a3, v11 ; GCN-NEXT: s_nop 1 -; GCN-NEXT: v_mfma_f32_32x32x16_f16 a[0:15], v[16:19], v[20:23], a[0:15] +; GCN-NEXT: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:1 abid:1 blgp:1 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x i32> @llvm.amdgcn.mfma.i32.16x16x64.i8(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 1, i32 1, i32 1) + ret <4 x i32> %result +} + +define amdgpu_kernel void @test_mfma_i32_16x16x64_i8_no_agpr__vgprcd(ptr addrspace(1) %out, <4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2) #0 { +; SDAG-LABEL: test_mfma_i32_16x16x64_i8_no_agpr__vgprcd: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: v_mov_b32_e32 v8, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: v_mov_b32_e32 v4, s12 +; SDAG-NEXT: v_mov_b32_e32 v5, s13 +; SDAG-NEXT: v_mov_b32_e32 v6, s14 +; SDAG-NEXT: v_mov_b32_e32 v7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s0 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s1 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s2 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s3 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], v[4:7], a[0:3] +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v8, a[0:3], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_i32_16x16x64_i8_no_agpr__vgprcd: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s0 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s1 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s2 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s3 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], v[4:7], a[0:3] +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[6:7] +; GISEL-NEXT: s_endpgm + %result = call <4 x i32> @llvm.amdgcn.mfma.i32.16x16x64.i8(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 0, i32 0, i32 0) + store <4 x i32> %result, ptr addrspace(1) %out + ret void +} + +define amdgpu_kernel void @test_mfma_i32_16x16x64_i8_no_agpr__vgprcd__flags(ptr addrspace(1) %out, <4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2) #0 { +; SDAG-LABEL: test_mfma_i32_16x16x64_i8_no_agpr__vgprcd__flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: v_mov_b32_e32 v8, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: v_mov_b32_e32 v4, s12 +; SDAG-NEXT: v_mov_b32_e32 v5, s13 +; SDAG-NEXT: v_mov_b32_e32 v6, s14 +; SDAG-NEXT: v_mov_b32_e32 v7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s0 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s1 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s2 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s3 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:3 abid:2 blgp:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v8, a[0:3], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_i32_16x16x64_i8_no_agpr__vgprcd__flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s0 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s1 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s2 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s3 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:3 abid:2 blgp:1 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[6:7] +; GISEL-NEXT: s_endpgm + %result = call <4 x i32> @llvm.amdgcn.mfma.i32.16x16x64.i8(<4 x i32> %arg0, <4 x i32> %arg1, <4 x i32> %arg2, i32 3, i32 2, i32 1) + store <4 x i32> %result, ptr addrspace(1) %out + ret void +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.mfma.i32.32x32x32.i8 +; -------------------------------------------------------------------- + +declare <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32>, <4 x i32>, <16 x i32>, i32 immarg, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_mfma_i32_32x32x32_i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2) #1 { +; SDAG-LABEL: test_mfma_i32_32x32x32_i8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: v_mov_b64_e32 v[8:9], 48 +; SDAG-NEXT: v_mov_b64_e32 v[10:11], 32 +; SDAG-NEXT: v_mov_b64_e32 v[12:13], 16 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s24 +; SDAG-NEXT: v_mov_b32_e32 v1, s25 +; SDAG-NEXT: v_mov_b32_e32 v2, s26 +; SDAG-NEXT: v_mov_b32_e32 v3, s27 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_mov_b32_e32 v4, s28 +; SDAG-NEXT: v_mov_b32_e32 v5, s29 +; SDAG-NEXT: v_mov_b32_e32 v6, s30 +; SDAG-NEXT: v_mov_b32_e32 v7, s31 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: v_mov_b64_e32 v[14:15], 0 +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_i32_32x32x32_i8 a[16:31], v[0:3], v[4:7], a[0:15] +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v[8:9], a[28:31], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[10:11], a[24:27], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[12:13], a[20:23], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[14:15], a[16:19], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[10:11], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: global_store_dwordx4 v[8:9], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v[14:15], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v[12:13], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_i32_32x32x32_i8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], 0 +; GISEL-NEXT: v_mov_b64_e32 v[26:27], 48 +; GISEL-NEXT: v_mov_b64_e32 v[22:23], 16 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[12:13] +; GISEL-NEXT: v_mfma_i32_32x32x32_i8 a[16:31], v[0:3], v[4:7], a[0:15] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], 32 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[18:19] +; GISEL-NEXT: s_nop 3 +; GISEL-NEXT: global_store_dwordx4 v[20:21], a[16:19], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], a[20:23], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[24:25], a[24:27], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[26:27], a[28:31], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], v[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], v[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[24:25], v[16:19], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[26:27], v[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 0, i32 0, i32 0) + store volatile <16 x i32> %result, ptr addrspace(1) null + store volatile <16 x i32> %arg2, ptr addrspace(1) null + ret void +} + +define amdgpu_kernel void @test_mfma_i32_32x32x32_i8__flags(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2) #1 { +; SDAG-LABEL: test_mfma_i32_32x32x32_i8__flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: v_mov_b64_e32 v[8:9], 48 +; SDAG-NEXT: v_mov_b64_e32 v[10:11], 32 +; SDAG-NEXT: v_mov_b64_e32 v[12:13], 16 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s24 +; SDAG-NEXT: v_mov_b32_e32 v1, s25 +; SDAG-NEXT: v_mov_b32_e32 v2, s26 +; SDAG-NEXT: v_mov_b32_e32 v3, s27 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_mov_b32_e32 v4, s28 +; SDAG-NEXT: v_mov_b32_e32 v5, s29 +; SDAG-NEXT: v_mov_b32_e32 v6, s30 +; SDAG-NEXT: v_mov_b32_e32 v7, s31 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: v_mov_b64_e32 v[14:15], 0 +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_i32_32x32x32_i8 a[16:31], v[0:3], v[4:7], a[0:15] cbsz:2 abid:3 blgp:1 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v[8:9], a[28:31], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[10:11], a[24:27], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[12:13], a[20:23], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[14:15], a[16:19], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[10:11], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: global_store_dwordx4 v[8:9], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v[14:15], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v[12:13], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_i32_32x32x32_i8__flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], 0 +; GISEL-NEXT: v_mov_b64_e32 v[26:27], 48 +; GISEL-NEXT: v_mov_b64_e32 v[22:23], 16 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[12:13] +; GISEL-NEXT: v_mfma_i32_32x32x32_i8 a[16:31], v[0:3], v[4:7], a[0:15] cbsz:2 abid:3 blgp:1 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], 32 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[18:19] +; GISEL-NEXT: s_nop 3 +; GISEL-NEXT: global_store_dwordx4 v[20:21], a[16:19], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], a[20:23], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[24:25], a[24:27], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[26:27], a[28:31], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], v[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], v[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[24:25], v[16:19], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[26:27], v[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 2, i32 3, i32 1) + store volatile <16 x i32> %result, ptr addrspace(1) null + store volatile <16 x i32> %arg2, ptr addrspace(1) null + ret void +} + +define <16 x i32> @test_mfma_i32_32x32x32_i8__mac(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2) { +; GCN-LABEL: test_mfma_i32_32x32x32_i8__mac: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v8 +; GCN-NEXT: v_accvgpr_write_b32 a1, v9 +; GCN-NEXT: v_accvgpr_write_b32 a2, v10 +; GCN-NEXT: v_accvgpr_write_b32 a3, v11 +; GCN-NEXT: v_accvgpr_write_b32 a4, v12 +; GCN-NEXT: v_accvgpr_write_b32 a5, v13 +; GCN-NEXT: v_accvgpr_write_b32 a6, v14 +; GCN-NEXT: v_accvgpr_write_b32 a7, v15 +; GCN-NEXT: v_accvgpr_write_b32 a8, v16 +; GCN-NEXT: v_accvgpr_write_b32 a9, v17 +; GCN-NEXT: v_accvgpr_write_b32 a10, v18 +; GCN-NEXT: v_accvgpr_write_b32 a11, v19 +; GCN-NEXT: v_accvgpr_write_b32 a12, v20 +; GCN-NEXT: v_accvgpr_write_b32 a13, v21 +; GCN-NEXT: v_accvgpr_write_b32 a14, v22 +; GCN-NEXT: v_accvgpr_write_b32 a15, v23 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_i32_32x32x32_i8 a[0:15], v[0:3], v[4:7], a[0:15] ; GCN-NEXT: s_nop 7 ; GCN-NEXT: s_nop 2 ; GCN-NEXT: v_accvgpr_read_b32 v0, a0 @@ -224,32 +1370,32 @@ define <16 x float> @test_mfma_f32_32x32x16_f16__mac(<16 x float> %arg2, <8 x ha ; GCN-NEXT: v_accvgpr_read_b32 v14, a14 ; GCN-NEXT: v_accvgpr_read_b32 v15, a15 ; GCN-NEXT: s_setpc_b64 s[30:31] - %result = call <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0) - ret <16 x float> %result + %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 0, i32 0, i32 0) + ret <16 x i32> %result } -define <16 x float> @test_mfma_f32_32x32x16_f16__flags__mac(<16 x float> %arg2, <8 x half> %arg0, <8 x half> %arg1) { -; GCN-LABEL: test_mfma_f32_32x32x16_f16__flags__mac: +define <16 x i32> @test_mfma_i32_32x32x32_i8__mac__flags(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2) { +; GCN-LABEL: test_mfma_i32_32x32x32_i8__mac__flags: ; GCN: ; %bb.0: ; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) -; GCN-NEXT: v_accvgpr_write_b32 a0, v0 -; GCN-NEXT: v_accvgpr_write_b32 a1, v1 -; GCN-NEXT: v_accvgpr_write_b32 a2, v2 -; GCN-NEXT: v_accvgpr_write_b32 a3, v3 -; GCN-NEXT: v_accvgpr_write_b32 a4, v4 -; GCN-NEXT: v_accvgpr_write_b32 a5, v5 -; GCN-NEXT: v_accvgpr_write_b32 a6, v6 -; GCN-NEXT: v_accvgpr_write_b32 a7, v7 -; GCN-NEXT: v_accvgpr_write_b32 a8, v8 -; GCN-NEXT: v_accvgpr_write_b32 a9, v9 -; GCN-NEXT: v_accvgpr_write_b32 a10, v10 -; GCN-NEXT: v_accvgpr_write_b32 a11, v11 -; GCN-NEXT: v_accvgpr_write_b32 a12, v12 -; GCN-NEXT: v_accvgpr_write_b32 a13, v13 -; GCN-NEXT: v_accvgpr_write_b32 a14, v14 -; GCN-NEXT: v_accvgpr_write_b32 a15, v15 +; GCN-NEXT: v_accvgpr_write_b32 a0, v8 +; GCN-NEXT: v_accvgpr_write_b32 a1, v9 +; GCN-NEXT: v_accvgpr_write_b32 a2, v10 +; GCN-NEXT: v_accvgpr_write_b32 a3, v11 +; GCN-NEXT: v_accvgpr_write_b32 a4, v12 +; GCN-NEXT: v_accvgpr_write_b32 a5, v13 +; GCN-NEXT: v_accvgpr_write_b32 a6, v14 +; GCN-NEXT: v_accvgpr_write_b32 a7, v15 +; GCN-NEXT: v_accvgpr_write_b32 a8, v16 +; GCN-NEXT: v_accvgpr_write_b32 a9, v17 +; GCN-NEXT: v_accvgpr_write_b32 a10, v18 +; GCN-NEXT: v_accvgpr_write_b32 a11, v19 +; GCN-NEXT: v_accvgpr_write_b32 a12, v20 +; GCN-NEXT: v_accvgpr_write_b32 a13, v21 +; GCN-NEXT: v_accvgpr_write_b32 a14, v22 +; GCN-NEXT: v_accvgpr_write_b32 a15, v23 ; GCN-NEXT: s_nop 1 -; GCN-NEXT: v_mfma_f32_32x32x16_f16 a[0:15], v[16:19], v[20:23], a[0:15] cbsz:1 abid:1 blgp:1 +; GCN-NEXT: v_mfma_i32_32x32x32_i8 a[0:15], v[0:3], v[4:7], a[0:15] cbsz:1 abid:1 blgp:1 ; GCN-NEXT: s_nop 7 ; GCN-NEXT: s_nop 2 ; GCN-NEXT: v_accvgpr_read_b32 v0, a0 @@ -269,6 +1415,643 @@ define <16 x float> @test_mfma_f32_32x32x16_f16__flags__mac(<16 x float> %arg2, ; GCN-NEXT: v_accvgpr_read_b32 v14, a14 ; GCN-NEXT: v_accvgpr_read_b32 v15, a15 ; GCN-NEXT: s_setpc_b64 s[30:31] - %result = call <16 x float> @llvm.amdgcn.mfma.f32.32x32x16.f16(<8 x half> %arg0, <8 x half> %arg1, <16 x float> %arg2, i32 1, i32 1, i32 1) - ret <16 x float> %result + %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 1, i32 1, i32 1) + ret <16 x i32> %result +} + +define amdgpu_kernel void @test_mfma_i32_32x32x32_i8__vgprcd(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, ptr addrspace(1) %out) #0 { +; SDAG-LABEL: test_mfma_i32_32x32x32_i8__vgprcd: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[20:27], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; SDAG-NEXT: v_mov_b32_e32 v8, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: v_mov_b32_e32 v4, s24 +; SDAG-NEXT: v_mov_b32_e32 v5, s25 +; SDAG-NEXT: v_mov_b32_e32 v6, s26 +; SDAG-NEXT: v_mov_b32_e32 v7, s27 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a31, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a30, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a29, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a28, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a27, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a26, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a25, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a24, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a23, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a22, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a21, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a20, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a19, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a18, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a17, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a16, s8 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_i32_32x32x32_i8 a[0:15], v[0:3], v[4:7], a[16:31] +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] offset:48 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] offset:32 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] offset:16 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v8, a[8:11], s[0:1] offset:32 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v8, a[12:15], s[0:1] offset:48 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v8, a[0:3], s[0:1] sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v8, a[4:7], s[0:1] offset:16 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_i32_32x32x32_i8__vgprcd: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; GISEL-NEXT: v_mov_b32_e32 v24, 0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[10:11] +; GISEL-NEXT: v_mfma_i32_32x32x32_i8 a[16:31], v[0:3], v[4:7], a[0:15] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[22:23] +; GISEL-NEXT: global_store_dwordx4 v24, v[8:11], s[0:1] sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[12:15], s[0:1] offset:16 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[16:19], s[0:1] offset:32 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[20:23], s[0:1] offset:48 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[16:19], s[0:1] sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[20:23], s[0:1] offset:16 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[24:27], s[0:1] offset:32 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[28:31], s[0:1] offset:48 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 0, i32 0, i32 0) + store volatile <16 x i32> %arg2, ptr addrspace(1) %out + store volatile <16 x i32> %result, ptr addrspace(1) %out + ret void +} + +define amdgpu_kernel void @test_mfma_i32_32x32x32_i8__vgprcd__flags(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, ptr addrspace(1) %out) #0 { +; SDAG-LABEL: test_mfma_i32_32x32x32_i8__vgprcd__flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[20:27], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; SDAG-NEXT: v_mov_b32_e32 v8, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: v_mov_b32_e32 v4, s24 +; SDAG-NEXT: v_mov_b32_e32 v5, s25 +; SDAG-NEXT: v_mov_b32_e32 v6, s26 +; SDAG-NEXT: v_mov_b32_e32 v7, s27 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a31, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a30, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a29, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a28, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a27, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a26, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a25, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a24, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a23, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a22, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a21, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a20, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a19, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a18, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a17, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a16, s8 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_i32_32x32x32_i8 a[0:15], v[0:3], v[4:7], a[16:31] cbsz:1 abid:2 blgp:3 +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] offset:48 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] offset:32 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] offset:16 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v8, v[0:3], s[0:1] sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v8, a[8:11], s[0:1] offset:32 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v8, a[12:15], s[0:1] offset:48 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v8, a[0:3], s[0:1] sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v8, a[4:7], s[0:1] offset:16 sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_i32_32x32x32_i8__vgprcd__flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; GISEL-NEXT: v_mov_b32_e32 v24, 0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[10:11] +; GISEL-NEXT: v_mfma_i32_32x32x32_i8 a[16:31], v[0:3], v[4:7], a[0:15] cbsz:1 abid:2 blgp:3 +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[22:23] +; GISEL-NEXT: global_store_dwordx4 v24, v[8:11], s[0:1] sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[12:15], s[0:1] offset:16 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[16:19], s[0:1] offset:32 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, v[20:23], s[0:1] offset:48 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[16:19], s[0:1] sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[20:23], s[0:1] offset:16 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[24:27], s[0:1] offset:32 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v24, a[28:31], s[0:1] offset:48 sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 1, i32 2, i32 3) + store volatile <16 x i32> %arg2, ptr addrspace(1) %out + store volatile <16 x i32> %result, ptr addrspace(1) %out + ret void +} + +define amdgpu_kernel void @test_mfma_i32_32x32x32_i8__vgprcd_mac(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, ptr addrspace(1) %out) #0 { +; SDAG-LABEL: test_mfma_i32_32x32x32_i8__vgprcd_mac: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[20:27], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: v_mov_b32_e32 v4, s24 +; SDAG-NEXT: v_mov_b32_e32 v5, s25 +; SDAG-NEXT: v_mov_b32_e32 v6, s26 +; SDAG-NEXT: v_mov_b32_e32 v7, s27 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_i32_32x32x32_i8 a[0:15], v[0:3], v[4:7], a[0:15] +; SDAG-NEXT: v_mov_b32_e32 v0, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; SDAG-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_i32_32x32x32_i8__vgprcd_mac: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_i32_32x32x32_i8 a[0:15], v[0:3], v[4:7], a[0:15] +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm + %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 0, i32 0, i32 0) + store <16 x i32> %result, ptr addrspace(1) %out + ret void } + +define amdgpu_kernel void @test_mfma_i32_32x32x32_i8__vgprcd_mac_flags(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, ptr addrspace(1) %out) #0 { +; SDAG-LABEL: test_mfma_i32_32x32x32_i8__vgprcd_mac_flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[20:27], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; SDAG-NEXT: v_mov_b32_e32 v4, s24 +; SDAG-NEXT: v_mov_b32_e32 v5, s25 +; SDAG-NEXT: v_mov_b32_e32 v6, s26 +; SDAG-NEXT: v_mov_b32_e32 v7, s27 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_i32_32x32x32_i8 a[0:15], v[0:3], v[4:7], a[0:15] cbsz:3 abid:2 blgp:1 +; SDAG-NEXT: v_mov_b32_e32 v0, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; SDAG-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_i32_32x32x32_i8__vgprcd_mac_flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x64 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0xa4 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[28:29] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[30:31] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_i32_32x32x32_i8 a[0:15], v[0:3], v[4:7], a[0:15] cbsz:3 abid:2 blgp:1 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm + %result = call <16 x i32> @llvm.amdgcn.mfma.i32.32x32x32.i8(<4 x i32> %arg0, <4 x i32> %arg1, <16 x i32> %arg2, i32 3, i32 2, i32 1) + store <16 x i32> %result, ptr addrspace(1) %out + ret void +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.mfma.f32.16x16x32.bf16 +; -------------------------------------------------------------------- + +declare <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.bf16(<8 x bfloat>, <8 x bfloat>, <4 x float>, i32 immarg, i32 immarg, i32 immarg) + +define <4 x float> @test_mfma_f32_16x16x32_bf16(<8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2) { +; SDAG-LABEL: test_mfma_f32_16x16x32_bf16: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v11 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[4:7], a[0:3] +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_f32_16x16x32_bf16: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_lshrrev_b32_e32 v12, 16, v0 +; GISEL-NEXT: v_lshrrev_b32_e32 v13, 16, v1 +; GISEL-NEXT: v_lshrrev_b32_e32 v14, 16, v2 +; GISEL-NEXT: v_lshrrev_b32_e32 v15, 16, v3 +; GISEL-NEXT: v_mov_b32_sdwa v0, v12 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v1, v13 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v2, v14 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v3, v15 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_lshrrev_b32_e32 v12, 16, v4 +; GISEL-NEXT: v_lshrrev_b32_e32 v13, 16, v5 +; GISEL-NEXT: v_lshrrev_b32_e32 v14, 16, v6 +; GISEL-NEXT: v_lshrrev_b32_e32 v15, 16, v7 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v8 +; GISEL-NEXT: v_mov_b32_sdwa v4, v12 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v5, v13 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v6, v14 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v7, v15 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v11 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[4:7], a[0:3] +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.bf16(<8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_f32_16x16x32_bf16__flags(<8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2) { +; SDAG-LABEL: test_mfma_f32_16x16x32_bf16__flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v11 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:1 abid:1 blgp:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_f32_16x16x32_bf16__flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_lshrrev_b32_e32 v12, 16, v0 +; GISEL-NEXT: v_lshrrev_b32_e32 v13, 16, v1 +; GISEL-NEXT: v_lshrrev_b32_e32 v14, 16, v2 +; GISEL-NEXT: v_lshrrev_b32_e32 v15, 16, v3 +; GISEL-NEXT: v_mov_b32_sdwa v0, v12 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v1, v13 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v2, v14 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v3, v15 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_lshrrev_b32_e32 v12, 16, v4 +; GISEL-NEXT: v_lshrrev_b32_e32 v13, 16, v5 +; GISEL-NEXT: v_lshrrev_b32_e32 v14, 16, v6 +; GISEL-NEXT: v_lshrrev_b32_e32 v15, 16, v7 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v8 +; GISEL-NEXT: v_mov_b32_sdwa v4, v12 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v5, v13 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v6, v14 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v7, v15 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v11 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:1 abid:1 blgp:1 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.bf16(<8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2, i32 1, i32 1, i32 1) + ret <4 x float> %result +} + +define amdgpu_kernel void @test_mfma_f32_16x16x32_bf16_no_agpr__vgprcd(ptr addrspace(1) %out, <8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2) #0 { +; SDAG-LABEL: test_mfma_f32_16x16x32_bf16_no_agpr__vgprcd: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: v_mov_b32_e32 v8, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; SDAG-NEXT: v_accvgpr_write_b32 a0, s0 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; SDAG-NEXT: v_accvgpr_write_b32 a1, s1 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s2 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s3 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[4:7], a[0:3] +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v8, a[0:3], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_16x16x32_bf16_no_agpr__vgprcd: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s0 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s1 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s2 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s3 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[4:7], a[0:3] +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[6:7] +; GISEL-NEXT: s_endpgm + %result = call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.bf16(<8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +define amdgpu_kernel void @test_mfma_f32_16x16x32_bf16_no_agpr__vgprcd__flags(ptr addrspace(1) %out, <8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2) #0 { +; SDAG-LABEL: test_mfma_f32_16x16x32_bf16_no_agpr__vgprcd__flags: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: v_mov_b32_e32 v8, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; SDAG-NEXT: v_accvgpr_write_b32 a0, s0 +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; SDAG-NEXT: v_accvgpr_write_b32 a1, s1 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s2 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s3 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:3 abid:2 blgp:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v8, a[0:3], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_f32_16x16x32_bf16_no_agpr__vgprcd__flags: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s0 +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s1 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s2 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s3 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:3 abid:2 blgp:1 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[6:7] +; GISEL-NEXT: s_endpgm + %result = call <4 x float> @llvm.amdgcn.mfma.f32.16x16x32.bf16(<8 x bfloat> %arg0, <8 x bfloat> %arg1, <4 x float> %arg2, i32 3, i32 2, i32 1) + store <4 x float> %result, ptr addrspace(1) %out + ret void +} + +attributes #0 = { "amdgpu-flat-work-group-size"="512,512" } +attributes #1 = { "amdgpu-flat-work-group-size"="1,64" } diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll new file mode 100644 index 0000000000000..9a8282231ac15 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.ll @@ -0,0 +1,2368 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=0 < %s | FileCheck -check-prefixes=GCN,SDAG %s +; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=1 < %s | FileCheck -check-prefixes=GCN,GISEL %s + +; 0 = fp8 +; 1 = bf8 +; 2 = fp6 +; 3 = bf6 +; 4 = fp4 + +; -------------------------------------------------------------------- +; Different format signatures +; -------------------------------------------------------------------- + +; fp8 x fp8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp0(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_1_1__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_1_1__cbsz1__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 1, i32 %scale0, i32 1, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_2_2__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_2_2__cbsz1__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 2, i32 %scale0, i32 2, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_3_3__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_3_3__cbsz1__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 3, i32 %scale0, i32 3, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_3__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_3__cbsz1__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 3, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_3_0__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_3_0__cbsz1__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 3, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_2_3__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_2_3__cbsz1__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 2, i32 %scale0, i32 3, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_3_2__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_3_2__cbsz1__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 3, i32 %scale0, i32 2, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp0__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp8 x bf8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp1__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp8 x fp6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp2(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp2__constant_scale_0_0(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp2__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:13], a[0:3] blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp8 x bf6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp3(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp3__constant_scale_0_0(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:13], a[0:3] blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp8 x fp4 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp4(<8 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:11], a[0:3], v16, v17 op_sel_hi:[0,0,0] blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp4__constant_scale_0_0(<8 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz0__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:11], a[0:3] blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; bf8 x fp8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp0(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] cbsz:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp0__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] cbsz:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; bf8 x bf8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] cbsz:1 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp1__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] cbsz:1 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; bf8 x fp6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp2(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] cbsz:1 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp2__constant_scale_0(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp2__constant_scale_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:13], a[0:3] cbsz:1 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; bf8 x bf6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp3(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] cbsz:1 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp3__constant_scale_0_0(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:13], a[0:3] cbsz:1 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; bf8 x fp4 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp4(<8 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:11], a[0:3], v16, v17 op_sel_hi:[0,0,0] cbsz:1 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp4__constant_scale_0_0(<8 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz1__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:11], a[0:3] cbsz:1 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 1, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp6 x fp8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp0(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] cbsz:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp0__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:13], a[0:3] cbsz:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp6 x bf8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp1(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] cbsz:2 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp1__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:13], a[0:3] cbsz:2 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp6 x fp6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp2(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:11], a[0:3], v16, v17 op_sel_hi:[0,0,0] cbsz:2 blgp:2 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp2__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp2__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:11], a[0:3] cbsz:2 blgp:2 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp6 x bf6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp3(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:11], a[0:3], v16, v17 op_sel_hi:[0,0,0] cbsz:2 blgp:3 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp3__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:11], a[0:3] cbsz:2 blgp:3 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + + +; bf6 x fp8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp0(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] cbsz:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp0__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:13], a[0:3] cbsz:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; bf6 x bf8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp1(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] cbsz:3 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp1__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:13], a[0:3] cbsz:3 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; bf6 x fp6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp2(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:11], a[0:3], v16, v17 op_sel_hi:[0,0,0] cbsz:3 blgp:2 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp2__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp2__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:11], a[0:3] cbsz:3 blgp:2 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; bf6 x fp4 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp4(<6 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:9], a[0:3], v14, v15 op_sel_hi:[0,0,0] cbsz:3 blgp:4 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp4__constant_scale_0_0(<6 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:9], a[0:3] cbsz:3 blgp:4 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; bf6 x bf6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp3(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:11], a[0:3], v16, v17 op_sel_hi:[0,0,0] cbsz:3 blgp:3 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp3__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz3__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:11], a[0:3] cbsz:3 blgp:3 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 3, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp6 x fp4 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp4(<6 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:9], a[0:3], v14, v15 op_sel_hi:[0,0,0] cbsz:2 blgp:4 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp4__constant_scale_0_0(<6 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz2__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:9], a[0:3] cbsz:2 blgp:4 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp4 x fp8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp0(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:11], a[0:3], v16, v17 op_sel_hi:[0,0,0] cbsz:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp0__constant_scale_0_0(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:11], a[0:3] cbsz:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp4 x bf8 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp1(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:11], a[0:3], v16, v17 op_sel_hi:[0,0,0] cbsz:4 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp1__constant_scale_0_0(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:11], a[0:3] cbsz:4 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp4 x fp6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp2(<4 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:9], a[0:3], v14, v15 op_sel_hi:[0,0,0] cbsz:4 blgp:2 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp2__constant_scale_0_0(<4 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp2__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:9], a[0:3] cbsz:4 blgp:2 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp4 x bf6 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp3(<4 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:9], a[0:3], v14, v15 op_sel_hi:[0,0,0] cbsz:4 blgp:3 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp3__constant_scale_0_0(<4 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:9], a[0:3] cbsz:4 blgp:3 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; fp4 x fp4 +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp4(<4 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v8 +; GCN-NEXT: v_accvgpr_write_b32 a1, v9 +; GCN-NEXT: v_accvgpr_write_b32 a2, v10 +; GCN-NEXT: v_accvgpr_write_b32 a3, v11 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:7], a[0:3], v12, v13 op_sel_hi:[0,0,0] cbsz:4 blgp:4 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v4i32(<4 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp4__constant_scale_0_0(<4 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__cbsz4__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v8 +; GCN-NEXT: v_accvgpr_write_b32 a1, v9 +; GCN-NEXT: v_accvgpr_write_b32 a2, v10 +; GCN-NEXT: v_accvgpr_write_b32 a3, v11 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:3], v[4:7], a[0:3] cbsz:4 blgp:4 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v4i32(<4 x i32> %arg0, <4 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; -------------------------------------------------------------------- +; Different input parameter classes +; -------------------------------------------------------------------- + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__sgpr_scaleA__sgpr_scaleB(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 inreg %scale0, i32 inreg %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__sgpr_scaleA__sgpr_scaleB: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_mov_b32_e32 v16, s1 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], s0, v16 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__sgpr_scaleA__vgpr_scaleB(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 inreg %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__sgpr_scaleA__vgpr_scaleB: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], s0, v20 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__vgpr_scaleA__sgpr_scaleB(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 inreg %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__vgpr_scaleA__sgpr_scaleB: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, s0 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgprs(<8 x i32> inreg %arg0, <8 x i32> inreg %arg1, <4 x float> inreg %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgprs: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v12, s0 +; SDAG-NEXT: v_mov_b32_e32 v13, s1 +; SDAG-NEXT: v_mov_b32_e32 v14, s2 +; SDAG-NEXT: v_mov_b32_e32 v15, s3 +; SDAG-NEXT: v_mov_b32_e32 v16, s16 +; SDAG-NEXT: v_mov_b32_e32 v17, s17 +; SDAG-NEXT: v_mov_b32_e32 v18, s18 +; SDAG-NEXT: v_mov_b32_e32 v19, s19 +; SDAG-NEXT: v_mov_b32_e32 v20, s28 +; SDAG-NEXT: v_mov_b32_e32 v23, v1 +; SDAG-NEXT: v_mov_b32_e32 v22, v0 +; SDAG-NEXT: v_mov_b32_e32 v21, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v20 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_mov_b32_e32 v8, s24 +; SDAG-NEXT: v_mov_b32_e32 v9, s25 +; SDAG-NEXT: v_mov_b32_e32 v10, s26 +; SDAG-NEXT: v_mov_b32_e32 v11, s27 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[12:19], v[4:11], a[0:3], v2, v3 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgprs: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v20, s28 +; GISEL-NEXT: v_mov_b32_e32 v22, v0 +; GISEL-NEXT: v_mov_b32_e32 v23, v1 +; GISEL-NEXT: v_mov_b32_e32 v21, s29 +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[20:21] +; GISEL-NEXT: v_accvgpr_write_b32 a0, v20 +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[26:27] +; GISEL-NEXT: v_accvgpr_write_b32 a1, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v23 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[4:11], v[12:19], a[0:3], v2, v3 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgpr_vgpr_vgpr__sgpr_vgpr(<8 x i32> inreg %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 inreg %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgpr_vgpr_vgpr__sgpr_vgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v14, s0 +; SDAG-NEXT: v_mov_b32_e32 v15, s1 +; SDAG-NEXT: v_mov_b32_e32 v16, s2 +; SDAG-NEXT: v_mov_b32_e32 v17, s3 +; SDAG-NEXT: v_mov_b32_e32 v18, s16 +; SDAG-NEXT: v_mov_b32_e32 v19, s17 +; SDAG-NEXT: v_mov_b32_e32 v20, s18 +; SDAG-NEXT: v_mov_b32_e32 v21, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v11 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[14:21], v[0:7], a[0:3], s20, v12 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgpr_vgpr_vgpr__sgpr_vgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, v8 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v11 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[14:21], v[0:7], a[0:3], s20, v12 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgpr_vgpr_vgpr__vgpr_sgpr(<8 x i32> inreg %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 inreg %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgpr_vgpr_vgpr__vgpr_sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v14, s0 +; SDAG-NEXT: v_mov_b32_e32 v15, s1 +; SDAG-NEXT: v_mov_b32_e32 v16, s2 +; SDAG-NEXT: v_mov_b32_e32 v17, s3 +; SDAG-NEXT: v_mov_b32_e32 v18, s16 +; SDAG-NEXT: v_mov_b32_e32 v19, s17 +; SDAG-NEXT: v_mov_b32_e32 v20, s18 +; SDAG-NEXT: v_mov_b32_e32 v21, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v11 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[14:21], v[0:7], a[0:3], v12, s20 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgpr_vgpr_vgpr__vgpr_sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, v8 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v11 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[14:21], v[0:7], a[0:3], v12, s20 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0_vgpr_sgpr_vgpr__vgpr_sgpr(<8 x i32> %arg0, <8 x i32> inreg %arg1, <4 x float> %arg2, i32 %scale0, i32 inreg %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_vgpr_sgpr_vgpr__vgpr_sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v8 +; SDAG-NEXT: v_mov_b32_e32 v14, s0 +; SDAG-NEXT: v_mov_b32_e32 v15, s1 +; SDAG-NEXT: v_mov_b32_e32 v16, s2 +; SDAG-NEXT: v_mov_b32_e32 v17, s3 +; SDAG-NEXT: v_mov_b32_e32 v18, s16 +; SDAG-NEXT: v_mov_b32_e32 v19, s17 +; SDAG-NEXT: v_mov_b32_e32 v20, s18 +; SDAG-NEXT: v_mov_b32_e32 v21, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v11 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[14:21], a[0:3], v12, s20 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_vgpr_sgpr_vgpr__vgpr_sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[18:19] +; GISEL-NEXT: v_accvgpr_write_b32 a0, v8 +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a1, v9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v11 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[14:21], a[0:3], v12, s20 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0_vgpr_vgpr_sgpr__vgpr_sgpr(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> inreg %arg2, i32 %scale0, i32 inreg %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_vgpr_vgpr_sgpr__vgpr_sgpr: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, s0 +; GCN-NEXT: v_accvgpr_write_b32 a1, s1 +; GCN-NEXT: v_accvgpr_write_b32 a2, s2 +; GCN-NEXT: v_accvgpr_write_b32 a3, s3 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v16, s16 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgpr_vgpr_sgpr__vgpr_sgpr(<8 x i32> inreg %arg0, <8 x i32> %arg1, <4 x float> inreg %arg2, i32 %scale0, i32 inreg %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgpr_vgpr_sgpr__vgpr_sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v10, s0 +; SDAG-NEXT: v_mov_b32_e32 v11, s1 +; SDAG-NEXT: v_mov_b32_e32 v12, s2 +; SDAG-NEXT: v_mov_b32_e32 v13, s3 +; SDAG-NEXT: v_mov_b32_e32 v14, s16 +; SDAG-NEXT: v_mov_b32_e32 v15, s17 +; SDAG-NEXT: v_mov_b32_e32 v16, s18 +; SDAG-NEXT: v_mov_b32_e32 v17, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[10:17], v[0:7], a[0:3], v8, s24 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0_sgpr_vgpr_sgpr__vgpr_sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[18:19] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a1, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s23 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[10:17], v[0:7], a[0:3], v8, s24 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__scaleA_inlineimm__scaleB_inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__scaleA_inlineimm__scaleB_inlineimm: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], 33, -2 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 2, i32 33, i32 2, i32 -2) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__scaleA_kimm__scaleB_inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__scaleA_kimm__scaleB_inlineimm: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: s_movk_i32 s0, 0x41 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], s0, -2 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__scaleA_kimm__scaleB_inlineimm: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_mov_b32_e32 v16, 0x41 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v16, -2 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 2, i32 65, i32 2, i32 -2) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4_0_0__scaleA_kimm__scaleB_kimm(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__scaleA_kimm__scaleB_kimm: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: s_movk_i32 s0, 0x41 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_mov_b32_e32 v16, 0x4d +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], s0, v16 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4_0_0__scaleA_kimm__scaleB_kimm: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_mov_b32_e32 v16, 0x41 +; GISEL-NEXT: v_mov_b32_e32 v17, 0x4d +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v16, v17 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 2, i32 65, i32 2, i32 77) + ret <4 x float> %result +} + +define amdgpu_kernel void @test_mfma_scale_f32_16x16x128_f8f6f4__vgprcd(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1, ptr addrspace(1) %ptr) #0 { +; SDAG-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4__vgprcd: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x0 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: v_mov_b32_e32 v4, s12 +; SDAG-NEXT: v_mov_b32_e32 v5, s13 +; SDAG-NEXT: v_mov_b32_e32 v6, s14 +; SDAG-NEXT: v_mov_b32_e32 v7, s15 +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x40 +; SDAG-NEXT: v_mov_b32_e32 v8, s16 +; SDAG-NEXT: v_mov_b32_e32 v9, s17 +; SDAG-NEXT: v_mov_b32_e32 v10, s18 +; SDAG-NEXT: v_mov_b32_e32 v11, s19 +; SDAG-NEXT: v_mov_b32_e32 v12, s20 +; SDAG-NEXT: v_mov_b32_e32 v13, s21 +; SDAG-NEXT: v_mov_b32_e32 v14, s22 +; SDAG-NEXT: v_mov_b32_e32 v15, s23 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_mov_b32_e32 v17, s13 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], s12, v17 op_sel_hi:[0,0,0] blgp:2 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: global_store_dwordx4 v16, a[0:3], s[14:15] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4__vgprcd: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x0 +; GISEL-NEXT: s_load_dwordx8 s[24:31], s[4:5], 0x40 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[16:17] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s24 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[22:23] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s25 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s26 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s27 +; GISEL-NEXT: v_mov_b32_e32 v16, s29 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], s28, v16 op_sel_hi:[0,0,0] blgp:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[30:31] +; GISEL-NEXT: s_endpgm + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 2, i32 3, i32 %scale0, i32 1, i32 %scale1) + store <4 x float> %result, ptr addrspace(1) %ptr, align 16 + ret void +} + +define amdgpu_kernel void @test_mfma_scale_f32_16x16x128_f8f6f4__vgprcd___scaleA_kimm__scaleB__inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, ptr addrspace(1) %ptr) #0 { +; SDAG-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4__vgprcd___scaleA_kimm__scaleB__inlineimm: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x0 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x40 +; SDAG-NEXT: s_movk_i32 s6, 0x41 +; SDAG-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x50 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: v_mov_b32_e32 v4, s12 +; SDAG-NEXT: v_mov_b32_e32 v5, s13 +; SDAG-NEXT: v_mov_b32_e32 v6, s14 +; SDAG-NEXT: v_mov_b32_e32 v7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s0 +; SDAG-NEXT: v_mov_b32_e32 v8, s16 +; SDAG-NEXT: v_mov_b32_e32 v9, s17 +; SDAG-NEXT: v_mov_b32_e32 v10, s18 +; SDAG-NEXT: v_mov_b32_e32 v11, s19 +; SDAG-NEXT: v_mov_b32_e32 v12, s20 +; SDAG-NEXT: v_mov_b32_e32 v13, s21 +; SDAG-NEXT: v_mov_b32_e32 v14, s22 +; SDAG-NEXT: v_mov_b32_e32 v15, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s1 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s2 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s3 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], s6, -2 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: global_store_dwordx4 v16, a[0:3], s[4:5] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4__vgprcd___scaleA_kimm__scaleB__inlineimm: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x0 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x40 +; GISEL-NEXT: v_mov_b32_e32 v16, 0x41 +; GISEL-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x50 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[16:17] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s0 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[22:23] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s1 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s2 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s3 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v16, -2 op_sel_hi:[0,0,0] +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[4:5] +; GISEL-NEXT: s_endpgm + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 3, i32 65, i32 1, i32 -2) + store <4 x float> %result, ptr addrspace(1) %ptr, align 16 + ret void +} + +; This should be optimized to avoid the scale +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___constant_scale_0_0_a(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___constant_scale_0_0_a: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +; This should be optimized to avoid the scale, with non-0 op_sel arguments. +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___constant_scale_0_0_b(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___constant_scale_0_0_b: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 3, i32 0, i32 1, i32 0) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___constant_scale_0_1(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___constant_scale_0_1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], 0, 1 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___constant_scale_1_0_a(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___constant_scale_1_0_a: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], 1, 0 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0) + ret <4 x float> %result +} + +; -------------------------------------------------------------------- +; Incorrect signature for format cases (IR vector too large) +; -------------------------------------------------------------------- + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v8i32_fp6: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp8: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] cbsz:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp6: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] cbsz:2 blgp:2 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] cbsz:2 blgp:2 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v8i32_fp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp8: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] cbsz:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v6i32_fp4(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v6i32_fp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v6i32_fp4__v8i32_fp8(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v6i32_fp4__v8i32_fp8: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:5], v[6:13], a[0:3], v18, v19 op_sel_hi:[0,0,0] cbsz:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] cbsz:4 blgp:4 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] cbsz:4 blgp:4 +; GCN-NEXT: s_nop 6 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32>, <8 x i32>, <4 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #1 +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32>, <6 x i32>, <4 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #1 +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v4i32(<4 x i32>, <4 x i32>, <4 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #1 +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v6i32(<4 x i32>, <6 x i32>, <4 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #1 +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v8i32(<4 x i32>, <8 x i32>, <4 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #1 +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v4i32(<6 x i32>, <4 x i32>, <4 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #1 +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32>, <8 x i32>, <4 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #1 +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v4i32(<8 x i32>, <4 x i32>, <4 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #1 +declare <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32>, <6 x i32>, <4 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #1 + +attributes #0 = { "amdgpu-flat-work-group-size"="512,512" } +attributes #1 = { convergent nocallback nofree nosync nounwind willreturn memory(none) } diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll new file mode 100644 index 0000000000000..05f8739e7cb89 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.ll @@ -0,0 +1,6207 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=0 < %s | FileCheck -check-prefixes=GCN,SDAG %s +; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 -global-isel=1 < %s | FileCheck -check-prefixes=GCN,GISEL %s + +; 0 = fp8 +; 1 = bf8 +; 2 = fp6 +; 3 = bf6 +; 4 = fp4 + +; -------------------------------------------------------------------- +; Different format signatures +; -------------------------------------------------------------------- + +; fp8 x fp8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_1_1__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_1_1__cbsz1__blgp1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_1_1__cbsz1__blgp1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 1, i32 %scale0, i32 1, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_2_2__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_2_2__cbsz1__blgp1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_2_2__cbsz1__blgp1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 2, i32 %scale0, i32 2, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_3_3__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_3__cbsz1__blgp1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_3__cbsz1__blgp1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 3, i32 %scale0, i32 3, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_3__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_3__cbsz1__blgp1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_3__cbsz1__blgp1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 3, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_3_0__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_0__cbsz1__blgp1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_0__cbsz1__blgp1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 3, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_2_3__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_2_3__cbsz1__blgp1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_2_3__cbsz1__blgp1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 2, i32 %scale0, i32 3, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_3_2__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_2__cbsz1__blgp1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_3_2__cbsz1__blgp1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 3, i32 %scale0, i32 2, i32 %scale1) + ret <16 x float> %result +} + +; This should be optimized to avoid the scale +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp8 x bf8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] blgp:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] blgp:1 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp8 x fp6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp2(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp2__constant_scale_0_0(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp2__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15] blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp8 x bf6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp3(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp3__constant_scale_0_0(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15] blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp8 x fp4 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp4(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp4__constant_scale_0_0(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz0__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:11], a[0:15] blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; bf8 x fp8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:1 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] cbsz:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; bf8 x bf8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:1 blgp:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:1 blgp:1 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1__constant_scale_0_0(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] cbsz:1 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; bf8 x fp6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp2(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:1 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp2__constant_scale_0(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp2__constant_scale_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15] cbsz:1 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; bf8 x bf6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp3(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:1 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp3__constant_scale_0_0(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15] cbsz:1 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; bf8 x fp4 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp4(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:1 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp4__constant_scale_0_0(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz1__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:11], a[0:15] cbsz:1 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 1, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp6 x fp8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp0__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15] cbsz:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp6 x bf8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp1(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:2 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp1__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15] cbsz:2 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp6 x fp6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp2(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:2 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp2__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp2__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15] cbsz:2 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp6 x bf6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp3(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:2 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp3__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15] cbsz:2 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + + +; bf6 x fp8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp0__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15] cbsz:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; bf6 x bf8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp1(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:3 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp1__constant_scale_0_0(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15] cbsz:3 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; bf6 x fp6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp2(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:3 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp2__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp2__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15] cbsz:3 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; bf6 x fp4 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp4(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: v_accvgpr_write_b32 a4, v14 +; GCN-NEXT: v_accvgpr_write_b32 a5, v15 +; GCN-NEXT: v_accvgpr_write_b32 a6, v16 +; GCN-NEXT: v_accvgpr_write_b32 a7, v17 +; GCN-NEXT: v_accvgpr_write_b32 a8, v18 +; GCN-NEXT: v_accvgpr_write_b32 a9, v19 +; GCN-NEXT: v_accvgpr_write_b32 a10, v20 +; GCN-NEXT: v_accvgpr_write_b32 a11, v21 +; GCN-NEXT: v_accvgpr_write_b32 a12, v22 +; GCN-NEXT: v_accvgpr_write_b32 a13, v23 +; GCN-NEXT: v_accvgpr_write_b32 a14, v24 +; GCN-NEXT: v_accvgpr_write_b32 a15, v25 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:9], a[0:15], v26, v27 op_sel_hi:[0,0,0] cbsz:3 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp4__constant_scale_0_0(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: v_accvgpr_write_b32 a4, v14 +; GCN-NEXT: v_accvgpr_write_b32 a5, v15 +; GCN-NEXT: v_accvgpr_write_b32 a6, v16 +; GCN-NEXT: v_accvgpr_write_b32 a7, v17 +; GCN-NEXT: v_accvgpr_write_b32 a8, v18 +; GCN-NEXT: v_accvgpr_write_b32 a9, v19 +; GCN-NEXT: v_accvgpr_write_b32 a10, v20 +; GCN-NEXT: v_accvgpr_write_b32 a11, v21 +; GCN-NEXT: v_accvgpr_write_b32 a12, v22 +; GCN-NEXT: v_accvgpr_write_b32 a13, v23 +; GCN-NEXT: v_accvgpr_write_b32 a14, v24 +; GCN-NEXT: v_accvgpr_write_b32 a15, v25 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:9], a[0:15] cbsz:3 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; bf6 x bf6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp3(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:3 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp3__constant_scale_0_0(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz3__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:11], a[0:15] cbsz:3 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 3, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp6 x fp4 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp4(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: v_accvgpr_write_b32 a4, v14 +; GCN-NEXT: v_accvgpr_write_b32 a5, v15 +; GCN-NEXT: v_accvgpr_write_b32 a6, v16 +; GCN-NEXT: v_accvgpr_write_b32 a7, v17 +; GCN-NEXT: v_accvgpr_write_b32 a8, v18 +; GCN-NEXT: v_accvgpr_write_b32 a9, v19 +; GCN-NEXT: v_accvgpr_write_b32 a10, v20 +; GCN-NEXT: v_accvgpr_write_b32 a11, v21 +; GCN-NEXT: v_accvgpr_write_b32 a12, v22 +; GCN-NEXT: v_accvgpr_write_b32 a13, v23 +; GCN-NEXT: v_accvgpr_write_b32 a14, v24 +; GCN-NEXT: v_accvgpr_write_b32 a15, v25 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:9], a[0:15], v26, v27 op_sel_hi:[0,0,0] cbsz:2 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp4__constant_scale_0_0(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz2__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: v_accvgpr_write_b32 a4, v14 +; GCN-NEXT: v_accvgpr_write_b32 a5, v15 +; GCN-NEXT: v_accvgpr_write_b32 a6, v16 +; GCN-NEXT: v_accvgpr_write_b32 a7, v17 +; GCN-NEXT: v_accvgpr_write_b32 a8, v18 +; GCN-NEXT: v_accvgpr_write_b32 a9, v19 +; GCN-NEXT: v_accvgpr_write_b32 a10, v20 +; GCN-NEXT: v_accvgpr_write_b32 a11, v21 +; GCN-NEXT: v_accvgpr_write_b32 a12, v22 +; GCN-NEXT: v_accvgpr_write_b32 a13, v23 +; GCN-NEXT: v_accvgpr_write_b32 a14, v24 +; GCN-NEXT: v_accvgpr_write_b32 a15, v25 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:9], a[0:15] cbsz:2 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp4 x fp8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp0__constant_scale_0_0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp0__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:11], a[0:15] cbsz:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp4 x bf8 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp1(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:11], a[0:15], v28, v29 op_sel_hi:[0,0,0] cbsz:4 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 1, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp1__constant_scale_0_0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp1__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v12 +; GCN-NEXT: v_accvgpr_write_b32 a1, v13 +; GCN-NEXT: v_accvgpr_write_b32 a2, v14 +; GCN-NEXT: v_accvgpr_write_b32 a3, v15 +; GCN-NEXT: v_accvgpr_write_b32 a4, v16 +; GCN-NEXT: v_accvgpr_write_b32 a5, v17 +; GCN-NEXT: v_accvgpr_write_b32 a6, v18 +; GCN-NEXT: v_accvgpr_write_b32 a7, v19 +; GCN-NEXT: v_accvgpr_write_b32 a8, v20 +; GCN-NEXT: v_accvgpr_write_b32 a9, v21 +; GCN-NEXT: v_accvgpr_write_b32 a10, v22 +; GCN-NEXT: v_accvgpr_write_b32 a11, v23 +; GCN-NEXT: v_accvgpr_write_b32 a12, v24 +; GCN-NEXT: v_accvgpr_write_b32 a13, v25 +; GCN-NEXT: v_accvgpr_write_b32 a14, v26 +; GCN-NEXT: v_accvgpr_write_b32 a15, v27 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:11], a[0:15] cbsz:4 blgp:1 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 1, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp4 x fp6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp2(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp2: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: v_accvgpr_write_b32 a4, v14 +; GCN-NEXT: v_accvgpr_write_b32 a5, v15 +; GCN-NEXT: v_accvgpr_write_b32 a6, v16 +; GCN-NEXT: v_accvgpr_write_b32 a7, v17 +; GCN-NEXT: v_accvgpr_write_b32 a8, v18 +; GCN-NEXT: v_accvgpr_write_b32 a9, v19 +; GCN-NEXT: v_accvgpr_write_b32 a10, v20 +; GCN-NEXT: v_accvgpr_write_b32 a11, v21 +; GCN-NEXT: v_accvgpr_write_b32 a12, v22 +; GCN-NEXT: v_accvgpr_write_b32 a13, v23 +; GCN-NEXT: v_accvgpr_write_b32 a14, v24 +; GCN-NEXT: v_accvgpr_write_b32 a15, v25 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:9], a[0:15], v26, v27 op_sel_hi:[0,0,0] cbsz:4 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp2__constant_scale_0_0(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp2__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: v_accvgpr_write_b32 a4, v14 +; GCN-NEXT: v_accvgpr_write_b32 a5, v15 +; GCN-NEXT: v_accvgpr_write_b32 a6, v16 +; GCN-NEXT: v_accvgpr_write_b32 a7, v17 +; GCN-NEXT: v_accvgpr_write_b32 a8, v18 +; GCN-NEXT: v_accvgpr_write_b32 a9, v19 +; GCN-NEXT: v_accvgpr_write_b32 a10, v20 +; GCN-NEXT: v_accvgpr_write_b32 a11, v21 +; GCN-NEXT: v_accvgpr_write_b32 a12, v22 +; GCN-NEXT: v_accvgpr_write_b32 a13, v23 +; GCN-NEXT: v_accvgpr_write_b32 a14, v24 +; GCN-NEXT: v_accvgpr_write_b32 a15, v25 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:9], a[0:15] cbsz:4 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp4 x bf6 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp3(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp3: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: v_accvgpr_write_b32 a4, v14 +; GCN-NEXT: v_accvgpr_write_b32 a5, v15 +; GCN-NEXT: v_accvgpr_write_b32 a6, v16 +; GCN-NEXT: v_accvgpr_write_b32 a7, v17 +; GCN-NEXT: v_accvgpr_write_b32 a8, v18 +; GCN-NEXT: v_accvgpr_write_b32 a9, v19 +; GCN-NEXT: v_accvgpr_write_b32 a10, v20 +; GCN-NEXT: v_accvgpr_write_b32 a11, v21 +; GCN-NEXT: v_accvgpr_write_b32 a12, v22 +; GCN-NEXT: v_accvgpr_write_b32 a13, v23 +; GCN-NEXT: v_accvgpr_write_b32 a14, v24 +; GCN-NEXT: v_accvgpr_write_b32 a15, v25 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:9], a[0:15], v26, v27 op_sel_hi:[0,0,0] cbsz:4 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 3, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp3__constant_scale_0_0(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp3__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v10 +; GCN-NEXT: v_accvgpr_write_b32 a1, v11 +; GCN-NEXT: v_accvgpr_write_b32 a2, v12 +; GCN-NEXT: v_accvgpr_write_b32 a3, v13 +; GCN-NEXT: v_accvgpr_write_b32 a4, v14 +; GCN-NEXT: v_accvgpr_write_b32 a5, v15 +; GCN-NEXT: v_accvgpr_write_b32 a6, v16 +; GCN-NEXT: v_accvgpr_write_b32 a7, v17 +; GCN-NEXT: v_accvgpr_write_b32 a8, v18 +; GCN-NEXT: v_accvgpr_write_b32 a9, v19 +; GCN-NEXT: v_accvgpr_write_b32 a10, v20 +; GCN-NEXT: v_accvgpr_write_b32 a11, v21 +; GCN-NEXT: v_accvgpr_write_b32 a12, v22 +; GCN-NEXT: v_accvgpr_write_b32 a13, v23 +; GCN-NEXT: v_accvgpr_write_b32 a14, v24 +; GCN-NEXT: v_accvgpr_write_b32 a15, v25 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:9], a[0:15] cbsz:4 blgp:3 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 3, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; fp4 x fp4 +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp4(<4 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v8 +; GCN-NEXT: v_accvgpr_write_b32 a1, v9 +; GCN-NEXT: v_accvgpr_write_b32 a2, v10 +; GCN-NEXT: v_accvgpr_write_b32 a3, v11 +; GCN-NEXT: v_accvgpr_write_b32 a4, v12 +; GCN-NEXT: v_accvgpr_write_b32 a5, v13 +; GCN-NEXT: v_accvgpr_write_b32 a6, v14 +; GCN-NEXT: v_accvgpr_write_b32 a7, v15 +; GCN-NEXT: v_accvgpr_write_b32 a8, v16 +; GCN-NEXT: v_accvgpr_write_b32 a9, v17 +; GCN-NEXT: v_accvgpr_write_b32 a10, v18 +; GCN-NEXT: v_accvgpr_write_b32 a11, v19 +; GCN-NEXT: v_accvgpr_write_b32 a12, v20 +; GCN-NEXT: v_accvgpr_write_b32 a13, v21 +; GCN-NEXT: v_accvgpr_write_b32 a14, v22 +; GCN-NEXT: v_accvgpr_write_b32 a15, v23 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:7], a[0:15], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v4i32(<4 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp4__constant_scale_0_0(<4 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__cbsz4__blgp4__constant_scale_0_0: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_accvgpr_write_b32 a0, v8 +; GCN-NEXT: v_accvgpr_write_b32 a1, v9 +; GCN-NEXT: v_accvgpr_write_b32 a2, v10 +; GCN-NEXT: v_accvgpr_write_b32 a3, v11 +; GCN-NEXT: v_accvgpr_write_b32 a4, v12 +; GCN-NEXT: v_accvgpr_write_b32 a5, v13 +; GCN-NEXT: v_accvgpr_write_b32 a6, v14 +; GCN-NEXT: v_accvgpr_write_b32 a7, v15 +; GCN-NEXT: v_accvgpr_write_b32 a8, v16 +; GCN-NEXT: v_accvgpr_write_b32 a9, v17 +; GCN-NEXT: v_accvgpr_write_b32 a10, v18 +; GCN-NEXT: v_accvgpr_write_b32 a11, v19 +; GCN-NEXT: v_accvgpr_write_b32 a12, v20 +; GCN-NEXT: v_accvgpr_write_b32 a13, v21 +; GCN-NEXT: v_accvgpr_write_b32 a14, v22 +; GCN-NEXT: v_accvgpr_write_b32 a15, v23 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:3], v[4:7], a[0:15] cbsz:4 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v4i32(<4 x i32> %arg0, <4 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +; -------------------------------------------------------------------- +; Different input parameter classes +; -------------------------------------------------------------------- + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__sgpr_scaleA__sgpr_scaleB(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 inreg %scale0, i32 inreg %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__sgpr_scaleA__sgpr_scaleB: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: v_mov_b32_e32 v16, s1 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], s0, v16 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__sgpr_scaleA__vgpr_scaleB(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 inreg %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__sgpr_scaleA__vgpr_scaleB: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], s0, v31 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgpr_scaleA__sgpr_scaleB(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 inreg %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgpr_scaleA__sgpr_scaleB: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, s0 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgprs(<8 x i32> inreg %arg0, <8 x i32> inreg %arg1, <16 x float> inreg %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgprs: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v32, s0 +; SDAG-NEXT: v_mov_b32_e32 v33, s1 +; SDAG-NEXT: v_mov_b32_e32 v34, s2 +; SDAG-NEXT: v_mov_b32_e32 v35, s3 +; SDAG-NEXT: v_mov_b32_e32 v36, s16 +; SDAG-NEXT: v_mov_b32_e32 v37, s17 +; SDAG-NEXT: v_mov_b32_e32 v38, s18 +; SDAG-NEXT: v_mov_b32_e32 v39, s19 +; SDAG-NEXT: v_mov_b32_e32 v16, s28 +; SDAG-NEXT: v_mov_b32_e32 v31, v13 +; SDAG-NEXT: v_mov_b32_e32 v30, v12 +; SDAG-NEXT: v_mov_b32_e32 v29, v11 +; SDAG-NEXT: v_mov_b32_e32 v28, v10 +; SDAG-NEXT: v_mov_b32_e32 v27, v9 +; SDAG-NEXT: v_mov_b32_e32 v26, v8 +; SDAG-NEXT: v_mov_b32_e32 v25, v7 +; SDAG-NEXT: v_mov_b32_e32 v24, v6 +; SDAG-NEXT: v_mov_b32_e32 v23, v5 +; SDAG-NEXT: v_mov_b32_e32 v22, v4 +; SDAG-NEXT: v_mov_b32_e32 v21, v3 +; SDAG-NEXT: v_mov_b32_e32 v20, v2 +; SDAG-NEXT: v_mov_b32_e32 v19, v1 +; SDAG-NEXT: v_mov_b32_e32 v18, v0 +; SDAG-NEXT: v_mov_b32_e32 v17, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: v_mov_b32_e32 v4, s24 +; SDAG-NEXT: v_mov_b32_e32 v5, s25 +; SDAG-NEXT: v_mov_b32_e32 v6, s26 +; SDAG-NEXT: v_mov_b32_e32 v7, s27 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v31 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[32:39], v[0:7], a[0:15], v14, v15 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgprs: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b32_e32 v18, v0 +; GISEL-NEXT: v_mov_b32_e32 v19, v1 +; GISEL-NEXT: v_mov_b32_e32 v20, v2 +; GISEL-NEXT: v_mov_b32_e32 v21, v3 +; GISEL-NEXT: v_mov_b32_e32 v22, v4 +; GISEL-NEXT: v_mov_b32_e32 v23, v5 +; GISEL-NEXT: v_mov_b32_e32 v24, v6 +; GISEL-NEXT: v_mov_b32_e32 v25, v7 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v16, s28 +; GISEL-NEXT: v_mov_b32_e32 v26, v8 +; GISEL-NEXT: v_mov_b32_e32 v27, v9 +; GISEL-NEXT: v_mov_b32_e32 v28, v10 +; GISEL-NEXT: v_mov_b32_e32 v29, v11 +; GISEL-NEXT: v_mov_b32_e32 v30, v12 +; GISEL-NEXT: v_mov_b32_e32 v31, v13 +; GISEL-NEXT: v_mov_b32_e32 v17, s29 +; GISEL-NEXT: v_mov_b64_e32 v[38:39], s[26:27] +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_mov_b64_e32 v[36:37], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[34:35], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[32:33], s[20:21] +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: v_accvgpr_write_b32 a15, v31 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[32:39], a[0:15], v14, v15 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__sgpr_vgpr(<8 x i32> inreg %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 inreg %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__sgpr_vgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v26, s0 +; SDAG-NEXT: v_mov_b32_e32 v27, s1 +; SDAG-NEXT: v_mov_b32_e32 v28, s2 +; SDAG-NEXT: v_mov_b32_e32 v29, s3 +; SDAG-NEXT: v_mov_b32_e32 v30, s16 +; SDAG-NEXT: v_mov_b32_e32 v31, s17 +; SDAG-NEXT: v_mov_b32_e32 v32, s18 +; SDAG-NEXT: v_mov_b32_e32 v33, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[0:7], a[0:15], s20, v24 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__sgpr_vgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b64_e32 v[32:33], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[30:31], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[28:29], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, v8 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, v23 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[0:7], a[0:15], s20, v24 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__vgpr_sgpr(<8 x i32> inreg %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 inreg %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__vgpr_sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v26, s0 +; SDAG-NEXT: v_mov_b32_e32 v27, s1 +; SDAG-NEXT: v_mov_b32_e32 v28, s2 +; SDAG-NEXT: v_mov_b32_e32 v29, s3 +; SDAG-NEXT: v_mov_b32_e32 v30, s16 +; SDAG-NEXT: v_mov_b32_e32 v31, s17 +; SDAG-NEXT: v_mov_b32_e32 v32, s18 +; SDAG-NEXT: v_mov_b32_e32 v33, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[0:7], a[0:15], v24, s20 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_vgpr__vgpr_sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b64_e32 v[32:33], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[30:31], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[28:29], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a0, v8 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, v23 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[26:33], v[0:7], a[0:15], v24, s20 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_sgpr_vgpr__vgpr_sgpr(<8 x i32> %arg0, <8 x i32> inreg %arg1, <16 x float> %arg2, i32 %scale0, i32 inreg %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_sgpr_vgpr__vgpr_sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v8 +; SDAG-NEXT: v_mov_b32_e32 v26, s0 +; SDAG-NEXT: v_mov_b32_e32 v27, s1 +; SDAG-NEXT: v_mov_b32_e32 v28, s2 +; SDAG-NEXT: v_mov_b32_e32 v29, s3 +; SDAG-NEXT: v_mov_b32_e32 v30, s16 +; SDAG-NEXT: v_mov_b32_e32 v31, s17 +; SDAG-NEXT: v_mov_b32_e32 v32, s18 +; SDAG-NEXT: v_mov_b32_e32 v33, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[26:33], a[0:15], v24, s20 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_sgpr_vgpr__vgpr_sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b64_e32 v[32:33], s[18:19] +; GISEL-NEXT: v_accvgpr_write_b32 a0, v8 +; GISEL-NEXT: v_mov_b64_e32 v[30:31], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[28:29], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[12:13] +; GISEL-NEXT: v_accvgpr_write_b32 a1, v9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, v23 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[26:33], a[0:15], v24, s20 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_vgpr_sgpr__vgpr_sgpr(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> inreg %arg2, i32 %scale0, i32 inreg %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_vgpr_sgpr__vgpr_sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, s0 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s1 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s2 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s3 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v16, s28 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_vgpr_vgpr_sgpr__vgpr_sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_accvgpr_write_b32 a0, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a1, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s23 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s24 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s25 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s26 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s27 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v16, s28 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_sgpr__vgpr_sgpr(<8 x i32> inreg %arg0, <8 x i32> %arg1, <16 x float> inreg %arg2, i32 %scale0, i32 inreg %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_sgpr__vgpr_sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v32, s0 +; SDAG-NEXT: v_mov_b32_e32 v33, s1 +; SDAG-NEXT: v_mov_b32_e32 v34, s2 +; SDAG-NEXT: v_mov_b32_e32 v35, s3 +; SDAG-NEXT: v_mov_b32_e32 v36, s16 +; SDAG-NEXT: v_mov_b32_e32 v37, s17 +; SDAG-NEXT: v_mov_b32_e32 v38, s18 +; SDAG-NEXT: v_mov_b32_e32 v39, s19 +; SDAG-NEXT: v_mov_b32_e32 v16, s20 +; SDAG-NEXT: v_mov_b32_e32 v31, v13 +; SDAG-NEXT: v_mov_b32_e32 v30, v12 +; SDAG-NEXT: v_mov_b32_e32 v29, v11 +; SDAG-NEXT: v_mov_b32_e32 v28, v10 +; SDAG-NEXT: v_mov_b32_e32 v27, v9 +; SDAG-NEXT: v_mov_b32_e32 v26, v8 +; SDAG-NEXT: v_mov_b32_e32 v17, s21 +; SDAG-NEXT: v_mov_b32_e32 v18, s22 +; SDAG-NEXT: v_mov_b32_e32 v19, s23 +; SDAG-NEXT: v_mov_b32_e32 v20, s24 +; SDAG-NEXT: v_mov_b32_e32 v21, s25 +; SDAG-NEXT: v_mov_b32_e32 v22, s26 +; SDAG-NEXT: v_mov_b32_e32 v23, s27 +; SDAG-NEXT: v_mov_b32_e32 v24, s28 +; SDAG-NEXT: v_mov_b32_e32 v25, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v31 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[32:39], v[0:7], a[0:15], v14, v15 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0_sgpr_vgpr_sgpr__vgpr_sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_mov_b32 s12, s0 +; GISEL-NEXT: s_mov_b32 s13, s1 +; GISEL-NEXT: s_mov_b32 s14, s2 +; GISEL-NEXT: s_mov_b32 s15, s3 +; GISEL-NEXT: v_mov_b64_e32 v[38:39], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[36:37], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[34:35], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[32:33], s[12:13] +; GISEL-NEXT: v_mov_b32_e32 v16, s20 +; GISEL-NEXT: v_mov_b32_e32 v26, v8 +; GISEL-NEXT: v_mov_b32_e32 v27, v9 +; GISEL-NEXT: v_mov_b32_e32 v28, v10 +; GISEL-NEXT: v_mov_b32_e32 v29, v11 +; GISEL-NEXT: v_mov_b32_e32 v30, v12 +; GISEL-NEXT: v_mov_b32_e32 v31, v13 +; GISEL-NEXT: v_mov_b32_e32 v17, s21 +; GISEL-NEXT: v_mov_b32_e32 v18, s22 +; GISEL-NEXT: v_mov_b32_e32 v19, s23 +; GISEL-NEXT: v_mov_b32_e32 v20, s24 +; GISEL-NEXT: v_mov_b32_e32 v21, s25 +; GISEL-NEXT: v_mov_b32_e32 v22, s26 +; GISEL-NEXT: v_mov_b32_e32 v23, s27 +; GISEL-NEXT: v_mov_b32_e32 v24, s28 +; GISEL-NEXT: v_mov_b32_e32 v25, s29 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: v_accvgpr_write_b32 a15, v31 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[32:39], v[0:7], a[0:15], v14, v15 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_inlineimm__scaleB_inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_inlineimm__scaleB_inlineimm: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], 33, -2 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 2, i32 33, i32 2, i32 -2) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_inlineimm: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: s_movk_i32 s0, 0x41 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], s0, -2 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_inlineimm: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: v_mov_b32_e32 v31, 0x41 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, -2 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 2, i32 65, i32 2, i32 -2) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_kimm(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_kimm: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: s_movk_i32 s0, 0x41 +; SDAG-NEXT: v_mov_b32_e32 v31, 0x4d +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], s0, v31 op_sel_hi:[0,0,0] +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__scaleA_kimm__scaleB_kimm: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: v_mov_b32_e32 v31, 0x41 +; GISEL-NEXT: v_mov_b32_e32 v32, 0x4d +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 2, i32 65, i32 2, i32 77) + ret <16 x float> %result +} + +define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1, ptr addrspace(1) %ptr) #0 { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x0 +; SDAG-NEXT: s_load_dwordx16 s[36:51], s[4:5], 0x40 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x80 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, s36 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: v_mov_b32_e32 v4, s12 +; SDAG-NEXT: v_mov_b32_e32 v5, s13 +; SDAG-NEXT: v_mov_b32_e32 v6, s14 +; SDAG-NEXT: v_mov_b32_e32 v7, s15 +; SDAG-NEXT: v_mov_b32_e32 v8, s16 +; SDAG-NEXT: v_mov_b32_e32 v9, s17 +; SDAG-NEXT: v_mov_b32_e32 v10, s18 +; SDAG-NEXT: v_mov_b32_e32 v11, s19 +; SDAG-NEXT: v_mov_b32_e32 v12, s20 +; SDAG-NEXT: v_mov_b32_e32 v13, s21 +; SDAG-NEXT: v_mov_b32_e32 v14, s22 +; SDAG-NEXT: v_mov_b32_e32 v15, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s37 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s38 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s39 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s40 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s41 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s42 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s43 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s44 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s45 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s46 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s47 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s48 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s49 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s50 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s51 +; SDAG-NEXT: v_mov_b32_e32 v16, s1 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], s0, v16 op_sel_hi:[0,0,0] blgp:2 +; SDAG-NEXT: v_mov_b32_e32 v0, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v0, a[12:15], s[2:3] offset:48 +; SDAG-NEXT: global_store_dwordx4 v0, a[8:11], s[2:3] offset:32 +; SDAG-NEXT: global_store_dwordx4 v0, a[4:7], s[2:3] offset:16 +; SDAG-NEXT: global_store_dwordx4 v0, a[0:3], s[2:3] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x0 +; GISEL-NEXT: s_load_dwordx16 s[36:51], s[4:5], 0x40 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x80 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[16:17] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s36 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[22:23] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s37 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s38 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s39 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s40 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s41 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s42 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s43 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s44 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s45 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s46 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s47 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s48 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s49 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s50 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s51 +; GISEL-NEXT: v_mov_b32_e32 v16, s1 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], s0, v16 op_sel_hi:[0,0,0] blgp:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[2:3] +; GISEL-NEXT: global_store_dwordx4 v0, a[4:7], s[2:3] offset:16 +; GISEL-NEXT: global_store_dwordx4 v0, a[8:11], s[2:3] offset:32 +; GISEL-NEXT: global_store_dwordx4 v0, a[12:15], s[2:3] offset:48 +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 3, i32 %scale0, i32 1, i32 %scale1) + store <16 x float> %result, ptr addrspace(1) %ptr, align 64 + ret void +} + +define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd___scaleA_kimm__scaleB__inlineimm(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, ptr addrspace(1) %ptr) #0 { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd___scaleA_kimm__scaleB__inlineimm: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x0 +; SDAG-NEXT: s_load_dwordx16 s[36:51], s[4:5], 0x40 +; SDAG-NEXT: s_movk_i32 s2, 0x41 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x80 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: v_mov_b32_e32 v4, s12 +; SDAG-NEXT: v_mov_b32_e32 v5, s13 +; SDAG-NEXT: v_mov_b32_e32 v6, s14 +; SDAG-NEXT: v_mov_b32_e32 v7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s36 +; SDAG-NEXT: v_mov_b32_e32 v8, s16 +; SDAG-NEXT: v_mov_b32_e32 v9, s17 +; SDAG-NEXT: v_mov_b32_e32 v10, s18 +; SDAG-NEXT: v_mov_b32_e32 v11, s19 +; SDAG-NEXT: v_mov_b32_e32 v12, s20 +; SDAG-NEXT: v_mov_b32_e32 v13, s21 +; SDAG-NEXT: v_mov_b32_e32 v14, s22 +; SDAG-NEXT: v_mov_b32_e32 v15, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s37 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s38 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s39 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s40 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s41 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s42 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s43 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s44 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s45 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s46 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s47 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s48 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s49 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s50 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s51 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], s2, -2 op_sel_hi:[0,0,0] blgp:2 +; SDAG-NEXT: v_mov_b32_e32 v0, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; SDAG-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4__vgprcd___scaleA_kimm__scaleB__inlineimm: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x0 +; GISEL-NEXT: s_load_dwordx16 s[36:51], s[4:5], 0x40 +; GISEL-NEXT: v_mov_b32_e32 v16, 0x41 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x80 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[16:17] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s36 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[22:23] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s37 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s38 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s39 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s40 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s41 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s42 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s43 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s44 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s45 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s46 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s47 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s48 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s49 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s50 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s51 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v16, -2 op_sel_hi:[0,0,0] blgp:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v0, a[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v0, a[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v0, a[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v0, a[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 3, i32 65, i32 1, i32 -2) + store <16 x float> %result, ptr addrspace(1) %ptr, align 64 + ret void +} + +define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__nonmac(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) #1 { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__nonmac: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx16 s[12:27], s[4:5], 0x0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: v_mov_b32_e32 v4, s16 +; SDAG-NEXT: v_mov_b32_e32 v5, s17 +; SDAG-NEXT: v_mov_b32_e32 v6, s18 +; SDAG-NEXT: v_mov_b32_e32 v7, s19 +; SDAG-NEXT: v_mov_b32_e32 v8, s20 +; SDAG-NEXT: v_mov_b32_e32 v9, s21 +; SDAG-NEXT: v_mov_b32_e32 v10, s22 +; SDAG-NEXT: v_mov_b32_e32 v11, s23 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40 +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x80 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: v_mov_b32_e32 v16, s1 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], s0, v16 op_sel_hi:[0,0,0] +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: v_mov_b64_e32 v[4:5], 48 +; SDAG-NEXT: global_store_dwordx4 v[4:5], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[6:7], 32 +; SDAG-NEXT: v_mov_b64_e32 v[8:9], 16 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: global_store_dwordx4 v[6:7], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[10:11], 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v[8:9], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v[10:11], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[6:7], a[8:11], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[4:5], a[12:15], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[10:11], a[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[8:9], a[4:7], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__nonmac: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx16 s[36:51], s[4:5], 0x0 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40 +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x80 +; GISEL-NEXT: v_mov_b64_e32 v[18:19], 16 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], 32 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[36:37] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[38:39] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[40:41] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[42:43] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[44:45] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[46:47] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[48:49] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[50:51] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b32_e32 v16, s1 +; GISEL-NEXT: v_mov_b64_e32 v[22:23], 48 +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], s0, v16 op_sel_hi:[0,0,0] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], 0 +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[22:23] +; GISEL-NEXT: global_store_dwordx4 v[16:17], v[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[18:19], v[4:7], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], v[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], v[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v[16:17], a[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[18:19], a[4:7], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], a[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], a[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 %scale0, i32 0, i32 %scale1) + store volatile <16 x float> %arg2, ptr addrspace(1) null, align 64 + store volatile <16 x float> %result, ptr addrspace(1) null, align 64 + ret void +} + +define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4_25_42__nonmac(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) #1 { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_25_42__nonmac: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx16 s[12:27], s[4:5], 0x0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: v_mov_b32_e32 v4, s16 +; SDAG-NEXT: v_mov_b32_e32 v5, s17 +; SDAG-NEXT: v_mov_b32_e32 v6, s18 +; SDAG-NEXT: v_mov_b32_e32 v7, s19 +; SDAG-NEXT: v_mov_b32_e32 v8, s20 +; SDAG-NEXT: v_mov_b32_e32 v9, s21 +; SDAG-NEXT: v_mov_b32_e32 v10, s22 +; SDAG-NEXT: v_mov_b32_e32 v11, s23 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], 25, 42 op_sel_hi:[0,0,0] blgp:2 +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: v_mov_b64_e32 v[4:5], 48 +; SDAG-NEXT: global_store_dwordx4 v[4:5], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[6:7], 32 +; SDAG-NEXT: v_mov_b64_e32 v[8:9], 16 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: global_store_dwordx4 v[6:7], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[10:11], 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v[8:9], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v[10:11], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[6:7], a[8:11], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[4:5], a[12:15], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[10:11], a[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[8:9], a[4:7], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_25_42__nonmac: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx16 s[36:51], s[4:5], 0x0 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40 +; GISEL-NEXT: v_mov_b64_e32 v[16:17], 0 +; GISEL-NEXT: v_mov_b64_e32 v[18:19], 16 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], 32 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[36:37] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[38:39] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[40:41] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[42:43] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[44:45] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[46:47] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[48:49] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[50:51] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[22:23], 48 +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], 25, 42 op_sel_hi:[0,0,0] blgp:2 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[22:23] +; GISEL-NEXT: global_store_dwordx4 v[16:17], v[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[18:19], v[4:7], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], v[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], v[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: global_store_dwordx4 v[16:17], a[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[18:19], a[4:7], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], a[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], a[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 0, i32 25, i32 0, i32 42) + store volatile <16 x float> %arg2, ptr addrspace(1) null, align 64 + store volatile <16 x float> %result, ptr addrspace(1) null, align 64 + ret void +} + +define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgprcd_nonmac(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) #0 { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgprcd_nonmac: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx16 s[12:27], s[4:5], 0x0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: v_mov_b32_e32 v4, s16 +; SDAG-NEXT: v_mov_b32_e32 v5, s17 +; SDAG-NEXT: v_mov_b32_e32 v6, s18 +; SDAG-NEXT: v_mov_b32_e32 v7, s19 +; SDAG-NEXT: v_mov_b32_e32 v8, s20 +; SDAG-NEXT: v_mov_b32_e32 v9, s21 +; SDAG-NEXT: v_mov_b32_e32 v10, s22 +; SDAG-NEXT: v_mov_b32_e32 v11, s23 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a31, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a30, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a29, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a28, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a27, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a26, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a25, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a24, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a23, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a22, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a21, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a20, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a19, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a18, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a17, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a16, s8 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[16:31] blgp:2 +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: v_mov_b64_e32 v[4:5], 48 +; SDAG-NEXT: global_store_dwordx4 v[4:5], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[6:7], 32 +; SDAG-NEXT: v_mov_b64_e32 v[8:9], 16 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: global_store_dwordx4 v[6:7], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[10:11], 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v[8:9], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v[10:11], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[6:7], a[8:11], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[4:5], a[12:15], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[10:11], a[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[8:9], a[4:7], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_0_0__vgprcd_nonmac: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx16 s[36:51], s[4:5], 0x0 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40 +; GISEL-NEXT: v_mov_b64_e32 v[16:17], 0 +; GISEL-NEXT: v_mov_b64_e32 v[18:19], 16 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], 32 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[36:37] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[38:39] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[40:41] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[42:43] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[44:45] +; GISEL-NEXT: v_accvgpr_write_b32 a31, s23 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[46:47] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[48:49] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[50:51] +; GISEL-NEXT: v_accvgpr_write_b32 a30, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a29, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a28, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a27, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a26, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a25, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a24, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a23, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a22, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a21, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a20, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a19, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a18, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a17, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a16, s8 +; GISEL-NEXT: v_mov_b64_e32 v[22:23], 48 +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[16:31] blgp:2 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[22:23] +; GISEL-NEXT: global_store_dwordx4 v[16:17], v[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[18:19], v[4:7], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], v[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], v[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: global_store_dwordx4 v[16:17], a[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[18:19], a[4:7], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], a[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], a[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 0, i32 0, i32 0, i32 0) + store volatile <16 x float> %arg2, ptr addrspace(1) null, align 64 + store volatile <16 x float> %result, ptr addrspace(1) null, align 64 + ret void +} + +define amdgpu_kernel void @test_mfma_scale_f32_32x32x64_f8f6f4_25_42__vgprcd_nonmac(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) #0 { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_25_42__vgprcd_nonmac: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_load_dwordx16 s[12:27], s[4:5], 0x0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: v_mov_b32_e32 v4, s16 +; SDAG-NEXT: v_mov_b32_e32 v5, s17 +; SDAG-NEXT: v_mov_b32_e32 v6, s18 +; SDAG-NEXT: v_mov_b32_e32 v7, s19 +; SDAG-NEXT: v_mov_b32_e32 v8, s20 +; SDAG-NEXT: v_mov_b32_e32 v9, s21 +; SDAG-NEXT: v_mov_b32_e32 v10, s22 +; SDAG-NEXT: v_mov_b32_e32 v11, s23 +; SDAG-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, s8 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s9 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s10 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s11 +; SDAG-NEXT: v_accvgpr_write_b32 a4, s12 +; SDAG-NEXT: v_accvgpr_write_b32 a5, s13 +; SDAG-NEXT: v_accvgpr_write_b32 a6, s14 +; SDAG-NEXT: v_accvgpr_write_b32 a7, s15 +; SDAG-NEXT: v_accvgpr_write_b32 a8, s16 +; SDAG-NEXT: v_accvgpr_write_b32 a9, s17 +; SDAG-NEXT: v_accvgpr_write_b32 a10, s18 +; SDAG-NEXT: v_accvgpr_write_b32 a11, s19 +; SDAG-NEXT: v_accvgpr_write_b32 a12, s20 +; SDAG-NEXT: v_accvgpr_write_b32 a13, s21 +; SDAG-NEXT: v_accvgpr_write_b32 a14, s22 +; SDAG-NEXT: v_accvgpr_write_b32 a15, s23 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], 25, 42 op_sel_hi:[0,0,0] blgp:2 +; SDAG-NEXT: v_mov_b32_e32 v0, s20 +; SDAG-NEXT: v_mov_b32_e32 v1, s21 +; SDAG-NEXT: v_mov_b32_e32 v2, s22 +; SDAG-NEXT: v_mov_b32_e32 v3, s23 +; SDAG-NEXT: v_mov_b64_e32 v[4:5], 48 +; SDAG-NEXT: global_store_dwordx4 v[4:5], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[6:7], 32 +; SDAG-NEXT: v_mov_b64_e32 v[8:9], 16 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: global_store_dwordx4 v[6:7], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[10:11], 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: global_store_dwordx4 v[8:9], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mov_b32_e32 v0, s8 +; SDAG-NEXT: v_mov_b32_e32 v1, s9 +; SDAG-NEXT: v_mov_b32_e32 v2, s10 +; SDAG-NEXT: v_mov_b32_e32 v3, s11 +; SDAG-NEXT: global_store_dwordx4 v[10:11], v[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[6:7], a[8:11], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[4:5], a[12:15], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[10:11], a[0:3], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: global_store_dwordx4 v[8:9], a[4:7], off sc0 sc1 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4_25_42__vgprcd_nonmac: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_load_dwordx16 s[36:51], s[4:5], 0x0 +; GISEL-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40 +; GISEL-NEXT: v_mov_b64_e32 v[16:17], 0 +; GISEL-NEXT: v_mov_b64_e32 v[18:19], 16 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], 32 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[36:37] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[38:39] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[40:41] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[42:43] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[44:45] +; GISEL-NEXT: v_accvgpr_write_b32 a0, s8 +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[46:47] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[48:49] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[50:51] +; GISEL-NEXT: v_accvgpr_write_b32 a1, s9 +; GISEL-NEXT: v_accvgpr_write_b32 a2, s10 +; GISEL-NEXT: v_accvgpr_write_b32 a3, s11 +; GISEL-NEXT: v_accvgpr_write_b32 a4, s12 +; GISEL-NEXT: v_accvgpr_write_b32 a5, s13 +; GISEL-NEXT: v_accvgpr_write_b32 a6, s14 +; GISEL-NEXT: v_accvgpr_write_b32 a7, s15 +; GISEL-NEXT: v_accvgpr_write_b32 a8, s16 +; GISEL-NEXT: v_accvgpr_write_b32 a9, s17 +; GISEL-NEXT: v_accvgpr_write_b32 a10, s18 +; GISEL-NEXT: v_accvgpr_write_b32 a11, s19 +; GISEL-NEXT: v_accvgpr_write_b32 a12, s20 +; GISEL-NEXT: v_accvgpr_write_b32 a13, s21 +; GISEL-NEXT: v_accvgpr_write_b32 a14, s22 +; GISEL-NEXT: v_accvgpr_write_b32 a15, s23 +; GISEL-NEXT: v_mov_b64_e32 v[22:23], 48 +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], 25, 42 op_sel_hi:[0,0,0] blgp:2 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[22:23] +; GISEL-NEXT: global_store_dwordx4 v[16:17], v[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[18:19], v[4:7], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], v[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], v[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: global_store_dwordx4 v[16:17], a[0:3], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[18:19], a[4:7], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[20:21], a[8:11], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: global_store_dwordx4 v[22:23], a[12:15], off sc0 sc1 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_endpgm + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 2, i32 0, i32 25, i32 0, i32 42) + store volatile <16 x float> %arg2, ptr addrspace(1) null, align 64 + store volatile <16 x float> %result, ptr addrspace(1) null, align 64 + ret void +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_0_a(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_0_a: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_0_b(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_0_b: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 3, i32 0, i32 1, i32 0) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_1(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_0_1: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], 0, 1 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_1_0_a(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___constant_scale_1_0_a: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], 1, 0 op_sel_hi:[0,0,0] +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0) + ret <16 x float> %result +} + +; -------------------------------------------------------------------- +; Incorrect signature for format cases (IR vector too large) +; -------------------------------------------------------------------- + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp6: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] blgp:2 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp6: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] blgp:2 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:2 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:2 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:2 blgp:2 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:2 blgp:2 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] cbsz:2 blgp:2 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp4: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] blgp:4 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp4: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] blgp:4 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:4 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:4 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v6i32_fp4(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v6i32_fp4: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v6i32_fp4__v8i32_fp8(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v6i32_fp4__v8i32_fp8: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword v31, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v14 +; GCN-NEXT: v_accvgpr_write_b32 a1, v15 +; GCN-NEXT: v_accvgpr_write_b32 a2, v16 +; GCN-NEXT: v_accvgpr_write_b32 a3, v17 +; GCN-NEXT: v_accvgpr_write_b32 a4, v18 +; GCN-NEXT: v_accvgpr_write_b32 a5, v19 +; GCN-NEXT: v_accvgpr_write_b32 a6, v20 +; GCN-NEXT: v_accvgpr_write_b32 a7, v21 +; GCN-NEXT: v_accvgpr_write_b32 a8, v22 +; GCN-NEXT: v_accvgpr_write_b32 a9, v23 +; GCN-NEXT: v_accvgpr_write_b32 a10, v24 +; GCN-NEXT: v_accvgpr_write_b32 a11, v25 +; GCN-NEXT: v_accvgpr_write_b32 a12, v26 +; GCN-NEXT: v_accvgpr_write_b32 a13, v27 +; GCN-NEXT: v_accvgpr_write_b32 a14, v28 +; GCN-NEXT: v_accvgpr_write_b32 a15, v29 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:5], v[6:13], a[0:15], v30, v31 op_sel_hi:[0,0,0] cbsz:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; SDAG-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: scratch_load_dword a15, off, s32 +; SDAG-NEXT: scratch_load_dword v31, off, s32 offset:8 +; SDAG-NEXT: scratch_load_dword v32, off, s32 offset:4 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v27 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v28 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v29 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v30 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v32, v31 op_sel_hi:[0,0,0] cbsz:4 blgp:4 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: scratch_load_dword a15, off, s32 +; GISEL-NEXT: scratch_load_dword v31, off, s32 offset:4 +; GISEL-NEXT: scratch_load_dword v32, off, s32 offset:8 +; GISEL-NEXT: v_accvgpr_write_b32 a0, v16 +; GISEL-NEXT: v_accvgpr_write_b32 a1, v17 +; GISEL-NEXT: v_accvgpr_write_b32 a2, v18 +; GISEL-NEXT: v_accvgpr_write_b32 a3, v19 +; GISEL-NEXT: v_accvgpr_write_b32 a4, v20 +; GISEL-NEXT: v_accvgpr_write_b32 a5, v21 +; GISEL-NEXT: v_accvgpr_write_b32 a6, v22 +; GISEL-NEXT: v_accvgpr_write_b32 a7, v23 +; GISEL-NEXT: v_accvgpr_write_b32 a8, v24 +; GISEL-NEXT: v_accvgpr_write_b32 a9, v25 +; GISEL-NEXT: v_accvgpr_write_b32 a10, v26 +; GISEL-NEXT: v_accvgpr_write_b32 a11, v27 +; GISEL-NEXT: v_accvgpr_write_b32 a12, v28 +; GISEL-NEXT: v_accvgpr_write_b32 a13, v29 +; GISEL-NEXT: v_accvgpr_write_b32 a14, v30 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15], v31, v32 op_sel_hi:[0,0,0] cbsz:4 blgp:4 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 2 +; GISEL-NEXT: v_accvgpr_read_b32 v0, a0 +; GISEL-NEXT: v_accvgpr_read_b32 v1, a1 +; GISEL-NEXT: v_accvgpr_read_b32 v2, a2 +; GISEL-NEXT: v_accvgpr_read_b32 v3, a3 +; GISEL-NEXT: v_accvgpr_read_b32 v4, a4 +; GISEL-NEXT: v_accvgpr_read_b32 v5, a5 +; GISEL-NEXT: v_accvgpr_read_b32 v6, a6 +; GISEL-NEXT: v_accvgpr_read_b32 v7, a7 +; GISEL-NEXT: v_accvgpr_read_b32 v8, a8 +; GISEL-NEXT: v_accvgpr_read_b32 v9, a9 +; GISEL-NEXT: v_accvgpr_read_b32 v10, a10 +; GISEL-NEXT: v_accvgpr_read_b32 v11, a11 +; GISEL-NEXT: v_accvgpr_read_b32 v12, a12 +; GISEL-NEXT: v_accvgpr_read_b32 v13, a13 +; GISEL-NEXT: v_accvgpr_read_b32 v14, a14 +; GISEL-NEXT: v_accvgpr_read_b32 v15, a15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; GCN-LABEL: test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: scratch_load_dword a15, off, s32 +; GCN-NEXT: v_accvgpr_write_b32 a0, v16 +; GCN-NEXT: v_accvgpr_write_b32 a1, v17 +; GCN-NEXT: v_accvgpr_write_b32 a2, v18 +; GCN-NEXT: v_accvgpr_write_b32 a3, v19 +; GCN-NEXT: v_accvgpr_write_b32 a4, v20 +; GCN-NEXT: v_accvgpr_write_b32 a5, v21 +; GCN-NEXT: v_accvgpr_write_b32 a6, v22 +; GCN-NEXT: v_accvgpr_write_b32 a7, v23 +; GCN-NEXT: v_accvgpr_write_b32 a8, v24 +; GCN-NEXT: v_accvgpr_write_b32 a9, v25 +; GCN-NEXT: v_accvgpr_write_b32 a10, v26 +; GCN-NEXT: v_accvgpr_write_b32 a11, v27 +; GCN-NEXT: v_accvgpr_write_b32 a12, v28 +; GCN-NEXT: v_accvgpr_write_b32 a13, v29 +; GCN-NEXT: v_accvgpr_write_b32 a14, v30 +; GCN-NEXT: s_waitcnt vmcnt(0) +; GCN-NEXT: s_nop 0 +; GCN-NEXT: v_mfma_f32_32x32x64_f8f6f4 a[0:15], v[0:7], v[8:15], a[0:15] cbsz:4 blgp:4 +; GCN-NEXT: s_nop 7 +; GCN-NEXT: s_nop 2 +; GCN-NEXT: v_accvgpr_read_b32 v0, a0 +; GCN-NEXT: v_accvgpr_read_b32 v1, a1 +; GCN-NEXT: v_accvgpr_read_b32 v2, a2 +; GCN-NEXT: v_accvgpr_read_b32 v3, a3 +; GCN-NEXT: v_accvgpr_read_b32 v4, a4 +; GCN-NEXT: v_accvgpr_read_b32 v5, a5 +; GCN-NEXT: v_accvgpr_read_b32 v6, a6 +; GCN-NEXT: v_accvgpr_read_b32 v7, a7 +; GCN-NEXT: v_accvgpr_read_b32 v8, a8 +; GCN-NEXT: v_accvgpr_read_b32 v9, a9 +; GCN-NEXT: v_accvgpr_read_b32 v10, a10 +; GCN-NEXT: v_accvgpr_read_b32 v11, a11 +; GCN-NEXT: v_accvgpr_read_b32 v12, a12 +; GCN-NEXT: v_accvgpr_read_b32 v13, a13 +; GCN-NEXT: v_accvgpr_read_b32 v14, a14 +; GCN-NEXT: v_accvgpr_read_b32 v15, a15 +; GCN-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32>, <8 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #2 +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32>, <6 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #2 +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v4i32(<4 x i32>, <4 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #2 +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v6i32(<4 x i32>, <6 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #2 +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32>, <8 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #2 +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v4i32(<6 x i32>, <4 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #2 +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32>, <8 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #2 +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32>, <4 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #2 +declare <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32>, <6 x i32>, <16 x float>, i32 immarg, i32 immarg, i32 immarg, i32, i32 immarg, i32) #2 + +attributes #0 = { "amdgpu-flat-work-group-size"="512,512" } +attributes #1 = { "amdgpu-flat-work-group-size"="128,128" } +attributes #2 = { convergent nocallback nofree nosync nounwind willreturn memory(none) } diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane16.swap.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane16.swap.ll new file mode 100644 index 0000000000000..e1cebe28f7fe8 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane16.swap.ll @@ -0,0 +1,127 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 < %s | FileCheck -check-prefix=GCN %s +; RUN: llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 < %s | FileCheck -check-prefix=GCN %s + +; RUN: not --crash llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERR-SDAG %s +; RUN: not --crash llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERR-GISEL %s + +; ERR-SDAG: LLVM ERROR: Cannot select: intrinsic %llvm.amdgcn.permlane16.swap +; ERR-GISEL: LLVM ERROR: cannot select: %{{[0-9]+}}:vgpr_32(s32), %{{[0-9]+}}:vgpr_32(s32) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.permlane16.swap) + + +declare { i32, i32 } @llvm.amdgcn.permlane16.swap(i32, i32, i1 immarg, i1 immarg) + +define { i32, i32 } @v_permlane16_swap_b32_vv(i32 %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane16_swap_b32_vv: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_permlane16_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane16_swap_b32_vi(i32 %vdst_old) { +; GCN-LABEL: v_permlane16_swap_b32_vi: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, 1 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane16_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %vdst_old, i32 1, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane16_swap_b32_vl(i32 %vdst_old) { +; GCN-LABEL: v_permlane16_swap_b32_vl: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, 0xc1d1 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane16_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %vdst_old, i32 49617, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane16_swap_b32_iv(i32 %src0_old) { +; GCN-LABEL: v_permlane16_swap_b32_iv: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, v0 +; GCN-NEXT: v_mov_b32_e32 v0, 1 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane16_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 1, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane16_swap_b32_ss(i32 inreg %vdst_old, i32 inreg %src0_old) { +; GCN-LABEL: v_permlane16_swap_b32_ss: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v0, s0 +; GCN-NEXT: v_mov_b32_e32 v1, s1 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane16_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane16_swap_b32_sv(i32 inreg %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane16_swap_b32_sv: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, v0 +; GCN-NEXT: v_mov_b32_e32 v0, s0 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane16_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane16_swap_b32_vs(i32 %vdst_old, i32 inreg %src0_old) { +; GCN-LABEL: v_permlane16_swap_b32_vs: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, s0 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane16_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane16_swap_b32_vv_fi(i32 %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane16_swap_b32_vv_fi: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_permlane16_swap_b32_e64 v0, v1 fi:1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %vdst_old, i32 %src0_old, i1 true, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane16_swap_b32_vv_bc(i32 %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane16_swap_b32_vv_bc: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_permlane16_swap_b32_e64 v0, v1 bound_ctrl:1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 true) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane16_swap_b32_vv_fi_bc(i32 %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane16_swap_b32_vv_fi_bc: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_permlane16_swap_b32_e64 v0, v1 bound_ctrl:1 fi:1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane16.swap(i32 %vdst_old, i32 %src0_old, i1 true, i1 true) + ret { i32, i32 } %v +} diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane32.swap.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane32.swap.ll new file mode 100644 index 0000000000000..121c379053fcf --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.permlane32.swap.ll @@ -0,0 +1,127 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 < %s | FileCheck -check-prefix=GCN %s +; RUN: llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx950 < %s | FileCheck -check-prefix=GCN %s + +; RUN: not --crash llc -global-isel=0 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERR-SDAG %s +; RUN: not --crash llc -global-isel=1 -mtriple=amdgcn-amd-amdhsa -mcpu=gfx940 -filetype=null %s 2>&1 | FileCheck -check-prefix=ERR-GISEL %s + +; ERR-SDAG: LLVM ERROR: Cannot select: intrinsic %llvm.amdgcn.permlane32.swap +; ERR-GISEL: LLVM ERROR: cannot select: %{{[0-9]+}}:vgpr_32(s32), %{{[0-9]+}}:vgpr_32(s32) = G_INTRINSIC_CONVERGENT intrinsic(@llvm.amdgcn.permlane32.swap) + + +declare { i32, i32 } @llvm.amdgcn.permlane32.swap(i32, i32, i1 immarg, i1 immarg) + +define { i32, i32 } @v_permlane32_swap_b32_vv(i32 %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane32_swap_b32_vv: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_permlane32_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane32_swap_b32_vi(i32 %vdst_old) { +; GCN-LABEL: v_permlane32_swap_b32_vi: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, 1 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane32_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %vdst_old, i32 1, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane32_swap_b32_vl(i32 %vdst_old) { +; GCN-LABEL: v_permlane32_swap_b32_vl: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, 0xc1d1 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane32_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %vdst_old, i32 49617, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane32_swap_b32_iv(i32 %src0_old) { +; GCN-LABEL: v_permlane32_swap_b32_iv: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, v0 +; GCN-NEXT: v_mov_b32_e32 v0, 1 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane32_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 1, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane32_swap_b32_ss(i32 inreg %vdst_old, i32 inreg %src0_old) { +; GCN-LABEL: v_permlane32_swap_b32_ss: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v0, s0 +; GCN-NEXT: v_mov_b32_e32 v1, s1 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane32_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane32_swap_b32_sv(i32 inreg %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane32_swap_b32_sv: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, v0 +; GCN-NEXT: v_mov_b32_e32 v0, s0 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane32_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane32_swap_b32_vs(i32 %vdst_old, i32 inreg %src0_old) { +; GCN-LABEL: v_permlane32_swap_b32_vs: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_mov_b32_e32 v1, s0 +; GCN-NEXT: s_nop 1 +; GCN-NEXT: v_permlane32_swap_b32_e32 v0, v1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane32_swap_b32_vv_fi(i32 %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane32_swap_b32_vv_fi: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_permlane32_swap_b32_e64 v0, v1 fi:1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %vdst_old, i32 %src0_old, i1 true, i1 false) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane32_swap_b32_vv_bc(i32 %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane32_swap_b32_vv_bc: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_permlane32_swap_b32_e64 v0, v1 bound_ctrl:1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %vdst_old, i32 %src0_old, i1 false, i1 true) + ret { i32, i32 } %v +} + +define { i32, i32 } @v_permlane32_swap_b32_vv_fi_bc(i32 %vdst_old, i32 %src0_old) { +; GCN-LABEL: v_permlane32_swap_b32_vv_fi_bc: +; GCN: ; %bb.0: +; GCN-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GCN-NEXT: v_permlane32_swap_b32_e64 v0, v1 bound_ctrl:1 fi:1 +; GCN-NEXT: s_setpc_b64 s[30:31] + %v = call { i32, i32 } @llvm.amdgcn.permlane32.swap(i32 %vdst_old, i32 %src0_old, i1 true, i1 true) + ret { i32, i32 } %v +} diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.load.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.load.ll index 0c6bba2426947..b42ba7d75094a 100644 --- a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.load.ll +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.load.ll @@ -1312,8 +1312,8 @@ main_body: ret void } -define amdgpu_ps void @raw_buffer_load_x1_offset_swizzled_not_merged(<4 x i32> inreg %rsrc) { -; PREGFX10-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged: +define amdgpu_ps void @raw_buffer_load_x1_offset_swizzled_not_merged_pregfx12(<4 x i32> inreg %rsrc) { +; PREGFX10-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged_pregfx12: ; PREGFX10: ; %bb.0: ; %main_body ; PREGFX10-NEXT: buffer_load_dword v0, off, s[0:3], 0 offset:4 ; PREGFX10-NEXT: buffer_load_dword v1, off, s[0:3], 0 offset:8 @@ -1327,7 +1327,7 @@ define amdgpu_ps void @raw_buffer_load_x1_offset_swizzled_not_merged(<4 x i32> i ; PREGFX10-NEXT: exp mrt0 v4, v5, v0, v0 done vm ; PREGFX10-NEXT: s_endpgm ; -; GFX10-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged: +; GFX10-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged_pregfx12: ; GFX10: ; %bb.0: ; %main_body ; GFX10-NEXT: s_clause 0x5 ; GFX10-NEXT: buffer_load_dword v0, off, s[0:3], 0 offset:4 @@ -1342,7 +1342,7 @@ define amdgpu_ps void @raw_buffer_load_x1_offset_swizzled_not_merged(<4 x i32> i ; GFX10-NEXT: exp mrt0 v4, v5, v0, v0 done vm ; GFX10-NEXT: s_endpgm ; -; GFX11-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged: +; GFX11-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged_pregfx12: ; GFX11: ; %bb.0: ; %main_body ; GFX11-NEXT: s_clause 0x5 ; GFX11-NEXT: buffer_load_b32 v0, off, s[0:3], 0 offset:4 @@ -1357,7 +1357,7 @@ define amdgpu_ps void @raw_buffer_load_x1_offset_swizzled_not_merged(<4 x i32> i ; GFX11-NEXT: exp mrt0 v4, v5, v0, v0 done ; GFX11-NEXT: s_endpgm ; -; GFX12-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged: +; GFX12-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged_pregfx12: ; GFX12: ; %bb.0: ; %main_body ; GFX12-NEXT: s_clause 0x1 ; GFX12-NEXT: buffer_load_b128 v[0:3], off, s[0:3], null offset:4 scope:SCOPE_SE @@ -1379,6 +1379,65 @@ main_body: ret void } +define amdgpu_ps void @raw_buffer_load_x1_offset_swizzled_not_merged(<4 x i32> inreg %rsrc) { +; PREGFX10-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged: +; PREGFX10: ; %bb.0: ; %main_body +; PREGFX10-NEXT: buffer_load_dwordx4 v[0:3], off, s[0:3], 0 offset:4 +; PREGFX10-NEXT: buffer_load_dwordx2 v[4:5], off, s[0:3], 0 offset:28 +; PREGFX10-NEXT: s_waitcnt vmcnt(1) +; PREGFX10-NEXT: exp mrt0 v0, v1, v2, v3 done vm +; PREGFX10-NEXT: s_waitcnt vmcnt(0) +; PREGFX10-NEXT: exp mrt0 v4, v5, v0, v0 done vm +; PREGFX10-NEXT: s_endpgm +; +; GFX10-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged: +; GFX10: ; %bb.0: ; %main_body +; GFX10-NEXT: s_clause 0x1 +; GFX10-NEXT: buffer_load_dwordx4 v[0:3], off, s[0:3], 0 offset:4 +; GFX10-NEXT: buffer_load_dwordx2 v[4:5], off, s[0:3], 0 offset:28 +; GFX10-NEXT: s_waitcnt vmcnt(1) +; GFX10-NEXT: exp mrt0 v0, v1, v2, v3 done vm +; GFX10-NEXT: s_waitcnt vmcnt(0) +; GFX10-NEXT: exp mrt0 v4, v5, v0, v0 done vm +; GFX10-NEXT: s_endpgm +; +; GFX11-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged: +; GFX11: ; %bb.0: ; %main_body +; GFX11-NEXT: s_clause 0x1 +; GFX11-NEXT: buffer_load_b128 v[0:3], off, s[0:3], 0 offset:4 +; GFX11-NEXT: buffer_load_b64 v[4:5], off, s[0:3], 0 offset:28 +; GFX11-NEXT: s_waitcnt vmcnt(1) +; GFX11-NEXT: exp mrt0 v0, v1, v2, v3 done +; GFX11-NEXT: s_waitcnt vmcnt(0) +; GFX11-NEXT: exp mrt0 v4, v5, v0, v0 done +; GFX11-NEXT: s_endpgm +; +; GFX12-LABEL: raw_buffer_load_x1_offset_swizzled_not_merged: +; GFX12: ; %bb.0: ; %main_body +; GFX12-NEXT: s_clause 0x5 +; GFX12-NEXT: buffer_load_b32 v0, off, s[0:3], null offset:4 +; GFX12-NEXT: buffer_load_b32 v1, off, s[0:3], null offset:8 +; GFX12-NEXT: buffer_load_b32 v2, off, s[0:3], null offset:12 +; GFX12-NEXT: buffer_load_b32 v3, off, s[0:3], null offset:16 +; GFX12-NEXT: buffer_load_b32 v4, off, s[0:3], null offset:28 +; GFX12-NEXT: buffer_load_b32 v5, off, s[0:3], null offset:32 +; GFX12-NEXT: s_wait_loadcnt 0x2 +; GFX12-NEXT: export mrt0 v0, v1, v2, v3 done +; GFX12-NEXT: s_wait_loadcnt 0x0 +; GFX12-NEXT: export mrt0 v4, v5, v0, v0 done +; GFX12-NEXT: s_endpgm +main_body: + %r1 = call float @llvm.amdgcn.raw.buffer.load.f32(<4 x i32> %rsrc, i32 4, i32 0, i32 64) + %r2 = call float @llvm.amdgcn.raw.buffer.load.f32(<4 x i32> %rsrc, i32 8, i32 0, i32 64) + %r3 = call float @llvm.amdgcn.raw.buffer.load.f32(<4 x i32> %rsrc, i32 12, i32 0, i32 64) + %r4 = call float @llvm.amdgcn.raw.buffer.load.f32(<4 x i32> %rsrc, i32 16, i32 0, i32 64) + %r5 = call float @llvm.amdgcn.raw.buffer.load.f32(<4 x i32> %rsrc, i32 28, i32 0, i32 64) + %r6 = call float @llvm.amdgcn.raw.buffer.load.f32(<4 x i32> %rsrc, i32 32, i32 0, i32 64) + call void @llvm.amdgcn.exp.f32(i32 0, i32 15, float %r1, float %r2, float %r3, float %r4, i1 true, i1 true) + call void @llvm.amdgcn.exp.f32(i32 0, i32 15, float %r5, float %r6, float undef, float undef, i1 true, i1 true) + ret void +} + declare float @llvm.amdgcn.raw.buffer.load.f32(<4 x i32>, i32, i32, i32) #0 declare <2 x float> @llvm.amdgcn.raw.buffer.load.v2f32(<4 x i32>, i32, i32, i32) #0 declare <4 x float> @llvm.amdgcn.raw.buffer.load.v4f32(<4 x i32>, i32, i32, i32) #0 diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.store.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.store.ll index fd6e354b274a4..3493de1497d11 100644 --- a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.store.ll +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.buffer.store.ll @@ -2,6 +2,7 @@ ; RUN: llc < %s -mtriple=amdgcn -mcpu=verde -verify-machineinstrs | FileCheck -check-prefixes=GFX68,VERDE %s ; RUN: llc < %s -mtriple=amdgcn -mcpu=tonga -verify-machineinstrs | FileCheck -check-prefixes=GFX68,GFX8 %s ; RUN: llc < %s -mtriple=amdgcn -mcpu=gfx1100 -verify-machineinstrs | FileCheck -check-prefixes=GFX11 %s +; RUN: llc < %s -mtriple=amdgcn -mcpu=gfx1200 -verify-machineinstrs | FileCheck -check-prefixes=GFX12 %s define amdgpu_ps void @buffer_store(<4 x i32> inreg, <4 x float>, <4 x float>, <4 x float>) { ; GFX68-LABEL: buffer_store: @@ -497,8 +498,8 @@ define amdgpu_ps void @raw_buffer_store_x1_offset_merged(<4 x i32> inreg %rsrc, ret void } -define amdgpu_ps void @raw_buffer_store_x1_offset_swizzled_not_merged(<4 x i32> inreg %rsrc, float %v1, float %v2, float %v3, float %v4, float %v5, float %v6) { -; GFX68-LABEL: raw_buffer_store_x1_offset_swizzled_not_merged: +define amdgpu_ps void @raw_buffer_store_x1_offset_swizzled_not_merged_pregfx12(<4 x i32> inreg %rsrc, float %v1, float %v2, float %v3, float %v4, float %v5, float %v6) { +; GFX68-LABEL: raw_buffer_store_x1_offset_swizzled_not_merged_pregfx12: ; GFX68: ; %bb.0: ; GFX68-NEXT: buffer_store_dword v0, off, s[0:3], 0 offset:4 ; GFX68-NEXT: buffer_store_dword v1, off, s[0:3], 0 offset:8 @@ -508,7 +509,7 @@ define amdgpu_ps void @raw_buffer_store_x1_offset_swizzled_not_merged(<4 x i32> ; GFX68-NEXT: buffer_store_dword v5, off, s[0:3], 0 offset:32 ; GFX68-NEXT: s_endpgm ; -; GFX11-LABEL: raw_buffer_store_x1_offset_swizzled_not_merged: +; GFX11-LABEL: raw_buffer_store_x1_offset_swizzled_not_merged_pregfx12: ; GFX11: ; %bb.0: ; GFX11-NEXT: s_clause 0x5 ; GFX11-NEXT: buffer_store_b32 v0, off, s[0:3], 0 offset:4 @@ -527,6 +528,26 @@ define amdgpu_ps void @raw_buffer_store_x1_offset_swizzled_not_merged(<4 x i32> ret void } +define amdgpu_ps void @raw_buffer_store_x1_offset_swizzled_not_merged(<4 x i32> inreg %rsrc, float %v1, float %v2, float %v3, float %v4, float %v5, float %v6) { +; GFX12-LABEL: raw_buffer_store_x1_offset_swizzled_not_merged: +; GFX12: ; %bb.0: +; GFX12-NEXT: s_clause 0x5 +; GFX12-NEXT: buffer_store_b32 v0, off, s[0:3], null offset:4 +; GFX12-NEXT: buffer_store_b32 v1, off, s[0:3], null offset:8 +; GFX12-NEXT: buffer_store_b32 v2, off, s[0:3], null offset:12 +; GFX12-NEXT: buffer_store_b32 v3, off, s[0:3], null offset:16 +; GFX12-NEXT: buffer_store_b32 v4, off, s[0:3], null offset:28 +; GFX12-NEXT: buffer_store_b32 v5, off, s[0:3], null offset:32 +; GFX12-NEXT: s_endpgm + call void @llvm.amdgcn.raw.buffer.store.f32(float %v1, <4 x i32> %rsrc, i32 4, i32 0, i32 64) + call void @llvm.amdgcn.raw.buffer.store.f32(float %v2, <4 x i32> %rsrc, i32 8, i32 0, i32 64) + call void @llvm.amdgcn.raw.buffer.store.f32(float %v3, <4 x i32> %rsrc, i32 12, i32 0, i32 64) + call void @llvm.amdgcn.raw.buffer.store.f32(float %v4, <4 x i32> %rsrc, i32 16, i32 0, i32 64) + call void @llvm.amdgcn.raw.buffer.store.f32(float %v5, <4 x i32> %rsrc, i32 28, i32 0, i32 64) + call void @llvm.amdgcn.raw.buffer.store.f32(float %v6, <4 x i32> %rsrc, i32 32, i32 0, i32 64) + ret void +} + declare void @llvm.amdgcn.raw.buffer.store.f32(float, <4 x i32>, i32, i32, i32) #0 declare void @llvm.amdgcn.raw.buffer.store.v2f32(<2 x float>, <4 x i32>, i32, i32, i32) #0 declare void @llvm.amdgcn.raw.buffer.store.v4f32(<4 x float>, <4 x i32>, i32, i32, i32) #0 diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.smfmac.gfx950.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.smfmac.gfx950.ll new file mode 100644 index 0000000000000..be6ef315e4c74 --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.smfmac.gfx950.ll @@ -0,0 +1,4631 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 +; RUN: llc -march=amdgcn -mcpu=gfx950 -global-isel=0 < %s | FileCheck -enable-var-scope --check-prefixes=GCN,SDAG %s +; RUN: llc -march=amdgcn -mcpu=gfx950 -global-isel=1 < %s | FileCheck -enable-var-scope --check-prefixes=GCN,GISEL %s + +declare i32 @llvm.amdgcn.workitem.id.x() + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.16x16x64.f16 +; -------------------------------------------------------------------- + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.f16(<8 x half>, <16 x half>, <4 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_16x16x64_f16__vgpr(ptr addrspace(1) %arg, <8 x half> %a, <16 x half> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_16x16x64_f16__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x34 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[8:11], v0, s[6:7] +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x44 +; SDAG-NEXT: s_load_dword s16, s[4:5], 0x64 +; SDAG-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; SDAG-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; SDAG-NEXT: v_mov_b32_e32 v17, s16 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_16x16x64_f16 v[8:11], v[12:15], v[0:7], v17 cbsz:1 abid:2 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_f16__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x34 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[8:11], v0, s[6:7] +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x44 +; GISEL-NEXT: s_load_dword s16, s[4:5], 0x64 +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b32_e32 v16, s16 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_16x16x64_f16 v[8:11], v[12:15], v[0:7], v16 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, v[8:11], s[6:7] +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <4 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <4 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.f16(<8 x half> %a, <16 x half> %b, <4 x float> %in.1, i32 %idx, i32 1, i32 2) + store <4 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <4 x float> @test_smfmac_f32_16x16x64_f16(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x64_f16: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x64_f16 a[0:3], v[0:3], v[4:11], v16 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_f16: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x64_f16 v[12:15], v[0:3], v[4:11], v16 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.f16(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x64_f16__flags0(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x64_f16__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x64_f16 a[0:3], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_f16__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x64_f16 v[12:15], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.f16(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x64_f16__flags1(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x64_f16__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x64_f16 a[0:3], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_f16__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x64_f16 v[12:15], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.f16(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x64_f16__sgpr(<8 x half> inreg %arg0, <16 x half> inreg %arg1, <4 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x64_f16__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v8, s0 +; SDAG-NEXT: v_mov_b32_e32 v9, s1 +; SDAG-NEXT: v_mov_b32_e32 v10, s2 +; SDAG-NEXT: v_mov_b32_e32 v11, s3 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s24 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s25 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s26 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s27 +; SDAG-NEXT: v_mov_b32_e32 v12, s28 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x64_f16 a[0:3], v[8:11], v[0:7], v12 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_f16__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b32_e32 v16, s28 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_16x16x64_f16 v[0:3], v[12:15], v[4:11], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.f16(<8 x half> %arg0, <16 x half> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.32x32x32.f16 +; -------------------------------------------------------------------- + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half>, <16 x half>, <16 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_32x32x32_f16__vgpr(ptr addrspace(1) %arg, <8 x half> %a, <16 x half> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_32x32x32_f16__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x34 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[12:15], v16, s[6:7] offset:48 +; SDAG-NEXT: global_load_dwordx4 v[8:11], v16, s[6:7] offset:32 +; SDAG-NEXT: global_load_dwordx4 v[4:7], v16, s[6:7] offset:16 +; SDAG-NEXT: global_load_dwordx4 v[0:3], v16, s[6:7] +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x44 +; SDAG-NEXT: s_load_dword s16, s[4:5], 0x64 +; SDAG-NEXT: v_mov_b64_e32 v[26:27], s[2:3] +; SDAG-NEXT: v_mov_b64_e32 v[24:25], s[0:1] +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[22:23], s[14:15] +; SDAG-NEXT: v_mov_b64_e32 v[20:21], s[12:13] +; SDAG-NEXT: v_mov_b64_e32 v[18:19], s[10:11] +; SDAG-NEXT: v_mov_b64_e32 v[16:17], s[8:9] +; SDAG-NEXT: v_mov_b32_e32 v28, s16 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_32x32x32_f16 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] offset:32 +; SDAG-NEXT: global_store_dwordx4 v16, v[12:15], s[6:7] offset:48 +; SDAG-NEXT: global_store_dwordx4 v16, v[0:3], s[6:7] +; SDAG-NEXT: global_store_dwordx4 v16, v[4:7], s[6:7] offset:16 +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_f16__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x34 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[0:3], v16, s[6:7] +; GISEL-NEXT: global_load_dwordx4 v[4:7], v16, s[6:7] offset:16 +; GISEL-NEXT: global_load_dwordx4 v[8:11], v16, s[6:7] offset:32 +; GISEL-NEXT: global_load_dwordx4 v[12:15], v16, s[6:7] offset:48 +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x44 +; GISEL-NEXT: s_load_dword s16, s[4:5], 0x64 +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], s[0:1] +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[8:9] +; GISEL-NEXT: v_mov_b32_e32 v28, s16 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_32x32x32_f16 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v16, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v16, v[0:3], s[6:7] +; GISEL-NEXT: global_store_dwordx4 v16, v[4:7], s[6:7] offset:16 +; GISEL-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] offset:32 +; GISEL-NEXT: global_store_dwordx4 v16, v[12:15], s[6:7] offset:48 +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <16 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <16 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half> %a, <16 x half> %b, <16 x float> %in.1, i32 %idx, i32 1, i32 2) + store <16 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <16 x float> @test_smfmac_f32_32x32x32_f16(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x32_f16: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x32_f16 a[0:15], v[0:3], v[4:11], v28 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_f16: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x32_f16 v[0:15], v[48:51], v[30:37], v28 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x32_f16__flags0(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x32_f16__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x32_f16 a[0:15], v[0:3], v[4:11], v28 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_f16__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x32_f16 v[0:15], v[48:51], v[30:37], v28 cbsz:1 abid:3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x32_f16__flags1(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x32_f16__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x32_f16 a[0:15], v[0:3], v[4:11], v28 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_f16__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x32_f16 v[0:15], v[48:51], v[30:37], v28 cbsz:3 abid:1 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x32_f16__sgpr(<8 x half> inreg %arg0, <16 x half> inreg %arg1, <16 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x32_f16__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v28, s0 +; SDAG-NEXT: v_mov_b32_e32 v29, s1 +; SDAG-NEXT: v_mov_b32_e32 v30, s2 +; SDAG-NEXT: v_mov_b32_e32 v31, s3 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v27, v9 +; SDAG-NEXT: v_mov_b32_e32 v26, v8 +; SDAG-NEXT: v_mov_b32_e32 v25, v7 +; SDAG-NEXT: v_mov_b32_e32 v24, v6 +; SDAG-NEXT: v_mov_b32_e32 v23, v5 +; SDAG-NEXT: v_mov_b32_e32 v22, v4 +; SDAG-NEXT: v_mov_b32_e32 v21, v3 +; SDAG-NEXT: v_mov_b32_e32 v20, v2 +; SDAG-NEXT: v_mov_b32_e32 v19, v1 +; SDAG-NEXT: v_mov_b32_e32 v18, v0 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: v_mov_b32_e32 v16, s28 +; SDAG-NEXT: v_mov_b32_e32 v17, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x32_f16 a[0:15], v[28:31], v[0:7], v10 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_f16__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[36:37], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[34:35], s[0:1] +; GISEL-NEXT: v_mov_b32_e32 v18, s24 +; GISEL-NEXT: v_mov_b32_e32 v19, s25 +; GISEL-NEXT: v_mov_b32_e32 v24, v0 +; GISEL-NEXT: v_mov_b32_e32 v25, v1 +; GISEL-NEXT: v_mov_b32_e32 v26, v2 +; GISEL-NEXT: v_mov_b32_e32 v27, v3 +; GISEL-NEXT: v_mov_b32_e32 v28, v4 +; GISEL-NEXT: v_mov_b32_e32 v29, v5 +; GISEL-NEXT: v_mov_b32_e32 v30, v6 +; GISEL-NEXT: v_mov_b32_e32 v31, v7 +; GISEL-NEXT: v_mov_b32_e32 v32, v8 +; GISEL-NEXT: v_mov_b32_e32 v33, v9 +; GISEL-NEXT: v_mov_b32_e32 v16, v10 +; GISEL-NEXT: v_mov_b32_e32 v20, s26 +; GISEL-NEXT: v_mov_b32_e32 v21, s27 +; GISEL-NEXT: v_mov_b32_e32 v22, s28 +; GISEL-NEXT: v_mov_b32_e32 v23, s29 +; GISEL-NEXT: v_mov_b64_e32 v[54:55], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[52:53], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[50:51], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[48:49], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[28:29] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[30:31] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[32:33] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x32_f16 v[0:15], v[34:37], v[48:55], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.f16(<8 x half> %arg0, <16 x half> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.16x16x64.bf16 +; -------------------------------------------------------------------- + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.bf16(<8 x bfloat>, <16 x bfloat>, <4 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_16x16x64_bf16__vgpr(ptr addrspace(1) %arg, <8 x bfloat> %a, <16 x bfloat> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_16x16x64_bf16__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x34 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[8:11], v0, s[6:7] +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x44 +; SDAG-NEXT: s_load_dword s16, s[4:5], 0x64 +; SDAG-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; SDAG-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; SDAG-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; SDAG-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; SDAG-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; SDAG-NEXT: v_mov_b32_e32 v17, s16 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_16x16x64_bf16 v[8:11], v[12:15], v[0:7], v17 cbsz:1 abid:2 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_bf16__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x34 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[8:11], v0, s[6:7] +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x44 +; GISEL-NEXT: s_load_dword s16, s[4:5], 0x64 +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[14:15] +; GISEL-NEXT: v_mov_b32_e32 v16, s16 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_16x16x64_bf16 v[8:11], v[12:15], v[0:7], v16 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, v[8:11], s[6:7] +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <4 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <4 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.bf16(<8 x bfloat> %a, <16 x bfloat> %b, <4 x float> %in.1, i32 %idx, i32 1, i32 2) + store <4 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <4 x float> @test_smfmac_f32_16x16x64_bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x64_bf16: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x64_bf16 a[0:3], v[0:3], v[4:11], v16 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_bf16: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_lshrrev_b32_e32 v17, 16, v0 +; GISEL-NEXT: v_lshrrev_b32_e32 v18, 16, v1 +; GISEL-NEXT: v_lshrrev_b32_e32 v19, 16, v2 +; GISEL-NEXT: v_lshrrev_b32_e32 v20, 16, v3 +; GISEL-NEXT: v_mov_b32_sdwa v0, v17 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v1, v18 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v2, v19 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v3, v20 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_lshrrev_b32_e32 v17, 16, v4 +; GISEL-NEXT: v_lshrrev_b32_e32 v18, 16, v5 +; GISEL-NEXT: v_lshrrev_b32_e32 v19, 16, v6 +; GISEL-NEXT: v_lshrrev_b32_e32 v20, 16, v7 +; GISEL-NEXT: v_lshrrev_b32_e32 v21, 16, v8 +; GISEL-NEXT: v_lshrrev_b32_e32 v22, 16, v9 +; GISEL-NEXT: v_lshrrev_b32_e32 v23, 16, v10 +; GISEL-NEXT: v_lshrrev_b32_e32 v24, 16, v11 +; GISEL-NEXT: v_mov_b32_sdwa v4, v17 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v5, v18 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v6, v19 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v7, v20 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v8, v21 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v9, v22 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v10, v23 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v11, v24 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_16x16x64_bf16 v[12:15], v[0:3], v[4:11], v16 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x64_bf16__flags0(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x64_bf16__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x64_bf16 a[0:3], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_bf16__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_lshrrev_b32_e32 v17, 16, v0 +; GISEL-NEXT: v_lshrrev_b32_e32 v18, 16, v1 +; GISEL-NEXT: v_lshrrev_b32_e32 v19, 16, v2 +; GISEL-NEXT: v_lshrrev_b32_e32 v20, 16, v3 +; GISEL-NEXT: v_mov_b32_sdwa v0, v17 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v1, v18 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v2, v19 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v3, v20 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_lshrrev_b32_e32 v17, 16, v4 +; GISEL-NEXT: v_lshrrev_b32_e32 v18, 16, v5 +; GISEL-NEXT: v_lshrrev_b32_e32 v19, 16, v6 +; GISEL-NEXT: v_lshrrev_b32_e32 v20, 16, v7 +; GISEL-NEXT: v_lshrrev_b32_e32 v21, 16, v8 +; GISEL-NEXT: v_lshrrev_b32_e32 v22, 16, v9 +; GISEL-NEXT: v_lshrrev_b32_e32 v23, 16, v10 +; GISEL-NEXT: v_lshrrev_b32_e32 v24, 16, v11 +; GISEL-NEXT: v_mov_b32_sdwa v4, v17 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v5, v18 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v6, v19 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v7, v20 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v8, v21 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v9, v22 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v10, v23 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v11, v24 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_16x16x64_bf16 v[12:15], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x64_bf16__flags1(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x64_bf16__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x64_bf16 a[0:3], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_bf16__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_lshrrev_b32_e32 v17, 16, v0 +; GISEL-NEXT: v_lshrrev_b32_e32 v18, 16, v1 +; GISEL-NEXT: v_lshrrev_b32_e32 v19, 16, v2 +; GISEL-NEXT: v_lshrrev_b32_e32 v20, 16, v3 +; GISEL-NEXT: v_mov_b32_sdwa v0, v17 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v1, v18 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v2, v19 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v3, v20 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_lshrrev_b32_e32 v17, 16, v4 +; GISEL-NEXT: v_lshrrev_b32_e32 v18, 16, v5 +; GISEL-NEXT: v_lshrrev_b32_e32 v19, 16, v6 +; GISEL-NEXT: v_lshrrev_b32_e32 v20, 16, v7 +; GISEL-NEXT: v_lshrrev_b32_e32 v21, 16, v8 +; GISEL-NEXT: v_lshrrev_b32_e32 v22, 16, v9 +; GISEL-NEXT: v_lshrrev_b32_e32 v23, 16, v10 +; GISEL-NEXT: v_lshrrev_b32_e32 v24, 16, v11 +; GISEL-NEXT: v_mov_b32_sdwa v4, v17 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v5, v18 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v6, v19 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v7, v20 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v8, v21 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v9, v22 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v10, v23 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v11, v24 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_16x16x64_bf16 v[12:15], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x64_bf16__sgpr(<8 x bfloat> inreg %arg0, <16 x bfloat> inreg %arg1, <4 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x64_bf16__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v8, s0 +; SDAG-NEXT: v_mov_b32_e32 v9, s1 +; SDAG-NEXT: v_mov_b32_e32 v10, s2 +; SDAG-NEXT: v_mov_b32_e32 v11, s3 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s24 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s25 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s26 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s27 +; SDAG-NEXT: v_mov_b32_e32 v12, s28 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x64_bf16 a[0:3], v[8:11], v[0:7], v12 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x64_bf16__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_lshr_b32 s4, s0, 16 +; GISEL-NEXT: s_lshr_b32 s5, s1, 16 +; GISEL-NEXT: s_lshl_b32 s4, s4, 16 +; GISEL-NEXT: s_and_b32 s0, s0, 0xffff +; GISEL-NEXT: s_lshr_b32 s6, s2, 16 +; GISEL-NEXT: s_or_b32 s0, s4, s0 +; GISEL-NEXT: s_lshl_b32 s4, s5, 16 +; GISEL-NEXT: s_and_b32 s1, s1, 0xffff +; GISEL-NEXT: s_lshr_b32 s7, s3, 16 +; GISEL-NEXT: s_or_b32 s1, s4, s1 +; GISEL-NEXT: s_lshl_b32 s4, s6, 16 +; GISEL-NEXT: s_and_b32 s2, s2, 0xffff +; GISEL-NEXT: s_or_b32 s2, s4, s2 +; GISEL-NEXT: s_lshl_b32 s4, s7, 16 +; GISEL-NEXT: s_and_b32 s3, s3, 0xffff +; GISEL-NEXT: s_or_b32 s3, s4, s3 +; GISEL-NEXT: s_lshr_b32 s4, s16, 16 +; GISEL-NEXT: s_lshr_b32 s5, s17, 16 +; GISEL-NEXT: s_lshl_b32 s4, s4, 16 +; GISEL-NEXT: s_and_b32 s12, s16, 0xffff +; GISEL-NEXT: s_lshr_b32 s6, s18, 16 +; GISEL-NEXT: s_or_b32 s4, s4, s12 +; GISEL-NEXT: s_lshl_b32 s5, s5, 16 +; GISEL-NEXT: s_and_b32 s12, s17, 0xffff +; GISEL-NEXT: s_lshr_b32 s7, s19, 16 +; GISEL-NEXT: s_or_b32 s5, s5, s12 +; GISEL-NEXT: s_lshl_b32 s6, s6, 16 +; GISEL-NEXT: s_and_b32 s12, s18, 0xffff +; GISEL-NEXT: s_lshr_b32 s8, s20, 16 +; GISEL-NEXT: s_or_b32 s6, s6, s12 +; GISEL-NEXT: s_lshl_b32 s7, s7, 16 +; GISEL-NEXT: s_and_b32 s12, s19, 0xffff +; GISEL-NEXT: s_lshr_b32 s9, s21, 16 +; GISEL-NEXT: s_or_b32 s7, s7, s12 +; GISEL-NEXT: s_lshl_b32 s8, s8, 16 +; GISEL-NEXT: s_and_b32 s12, s20, 0xffff +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; GISEL-NEXT: s_lshr_b32 s10, s22, 16 +; GISEL-NEXT: s_or_b32 s8, s8, s12 +; GISEL-NEXT: s_lshl_b32 s9, s9, 16 +; GISEL-NEXT: s_and_b32 s12, s21, 0xffff +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; GISEL-NEXT: s_lshr_b32 s11, s23, 16 +; GISEL-NEXT: s_or_b32 s9, s9, s12 +; GISEL-NEXT: s_lshl_b32 s10, s10, 16 +; GISEL-NEXT: s_and_b32 s12, s22, 0xffff +; GISEL-NEXT: s_or_b32 s10, s10, s12 +; GISEL-NEXT: s_lshl_b32 s11, s11, 16 +; GISEL-NEXT: s_and_b32 s12, s23, 0xffff +; GISEL-NEXT: s_or_b32 s11, s11, s12 +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[4:5] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[6:7] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b32_e32 v16, s28 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_16x16x64_bf16 v[0:3], v[12:15], v[4:11], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x64.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.32x32x32.bf16 +; -------------------------------------------------------------------- + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.bf16(<8 x bfloat>, <16 x bfloat>, <16 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_32x32x32_bf16__vgpr(ptr addrspace(1) %arg, <8 x bfloat> %a, <16 x bfloat> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_32x32x32_bf16__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x34 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[12:15], v16, s[6:7] offset:48 +; SDAG-NEXT: global_load_dwordx4 v[8:11], v16, s[6:7] offset:32 +; SDAG-NEXT: global_load_dwordx4 v[4:7], v16, s[6:7] offset:16 +; SDAG-NEXT: global_load_dwordx4 v[0:3], v16, s[6:7] +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x44 +; SDAG-NEXT: s_load_dword s16, s[4:5], 0x64 +; SDAG-NEXT: v_mov_b64_e32 v[26:27], s[2:3] +; SDAG-NEXT: v_mov_b64_e32 v[24:25], s[0:1] +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b64_e32 v[22:23], s[14:15] +; SDAG-NEXT: v_mov_b64_e32 v[20:21], s[12:13] +; SDAG-NEXT: v_mov_b64_e32 v[18:19], s[10:11] +; SDAG-NEXT: v_mov_b64_e32 v[16:17], s[8:9] +; SDAG-NEXT: v_mov_b32_e32 v28, s16 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_32x32x32_bf16 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] offset:32 +; SDAG-NEXT: global_store_dwordx4 v16, v[12:15], s[6:7] offset:48 +; SDAG-NEXT: global_store_dwordx4 v16, v[0:3], s[6:7] +; SDAG-NEXT: global_store_dwordx4 v16, v[4:7], s[6:7] offset:16 +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_bf16__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; GISEL-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x34 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[0:3], v16, s[6:7] +; GISEL-NEXT: global_load_dwordx4 v[4:7], v16, s[6:7] offset:16 +; GISEL-NEXT: global_load_dwordx4 v[8:11], v16, s[6:7] offset:32 +; GISEL-NEXT: global_load_dwordx4 v[12:15], v16, s[6:7] offset:48 +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x44 +; GISEL-NEXT: s_load_dword s16, s[4:5], 0x64 +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], s[0:1] +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[8:9] +; GISEL-NEXT: v_mov_b32_e32 v28, s16 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_32x32x32_bf16 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v16, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v16, v[0:3], s[6:7] +; GISEL-NEXT: global_store_dwordx4 v16, v[4:7], s[6:7] offset:16 +; GISEL-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] offset:32 +; GISEL-NEXT: global_store_dwordx4 v16, v[12:15], s[6:7] offset:48 +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <16 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <16 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.bf16(<8 x bfloat> %a, <16 x bfloat> %b, <16 x float> %in.1, i32 %idx, i32 1, i32 2) + store <16 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <16 x float> @test_smfmac_f32_32x32x32_bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x32_bf16: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x32_bf16 a[0:15], v[0:3], v[4:11], v28 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_bf16: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_lshrrev_b32_e32 v0, 16, v48 +; GISEL-NEXT: v_lshrrev_b32_e32 v1, 16, v49 +; GISEL-NEXT: v_lshrrev_b32_e32 v2, 16, v50 +; GISEL-NEXT: v_lshrrev_b32_e32 v3, 16, v51 +; GISEL-NEXT: v_mov_b32_sdwa v48, v0 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v49, v1 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v50, v2 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v51, v3 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_lshrrev_b32_e32 v0, 16, v30 +; GISEL-NEXT: v_lshrrev_b32_e32 v1, 16, v31 +; GISEL-NEXT: v_lshrrev_b32_e32 v2, 16, v32 +; GISEL-NEXT: v_lshrrev_b32_e32 v3, 16, v33 +; GISEL-NEXT: v_lshrrev_b32_e32 v4, 16, v34 +; GISEL-NEXT: v_lshrrev_b32_e32 v5, 16, v35 +; GISEL-NEXT: v_lshrrev_b32_e32 v6, 16, v36 +; GISEL-NEXT: v_lshrrev_b32_e32 v7, 16, v37 +; GISEL-NEXT: v_mov_b32_sdwa v30, v0 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v31, v1 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v32, v2 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v33, v3 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v34, v4 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v35, v5 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v36, v6 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v37, v7 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x32_bf16 v[0:15], v[48:51], v[30:37], v28 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x32_bf16__flags0(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x32_bf16__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x32_bf16 a[0:15], v[0:3], v[4:11], v28 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_bf16__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_lshrrev_b32_e32 v0, 16, v48 +; GISEL-NEXT: v_lshrrev_b32_e32 v1, 16, v49 +; GISEL-NEXT: v_lshrrev_b32_e32 v2, 16, v50 +; GISEL-NEXT: v_lshrrev_b32_e32 v3, 16, v51 +; GISEL-NEXT: v_mov_b32_sdwa v48, v0 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v49, v1 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v50, v2 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v51, v3 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_lshrrev_b32_e32 v0, 16, v30 +; GISEL-NEXT: v_lshrrev_b32_e32 v1, 16, v31 +; GISEL-NEXT: v_lshrrev_b32_e32 v2, 16, v32 +; GISEL-NEXT: v_lshrrev_b32_e32 v3, 16, v33 +; GISEL-NEXT: v_lshrrev_b32_e32 v4, 16, v34 +; GISEL-NEXT: v_lshrrev_b32_e32 v5, 16, v35 +; GISEL-NEXT: v_lshrrev_b32_e32 v6, 16, v36 +; GISEL-NEXT: v_lshrrev_b32_e32 v7, 16, v37 +; GISEL-NEXT: v_mov_b32_sdwa v30, v0 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v31, v1 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v32, v2 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v33, v3 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v34, v4 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v35, v5 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v36, v6 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v37, v7 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x32_bf16 v[0:15], v[48:51], v[30:37], v28 cbsz:1 abid:3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x32_bf16__flags1(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x32_bf16__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x32_bf16 a[0:15], v[0:3], v[4:11], v28 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_bf16__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_lshrrev_b32_e32 v0, 16, v48 +; GISEL-NEXT: v_lshrrev_b32_e32 v1, 16, v49 +; GISEL-NEXT: v_lshrrev_b32_e32 v2, 16, v50 +; GISEL-NEXT: v_lshrrev_b32_e32 v3, 16, v51 +; GISEL-NEXT: v_mov_b32_sdwa v48, v0 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v49, v1 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v50, v2 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v51, v3 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_lshrrev_b32_e32 v0, 16, v30 +; GISEL-NEXT: v_lshrrev_b32_e32 v1, 16, v31 +; GISEL-NEXT: v_lshrrev_b32_e32 v2, 16, v32 +; GISEL-NEXT: v_lshrrev_b32_e32 v3, 16, v33 +; GISEL-NEXT: v_lshrrev_b32_e32 v4, 16, v34 +; GISEL-NEXT: v_lshrrev_b32_e32 v5, 16, v35 +; GISEL-NEXT: v_lshrrev_b32_e32 v6, 16, v36 +; GISEL-NEXT: v_lshrrev_b32_e32 v7, 16, v37 +; GISEL-NEXT: v_mov_b32_sdwa v30, v0 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v31, v1 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v32, v2 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v33, v3 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v34, v4 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v35, v5 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v36, v6 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b32_sdwa v37, v7 dst_sel:WORD_1 dst_unused:UNUSED_PRESERVE src0_sel:WORD_0 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x32_bf16 v[0:15], v[48:51], v[30:37], v28 cbsz:3 abid:1 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x32_bf16__sgpr(<8 x bfloat> inreg %arg0, <16 x bfloat> inreg %arg1, <16 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x32_bf16__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v28, s0 +; SDAG-NEXT: v_mov_b32_e32 v29, s1 +; SDAG-NEXT: v_mov_b32_e32 v30, s2 +; SDAG-NEXT: v_mov_b32_e32 v31, s3 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v27, v9 +; SDAG-NEXT: v_mov_b32_e32 v26, v8 +; SDAG-NEXT: v_mov_b32_e32 v25, v7 +; SDAG-NEXT: v_mov_b32_e32 v24, v6 +; SDAG-NEXT: v_mov_b32_e32 v23, v5 +; SDAG-NEXT: v_mov_b32_e32 v22, v4 +; SDAG-NEXT: v_mov_b32_e32 v21, v3 +; SDAG-NEXT: v_mov_b32_e32 v20, v2 +; SDAG-NEXT: v_mov_b32_e32 v19, v1 +; SDAG-NEXT: v_mov_b32_e32 v18, v0 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: v_mov_b32_e32 v16, s28 +; SDAG-NEXT: v_mov_b32_e32 v17, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x32_bf16 a[0:15], v[28:31], v[0:7], v10 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x32_bf16__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: s_lshr_b32 s4, s0, 16 +; GISEL-NEXT: s_lshr_b32 s5, s1, 16 +; GISEL-NEXT: s_lshl_b32 s4, s4, 16 +; GISEL-NEXT: s_and_b32 s0, s0, 0xffff +; GISEL-NEXT: s_lshr_b32 s6, s2, 16 +; GISEL-NEXT: s_or_b32 s8, s4, s0 +; GISEL-NEXT: s_lshl_b32 s0, s5, 16 +; GISEL-NEXT: s_and_b32 s1, s1, 0xffff +; GISEL-NEXT: s_lshr_b32 s7, s3, 16 +; GISEL-NEXT: s_or_b32 s9, s0, s1 +; GISEL-NEXT: s_lshl_b32 s0, s6, 16 +; GISEL-NEXT: s_and_b32 s1, s2, 0xffff +; GISEL-NEXT: s_or_b32 s10, s0, s1 +; GISEL-NEXT: s_lshl_b32 s0, s7, 16 +; GISEL-NEXT: s_and_b32 s1, s3, 0xffff +; GISEL-NEXT: s_or_b32 s11, s0, s1 +; GISEL-NEXT: s_lshr_b32 s0, s16, 16 +; GISEL-NEXT: s_lshr_b32 s1, s17, 16 +; GISEL-NEXT: s_lshl_b32 s0, s0, 16 +; GISEL-NEXT: s_and_b32 s12, s16, 0xffff +; GISEL-NEXT: s_lshr_b32 s2, s18, 16 +; GISEL-NEXT: s_or_b32 s0, s0, s12 +; GISEL-NEXT: s_lshl_b32 s1, s1, 16 +; GISEL-NEXT: s_and_b32 s12, s17, 0xffff +; GISEL-NEXT: s_lshr_b32 s3, s19, 16 +; GISEL-NEXT: s_or_b32 s1, s1, s12 +; GISEL-NEXT: s_lshl_b32 s2, s2, 16 +; GISEL-NEXT: s_and_b32 s12, s18, 0xffff +; GISEL-NEXT: s_lshr_b32 s4, s20, 16 +; GISEL-NEXT: s_or_b32 s2, s2, s12 +; GISEL-NEXT: s_lshl_b32 s3, s3, 16 +; GISEL-NEXT: s_and_b32 s12, s19, 0xffff +; GISEL-NEXT: s_lshr_b32 s5, s21, 16 +; GISEL-NEXT: s_or_b32 s3, s3, s12 +; GISEL-NEXT: s_lshl_b32 s4, s4, 16 +; GISEL-NEXT: s_and_b32 s12, s20, 0xffff +; GISEL-NEXT: s_lshr_b32 s6, s22, 16 +; GISEL-NEXT: s_or_b32 s4, s4, s12 +; GISEL-NEXT: s_lshl_b32 s5, s5, 16 +; GISEL-NEXT: s_and_b32 s12, s21, 0xffff +; GISEL-NEXT: v_mov_b64_e32 v[36:37], s[10:11] +; GISEL-NEXT: s_lshr_b32 s7, s23, 16 +; GISEL-NEXT: s_or_b32 s5, s5, s12 +; GISEL-NEXT: s_lshl_b32 s6, s6, 16 +; GISEL-NEXT: s_and_b32 s12, s22, 0xffff +; GISEL-NEXT: v_mov_b64_e32 v[34:35], s[8:9] +; GISEL-NEXT: s_or_b32 s6, s6, s12 +; GISEL-NEXT: s_lshl_b32 s7, s7, 16 +; GISEL-NEXT: s_and_b32 s12, s23, 0xffff +; GISEL-NEXT: s_or_b32 s7, s7, s12 +; GISEL-NEXT: v_mov_b32_e32 v18, s24 +; GISEL-NEXT: v_mov_b32_e32 v19, s25 +; GISEL-NEXT: v_mov_b32_e32 v24, v0 +; GISEL-NEXT: v_mov_b32_e32 v25, v1 +; GISEL-NEXT: v_mov_b32_e32 v26, v2 +; GISEL-NEXT: v_mov_b32_e32 v27, v3 +; GISEL-NEXT: v_mov_b32_e32 v28, v4 +; GISEL-NEXT: v_mov_b32_e32 v29, v5 +; GISEL-NEXT: v_mov_b32_e32 v30, v6 +; GISEL-NEXT: v_mov_b32_e32 v31, v7 +; GISEL-NEXT: v_mov_b32_e32 v32, v8 +; GISEL-NEXT: v_mov_b32_e32 v33, v9 +; GISEL-NEXT: v_mov_b32_e32 v16, v10 +; GISEL-NEXT: v_mov_b32_e32 v20, s26 +; GISEL-NEXT: v_mov_b32_e32 v21, s27 +; GISEL-NEXT: v_mov_b32_e32 v22, s28 +; GISEL-NEXT: v_mov_b32_e32 v23, s29 +; GISEL-NEXT: v_mov_b64_e32 v[54:55], s[6:7] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[52:53], s[4:5] +; GISEL-NEXT: v_mov_b64_e32 v[50:51], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[48:49], s[0:1] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[28:29] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[30:31] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[32:33] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x32_bf16 v[0:15], v[34:37], v[48:55], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x32.bf16(<8 x bfloat> %arg0, <16 x bfloat> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.i32.16x16x128.i8 +; -------------------------------------------------------------------- + +declare <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32) + +define amdgpu_kernel void @test_smfmac_i32_16x16x128_i8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_i32_16x16x128_i8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[8:11], v0, s[6:7] +; SDAG-NEXT: s_load_dword s16, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: v_mov_b32_e32 v12, s8 +; SDAG-NEXT: v_mov_b32_e32 v13, s9 +; SDAG-NEXT: v_mov_b32_e32 v14, s10 +; SDAG-NEXT: v_mov_b32_e32 v15, s11 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v4, s0 +; SDAG-NEXT: v_mov_b32_e32 v5, s1 +; SDAG-NEXT: v_mov_b32_e32 v6, s2 +; SDAG-NEXT: v_mov_b32_e32 v7, s3 +; SDAG-NEXT: v_mov_b32_e32 v17, s16 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_i32_16x16x128_i8 v[8:11], v[12:15], v[0:7], v17 cbsz:1 abid:2 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_i32_16x16x128_i8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[8:11], v0, s[0:1] +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v16, s2 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_i32_16x16x128_i8 v[8:11], v[12:15], v[0:7], v16 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, v[8:11], s[0:1] +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <4 x i32>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <4 x i32>, ptr addrspace(1) %gep + %mai.1 = tail call <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32> %a, <8 x i32> %b, <4 x i32> %in.1, i32 %idx, i32 1, i32 2) + store <4 x i32> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <4 x i32> @test_smfmac_i32_16x16x128_i8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_i32_16x16x128_i8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_i32_16x16x128_i8 a[0:3], v[0:3], v[4:11], v16 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_i32_16x16x128_i8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_i32_16x16x128_i8 v[12:15], v[0:3], v[4:11], v16 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x i32> %result +} + +define <4 x i32> @test_smfmac_i32_16x16x128_i8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_i32_16x16x128_i8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_i32_16x16x128_i8 a[0:3], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_i32_16x16x128_i8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_i32_16x16x128_i8 v[12:15], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <4 x i32> %result +} + +define <4 x i32> @test_smfmac_i32_16x16x128_i8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_i32_16x16x128_i8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_i32_16x16x128_i8 a[0:3], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_i32_16x16x128_i8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_i32_16x16x128_i8 v[12:15], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <4 x i32> %result +} + +define <4 x i32> @test_smfmac_i32_16x16x128_i8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <4 x i32> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_i32_16x16x128_i8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v8, s0 +; SDAG-NEXT: v_mov_b32_e32 v9, s1 +; SDAG-NEXT: v_mov_b32_e32 v10, s2 +; SDAG-NEXT: v_mov_b32_e32 v11, s3 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s24 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s25 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s26 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s27 +; SDAG-NEXT: v_mov_b32_e32 v12, s28 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_i32_16x16x128_i8 a[0:3], v[8:11], v[0:7], v12 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_i32_16x16x128_i8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b32_e32 v16, s28 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_i32_16x16x128_i8 v[0:3], v[12:15], v[4:11], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x i32> @llvm.amdgcn.smfmac.i32.16x16x128.i8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x i32> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x i32> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.i32.32x32x64.i8 +; -------------------------------------------------------------------- + +declare <16 x i32> @llvm.amdgcn.smfmac.i32.32x32x64.i8(<4 x i32>, <8 x i32>, <16 x i32>, i32, i32, i32) + +define amdgpu_kernel void @test_smfmac_i32_32x32x64_i8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_i32_32x32x64_i8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; SDAG-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; SDAG-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; SDAG-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dword s2, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v24, s8 +; SDAG-NEXT: v_mov_b32_e32 v25, s9 +; SDAG-NEXT: v_mov_b32_e32 v26, s10 +; SDAG-NEXT: v_mov_b32_e32 v27, s11 +; SDAG-NEXT: v_mov_b32_e32 v16, s12 +; SDAG-NEXT: v_mov_b32_e32 v17, s13 +; SDAG-NEXT: v_mov_b32_e32 v18, s14 +; SDAG-NEXT: v_mov_b32_e32 v19, s15 +; SDAG-NEXT: v_mov_b32_e32 v20, s16 +; SDAG-NEXT: v_mov_b32_e32 v21, s17 +; SDAG-NEXT: v_mov_b32_e32 v22, s18 +; SDAG-NEXT: v_mov_b32_e32 v23, s19 +; SDAG-NEXT: v_mov_b32_e32 v28, s2 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_i32_32x32x64_i8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; SDAG-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_i32_32x32x64_i8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; GISEL-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; GISEL-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; GISEL-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v28, s2 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[12:13] +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_i32_32x32x64_i8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v16, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <16 x i32>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <16 x i32>, ptr addrspace(1) %gep + %mai.1 = tail call <16 x i32> @llvm.amdgcn.smfmac.i32.32x32x64.i8(<4 x i32> %a, <8 x i32> %b, <16 x i32> %in.1, i32 %idx, i32 1, i32 2) + store <16 x i32> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <16 x i32> @test_smfmac_i32_32x32x64_i8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x i32> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_i32_32x32x64_i8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_i32_32x32x64_i8 a[0:15], v[0:3], v[4:11], v28 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_i32_32x32x64_i8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_i32_32x32x64_i8 v[0:15], v[48:51], v[30:37], v28 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x i32> @llvm.amdgcn.smfmac.i32.32x32x64.i8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x i32> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x i32> %result +} + +define <16 x i32> @test_smfmac_i32_32x32x64_i8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x i32> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_i32_32x32x64_i8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_i32_32x32x64_i8 a[0:15], v[0:3], v[4:11], v28 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_i32_32x32x64_i8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_i32_32x32x64_i8 v[0:15], v[48:51], v[30:37], v28 cbsz:1 abid:3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x i32> @llvm.amdgcn.smfmac.i32.32x32x64.i8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x i32> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <16 x i32> %result +} + +define <16 x i32> @test_smfmac_i32_32x32x64_i8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <16 x i32> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_i32_32x32x64_i8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_i32_32x32x64_i8 a[0:15], v[0:3], v[4:11], v28 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_i32_32x32x64_i8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_i32_32x32x64_i8 v[0:15], v[48:51], v[30:37], v28 cbsz:3 abid:1 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x i32> @llvm.amdgcn.smfmac.i32.32x32x64.i8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x i32> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <16 x i32> %result +} + +define <16 x i32> @test_smfmac_i32_32x32x64_i8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <16 x i32> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_i32_32x32x64_i8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v28, s0 +; SDAG-NEXT: v_mov_b32_e32 v29, s1 +; SDAG-NEXT: v_mov_b32_e32 v30, s2 +; SDAG-NEXT: v_mov_b32_e32 v31, s3 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v27, v9 +; SDAG-NEXT: v_mov_b32_e32 v26, v8 +; SDAG-NEXT: v_mov_b32_e32 v25, v7 +; SDAG-NEXT: v_mov_b32_e32 v24, v6 +; SDAG-NEXT: v_mov_b32_e32 v23, v5 +; SDAG-NEXT: v_mov_b32_e32 v22, v4 +; SDAG-NEXT: v_mov_b32_e32 v21, v3 +; SDAG-NEXT: v_mov_b32_e32 v20, v2 +; SDAG-NEXT: v_mov_b32_e32 v19, v1 +; SDAG-NEXT: v_mov_b32_e32 v18, v0 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: v_mov_b32_e32 v16, s28 +; SDAG-NEXT: v_mov_b32_e32 v17, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_i32_32x32x64_i8 a[0:15], v[28:31], v[0:7], v10 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_i32_32x32x64_i8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[36:37], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[34:35], s[0:1] +; GISEL-NEXT: v_mov_b32_e32 v18, s24 +; GISEL-NEXT: v_mov_b32_e32 v19, s25 +; GISEL-NEXT: v_mov_b32_e32 v24, v0 +; GISEL-NEXT: v_mov_b32_e32 v25, v1 +; GISEL-NEXT: v_mov_b32_e32 v26, v2 +; GISEL-NEXT: v_mov_b32_e32 v27, v3 +; GISEL-NEXT: v_mov_b32_e32 v28, v4 +; GISEL-NEXT: v_mov_b32_e32 v29, v5 +; GISEL-NEXT: v_mov_b32_e32 v30, v6 +; GISEL-NEXT: v_mov_b32_e32 v31, v7 +; GISEL-NEXT: v_mov_b32_e32 v32, v8 +; GISEL-NEXT: v_mov_b32_e32 v33, v9 +; GISEL-NEXT: v_mov_b32_e32 v16, v10 +; GISEL-NEXT: v_mov_b32_e32 v20, s26 +; GISEL-NEXT: v_mov_b32_e32 v21, s27 +; GISEL-NEXT: v_mov_b32_e32 v22, s28 +; GISEL-NEXT: v_mov_b32_e32 v23, s29 +; GISEL-NEXT: v_mov_b64_e32 v[54:55], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[52:53], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[50:51], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[48:49], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[28:29] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[30:31] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[32:33] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_i32_32x32x64_i8 v[0:15], v[34:37], v[48:55], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x i32> @llvm.amdgcn.smfmac.i32.32x32x64.i8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x i32> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x i32> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8 +; -------------------------------------------------------------------- + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32>, <8 x i32>, <4 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_16x16x128_bf8_bf8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_bf8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[8:11], v0, s[6:7] +; SDAG-NEXT: s_load_dword s16, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: v_mov_b32_e32 v12, s8 +; SDAG-NEXT: v_mov_b32_e32 v13, s9 +; SDAG-NEXT: v_mov_b32_e32 v14, s10 +; SDAG-NEXT: v_mov_b32_e32 v15, s11 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v4, s0 +; SDAG-NEXT: v_mov_b32_e32 v5, s1 +; SDAG-NEXT: v_mov_b32_e32 v6, s2 +; SDAG-NEXT: v_mov_b32_e32 v7, s3 +; SDAG-NEXT: v_mov_b32_e32 v17, s16 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 v[8:11], v[12:15], v[0:7], v17 cbsz:1 abid:2 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_bf8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[8:11], v0, s[0:1] +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v16, s2 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 v[8:11], v[12:15], v[0:7], v16 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, v[8:11], s[0:1] +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <4 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <4 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32> %a, <8 x i32> %b, <4 x float> %in.1, i32 %idx, i32 1, i32 2) + store <4 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <4 x float> @test_smfmac_f32_16x16x128_bf8_bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_bf8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 a[0:3], v[0:3], v[4:11], v16 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_bf8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 v[12:15], v[0:3], v[4:11], v16 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_bf8_bf8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_bf8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 a[0:3], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_bf8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 v[12:15], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_bf8_bf8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_bf8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 a[0:3], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_bf8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 v[12:15], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_bf8_bf8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <4 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_bf8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v8, s0 +; SDAG-NEXT: v_mov_b32_e32 v9, s1 +; SDAG-NEXT: v_mov_b32_e32 v10, s2 +; SDAG-NEXT: v_mov_b32_e32 v11, s3 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s24 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s25 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s26 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s27 +; SDAG-NEXT: v_mov_b32_e32 v12, s28 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 a[0:3], v[8:11], v[0:7], v12 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_bf8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b32_e32 v16, s28 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_bf8 v[0:3], v[12:15], v[4:11], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8 +; -------------------------------------------------------------------- + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32>, <8 x i32>, <4 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_16x16x128_bf8_fp8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_fp8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[8:11], v0, s[6:7] +; SDAG-NEXT: s_load_dword s16, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: v_mov_b32_e32 v12, s8 +; SDAG-NEXT: v_mov_b32_e32 v13, s9 +; SDAG-NEXT: v_mov_b32_e32 v14, s10 +; SDAG-NEXT: v_mov_b32_e32 v15, s11 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v4, s0 +; SDAG-NEXT: v_mov_b32_e32 v5, s1 +; SDAG-NEXT: v_mov_b32_e32 v6, s2 +; SDAG-NEXT: v_mov_b32_e32 v7, s3 +; SDAG-NEXT: v_mov_b32_e32 v17, s16 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 v[8:11], v[12:15], v[0:7], v17 cbsz:1 abid:2 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_fp8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[8:11], v0, s[0:1] +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v16, s2 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 v[8:11], v[12:15], v[0:7], v16 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, v[8:11], s[0:1] +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <4 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <4 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32> %a, <8 x i32> %b, <4 x float> %in.1, i32 %idx, i32 1, i32 2) + store <4 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <4 x float> @test_smfmac_f32_16x16x128_bf8_fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_fp8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 a[0:3], v[0:3], v[4:11], v16 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_fp8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 v[12:15], v[0:3], v[4:11], v16 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_bf8_fp8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_fp8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 a[0:3], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_fp8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 v[12:15], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_bf8_fp8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_fp8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 a[0:3], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_fp8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 v[12:15], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_bf8_fp8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <4 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_bf8_fp8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v8, s0 +; SDAG-NEXT: v_mov_b32_e32 v9, s1 +; SDAG-NEXT: v_mov_b32_e32 v10, s2 +; SDAG-NEXT: v_mov_b32_e32 v11, s3 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s24 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s25 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s26 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s27 +; SDAG-NEXT: v_mov_b32_e32 v12, s28 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 a[0:3], v[8:11], v[0:7], v12 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_bf8_fp8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b32_e32 v16, s28 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_16x16x128_bf8_fp8 v[0:3], v[12:15], v[4:11], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8 +; -------------------------------------------------------------------- + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32>, <8 x i32>, <4 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_16x16x128_fp8_bf8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_bf8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[8:11], v0, s[6:7] +; SDAG-NEXT: s_load_dword s16, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: v_mov_b32_e32 v12, s8 +; SDAG-NEXT: v_mov_b32_e32 v13, s9 +; SDAG-NEXT: v_mov_b32_e32 v14, s10 +; SDAG-NEXT: v_mov_b32_e32 v15, s11 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v4, s0 +; SDAG-NEXT: v_mov_b32_e32 v5, s1 +; SDAG-NEXT: v_mov_b32_e32 v6, s2 +; SDAG-NEXT: v_mov_b32_e32 v7, s3 +; SDAG-NEXT: v_mov_b32_e32 v17, s16 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 v[8:11], v[12:15], v[0:7], v17 cbsz:1 abid:2 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_bf8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[8:11], v0, s[0:1] +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v16, s2 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 v[8:11], v[12:15], v[0:7], v16 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, v[8:11], s[0:1] +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <4 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <4 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32> %a, <8 x i32> %b, <4 x float> %in.1, i32 %idx, i32 1, i32 2) + store <4 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <4 x float> @test_smfmac_f32_16x16x128_fp8_bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_bf8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 a[0:3], v[0:3], v[4:11], v16 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_bf8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 v[12:15], v[0:3], v[4:11], v16 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_fp8_bf8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_bf8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 a[0:3], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_bf8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 v[12:15], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_fp8_bf8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_bf8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 a[0:3], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_bf8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 v[12:15], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_fp8_bf8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <4 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_bf8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v8, s0 +; SDAG-NEXT: v_mov_b32_e32 v9, s1 +; SDAG-NEXT: v_mov_b32_e32 v10, s2 +; SDAG-NEXT: v_mov_b32_e32 v11, s3 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s24 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s25 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s26 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s27 +; SDAG-NEXT: v_mov_b32_e32 v12, s28 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 a[0:3], v[8:11], v[0:7], v12 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_bf8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b32_e32 v16, s28 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_bf8 v[0:3], v[12:15], v[4:11], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8 +; -------------------------------------------------------------------- + +declare <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32>, <8 x i32>, <4 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_16x16x128_fp8_fp8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_fp8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[8:11], v0, s[6:7] +; SDAG-NEXT: s_load_dword s16, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x54 +; SDAG-NEXT: v_mov_b32_e32 v12, s8 +; SDAG-NEXT: v_mov_b32_e32 v13, s9 +; SDAG-NEXT: v_mov_b32_e32 v14, s10 +; SDAG-NEXT: v_mov_b32_e32 v15, s11 +; SDAG-NEXT: v_mov_b32_e32 v0, s12 +; SDAG-NEXT: v_mov_b32_e32 v1, s13 +; SDAG-NEXT: v_mov_b32_e32 v2, s14 +; SDAG-NEXT: v_mov_b32_e32 v3, s15 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v4, s0 +; SDAG-NEXT: v_mov_b32_e32 v5, s1 +; SDAG-NEXT: v_mov_b32_e32 v6, s2 +; SDAG-NEXT: v_mov_b32_e32 v7, s3 +; SDAG-NEXT: v_mov_b32_e32 v17, s16 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 v[8:11], v[12:15], v[0:7], v17 cbsz:1 abid:2 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[6:7] +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_fp8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v0, 4, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[8:11], v0, s[0:1] +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v16, s2 +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 v[8:11], v[12:15], v[0:7], v16 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v0, 0 +; GISEL-NEXT: s_nop 5 +; GISEL-NEXT: global_store_dwordx4 v0, v[8:11], s[0:1] +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <4 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <4 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32> %a, <8 x i32> %b, <4 x float> %in.1, i32 %idx, i32 1, i32 2) + store <4 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <4 x float> @test_smfmac_f32_16x16x128_fp8_fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_fp8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 a[0:3], v[0:3], v[4:11], v16 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_fp8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 v[12:15], v[0:3], v[4:11], v16 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_fp8_fp8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_fp8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 a[0:3], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_fp8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 v[12:15], v[0:3], v[4:11], v16 cbsz:1 abid:3 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_fp8_fp8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_fp8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 a[0:3], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_fp8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 v[12:15], v[0:3], v[4:11], v16 cbsz:3 abid:1 +; GISEL-NEXT: s_nop 6 +; GISEL-NEXT: v_mov_b32_e32 v0, v12 +; GISEL-NEXT: v_mov_b32_e32 v1, v13 +; GISEL-NEXT: v_mov_b32_e32 v2, v14 +; GISEL-NEXT: v_mov_b32_e32 v3, v15 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <4 x float> %result +} + +define <4 x float> @test_smfmac_f32_16x16x128_fp8_fp8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <4 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_16x16x128_fp8_fp8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v8, s0 +; SDAG-NEXT: v_mov_b32_e32 v9, s1 +; SDAG-NEXT: v_mov_b32_e32 v10, s2 +; SDAG-NEXT: v_mov_b32_e32 v11, s3 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a0, s24 +; SDAG-NEXT: v_accvgpr_write_b32 a1, s25 +; SDAG-NEXT: v_accvgpr_write_b32 a2, s26 +; SDAG-NEXT: v_accvgpr_write_b32 a3, s27 +; SDAG-NEXT: v_mov_b32_e32 v12, s28 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 a[0:3], v[8:11], v[0:7], v12 +; SDAG-NEXT: s_nop 6 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_16x16x128_fp8_fp8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[14:15], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], s[0:1] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], s[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], s[26:27] +; GISEL-NEXT: v_mov_b32_e32 v16, s28 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_16x16x128_fp8_fp8 v[0:3], v[12:15], v[4:11], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <4 x float> @llvm.amdgcn.smfmac.f32.16x16x128.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <4 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8 +; -------------------------------------------------------------------- + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32>, <8 x i32>, <16 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_32x32x64_bf8_bf8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_bf8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; SDAG-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; SDAG-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; SDAG-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dword s2, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v24, s8 +; SDAG-NEXT: v_mov_b32_e32 v25, s9 +; SDAG-NEXT: v_mov_b32_e32 v26, s10 +; SDAG-NEXT: v_mov_b32_e32 v27, s11 +; SDAG-NEXT: v_mov_b32_e32 v16, s12 +; SDAG-NEXT: v_mov_b32_e32 v17, s13 +; SDAG-NEXT: v_mov_b32_e32 v18, s14 +; SDAG-NEXT: v_mov_b32_e32 v19, s15 +; SDAG-NEXT: v_mov_b32_e32 v20, s16 +; SDAG-NEXT: v_mov_b32_e32 v21, s17 +; SDAG-NEXT: v_mov_b32_e32 v22, s18 +; SDAG-NEXT: v_mov_b32_e32 v23, s19 +; SDAG-NEXT: v_mov_b32_e32 v28, s2 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; SDAG-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_bf8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; GISEL-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; GISEL-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; GISEL-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v28, s2 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[12:13] +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v16, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <16 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <16 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32> %a, <8 x i32> %b, <16 x float> %in.1, i32 %idx, i32 1, i32 2) + store <16 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <16 x float> @test_smfmac_f32_32x32x64_bf8_bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_bf8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 a[0:15], v[0:3], v[4:11], v28 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_bf8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 v[0:15], v[48:51], v[30:37], v28 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_bf8_bf8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_bf8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 a[0:15], v[0:3], v[4:11], v28 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_bf8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 v[0:15], v[48:51], v[30:37], v28 cbsz:1 abid:3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_bf8_bf8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_bf8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 a[0:15], v[0:3], v[4:11], v28 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_bf8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 v[0:15], v[48:51], v[30:37], v28 cbsz:3 abid:1 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_bf8_bf8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <16 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_bf8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v28, s0 +; SDAG-NEXT: v_mov_b32_e32 v29, s1 +; SDAG-NEXT: v_mov_b32_e32 v30, s2 +; SDAG-NEXT: v_mov_b32_e32 v31, s3 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v27, v9 +; SDAG-NEXT: v_mov_b32_e32 v26, v8 +; SDAG-NEXT: v_mov_b32_e32 v25, v7 +; SDAG-NEXT: v_mov_b32_e32 v24, v6 +; SDAG-NEXT: v_mov_b32_e32 v23, v5 +; SDAG-NEXT: v_mov_b32_e32 v22, v4 +; SDAG-NEXT: v_mov_b32_e32 v21, v3 +; SDAG-NEXT: v_mov_b32_e32 v20, v2 +; SDAG-NEXT: v_mov_b32_e32 v19, v1 +; SDAG-NEXT: v_mov_b32_e32 v18, v0 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: v_mov_b32_e32 v16, s28 +; SDAG-NEXT: v_mov_b32_e32 v17, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 a[0:15], v[28:31], v[0:7], v10 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_bf8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[36:37], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[34:35], s[0:1] +; GISEL-NEXT: v_mov_b32_e32 v18, s24 +; GISEL-NEXT: v_mov_b32_e32 v19, s25 +; GISEL-NEXT: v_mov_b32_e32 v24, v0 +; GISEL-NEXT: v_mov_b32_e32 v25, v1 +; GISEL-NEXT: v_mov_b32_e32 v26, v2 +; GISEL-NEXT: v_mov_b32_e32 v27, v3 +; GISEL-NEXT: v_mov_b32_e32 v28, v4 +; GISEL-NEXT: v_mov_b32_e32 v29, v5 +; GISEL-NEXT: v_mov_b32_e32 v30, v6 +; GISEL-NEXT: v_mov_b32_e32 v31, v7 +; GISEL-NEXT: v_mov_b32_e32 v32, v8 +; GISEL-NEXT: v_mov_b32_e32 v33, v9 +; GISEL-NEXT: v_mov_b32_e32 v16, v10 +; GISEL-NEXT: v_mov_b32_e32 v20, s26 +; GISEL-NEXT: v_mov_b32_e32 v21, s27 +; GISEL-NEXT: v_mov_b32_e32 v22, s28 +; GISEL-NEXT: v_mov_b32_e32 v23, s29 +; GISEL-NEXT: v_mov_b64_e32 v[54:55], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[52:53], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[50:51], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[48:49], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[28:29] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[30:31] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[32:33] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_bf8 v[0:15], v[34:37], v[48:55], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8 +; -------------------------------------------------------------------- + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32>, <8 x i32>, <16 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_32x32x64_bf8_fp8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_fp8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; SDAG-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; SDAG-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; SDAG-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dword s2, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v24, s8 +; SDAG-NEXT: v_mov_b32_e32 v25, s9 +; SDAG-NEXT: v_mov_b32_e32 v26, s10 +; SDAG-NEXT: v_mov_b32_e32 v27, s11 +; SDAG-NEXT: v_mov_b32_e32 v16, s12 +; SDAG-NEXT: v_mov_b32_e32 v17, s13 +; SDAG-NEXT: v_mov_b32_e32 v18, s14 +; SDAG-NEXT: v_mov_b32_e32 v19, s15 +; SDAG-NEXT: v_mov_b32_e32 v20, s16 +; SDAG-NEXT: v_mov_b32_e32 v21, s17 +; SDAG-NEXT: v_mov_b32_e32 v22, s18 +; SDAG-NEXT: v_mov_b32_e32 v23, s19 +; SDAG-NEXT: v_mov_b32_e32 v28, s2 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; SDAG-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_fp8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; GISEL-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; GISEL-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; GISEL-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v28, s2 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[12:13] +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v16, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <16 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <16 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32> %a, <8 x i32> %b, <16 x float> %in.1, i32 %idx, i32 1, i32 2) + store <16 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <16 x float> @test_smfmac_f32_32x32x64_bf8_fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_fp8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 a[0:15], v[0:3], v[4:11], v28 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_fp8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 v[0:15], v[48:51], v[30:37], v28 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_bf8_fp8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_fp8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 a[0:15], v[0:3], v[4:11], v28 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_fp8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 v[0:15], v[48:51], v[30:37], v28 cbsz:1 abid:3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_bf8_fp8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_fp8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 a[0:15], v[0:3], v[4:11], v28 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_fp8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 v[0:15], v[48:51], v[30:37], v28 cbsz:3 abid:1 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_bf8_fp8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <16 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_bf8_fp8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v28, s0 +; SDAG-NEXT: v_mov_b32_e32 v29, s1 +; SDAG-NEXT: v_mov_b32_e32 v30, s2 +; SDAG-NEXT: v_mov_b32_e32 v31, s3 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v27, v9 +; SDAG-NEXT: v_mov_b32_e32 v26, v8 +; SDAG-NEXT: v_mov_b32_e32 v25, v7 +; SDAG-NEXT: v_mov_b32_e32 v24, v6 +; SDAG-NEXT: v_mov_b32_e32 v23, v5 +; SDAG-NEXT: v_mov_b32_e32 v22, v4 +; SDAG-NEXT: v_mov_b32_e32 v21, v3 +; SDAG-NEXT: v_mov_b32_e32 v20, v2 +; SDAG-NEXT: v_mov_b32_e32 v19, v1 +; SDAG-NEXT: v_mov_b32_e32 v18, v0 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: v_mov_b32_e32 v16, s28 +; SDAG-NEXT: v_mov_b32_e32 v17, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 a[0:15], v[28:31], v[0:7], v10 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_bf8_fp8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[36:37], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[34:35], s[0:1] +; GISEL-NEXT: v_mov_b32_e32 v18, s24 +; GISEL-NEXT: v_mov_b32_e32 v19, s25 +; GISEL-NEXT: v_mov_b32_e32 v24, v0 +; GISEL-NEXT: v_mov_b32_e32 v25, v1 +; GISEL-NEXT: v_mov_b32_e32 v26, v2 +; GISEL-NEXT: v_mov_b32_e32 v27, v3 +; GISEL-NEXT: v_mov_b32_e32 v28, v4 +; GISEL-NEXT: v_mov_b32_e32 v29, v5 +; GISEL-NEXT: v_mov_b32_e32 v30, v6 +; GISEL-NEXT: v_mov_b32_e32 v31, v7 +; GISEL-NEXT: v_mov_b32_e32 v32, v8 +; GISEL-NEXT: v_mov_b32_e32 v33, v9 +; GISEL-NEXT: v_mov_b32_e32 v16, v10 +; GISEL-NEXT: v_mov_b32_e32 v20, s26 +; GISEL-NEXT: v_mov_b32_e32 v21, s27 +; GISEL-NEXT: v_mov_b32_e32 v22, s28 +; GISEL-NEXT: v_mov_b32_e32 v23, s29 +; GISEL-NEXT: v_mov_b64_e32 v[54:55], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[52:53], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[50:51], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[48:49], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[28:29] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[30:31] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[32:33] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_bf8_fp8 v[0:15], v[34:37], v[48:55], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.bf8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8 +; -------------------------------------------------------------------- + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32>, <8 x i32>, <16 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_32x32x64_fp8_bf8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_bf8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; SDAG-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; SDAG-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; SDAG-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dword s2, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v24, s8 +; SDAG-NEXT: v_mov_b32_e32 v25, s9 +; SDAG-NEXT: v_mov_b32_e32 v26, s10 +; SDAG-NEXT: v_mov_b32_e32 v27, s11 +; SDAG-NEXT: v_mov_b32_e32 v16, s12 +; SDAG-NEXT: v_mov_b32_e32 v17, s13 +; SDAG-NEXT: v_mov_b32_e32 v18, s14 +; SDAG-NEXT: v_mov_b32_e32 v19, s15 +; SDAG-NEXT: v_mov_b32_e32 v20, s16 +; SDAG-NEXT: v_mov_b32_e32 v21, s17 +; SDAG-NEXT: v_mov_b32_e32 v22, s18 +; SDAG-NEXT: v_mov_b32_e32 v23, s19 +; SDAG-NEXT: v_mov_b32_e32 v28, s2 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; SDAG-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_bf8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; GISEL-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; GISEL-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; GISEL-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v28, s2 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[12:13] +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v16, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <16 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <16 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32> %a, <8 x i32> %b, <16 x float> %in.1, i32 %idx, i32 1, i32 2) + store <16 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <16 x float> @test_smfmac_f32_32x32x64_fp8_bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_bf8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 a[0:15], v[0:3], v[4:11], v28 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_bf8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 v[0:15], v[48:51], v[30:37], v28 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_fp8_bf8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_bf8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 a[0:15], v[0:3], v[4:11], v28 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_bf8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 v[0:15], v[48:51], v[30:37], v28 cbsz:1 abid:3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_fp8_bf8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_bf8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 a[0:15], v[0:3], v[4:11], v28 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_bf8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 v[0:15], v[48:51], v[30:37], v28 cbsz:3 abid:1 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_fp8_bf8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <16 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_bf8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v28, s0 +; SDAG-NEXT: v_mov_b32_e32 v29, s1 +; SDAG-NEXT: v_mov_b32_e32 v30, s2 +; SDAG-NEXT: v_mov_b32_e32 v31, s3 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v27, v9 +; SDAG-NEXT: v_mov_b32_e32 v26, v8 +; SDAG-NEXT: v_mov_b32_e32 v25, v7 +; SDAG-NEXT: v_mov_b32_e32 v24, v6 +; SDAG-NEXT: v_mov_b32_e32 v23, v5 +; SDAG-NEXT: v_mov_b32_e32 v22, v4 +; SDAG-NEXT: v_mov_b32_e32 v21, v3 +; SDAG-NEXT: v_mov_b32_e32 v20, v2 +; SDAG-NEXT: v_mov_b32_e32 v19, v1 +; SDAG-NEXT: v_mov_b32_e32 v18, v0 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: v_mov_b32_e32 v16, s28 +; SDAG-NEXT: v_mov_b32_e32 v17, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 a[0:15], v[28:31], v[0:7], v10 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_bf8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[36:37], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[34:35], s[0:1] +; GISEL-NEXT: v_mov_b32_e32 v18, s24 +; GISEL-NEXT: v_mov_b32_e32 v19, s25 +; GISEL-NEXT: v_mov_b32_e32 v24, v0 +; GISEL-NEXT: v_mov_b32_e32 v25, v1 +; GISEL-NEXT: v_mov_b32_e32 v26, v2 +; GISEL-NEXT: v_mov_b32_e32 v27, v3 +; GISEL-NEXT: v_mov_b32_e32 v28, v4 +; GISEL-NEXT: v_mov_b32_e32 v29, v5 +; GISEL-NEXT: v_mov_b32_e32 v30, v6 +; GISEL-NEXT: v_mov_b32_e32 v31, v7 +; GISEL-NEXT: v_mov_b32_e32 v32, v8 +; GISEL-NEXT: v_mov_b32_e32 v33, v9 +; GISEL-NEXT: v_mov_b32_e32 v16, v10 +; GISEL-NEXT: v_mov_b32_e32 v20, s26 +; GISEL-NEXT: v_mov_b32_e32 v21, s27 +; GISEL-NEXT: v_mov_b32_e32 v22, s28 +; GISEL-NEXT: v_mov_b32_e32 v23, s29 +; GISEL-NEXT: v_mov_b64_e32 v[54:55], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[52:53], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[50:51], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[48:49], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[28:29] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[30:31] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[32:33] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_bf8 v[0:15], v[34:37], v[48:55], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.bf8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +; -------------------------------------------------------------------- +; llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8 +; -------------------------------------------------------------------- + +declare <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32>, <8 x i32>, <16 x float>, i32, i32 immarg, i32 immarg) + +define amdgpu_kernel void @test_smfmac_f32_32x32x64_fp8_fp8__vgpr(ptr addrspace(1) %arg, <4 x i32> %a, <8 x i32> %b, i32 %idx) #0 { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_fp8__vgpr: +; SDAG: ; %bb.0: ; %bb +; SDAG-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; SDAG-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; SDAG-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; SDAG-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; SDAG-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; SDAG-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; SDAG-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; SDAG-NEXT: s_load_dword s2, s[4:5], 0x64 +; SDAG-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; SDAG-NEXT: s_waitcnt lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v24, s8 +; SDAG-NEXT: v_mov_b32_e32 v25, s9 +; SDAG-NEXT: v_mov_b32_e32 v26, s10 +; SDAG-NEXT: v_mov_b32_e32 v27, s11 +; SDAG-NEXT: v_mov_b32_e32 v16, s12 +; SDAG-NEXT: v_mov_b32_e32 v17, s13 +; SDAG-NEXT: v_mov_b32_e32 v18, s14 +; SDAG-NEXT: v_mov_b32_e32 v19, s15 +; SDAG-NEXT: v_mov_b32_e32 v20, s16 +; SDAG-NEXT: v_mov_b32_e32 v21, s17 +; SDAG-NEXT: v_mov_b32_e32 v22, s18 +; SDAG-NEXT: v_mov_b32_e32 v23, s19 +; SDAG-NEXT: v_mov_b32_e32 v28, s2 +; SDAG-NEXT: s_waitcnt vmcnt(0) +; SDAG-NEXT: s_nop 0 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; SDAG-NEXT: v_mov_b32_e32 v16, 0 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; SDAG-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; SDAG-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; SDAG-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; SDAG-NEXT: s_endpgm +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_fp8__vgpr: +; GISEL: ; %bb.0: ; %bb +; GISEL-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x24 +; GISEL-NEXT: v_and_b32_e32 v0, 0x3ff, v0 +; GISEL-NEXT: v_lshlrev_b32_e32 v16, 6, v0 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: global_load_dwordx4 v[0:3], v16, s[0:1] +; GISEL-NEXT: global_load_dwordx4 v[4:7], v16, s[0:1] offset:16 +; GISEL-NEXT: global_load_dwordx4 v[8:11], v16, s[0:1] offset:32 +; GISEL-NEXT: global_load_dwordx4 v[12:15], v16, s[0:1] offset:48 +; GISEL-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x34 +; GISEL-NEXT: s_load_dwordx4 s[16:19], s[4:5], 0x54 +; GISEL-NEXT: s_load_dword s2, s[4:5], 0x64 +; GISEL-NEXT: s_waitcnt lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[26:27], s[10:11] +; GISEL-NEXT: v_mov_b64_e32 v[24:25], s[8:9] +; GISEL-NEXT: v_mov_b64_e32 v[22:23], s[18:19] +; GISEL-NEXT: v_mov_b32_e32 v28, s2 +; GISEL-NEXT: v_mov_b64_e32 v[20:21], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[18:19], s[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[16:17], s[12:13] +; GISEL-NEXT: s_waitcnt vmcnt(0) +; GISEL-NEXT: s_nop 0 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 v[0:15], v[24:27], v[16:23], v28 cbsz:1 abid:2 +; GISEL-NEXT: v_mov_b32_e32 v16, 0 +; GISEL-NEXT: s_nop 7 +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: global_store_dwordx4 v16, v[0:3], s[0:1] +; GISEL-NEXT: global_store_dwordx4 v16, v[4:7], s[0:1] offset:16 +; GISEL-NEXT: global_store_dwordx4 v16, v[8:11], s[0:1] offset:32 +; GISEL-NEXT: global_store_dwordx4 v16, v[12:15], s[0:1] offset:48 +; GISEL-NEXT: s_endpgm +bb: + %id = call i32 @llvm.amdgcn.workitem.id.x() + %gep = getelementptr <16 x float>, ptr addrspace(1) %arg, i32 %id + %in.1 = load <16 x float>, ptr addrspace(1) %gep + %mai.1 = tail call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32> %a, <8 x i32> %b, <16 x float> %in.1, i32 %idx, i32 1, i32 2) + store <16 x float> %mai.1, ptr addrspace(1) %arg + ret void +} + +define <16 x float> @test_smfmac_f32_32x32x64_fp8_fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_fp8: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 a[0:15], v[0:3], v[4:11], v28 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_fp8: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 v[0:15], v[48:51], v[30:37], v28 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_fp8_fp8__flags0(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_fp8__flags0: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 a[0:15], v[0:3], v[4:11], v28 cbsz:1 abid:3 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_fp8__flags0: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 v[0:15], v[48:51], v[30:37], v28 cbsz:1 abid:3 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 1, i32 immarg 3) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_fp8_fp8__flags1(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_fp8__flags1: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 a[0:15], v[0:3], v[4:11], v28 cbsz:3 abid:1 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_fp8__flags1: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b32_e32 v48, v0 +; GISEL-NEXT: v_mov_b32_e32 v49, v1 +; GISEL-NEXT: v_mov_b32_e32 v50, v2 +; GISEL-NEXT: v_mov_b32_e32 v51, v3 +; GISEL-NEXT: v_mov_b32_e32 v30, v4 +; GISEL-NEXT: v_mov_b32_e32 v31, v5 +; GISEL-NEXT: v_mov_b32_e32 v32, v6 +; GISEL-NEXT: v_mov_b32_e32 v33, v7 +; GISEL-NEXT: v_mov_b32_e32 v34, v8 +; GISEL-NEXT: v_mov_b32_e32 v35, v9 +; GISEL-NEXT: v_mov_b32_e32 v36, v10 +; GISEL-NEXT: v_mov_b32_e32 v37, v11 +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[12:13] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[14:15] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[26:27] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 v[0:15], v[48:51], v[30:37], v28 cbsz:3 abid:1 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 3, i32 immarg 1) + ret <16 x float> %result +} + +define <16 x float> @test_smfmac_f32_32x32x64_fp8_fp8__sgpr(<4 x i32> inreg %arg0, <8 x i32> inreg %arg1, <16 x float> inreg %arg2, i32 inreg %arg3) { +; SDAG-LABEL: test_smfmac_f32_32x32x64_fp8_fp8__sgpr: +; SDAG: ; %bb.0: +; SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; SDAG-NEXT: v_mov_b32_e32 v28, s0 +; SDAG-NEXT: v_mov_b32_e32 v29, s1 +; SDAG-NEXT: v_mov_b32_e32 v30, s2 +; SDAG-NEXT: v_mov_b32_e32 v31, s3 +; SDAG-NEXT: v_mov_b32_e32 v12, s24 +; SDAG-NEXT: v_mov_b32_e32 v27, v9 +; SDAG-NEXT: v_mov_b32_e32 v26, v8 +; SDAG-NEXT: v_mov_b32_e32 v25, v7 +; SDAG-NEXT: v_mov_b32_e32 v24, v6 +; SDAG-NEXT: v_mov_b32_e32 v23, v5 +; SDAG-NEXT: v_mov_b32_e32 v22, v4 +; SDAG-NEXT: v_mov_b32_e32 v21, v3 +; SDAG-NEXT: v_mov_b32_e32 v20, v2 +; SDAG-NEXT: v_mov_b32_e32 v19, v1 +; SDAG-NEXT: v_mov_b32_e32 v18, v0 +; SDAG-NEXT: v_mov_b32_e32 v13, s25 +; SDAG-NEXT: v_mov_b32_e32 v14, s26 +; SDAG-NEXT: v_mov_b32_e32 v15, s27 +; SDAG-NEXT: v_mov_b32_e32 v16, s28 +; SDAG-NEXT: v_mov_b32_e32 v17, s29 +; SDAG-NEXT: v_accvgpr_write_b32 a0, v12 +; SDAG-NEXT: v_mov_b32_e32 v0, s16 +; SDAG-NEXT: v_mov_b32_e32 v1, s17 +; SDAG-NEXT: v_mov_b32_e32 v2, s18 +; SDAG-NEXT: v_mov_b32_e32 v3, s19 +; SDAG-NEXT: v_mov_b32_e32 v4, s20 +; SDAG-NEXT: v_mov_b32_e32 v5, s21 +; SDAG-NEXT: v_mov_b32_e32 v6, s22 +; SDAG-NEXT: v_mov_b32_e32 v7, s23 +; SDAG-NEXT: v_accvgpr_write_b32 a1, v13 +; SDAG-NEXT: v_accvgpr_write_b32 a2, v14 +; SDAG-NEXT: v_accvgpr_write_b32 a3, v15 +; SDAG-NEXT: v_accvgpr_write_b32 a4, v16 +; SDAG-NEXT: v_accvgpr_write_b32 a5, v17 +; SDAG-NEXT: v_accvgpr_write_b32 a6, v18 +; SDAG-NEXT: v_accvgpr_write_b32 a7, v19 +; SDAG-NEXT: v_accvgpr_write_b32 a8, v20 +; SDAG-NEXT: v_accvgpr_write_b32 a9, v21 +; SDAG-NEXT: v_accvgpr_write_b32 a10, v22 +; SDAG-NEXT: v_accvgpr_write_b32 a11, v23 +; SDAG-NEXT: v_accvgpr_write_b32 a12, v24 +; SDAG-NEXT: v_accvgpr_write_b32 a13, v25 +; SDAG-NEXT: v_accvgpr_write_b32 a14, v26 +; SDAG-NEXT: v_accvgpr_write_b32 a15, v27 +; SDAG-NEXT: s_nop 1 +; SDAG-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 a[0:15], v[28:31], v[0:7], v10 +; SDAG-NEXT: s_nop 7 +; SDAG-NEXT: s_nop 2 +; SDAG-NEXT: v_accvgpr_read_b32 v0, a0 +; SDAG-NEXT: v_accvgpr_read_b32 v1, a1 +; SDAG-NEXT: v_accvgpr_read_b32 v2, a2 +; SDAG-NEXT: v_accvgpr_read_b32 v3, a3 +; SDAG-NEXT: v_accvgpr_read_b32 v4, a4 +; SDAG-NEXT: v_accvgpr_read_b32 v5, a5 +; SDAG-NEXT: v_accvgpr_read_b32 v6, a6 +; SDAG-NEXT: v_accvgpr_read_b32 v7, a7 +; SDAG-NEXT: v_accvgpr_read_b32 v8, a8 +; SDAG-NEXT: v_accvgpr_read_b32 v9, a9 +; SDAG-NEXT: v_accvgpr_read_b32 v10, a10 +; SDAG-NEXT: v_accvgpr_read_b32 v11, a11 +; SDAG-NEXT: v_accvgpr_read_b32 v12, a12 +; SDAG-NEXT: v_accvgpr_read_b32 v13, a13 +; SDAG-NEXT: v_accvgpr_read_b32 v14, a14 +; SDAG-NEXT: v_accvgpr_read_b32 v15, a15 +; SDAG-NEXT: s_setpc_b64 s[30:31] +; +; GISEL-LABEL: test_smfmac_f32_32x32x64_fp8_fp8__sgpr: +; GISEL: ; %bb.0: +; GISEL-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) +; GISEL-NEXT: v_mov_b64_e32 v[36:37], s[2:3] +; GISEL-NEXT: v_mov_b64_e32 v[34:35], s[0:1] +; GISEL-NEXT: v_mov_b32_e32 v18, s24 +; GISEL-NEXT: v_mov_b32_e32 v19, s25 +; GISEL-NEXT: v_mov_b32_e32 v24, v0 +; GISEL-NEXT: v_mov_b32_e32 v25, v1 +; GISEL-NEXT: v_mov_b32_e32 v26, v2 +; GISEL-NEXT: v_mov_b32_e32 v27, v3 +; GISEL-NEXT: v_mov_b32_e32 v28, v4 +; GISEL-NEXT: v_mov_b32_e32 v29, v5 +; GISEL-NEXT: v_mov_b32_e32 v30, v6 +; GISEL-NEXT: v_mov_b32_e32 v31, v7 +; GISEL-NEXT: v_mov_b32_e32 v32, v8 +; GISEL-NEXT: v_mov_b32_e32 v33, v9 +; GISEL-NEXT: v_mov_b32_e32 v16, v10 +; GISEL-NEXT: v_mov_b32_e32 v20, s26 +; GISEL-NEXT: v_mov_b32_e32 v21, s27 +; GISEL-NEXT: v_mov_b32_e32 v22, s28 +; GISEL-NEXT: v_mov_b32_e32 v23, s29 +; GISEL-NEXT: v_mov_b64_e32 v[54:55], s[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[0:1], v[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[52:53], s[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[50:51], s[18:19] +; GISEL-NEXT: v_mov_b64_e32 v[48:49], s[16:17] +; GISEL-NEXT: v_mov_b64_e32 v[2:3], v[20:21] +; GISEL-NEXT: v_mov_b64_e32 v[4:5], v[22:23] +; GISEL-NEXT: v_mov_b64_e32 v[6:7], v[24:25] +; GISEL-NEXT: v_mov_b64_e32 v[8:9], v[26:27] +; GISEL-NEXT: v_mov_b64_e32 v[10:11], v[28:29] +; GISEL-NEXT: v_mov_b64_e32 v[12:13], v[30:31] +; GISEL-NEXT: v_mov_b64_e32 v[14:15], v[32:33] +; GISEL-NEXT: s_nop 1 +; GISEL-NEXT: v_smfmac_f32_32x32x64_fp8_fp8 v[0:15], v[34:37], v[48:55], v16 +; GISEL-NEXT: s_setpc_b64 s[30:31] + %result = call <16 x float> @llvm.amdgcn.smfmac.f32.32x32x64.fp8.fp8(<4 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %arg3, i32 immarg 0, i32 immarg 0) + ret <16 x float> %result +} + +attributes #0 = { "amdgpu-flat-work-group-size"="1,256" } +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; GCN: {{.*}} diff --git a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll index 824d3708c027d..33dd2bd540ad0 100644 --- a/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll +++ b/llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wavefrontsize.ll @@ -4,29 +4,15 @@ ; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -verify-machineinstrs -amdgpu-enable-vopd=0 < %s | FileCheck -check-prefixes=GCN,W32 %s ; RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -verify-machineinstrs < %s | FileCheck -check-prefixes=GCN,W64 %s -; RUN: opt -O3 -S < %s | FileCheck -check-prefix=OPT %s -; RUN: opt -mtriple=amdgcn-- -O3 -S < %s | FileCheck -check-prefix=OPT %s -; RUN: opt -mtriple=amdgcn-- -O3 -mattr=+wavefrontsize32 -S < %s | FileCheck -check-prefix=OPT %s -; RUN: opt -mtriple=amdgcn-- -passes='default' -mattr=+wavefrontsize32 -S < %s | FileCheck -check-prefix=OPT %s -; RUN: opt -mtriple=amdgcn-- -O3 -mattr=+wavefrontsize64 -S < %s | FileCheck -check-prefix=OPT %s -; RUN: opt -mtriple=amdgcn-- -mcpu=tonga -O3 -S < %s | FileCheck -check-prefix=OPT %s -; RUN: opt -mtriple=amdgcn-- -mcpu=gfx1010 -O3 -mattr=+wavefrontsize32 -S < %s | FileCheck -check-prefix=OPT %s -; RUN: opt -mtriple=amdgcn-- -mcpu=gfx1010 -O3 -mattr=+wavefrontsize64 -S < %s | FileCheck -check-prefix=OPT %s -; RUN: opt -mtriple=amdgcn-- -mcpu=gfx1100 -O3 -mattr=+wavefrontsize32 -S < %s | FileCheck -check-prefix=OPT %s -; RUN: opt -mtriple=amdgcn-- -mcpu=gfx1100 -O3 -mattr=+wavefrontsize64 -S < %s | FileCheck -check-prefix=OPT %s - ; GCN-LABEL: {{^}}fold_wavefrontsize: -; OPT-LABEL: define amdgpu_kernel void @fold_wavefrontsize( ; W32: v_mov_b32_e32 [[V:v[0-9]+]], 32 ; W64: v_mov_b32_e32 [[V:v[0-9]+]], 64 ; GCN: store_{{dword|b32}} v{{.+}}, [[V]] -; OPT: %tmp = tail call i32 @llvm.amdgcn.wavefrontsize() -; OPT: store i32 %tmp, ptr addrspace(1) %arg, align 4 -; OPT-NEXT: ret void define amdgpu_kernel void @fold_wavefrontsize(ptr addrspace(1) nocapture %arg) { + bb: %tmp = tail call i32 @llvm.amdgcn.wavefrontsize() #0 store i32 %tmp, ptr addrspace(1) %arg, align 4 @@ -34,18 +20,12 @@ bb: } ; GCN-LABEL: {{^}}fold_and_optimize_wavefrontsize: -; OPT-LABEL: define amdgpu_kernel void @fold_and_optimize_wavefrontsize( ; W32: v_mov_b32_e32 [[V:v[0-9]+]], 1{{$}} ; W64: v_mov_b32_e32 [[V:v[0-9]+]], 2{{$}} ; GCN-NOT: cndmask ; GCN: store_{{dword|b32}} v{{.+}}, [[V]] -; OPT: %tmp = tail call i32 @llvm.amdgcn.wavefrontsize() -; OPT: %tmp1 = icmp ugt i32 %tmp, 32 -; OPT: %tmp2 = select i1 %tmp1, i32 2, i32 1 -; OPT: store i32 %tmp2, ptr addrspace(1) %arg -; OPT-NEXT: ret void define amdgpu_kernel void @fold_and_optimize_wavefrontsize(ptr addrspace(1) nocapture %arg) { bb: @@ -57,13 +37,6 @@ bb: } ; GCN-LABEL: {{^}}fold_and_optimize_if_wavefrontsize: -; OPT-LABEL: define amdgpu_kernel void @fold_and_optimize_if_wavefrontsize( - -; OPT: bb: -; OPT: %tmp = tail call i32 @llvm.amdgcn.wavefrontsize() -; OPT: %tmp1 = icmp ugt i32 %tmp, 32 -; OPT: bb3: -; OPT-NEXT: ret void define amdgpu_kernel void @fold_and_optimize_if_wavefrontsize(ptr addrspace(1) nocapture %arg) { bb: diff --git a/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir b/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir index a98b02d792d98..d59bcfb16eece 100644 --- a/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir +++ b/llvm/test/CodeGen/AMDGPU/mai-hazards-gfx940.mir @@ -1,4 +1,5 @@ -# RUN: llc -mtriple=amdgcn -mcpu=gfx940 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN %s +# RUN: llc -mtriple=amdgcn -mcpu=gfx940 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefixes=GCN,GFX940 %s +# RUN: llc -mtriple=amdgcn -mcpu=gfx950 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefixes=GCN,GFX950 %s # GCN-LABEL: name: valu_write_vgpr_sgemm_mfma_read # GCN: V_MOV_B32 @@ -144,7 +145,8 @@ body: | ... # GCN-LABEL: name: sgemm4x4_mfma_write_agpr_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 2 +# GFX950-NEXT: S_NOP 3 # GCN-NEXT: V_MFMA name: sgemm4x4_mfma_write_agpr_mfma_read_overlap body: | @@ -164,7 +166,8 @@ body: | ... # GCN-LABEL: name: sgemm4x4_mfma_write_agpr_smfmac_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 2 +# GFX950-NEXT: S_NOP 3 # GCN-NEXT: V_SMFMAC name: sgemm4x4_mfma_write_agpr_smfmac_read_overlap body: | @@ -174,8 +177,11 @@ body: | ... # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_agpr_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 0 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm16x16_mfma_write_agpr_mfma_read_overlap body: | @@ -185,8 +191,11 @@ body: | ... # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_vgpr_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 0 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm16x16_mfma_write_vgpr_mfma_read_overlap body: | @@ -215,8 +224,11 @@ body: | ... # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_agpr_smfmac_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 0 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_SMFMAC name: xdl_sgemm16x16_mfma_write_agpr_smfmac_read_overlap body: | @@ -228,7 +240,8 @@ body: | # GCN: V_MFMA # GCN-NEXT: S_NOP 7 # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm32x32_mfma_write_agpr_mfma_read_overlap body: | @@ -240,7 +253,8 @@ body: | # GCN: V_MFMA # GCN-NEXT: S_NOP 7 # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm32x32_mfma_write_vgpr_mfma_read_overlap body: | @@ -272,7 +286,8 @@ body: | # GCN: V_MFMA # GCN-NEXT: S_NOP 7 # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_SMFMAC name: xdl_sgemm32x32_mfma_write_agpr_smfmac_read_overlap body: | @@ -282,8 +297,12 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 0 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 0 # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_vgpr_mfma_read_overlap body: | @@ -303,8 +322,12 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 0 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 0 # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_read_overlap body: | @@ -335,7 +358,8 @@ body: | # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_vgpr_dgemm_mfma_read_overlap # GCN: V_MFMA # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm16x16_mfma_write_vgpr_dgemm_mfma_read_overlap body: | @@ -347,7 +371,8 @@ body: | # GCN: V_MFMA # GCN-NEXT: S_NOP 7 # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm32x32_mfma_write_vgpr_dgemm_mfma_read_overlap body: | @@ -358,7 +383,8 @@ body: | # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_agpr_mfma_read_partial # GCN: V_MFMA # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm16x16_mfma_write_agpr_mfma_read_partial body: | @@ -369,7 +395,8 @@ body: | # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_vgpr_mfma_read_partial # GCN: V_MFMA # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm16x16_mfma_write_vgpr_mfma_read_partial body: | @@ -507,8 +534,12 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_srca_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_vgpr_mfma_srca_read_overlap body: | @@ -528,8 +559,12 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_srca_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_vgpr_sgemm_mfma_srca_read_overlap body: | @@ -599,8 +634,12 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_mfma_srcb_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_vgpr_mfma_srcb_read_overlap body: | @@ -610,8 +649,12 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_smfmac_srcb_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 # GCN-NEXT: V_SMFMAC name: dgemm16x16_mfma_write_vgpr_smfmac_srcb_read_overlap body: | @@ -621,8 +664,13 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_vgpr_smfmac_srcc_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 + # GCN-NEXT: V_SMFMAC name: dgemm16x16_mfma_write_vgpr_smfmac_srcc_read_overlap body: | @@ -803,8 +851,12 @@ body: | ... # GCN-LABEL: name: dmfma16x16_write_vgpr_valu_read # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 # GCN-NEXT: V_MOV_B32 name: dmfma16x16_write_vgpr_valu_read body: | @@ -867,8 +919,13 @@ body: | ... # GCN-LABEL: name: dmfma16x16_write_vgpr_dot_read # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 + # GCN-NEXT: V_DOT name: dmfma16x16_write_vgpr_dot_read body: | @@ -1303,8 +1360,12 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 0 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 0 # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_agpr_mfma_read_overlap body: | @@ -1324,8 +1385,13 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_sgemm_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 0 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 0 + # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_agpr_sgemm_mfma_read_overlap body: | @@ -1346,7 +1412,8 @@ body: | # GCN-LABEL: name: xdl_sgemm16x16_mfma_write_sgpr_dgemm_mfma_read_overlap # GCN: V_MFMA # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm16x16_mfma_write_sgpr_dgemm_mfma_read_overlap body: | @@ -1358,7 +1425,8 @@ body: | # GCN: V_MFMA # GCN-NEXT: S_NOP 7 # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_sgemm32x32_mfma_write_agpr_dgemm_mfma_read_overlap body: | @@ -1398,8 +1466,12 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_srca_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_agpr_mfma_srca_read_overlap body: | @@ -1419,8 +1491,13 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_sgemm_mfma_srca_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 + # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_agpr_sgemm_mfma_srca_read_overlap body: | @@ -1450,8 +1527,12 @@ body: | ... # GCN-LABEL: name: dgemm16x16_mfma_write_agpr_mfma_srcb_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 # GCN-NEXT: V_MFMA name: dgemm16x16_mfma_write_agpr_mfma_srcb_read_overlap body: | @@ -1505,8 +1586,12 @@ body: | ... # GCN-LABEL: name: dmfma16x16_write_agpr_valu_read # GCN: V_MFMA -# GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 7 +# GFX940-NEXT: S_NOP 2 + +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 7 +# GFX950-NEXT: S_NOP 2 # GCN-NEXT: V_ACCVGPR_READ_B32_e64 name: dmfma16x16_write_agpr_valu_read body: | @@ -1575,7 +1660,8 @@ body: | ... # GCN-LABEL: name: sgemm16X16X16_mfma_write_agpr_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_MFMA name: sgemm16X16X16_mfma_write_agpr_mfma_read_overlap body: | @@ -1585,7 +1671,8 @@ body: | ... # GCN-LABEL: name: sgemm16X16X32_mfma_write_agpr_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_MFMA name: sgemm16X16X32_mfma_write_agpr_mfma_read_overlap body: | @@ -1595,7 +1682,8 @@ body: | ... # GCN-LABEL: name: sgemm16X16X16_mfma_write_agpr_dgemm_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_MFMA name: sgemm16X16X16_mfma_write_agpr_dgemm_read_overlap body: | @@ -1605,7 +1693,8 @@ body: | ... # GCN-LABEL: name: sgemm16X16X16_mfma_write_agpr_smfmac_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_SMFMAC name: sgemm16X16X16_mfma_write_agpr_smfmac_read_overlap body: | @@ -1615,7 +1704,8 @@ body: | ... # GCN-LABEL: name: smfmac16x16_write_agpr_smfmac_read_overlap # GCN: V_SMFMAC -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_SMFMAC name: smfmac16x16_write_agpr_smfmac_read_overlap body: | @@ -1713,7 +1803,8 @@ body: | ... # GCN-LABEL: name: smfmac16x16x32_mfma_write_agpr_mfma_read_overlap # GCN: V_SMFMAC -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_SMFMAC name: smfmac16x16x32_mfma_write_agpr_mfma_read_overlap body: | @@ -1724,7 +1815,8 @@ body: | # GCN-LABEL: name: smfmac32x32x32_mfma_write_agpr_mfma_read_overlap # GCN: V_SMFMAC # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_SMFMAC name: smfmac32x32x32_mfma_write_agpr_mfma_read_overlap body: | @@ -1909,7 +2001,8 @@ body: | ... # GCN-LABEL: name: xdl_sgemm16x16_4pass_mfma_write_agpr_mfma_read_overlap # GCN: V_MFMA -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_MFMA name: xdl_sgemm16x16_4pass_mfma_write_agpr_mfma_read_overlap body: | @@ -1919,7 +2012,8 @@ body: | ... # GCN-LABEL: name: smfmac16x16_mfma_write_agpr_mfma_read_overlap # GCN: V_SMFMAC -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_MFMA name: smfmac16x16_mfma_write_agpr_mfma_read_overlap body: | @@ -2033,7 +2127,8 @@ body: | # 2 pass source # GCN-LABEL: name: xdl_mfma_2pass_write_vgpr_xdl_mfma_read_overlap_srcc # GCN: V_MFMA -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 2 +# GFX950-NEXT: S_NOP 3 # GCN-NEXT: V_MFMA name: xdl_mfma_2pass_write_vgpr_xdl_mfma_read_overlap_srcc body: | @@ -2078,7 +2173,8 @@ body: | # 4 pass source # GCN-LABEL: name: xdl_mfma_4pass_write_vgpr_xdl_mfma_read_overlap_srcc # GCN: V_MFMA -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_MFMA name: xdl_mfma_4pass_write_vgpr_xdl_mfma_read_overlap_srcc body: | @@ -2165,7 +2261,8 @@ body: | # 4 pass source # GCN-LABEL: name: xdl_mfma_4pass_write_vgpr_sgemm_mfma_read_overlap_srcc # GCN: V_MFMA -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_MFMA name: xdl_mfma_4pass_write_vgpr_sgemm_mfma_read_overlap_srcc body: | @@ -2199,7 +2296,7 @@ name: xdl_mfma_4pass_write_vgpr_sgemm_mfma_read_overlap_srcb body: | bb.0: $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_16X16X16F16_vgprcd_e64 $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr0_vgpr1_vgpr2_vgpr3, 1, 2, 3, implicit $mode, implicit $exec - $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr1, $vgpr6_vgpr7_vgpr8_vgpr9, 0, 0, 0, implicit $mode, implicit $exec + $vgpr0_vgpr1_vgpr2_vgpr3 = V_MFMA_F32_4X4X1F32_vgprcd_e64 $vgpr8, $vgpr1, $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, 0, implicit $mode, implicit $exec ... @@ -2208,7 +2305,8 @@ body: | # GCN-LABEL: name: xdl_mfma_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcc # GCN: V_MFMA # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_mfma_8pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcc body: | @@ -2254,7 +2352,8 @@ body: | # GCN: V_MFMA # GCN-NEXT: S_NOP 7 # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_16pass_write_vgpr_nonxdl_sgemm_mfma_read_overlap_srcc body: | @@ -2342,7 +2441,8 @@ body: | # GCN-LABEL: name: xdl_mfma_8pass_write_vgpr_xdl_mfma_read_overlap_srcc # GCN: V_MFMA # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_mfma_8pass_write_vgpr_xdl_mfma_read_overlap_srcc body: | @@ -2385,7 +2485,8 @@ body: | # GCN: V_MFMA # GCN-NEXT: S_NOP 7 # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_MFMA name: xdl_16pass_write_vgpr_xdl_mfma_read_overlap_srcc body: | @@ -2432,7 +2533,8 @@ body: | # 2 pass source # GCN-LABEL: name: xdl_mfma_2pass_write_agpr_smfmac_read_overlap_srcc # GCN: V_MFMA -# GCN-NEXT: S_NOP 2 +# GFX940-NEXT: S_NOP 2 +# GFX950-NEXT: S_NOP 3 # GCN-NEXT: V_SMFMAC_ name: xdl_mfma_2pass_write_agpr_smfmac_read_overlap_srcc body: | @@ -2446,7 +2548,8 @@ body: | ... # GCN-LABEL: name: xdl_4pass_mfma_write_agpr_smfmac_read_overlap_srcc # GCN: V_MFMA -# GCN-NEXT: S_NOP 4 +# GFX940-NEXT: S_NOP 4 +# GFX950-NEXT: S_NOP 5 # GCN-NEXT: V_SMFMAC_ name: xdl_4pass_mfma_write_agpr_smfmac_read_overlap_srcc body: | @@ -2460,7 +2563,8 @@ body: | # GCN-LABEL: name: xdl_8pass_mfma_write_agpr_smfmac_read_overlap_srcc # GCN: V_MFMA # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_SMFMAC_ name: xdl_8pass_mfma_write_agpr_smfmac_read_overlap_srcc body: | @@ -2474,7 +2578,8 @@ body: | # GCN: V_MFMA # GCN-NEXT: S_NOP 7 # GCN-NEXT: S_NOP 7 -# GCN-NEXT: S_NOP 0 +# GFX940-NEXT: S_NOP 0 +# GFX950-NEXT: S_NOP 1 # GCN-NEXT: V_SMFMAC_ name: xdl_16pass_mfma_write_agpr_smfmac_read_overlap_srcc body: | diff --git a/llvm/test/CodeGen/AMDGPU/mai-hazards-mfma-scale.gfx950.mir b/llvm/test/CodeGen/AMDGPU/mai-hazards-mfma-scale.gfx950.mir new file mode 100644 index 0000000000000..f68b84c7140ba --- /dev/null +++ b/llvm/test/CodeGen/AMDGPU/mai-hazards-mfma-scale.gfx950.mir @@ -0,0 +1,285 @@ +# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4 +# RUN: llc -march=amdgcn -mcpu=gfx950 -verify-machineinstrs -run-pass post-RA-hazard-rec %s -o - | FileCheck -check-prefix=GCN %s + +# Immediate operand order = cbsz, abid, blgp + +# First MFMA uses f8 format, so should be treated as 32 cycles +--- +name: V_MFMA_F32_16X16X128_F8F6F4_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp0____xdl_read_overlap_vgpr_srcC +tracksRegLiveness: true +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + + ; GCN-LABEL: name: V_MFMA_F32_16X16X128_F8F6F4_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp0____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 1 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 0, 0, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA uses f8 format, so should be treated as 32 cycles +--- +name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz1_blgp1____xdl_read_overlap_vgpr_srcC +tracksRegLiveness: true +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + + ; GCN-LABEL: name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz1_blgp1____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 1, 1, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 1 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 1, 1, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA uses f8 for cbsz, so should be treated as 32 cycles +--- +name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp0____xdl_read_overlap_vgpr_srcC +tracksRegLiveness: true +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + + ; GCN-LABEL: name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp0____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 2, 0, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 1 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 2, 0, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA uses f8 for blgp, so should be treated as 32 cycles + +--- +name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp2____xdl_read_overlap_vgpr_srcC +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + + ; GCN-LABEL: name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp2____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 0, 2, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 1 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 0, 2, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA uses not-f8 formats, so should be treated as 16 cycles +--- +name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp2____xdl_read_overlap_vgpr_srcC +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + + ; GCN-LABEL: name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp2____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 2, 2, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 5 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 2, 2, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA uses not-f8 formats, so should be treated as 16 cycles +--- +name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz3_blgp3____xdl_read_overlap_vgpr_srcC +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + + ; GCN-LABEL: name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz3_blgp3____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 3, 3, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 5 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 3, 3, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA uses not-f8 formats, so should be treated as 16 cycles +--- +name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz4_blgp4____xdl_read_overlap_vgpr_srcC +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + + ; GCN-LABEL: name: V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz4_blgp4____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 4, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 5 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr0_vgpr1_vgpr2_vgpr3, 4, 4, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11, killed $vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17_vgpr18_vgpr19, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA uses f8 format, so should be treated as 64 cycles +--- +name: V_MFMA_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp0____xdl_read_overlap_vgpr_srcC +tracksRegLiveness: true +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + + ; GCN-LABEL: name: V_MFMA_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp0____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 1 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, killed $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, $sgpr4, killed $vgpr32, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, killed $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, $sgpr4, killed $vgpr32, 12, 4, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA does not use f8 formats, so should be treated as 32 cycles +--- +name: V_MFMA_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp2____xdl_read_overlap_vgpr_srcC +tracksRegLiveness: true +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + + ; GCN-LABEL: name: V_MFMA_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp2____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 2, 2, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 1 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, killed $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, $sgpr4, killed $vgpr32, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 2, 2, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, killed $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, $sgpr4, killed $vgpr32, 12, 4, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA uses f8 format, so should be treated as 64 cycles +--- +name: V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp0____xdl_read_overlap_vgpr_srcC +tracksRegLiveness: true +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + + ; GCN-LABEL: name: V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp0____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 1 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 0, 0, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA does not use f8 format, so should be treated as 32 cycles +--- +name: V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp2____xdl_read_overlap_vgpr_srcC +tracksRegLiveness: true +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + + ; GCN-LABEL: name: V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp2____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 2, 2, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 1 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, 2, 2, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = nofpexcept V_MFMA_SCALE_F32_32X32X64_F8F6F4_f8_f8_vgprcd_e64 $vgpr16_vgpr17_vgpr18_vgpr19_vgpr20_vgpr21_vgpr22_vgpr23, $vgpr24_vgpr25_vgpr26_vgpr27_vgpr28_vgpr29_vgpr30_vgpr31, $vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16_vgpr17, 0, 0, $sgpr4, $vgpr32, 12, 4, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA uses f8 format, so should be treated as 32 cycles +--- +name: V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp0____xdl_read_overlap_vgpr_srcC +tracksRegLiveness: true +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + + ; GCN-LABEL: name: V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz0_blgp0____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, $vgpr16_vgpr17_vgpr18_vgpr19, 0, 0, $sgpr4, $vgpr21, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 7 + ; GCN-NEXT: S_NOP 2 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, killed $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, killed $sgpr4, killed $vgpr21, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, $vgpr16_vgpr17_vgpr18_vgpr19, 0, 0, $sgpr4, $vgpr21, 12, 4, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, killed $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, killed $sgpr4, killed $vgpr21, 12, 4, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... + +# First MFMA does not use f8 format, so should be treated as 16 cycles +--- +name: V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp2____xdl_read_overlap_vgpr_srcC +tracksRegLiveness: true +body: | + bb.0: + liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + + ; GCN-LABEL: name: V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64___xdl_write_vgpr__cbsz2_blgp2____xdl_read_overlap_vgpr_srcC + ; GCN: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31, $vgpr32, $sgpr4 + ; GCN-NEXT: {{ $}} + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, $vgpr16_vgpr17_vgpr18_vgpr19, 2, 2, $sgpr4, $vgpr21, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_NOP 6 + ; GCN-NEXT: renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, killed $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, killed $sgpr4, killed $vgpr21, 12, 4, implicit $mode, implicit $exec + ; GCN-NEXT: S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, $vgpr16_vgpr17_vgpr18_vgpr19, 2, 2, $sgpr4, $vgpr21, 12, 4, implicit $mode, implicit $exec + renamable $vgpr0_vgpr1_vgpr2_vgpr3 = nofpexcept V_MFMA_SCALE_F32_16X16X128_F8F6F4_f8_f8_vgprcd_e64 killed $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, killed $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, killed $vgpr2_vgpr3_vgpr4_vgpr5, 0, 0, killed $sgpr4, killed $vgpr21, 12, 4, implicit $mode, implicit $exec + S_SETPC_B64_return undef $sgpr30_sgpr31, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3 + +... diff --git a/llvm/test/CodeGen/AMDGPU/shrink-true16.mir b/llvm/test/CodeGen/AMDGPU/shrink-true16.mir index be759049bc3a7..245c5e1005d08 100644 --- a/llvm/test/CodeGen/AMDGPU/shrink-true16.mir +++ b/llvm/test/CodeGen/AMDGPU/shrink-true16.mir @@ -11,8 +11,8 @@ body: | ; GFX1100-LABEL: name: 16bit_lo128_shrink ; GFX1100: liveins: $vgpr127 ; GFX1100-NEXT: {{ $}} - ; GFX1100-NEXT: V_CMP_EQ_U16_t16_e32 0, $vgpr127, implicit-def $vcc_lo, implicit $exec, implicit $exec - $vcc_lo = V_CMP_EQ_U16_t16_e64 0, $vgpr127, implicit-def $vcc, implicit $exec + ; GFX1100-NEXT: V_CMP_EQ_U16_fake16_e32 0, $vgpr127, implicit-def $vcc_lo, implicit $exec, implicit $exec + $vcc_lo = V_CMP_EQ_U16_fake16_e64 0, $vgpr127, implicit-def $vcc, implicit $exec ... --- @@ -24,6 +24,6 @@ body: | ; GFX1100-LABEL: name: 16bit_lo128_no_shrink ; GFX1100: liveins: $vgpr128 ; GFX1100-NEXT: {{ $}} - ; GFX1100-NEXT: $vcc_lo = V_CMP_EQ_U16_t16_e64 0, $vgpr128, implicit-def $vcc_lo, implicit $exec - $vcc_lo = V_CMP_EQ_U16_t16_e64 0, $vgpr128, implicit-def $vcc, implicit $exec + ; GFX1100-NEXT: $vcc_lo = V_CMP_EQ_U16_fake16_e64 0, $vgpr128, implicit-def $vcc_lo, implicit $exec + $vcc_lo = V_CMP_EQ_U16_fake16_e64 0, $vgpr128, implicit-def $vcc, implicit $exec ... diff --git a/llvm/test/CodeGen/AMDGPU/vopc_dpp.mir b/llvm/test/CodeGen/AMDGPU/vopc_dpp.mir index 123893674ff5e..656c849bbd56b 100644 --- a/llvm/test/CodeGen/AMDGPU/vopc_dpp.mir +++ b/llvm/test/CodeGen/AMDGPU/vopc_dpp.mir @@ -18,15 +18,15 @@ body: | ; GCN-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF ; GCN-NEXT: V_CMP_LT_F32_e32_dpp 0, [[COPY1]], 0, [[COPY]], 1, 15, 15, 1, implicit-def $vcc, implicit $mode, implicit $exec ; GCN-NEXT: [[V_MOV_B32_dpp:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp [[DEF]], [[COPY1]], 1, 15, 15, 1, implicit $exec - ; GCN-NEXT: V_CMPX_EQ_I16_t16_nosdst_e64 [[V_MOV_B32_dpp]], [[COPY]], implicit-def $exec, implicit-def $vcc_lo, implicit $mode, implicit $exec - ; GCN-NEXT: [[V_CMP_CLASS_F16_t16_e64_dpp:%[0-9]+]]:sgpr_32 = V_CMP_CLASS_F16_t16_e64_dpp 0, [[COPY1]], [[COPY]], 1, 15, 15, 1, implicit $exec - ; GCN-NEXT: [[V_CMP_GE_F16_t16_e64_dpp:%[0-9]+]]:sgpr_32 = V_CMP_GE_F16_t16_e64_dpp 1, [[COPY1]], 0, [[COPY]], 1, 1, 15, 15, 1, implicit $mode, implicit $exec + ; GCN-NEXT: V_CMPX_EQ_I16_fake16_nosdst_e64 [[V_MOV_B32_dpp]], [[COPY]], implicit-def $exec, implicit-def $vcc_lo, implicit $mode, implicit $exec + ; GCN-NEXT: [[V_CMP_CLASS_F16_fake16_e64_dpp:%[0-9]+]]:sgpr_32 = V_CMP_CLASS_F16_fake16_e64_dpp 0, [[COPY1]], 0, [[COPY]], 1, 15, 15, 1, implicit $exec + ; GCN-NEXT: [[V_CMP_GE_F16_fake16_e64_dpp:%[0-9]+]]:sgpr_32 = V_CMP_GE_F16_fake16_e64_dpp 1, [[COPY1]], 0, [[COPY]], 1, 1, 15, 15, 1, implicit $mode, implicit $exec ; GCN-NEXT: [[V_MOV_B32_dpp1:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp [[DEF]], [[COPY1]], 1, 15, 15, 1, implicit $exec ; GCN-NEXT: V_CMPX_GT_U32_nosdst_e64 [[V_MOV_B32_dpp1]], [[COPY]], implicit-def $exec, implicit $mode, implicit $exec ; GCN-NEXT: V_CMP_CLASS_F32_e32_dpp 2, [[COPY1]], [[COPY]], 1, 15, 15, 1, implicit-def $vcc, implicit $exec ; GCN-NEXT: V_CMP_NGE_F32_e32_dpp 0, [[COPY1]], 0, [[COPY]], 1, 15, 15, 1, implicit-def $vcc, implicit $mode, implicit $exec ; GCN-NEXT: [[V_MOV_B32_dpp2:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp [[DEF]], [[COPY1]], 1, 15, 15, 1, implicit $exec - ; GCN-NEXT: [[V_CMP_NGE_F16_t16_e64_:%[0-9]+]]:sgpr_32 = V_CMP_NGE_F16_t16_e64 0, [[V_CMP_NGE_F16_t16_e64_]], 0, [[COPY]], 0, implicit $mode, implicit $exec + ; GCN-NEXT: [[V_CMP_NGE_F16_fake16_e64_:%[0-9]+]]:sgpr_32 = V_CMP_NGE_F16_fake16_e64 0, [[V_CMP_NGE_F16_fake16_e64_]], 0, [[COPY]], 0, implicit $mode, implicit $exec ; GCN-NEXT: [[V_CMP_NGE_F32_e64_dpp:%[0-9]+]]:sgpr_32 = V_CMP_NGE_F32_e64_dpp 0, [[COPY1]], 0, [[COPY]], 0, 1, 15, 15, 1, implicit $mode, implicit $exec ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sgpr_32 = S_AND_B32 [[V_CMP_NGE_F32_e64_dpp]], 10101, implicit-def $scc ; GCN-NEXT: V_CMP_GT_I32_e32_dpp [[COPY1]], [[COPY]], 1, 15, 15, 1, implicit-def $vcc, implicit $exec @@ -40,13 +40,13 @@ body: | ; unsafe to combine cmpx %5:vgpr_32 = V_MOV_B32_dpp %3, %1, 1, 15, 15, 1, implicit $exec - V_CMPX_EQ_I16_t16_nosdst_e64 %5, %0, implicit-def $exec, implicit-def $vcc, implicit $mode, implicit $exec + V_CMPX_EQ_I16_fake16_nosdst_e64 %5, %0, implicit-def $exec, implicit-def $vcc, implicit $mode, implicit $exec %6:vgpr_32 = V_MOV_B32_dpp %3, %1, 1, 15, 15, 1, implicit $exec - %7:sgpr_32 = V_CMP_CLASS_F16_t16_e64 0, %6, %0, implicit-def $vcc, implicit $mode, implicit $exec + %7:sgpr_32 = V_CMP_CLASS_F16_fake16_e64 0, %6, 0, %0, implicit-def $vcc, implicit $mode, implicit $exec %8:vgpr_32 = V_MOV_B32_dpp %3, %1, 1, 15, 15, 1, implicit $exec - %9:sgpr_32 = V_CMP_GE_F16_t16_e64 1, %8, 0, %0, 1, implicit $mode, implicit $exec + %9:sgpr_32 = V_CMP_GE_F16_fake16_e64 1, %8, 0, %0, 1, implicit $mode, implicit $exec ; unsafe to combine cmpx %10:vgpr_32 = V_MOV_B32_dpp %3, %1, 1, 15, 15, 1, implicit $exec @@ -61,7 +61,7 @@ body: | ; do not shrink True16 instructions %15:vgpr_32 = V_MOV_B32_dpp %3, %1, 1, 15, 15, 1, implicit $exec - %16:sgpr_32 = V_CMP_NGE_F16_t16_e64 0, %16, 0, %0, 0, implicit $mode, implicit $exec + %16:sgpr_32 = V_CMP_NGE_F16_fake16_e64 0, %16, 0, %0, 0, implicit $mode, implicit $exec ; do not shrink, sdst used %17:vgpr_32 = V_MOV_B32_dpp %3, %1, 1, 15, 15, 1, implicit $exec @@ -89,7 +89,7 @@ body: | ; GCN-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec ; GCN-NEXT: [[V_MOV_B32_dpp:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp [[DEF]], [[COPY1]], 1, 15, 14, 1, implicit $exec - ; GCN-NEXT: [[V_CMP_CLASS_F16_t16_e64_:%[0-9]+]]:sgpr_32 = V_CMP_CLASS_F16_t16_e64 0, [[V_MOV_B32_dpp]], [[COPY]], implicit-def $vcc_lo, implicit $mode, implicit $exec + ; GCN-NEXT: [[V_CMP_CLASS_F16_fake16_e64_:%[0-9]+]]:sgpr_32 = V_CMP_CLASS_F16_fake16_e64 0, [[V_MOV_B32_dpp]], 0, [[COPY]], implicit-def $vcc_lo, implicit $mode, implicit $exec ; GCN-NEXT: [[V_MOV_B32_dpp1:%[0-9]+]]:vgpr_32 = V_MOV_B32_dpp [[V_MOV_B32_e32_]], [[COPY1]], 1, 13, 15, 1, implicit $exec ; GCN-NEXT: [[V_CMP_GE_F32_e64_:%[0-9]+]]:sgpr_32 = V_CMP_GE_F32_e64 1, [[V_MOV_B32_dpp1]], 0, [[COPY]], 1, implicit $mode, implicit $exec %0:vgpr_32 = COPY $vgpr0 @@ -100,7 +100,7 @@ body: | ; Do not combine VOPC when row_mask or bank_mask is not 0xf ; All cases are covered by generic rules for creating DPP instructions %4:vgpr_32 = V_MOV_B32_dpp %2, %1, 1, 15, 14, 1, implicit $exec - %99:sgpr_32 = V_CMP_CLASS_F16_t16_e64 0, %4, %0, implicit-def $vcc, implicit $mode, implicit $exec + %99:sgpr_32 = V_CMP_CLASS_F16_fake16_e64 0, %4, 0, %0, implicit-def $vcc, implicit $mode, implicit $exec %5:vgpr_32 = V_MOV_B32_dpp %3, %1, 1, 13, 15, 1, implicit $exec %6:sgpr_32 = V_CMP_GE_F32_e64 1, %5, 0, %0, 1, implicit $mode, implicit $exec diff --git a/llvm/test/CodeGen/ARM/fpscr-multi-use.ll b/llvm/test/CodeGen/ARM/fpscr-multi-use.ll new file mode 100644 index 0000000000000..3e77ad65df992 --- /dev/null +++ b/llvm/test/CodeGen/ARM/fpscr-multi-use.ll @@ -0,0 +1,40 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc -mtriple=armv7 %s -o - | FileCheck %s + +declare double @fn() + +define void @test(ptr %p, ptr %res) nounwind { +; CHECK-LABEL: test: +; CHECK: @ %bb.0: @ %entry +; CHECK-NEXT: push {r4, lr} +; CHECK-NEXT: vpush {d8} +; CHECK-NEXT: vldr d8, [r0] +; CHECK-NEXT: mov r4, r1 +; CHECK-NEXT: vcmp.f64 d8, #0 +; CHECK-NEXT: vmrs APSR_nzcv, fpscr +; CHECK-NEXT: vneg.f64 d16, d8 +; CHECK-NEXT: vmov.f64 d17, d8 +; CHECK-NEXT: vmovne.f64 d17, d16 +; CHECK-NEXT: vstr d17, [r1] +; CHECK-NEXT: bl fn +; CHECK-NEXT: vcmp.f64 d8, #0 +; CHECK-NEXT: vmrs APSR_nzcv, fpscr +; CHECK-NEXT: vmov d16, r0, r1 +; CHECK-NEXT: eor r1, r1, #-2147483648 +; CHECK-NEXT: vmov d17, r0, r1 +; CHECK-NEXT: vmovne.f64 d16, d17 +; CHECK-NEXT: vstr d16, [r4] +; CHECK-NEXT: vpop {d8} +; CHECK-NEXT: pop {r4, pc} +entry: + %x = load double, ptr %p + %cmp = fcmp une double %x, 0.000000e+00 + %nx = fneg double %x + %sx = select i1 %cmp, double %nx, double %x + store double %sx, ptr %res + %y = call double @fn() + %ny = fneg double %y + %sy = select i1 %cmp, double %ny, double %y + store double %sy, ptr %res + ret void +} diff --git a/llvm/test/CodeGen/BPF/preserve-static-offset/store-zero.ll b/llvm/test/CodeGen/BPF/preserve-static-offset/store-zero.ll index 7f2a06af8d10f..d3929a3706ba8 100644 --- a/llvm/test/CodeGen/BPF/preserve-static-offset/store-zero.ll +++ b/llvm/test/CodeGen/BPF/preserve-static-offset/store-zero.ll @@ -28,7 +28,7 @@ entry: ret void } -; CHECK: define dso_local void @bar(ptr nocapture noundef writeonly %[[p:.*]]) +; CHECK: define dso_local void @bar(ptr nocapture noundef writeonly initializes((0, 4)) %[[p:.*]]) ; CHECK-NEXT: entry: ; CHECK-NEXT: store i32 0, ptr %[[p]], align 4, !tbaa ; CHECK-NEXT: ret void diff --git a/llvm/test/CodeGen/DirectX/CreateHandle.ll b/llvm/test/CodeGen/DirectX/CreateHandle.ll index 40b3b2c712272..234d4e035bf1d 100644 --- a/llvm/test/CodeGen/DirectX/CreateHandle.ll +++ b/llvm/test/CodeGen/DirectX/CreateHandle.ll @@ -3,7 +3,7 @@ ; CHECK-PRETTY: Type Format Dim ID HLSL Bind Count ; CHECK-PRETTY: ---------- ------- ----------- ------- -------------- --------- -; CHECK-PRETTY: SRV f32 buf T0 t0 unbounded +; CHECK-PRETTY: SRV f32 buf T0 t7 unbounded ; CHECK-PRETTY: SRV byte r/o T1 t8,space1 1 ; CHECK-PRETTY: SRV struct r/o T2 t2,space4 1 ; CHECK-PRETTY: SRV u32 buf T3 t3,space5 24 @@ -18,44 +18,45 @@ define void @test_buffers() { ; RWBuffer Buf : register(u5, space3) %typed0 = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_1_0_0( - i32 3, i32 5, i32 1, i32 4, i1 false) - ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 1, i32 4, i1 false) + i32 3, i32 5, i32 1, i32 0, i1 false) + ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 1, i32 5, i1 false) ; CHECK-NOT: @llvm.dx.cast.handle ; RWBuffer Buf : register(u7, space2) %typed1 = call target("dx.TypedBuffer", i32, 1, 0, 1) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_i32_1_0_1t( - i32 2, i32 7, i32 1, i32 6, i1 false) - ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 0, i32 6, i1 false) + i32 2, i32 7, i32 1, i32 0, i1 false) + ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 0, i32 7, i1 false) ; Buffer Buf[24] : register(t3, space5) ; Buffer typed2 = Buf[4] ; Note that the index below is 3 + 4 = 7 %typed2 = call target("dx.TypedBuffer", <4 x i32>, 0, 0, 0) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_i32_0_0_0t( - i32 5, i32 3, i32 24, i32 7, i1 false) + i32 5, i32 3, i32 24, i32 4, i1 false) ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 3, i32 7, i1 false) ; struct S { float4 a; uint4 b; }; ; StructuredBuffer Buf : register(t2, space4) %struct0 = call target("dx.RawBuffer", {<4 x float>, <4 x i32>}, 0, 0) @llvm.dx.handle.fromBinding.tdx.RawBuffer_sl_v4f32v4i32s_0_0t( - i32 4, i32 2, i32 1, i32 10, i1 true) - ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 2, i32 10, i1 true) + i32 4, i32 2, i32 1, i32 0, i1 true) + ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 2, i32 2, i1 true) ; ByteAddressBuffer Buf : register(t8, space1) %byteaddr0 = call target("dx.RawBuffer", i8, 0, 0) @llvm.dx.handle.fromBinding.tdx.RawBuffer_i8_0_0t( - i32 1, i32 8, i32 1, i32 12, i1 false) - ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 1, i32 12, i1 false) + i32 1, i32 8, i32 1, i32 0, i1 false) + ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 1, i32 8, i1 false) - ; Buffer Buf[] : register(t0) + ; Buffer Buf[] : register(t7) ; Buffer typed3 = Buf[ix] %typed3_ix = call i32 @some_val() %typed3 = call target("dx.TypedBuffer", <4 x float>, 0, 0, 0) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_0_0_0t( - i32 0, i32 0, i32 -1, i32 %typed3_ix, i1 false) - ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 %typed3_ix, i1 false) + i32 0, i32 7, i32 -1, i32 %typed3_ix, i1 false) + ; CHECK: %[[IX:.*]] = add i32 %typed3_ix, 7 + ; CHECK: call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 %[[IX]], i1 false) ret void } diff --git a/llvm/test/CodeGen/DirectX/CreateHandleFromBinding.ll b/llvm/test/CodeGen/DirectX/CreateHandleFromBinding.ll index bce324509184b..aa143dfa8211d 100644 --- a/llvm/test/CodeGen/DirectX/CreateHandleFromBinding.ll +++ b/llvm/test/CodeGen/DirectX/CreateHandleFromBinding.ll @@ -3,7 +3,7 @@ ; CHECK-PRETTY: Type Format Dim ID HLSL Bind Count ; CHECK-PRETTY: ---------- ------- ----------- ------- -------------- --------- -; CHECK-PRETTY: SRV f32 buf T0 t0 unbounded +; CHECK-PRETTY: SRV f32 buf T0 t7 unbounded ; CHECK-PRETTY: SRV byte r/o T1 t8,space1 1 ; CHECK-PRETTY: SRV struct r/o T2 t2,space4 1 ; CHECK-PRETTY: SRV u32 buf T3 t3,space5 24 @@ -18,15 +18,15 @@ define void @test_bindings() { ; RWBuffer Buf : register(u5, space3) %typed0 = call target("dx.TypedBuffer", <4 x float>, 1, 0, 0) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_1_0_0( - i32 3, i32 5, i32 1, i32 4, i1 false) - ; CHECK: [[BUF0:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 5, i32 5, i32 3, i8 1 }, i32 4, i1 false) + i32 3, i32 5, i32 1, i32 0, i1 false) + ; CHECK: [[BUF0:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 5, i32 5, i32 3, i8 1 }, i32 5, i1 false) ; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF0]], %dx.types.ResourceProperties { i32 4106, i32 1033 }) ; RWBuffer Buf : register(u7, space2) %typed1 = call target("dx.TypedBuffer", i32, 1, 0, 1) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_i32_1_0_0t( - i32 2, i32 7, i32 1, i32 6, i1 false) - ; CHECK: [[BUF1:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 7, i32 7, i32 2, i8 1 }, i32 6, i1 false) + i32 2, i32 7, i32 1, i32 0, i1 false) + ; CHECK: [[BUF1:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 7, i32 7, i32 2, i8 1 }, i32 7, i1 false) ; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF1]], %dx.types.ResourceProperties { i32 4106, i32 260 }) ; Buffer Buf[24] : register(t3, space5) @@ -34,7 +34,7 @@ define void @test_bindings() { ; Note that the index below is 3 + 4 = 7 %typed2 = call target("dx.TypedBuffer", <4 x i32>, 0, 0, 0) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_i32_0_0_0t( - i32 5, i32 3, i32 24, i32 7, i1 false) + i32 5, i32 3, i32 24, i32 4, i1 false) ; CHECK: [[BUF2:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 3, i32 26, i32 5, i8 0 }, i32 7, i1 false) ; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF2]], %dx.types.ResourceProperties { i32 10, i32 1029 }) @@ -42,24 +42,25 @@ define void @test_bindings() { ; StructuredBuffer Buf : register(t2, space4) %struct0 = call target("dx.RawBuffer", {<4 x float>, <4 x i32>}, 0, 0) @llvm.dx.handle.fromBinding.tdx.RawBuffer_sl_v4f32v4i32s_0_0t( - i32 4, i32 2, i32 1, i32 10, i1 true) - ; CHECK: [[BUF3:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 2, i32 2, i32 4, i8 0 }, i32 10, i1 true) + i32 4, i32 2, i32 1, i32 0, i1 true) + ; CHECK: [[BUF3:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 2, i32 2, i32 4, i8 0 }, i32 2, i1 true) ; CHECK: = call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF3]], %dx.types.ResourceProperties { i32 1036, i32 32 }) ; ByteAddressBuffer Buf : register(t8, space1) %byteaddr0 = call target("dx.RawBuffer", i8, 0, 0) @llvm.dx.handle.fromBinding.tdx.RawBuffer_i8_0_0t( - i32 1, i32 8, i32 1, i32 12, i1 false) - ; CHECK: [[BUF4:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 8, i32 8, i32 1, i8 0 }, i32 12, i1 false) + i32 1, i32 8, i32 1, i32 0, i1 false) + ; CHECK: [[BUF4:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 8, i32 8, i32 1, i8 0 }, i32 8, i1 false) ; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF4]], %dx.types.ResourceProperties { i32 11, i32 0 }) - ; Buffer Buf[] : register(t0) + ; Buffer Buf[] : register(t7) ; Buffer typed3 = Buf[ix] %typed3_ix = call i32 @some_val() %typed3 = call target("dx.TypedBuffer", <4 x float>, 0, 0, 0) @llvm.dx.handle.fromBinding.tdx.TypedBuffer_v4f32_0_0_0t( - i32 0, i32 0, i32 -1, i32 %typed3_ix, i1 false) - ; CHECK: [[BUF5:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 0, i32 -1, i32 0, i8 0 }, i32 %typed3_ix, i1 false) + i32 0, i32 7, i32 -1, i32 %typed3_ix, i1 false) + ; CHECK: %[[IX:.*]] = add i32 %typed3_ix, 7 + ; CHECK: [[BUF5:%.*]] = call %dx.types.Handle @dx.op.createHandleFromBinding(i32 217, %dx.types.ResBind { i32 7, i32 -1, i32 0, i8 0 }, i32 %[[IX]], i1 false) ; CHECK: call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BUF5]], %dx.types.ResourceProperties { i32 10, i32 1033 }) ret void diff --git a/llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions-obj-test.ll b/llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions-obj-test.ll new file mode 100644 index 0000000000000..02a4c2090499a --- /dev/null +++ b/llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions-obj-test.ll @@ -0,0 +1,16 @@ +; RUN: llc %s --filetype=obj -o - | obj2yaml | FileCheck %s + +target triple = "dxil-pc-shadermodel6.7-library" +define double @div(double %a, double %b) #0 { + %res = fdiv double %a, %b + ret double %res +} + +attributes #0 = { convergent norecurse nounwind "hlsl.export"} + +; CHECK: - Name: SFI0 +; CHECK-NEXT: Size: 8 +; CHECK-NEXT: Flags: +; CHECK: Doubles: true +; CHECK: DX11_1_DoubleExtensions: true + diff --git a/llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions.ll b/llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions.ll index a8d5f9c78f0b4..6332ef806a0d8 100644 --- a/llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions.ll +++ b/llvm/test/CodeGen/DirectX/ShaderFlags/double-extensions.ll @@ -1,27 +1,45 @@ ; RUN: opt -S --passes="print-dx-shader-flags" 2>&1 %s | FileCheck %s -; RUN: llc %s --filetype=obj -o - | obj2yaml | FileCheck %s --check-prefix=DXC target triple = "dxil-pc-shadermodel6.7-library" -; CHECK: ; Shader Flags Value: 0x00000044 +; CHECK: ; Combined Shader Flags for Module +; CHECK-NEXT: ; Shader Flags Value: 0x00000044 + ; CHECK: ; Note: shader requires additional functionality: ; CHECK-NEXT: ; Double-precision floating point ; CHECK-NEXT: ; Double-precision extensions for 11.1 ; CHECK-NEXT: ; Note: extra DXIL module flags: -; CHECK-NEXT: {{^;$}} -define double @div(double %a, double %b) #0 { +; CHECK-NEXT: ; +; CHECK-NEXT: ; Shader Flags for Module Functions + +; CHECK: ; Function test_fdiv_double : 0x00000044 +define double @test_fdiv_double(double %a, double %b) #0 { %res = fdiv double %a, %b ret double %res } -attributes #0 = { convergent norecurse nounwind "hlsl.export"} +; CHECK: ; Function test_uitofp_i64 : 0x00000044 +define double @test_uitofp_i64(i64 %a) #0 { + %r = uitofp i64 %a to double + ret double %r +} + +; CHECK: ; Function test_sitofp_i64 : 0x00000044 +define double @test_sitofp_i64(i64 %a) #0 { + %r = sitofp i64 %a to double + ret double %r +} -; DXC: - Name: SFI0 -; DXC-NEXT: Size: 8 -; DXC-NEXT: Flags: -; DXC-NEXT: Doubles: true -; DXC-NOT: {{[A-Za-z]+: +true}} -; DXC: DX11_1_DoubleExtensions: true -; DXC-NOT: {{[A-Za-z]+: +true}} -; DXC: NextUnusedBit: false -; DXC: ... +; CHECK: ; Function test_fptoui_i32 : 0x00000044 +define i32 @test_fptoui_i32(double %a) #0 { + %r = fptoui double %a to i32 + ret i32 %r +} + +; CHECK: ; Function test_fptosi_i64 : 0x00000044 +define i64 @test_fptosi_i64(double %a) #0 { + %r = fptosi double %a to i64 + ret i64 %r +} + +attributes #0 = { convergent norecurse nounwind "hlsl.export"} diff --git a/llvm/test/CodeGen/DirectX/ShaderFlags/doubles.ll b/llvm/test/CodeGen/DirectX/ShaderFlags/doubles.ll index e9b44240e10b9..1c131f0774938 100644 --- a/llvm/test/CodeGen/DirectX/ShaderFlags/doubles.ll +++ b/llvm/test/CodeGen/DirectX/ShaderFlags/doubles.ll @@ -3,11 +3,15 @@ target triple = "dxil-pc-shadermodel6.7-library" -; CHECK: ; Shader Flags Value: 0x00000004 -; CHECK: ; Note: shader requires additional functionality: -; CHECK-NEXT: ; Double-precision floating point -; CHECK-NEXT: ; Note: extra DXIL module flags: -; CHECK-NEXT: {{^;$}} +;CHECK: ; Combined Shader Flags for Module +;CHECK-NEXT: ; Shader Flags Value: 0x00000004 +;CHECK-NEXT: ; +;CHECK-NEXT: ; Note: shader requires additional functionality: +;CHECK-NEXT: ; Double-precision floating point +;CHECK-NEXT: ; Note: extra DXIL module flags: +;CHECK-NEXT: ; +;CHECK-NEXT: ; Shader Flags for Module Functions +;CHECK-NEXT: ; Function add : 0x00000004 define double @add(double %a, double %b) #0 { %sum = fadd double %a, %b diff --git a/llvm/test/CodeGen/DirectX/ShaderFlags/no_flags.ll b/llvm/test/CodeGen/DirectX/ShaderFlags/no_flags.ll index f7baa1b64f9cd..f99d4fca84da2 100644 --- a/llvm/test/CodeGen/DirectX/ShaderFlags/no_flags.ll +++ b/llvm/test/CodeGen/DirectX/ShaderFlags/no_flags.ll @@ -2,7 +2,12 @@ target triple = "dxil-pc-shadermodel6.7-library" -; CHECK: ; Shader Flags Value: 0x00000000 +;CHECK: ; Combined Shader Flags for Module +;CHECK-NEXT: ; Shader Flags Value: 0x00000000 +;CHECK-NEXT: ; +;CHECK-NEXT: ; Shader Flags for Module Functions +;CHECK-NEXT: ; Function add : 0x00000000 + define i32 @add(i32 %a, i32 %b) { %sum = add i32 %a, %b ret i32 %sum diff --git a/llvm/test/CodeGen/DirectX/WaveActiveAnyTrue.ll b/llvm/test/CodeGen/DirectX/WaveActiveAnyTrue.ll new file mode 100644 index 0000000000000..5adf050a76c98 --- /dev/null +++ b/llvm/test/CodeGen/DirectX/WaveActiveAnyTrue.ll @@ -0,0 +1,10 @@ +; RUN: opt -S -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-compute %s | FileCheck %s + +define noundef i1 @wave_any_simple(i1 noundef %p1) { +entry: +; CHECK: call i1 @dx.op.waveAnyTrue(i32 113, i1 %p1) + %ret = call i1 @llvm.dx.wave.any(i1 %p1) + ret i1 %ret +} + +declare i1 @llvm.dx.wave.any(i1) diff --git a/llvm/test/CodeGen/DirectX/asdouble.ll b/llvm/test/CodeGen/DirectX/asdouble.ll new file mode 100644 index 0000000000000..6a581d69eb7e9 --- /dev/null +++ b/llvm/test/CodeGen/DirectX/asdouble.ll @@ -0,0 +1,22 @@ +; RUN: opt -S -scalarizer -dxil-op-lower -mtriple=dxil-pc-shadermodel6.3-library %s | FileCheck %s + +; Test that for scalar and vector inputs, asdouble maps down to the makeDouble +; DirectX op + +define noundef double @asdouble_scalar(i32 noundef %low, i32 noundef %high) { +; CHECK: call double @dx.op.makeDouble(i32 101, i32 %low, i32 %high) + %ret = call double @llvm.dx.asdouble.i32(i32 %low, i32 %high) + ret double %ret +} + +declare double @llvm.dx.asdouble.i32(i32, i32) + +define noundef <3 x double> @asdouble_vec(<3 x i32> noundef %low, <3 x i32> noundef %high) { +; CHECK: call double @dx.op.makeDouble(i32 101, i32 %low.i0, i32 %high.i0) +; CHECK: call double @dx.op.makeDouble(i32 101, i32 %low.i1, i32 %high.i1) +; CHECK: call double @dx.op.makeDouble(i32 101, i32 %low.i2, i32 %high.i2) + %ret = call <3 x double> @llvm.dx.asdouble.v3i32(<3 x i32> %low, <3 x i32> %high) + ret <3 x double> %ret +} + +declare <3 x double> @llvm.dx.asdouble.v3i32(<3 x i32>, <3 x i32>) diff --git a/llvm/test/CodeGen/DirectX/updateCounter.ll b/llvm/test/CodeGen/DirectX/bufferUpdateCounter.ll similarity index 86% rename from llvm/test/CodeGen/DirectX/updateCounter.ll rename to llvm/test/CodeGen/DirectX/bufferUpdateCounter.ll index 6bfb4d8670f55..3f2610649cba1 100644 --- a/llvm/test/CodeGen/DirectX/updateCounter.ll +++ b/llvm/test/CodeGen/DirectX/bufferUpdateCounter.ll @@ -12,7 +12,7 @@ define void @update_counter_decrement_vector() { ; CHECK-NEXT: [[BUFFANOT:%.*]] = call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BIND]] ; CHECK-NEXT: [[REG:%.*]] = call i32 @dx.op.bufferUpdateCounter(i32 70, %dx.types.Handle [[BUFFANOT]], i8 -1) - %1 = call i32 @llvm.dx.updateCounter(target("dx.TypedBuffer", <4 x float>, 0, 0, 0) %buffer, i8 -1) + %1 = call i32 @llvm.dx.bufferUpdateCounter(target("dx.TypedBuffer", <4 x float>, 0, 0, 0) %buffer, i8 -1) ret void } @@ -24,7 +24,7 @@ define void @update_counter_increment_vector() { i32 0, i32 0, i32 1, i32 0, i1 false) ; CHECK-NEXT: [[BUFFANOT:%.*]] = call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BIND]] ; CHECK-NEXT: [[REG:%.*]] = call i32 @dx.op.bufferUpdateCounter(i32 70, %dx.types.Handle [[BUFFANOT]], i8 1) - %1 = call i32 @llvm.dx.updateCounter(target("dx.TypedBuffer", <4 x float>, 0, 0, 0) %buffer, i8 1) + %1 = call i32 @llvm.dx.bufferUpdateCounter(target("dx.TypedBuffer", <4 x float>, 0, 0, 0) %buffer, i8 1) ret void } @@ -36,6 +36,6 @@ define void @update_counter_decrement_scalar() { i32 1, i32 8, i32 1, i32 0, i1 false) ; CHECK-NEXT: [[BUFFANOT:%.*]] = call %dx.types.Handle @dx.op.annotateHandle(i32 216, %dx.types.Handle [[BIND]] ; CHECK-NEXT: [[REG:%.*]] = call i32 @dx.op.bufferUpdateCounter(i32 70, %dx.types.Handle [[BUFFANOT]], i8 -1) - %1 = call i32 @llvm.dx.updateCounter(target("dx.RawBuffer", i8, 0, 0) %buffer, i8 -1) + %1 = call i32 @llvm.dx.bufferUpdateCounter(target("dx.RawBuffer", i8, 0, 0) %buffer, i8 -1) ret void } diff --git a/llvm/test/CodeGen/Generic/machine-function-splitter.ll b/llvm/test/CodeGen/Generic/machine-function-splitter.ll index 2097523a61c5f..1a8c9ede8f8b7 100644 --- a/llvm/test/CodeGen/Generic/machine-function-splitter.ll +++ b/llvm/test/CodeGen/Generic/machine-function-splitter.ll @@ -2,12 +2,21 @@ ; REQUIRES: x86-registered-target ; COM: Machine function splitting with FDO profiles -; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -split-machine-functions | FileCheck %s -check-prefixes=MFS-DEFAULTS,MFS-DEFAULTS-X86 +; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -split-machine-functions | FileCheck %s -check-prefixes=MFS-DEFAULTS,MFS-DEFAULTS-X86,MFS-NOBBSECTIONS ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -split-machine-functions -mfs-psi-cutoff=0 -mfs-count-threshold=2000 | FileCheck %s --dump-input=always -check-prefixes=MFS-OPTS1,MFS-OPTS1-X86 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -split-machine-functions -mfs-psi-cutoff=950000 | FileCheck %s -check-prefixes=MFS-OPTS2,MFS-OPTS2-X86 ; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -split-machine-functions -mfs-split-ehcode | FileCheck %s -check-prefixes=MFS-EH-SPLIT,MFS-EH-SPLIT-X86 ; RUN: llc < %s -mtriple=x86_64 -split-machine-functions -O0 -mfs-psi-cutoff=0 -mfs-count-threshold=10000 | FileCheck %s -check-prefixes=MFS-O0,MFS-O0-X86 +; COM: Machine function splitting along with -basic-block-sections profile +; RUN: echo 'v1' > %t +; RUN: echo 'ffoo21' >> %t +; RUN: echo 'c0' >> %t +; RUN: echo 'ffoo22' >> %t +; RUN: echo 'c0 1' >> %t +; RUN: echo 'c2' >> %t +; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -basic-block-sections=%t -split-machine-functions | FileCheck %s --check-prefixes=MFS-BBSECTIONS + ; RUN: llc < %s -mtriple=aarch64-unknown-linux-gnu -aarch64-min-jump-table-entries=4 -enable-split-machine-functions | FileCheck %s -check-prefixes=MFS-DEFAULTS,MFS-DEFAULTS-AARCH64 ; RUN: llc < %s -mtriple=aarch64-unknown-linux-gnu -aarch64-min-jump-table-entries=4 -enable-split-machine-functions -mfs-psi-cutoff=0 -mfs-count-threshold=2000 | FileCheck %s --dump-input=always -check-prefixes=MFS-OPTS1,MFS-OPTS1-AARCH64 ; RUN: llc < %s -mtriple=aarch64-unknown-linux-gnu -aarch64-min-jump-table-entries=4 -enable-split-machine-functions -mfs-psi-cutoff=950000 | FileCheck %s -check-prefixes=MFS-OPTS2,MFS-OPTS2-AARCH64 @@ -610,6 +619,61 @@ cold_asm_target: ret void } +define void @foo21(i1 zeroext %0) { +;; Check that a function with basic-block-sections profile (but no pgo profile) +;; is properly split when the profile is used along with mfs. +; MFS-BBSECTIONS: .section .text.hot.foo21 +; MFS-NOBBSECTIONS-NOT: .section .text.hot.foo21 +; MFS-BBSECTIONS-LABEL: foo21: +; MFS-NOBBSECTIONS-NOT: foo21.cold: +; MFS-BBSECTIONS: .section .text.split.foo21 +; MFS-BBSECTIONS: foo21.cold + %2 = alloca i8, align 1 + %3 = zext i1 %0 to i8 + store i8 %3, ptr %2, align 1 + %4 = load i8, ptr %2, align 1 + %5 = trunc i8 %4 to i1 + br i1 %5, label %6, label %8 + +6: ; preds = %1 + %7 = call i32 @bar() + br label %10 + +8: ; preds = %1 + %9 = call i32 @baz() + br label %10 + +10: ; preds = %8, %6 + ret void +} + +define void @foo22(i1 zeroext %0) nounwind !prof !14 !section_prefix !15 { +;; Check that when a function has both basic-block-section and pgo profiles +;; only the basic-block-section profile is used for splitting. + +;; Check that we create two hot sections with -basic-block-sections. +; MFS-BBSECTIONS: .section .text.hot.foo22 +; MFS-BBSECTIONS-LABEL: foo22: +; MFS-BBSECTIONS: callq bar +; MFS-BBSECTIONS: .section .text.hot.foo22 +; MFS-BBSECTIONS-NEXT: foo22.__part.1: +; MFS-BBSECTIONS: callq baz +; MFS-BBSECTIONS-NOT: .section .text.split.foo22 + br i1 %0, label %2, label %4, !prof !17 + +2: ; preds = %1 + %3 = call i32 @bar() + br label %6 + +4: ; preds = %1 + %5 = call i32 @baz() + br label %6 + +6: ; preds = %4, %2 + %7 = tail call i32 @qux() + ret void +} + declare i32 @bar() declare i32 @baz() declare i32 @bam() diff --git a/llvm/test/CodeGen/Hexagon/load-widen.ll b/llvm/test/CodeGen/Hexagon/load-widen.ll new file mode 100644 index 0000000000000..6fe47a57b89f0 --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/load-widen.ll @@ -0,0 +1,43 @@ +; RUN: llc -march=hexagon < %s | FileCheck %s +; RUN: llc -march=hexagon -disable-load-widen < %s | FileCheck %s --check-prefix=CHECK-DISABLE + +%struct.node32 = type { ptr, ptr } + +%struct.node16_4 = type { i16, i16, i16, i16 } + +define void @test1(ptr nocapture %node) nounwind { +entry: +; There should be a memd and not two memw +; CHECK-LABEL: test1 +; CHECK: memd + %0 = load ptr, ptr %node, align 8 + %cgep = getelementptr inbounds %struct.node32, ptr %node, i32 0, i32 1 + %1 = load ptr, ptr %cgep, align 4 + store ptr %0, ptr %1, align 8 + ret void +} + +define void @test2(ptr nocapture %node) nounwind { +entry: +; Same as test1 but with load widening disabled. +; CHECK-DISABLE-LABEL: test2 +; CHECK-DISABLE: memw +; CHECK-DISABLE: memw + %0 = load ptr, ptr %node, align 8 + %cgep = getelementptr inbounds %struct.node32, ptr %node, i32 0, i32 1 + %1 = load ptr, ptr %cgep, align 4 + store ptr %0, ptr %1, align 8 + ret void +} + +define void @test3(ptr nocapture %node) nounwind { +entry: +; No memd because first load is not 8 byte aligned +; CHECK-LABEL: test3 +; CHECK-NOT: memd + %0 = load ptr, ptr %node, align 4 + %cgep = getelementptr inbounds %struct.node32, ptr %node, i32 0, i32 1 + %1 = load ptr, ptr %cgep, align 4 + store ptr %0, ptr %1, align 8 + ret void +} diff --git a/llvm/test/CodeGen/Hexagon/store-widen-aliased-load.ll b/llvm/test/CodeGen/Hexagon/store-widen-aliased-load.ll index 6c04e7a1e6ea4..d5d2da4d1056b 100644 --- a/llvm/test/CodeGen/Hexagon/store-widen-aliased-load.ll +++ b/llvm/test/CodeGen/Hexagon/store-widen-aliased-load.ll @@ -1,20 +1,16 @@ -; RUN: llc -march=hexagon --combiner-store-merging=false < %s | FileCheck %s -; CHECK-NOT: memh -; Check that store widening does not merge the two stores. +; RUN: llc -march=hexagon --combiner-store-merging=false -verify-machineinstrs < %s | FileCheck %s +; CHECK: memh +; Check that store widening merges the two adjacent stores. -target datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-f64:64:64-f32:32:32-v64:64:64-v32:32:32-a0:0-n16:32" target triple = "hexagon" %struct.type_t = type { i8, i8, [2 x i8] } define zeroext i8 @foo(ptr nocapture %p) nounwind { entry: - store i8 0, ptr %p, align 2, !tbaa !0 + store i8 0, ptr %p, align 2 %b = getelementptr inbounds %struct.type_t, ptr %p, i32 0, i32 1 - %0 = load i8, ptr %b, align 1, !tbaa !0 - store i8 0, ptr %b, align 1, !tbaa !0 + %0 = load i8, ptr %b, align 1 + store i8 0, ptr %b, align 1 ret i8 %0 } - -!0 = !{!"omnipotent char", !1} -!1 = !{!"Simple C/C++ TBAA"} diff --git a/llvm/test/CodeGen/Hexagon/widen-alias.ll b/llvm/test/CodeGen/Hexagon/widen-alias.ll new file mode 100644 index 0000000000000..4f84928654623 --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/widen-alias.ll @@ -0,0 +1,97 @@ +; Check the memd loads are generated by HexagonLoadStoreWidening pass +; Check that memw loads from adjacent memory location are replaced with memd, +; though the load/stores alias with instructions that occur later in the block. +; The order of memory operations remains unchanged. + +; RUN: llc -march=hexagon -verify-machineinstrs < %s | FileCheck %s + +target triple = "hexagon" + +; CHECK-LABEL: load_store_interleaved: +; CHECK: r{{[0-9]+}}:{{[0-9]+}} = memd(r{{[0-9]+}}+#0) +; CHECK: memd(r{{[0-9]+}}+#0) = r{{[0-9]+}}:{{[0-9]+}} +; Function Attrs: mustprogress nounwind +define linkonce_odr dso_local void @load_store_interleaved(ptr %p, float %a, float %b) local_unnamed_addr { +entry: + %0 = load float, ptr %p, align 8 + %add0 = fadd float %0, %a + store float %add0, ptr %p, align 8 + %q = getelementptr i8, ptr %p, i32 4 + %1 = load float, ptr %q, align 4 + %add1 = fadd float %1, %b + store float %add1, ptr %q, align 4 + ret void +} + +; Store can be widened here, but this order of instructions is not currently handled +; CHECK-LABEL: loads_between_stores: +; CHECK: r{{[0-9]+}}:{{[0-9]+}} = memd(r{{[0-9]+}}+#0) +; CHECK-NOT: memd(r{{[0-9]+}}+#4) = r{{[0-9]+}}:{{[0-9]+}} +; Function Attrs: mustprogress nounwind +define linkonce_odr dso_local void @loads_between_stores(ptr %p, float %a, float %b) local_unnamed_addr { +entry: + %add0 = fadd float %b, %a + %q = getelementptr i8, ptr %p, i32 4 + %r = getelementptr i8, ptr %p, i32 8 + store float %add0, ptr %r, align 4 + %0 = load float, ptr %p, align 8 + %1 = load float, ptr %q, align 4 + %add1 = fadd float %1, %0 + store float %add1, ptr %q, align 8 + ret void +} + +; CHECK-LABEL: loads_before_stores: +; CHECK: r{{[0-9]+}}:{{[0-9]+}} = memd(r{{[0-9]+}}+#0) +; CHECK: memd(r{{[0-9]+}}+#0) = r{{[0-9]+}}:{{[0-9]+}} +; Function Attrs: mustprogress nounwind +define linkonce_odr dso_local void @loads_before_stores(ptr %p, float %a, float %b) local_unnamed_addr { +entry: + %0 = load float, ptr %p, align 8 + %q = getelementptr i8, ptr %p, i32 4 + %1 = load float, ptr %q, align 4 + %add0 = fadd float %0, %a + store float %add0, ptr %p, align 8 + %add1 = fadd float %1, %b + store float %add1, ptr %q, align 4 + ret void +} + +; Store can be widened here, but this order of instructions is not currently handled +; CHECK-LABEL: store_load_interleaved: +; CHECK: r{{[0-9]+}}:{{[0-9]+}} = memd(r{{[0-9]+}}+#0) +; CHECK-NOT: memd(r{{[0-9]+}}+#0) = r{{[0-9]+}}:{{[0-9]+}} +; Function Attrs: mustprogress nounwind +define linkonce_odr dso_local void @store_load_interleaved(ptr %p, float %a, float %b, float %f) local_unnamed_addr { +entry: + %q = getelementptr i8, ptr %p, i32 4 + %r = getelementptr i8, ptr %p, i32 8 + store float %f, ptr %r, align 4 + %0 = load float, ptr %p, align 8 + %add0 = fadd float %0, %a + store float %add0, ptr %p, align 8 + %1 = load float, ptr %q, align 4 + %add1 = fadd float %1, %b + %add2 = fadd float %add1, %add0 + store float %add2, ptr %q, align 8 + ret void +} + +; CHECK-LABEL: stores_between_loads: +; CHECK-NOT: r{{[0-9]+}}:{{[0-9]+}} = memd(r{{[0-9]+}}+#0) +; CHECK: memd(r{{[0-9]+}}+#0) = r{{[0-9]+}}:{{[0-9]+}} +; Function Attrs: mustprogress nounwind +define linkonce_odr dso_local void @stores_between_loads(ptr %p, float %a, float %b, float %f) local_unnamed_addr { +entry: + %0 = load float, ptr %p, align 8 + %add0 = fadd float %f, %0 + store float %add0, ptr %p, align 8 + %q = getelementptr i8, ptr %p, i32 4 + %add1 = fadd float %f, %b + store float %add1, ptr %q, align 8 + %r = getelementptr i8, ptr %p, i32 8 + %1 = load float, ptr %r, align 4 + %add2 = fadd float %add1, %1 + store float %add2, ptr %r, align 4 + ret void +} diff --git a/llvm/test/CodeGen/Hexagon/widen-not-load.ll b/llvm/test/CodeGen/Hexagon/widen-not-load.ll new file mode 100644 index 0000000000000..5bf8b57054a91 --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/widen-not-load.ll @@ -0,0 +1,64 @@ +; Test that double word post increment load is not generated. +; REQUIRES: asserts + +; REQUIRES: asserts +; RUN: llc -march=hexagon -O2 -debug-only=hexagon-load-store-widening \ +; RUN: %s -o 2>&1 - | FileCheck %s + +; Loads with positive invalid postinc is not widened +define ptr @test1() { +; CHECK-LABEL: test1 +; CHECK-NOT: memd(r{{[0-9]+}}++ +entry: + %0 = load ptr, ptr null, align 4 + %b = getelementptr i8, ptr %0, i32 20 + %1 = load i32, ptr %0, align 8 + %c = getelementptr i8, ptr %0, i32 4 + %2 = load i32, ptr %c, align 4 + %call55 = call i8 @foo(ptr %b, i32 %1, i32 %2) + ret ptr null +} + +; Loads with negative invalid postinc is not widened +define ptr @test2() { +; CHECK-LABEL: test2 +; CHECK-NOT: memd(r{{[0-9]+}}++ +entry: + %0 = load ptr, ptr null, align 4 + %b = getelementptr i8, ptr %0, i32 -20 + %1 = load i32, ptr %0, align 8 + %c = getelementptr i8, ptr %0, i32 4 + %2 = load i32, ptr %c, align 4 + %call55 = call i8 @foo(ptr %b, i32 %1, i32 %2) + ret ptr null +} + +; Loads with valid positive postinc is widened +define ptr @test3() { +; CHECK-LABEL: test3 +; CHECK: memd +entry: + %0 = load ptr, ptr null, align 4 + %b = getelementptr i8, ptr %0, i32 24 + %1 = load i32, ptr %0, align 8 + %c = getelementptr i8, ptr %0, i32 4 + %2 = load i32, ptr %c, align 4 + %call55 = call i8 @foo(ptr %b, i32 %1, i32 %2) + ret ptr null +} + +; Loads with valid negative postinc is widened +define ptr @test4() { +; CHECK-LABEL: test4 +; CHECK: memd +entry: + %0 = load ptr, ptr null, align 4 + %b = getelementptr i8, ptr %0, i32 -24 + %1 = load i32, ptr %0, align 8 + %c = getelementptr i8, ptr %0, i32 4 + %2 = load i32, ptr %c, align 4 + %call55 = call i8 @foo(ptr %b, i32 %1, i32 %2) + ret ptr null +} + +declare i8 @foo(ptr, i32, i32) diff --git a/llvm/test/CodeGen/Hexagon/widen-volatile.ll b/llvm/test/CodeGen/Hexagon/widen-volatile.ll new file mode 100644 index 0000000000000..540f517a6c96f --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/widen-volatile.ll @@ -0,0 +1,34 @@ +; Check the volatile load/stores are not widened by HexagonLoadStoreWidening pass + +; RUN: llc -march=hexagon -verify-machineinstrs < %s | FileCheck %s + +target triple = "hexagon" + +; CHECK-LABEL: volatile_loads: +; CHECK: r{{[0-9]+}} = memw(r{{[0-9]+}}+#0) +; CHECK: r{{[0-9]+}} = memw(r{{[0-9]+}}+#4) +; CHECK-NOT: r{{[0-9]+}} = memd(r{{[0-9]+}}+#0) +define dso_local void @volatile_loads(ptr noundef %dst, ptr noundef %src0) local_unnamed_addr { +entry: + %0 = load volatile i32, ptr %src0, align 8 + %src1 = getelementptr i8, ptr %src0, i32 4 + %conv = zext i32 %0 to i64 + %1 = load volatile i32, ptr %src1, align 4 + %conv4 = zext i32 %1 to i64 + %shl = shl nuw i64 %conv4, 32 + %or = or disjoint i64 %shl, %conv + store i64 %or, ptr %dst, align 1 + ret void +} + +; CHECK-LABEL: volatile_stores: +; CHECK: memw(r{{[0-9]+}}+#0) = r{{[0-9]+}} +; CHECK: memw(r{{[0-9]+}}+#4) = r{{[0-9]+}} +; CHECK-NOT: memd(r{{[0-9]+}}+#0) = r{{[0-9]+}} +define dso_local void @volatile_stores(ptr noundef %dst0, i32 %a, i32 %b) local_unnamed_addr { +entry: + store volatile i32 %a, ptr %dst0, align 8 + %dst1 = getelementptr i8, ptr %dst0, i32 4 + store volatile i32 %b, ptr %dst1, align 4 + ret void +} diff --git a/llvm/test/CodeGen/LoongArch/code-models.ll b/llvm/test/CodeGen/LoongArch/code-models.ll index 14bd0f4df4710..c012068862334 100644 --- a/llvm/test/CodeGen/LoongArch/code-models.ll +++ b/llvm/test/CodeGen/LoongArch/code-models.ll @@ -82,11 +82,11 @@ define void @call_external_sym(ptr %dst) { ; LARGE-NEXT: .cfi_offset 1, -8 ; LARGE-NEXT: ori $a2, $zero, 1000 ; LARGE-NEXT: move $a1, $zero -; LARGE-NEXT: pcalau12i $a3, %pc_hi20(memset) -; LARGE-NEXT: addi.d $ra, $zero, %pc_lo12(memset) -; LARGE-NEXT: lu32i.d $ra, %pc64_lo20(memset) -; LARGE-NEXT: lu52i.d $ra, $ra, %pc64_hi12(memset) -; LARGE-NEXT: add.d $ra, $ra, $a3 +; LARGE-NEXT: pcalau12i $a3, %got_pc_hi20(memset) +; LARGE-NEXT: addi.d $ra, $zero, %got_pc_lo12(memset) +; LARGE-NEXT: lu32i.d $ra, %got64_pc_lo20(memset) +; LARGE-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(memset) +; LARGE-NEXT: ldx.d $ra, $ra, $a3 ; LARGE-NEXT: jirl $ra, $ra, 0 ; LARGE-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload ; LARGE-NEXT: addi.d $sp, $sp, 16 diff --git a/llvm/test/CodeGen/LoongArch/expand-adjacency.ll b/llvm/test/CodeGen/LoongArch/expand-adjacency.ll index 154d2121a6321..b00cf2c519a15 100644 --- a/llvm/test/CodeGen/LoongArch/expand-adjacency.ll +++ b/llvm/test/CodeGen/LoongArch/expand-adjacency.ll @@ -14,10 +14,10 @@ declare void @llvm.memset.p0.i64(ptr, i8, i64, i1) define void @call_external_sym(ptr %dst) { ; LARGE-LABEL: call_external_sym: -; LARGE: pcalau12i [[REG1:\$[a-z0-9]+]], %pc_hi20(memset) -; LARGE-NEXT: addi.d [[REG2:\$[a-z0-9]+]], $zero, %pc_lo12(memset) -; LARGE-NEXT: lu32i.d [[REG2]], %pc64_lo20(memset) -; LARGE-NEXT: lu52i.d [[REG2]], [[REG2]], %pc64_hi12(memset) +; LARGE: pcalau12i [[REG1:\$[a-z0-9]+]], %got_pc_hi20(memset) +; LARGE-NEXT: addi.d [[REG2:\$[a-z0-9]+]], $zero, %got_pc_lo12(memset) +; LARGE-NEXT: lu32i.d [[REG2]], %got64_pc_lo20(memset) +; LARGE-NEXT: lu52i.d [[REG2]], [[REG2]], %got64_pc_hi12(memset) entry: call void @llvm.memset.p0.i64(ptr %dst, i8 0, i64 1000, i1 false) ret void diff --git a/llvm/test/CodeGen/LoongArch/ir-instruction/atomic-cmpxchg.ll b/llvm/test/CodeGen/LoongArch/ir-instruction/atomic-cmpxchg.ll index ad98397dfe8f0..4ff15f2b7e448 100644 --- a/llvm/test/CodeGen/LoongArch/ir-instruction/atomic-cmpxchg.ll +++ b/llvm/test/CodeGen/LoongArch/ir-instruction/atomic-cmpxchg.ll @@ -1,5 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc --mtriple=loongarch64 -mattr=+d < %s | FileCheck %s --check-prefix=LA64 +; RUN: llc --mtriple=loongarch64 -mattr=+d,-ld-seq-sa < %s | FileCheck %s --check-prefixes=LA64,NO-LD-SEQ-SA +; RUN: llc --mtriple=loongarch64 -mattr=+d,+ld-seq-sa < %s | FileCheck %s --check-prefixes=LA64,LD-SEQ-SA define void @cmpxchg_i8_acquire_acquire(ptr %ptr, i8 %cmp, i8 %val) nounwind { ; LA64-LABEL: cmpxchg_i8_acquire_acquire: @@ -100,99 +101,177 @@ define void @cmpxchg_i64_acquire_acquire(ptr %ptr, i64 %cmp, i64 %val) nounwind } define void @cmpxchg_i8_acquire_monotonic(ptr %ptr, i8 %cmp, i8 %val) nounwind { -; LA64-LABEL: cmpxchg_i8_acquire_monotonic: -; LA64: # %bb.0: -; LA64-NEXT: slli.d $a3, $a0, 3 -; LA64-NEXT: bstrins.d $a0, $zero, 1, 0 -; LA64-NEXT: ori $a4, $zero, 255 -; LA64-NEXT: sll.w $a4, $a4, $a3 -; LA64-NEXT: andi $a1, $a1, 255 -; LA64-NEXT: sll.w $a1, $a1, $a3 -; LA64-NEXT: andi $a2, $a2, 255 -; LA64-NEXT: sll.w $a2, $a2, $a3 -; LA64-NEXT: .LBB4_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a3, $a0, 0 -; LA64-NEXT: and $a5, $a3, $a4 -; LA64-NEXT: bne $a5, $a1, .LBB4_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB4_1 Depth=1 -; LA64-NEXT: andn $a5, $a3, $a4 -; LA64-NEXT: or $a5, $a5, $a2 -; LA64-NEXT: sc.w $a5, $a0, 0 -; LA64-NEXT: beqz $a5, .LBB4_1 -; LA64-NEXT: b .LBB4_4 -; LA64-NEXT: .LBB4_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB4_4: -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i8_acquire_monotonic: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; NO-LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; NO-LD-SEQ-SA-NEXT: ori $a4, $zero, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; NO-LD-SEQ-SA-NEXT: andi $a1, $a1, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; NO-LD-SEQ-SA-NEXT: andi $a2, $a2, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; NO-LD-SEQ-SA-NEXT: .LBB4_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB4_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB4_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a5, .LBB4_1 +; NO-LD-SEQ-SA-NEXT: b .LBB4_4 +; NO-LD-SEQ-SA-NEXT: .LBB4_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB4_4: +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i8_acquire_monotonic: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; LD-SEQ-SA-NEXT: ori $a4, $zero, 255 +; LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; LD-SEQ-SA-NEXT: andi $a1, $a1, 255 +; LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; LD-SEQ-SA-NEXT: andi $a2, $a2, 255 +; LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; LD-SEQ-SA-NEXT: .LBB4_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB4_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB4_1 Depth=1 +; LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a5, .LBB4_1 +; LD-SEQ-SA-NEXT: b .LBB4_4 +; LD-SEQ-SA-NEXT: .LBB4_3: +; LD-SEQ-SA-NEXT: .LBB4_4: +; LD-SEQ-SA-NEXT: ret %res = cmpxchg ptr %ptr, i8 %cmp, i8 %val acquire monotonic ret void } define void @cmpxchg_i16_acquire_monotonic(ptr %ptr, i16 %cmp, i16 %val) nounwind { -; LA64-LABEL: cmpxchg_i16_acquire_monotonic: -; LA64: # %bb.0: -; LA64-NEXT: slli.d $a3, $a0, 3 -; LA64-NEXT: bstrins.d $a0, $zero, 1, 0 -; LA64-NEXT: lu12i.w $a4, 15 -; LA64-NEXT: ori $a4, $a4, 4095 -; LA64-NEXT: sll.w $a4, $a4, $a3 -; LA64-NEXT: bstrpick.d $a1, $a1, 15, 0 -; LA64-NEXT: sll.w $a1, $a1, $a3 -; LA64-NEXT: bstrpick.d $a2, $a2, 15, 0 -; LA64-NEXT: sll.w $a2, $a2, $a3 -; LA64-NEXT: .LBB5_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a3, $a0, 0 -; LA64-NEXT: and $a5, $a3, $a4 -; LA64-NEXT: bne $a5, $a1, .LBB5_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB5_1 Depth=1 -; LA64-NEXT: andn $a5, $a3, $a4 -; LA64-NEXT: or $a5, $a5, $a2 -; LA64-NEXT: sc.w $a5, $a0, 0 -; LA64-NEXT: beqz $a5, .LBB5_1 -; LA64-NEXT: b .LBB5_4 -; LA64-NEXT: .LBB5_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB5_4: -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i16_acquire_monotonic: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; NO-LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; NO-LD-SEQ-SA-NEXT: lu12i.w $a4, 15 +; NO-LD-SEQ-SA-NEXT: ori $a4, $a4, 4095 +; NO-LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; NO-LD-SEQ-SA-NEXT: bstrpick.d $a1, $a1, 15, 0 +; NO-LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; NO-LD-SEQ-SA-NEXT: bstrpick.d $a2, $a2, 15, 0 +; NO-LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; NO-LD-SEQ-SA-NEXT: .LBB5_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB5_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB5_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a5, .LBB5_1 +; NO-LD-SEQ-SA-NEXT: b .LBB5_4 +; NO-LD-SEQ-SA-NEXT: .LBB5_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB5_4: +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i16_acquire_monotonic: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; LD-SEQ-SA-NEXT: lu12i.w $a4, 15 +; LD-SEQ-SA-NEXT: ori $a4, $a4, 4095 +; LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; LD-SEQ-SA-NEXT: bstrpick.d $a1, $a1, 15, 0 +; LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; LD-SEQ-SA-NEXT: bstrpick.d $a2, $a2, 15, 0 +; LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; LD-SEQ-SA-NEXT: .LBB5_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB5_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB5_1 Depth=1 +; LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a5, .LBB5_1 +; LD-SEQ-SA-NEXT: b .LBB5_4 +; LD-SEQ-SA-NEXT: .LBB5_3: +; LD-SEQ-SA-NEXT: .LBB5_4: +; LD-SEQ-SA-NEXT: ret %res = cmpxchg ptr %ptr, i16 %cmp, i16 %val acquire monotonic ret void } define void @cmpxchg_i32_acquire_monotonic(ptr %ptr, i32 %cmp, i32 %val) nounwind { -; LA64-LABEL: cmpxchg_i32_acquire_monotonic: -; LA64: # %bb.0: -; LA64-NEXT: addi.w $a1, $a1, 0 -; LA64-NEXT: .LBB6_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a3, $a0, 0 -; LA64-NEXT: bne $a3, $a1, .LBB6_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB6_1 Depth=1 -; LA64-NEXT: move $a4, $a2 -; LA64-NEXT: sc.w $a4, $a0, 0 -; LA64-NEXT: beqz $a4, .LBB6_1 -; LA64-NEXT: b .LBB6_4 -; LA64-NEXT: .LBB6_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB6_4: -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i32_acquire_monotonic: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: addi.w $a1, $a1, 0 +; NO-LD-SEQ-SA-NEXT: .LBB6_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB6_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB6_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: move $a4, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a4, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a4, .LBB6_1 +; NO-LD-SEQ-SA-NEXT: b .LBB6_4 +; NO-LD-SEQ-SA-NEXT: .LBB6_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB6_4: +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i32_acquire_monotonic: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: addi.w $a1, $a1, 0 +; LD-SEQ-SA-NEXT: .LBB6_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB6_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB6_1 Depth=1 +; LD-SEQ-SA-NEXT: move $a4, $a2 +; LD-SEQ-SA-NEXT: sc.w $a4, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a4, .LBB6_1 +; LD-SEQ-SA-NEXT: b .LBB6_4 +; LD-SEQ-SA-NEXT: .LBB6_3: +; LD-SEQ-SA-NEXT: .LBB6_4: +; LD-SEQ-SA-NEXT: ret %res = cmpxchg ptr %ptr, i32 %cmp, i32 %val acquire monotonic ret void } define void @cmpxchg_i64_acquire_monotonic(ptr %ptr, i64 %cmp, i64 %val) nounwind { -; LA64-LABEL: cmpxchg_i64_acquire_monotonic: -; LA64: # %bb.0: -; LA64-NEXT: .LBB7_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.d $a3, $a0, 0 -; LA64-NEXT: bne $a3, $a1, .LBB7_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB7_1 Depth=1 -; LA64-NEXT: move $a4, $a2 -; LA64-NEXT: sc.d $a4, $a0, 0 -; LA64-NEXT: beqz $a4, .LBB7_1 -; LA64-NEXT: b .LBB7_4 -; LA64-NEXT: .LBB7_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB7_4: -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i64_acquire_monotonic: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: .LBB7_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.d $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB7_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB7_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: move $a4, $a2 +; NO-LD-SEQ-SA-NEXT: sc.d $a4, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a4, .LBB7_1 +; NO-LD-SEQ-SA-NEXT: b .LBB7_4 +; NO-LD-SEQ-SA-NEXT: .LBB7_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB7_4: +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i64_acquire_monotonic: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: .LBB7_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.d $a3, $a0, 0 +; LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB7_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB7_1 Depth=1 +; LD-SEQ-SA-NEXT: move $a4, $a2 +; LD-SEQ-SA-NEXT: sc.d $a4, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a4, .LBB7_1 +; LD-SEQ-SA-NEXT: b .LBB7_4 +; LD-SEQ-SA-NEXT: .LBB7_3: +; LD-SEQ-SA-NEXT: .LBB7_4: +; LD-SEQ-SA-NEXT: ret %res = cmpxchg ptr %ptr, i64 %cmp, i64 %val acquire monotonic ret void } @@ -416,316 +495,564 @@ define i1 @cmpxchg_i64_acquire_acquire_reti1(ptr %ptr, i64 %cmp, i64 %val) nounw } define void @cmpxchg_i8_monotonic_monotonic(ptr %ptr, i8 %cmp, i8 %val) nounwind { -; LA64-LABEL: cmpxchg_i8_monotonic_monotonic: -; LA64: # %bb.0: -; LA64-NEXT: slli.d $a3, $a0, 3 -; LA64-NEXT: bstrins.d $a0, $zero, 1, 0 -; LA64-NEXT: ori $a4, $zero, 255 -; LA64-NEXT: sll.w $a4, $a4, $a3 -; LA64-NEXT: andi $a1, $a1, 255 -; LA64-NEXT: sll.w $a1, $a1, $a3 -; LA64-NEXT: andi $a2, $a2, 255 -; LA64-NEXT: sll.w $a2, $a2, $a3 -; LA64-NEXT: .LBB16_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a3, $a0, 0 -; LA64-NEXT: and $a5, $a3, $a4 -; LA64-NEXT: bne $a5, $a1, .LBB16_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB16_1 Depth=1 -; LA64-NEXT: andn $a5, $a3, $a4 -; LA64-NEXT: or $a5, $a5, $a2 -; LA64-NEXT: sc.w $a5, $a0, 0 -; LA64-NEXT: beqz $a5, .LBB16_1 -; LA64-NEXT: b .LBB16_4 -; LA64-NEXT: .LBB16_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB16_4: -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i8_monotonic_monotonic: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; NO-LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; NO-LD-SEQ-SA-NEXT: ori $a4, $zero, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; NO-LD-SEQ-SA-NEXT: andi $a1, $a1, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; NO-LD-SEQ-SA-NEXT: andi $a2, $a2, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; NO-LD-SEQ-SA-NEXT: .LBB16_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB16_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB16_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a5, .LBB16_1 +; NO-LD-SEQ-SA-NEXT: b .LBB16_4 +; NO-LD-SEQ-SA-NEXT: .LBB16_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB16_4: +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i8_monotonic_monotonic: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; LD-SEQ-SA-NEXT: ori $a4, $zero, 255 +; LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; LD-SEQ-SA-NEXT: andi $a1, $a1, 255 +; LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; LD-SEQ-SA-NEXT: andi $a2, $a2, 255 +; LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; LD-SEQ-SA-NEXT: .LBB16_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB16_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB16_1 Depth=1 +; LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a5, .LBB16_1 +; LD-SEQ-SA-NEXT: b .LBB16_4 +; LD-SEQ-SA-NEXT: .LBB16_3: +; LD-SEQ-SA-NEXT: .LBB16_4: +; LD-SEQ-SA-NEXT: ret %res = cmpxchg ptr %ptr, i8 %cmp, i8 %val monotonic monotonic ret void } define void @cmpxchg_i16_monotonic_monotonic(ptr %ptr, i16 %cmp, i16 %val) nounwind { -; LA64-LABEL: cmpxchg_i16_monotonic_monotonic: -; LA64: # %bb.0: -; LA64-NEXT: slli.d $a3, $a0, 3 -; LA64-NEXT: bstrins.d $a0, $zero, 1, 0 -; LA64-NEXT: lu12i.w $a4, 15 -; LA64-NEXT: ori $a4, $a4, 4095 -; LA64-NEXT: sll.w $a4, $a4, $a3 -; LA64-NEXT: bstrpick.d $a1, $a1, 15, 0 -; LA64-NEXT: sll.w $a1, $a1, $a3 -; LA64-NEXT: bstrpick.d $a2, $a2, 15, 0 -; LA64-NEXT: sll.w $a2, $a2, $a3 -; LA64-NEXT: .LBB17_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a3, $a0, 0 -; LA64-NEXT: and $a5, $a3, $a4 -; LA64-NEXT: bne $a5, $a1, .LBB17_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB17_1 Depth=1 -; LA64-NEXT: andn $a5, $a3, $a4 -; LA64-NEXT: or $a5, $a5, $a2 -; LA64-NEXT: sc.w $a5, $a0, 0 -; LA64-NEXT: beqz $a5, .LBB17_1 -; LA64-NEXT: b .LBB17_4 -; LA64-NEXT: .LBB17_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB17_4: -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i16_monotonic_monotonic: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; NO-LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; NO-LD-SEQ-SA-NEXT: lu12i.w $a4, 15 +; NO-LD-SEQ-SA-NEXT: ori $a4, $a4, 4095 +; NO-LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; NO-LD-SEQ-SA-NEXT: bstrpick.d $a1, $a1, 15, 0 +; NO-LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; NO-LD-SEQ-SA-NEXT: bstrpick.d $a2, $a2, 15, 0 +; NO-LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; NO-LD-SEQ-SA-NEXT: .LBB17_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB17_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB17_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a5, .LBB17_1 +; NO-LD-SEQ-SA-NEXT: b .LBB17_4 +; NO-LD-SEQ-SA-NEXT: .LBB17_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB17_4: +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i16_monotonic_monotonic: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; LD-SEQ-SA-NEXT: lu12i.w $a4, 15 +; LD-SEQ-SA-NEXT: ori $a4, $a4, 4095 +; LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; LD-SEQ-SA-NEXT: bstrpick.d $a1, $a1, 15, 0 +; LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; LD-SEQ-SA-NEXT: bstrpick.d $a2, $a2, 15, 0 +; LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; LD-SEQ-SA-NEXT: .LBB17_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB17_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB17_1 Depth=1 +; LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a5, .LBB17_1 +; LD-SEQ-SA-NEXT: b .LBB17_4 +; LD-SEQ-SA-NEXT: .LBB17_3: +; LD-SEQ-SA-NEXT: .LBB17_4: +; LD-SEQ-SA-NEXT: ret %res = cmpxchg ptr %ptr, i16 %cmp, i16 %val monotonic monotonic ret void } define void @cmpxchg_i32_monotonic_monotonic(ptr %ptr, i32 %cmp, i32 %val) nounwind { -; LA64-LABEL: cmpxchg_i32_monotonic_monotonic: -; LA64: # %bb.0: -; LA64-NEXT: addi.w $a1, $a1, 0 -; LA64-NEXT: .LBB18_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a3, $a0, 0 -; LA64-NEXT: bne $a3, $a1, .LBB18_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB18_1 Depth=1 -; LA64-NEXT: move $a4, $a2 -; LA64-NEXT: sc.w $a4, $a0, 0 -; LA64-NEXT: beqz $a4, .LBB18_1 -; LA64-NEXT: b .LBB18_4 -; LA64-NEXT: .LBB18_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB18_4: -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i32_monotonic_monotonic: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: addi.w $a1, $a1, 0 +; NO-LD-SEQ-SA-NEXT: .LBB18_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB18_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB18_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: move $a4, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a4, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a4, .LBB18_1 +; NO-LD-SEQ-SA-NEXT: b .LBB18_4 +; NO-LD-SEQ-SA-NEXT: .LBB18_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB18_4: +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i32_monotonic_monotonic: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: addi.w $a1, $a1, 0 +; LD-SEQ-SA-NEXT: .LBB18_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB18_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB18_1 Depth=1 +; LD-SEQ-SA-NEXT: move $a4, $a2 +; LD-SEQ-SA-NEXT: sc.w $a4, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a4, .LBB18_1 +; LD-SEQ-SA-NEXT: b .LBB18_4 +; LD-SEQ-SA-NEXT: .LBB18_3: +; LD-SEQ-SA-NEXT: .LBB18_4: +; LD-SEQ-SA-NEXT: ret %res = cmpxchg ptr %ptr, i32 %cmp, i32 %val monotonic monotonic ret void } define void @cmpxchg_i64_monotonic_monotonic(ptr %ptr, i64 %cmp, i64 %val) nounwind { -; LA64-LABEL: cmpxchg_i64_monotonic_monotonic: -; LA64: # %bb.0: -; LA64-NEXT: .LBB19_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.d $a3, $a0, 0 -; LA64-NEXT: bne $a3, $a1, .LBB19_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB19_1 Depth=1 -; LA64-NEXT: move $a4, $a2 -; LA64-NEXT: sc.d $a4, $a0, 0 -; LA64-NEXT: beqz $a4, .LBB19_1 -; LA64-NEXT: b .LBB19_4 -; LA64-NEXT: .LBB19_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB19_4: -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i64_monotonic_monotonic: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: .LBB19_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.d $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB19_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB19_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: move $a4, $a2 +; NO-LD-SEQ-SA-NEXT: sc.d $a4, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a4, .LBB19_1 +; NO-LD-SEQ-SA-NEXT: b .LBB19_4 +; NO-LD-SEQ-SA-NEXT: .LBB19_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB19_4: +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i64_monotonic_monotonic: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: .LBB19_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.d $a3, $a0, 0 +; LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB19_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB19_1 Depth=1 +; LD-SEQ-SA-NEXT: move $a4, $a2 +; LD-SEQ-SA-NEXT: sc.d $a4, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a4, .LBB19_1 +; LD-SEQ-SA-NEXT: b .LBB19_4 +; LD-SEQ-SA-NEXT: .LBB19_3: +; LD-SEQ-SA-NEXT: .LBB19_4: +; LD-SEQ-SA-NEXT: ret %res = cmpxchg ptr %ptr, i64 %cmp, i64 %val monotonic monotonic ret void } define i8 @cmpxchg_i8_monotonic_monotonic_reti8(ptr %ptr, i8 %cmp, i8 %val) nounwind { -; LA64-LABEL: cmpxchg_i8_monotonic_monotonic_reti8: -; LA64: # %bb.0: -; LA64-NEXT: slli.d $a3, $a0, 3 -; LA64-NEXT: bstrins.d $a0, $zero, 1, 0 -; LA64-NEXT: ori $a4, $zero, 255 -; LA64-NEXT: sll.w $a4, $a4, $a3 -; LA64-NEXT: andi $a1, $a1, 255 -; LA64-NEXT: sll.w $a1, $a1, $a3 -; LA64-NEXT: andi $a2, $a2, 255 -; LA64-NEXT: sll.w $a2, $a2, $a3 -; LA64-NEXT: .LBB20_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a5, $a0, 0 -; LA64-NEXT: and $a6, $a5, $a4 -; LA64-NEXT: bne $a6, $a1, .LBB20_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB20_1 Depth=1 -; LA64-NEXT: andn $a6, $a5, $a4 -; LA64-NEXT: or $a6, $a6, $a2 -; LA64-NEXT: sc.w $a6, $a0, 0 -; LA64-NEXT: beqz $a6, .LBB20_1 -; LA64-NEXT: b .LBB20_4 -; LA64-NEXT: .LBB20_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB20_4: -; LA64-NEXT: srl.w $a0, $a5, $a3 -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i8_monotonic_monotonic_reti8: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; NO-LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; NO-LD-SEQ-SA-NEXT: ori $a4, $zero, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; NO-LD-SEQ-SA-NEXT: andi $a1, $a1, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; NO-LD-SEQ-SA-NEXT: andi $a2, $a2, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; NO-LD-SEQ-SA-NEXT: .LBB20_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a5, $a0, 0 +; NO-LD-SEQ-SA-NEXT: and $a6, $a5, $a4 +; NO-LD-SEQ-SA-NEXT: bne $a6, $a1, .LBB20_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB20_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: andn $a6, $a5, $a4 +; NO-LD-SEQ-SA-NEXT: or $a6, $a6, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a6, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a6, .LBB20_1 +; NO-LD-SEQ-SA-NEXT: b .LBB20_4 +; NO-LD-SEQ-SA-NEXT: .LBB20_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB20_4: +; NO-LD-SEQ-SA-NEXT: srl.w $a0, $a5, $a3 +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i8_monotonic_monotonic_reti8: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; LD-SEQ-SA-NEXT: ori $a4, $zero, 255 +; LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; LD-SEQ-SA-NEXT: andi $a1, $a1, 255 +; LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; LD-SEQ-SA-NEXT: andi $a2, $a2, 255 +; LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; LD-SEQ-SA-NEXT: .LBB20_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a5, $a0, 0 +; LD-SEQ-SA-NEXT: and $a6, $a5, $a4 +; LD-SEQ-SA-NEXT: bne $a6, $a1, .LBB20_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB20_1 Depth=1 +; LD-SEQ-SA-NEXT: andn $a6, $a5, $a4 +; LD-SEQ-SA-NEXT: or $a6, $a6, $a2 +; LD-SEQ-SA-NEXT: sc.w $a6, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a6, .LBB20_1 +; LD-SEQ-SA-NEXT: b .LBB20_4 +; LD-SEQ-SA-NEXT: .LBB20_3: +; LD-SEQ-SA-NEXT: .LBB20_4: +; LD-SEQ-SA-NEXT: srl.w $a0, $a5, $a3 +; LD-SEQ-SA-NEXT: ret %tmp = cmpxchg ptr %ptr, i8 %cmp, i8 %val monotonic monotonic %res = extractvalue { i8, i1 } %tmp, 0 ret i8 %res } define i16 @cmpxchg_i16_monotonic_monotonic_reti16(ptr %ptr, i16 %cmp, i16 %val) nounwind { -; LA64-LABEL: cmpxchg_i16_monotonic_monotonic_reti16: -; LA64: # %bb.0: -; LA64-NEXT: slli.d $a3, $a0, 3 -; LA64-NEXT: bstrins.d $a0, $zero, 1, 0 -; LA64-NEXT: lu12i.w $a4, 15 -; LA64-NEXT: ori $a4, $a4, 4095 -; LA64-NEXT: sll.w $a4, $a4, $a3 -; LA64-NEXT: bstrpick.d $a1, $a1, 15, 0 -; LA64-NEXT: sll.w $a1, $a1, $a3 -; LA64-NEXT: bstrpick.d $a2, $a2, 15, 0 -; LA64-NEXT: sll.w $a2, $a2, $a3 -; LA64-NEXT: .LBB21_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a5, $a0, 0 -; LA64-NEXT: and $a6, $a5, $a4 -; LA64-NEXT: bne $a6, $a1, .LBB21_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB21_1 Depth=1 -; LA64-NEXT: andn $a6, $a5, $a4 -; LA64-NEXT: or $a6, $a6, $a2 -; LA64-NEXT: sc.w $a6, $a0, 0 -; LA64-NEXT: beqz $a6, .LBB21_1 -; LA64-NEXT: b .LBB21_4 -; LA64-NEXT: .LBB21_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB21_4: -; LA64-NEXT: srl.w $a0, $a5, $a3 -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i16_monotonic_monotonic_reti16: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; NO-LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; NO-LD-SEQ-SA-NEXT: lu12i.w $a4, 15 +; NO-LD-SEQ-SA-NEXT: ori $a4, $a4, 4095 +; NO-LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; NO-LD-SEQ-SA-NEXT: bstrpick.d $a1, $a1, 15, 0 +; NO-LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; NO-LD-SEQ-SA-NEXT: bstrpick.d $a2, $a2, 15, 0 +; NO-LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; NO-LD-SEQ-SA-NEXT: .LBB21_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a5, $a0, 0 +; NO-LD-SEQ-SA-NEXT: and $a6, $a5, $a4 +; NO-LD-SEQ-SA-NEXT: bne $a6, $a1, .LBB21_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB21_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: andn $a6, $a5, $a4 +; NO-LD-SEQ-SA-NEXT: or $a6, $a6, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a6, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a6, .LBB21_1 +; NO-LD-SEQ-SA-NEXT: b .LBB21_4 +; NO-LD-SEQ-SA-NEXT: .LBB21_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB21_4: +; NO-LD-SEQ-SA-NEXT: srl.w $a0, $a5, $a3 +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i16_monotonic_monotonic_reti16: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; LD-SEQ-SA-NEXT: lu12i.w $a4, 15 +; LD-SEQ-SA-NEXT: ori $a4, $a4, 4095 +; LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; LD-SEQ-SA-NEXT: bstrpick.d $a1, $a1, 15, 0 +; LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; LD-SEQ-SA-NEXT: bstrpick.d $a2, $a2, 15, 0 +; LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; LD-SEQ-SA-NEXT: .LBB21_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a5, $a0, 0 +; LD-SEQ-SA-NEXT: and $a6, $a5, $a4 +; LD-SEQ-SA-NEXT: bne $a6, $a1, .LBB21_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB21_1 Depth=1 +; LD-SEQ-SA-NEXT: andn $a6, $a5, $a4 +; LD-SEQ-SA-NEXT: or $a6, $a6, $a2 +; LD-SEQ-SA-NEXT: sc.w $a6, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a6, .LBB21_1 +; LD-SEQ-SA-NEXT: b .LBB21_4 +; LD-SEQ-SA-NEXT: .LBB21_3: +; LD-SEQ-SA-NEXT: .LBB21_4: +; LD-SEQ-SA-NEXT: srl.w $a0, $a5, $a3 +; LD-SEQ-SA-NEXT: ret %tmp = cmpxchg ptr %ptr, i16 %cmp, i16 %val monotonic monotonic %res = extractvalue { i16, i1 } %tmp, 0 ret i16 %res } define i32 @cmpxchg_i32_monotonic_monotonic_reti32(ptr %ptr, i32 %cmp, i32 %val) nounwind { -; LA64-LABEL: cmpxchg_i32_monotonic_monotonic_reti32: -; LA64: # %bb.0: -; LA64-NEXT: addi.w $a3, $a1, 0 -; LA64-NEXT: .LBB22_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a1, $a0, 0 -; LA64-NEXT: bne $a1, $a3, .LBB22_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB22_1 Depth=1 -; LA64-NEXT: move $a4, $a2 -; LA64-NEXT: sc.w $a4, $a0, 0 -; LA64-NEXT: beqz $a4, .LBB22_1 -; LA64-NEXT: b .LBB22_4 -; LA64-NEXT: .LBB22_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB22_4: -; LA64-NEXT: move $a0, $a1 -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i32_monotonic_monotonic_reti32: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: addi.w $a3, $a1, 0 +; NO-LD-SEQ-SA-NEXT: .LBB22_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a1, $a0, 0 +; NO-LD-SEQ-SA-NEXT: bne $a1, $a3, .LBB22_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB22_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: move $a4, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a4, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a4, .LBB22_1 +; NO-LD-SEQ-SA-NEXT: b .LBB22_4 +; NO-LD-SEQ-SA-NEXT: .LBB22_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB22_4: +; NO-LD-SEQ-SA-NEXT: move $a0, $a1 +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i32_monotonic_monotonic_reti32: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: addi.w $a3, $a1, 0 +; LD-SEQ-SA-NEXT: .LBB22_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a1, $a0, 0 +; LD-SEQ-SA-NEXT: bne $a1, $a3, .LBB22_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB22_1 Depth=1 +; LD-SEQ-SA-NEXT: move $a4, $a2 +; LD-SEQ-SA-NEXT: sc.w $a4, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a4, .LBB22_1 +; LD-SEQ-SA-NEXT: b .LBB22_4 +; LD-SEQ-SA-NEXT: .LBB22_3: +; LD-SEQ-SA-NEXT: .LBB22_4: +; LD-SEQ-SA-NEXT: move $a0, $a1 +; LD-SEQ-SA-NEXT: ret %tmp = cmpxchg ptr %ptr, i32 %cmp, i32 %val monotonic monotonic %res = extractvalue { i32, i1 } %tmp, 0 ret i32 %res } define i64 @cmpxchg_i64_monotonic_monotonic_reti64(ptr %ptr, i64 %cmp, i64 %val) nounwind { -; LA64-LABEL: cmpxchg_i64_monotonic_monotonic_reti64: -; LA64: # %bb.0: -; LA64-NEXT: .LBB23_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.d $a3, $a0, 0 -; LA64-NEXT: bne $a3, $a1, .LBB23_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB23_1 Depth=1 -; LA64-NEXT: move $a4, $a2 -; LA64-NEXT: sc.d $a4, $a0, 0 -; LA64-NEXT: beqz $a4, .LBB23_1 -; LA64-NEXT: b .LBB23_4 -; LA64-NEXT: .LBB23_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB23_4: -; LA64-NEXT: move $a0, $a3 -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i64_monotonic_monotonic_reti64: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: .LBB23_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.d $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB23_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB23_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: move $a4, $a2 +; NO-LD-SEQ-SA-NEXT: sc.d $a4, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a4, .LBB23_1 +; NO-LD-SEQ-SA-NEXT: b .LBB23_4 +; NO-LD-SEQ-SA-NEXT: .LBB23_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB23_4: +; NO-LD-SEQ-SA-NEXT: move $a0, $a3 +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i64_monotonic_monotonic_reti64: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: .LBB23_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.d $a3, $a0, 0 +; LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB23_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB23_1 Depth=1 +; LD-SEQ-SA-NEXT: move $a4, $a2 +; LD-SEQ-SA-NEXT: sc.d $a4, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a4, .LBB23_1 +; LD-SEQ-SA-NEXT: b .LBB23_4 +; LD-SEQ-SA-NEXT: .LBB23_3: +; LD-SEQ-SA-NEXT: .LBB23_4: +; LD-SEQ-SA-NEXT: move $a0, $a3 +; LD-SEQ-SA-NEXT: ret %tmp = cmpxchg ptr %ptr, i64 %cmp, i64 %val monotonic monotonic %res = extractvalue { i64, i1 } %tmp, 0 ret i64 %res } define i1 @cmpxchg_i8_monotonic_monotonic_reti1(ptr %ptr, i8 %cmp, i8 %val) nounwind { -; LA64-LABEL: cmpxchg_i8_monotonic_monotonic_reti1: -; LA64: # %bb.0: -; LA64-NEXT: slli.d $a3, $a0, 3 -; LA64-NEXT: bstrins.d $a0, $zero, 1, 0 -; LA64-NEXT: ori $a4, $zero, 255 -; LA64-NEXT: sll.w $a4, $a4, $a3 -; LA64-NEXT: andi $a1, $a1, 255 -; LA64-NEXT: sll.w $a1, $a1, $a3 -; LA64-NEXT: andi $a2, $a2, 255 -; LA64-NEXT: sll.w $a2, $a2, $a3 -; LA64-NEXT: .LBB24_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a3, $a0, 0 -; LA64-NEXT: and $a5, $a3, $a4 -; LA64-NEXT: bne $a5, $a1, .LBB24_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB24_1 Depth=1 -; LA64-NEXT: andn $a5, $a3, $a4 -; LA64-NEXT: or $a5, $a5, $a2 -; LA64-NEXT: sc.w $a5, $a0, 0 -; LA64-NEXT: beqz $a5, .LBB24_1 -; LA64-NEXT: b .LBB24_4 -; LA64-NEXT: .LBB24_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB24_4: -; LA64-NEXT: and $a0, $a3, $a4 -; LA64-NEXT: xor $a0, $a1, $a0 -; LA64-NEXT: sltui $a0, $a0, 1 -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i8_monotonic_monotonic_reti1: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; NO-LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; NO-LD-SEQ-SA-NEXT: ori $a4, $zero, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; NO-LD-SEQ-SA-NEXT: andi $a1, $a1, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; NO-LD-SEQ-SA-NEXT: andi $a2, $a2, 255 +; NO-LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; NO-LD-SEQ-SA-NEXT: .LBB24_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB24_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB24_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a5, .LBB24_1 +; NO-LD-SEQ-SA-NEXT: b .LBB24_4 +; NO-LD-SEQ-SA-NEXT: .LBB24_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB24_4: +; NO-LD-SEQ-SA-NEXT: and $a0, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: xor $a0, $a1, $a0 +; NO-LD-SEQ-SA-NEXT: sltui $a0, $a0, 1 +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i8_monotonic_monotonic_reti1: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; LD-SEQ-SA-NEXT: ori $a4, $zero, 255 +; LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; LD-SEQ-SA-NEXT: andi $a1, $a1, 255 +; LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; LD-SEQ-SA-NEXT: andi $a2, $a2, 255 +; LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; LD-SEQ-SA-NEXT: .LBB24_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB24_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB24_1 Depth=1 +; LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a5, .LBB24_1 +; LD-SEQ-SA-NEXT: b .LBB24_4 +; LD-SEQ-SA-NEXT: .LBB24_3: +; LD-SEQ-SA-NEXT: .LBB24_4: +; LD-SEQ-SA-NEXT: and $a0, $a3, $a4 +; LD-SEQ-SA-NEXT: xor $a0, $a1, $a0 +; LD-SEQ-SA-NEXT: sltui $a0, $a0, 1 +; LD-SEQ-SA-NEXT: ret %tmp = cmpxchg ptr %ptr, i8 %cmp, i8 %val monotonic monotonic %res = extractvalue { i8, i1 } %tmp, 1 ret i1 %res } define i1 @cmpxchg_i16_monotonic_monotonic_reti1(ptr %ptr, i16 %cmp, i16 %val) nounwind { -; LA64-LABEL: cmpxchg_i16_monotonic_monotonic_reti1: -; LA64: # %bb.0: -; LA64-NEXT: slli.d $a3, $a0, 3 -; LA64-NEXT: bstrins.d $a0, $zero, 1, 0 -; LA64-NEXT: lu12i.w $a4, 15 -; LA64-NEXT: ori $a4, $a4, 4095 -; LA64-NEXT: sll.w $a4, $a4, $a3 -; LA64-NEXT: bstrpick.d $a1, $a1, 15, 0 -; LA64-NEXT: sll.w $a1, $a1, $a3 -; LA64-NEXT: bstrpick.d $a2, $a2, 15, 0 -; LA64-NEXT: sll.w $a2, $a2, $a3 -; LA64-NEXT: .LBB25_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a3, $a0, 0 -; LA64-NEXT: and $a5, $a3, $a4 -; LA64-NEXT: bne $a5, $a1, .LBB25_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB25_1 Depth=1 -; LA64-NEXT: andn $a5, $a3, $a4 -; LA64-NEXT: or $a5, $a5, $a2 -; LA64-NEXT: sc.w $a5, $a0, 0 -; LA64-NEXT: beqz $a5, .LBB25_1 -; LA64-NEXT: b .LBB25_4 -; LA64-NEXT: .LBB25_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB25_4: -; LA64-NEXT: and $a0, $a3, $a4 -; LA64-NEXT: xor $a0, $a1, $a0 -; LA64-NEXT: sltui $a0, $a0, 1 -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i16_monotonic_monotonic_reti1: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; NO-LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; NO-LD-SEQ-SA-NEXT: lu12i.w $a4, 15 +; NO-LD-SEQ-SA-NEXT: ori $a4, $a4, 4095 +; NO-LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; NO-LD-SEQ-SA-NEXT: bstrpick.d $a1, $a1, 15, 0 +; NO-LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; NO-LD-SEQ-SA-NEXT: bstrpick.d $a2, $a2, 15, 0 +; NO-LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; NO-LD-SEQ-SA-NEXT: .LBB25_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB25_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB25_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a5, .LBB25_1 +; NO-LD-SEQ-SA-NEXT: b .LBB25_4 +; NO-LD-SEQ-SA-NEXT: .LBB25_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB25_4: +; NO-LD-SEQ-SA-NEXT: and $a0, $a3, $a4 +; NO-LD-SEQ-SA-NEXT: xor $a0, $a1, $a0 +; NO-LD-SEQ-SA-NEXT: sltui $a0, $a0, 1 +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i16_monotonic_monotonic_reti1: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: slli.d $a3, $a0, 3 +; LD-SEQ-SA-NEXT: bstrins.d $a0, $zero, 1, 0 +; LD-SEQ-SA-NEXT: lu12i.w $a4, 15 +; LD-SEQ-SA-NEXT: ori $a4, $a4, 4095 +; LD-SEQ-SA-NEXT: sll.w $a4, $a4, $a3 +; LD-SEQ-SA-NEXT: bstrpick.d $a1, $a1, 15, 0 +; LD-SEQ-SA-NEXT: sll.w $a1, $a1, $a3 +; LD-SEQ-SA-NEXT: bstrpick.d $a2, $a2, 15, 0 +; LD-SEQ-SA-NEXT: sll.w $a2, $a2, $a3 +; LD-SEQ-SA-NEXT: .LBB25_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; LD-SEQ-SA-NEXT: and $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: bne $a5, $a1, .LBB25_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB25_1 Depth=1 +; LD-SEQ-SA-NEXT: andn $a5, $a3, $a4 +; LD-SEQ-SA-NEXT: or $a5, $a5, $a2 +; LD-SEQ-SA-NEXT: sc.w $a5, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a5, .LBB25_1 +; LD-SEQ-SA-NEXT: b .LBB25_4 +; LD-SEQ-SA-NEXT: .LBB25_3: +; LD-SEQ-SA-NEXT: .LBB25_4: +; LD-SEQ-SA-NEXT: and $a0, $a3, $a4 +; LD-SEQ-SA-NEXT: xor $a0, $a1, $a0 +; LD-SEQ-SA-NEXT: sltui $a0, $a0, 1 +; LD-SEQ-SA-NEXT: ret %tmp = cmpxchg ptr %ptr, i16 %cmp, i16 %val monotonic monotonic %res = extractvalue { i16, i1 } %tmp, 1 ret i1 %res } define i1 @cmpxchg_i32_monotonic_monotonic_reti1(ptr %ptr, i32 %cmp, i32 %val) nounwind { -; LA64-LABEL: cmpxchg_i32_monotonic_monotonic_reti1: -; LA64: # %bb.0: -; LA64-NEXT: addi.w $a1, $a1, 0 -; LA64-NEXT: .LBB26_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.w $a3, $a0, 0 -; LA64-NEXT: bne $a3, $a1, .LBB26_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB26_1 Depth=1 -; LA64-NEXT: move $a4, $a2 -; LA64-NEXT: sc.w $a4, $a0, 0 -; LA64-NEXT: beqz $a4, .LBB26_1 -; LA64-NEXT: b .LBB26_4 -; LA64-NEXT: .LBB26_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB26_4: -; LA64-NEXT: xor $a0, $a3, $a1 -; LA64-NEXT: sltui $a0, $a0, 1 -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i32_monotonic_monotonic_reti1: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: addi.w $a1, $a1, 0 +; NO-LD-SEQ-SA-NEXT: .LBB26_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB26_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB26_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: move $a4, $a2 +; NO-LD-SEQ-SA-NEXT: sc.w $a4, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a4, .LBB26_1 +; NO-LD-SEQ-SA-NEXT: b .LBB26_4 +; NO-LD-SEQ-SA-NEXT: .LBB26_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB26_4: +; NO-LD-SEQ-SA-NEXT: xor $a0, $a3, $a1 +; NO-LD-SEQ-SA-NEXT: sltui $a0, $a0, 1 +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i32_monotonic_monotonic_reti1: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: addi.w $a1, $a1, 0 +; LD-SEQ-SA-NEXT: .LBB26_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.w $a3, $a0, 0 +; LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB26_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB26_1 Depth=1 +; LD-SEQ-SA-NEXT: move $a4, $a2 +; LD-SEQ-SA-NEXT: sc.w $a4, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a4, .LBB26_1 +; LD-SEQ-SA-NEXT: b .LBB26_4 +; LD-SEQ-SA-NEXT: .LBB26_3: +; LD-SEQ-SA-NEXT: .LBB26_4: +; LD-SEQ-SA-NEXT: xor $a0, $a3, $a1 +; LD-SEQ-SA-NEXT: sltui $a0, $a0, 1 +; LD-SEQ-SA-NEXT: ret %tmp = cmpxchg ptr %ptr, i32 %cmp, i32 %val monotonic monotonic %res = extractvalue { i32, i1 } %tmp, 1 ret i1 %res } define i1 @cmpxchg_i64_monotonic_monotonic_reti1(ptr %ptr, i64 %cmp, i64 %val) nounwind { -; LA64-LABEL: cmpxchg_i64_monotonic_monotonic_reti1: -; LA64: # %bb.0: -; LA64-NEXT: .LBB27_1: # =>This Inner Loop Header: Depth=1 -; LA64-NEXT: ll.d $a3, $a0, 0 -; LA64-NEXT: bne $a3, $a1, .LBB27_3 -; LA64-NEXT: # %bb.2: # in Loop: Header=BB27_1 Depth=1 -; LA64-NEXT: move $a4, $a2 -; LA64-NEXT: sc.d $a4, $a0, 0 -; LA64-NEXT: beqz $a4, .LBB27_1 -; LA64-NEXT: b .LBB27_4 -; LA64-NEXT: .LBB27_3: -; LA64-NEXT: dbar 1792 -; LA64-NEXT: .LBB27_4: -; LA64-NEXT: xor $a0, $a3, $a1 -; LA64-NEXT: sltui $a0, $a0, 1 -; LA64-NEXT: ret +; NO-LD-SEQ-SA-LABEL: cmpxchg_i64_monotonic_monotonic_reti1: +; NO-LD-SEQ-SA: # %bb.0: +; NO-LD-SEQ-SA-NEXT: .LBB27_1: # =>This Inner Loop Header: Depth=1 +; NO-LD-SEQ-SA-NEXT: ll.d $a3, $a0, 0 +; NO-LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB27_3 +; NO-LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB27_1 Depth=1 +; NO-LD-SEQ-SA-NEXT: move $a4, $a2 +; NO-LD-SEQ-SA-NEXT: sc.d $a4, $a0, 0 +; NO-LD-SEQ-SA-NEXT: beqz $a4, .LBB27_1 +; NO-LD-SEQ-SA-NEXT: b .LBB27_4 +; NO-LD-SEQ-SA-NEXT: .LBB27_3: +; NO-LD-SEQ-SA-NEXT: dbar 1792 +; NO-LD-SEQ-SA-NEXT: .LBB27_4: +; NO-LD-SEQ-SA-NEXT: xor $a0, $a3, $a1 +; NO-LD-SEQ-SA-NEXT: sltui $a0, $a0, 1 +; NO-LD-SEQ-SA-NEXT: ret +; +; LD-SEQ-SA-LABEL: cmpxchg_i64_monotonic_monotonic_reti1: +; LD-SEQ-SA: # %bb.0: +; LD-SEQ-SA-NEXT: .LBB27_1: # =>This Inner Loop Header: Depth=1 +; LD-SEQ-SA-NEXT: ll.d $a3, $a0, 0 +; LD-SEQ-SA-NEXT: bne $a3, $a1, .LBB27_3 +; LD-SEQ-SA-NEXT: # %bb.2: # in Loop: Header=BB27_1 Depth=1 +; LD-SEQ-SA-NEXT: move $a4, $a2 +; LD-SEQ-SA-NEXT: sc.d $a4, $a0, 0 +; LD-SEQ-SA-NEXT: beqz $a4, .LBB27_1 +; LD-SEQ-SA-NEXT: b .LBB27_4 +; LD-SEQ-SA-NEXT: .LBB27_3: +; LD-SEQ-SA-NEXT: .LBB27_4: +; LD-SEQ-SA-NEXT: xor $a0, $a3, $a1 +; LD-SEQ-SA-NEXT: sltui $a0, $a0, 1 +; LD-SEQ-SA-NEXT: ret %tmp = cmpxchg ptr %ptr, i64 %cmp, i64 %val monotonic monotonic %res = extractvalue { i64, i1 } %tmp, 1 ret i1 %res diff --git a/llvm/test/CodeGen/LoongArch/machinelicm-address-pseudos.ll b/llvm/test/CodeGen/LoongArch/machinelicm-address-pseudos.ll index ba72ef5bd7ba4..fc0c7ad1686ee 100644 --- a/llvm/test/CodeGen/LoongArch/machinelicm-address-pseudos.ll +++ b/llvm/test/CodeGen/LoongArch/machinelicm-address-pseudos.ll @@ -279,11 +279,11 @@ define void @test_la_tls_ld(i32 signext %n) { ; LA64LARGE-NEXT: .LBB3_1: # %loop ; LA64LARGE-NEXT: # =>This Inner Loop Header: Depth=1 ; LA64LARGE-NEXT: move $a0, $s0 -; LA64LARGE-NEXT: pcalau12i $a1, %pc_hi20(__tls_get_addr) -; LA64LARGE-NEXT: addi.d $ra, $zero, %pc_lo12(__tls_get_addr) -; LA64LARGE-NEXT: lu32i.d $ra, %pc64_lo20(__tls_get_addr) -; LA64LARGE-NEXT: lu52i.d $ra, $ra, %pc64_hi12(__tls_get_addr) -; LA64LARGE-NEXT: add.d $ra, $ra, $a1 +; LA64LARGE-NEXT: pcalau12i $a1, %got_pc_hi20(__tls_get_addr) +; LA64LARGE-NEXT: addi.d $ra, $zero, %got_pc_lo12(__tls_get_addr) +; LA64LARGE-NEXT: lu32i.d $ra, %got64_pc_lo20(__tls_get_addr) +; LA64LARGE-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(__tls_get_addr) +; LA64LARGE-NEXT: ldx.d $ra, $ra, $a1 ; LA64LARGE-NEXT: jirl $ra, $ra, 0 ; LA64LARGE-NEXT: ld.w $zero, $a0, 0 ; LA64LARGE-NEXT: addi.w $s1, $s1, 1 @@ -445,11 +445,11 @@ define void @test_la_tls_gd(i32 signext %n) nounwind { ; LA64LARGE-NEXT: .LBB5_1: # %loop ; LA64LARGE-NEXT: # =>This Inner Loop Header: Depth=1 ; LA64LARGE-NEXT: move $a0, $s0 -; LA64LARGE-NEXT: pcalau12i $a1, %pc_hi20(__tls_get_addr) -; LA64LARGE-NEXT: addi.d $ra, $zero, %pc_lo12(__tls_get_addr) -; LA64LARGE-NEXT: lu32i.d $ra, %pc64_lo20(__tls_get_addr) -; LA64LARGE-NEXT: lu52i.d $ra, $ra, %pc64_hi12(__tls_get_addr) -; LA64LARGE-NEXT: add.d $ra, $ra, $a1 +; LA64LARGE-NEXT: pcalau12i $a1, %got_pc_hi20(__tls_get_addr) +; LA64LARGE-NEXT: addi.d $ra, $zero, %got_pc_lo12(__tls_get_addr) +; LA64LARGE-NEXT: lu32i.d $ra, %got64_pc_lo20(__tls_get_addr) +; LA64LARGE-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(__tls_get_addr) +; LA64LARGE-NEXT: ldx.d $ra, $ra, $a1 ; LA64LARGE-NEXT: jirl $ra, $ra, 0 ; LA64LARGE-NEXT: ld.w $zero, $a0, 0 ; LA64LARGE-NEXT: addi.w $s1, $s1, 1 diff --git a/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll b/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll index a7873f466bee3..c7de3dcf2ecfd 100644 --- a/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll +++ b/llvm/test/CodeGen/LoongArch/psabi-restricted-scheduling.ll @@ -102,11 +102,11 @@ define void @foo() nounwind { ; LARGE_NO_SCH-NEXT: lu32i.d $a1, %got64_pc_lo20(gd) ; LARGE_NO_SCH-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(gd) ; LARGE_NO_SCH-NEXT: add.d $a0, $a1, $a0 -; LARGE_NO_SCH-NEXT: pcalau12i $a1, %pc_hi20(__tls_get_addr) -; LARGE_NO_SCH-NEXT: addi.d $ra, $zero, %pc_lo12(__tls_get_addr) -; LARGE_NO_SCH-NEXT: lu32i.d $ra, %pc64_lo20(__tls_get_addr) -; LARGE_NO_SCH-NEXT: lu52i.d $ra, $ra, %pc64_hi12(__tls_get_addr) -; LARGE_NO_SCH-NEXT: add.d $ra, $ra, $a1 +; LARGE_NO_SCH-NEXT: pcalau12i $a1, %got_pc_hi20(__tls_get_addr) +; LARGE_NO_SCH-NEXT: addi.d $ra, $zero, %got_pc_lo12(__tls_get_addr) +; LARGE_NO_SCH-NEXT: lu32i.d $ra, %got64_pc_lo20(__tls_get_addr) +; LARGE_NO_SCH-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(__tls_get_addr) +; LARGE_NO_SCH-NEXT: ldx.d $ra, $ra, $a1 ; LARGE_NO_SCH-NEXT: jirl $ra, $ra, 0 ; LARGE_NO_SCH-NEXT: ld.d $zero, $a0, 0 ; LARGE_NO_SCH-NEXT: pcalau12i $a0, %ld_pc_hi20(ld) @@ -114,11 +114,11 @@ define void @foo() nounwind { ; LARGE_NO_SCH-NEXT: lu32i.d $a1, %got64_pc_lo20(ld) ; LARGE_NO_SCH-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(ld) ; LARGE_NO_SCH-NEXT: add.d $a0, $a1, $a0 -; LARGE_NO_SCH-NEXT: pcalau12i $a1, %pc_hi20(__tls_get_addr) -; LARGE_NO_SCH-NEXT: addi.d $ra, $zero, %pc_lo12(__tls_get_addr) -; LARGE_NO_SCH-NEXT: lu32i.d $ra, %pc64_lo20(__tls_get_addr) -; LARGE_NO_SCH-NEXT: lu52i.d $ra, $ra, %pc64_hi12(__tls_get_addr) -; LARGE_NO_SCH-NEXT: add.d $ra, $ra, $a1 +; LARGE_NO_SCH-NEXT: pcalau12i $a1, %got_pc_hi20(__tls_get_addr) +; LARGE_NO_SCH-NEXT: addi.d $ra, $zero, %got_pc_lo12(__tls_get_addr) +; LARGE_NO_SCH-NEXT: lu32i.d $ra, %got64_pc_lo20(__tls_get_addr) +; LARGE_NO_SCH-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(__tls_get_addr) +; LARGE_NO_SCH-NEXT: ldx.d $ra, $ra, $a1 ; LARGE_NO_SCH-NEXT: jirl $ra, $ra, 0 ; LARGE_NO_SCH-NEXT: ld.d $zero, $a0, 0 ; LARGE_NO_SCH-NEXT: pcalau12i $a0, %ie_pc_hi20(ie) @@ -158,11 +158,11 @@ define void @foo() nounwind { ; LARGE_SCH-NEXT: lu32i.d $a1, %got64_pc_lo20(gd) ; LARGE_SCH-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(gd) ; LARGE_SCH-NEXT: add.d $a0, $a1, $a0 -; LARGE_SCH-NEXT: pcalau12i $a1, %pc_hi20(__tls_get_addr) -; LARGE_SCH-NEXT: addi.d $ra, $zero, %pc_lo12(__tls_get_addr) -; LARGE_SCH-NEXT: lu32i.d $ra, %pc64_lo20(__tls_get_addr) -; LARGE_SCH-NEXT: lu52i.d $ra, $ra, %pc64_hi12(__tls_get_addr) -; LARGE_SCH-NEXT: add.d $ra, $ra, $a1 +; LARGE_SCH-NEXT: pcalau12i $a1, %got_pc_hi20(__tls_get_addr) +; LARGE_SCH-NEXT: addi.d $ra, $zero, %got_pc_lo12(__tls_get_addr) +; LARGE_SCH-NEXT: lu32i.d $ra, %got64_pc_lo20(__tls_get_addr) +; LARGE_SCH-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(__tls_get_addr) +; LARGE_SCH-NEXT: ldx.d $ra, $ra, $a1 ; LARGE_SCH-NEXT: jirl $ra, $ra, 0 ; LARGE_SCH-NEXT: ld.d $zero, $a0, 0 ; LARGE_SCH-NEXT: pcalau12i $a0, %ld_pc_hi20(ld) @@ -170,11 +170,11 @@ define void @foo() nounwind { ; LARGE_SCH-NEXT: lu32i.d $a1, %got64_pc_lo20(ld) ; LARGE_SCH-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(ld) ; LARGE_SCH-NEXT: add.d $a0, $a1, $a0 -; LARGE_SCH-NEXT: pcalau12i $a1, %pc_hi20(__tls_get_addr) -; LARGE_SCH-NEXT: addi.d $ra, $zero, %pc_lo12(__tls_get_addr) -; LARGE_SCH-NEXT: lu32i.d $ra, %pc64_lo20(__tls_get_addr) -; LARGE_SCH-NEXT: lu52i.d $ra, $ra, %pc64_hi12(__tls_get_addr) -; LARGE_SCH-NEXT: add.d $ra, $ra, $a1 +; LARGE_SCH-NEXT: pcalau12i $a1, %got_pc_hi20(__tls_get_addr) +; LARGE_SCH-NEXT: addi.d $ra, $zero, %got_pc_lo12(__tls_get_addr) +; LARGE_SCH-NEXT: lu32i.d $ra, %got64_pc_lo20(__tls_get_addr) +; LARGE_SCH-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(__tls_get_addr) +; LARGE_SCH-NEXT: ldx.d $ra, $ra, $a1 ; LARGE_SCH-NEXT: jirl $ra, $ra, 0 ; LARGE_SCH-NEXT: ld.d $zero, $a0, 0 ; LARGE_SCH-NEXT: pcalau12i $a0, %ie_pc_hi20(ie) diff --git a/llvm/test/CodeGen/LoongArch/tls-models.ll b/llvm/test/CodeGen/LoongArch/tls-models.ll index 4ac6201fdd9d4..dbd7bf6a81269 100644 --- a/llvm/test/CodeGen/LoongArch/tls-models.ll +++ b/llvm/test/CodeGen/LoongArch/tls-models.ll @@ -55,11 +55,11 @@ define ptr @f1() nounwind { ; LA64LARGEPIC-NEXT: lu32i.d $a1, %got64_pc_lo20(unspecified) ; LA64LARGEPIC-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(unspecified) ; LA64LARGEPIC-NEXT: add.d $a0, $a1, $a0 -; LA64LARGEPIC-NEXT: pcalau12i $a1, %pc_hi20(__tls_get_addr) -; LA64LARGEPIC-NEXT: addi.d $ra, $zero, %pc_lo12(__tls_get_addr) -; LA64LARGEPIC-NEXT: lu32i.d $ra, %pc64_lo20(__tls_get_addr) -; LA64LARGEPIC-NEXT: lu52i.d $ra, $ra, %pc64_hi12(__tls_get_addr) -; LA64LARGEPIC-NEXT: add.d $ra, $ra, $a1 +; LA64LARGEPIC-NEXT: pcalau12i $a1, %got_pc_hi20(__tls_get_addr) +; LA64LARGEPIC-NEXT: addi.d $ra, $zero, %got_pc_lo12(__tls_get_addr) +; LA64LARGEPIC-NEXT: lu32i.d $ra, %got64_pc_lo20(__tls_get_addr) +; LA64LARGEPIC-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(__tls_get_addr) +; LA64LARGEPIC-NEXT: ldx.d $ra, $ra, $a1 ; LA64LARGEPIC-NEXT: jirl $ra, $ra, 0 ; LA64LARGEPIC-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload ; LA64LARGEPIC-NEXT: addi.d $sp, $sp, 16 @@ -168,11 +168,11 @@ define ptr @f2() nounwind { ; LA64LARGEPIC-NEXT: lu32i.d $a1, %got64_pc_lo20(ld) ; LA64LARGEPIC-NEXT: lu52i.d $a1, $a1, %got64_pc_hi12(ld) ; LA64LARGEPIC-NEXT: add.d $a0, $a1, $a0 -; LA64LARGEPIC-NEXT: pcalau12i $a1, %pc_hi20(__tls_get_addr) -; LA64LARGEPIC-NEXT: addi.d $ra, $zero, %pc_lo12(__tls_get_addr) -; LA64LARGEPIC-NEXT: lu32i.d $ra, %pc64_lo20(__tls_get_addr) -; LA64LARGEPIC-NEXT: lu52i.d $ra, $ra, %pc64_hi12(__tls_get_addr) -; LA64LARGEPIC-NEXT: add.d $ra, $ra, $a1 +; LA64LARGEPIC-NEXT: pcalau12i $a1, %got_pc_hi20(__tls_get_addr) +; LA64LARGEPIC-NEXT: addi.d $ra, $zero, %got_pc_lo12(__tls_get_addr) +; LA64LARGEPIC-NEXT: lu32i.d $ra, %got64_pc_lo20(__tls_get_addr) +; LA64LARGEPIC-NEXT: lu52i.d $ra, $ra, %got64_pc_hi12(__tls_get_addr) +; LA64LARGEPIC-NEXT: ldx.d $ra, $ra, $a1 ; LA64LARGEPIC-NEXT: jirl $ra, $ra, 0 ; LA64LARGEPIC-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload ; LA64LARGEPIC-NEXT: addi.d $sp, $sp, 16 diff --git a/llvm/test/CodeGen/Mips/lcb5.ll b/llvm/test/CodeGen/Mips/lcb5.ll index f320f6fc5660c..bb059f1ee8453 100644 --- a/llvm/test/CodeGen/Mips/lcb5.ll +++ b/llvm/test/CodeGen/Mips/lcb5.ll @@ -186,7 +186,7 @@ if.end: ; preds = %if.then, %entry } ; ci: .ent z3 -; ci: bteqz $BB6_3 +; ci: bteqz $BB6_2 ; ci: .end z3 ; Function Attrs: nounwind optsize @@ -210,7 +210,7 @@ if.end: ; preds = %if.then, %entry ; ci: .ent z4 ; ci: btnez $BB7_1 # 16 bit inst -; ci: jal $BB7_3 # branch +; ci: jal $BB7_2 # branch ; ci: nop ; ci: $BB7_1: ; ci: .p2align 2 diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/atomic-load-store.ll b/llvm/test/CodeGen/RISCV/GlobalISel/atomic-load-store.ll new file mode 100644 index 0000000000000..9a1ed8f115b35 --- /dev/null +++ b/llvm/test/CodeGen/RISCV/GlobalISel/atomic-load-store.ll @@ -0,0 +1,1678 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv32 -global-isel -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefix=RV32I %s +; RUN: llc -mtriple=riscv32 -global-isel -mattr=+a,+no-trailing-seq-cst-fence \ +; RUN: -verify-machineinstrs < %s | FileCheck -check-prefixes=RV32IA,RV32IA-WMO %s +; RUN: llc -mtriple=riscv32 -global-isel -mattr=+a,+ztso,+no-trailing-seq-cst-fence \ +; RUN: -verify-machineinstrs < %s | FileCheck -check-prefixes=RV32IA,RV32IA-TSO %s +; RUN: llc -mtriple=riscv64 -global-isel -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefix=RV64I %s +; RUN: llc -mtriple=riscv64 -global-isel -mattr=+a,+no-trailing-seq-cst-fence \ +; RUN: -verify-machineinstrs < %s | FileCheck -check-prefixes=RV64IA,RV64IA-WMO %s +; RUN: llc -mtriple=riscv64 -global-isel -mattr=+a,+ztso,+no-trailing-seq-cst-fence \ +; RUN: -verify-machineinstrs < %s | FileCheck -check-prefixes=RV64IA,RV64IA-TSO %s + + +; RUN: llc -mtriple=riscv32 -global-isel -mattr=+a -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefixes=RV32IA,RV32IA-WMO-TRAILING-FENCE %s +; RUN: llc -mtriple=riscv32 -global-isel -mattr=+a,+ztso -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefixes=RV32IA,RV32IA-TSO-TRAILING-FENCE %s + +; RUN: llc -mtriple=riscv64 -global-isel -mattr=+a -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefixes=RV64IA,RV64IA-WMO-TRAILING-FENCE %s +; RUN: llc -mtriple=riscv64 -global-isel -mattr=+a,+ztso -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefixes=RV64IA,RV64IA-TSO-TRAILING-FENCE %s + + +define i8 @atomic_load_i8_unordered(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i8_unordered: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 0 +; RV32I-NEXT: call __atomic_load_1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i8_unordered: +; RV32IA: # %bb.0: +; RV32IA-NEXT: lb a0, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i8_unordered: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 0 +; RV64I-NEXT: call __atomic_load_1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_load_i8_unordered: +; RV64IA: # %bb.0: +; RV64IA-NEXT: lb a0, 0(a0) +; RV64IA-NEXT: ret + %1 = load atomic i8, ptr %a unordered, align 1 + ret i8 %1 +} + +define i8 @atomic_load_i8_monotonic(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i8_monotonic: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 0 +; RV32I-NEXT: call __atomic_load_1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i8_monotonic: +; RV32IA: # %bb.0: +; RV32IA-NEXT: lb a0, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i8_monotonic: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 0 +; RV64I-NEXT: call __atomic_load_1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_load_i8_monotonic: +; RV64IA: # %bb.0: +; RV64IA-NEXT: lb a0, 0(a0) +; RV64IA-NEXT: ret + %1 = load atomic i8, ptr %a monotonic, align 1 + ret i8 %1 +} + +define i8 @atomic_load_i8_acquire(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i8_acquire: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 2 +; RV32I-NEXT: call __atomic_load_1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_load_i8_acquire: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: lb a0, 0(a0) +; RV32IA-WMO-NEXT: fence r, rw +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_load_i8_acquire: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: lb a0, 0(a0) +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_load_i8_acquire: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 2 +; RV64I-NEXT: call __atomic_load_1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_load_i8_acquire: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: lb a0, 0(a0) +; RV64IA-WMO-NEXT: fence r, rw +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_load_i8_acquire: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: lb a0, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i8_acquire: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: lb a0, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i8_acquire: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: lb a0, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i8_acquire: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: lb a0, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i8_acquire: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: lb a0, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + %1 = load atomic i8, ptr %a acquire, align 1 + ret i8 %1 +} + +define i8 @atomic_load_i8_seq_cst(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i8_seq_cst: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 5 +; RV32I-NEXT: call __atomic_load_1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_load_i8_seq_cst: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: fence rw, rw +; RV32IA-WMO-NEXT: lb a0, 0(a0) +; RV32IA-WMO-NEXT: fence r, rw +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_load_i8_seq_cst: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: fence rw, rw +; RV32IA-TSO-NEXT: lb a0, 0(a0) +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_load_i8_seq_cst: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 5 +; RV64I-NEXT: call __atomic_load_1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_load_i8_seq_cst: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, rw +; RV64IA-WMO-NEXT: lb a0, 0(a0) +; RV64IA-WMO-NEXT: fence r, rw +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_load_i8_seq_cst: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: fence rw, rw +; RV64IA-TSO-NEXT: lb a0, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i8_seq_cst: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: lb a0, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i8_seq_cst: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-TSO-TRAILING-FENCE-NEXT: lb a0, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i8_seq_cst: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: lb a0, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i8_seq_cst: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-TSO-TRAILING-FENCE-NEXT: lb a0, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + %1 = load atomic i8, ptr %a seq_cst, align 1 + ret i8 %1 +} + +define i16 @atomic_load_i16_unordered(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i16_unordered: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 0 +; RV32I-NEXT: call __atomic_load_2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i16_unordered: +; RV32IA: # %bb.0: +; RV32IA-NEXT: lh a0, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i16_unordered: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 0 +; RV64I-NEXT: call __atomic_load_2 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_load_i16_unordered: +; RV64IA: # %bb.0: +; RV64IA-NEXT: lh a0, 0(a0) +; RV64IA-NEXT: ret + %1 = load atomic i16, ptr %a unordered, align 2 + ret i16 %1 +} + +define i16 @atomic_load_i16_monotonic(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i16_monotonic: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 0 +; RV32I-NEXT: call __atomic_load_2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i16_monotonic: +; RV32IA: # %bb.0: +; RV32IA-NEXT: lh a0, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i16_monotonic: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 0 +; RV64I-NEXT: call __atomic_load_2 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_load_i16_monotonic: +; RV64IA: # %bb.0: +; RV64IA-NEXT: lh a0, 0(a0) +; RV64IA-NEXT: ret + %1 = load atomic i16, ptr %a monotonic, align 2 + ret i16 %1 +} + +define i16 @atomic_load_i16_acquire(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i16_acquire: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 2 +; RV32I-NEXT: call __atomic_load_2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_load_i16_acquire: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: lh a0, 0(a0) +; RV32IA-WMO-NEXT: fence r, rw +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_load_i16_acquire: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: lh a0, 0(a0) +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_load_i16_acquire: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 2 +; RV64I-NEXT: call __atomic_load_2 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_load_i16_acquire: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: lh a0, 0(a0) +; RV64IA-WMO-NEXT: fence r, rw +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_load_i16_acquire: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: lh a0, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i16_acquire: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: lh a0, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i16_acquire: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: lh a0, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i16_acquire: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: lh a0, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i16_acquire: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: lh a0, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + %1 = load atomic i16, ptr %a acquire, align 2 + ret i16 %1 +} + +define i16 @atomic_load_i16_seq_cst(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i16_seq_cst: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 5 +; RV32I-NEXT: call __atomic_load_2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_load_i16_seq_cst: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: fence rw, rw +; RV32IA-WMO-NEXT: lh a0, 0(a0) +; RV32IA-WMO-NEXT: fence r, rw +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_load_i16_seq_cst: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: fence rw, rw +; RV32IA-TSO-NEXT: lh a0, 0(a0) +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_load_i16_seq_cst: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 5 +; RV64I-NEXT: call __atomic_load_2 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_load_i16_seq_cst: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, rw +; RV64IA-WMO-NEXT: lh a0, 0(a0) +; RV64IA-WMO-NEXT: fence r, rw +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_load_i16_seq_cst: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: fence rw, rw +; RV64IA-TSO-NEXT: lh a0, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i16_seq_cst: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: lh a0, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i16_seq_cst: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-TSO-TRAILING-FENCE-NEXT: lh a0, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i16_seq_cst: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: lh a0, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i16_seq_cst: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-TSO-TRAILING-FENCE-NEXT: lh a0, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + %1 = load atomic i16, ptr %a seq_cst, align 2 + ret i16 %1 +} + +define i32 @atomic_load_i32_unordered(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i32_unordered: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 0 +; RV32I-NEXT: call __atomic_load_4 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i32_unordered: +; RV32IA: # %bb.0: +; RV32IA-NEXT: lw a0, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i32_unordered: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 0 +; RV64I-NEXT: call __atomic_load_4 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_load_i32_unordered: +; RV64IA: # %bb.0: +; RV64IA-NEXT: lw a0, 0(a0) +; RV64IA-NEXT: ret + %1 = load atomic i32, ptr %a unordered, align 4 + ret i32 %1 +} + +define i32 @atomic_load_i32_monotonic(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i32_monotonic: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 0 +; RV32I-NEXT: call __atomic_load_4 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i32_monotonic: +; RV32IA: # %bb.0: +; RV32IA-NEXT: lw a0, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i32_monotonic: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 0 +; RV64I-NEXT: call __atomic_load_4 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_load_i32_monotonic: +; RV64IA: # %bb.0: +; RV64IA-NEXT: lw a0, 0(a0) +; RV64IA-NEXT: ret + %1 = load atomic i32, ptr %a monotonic, align 4 + ret i32 %1 +} + +define i32 @atomic_load_i32_acquire(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i32_acquire: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 2 +; RV32I-NEXT: call __atomic_load_4 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_load_i32_acquire: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: lw a0, 0(a0) +; RV32IA-WMO-NEXT: fence r, rw +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_load_i32_acquire: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: lw a0, 0(a0) +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_load_i32_acquire: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 2 +; RV64I-NEXT: call __atomic_load_4 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_load_i32_acquire: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: lw a0, 0(a0) +; RV64IA-WMO-NEXT: fence r, rw +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_load_i32_acquire: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: lw a0, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i32_acquire: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: lw a0, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i32_acquire: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: lw a0, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i32_acquire: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: lw a0, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i32_acquire: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: lw a0, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + %1 = load atomic i32, ptr %a acquire, align 4 + ret i32 %1 +} + +define i32 @atomic_load_i32_seq_cst(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i32_seq_cst: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 5 +; RV32I-NEXT: call __atomic_load_4 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_load_i32_seq_cst: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: fence rw, rw +; RV32IA-WMO-NEXT: lw a0, 0(a0) +; RV32IA-WMO-NEXT: fence r, rw +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_load_i32_seq_cst: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: fence rw, rw +; RV32IA-TSO-NEXT: lw a0, 0(a0) +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_load_i32_seq_cst: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 5 +; RV64I-NEXT: call __atomic_load_4 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_load_i32_seq_cst: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, rw +; RV64IA-WMO-NEXT: lw a0, 0(a0) +; RV64IA-WMO-NEXT: fence r, rw +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_load_i32_seq_cst: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: fence rw, rw +; RV64IA-TSO-NEXT: lw a0, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i32_seq_cst: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: lw a0, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i32_seq_cst: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-TSO-TRAILING-FENCE-NEXT: lw a0, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i32_seq_cst: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: lw a0, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i32_seq_cst: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-TSO-TRAILING-FENCE-NEXT: lw a0, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + %1 = load atomic i32, ptr %a seq_cst, align 4 + ret i32 %1 +} + +define i64 @atomic_load_i64_unordered(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i64_unordered: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 0 +; RV32I-NEXT: call __atomic_load_8 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i64_unordered: +; RV32IA: # %bb.0: +; RV32IA-NEXT: addi sp, sp, -16 +; RV32IA-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IA-NEXT: li a1, 0 +; RV32IA-NEXT: call __atomic_load_8 +; RV32IA-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IA-NEXT: addi sp, sp, 16 +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i64_unordered: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 0 +; RV64I-NEXT: call __atomic_load_8 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_load_i64_unordered: +; RV64IA: # %bb.0: +; RV64IA-NEXT: ld a0, 0(a0) +; RV64IA-NEXT: ret + %1 = load atomic i64, ptr %a unordered, align 8 + ret i64 %1 +} + +define i64 @atomic_load_i64_monotonic(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i64_monotonic: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 0 +; RV32I-NEXT: call __atomic_load_8 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i64_monotonic: +; RV32IA: # %bb.0: +; RV32IA-NEXT: addi sp, sp, -16 +; RV32IA-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IA-NEXT: li a1, 0 +; RV32IA-NEXT: call __atomic_load_8 +; RV32IA-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IA-NEXT: addi sp, sp, 16 +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i64_monotonic: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 0 +; RV64I-NEXT: call __atomic_load_8 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_load_i64_monotonic: +; RV64IA: # %bb.0: +; RV64IA-NEXT: ld a0, 0(a0) +; RV64IA-NEXT: ret + %1 = load atomic i64, ptr %a monotonic, align 8 + ret i64 %1 +} + +define i64 @atomic_load_i64_acquire(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i64_acquire: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 2 +; RV32I-NEXT: call __atomic_load_8 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i64_acquire: +; RV32IA: # %bb.0: +; RV32IA-NEXT: addi sp, sp, -16 +; RV32IA-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IA-NEXT: li a1, 2 +; RV32IA-NEXT: call __atomic_load_8 +; RV32IA-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IA-NEXT: addi sp, sp, 16 +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i64_acquire: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 2 +; RV64I-NEXT: call __atomic_load_8 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_load_i64_acquire: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: ld a0, 0(a0) +; RV64IA-WMO-NEXT: fence r, rw +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_load_i64_acquire: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: ld a0, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i64_acquire: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: ld a0, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i64_acquire: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: ld a0, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + %1 = load atomic i64, ptr %a acquire, align 8 + ret i64 %1 +} + +define i64 @atomic_load_i64_seq_cst(ptr %a) nounwind { +; RV32I-LABEL: atomic_load_i64_seq_cst: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a1, 5 +; RV32I-NEXT: call __atomic_load_8 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_load_i64_seq_cst: +; RV32IA: # %bb.0: +; RV32IA-NEXT: addi sp, sp, -16 +; RV32IA-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IA-NEXT: li a1, 5 +; RV32IA-NEXT: call __atomic_load_8 +; RV32IA-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IA-NEXT: addi sp, sp, 16 +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_load_i64_seq_cst: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a1, 5 +; RV64I-NEXT: call __atomic_load_8 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_load_i64_seq_cst: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, rw +; RV64IA-WMO-NEXT: ld a0, 0(a0) +; RV64IA-WMO-NEXT: fence r, rw +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_load_i64_seq_cst: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: fence rw, rw +; RV64IA-TSO-NEXT: ld a0, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_load_i64_seq_cst: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ld a0, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence r, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_load_i64_seq_cst: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-TSO-TRAILING-FENCE-NEXT: ld a0, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + %1 = load atomic i64, ptr %a seq_cst, align 8 + ret i64 %1 +} + +define void @atomic_store_i8_unordered(ptr %a, i8 %b) nounwind { +; RV32I-LABEL: atomic_store_i8_unordered: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 0 +; RV32I-NEXT: call __atomic_store_1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i8_unordered: +; RV32IA: # %bb.0: +; RV32IA-NEXT: sb a1, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i8_unordered: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 0 +; RV64I-NEXT: call __atomic_store_1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_store_i8_unordered: +; RV64IA: # %bb.0: +; RV64IA-NEXT: sb a1, 0(a0) +; RV64IA-NEXT: ret + store atomic i8 %b, ptr %a unordered, align 1 + ret void +} + +define void @atomic_store_i8_monotonic(ptr %a, i8 %b) nounwind { +; RV32I-LABEL: atomic_store_i8_monotonic: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 0 +; RV32I-NEXT: call __atomic_store_1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i8_monotonic: +; RV32IA: # %bb.0: +; RV32IA-NEXT: sb a1, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i8_monotonic: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 0 +; RV64I-NEXT: call __atomic_store_1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_store_i8_monotonic: +; RV64IA: # %bb.0: +; RV64IA-NEXT: sb a1, 0(a0) +; RV64IA-NEXT: ret + store atomic i8 %b, ptr %a monotonic, align 1 + ret void +} + +define void @atomic_store_i8_release(ptr %a, i8 %b) nounwind { +; RV32I-LABEL: atomic_store_i8_release: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 3 +; RV32I-NEXT: call __atomic_store_1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_store_i8_release: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: fence rw, w +; RV32IA-WMO-NEXT: sb a1, 0(a0) +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_store_i8_release: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: sb a1, 0(a0) +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_store_i8_release: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 3 +; RV64I-NEXT: call __atomic_store_1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_store_i8_release: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, w +; RV64IA-WMO-NEXT: sb a1, 0(a0) +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_store_i8_release: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: sb a1, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i8_release: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV32IA-WMO-TRAILING-FENCE-NEXT: sb a1, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i8_release: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: sb a1, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i8_release: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV64IA-WMO-TRAILING-FENCE-NEXT: sb a1, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i8_release: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: sb a1, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + store atomic i8 %b, ptr %a release, align 1 + ret void +} + +define void @atomic_store_i8_seq_cst(ptr %a, i8 %b) nounwind { +; RV32I-LABEL: atomic_store_i8_seq_cst: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 5 +; RV32I-NEXT: call __atomic_store_1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_store_i8_seq_cst: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: fence rw, w +; RV32IA-WMO-NEXT: sb a1, 0(a0) +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_store_i8_seq_cst: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: sb a1, 0(a0) +; RV32IA-TSO-NEXT: fence rw, rw +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_store_i8_seq_cst: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 5 +; RV64I-NEXT: call __atomic_store_1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_store_i8_seq_cst: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, w +; RV64IA-WMO-NEXT: sb a1, 0(a0) +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_store_i8_seq_cst: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: sb a1, 0(a0) +; RV64IA-TSO-NEXT: fence rw, rw +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i8_seq_cst: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV32IA-WMO-TRAILING-FENCE-NEXT: sb a1, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i8_seq_cst: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: sb a1, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i8_seq_cst: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV64IA-WMO-TRAILING-FENCE-NEXT: sb a1, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i8_seq_cst: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: sb a1, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + store atomic i8 %b, ptr %a seq_cst, align 1 + ret void +} + +define void @atomic_store_i16_unordered(ptr %a, i16 %b) nounwind { +; RV32I-LABEL: atomic_store_i16_unordered: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 0 +; RV32I-NEXT: call __atomic_store_2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i16_unordered: +; RV32IA: # %bb.0: +; RV32IA-NEXT: sh a1, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i16_unordered: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 0 +; RV64I-NEXT: call __atomic_store_2 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_store_i16_unordered: +; RV64IA: # %bb.0: +; RV64IA-NEXT: sh a1, 0(a0) +; RV64IA-NEXT: ret + store atomic i16 %b, ptr %a unordered, align 2 + ret void +} + +define void @atomic_store_i16_monotonic(ptr %a, i16 %b) nounwind { +; RV32I-LABEL: atomic_store_i16_monotonic: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 0 +; RV32I-NEXT: call __atomic_store_2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i16_monotonic: +; RV32IA: # %bb.0: +; RV32IA-NEXT: sh a1, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i16_monotonic: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 0 +; RV64I-NEXT: call __atomic_store_2 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_store_i16_monotonic: +; RV64IA: # %bb.0: +; RV64IA-NEXT: sh a1, 0(a0) +; RV64IA-NEXT: ret + store atomic i16 %b, ptr %a monotonic, align 2 + ret void +} + +define void @atomic_store_i16_release(ptr %a, i16 %b) nounwind { +; RV32I-LABEL: atomic_store_i16_release: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 3 +; RV32I-NEXT: call __atomic_store_2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_store_i16_release: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: fence rw, w +; RV32IA-WMO-NEXT: sh a1, 0(a0) +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_store_i16_release: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: sh a1, 0(a0) +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_store_i16_release: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 3 +; RV64I-NEXT: call __atomic_store_2 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_store_i16_release: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, w +; RV64IA-WMO-NEXT: sh a1, 0(a0) +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_store_i16_release: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: sh a1, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i16_release: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV32IA-WMO-TRAILING-FENCE-NEXT: sh a1, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i16_release: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: sh a1, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i16_release: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV64IA-WMO-TRAILING-FENCE-NEXT: sh a1, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i16_release: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: sh a1, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + store atomic i16 %b, ptr %a release, align 2 + ret void +} + +define void @atomic_store_i16_seq_cst(ptr %a, i16 %b) nounwind { +; RV32I-LABEL: atomic_store_i16_seq_cst: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 5 +; RV32I-NEXT: call __atomic_store_2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_store_i16_seq_cst: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: fence rw, w +; RV32IA-WMO-NEXT: sh a1, 0(a0) +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_store_i16_seq_cst: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: sh a1, 0(a0) +; RV32IA-TSO-NEXT: fence rw, rw +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_store_i16_seq_cst: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 5 +; RV64I-NEXT: call __atomic_store_2 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_store_i16_seq_cst: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, w +; RV64IA-WMO-NEXT: sh a1, 0(a0) +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_store_i16_seq_cst: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: sh a1, 0(a0) +; RV64IA-TSO-NEXT: fence rw, rw +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i16_seq_cst: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV32IA-WMO-TRAILING-FENCE-NEXT: sh a1, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i16_seq_cst: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: sh a1, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i16_seq_cst: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV64IA-WMO-TRAILING-FENCE-NEXT: sh a1, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i16_seq_cst: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: sh a1, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + store atomic i16 %b, ptr %a seq_cst, align 2 + ret void +} + +define void @atomic_store_i32_unordered(ptr %a, i32 %b) nounwind { +; RV32I-LABEL: atomic_store_i32_unordered: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 0 +; RV32I-NEXT: call __atomic_store_4 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i32_unordered: +; RV32IA: # %bb.0: +; RV32IA-NEXT: sw a1, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i32_unordered: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 0 +; RV64I-NEXT: call __atomic_store_4 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_store_i32_unordered: +; RV64IA: # %bb.0: +; RV64IA-NEXT: sw a1, 0(a0) +; RV64IA-NEXT: ret + store atomic i32 %b, ptr %a unordered, align 4 + ret void +} + +define void @atomic_store_i32_monotonic(ptr %a, i32 %b) nounwind { +; RV32I-LABEL: atomic_store_i32_monotonic: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 0 +; RV32I-NEXT: call __atomic_store_4 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i32_monotonic: +; RV32IA: # %bb.0: +; RV32IA-NEXT: sw a1, 0(a0) +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i32_monotonic: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 0 +; RV64I-NEXT: call __atomic_store_4 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_store_i32_monotonic: +; RV64IA: # %bb.0: +; RV64IA-NEXT: sw a1, 0(a0) +; RV64IA-NEXT: ret + store atomic i32 %b, ptr %a monotonic, align 4 + ret void +} + +define void @atomic_store_i32_release(ptr %a, i32 %b) nounwind { +; RV32I-LABEL: atomic_store_i32_release: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 3 +; RV32I-NEXT: call __atomic_store_4 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_store_i32_release: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: fence rw, w +; RV32IA-WMO-NEXT: sw a1, 0(a0) +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_store_i32_release: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: sw a1, 0(a0) +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_store_i32_release: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 3 +; RV64I-NEXT: call __atomic_store_4 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_store_i32_release: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, w +; RV64IA-WMO-NEXT: sw a1, 0(a0) +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_store_i32_release: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: sw a1, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i32_release: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV32IA-WMO-TRAILING-FENCE-NEXT: sw a1, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i32_release: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: sw a1, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i32_release: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV64IA-WMO-TRAILING-FENCE-NEXT: sw a1, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i32_release: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: sw a1, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + store atomic i32 %b, ptr %a release, align 4 + ret void +} + +define void @atomic_store_i32_seq_cst(ptr %a, i32 %b) nounwind { +; RV32I-LABEL: atomic_store_i32_seq_cst: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a2, 5 +; RV32I-NEXT: call __atomic_store_4 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-WMO-LABEL: atomic_store_i32_seq_cst: +; RV32IA-WMO: # %bb.0: +; RV32IA-WMO-NEXT: fence rw, w +; RV32IA-WMO-NEXT: sw a1, 0(a0) +; RV32IA-WMO-NEXT: ret +; +; RV32IA-TSO-LABEL: atomic_store_i32_seq_cst: +; RV32IA-TSO: # %bb.0: +; RV32IA-TSO-NEXT: sw a1, 0(a0) +; RV32IA-TSO-NEXT: fence rw, rw +; RV32IA-TSO-NEXT: ret +; +; RV64I-LABEL: atomic_store_i32_seq_cst: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 5 +; RV64I-NEXT: call __atomic_store_4 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_store_i32_seq_cst: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, w +; RV64IA-WMO-NEXT: sw a1, 0(a0) +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_store_i32_seq_cst: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: sw a1, 0(a0) +; RV64IA-TSO-NEXT: fence rw, rw +; RV64IA-TSO-NEXT: ret +; +; RV32IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i32_seq_cst: +; RV32IA-WMO-TRAILING-FENCE: # %bb.0: +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV32IA-WMO-TRAILING-FENCE-NEXT: sw a1, 0(a0) +; RV32IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV32IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i32_seq_cst: +; RV32IA-TSO-TRAILING-FENCE: # %bb.0: +; RV32IA-TSO-TRAILING-FENCE-NEXT: sw a1, 0(a0) +; RV32IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV32IA-TSO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i32_seq_cst: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV64IA-WMO-TRAILING-FENCE-NEXT: sw a1, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i32_seq_cst: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: sw a1, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + store atomic i32 %b, ptr %a seq_cst, align 4 + ret void +} + +define void @atomic_store_i64_unordered(ptr %a, i64 %b) nounwind { +; RV32I-LABEL: atomic_store_i64_unordered: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a3, 0 +; RV32I-NEXT: call __atomic_store_8 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i64_unordered: +; RV32IA: # %bb.0: +; RV32IA-NEXT: addi sp, sp, -16 +; RV32IA-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IA-NEXT: li a3, 0 +; RV32IA-NEXT: call __atomic_store_8 +; RV32IA-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IA-NEXT: addi sp, sp, 16 +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i64_unordered: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 0 +; RV64I-NEXT: call __atomic_store_8 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_store_i64_unordered: +; RV64IA: # %bb.0: +; RV64IA-NEXT: sd a1, 0(a0) +; RV64IA-NEXT: ret + store atomic i64 %b, ptr %a unordered, align 8 + ret void +} + +define void @atomic_store_i64_monotonic(ptr %a, i64 %b) nounwind { +; RV32I-LABEL: atomic_store_i64_monotonic: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a3, 0 +; RV32I-NEXT: call __atomic_store_8 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i64_monotonic: +; RV32IA: # %bb.0: +; RV32IA-NEXT: addi sp, sp, -16 +; RV32IA-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IA-NEXT: li a3, 0 +; RV32IA-NEXT: call __atomic_store_8 +; RV32IA-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IA-NEXT: addi sp, sp, 16 +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i64_monotonic: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 0 +; RV64I-NEXT: call __atomic_store_8 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-LABEL: atomic_store_i64_monotonic: +; RV64IA: # %bb.0: +; RV64IA-NEXT: sd a1, 0(a0) +; RV64IA-NEXT: ret + store atomic i64 %b, ptr %a monotonic, align 8 + ret void +} + +define void @atomic_store_i64_release(ptr %a, i64 %b) nounwind { +; RV32I-LABEL: atomic_store_i64_release: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a3, 3 +; RV32I-NEXT: call __atomic_store_8 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i64_release: +; RV32IA: # %bb.0: +; RV32IA-NEXT: addi sp, sp, -16 +; RV32IA-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IA-NEXT: li a3, 3 +; RV32IA-NEXT: call __atomic_store_8 +; RV32IA-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IA-NEXT: addi sp, sp, 16 +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i64_release: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 3 +; RV64I-NEXT: call __atomic_store_8 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_store_i64_release: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, w +; RV64IA-WMO-NEXT: sd a1, 0(a0) +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_store_i64_release: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: sd a1, 0(a0) +; RV64IA-TSO-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i64_release: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV64IA-WMO-TRAILING-FENCE-NEXT: sd a1, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i64_release: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: sd a1, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + store atomic i64 %b, ptr %a release, align 8 + ret void +} + +define void @atomic_store_i64_seq_cst(ptr %a, i64 %b) nounwind { +; RV32I-LABEL: atomic_store_i64_seq_cst: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: li a3, 5 +; RV32I-NEXT: call __atomic_store_8 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV32IA-LABEL: atomic_store_i64_seq_cst: +; RV32IA: # %bb.0: +; RV32IA-NEXT: addi sp, sp, -16 +; RV32IA-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IA-NEXT: li a3, 5 +; RV32IA-NEXT: call __atomic_store_8 +; RV32IA-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IA-NEXT: addi sp, sp, 16 +; RV32IA-NEXT: ret +; +; RV64I-LABEL: atomic_store_i64_seq_cst: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, 5 +; RV64I-NEXT: call __atomic_store_8 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV64IA-WMO-LABEL: atomic_store_i64_seq_cst: +; RV64IA-WMO: # %bb.0: +; RV64IA-WMO-NEXT: fence rw, w +; RV64IA-WMO-NEXT: sd a1, 0(a0) +; RV64IA-WMO-NEXT: ret +; +; RV64IA-TSO-LABEL: atomic_store_i64_seq_cst: +; RV64IA-TSO: # %bb.0: +; RV64IA-TSO-NEXT: sd a1, 0(a0) +; RV64IA-TSO-NEXT: fence rw, rw +; RV64IA-TSO-NEXT: ret +; +; RV64IA-WMO-TRAILING-FENCE-LABEL: atomic_store_i64_seq_cst: +; RV64IA-WMO-TRAILING-FENCE: # %bb.0: +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, w +; RV64IA-WMO-TRAILING-FENCE-NEXT: sd a1, 0(a0) +; RV64IA-WMO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-WMO-TRAILING-FENCE-NEXT: ret +; +; RV64IA-TSO-TRAILING-FENCE-LABEL: atomic_store_i64_seq_cst: +; RV64IA-TSO-TRAILING-FENCE: # %bb.0: +; RV64IA-TSO-TRAILING-FENCE-NEXT: sd a1, 0(a0) +; RV64IA-TSO-TRAILING-FENCE-NEXT: fence rw, rw +; RV64IA-TSO-TRAILING-FENCE-NEXT: ret + store atomic i64 %b, ptr %a seq_cst, align 8 + ret void +} diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/double-arith.ll b/llvm/test/CodeGen/RISCV/GlobalISel/double-arith.ll new file mode 100644 index 0000000000000..2f7c93eb1c0de --- /dev/null +++ b/llvm/test/CodeGen/RISCV/GlobalISel/double-arith.ll @@ -0,0 +1,1323 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv32 -global-isel -mattr=+d -verify-machineinstrs < %s \ +; RUN: -target-abi=ilp32d | FileCheck -check-prefixes=CHECKIFD,RV32IFD %s +; RUN: llc -mtriple=riscv64 -global-isel -mattr=+d -verify-machineinstrs < %s \ +; RUN: -target-abi=lp64d | FileCheck -check-prefixes=CHECKIFD,RV64IFD %s +; RUN: llc -mtriple=riscv32 -global-isel -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefix=RV32I %s +; RUN: llc -mtriple=riscv64 -global-isel -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefix=RV64I %s + +; These tests are each targeted at a particular RISC-V FPU instruction. +; Compares and conversions can be found in double-fcmp.ll and double-convert.ll +; respectively. Some other double-*.ll files in this folder exercise LLVM IR +; instructions that don't directly match a RISC-V instruction. + +define double @fadd_d(double %a, double %b) nounwind { +; CHECKIFD-LABEL: fadd_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fadd.d fa0, fa0, fa1 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fadd_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fadd_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fadd double %a, %b + ret double %1 +} + +define double @fsub_d(double %a, double %b) nounwind { +; CHECKIFD-LABEL: fsub_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fsub.d fa0, fa0, fa1 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fsub_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __subdf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsub_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __subdf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fsub double %a, %b + ret double %1 +} + +define double @fmul_d(double %a, double %b) nounwind { +; CHECKIFD-LABEL: fmul_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fmul.d fa0, fa0, fa1 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fmul_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __muldf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmul_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __muldf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fmul double %a, %b + ret double %1 +} + +define double @fdiv_d(double %a, double %b) nounwind { +; CHECKIFD-LABEL: fdiv_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fdiv.d fa0, fa0, fa1 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fdiv_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __divdf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fdiv_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __divdf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fdiv double %a, %b + ret double %1 +} + +declare double @llvm.sqrt.f64(double) + +define double @fsqrt_d(double %a) nounwind { +; CHECKIFD-LABEL: fsqrt_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fsqrt.d fa0, fa0 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fsqrt_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call sqrt +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsqrt_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call sqrt +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call double @llvm.sqrt.f64(double %a) + ret double %1 +} + +declare double @llvm.copysign.f64(double, double) + +define double @fsgnj_d(double %a, double %b) nounwind { +; CHECKIFD-LABEL: fsgnj_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fsgnj.d fa0, fa0, fa1 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fsgnj_d: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: addi a4, a2, -1 +; RV32I-NEXT: and a1, a1, a4 +; RV32I-NEXT: and a2, a3, a2 +; RV32I-NEXT: or a1, a1, a2 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsgnj_d: +; RV64I: # %bb.0: +; RV64I-NEXT: li a2, -1 +; RV64I-NEXT: slli a3, a2, 63 +; RV64I-NEXT: srli a2, a2, 1 +; RV64I-NEXT: and a0, a0, a2 +; RV64I-NEXT: and a1, a1, a3 +; RV64I-NEXT: or a0, a0, a1 +; RV64I-NEXT: ret + %1 = call double @llvm.copysign.f64(double %a, double %b) + ret double %1 +} + +define double @fsgnjn_d(double %a, double %b) nounwind { +; TODO: fsgnjn.s isn't selected on RV64 because DAGCombiner::visitBITCAST will +; convert (bitconvert (fneg x)) to a xor. +; +; CHECKIFD-LABEL: fsgnjn_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fsgnjn.d fa0, fa0, fa1 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fsgnjn_d: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: xor a3, a3, a2 +; RV32I-NEXT: addi a4, a2, -1 +; RV32I-NEXT: and a1, a1, a4 +; RV32I-NEXT: and a2, a3, a2 +; RV32I-NEXT: or a1, a1, a2 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsgnjn_d: +; RV64I: # %bb.0: +; RV64I-NEXT: li a2, -1 +; RV64I-NEXT: slli a3, a2, 63 +; RV64I-NEXT: srli a2, a2, 1 +; RV64I-NEXT: xor a1, a1, a3 +; RV64I-NEXT: and a0, a0, a2 +; RV64I-NEXT: and a1, a1, a3 +; RV64I-NEXT: or a0, a0, a1 +; RV64I-NEXT: ret + %1 = fneg double %b + %2 = call double @llvm.copysign.f64(double %a, double %1) + ret double %2 +} + +declare double @llvm.fabs.f64(double) + +; This function performs extra work to ensure that +; DAGCombiner::visitBITCAST doesn't replace the fabs with an and. +define double @fabs_d(double %a, double %b) nounwind { +; CHECKIFD-LABEL: fabs_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fadd.d fa5, fa0, fa1 +; CHECKIFD-NEXT: fabs.d fa4, fa5 +; CHECKIFD-NEXT: fadd.d fa0, fa4, fa5 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fabs_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv a3, a1 +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: and a1, a3, a1 +; RV32I-NEXT: mv a2, a0 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fabs_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: mv a1, a0 +; RV64I-NEXT: li a0, -1 +; RV64I-NEXT: srli a0, a0, 1 +; RV64I-NEXT: and a0, a1, a0 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fadd double %a, %b + %2 = call double @llvm.fabs.f64(double %1) + %3 = fadd double %2, %1 + ret double %3 +} + +declare double @llvm.minnum.f64(double, double) + +define double @fmin_d(double %a, double %b) nounwind { +; CHECKIFD-LABEL: fmin_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fmin.d fa0, fa0, fa1 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fmin_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmin +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmin_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmin +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call double @llvm.minnum.f64(double %a, double %b) + ret double %1 +} + +declare double @llvm.maxnum.f64(double, double) + +define double @fmax_d(double %a, double %b) nounwind { +; CHECKIFD-LABEL: fmax_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fmax.d fa0, fa0, fa1 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fmax_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmax +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmax_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmax +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call double @llvm.maxnum.f64(double %a, double %b) + ret double %1 +} + +declare double @llvm.fma.f64(double, double, double) + +define double @fmadd_d(double %a, double %b, double %c) nounwind { +; CHECKIFD-LABEL: fmadd_d: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fmadd.d fa0, fa0, fa1, fa2 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fmadd_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fma +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmadd_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fma +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call double @llvm.fma.f64(double %a, double %b, double %c) + ret double %1 +} + +define double @fmsub_d(double %a, double %b, double %c) nounwind { +; RV32IFD-LABEL: fmsub_d: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw zero, 8(sp) +; RV32IFD-NEXT: sw zero, 12(sp) +; RV32IFD-NEXT: fld fa5, 8(sp) +; RV32IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV32IFD-NEXT: fmsub.d fa0, fa0, fa1, fa5 +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: fmsub_d: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: fmv.d.x fa5, zero +; RV64IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV64IFD-NEXT: fmsub.d fa0, fa0, fa1, fa5 +; RV64IFD-NEXT: ret +; +; RV32I-LABEL: fmsub_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -32 +; RV32I-NEXT: sw ra, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv s1, a1 +; RV32I-NEXT: mv s2, a2 +; RV32I-NEXT: mv s3, a3 +; RV32I-NEXT: mv a0, a4 +; RV32I-NEXT: lui a1, %hi(.LCPI11_0) +; RV32I-NEXT: addi a1, a1, %lo(.LCPI11_0) +; RV32I-NEXT: lw a2, 0(a1) +; RV32I-NEXT: lw a3, 4(a1) +; RV32I-NEXT: mv a1, a5 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv a4, a0 +; RV32I-NEXT: lui a5, 524288 +; RV32I-NEXT: xor a5, a1, a5 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: mv a2, s2 +; RV32I-NEXT: mv a3, s3 +; RV32I-NEXT: call fma +; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 32 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmsub_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -32 +; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv s1, a1 +; RV64I-NEXT: lui a0, %hi(.LCPI11_0) +; RV64I-NEXT: ld a1, %lo(.LCPI11_0)(a0) +; RV64I-NEXT: mv a0, a2 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: slli a1, a1, 63 +; RV64I-NEXT: xor a2, a0, a1 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call fma +; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: ret + %c_ = fadd double 0.0, %c ; avoid negation using xor + %negc = fneg double %c_ + %1 = call double @llvm.fma.f64(double %a, double %b, double %negc) + ret double %1 +} + +define double @fnmadd_d(double %a, double %b, double %c) nounwind { +; RV32IFD-LABEL: fnmadd_d: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw zero, 8(sp) +; RV32IFD-NEXT: sw zero, 12(sp) +; RV32IFD-NEXT: fld fa5, 8(sp) +; RV32IFD-NEXT: fadd.d fa4, fa0, fa5 +; RV32IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV32IFD-NEXT: fnmadd.d fa0, fa4, fa1, fa5 +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: fnmadd_d: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: fmv.d.x fa5, zero +; RV64IFD-NEXT: fadd.d fa4, fa0, fa5 +; RV64IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV64IFD-NEXT: fnmadd.d fa0, fa4, fa1, fa5 +; RV64IFD-NEXT: ret +; +; RV32I-LABEL: fnmadd_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -48 +; RV32I-NEXT: sw ra, 44(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 40(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 36(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 32(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s4, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s5, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s6, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s7, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a2 +; RV32I-NEXT: mv s1, a3 +; RV32I-NEXT: mv s2, a4 +; RV32I-NEXT: lui a2, %hi(.LCPI12_0) +; RV32I-NEXT: addi a2, a2, %lo(.LCPI12_0) +; RV32I-NEXT: lw s3, 0(a2) +; RV32I-NEXT: lw s4, 4(a2) +; RV32I-NEXT: mv s5, a5 +; RV32I-NEXT: mv a2, s3 +; RV32I-NEXT: mv a3, s4 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv s6, a0 +; RV32I-NEXT: mv s7, a1 +; RV32I-NEXT: mv a0, s2 +; RV32I-NEXT: mv a1, s5 +; RV32I-NEXT: mv a2, s3 +; RV32I-NEXT: mv a3, s4 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv a4, a0 +; RV32I-NEXT: lui a5, 524288 +; RV32I-NEXT: xor a2, s7, a5 +; RV32I-NEXT: xor a5, a1, a5 +; RV32I-NEXT: mv a0, s6 +; RV32I-NEXT: mv a1, a2 +; RV32I-NEXT: mv a2, s0 +; RV32I-NEXT: mv a3, s1 +; RV32I-NEXT: call fma +; RV32I-NEXT: lw ra, 44(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 40(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 36(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 32(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s4, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s5, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s6, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s7, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 48 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -48 +; RV64I-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI12_0) +; RV64I-NEXT: ld s1, %lo(.LCPI12_0)(a1) +; RV64I-NEXT: mv s2, a2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: mv s3, a0 +; RV64I-NEXT: mv a0, s2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: slli a2, a1, 63 +; RV64I-NEXT: xor a1, s3, a2 +; RV64I-NEXT: xor a2, a0, a2 +; RV64I-NEXT: mv a0, a1 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: call fma +; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s3, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 48 +; RV64I-NEXT: ret + %a_ = fadd double 0.0, %a + %c_ = fadd double 0.0, %c + %nega = fneg double %a_ + %negc = fneg double %c_ + %1 = call double @llvm.fma.f64(double %nega, double %b, double %negc) + ret double %1 +} + +define double @fnmadd_d_2(double %a, double %b, double %c) nounwind { +; RV32IFD-LABEL: fnmadd_d_2: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw zero, 8(sp) +; RV32IFD-NEXT: sw zero, 12(sp) +; RV32IFD-NEXT: fld fa5, 8(sp) +; RV32IFD-NEXT: fadd.d fa4, fa1, fa5 +; RV32IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV32IFD-NEXT: fnmadd.d fa0, fa4, fa0, fa5 +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: fnmadd_d_2: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: fmv.d.x fa5, zero +; RV64IFD-NEXT: fadd.d fa4, fa1, fa5 +; RV64IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV64IFD-NEXT: fnmadd.d fa0, fa4, fa0, fa5 +; RV64IFD-NEXT: ret +; +; RV32I-LABEL: fnmadd_d_2: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -48 +; RV32I-NEXT: sw ra, 44(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 40(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 36(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 32(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s4, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s5, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s6, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s7, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv s1, a1 +; RV32I-NEXT: mv a0, a2 +; RV32I-NEXT: mv a1, a3 +; RV32I-NEXT: mv s2, a4 +; RV32I-NEXT: lui a2, %hi(.LCPI13_0) +; RV32I-NEXT: addi a2, a2, %lo(.LCPI13_0) +; RV32I-NEXT: lw s3, 0(a2) +; RV32I-NEXT: lw s4, 4(a2) +; RV32I-NEXT: mv s5, a5 +; RV32I-NEXT: mv a2, s3 +; RV32I-NEXT: mv a3, s4 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv s6, a0 +; RV32I-NEXT: mv s7, a1 +; RV32I-NEXT: mv a0, s2 +; RV32I-NEXT: mv a1, s5 +; RV32I-NEXT: mv a2, s3 +; RV32I-NEXT: mv a3, s4 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv a4, a0 +; RV32I-NEXT: lui a5, 524288 +; RV32I-NEXT: xor a3, s7, a5 +; RV32I-NEXT: xor a5, a1, a5 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: mv a2, s6 +; RV32I-NEXT: call fma +; RV32I-NEXT: lw ra, 44(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 40(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 36(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 32(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s4, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s5, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s6, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s7, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 48 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_d_2: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -48 +; RV64I-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv a0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI13_0) +; RV64I-NEXT: ld s1, %lo(.LCPI13_0)(a1) +; RV64I-NEXT: mv s2, a2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: mv s3, a0 +; RV64I-NEXT: mv a0, s2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: slli a2, a1, 63 +; RV64I-NEXT: xor a1, s3, a2 +; RV64I-NEXT: xor a2, a0, a2 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: call fma +; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s3, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 48 +; RV64I-NEXT: ret + %b_ = fadd double 0.0, %b + %c_ = fadd double 0.0, %c + %negb = fneg double %b_ + %negc = fneg double %c_ + %1 = call double @llvm.fma.f64(double %a, double %negb, double %negc) + ret double %1 +} + +define double @fnmadd_d_3(double %a, double %b, double %c) nounwind { +; CHECKIFD-LABEL: fnmadd_d_3: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fmadd.d fa5, fa0, fa1, fa2 +; CHECKIFD-NEXT: fneg.d fa0, fa5 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fnmadd_d_3: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fma +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: xor a1, a1, a2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_d_3: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fma +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: slli a1, a1, 63 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call double @llvm.fma.f64(double %a, double %b, double %c) + %neg = fneg double %1 + ret double %neg +} + + +define double @fnmadd_nsz(double %a, double %b, double %c) nounwind { +; CHECKIFD-LABEL: fnmadd_nsz: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fmadd.d fa5, fa0, fa1, fa2 +; CHECKIFD-NEXT: fneg.d fa0, fa5 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fnmadd_nsz: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fma +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: xor a1, a1, a2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_nsz: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fma +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: slli a1, a1, 63 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call nsz double @llvm.fma.f64(double %a, double %b, double %c) + %neg = fneg nsz double %1 + ret double %neg +} + +define double @fnmsub_d(double %a, double %b, double %c) nounwind { +; RV32IFD-LABEL: fnmsub_d: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw zero, 8(sp) +; RV32IFD-NEXT: sw zero, 12(sp) +; RV32IFD-NEXT: fld fa5, 8(sp) +; RV32IFD-NEXT: fadd.d fa5, fa0, fa5 +; RV32IFD-NEXT: fnmsub.d fa0, fa5, fa1, fa2 +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: fnmsub_d: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: fmv.d.x fa5, zero +; RV64IFD-NEXT: fadd.d fa5, fa0, fa5 +; RV64IFD-NEXT: fnmsub.d fa0, fa5, fa1, fa2 +; RV64IFD-NEXT: ret +; +; RV32I-LABEL: fnmsub_d: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -32 +; RV32I-NEXT: sw ra, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a2 +; RV32I-NEXT: mv s1, a3 +; RV32I-NEXT: mv s2, a4 +; RV32I-NEXT: lui a2, %hi(.LCPI16_0) +; RV32I-NEXT: addi a3, a2, %lo(.LCPI16_0) +; RV32I-NEXT: lw a2, 0(a3) +; RV32I-NEXT: lw a3, 4(a3) +; RV32I-NEXT: mv s3, a5 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: xor a1, a1, a2 +; RV32I-NEXT: mv a2, s0 +; RV32I-NEXT: mv a3, s1 +; RV32I-NEXT: mv a4, s2 +; RV32I-NEXT: mv a5, s3 +; RV32I-NEXT: call fma +; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 32 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmsub_d: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -32 +; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI16_0) +; RV64I-NEXT: ld a1, %lo(.LCPI16_0)(a1) +; RV64I-NEXT: mv s1, a2 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: slli a1, a1, 63 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: mv a2, s1 +; RV64I-NEXT: call fma +; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: ret + %a_ = fadd double 0.0, %a + %nega = fneg double %a_ + %1 = call double @llvm.fma.f64(double %nega, double %b, double %c) + ret double %1 +} + +define double @fnmsub_d_2(double %a, double %b, double %c) nounwind { +; RV32IFD-LABEL: fnmsub_d_2: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw zero, 8(sp) +; RV32IFD-NEXT: sw zero, 12(sp) +; RV32IFD-NEXT: fld fa5, 8(sp) +; RV32IFD-NEXT: fadd.d fa5, fa1, fa5 +; RV32IFD-NEXT: fnmsub.d fa0, fa5, fa0, fa2 +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: fnmsub_d_2: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: fmv.d.x fa5, zero +; RV64IFD-NEXT: fadd.d fa5, fa1, fa5 +; RV64IFD-NEXT: fnmsub.d fa0, fa5, fa0, fa2 +; RV64IFD-NEXT: ret +; +; RV32I-LABEL: fnmsub_d_2: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -32 +; RV32I-NEXT: sw ra, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv s1, a1 +; RV32I-NEXT: mv a0, a2 +; RV32I-NEXT: mv a1, a3 +; RV32I-NEXT: mv s2, a4 +; RV32I-NEXT: lui a2, %hi(.LCPI17_0) +; RV32I-NEXT: addi a3, a2, %lo(.LCPI17_0) +; RV32I-NEXT: lw a2, 0(a3) +; RV32I-NEXT: lw a3, 4(a3) +; RV32I-NEXT: mv s3, a5 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv a2, a0 +; RV32I-NEXT: lui a3, 524288 +; RV32I-NEXT: xor a3, a1, a3 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: mv a4, s2 +; RV32I-NEXT: mv a5, s3 +; RV32I-NEXT: call fma +; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 32 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmsub_d_2: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -32 +; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv a0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI17_0) +; RV64I-NEXT: ld a1, %lo(.LCPI17_0)(a1) +; RV64I-NEXT: mv s1, a2 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: slli a1, a1, 63 +; RV64I-NEXT: xor a1, a0, a1 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a2, s1 +; RV64I-NEXT: call fma +; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: ret + %b_ = fadd double 0.0, %b + %negb = fneg double %b_ + %1 = call double @llvm.fma.f64(double %a, double %negb, double %c) + ret double %1 +} + +define double @fmadd_d_contract(double %a, double %b, double %c) nounwind { +; CHECKIFD-LABEL: fmadd_d_contract: +; CHECKIFD: # %bb.0: +; CHECKIFD-NEXT: fmadd.d fa0, fa0, fa1, fa2 +; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fmadd_d_contract: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 4(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a4 +; RV32I-NEXT: mv s1, a5 +; RV32I-NEXT: call __muldf3 +; RV32I-NEXT: mv a2, s0 +; RV32I-NEXT: mv a3, s1 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmadd_d_contract: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 0(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a2 +; RV64I-NEXT: call __muldf3 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fmul contract double %a, %b + %2 = fadd contract double %1, %c + ret double %2 +} + +define double @fmsub_d_contract(double %a, double %b, double %c) nounwind { +; RV32IFD-LABEL: fmsub_d_contract: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw zero, 8(sp) +; RV32IFD-NEXT: sw zero, 12(sp) +; RV32IFD-NEXT: fld fa5, 8(sp) +; RV32IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV32IFD-NEXT: fmul.d fa4, fa0, fa1 +; RV32IFD-NEXT: fsub.d fa0, fa4, fa5 +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: fmsub_d_contract: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: fmv.d.x fa5, zero +; RV64IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV64IFD-NEXT: fmul.d fa4, fa0, fa1 +; RV64IFD-NEXT: fsub.d fa0, fa4, fa5 +; RV64IFD-NEXT: ret +; +; RV32I-LABEL: fmsub_d_contract: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -32 +; RV32I-NEXT: sw ra, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s4, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s5, 4(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv s1, a1 +; RV32I-NEXT: mv s2, a2 +; RV32I-NEXT: mv s3, a3 +; RV32I-NEXT: mv a0, a4 +; RV32I-NEXT: lui a1, %hi(.LCPI19_0) +; RV32I-NEXT: addi a1, a1, %lo(.LCPI19_0) +; RV32I-NEXT: lw a2, 0(a1) +; RV32I-NEXT: lw a3, 4(a1) +; RV32I-NEXT: mv a1, a5 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv s4, a0 +; RV32I-NEXT: mv s5, a1 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: mv a2, s2 +; RV32I-NEXT: mv a3, s3 +; RV32I-NEXT: call __muldf3 +; RV32I-NEXT: mv a2, s4 +; RV32I-NEXT: mv a3, s5 +; RV32I-NEXT: call __subdf3 +; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s4, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s5, 4(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 32 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmsub_d_contract: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -32 +; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 0(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv s1, a1 +; RV64I-NEXT: lui a0, %hi(.LCPI19_0) +; RV64I-NEXT: ld a1, %lo(.LCPI19_0)(a0) +; RV64I-NEXT: mv a0, a2 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: mv s2, a0 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __muldf3 +; RV64I-NEXT: mv a1, s2 +; RV64I-NEXT: call __subdf3 +; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: ret + %c_ = fadd double 0.0, %c ; avoid negation using xor + %1 = fmul contract double %a, %b + %2 = fsub contract double %1, %c_ + ret double %2 +} + +define double @fnmadd_d_contract(double %a, double %b, double %c) nounwind { +; RV32IFD-LABEL: fnmadd_d_contract: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw zero, 8(sp) +; RV32IFD-NEXT: sw zero, 12(sp) +; RV32IFD-NEXT: fld fa5, 8(sp) +; RV32IFD-NEXT: fadd.d fa4, fa0, fa5 +; RV32IFD-NEXT: fadd.d fa3, fa1, fa5 +; RV32IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV32IFD-NEXT: fmul.d fa4, fa4, fa3 +; RV32IFD-NEXT: fneg.d fa4, fa4 +; RV32IFD-NEXT: fsub.d fa0, fa4, fa5 +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: fnmadd_d_contract: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: fmv.d.x fa5, zero +; RV64IFD-NEXT: fadd.d fa4, fa0, fa5 +; RV64IFD-NEXT: fadd.d fa3, fa1, fa5 +; RV64IFD-NEXT: fadd.d fa5, fa2, fa5 +; RV64IFD-NEXT: fmul.d fa4, fa4, fa3 +; RV64IFD-NEXT: fneg.d fa4, fa4 +; RV64IFD-NEXT: fsub.d fa0, fa4, fa5 +; RV64IFD-NEXT: ret +; +; RV32I-LABEL: fnmadd_d_contract: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -48 +; RV32I-NEXT: sw ra, 44(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 40(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 36(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 32(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s4, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s5, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s6, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s7, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a2 +; RV32I-NEXT: mv s1, a3 +; RV32I-NEXT: mv s2, a4 +; RV32I-NEXT: lui a2, %hi(.LCPI20_0) +; RV32I-NEXT: addi a2, a2, %lo(.LCPI20_0) +; RV32I-NEXT: lw s3, 0(a2) +; RV32I-NEXT: lw s4, 4(a2) +; RV32I-NEXT: mv s5, a5 +; RV32I-NEXT: mv a2, s3 +; RV32I-NEXT: mv a3, s4 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv s6, a0 +; RV32I-NEXT: mv s7, a1 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: mv a2, s3 +; RV32I-NEXT: mv a3, s4 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv s1, a1 +; RV32I-NEXT: mv a0, s2 +; RV32I-NEXT: mv a1, s5 +; RV32I-NEXT: mv a2, s3 +; RV32I-NEXT: mv a3, s4 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv s2, a0 +; RV32I-NEXT: mv s3, a1 +; RV32I-NEXT: mv a0, s6 +; RV32I-NEXT: mv a1, s7 +; RV32I-NEXT: mv a2, s0 +; RV32I-NEXT: mv a3, s1 +; RV32I-NEXT: call __muldf3 +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: xor a1, a1, a2 +; RV32I-NEXT: mv a2, s2 +; RV32I-NEXT: mv a3, s3 +; RV32I-NEXT: call __subdf3 +; RV32I-NEXT: lw ra, 44(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 40(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 36(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 32(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s4, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s5, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s6, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s7, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 48 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_d_contract: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -48 +; RV64I-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI20_0) +; RV64I-NEXT: ld s1, %lo(.LCPI20_0)(a1) +; RV64I-NEXT: mv s2, a2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: mv s3, a0 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv a0, s2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: mv s1, a0 +; RV64I-NEXT: mv a0, s3 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: call __muldf3 +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: slli a1, a1, 63 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __subdf3 +; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s3, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 48 +; RV64I-NEXT: ret + %a_ = fadd double 0.0, %a ; avoid negation using xor + %b_ = fadd double 0.0, %b ; avoid negation using xor + %c_ = fadd double 0.0, %c ; avoid negation using xor + %1 = fmul contract double %a_, %b_ + %2 = fneg double %1 + %3 = fsub contract double %2, %c_ + ret double %3 +} + +define double @fnmsub_d_contract(double %a, double %b, double %c) nounwind { +; RV32IFD-LABEL: fnmsub_d_contract: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw zero, 8(sp) +; RV32IFD-NEXT: sw zero, 12(sp) +; RV32IFD-NEXT: fld fa5, 8(sp) +; RV32IFD-NEXT: fadd.d fa4, fa0, fa5 +; RV32IFD-NEXT: fadd.d fa5, fa1, fa5 +; RV32IFD-NEXT: fnmsub.d fa0, fa4, fa5, fa2 +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: fnmsub_d_contract: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: fmv.d.x fa5, zero +; RV64IFD-NEXT: fadd.d fa4, fa0, fa5 +; RV64IFD-NEXT: fadd.d fa5, fa1, fa5 +; RV64IFD-NEXT: fnmsub.d fa0, fa4, fa5, fa2 +; RV64IFD-NEXT: ret +; +; RV32I-LABEL: fnmsub_d_contract: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -48 +; RV32I-NEXT: sw ra, 44(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 40(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 36(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 32(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s4, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s5, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s6, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s7, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a2 +; RV32I-NEXT: mv s1, a3 +; RV32I-NEXT: mv s2, a4 +; RV32I-NEXT: lui a2, %hi(.LCPI21_0) +; RV32I-NEXT: addi a2, a2, %lo(.LCPI21_0) +; RV32I-NEXT: lw s3, 0(a2) +; RV32I-NEXT: lw s4, 4(a2) +; RV32I-NEXT: mv s5, a5 +; RV32I-NEXT: mv a2, s3 +; RV32I-NEXT: mv a3, s4 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv s6, a0 +; RV32I-NEXT: mv s7, a1 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: mv a2, s3 +; RV32I-NEXT: mv a3, s4 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: mv a2, a0 +; RV32I-NEXT: mv a3, a1 +; RV32I-NEXT: mv a0, s6 +; RV32I-NEXT: mv a1, s7 +; RV32I-NEXT: call __muldf3 +; RV32I-NEXT: mv a2, a0 +; RV32I-NEXT: mv a3, a1 +; RV32I-NEXT: mv a0, s2 +; RV32I-NEXT: mv a1, s5 +; RV32I-NEXT: call __subdf3 +; RV32I-NEXT: lw ra, 44(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 40(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 36(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 32(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s4, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s5, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s6, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s7, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 48 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmsub_d_contract: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -48 +; RV64I-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI21_0) +; RV64I-NEXT: ld s1, %lo(.LCPI21_0)(a1) +; RV64I-NEXT: mv s2, a2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: mv s3, a0 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: mv a1, a0 +; RV64I-NEXT: mv a0, s3 +; RV64I-NEXT: call __muldf3 +; RV64I-NEXT: mv a1, a0 +; RV64I-NEXT: mv a0, s2 +; RV64I-NEXT: call __subdf3 +; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s3, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 48 +; RV64I-NEXT: ret + %a_ = fadd double 0.0, %a ; avoid negation using xor + %b_ = fadd double 0.0, %b ; avoid negation using xor + %1 = fmul contract double %a_, %b_ + %2 = fsub contract double %c, %1 + ret double %2 +} + +define double @fsgnjx_f64(double %x, double %y) nounwind { +; RV32IFD-LABEL: fsgnjx_f64: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: lui a0, 261888 +; RV32IFD-NEXT: sw zero, 8(sp) +; RV32IFD-NEXT: sw a0, 12(sp) +; RV32IFD-NEXT: fld fa5, 8(sp) +; RV32IFD-NEXT: fsgnj.d fa5, fa5, fa0 +; RV32IFD-NEXT: fmul.d fa0, fa5, fa1 +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: fsgnjx_f64: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: li a0, 1023 +; RV64IFD-NEXT: slli a0, a0, 52 +; RV64IFD-NEXT: fmv.d.x fa5, a0 +; RV64IFD-NEXT: fsgnj.d fa5, fa5, fa0 +; RV64IFD-NEXT: fmul.d fa0, fa5, fa1 +; RV64IFD-NEXT: ret +; +; RV32I-LABEL: fsgnjx_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: lui a0, 524288 +; RV32I-NEXT: lui a4, 261888 +; RV32I-NEXT: and a0, a1, a0 +; RV32I-NEXT: or a1, a0, a4 +; RV32I-NEXT: li a0, 0 +; RV32I-NEXT: call __muldf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsgnjx_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: li a2, -1 +; RV64I-NEXT: li a3, 1023 +; RV64I-NEXT: slli a2, a2, 63 +; RV64I-NEXT: slli a3, a3, 52 +; RV64I-NEXT: and a0, a0, a2 +; RV64I-NEXT: or a0, a0, a3 +; RV64I-NEXT: call __muldf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %z = call double @llvm.copysign.f64(double 1.0, double %x) + %mul = fmul double %z, %y + ret double %mul +} diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/double-convert.ll b/llvm/test/CodeGen/RISCV/GlobalISel/double-convert.ll index a4f92640697bc..7133d5c100e75 100644 --- a/llvm/test/CodeGen/RISCV/GlobalISel/double-convert.ll +++ b/llvm/test/CodeGen/RISCV/GlobalISel/double-convert.ll @@ -43,23 +43,21 @@ define i32 @fcvt_wu_d(double %a) nounwind { define i32 @fcvt_wu_d_multiple_use(double %x, ptr %y) nounwind { ; RV32IFD-LABEL: fcvt_wu_d_multiple_use: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: fcvt.wu.d a1, fa0, rtz -; RV32IFD-NEXT: li a0, 1 -; RV32IFD-NEXT: beqz a1, .LBB4_2 +; RV32IFD-NEXT: fcvt.wu.d a0, fa0, rtz +; RV32IFD-NEXT: bnez a0, .LBB4_2 ; RV32IFD-NEXT: # %bb.1: -; RV32IFD-NEXT: mv a0, a1 +; RV32IFD-NEXT: li a0, 1 ; RV32IFD-NEXT: .LBB4_2: ; RV32IFD-NEXT: ret ; ; RV64IFD-LABEL: fcvt_wu_d_multiple_use: ; RV64IFD: # %bb.0: -; RV64IFD-NEXT: fcvt.wu.d a1, fa0, rtz -; RV64IFD-NEXT: slli a0, a1, 32 -; RV64IFD-NEXT: srli a2, a0, 32 -; RV64IFD-NEXT: li a0, 1 -; RV64IFD-NEXT: beqz a2, .LBB4_2 +; RV64IFD-NEXT: fcvt.wu.d a0, fa0, rtz +; RV64IFD-NEXT: slli a1, a0, 32 +; RV64IFD-NEXT: srli a1, a1, 32 +; RV64IFD-NEXT: bnez a1, .LBB4_2 ; RV64IFD-NEXT: # %bb.1: -; RV64IFD-NEXT: mv a0, a1 +; RV64IFD-NEXT: li a0, 1 ; RV64IFD-NEXT: .LBB4_2: ; RV64IFD-NEXT: ret %a = fptoui double %x to i32 diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/double-intrinsics.ll b/llvm/test/CodeGen/RISCV/GlobalISel/double-intrinsics.ll index ad461f8f24b91..2b67d5c7ac570 100644 --- a/llvm/test/CodeGen/RISCV/GlobalISel/double-intrinsics.ll +++ b/llvm/test/CodeGen/RISCV/GlobalISel/double-intrinsics.ll @@ -5,6 +5,10 @@ ; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -global-isel -mattr=+d \ ; RUN: -verify-machineinstrs -target-abi=lp64d \ ; RUN: | FileCheck -check-prefixes=CHECKIFD,RV64IFD %s +; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -global-isel \ +; RUN: -verify-machineinstrs | FileCheck -check-prefix=RV32I %s +; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -global-isel \ +; RUN: -verify-machineinstrs | FileCheck -check-prefix=RV64I %s declare double @llvm.sqrt.f64(double) @@ -13,6 +17,24 @@ define double @sqrt_f64(double %a) nounwind { ; CHECKIFD: # %bb.0: ; CHECKIFD-NEXT: fsqrt.d fa0, fa0 ; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: sqrt_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call sqrt +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: sqrt_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call sqrt +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.sqrt.f64(double %a) ret double %1 } @@ -24,6 +46,24 @@ define double @fma_f64(double %a, double %b, double %c) nounwind { ; CHECKIFD: # %bb.0: ; CHECKIFD-NEXT: fmadd.d fa0, fa0, fa1, fa2 ; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fma_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fma +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fma_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fma +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.fma.f64(double %a, double %b, double %c) ret double %1 } @@ -35,6 +75,38 @@ define double @fmuladd_f64(double %a, double %b, double %c) nounwind { ; CHECKIFD: # %bb.0: ; CHECKIFD-NEXT: fmadd.d fa0, fa0, fa1, fa2 ; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fmuladd_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 4(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a4 +; RV32I-NEXT: mv s1, a5 +; RV32I-NEXT: call __muldf3 +; RV32I-NEXT: mv a2, s0 +; RV32I-NEXT: mv a3, s1 +; RV32I-NEXT: call __adddf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmuladd_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 0(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a2 +; RV64I-NEXT: call __muldf3 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: call __adddf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.fmuladd.f64(double %a, double %b, double %c) ret double %1 } @@ -46,6 +118,20 @@ define double @fabs_f64(double %a) nounwind { ; CHECKIFD: # %bb.0: ; CHECKIFD-NEXT: fabs.d fa0, fa0 ; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: fabs_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: addi a2, a2, -1 +; RV32I-NEXT: and a1, a1, a2 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fabs_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: srli a1, a1, 1 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: ret %1 = call double @llvm.fabs.f64(double %a) ret double %1 } @@ -57,6 +143,24 @@ define double @minnum_f64(double %a, double %b) nounwind { ; CHECKIFD: # %bb.0: ; CHECKIFD-NEXT: fmin.d fa0, fa0, fa1 ; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: minnum_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmin +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: minnum_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmin +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.minnum.f64(double %a, double %b) ret double %1 } @@ -68,6 +172,24 @@ define double @maxnum_f64(double %a, double %b) nounwind { ; CHECKIFD: # %bb.0: ; CHECKIFD-NEXT: fmax.d fa0, fa0, fa1 ; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: maxnum_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmax +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: maxnum_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmax +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.maxnum.f64(double %a, double %b) ret double %1 } @@ -79,6 +201,25 @@ define double @copysign_f64(double %a, double %b) nounwind { ; CHECKIFD: # %bb.0: ; CHECKIFD-NEXT: fsgnj.d fa0, fa0, fa1 ; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: copysign_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: addi a4, a2, -1 +; RV32I-NEXT: and a1, a1, a4 +; RV32I-NEXT: and a2, a3, a2 +; RV32I-NEXT: or a1, a1, a2 +; RV32I-NEXT: ret +; +; RV64I-LABEL: copysign_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: li a2, -1 +; RV64I-NEXT: slli a3, a2, 63 +; RV64I-NEXT: srli a2, a2, 1 +; RV64I-NEXT: and a0, a0, a2 +; RV64I-NEXT: and a1, a1, a3 +; RV64I-NEXT: or a0, a0, a1 +; RV64I-NEXT: ret %1 = call double @llvm.copysign.f64(double %a, double %b) ret double %1 } @@ -103,6 +244,24 @@ define double @floor_f64(double %a) nounwind { ; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IFD-NEXT: addi sp, sp, 16 ; RV64IFD-NEXT: ret +; +; RV32I-LABEL: floor_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call floor +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: floor_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call floor +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.floor.f64(double %a) ret double %1 } @@ -127,6 +286,24 @@ define double @ceil_f64(double %a) nounwind { ; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IFD-NEXT: addi sp, sp, 16 ; RV64IFD-NEXT: ret +; +; RV32I-LABEL: ceil_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call ceil +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: ceil_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call ceil +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.ceil.f64(double %a) ret double %1 } @@ -151,6 +328,24 @@ define double @trunc_f64(double %a) nounwind { ; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IFD-NEXT: addi sp, sp, 16 ; RV64IFD-NEXT: ret +; +; RV32I-LABEL: trunc_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call trunc +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: trunc_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call trunc +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.trunc.f64(double %a) ret double %1 } @@ -175,6 +370,24 @@ define double @rint_f64(double %a) nounwind { ; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IFD-NEXT: addi sp, sp, 16 ; RV64IFD-NEXT: ret +; +; RV32I-LABEL: rint_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call rint +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: rint_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call rint +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.rint.f64(double %a) ret double %1 } @@ -199,6 +412,24 @@ define double @nearbyint_f64(double %a) nounwind { ; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IFD-NEXT: addi sp, sp, 16 ; RV64IFD-NEXT: ret +; +; RV32I-LABEL: nearbyint_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call nearbyint +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: nearbyint_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call nearbyint +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.nearbyint.f64(double %a) ret double %1 } @@ -223,6 +454,24 @@ define double @round_f64(double %a) nounwind { ; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IFD-NEXT: addi sp, sp, 16 ; RV64IFD-NEXT: ret +; +; RV32I-LABEL: round_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call round +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: round_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call round +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.round.f64(double %a) ret double %1 } @@ -247,6 +496,24 @@ define double @roundeven_f64(double %a) nounwind { ; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IFD-NEXT: addi sp, sp, 16 ; RV64IFD-NEXT: ret +; +; RV32I-LABEL: roundeven_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call roundeven +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: roundeven_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call roundeven +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call double @llvm.roundeven.f64(double %a) ret double %1 } @@ -259,6 +526,30 @@ define i1 @isnan_d_fpclass(double %x) { ; CHECKIFD-NEXT: andi a0, a0, 768 ; CHECKIFD-NEXT: snez a0, a0 ; CHECKIFD-NEXT: ret +; +; RV32I-LABEL: isnan_d_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: addi a3, a2, -1 +; RV32I-NEXT: lui a2, 524032 +; RV32I-NEXT: and a1, a1, a3 +; RV32I-NEXT: beq a1, a2, .LBB14_2 +; RV32I-NEXT: # %bb.1: +; RV32I-NEXT: sltu a0, a2, a1 +; RV32I-NEXT: ret +; RV32I-NEXT: .LBB14_2: +; RV32I-NEXT: snez a0, a0 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isnan_d_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: li a1, -1 +; RV64I-NEXT: li a2, 2047 +; RV64I-NEXT: srli a1, a1, 1 +; RV64I-NEXT: slli a2, a2, 52 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: sltu a0, a2, a0 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f64(double %x, i32 3) ; nan ret i1 %1 } diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/float-arith.ll b/llvm/test/CodeGen/RISCV/GlobalISel/float-arith.ll new file mode 100644 index 0000000000000..7fe4d2ef797af --- /dev/null +++ b/llvm/test/CodeGen/RISCV/GlobalISel/float-arith.ll @@ -0,0 +1,1099 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv32 -global-isel -mattr=+f -verify-machineinstrs < %s \ +; RUN: -target-abi=ilp32f | FileCheck -check-prefix=CHECKIF %s +; RUN: llc -mtriple=riscv64 -global-isel -mattr=+f -verify-machineinstrs < %s \ +; RUN: -target-abi=lp64f | FileCheck -check-prefix=CHECKIF %s +; RUN: llc -mtriple=riscv32 -global-isel -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefix=RV32I %s +; RUN: llc -mtriple=riscv64 -global-isel -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefix=RV64I %s + +; These tests are each targeted at a particular RISC-V FPU instruction. +; Compares and conversions can be found in float-fcmp.ll and float-convert.ll +; respectively. Some other float-*.ll files in this folder exercise LLVM IR +; instructions that don't directly match a RISC-V instruction. + +define float @fadd_s(float %a, float %b) nounwind { +; CHECKIF-LABEL: fadd_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fadd.s fa0, fa0, fa1 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fadd_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fadd_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fadd float %a, %b + ret float %1 +} + +define float @fsub_s(float %a, float %b) nounwind { +; CHECKIF-LABEL: fsub_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fsub.s fa0, fa0, fa1 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fsub_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __subsf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsub_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __subsf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fsub float %a, %b + ret float %1 +} + +define float @fmul_s(float %a, float %b) nounwind { +; CHECKIF-LABEL: fmul_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmul.s fa0, fa0, fa1 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fmul_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __mulsf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmul_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __mulsf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fmul float %a, %b + ret float %1 +} + +define float @fdiv_s(float %a, float %b) nounwind { +; CHECKIF-LABEL: fdiv_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fdiv.s fa0, fa0, fa1 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fdiv_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __divsf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fdiv_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __divsf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fdiv float %a, %b + ret float %1 +} + +declare float @llvm.sqrt.f32(float) + +define float @fsqrt_s(float %a) nounwind { +; CHECKIF-LABEL: fsqrt_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fsqrt.s fa0, fa0 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fsqrt_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call sqrtf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsqrt_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call sqrtf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call float @llvm.sqrt.f32(float %a) + ret float %1 +} + +declare float @llvm.copysign.f32(float, float) + +define float @fsgnj_s(float %a, float %b) nounwind { +; CHECKIF-LABEL: fsgnj_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fsgnj.s fa0, fa0, fa1 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fsgnj_s: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: addi a3, a2, -1 +; RV32I-NEXT: and a0, a0, a3 +; RV32I-NEXT: and a1, a1, a2 +; RV32I-NEXT: or a0, a0, a1 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsgnj_s: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a2, 524288 +; RV64I-NEXT: addiw a3, a2, -1 +; RV64I-NEXT: and a0, a0, a3 +; RV64I-NEXT: and a1, a1, a2 +; RV64I-NEXT: or a0, a0, a1 +; RV64I-NEXT: ret + %1 = call float @llvm.copysign.f32(float %a, float %b) + ret float %1 +} + +define float @fsgnjn_s(float %a, float %b) nounwind { +; CHECKIF-LABEL: fsgnjn_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fadd.s fa5, fa0, fa1 +; CHECKIF-NEXT: fsgnjn.s fa0, fa0, fa5 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fsgnjn_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: xor a0, a0, a1 +; RV32I-NEXT: addi a2, a1, -1 +; RV32I-NEXT: and a2, s0, a2 +; RV32I-NEXT: and a0, a0, a1 +; RV32I-NEXT: or a0, a2, a0 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsgnjn_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 0(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: addiw a2, a1, -1 +; RV64I-NEXT: and a2, s0, a2 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: or a0, a2, a0 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fadd float %a, %b + %2 = fneg float %1 + %3 = call float @llvm.copysign.f32(float %a, float %2) + ret float %3 +} + +declare float @llvm.fabs.f32(float) + +define float @fabs_s(float %a, float %b) nounwind { +; CHECKIF-LABEL: fabs_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fadd.s fa5, fa0, fa1 +; CHECKIF-NEXT: fabs.s fa4, fa5 +; CHECKIF-NEXT: fadd.s fa0, fa4, fa5 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fabs_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: mv a1, a0 +; RV32I-NEXT: lui a0, 524288 +; RV32I-NEXT: addi a0, a0, -1 +; RV32I-NEXT: and a0, a1, a0 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fabs_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: mv a1, a0 +; RV64I-NEXT: lui a0, 524288 +; RV64I-NEXT: addiw a0, a0, -1 +; RV64I-NEXT: and a0, a1, a0 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fadd float %a, %b + %2 = call float @llvm.fabs.f32(float %1) + %3 = fadd float %2, %1 + ret float %3 +} + +declare float @llvm.minnum.f32(float, float) + +define float @fmin_s(float %a, float %b) nounwind { +; CHECKIF-LABEL: fmin_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmin.s fa0, fa0, fa1 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fmin_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fminf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmin_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fminf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call float @llvm.minnum.f32(float %a, float %b) + ret float %1 +} + +declare float @llvm.maxnum.f32(float, float) + +define float @fmax_s(float %a, float %b) nounwind { +; CHECKIF-LABEL: fmax_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmax.s fa0, fa0, fa1 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fmax_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmaxf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmax_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmaxf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call float @llvm.maxnum.f32(float %a, float %b) + ret float %1 +} + +declare float @llvm.fma.f32(float, float, float) + +define float @fmadd_s(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fmadd_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmadd.s fa0, fa0, fa1, fa2 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fmadd_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmaf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmadd_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmaf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call float @llvm.fma.f32(float %a, float %b, float %c) + ret float %1 +} + +define float @fmsub_s(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fmsub_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmv.w.x fa5, zero +; CHECKIF-NEXT: fadd.s fa5, fa2, fa5 +; CHECKIF-NEXT: fmsub.s fa0, fa0, fa1, fa5 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fmsub_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 4(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv s1, a1 +; RV32I-NEXT: lui a0, %hi(.LCPI11_0) +; RV32I-NEXT: lw a1, %lo(.LCPI11_0)(a0) +; RV32I-NEXT: mv a0, a2 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: xor a2, a0, a2 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call fmaf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmsub_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -32 +; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv s1, a1 +; RV64I-NEXT: lui a0, %hi(.LCPI11_0) +; RV64I-NEXT: lw a1, %lo(.LCPI11_0)(a0) +; RV64I-NEXT: mv a0, a2 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: lui a2, 524288 +; RV64I-NEXT: xor a2, a0, a2 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call fmaf +; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: ret + %c_ = fadd float 0.0, %c ; avoid negation using xor + %negc = fneg float %c_ + %1 = call float @llvm.fma.f32(float %a, float %b, float %negc) + ret float %1 +} + +define float @fnmadd_s(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fnmadd_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmv.w.x fa5, zero +; CHECKIF-NEXT: fadd.s fa4, fa0, fa5 +; CHECKIF-NEXT: fadd.s fa5, fa2, fa5 +; CHECKIF-NEXT: fnmadd.s fa0, fa4, fa1, fa5 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fnmadd_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -32 +; RV32I-NEXT: sw ra, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a1 +; RV32I-NEXT: lui a1, %hi(.LCPI12_0) +; RV32I-NEXT: lw s1, %lo(.LCPI12_0)(a1) +; RV32I-NEXT: mv s2, a2 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: mv s3, a0 +; RV32I-NEXT: mv a0, s2 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: xor a1, s3, a2 +; RV32I-NEXT: xor a2, a0, a2 +; RV32I-NEXT: mv a0, a1 +; RV32I-NEXT: mv a1, s0 +; RV32I-NEXT: call fmaf +; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 32 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -48 +; RV64I-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI12_0) +; RV64I-NEXT: lw s1, %lo(.LCPI12_0)(a1) +; RV64I-NEXT: mv s2, a2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: mv s3, a0 +; RV64I-NEXT: mv a0, s2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: lui a2, 524288 +; RV64I-NEXT: xor a1, s3, a2 +; RV64I-NEXT: xor a2, a0, a2 +; RV64I-NEXT: mv a0, a1 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: call fmaf +; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s3, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 48 +; RV64I-NEXT: ret + %a_ = fadd float 0.0, %a + %c_ = fadd float 0.0, %c + %nega = fneg float %a_ + %negc = fneg float %c_ + %1 = call float @llvm.fma.f32(float %nega, float %b, float %negc) + ret float %1 +} + +define float @fnmadd_s_2(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fnmadd_s_2: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmv.w.x fa5, zero +; CHECKIF-NEXT: fadd.s fa4, fa1, fa5 +; CHECKIF-NEXT: fadd.s fa5, fa2, fa5 +; CHECKIF-NEXT: fnmadd.s fa0, fa4, fa0, fa5 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fnmadd_s_2: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -32 +; RV32I-NEXT: sw ra, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv a0, a1 +; RV32I-NEXT: lui a1, %hi(.LCPI13_0) +; RV32I-NEXT: lw s1, %lo(.LCPI13_0)(a1) +; RV32I-NEXT: mv s2, a2 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: mv s3, a0 +; RV32I-NEXT: mv a0, s2 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: xor a1, s3, a2 +; RV32I-NEXT: xor a2, a0, a2 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: call fmaf +; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 32 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_s_2: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -48 +; RV64I-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv a0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI13_0) +; RV64I-NEXT: lw s1, %lo(.LCPI13_0)(a1) +; RV64I-NEXT: mv s2, a2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: mv s3, a0 +; RV64I-NEXT: mv a0, s2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: lui a2, 524288 +; RV64I-NEXT: xor a1, s3, a2 +; RV64I-NEXT: xor a2, a0, a2 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: call fmaf +; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s3, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 48 +; RV64I-NEXT: ret + %b_ = fadd float 0.0, %b + %c_ = fadd float 0.0, %c + %negb = fneg float %b_ + %negc = fneg float %c_ + %1 = call float @llvm.fma.f32(float %a, float %negb, float %negc) + ret float %1 +} + +define float @fnmadd_s_3(float %a, float %b, float %c) nounwind { +; RV32IF-LABEL: fnmadd_s_3: +; RV32IF: # %bb.0: +; RV32IF-NEXT: fmadd.s ft0, fa0, fa1, fa2 +; RV32IF-NEXT: fneg.s fa0, ft0 +; RV32IF-NEXT: ret +; +; RV64IF-LABEL: fnmadd_s_3: +; RV64IF: # %bb.0: +; RV64IF-NEXT: fmadd.s ft0, fa0, fa1, fa2 +; RV64IF-NEXT: fneg.s fa0, ft0 +; RV64IF-NEXT: ret +; +; CHECKIF-LABEL: fnmadd_s_3: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmadd.s fa5, fa0, fa1, fa2 +; CHECKIF-NEXT: fneg.s fa0, fa5 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fnmadd_s_3: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmaf +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: xor a0, a0, a1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_s_3: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmaf +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call float @llvm.fma.f32(float %a, float %b, float %c) + %neg = fneg float %1 + ret float %neg +} + +define float @fnmadd_nsz(float %a, float %b, float %c) nounwind { +; RV32IF-LABEL: fnmadd_nsz: +; RV32IF: # %bb.0: +; RV32IF-NEXT: fnmadd.s fa0, fa0, fa1, fa2 +; RV32IF-NEXT: ret +; +; RV64IF-LABEL: fnmadd_nsz: +; RV64IF: # %bb.0: +; RV64IF-NEXT: fnmadd.s fa0, fa0, fa1, fa2 +; RV64IF-NEXT: ret +; +; CHECKIF-LABEL: fnmadd_nsz: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmadd.s fa5, fa0, fa1, fa2 +; CHECKIF-NEXT: fneg.s fa0, fa5 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fnmadd_nsz: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmaf +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: xor a0, a0, a1 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_nsz: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmaf +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = call nsz float @llvm.fma.f32(float %a, float %b, float %c) + %neg = fneg nsz float %1 + ret float %neg +} + +define float @fnmsub_s(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fnmsub_s: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmv.w.x fa5, zero +; CHECKIF-NEXT: fadd.s fa5, fa0, fa5 +; CHECKIF-NEXT: fnmsub.s fa0, fa5, fa1, fa2 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fnmsub_s: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 4(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a1 +; RV32I-NEXT: lui a1, %hi(.LCPI16_0) +; RV32I-NEXT: lw a1, %lo(.LCPI16_0)(a1) +; RV32I-NEXT: mv s1, a2 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: xor a0, a0, a1 +; RV32I-NEXT: mv a1, s0 +; RV32I-NEXT: mv a2, s1 +; RV32I-NEXT: call fmaf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmsub_s: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -32 +; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI16_0) +; RV64I-NEXT: lw a1, %lo(.LCPI16_0)(a1) +; RV64I-NEXT: mv s1, a2 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: mv a2, s1 +; RV64I-NEXT: call fmaf +; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: ret + %a_ = fadd float 0.0, %a + %nega = fneg float %a_ + %1 = call float @llvm.fma.f32(float %nega, float %b, float %c) + ret float %1 +} + +define float @fnmsub_s_2(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fnmsub_s_2: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmv.w.x fa5, zero +; CHECKIF-NEXT: fadd.s fa5, fa1, fa5 +; CHECKIF-NEXT: fnmsub.s fa0, fa5, fa0, fa2 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fnmsub_s_2: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 4(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv a0, a1 +; RV32I-NEXT: lui a1, %hi(.LCPI17_0) +; RV32I-NEXT: lw a1, %lo(.LCPI17_0)(a1) +; RV32I-NEXT: mv s1, a2 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: xor a1, a0, a1 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a2, s1 +; RV32I-NEXT: call fmaf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmsub_s_2: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -32 +; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv a0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI17_0) +; RV64I-NEXT: lw a1, %lo(.LCPI17_0)(a1) +; RV64I-NEXT: mv s1, a2 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: xor a1, a0, a1 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a2, s1 +; RV64I-NEXT: call fmaf +; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: ret + %b_ = fadd float 0.0, %b + %negb = fneg float %b_ + %1 = call float @llvm.fma.f32(float %a, float %negb, float %c) + ret float %1 +} + +define float @fmadd_s_contract(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fmadd_s_contract: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmadd.s fa0, fa0, fa1, fa2 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fmadd_s_contract: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a2 +; RV32I-NEXT: call __mulsf3 +; RV32I-NEXT: mv a1, s0 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmadd_s_contract: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 0(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a2 +; RV64I-NEXT: call __mulsf3 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %1 = fmul contract float %a, %b + %2 = fadd contract float %1, %c + ret float %2 +} + +define float @fmsub_s_contract(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fmsub_s_contract: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmv.w.x fa5, zero +; CHECKIF-NEXT: fadd.s fa5, fa2, fa5 +; CHECKIF-NEXT: fmul.s fa4, fa0, fa1 +; CHECKIF-NEXT: fsub.s fa0, fa4, fa5 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fmsub_s_contract: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 4(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 0(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv s1, a1 +; RV32I-NEXT: lui a0, %hi(.LCPI19_0) +; RV32I-NEXT: lw a1, %lo(.LCPI19_0)(a0) +; RV32I-NEXT: mv a0, a2 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: mv s2, a0 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __mulsf3 +; RV32I-NEXT: mv a1, s2 +; RV32I-NEXT: call __subsf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 4(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 0(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmsub_s_contract: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -32 +; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 0(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv s1, a1 +; RV64I-NEXT: lui a0, %hi(.LCPI19_0) +; RV64I-NEXT: lw a1, %lo(.LCPI19_0)(a0) +; RV64I-NEXT: mv a0, a2 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: mv s2, a0 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __mulsf3 +; RV64I-NEXT: mv a1, s2 +; RV64I-NEXT: call __subsf3 +; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: ret + %c_ = fadd float 0.0, %c ; avoid negation using xor + %1 = fmul contract float %a, %b + %2 = fsub contract float %1, %c_ + ret float %2 +} + +define float @fnmadd_s_contract(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fnmadd_s_contract: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmv.w.x fa5, zero +; CHECKIF-NEXT: fadd.s fa4, fa0, fa5 +; CHECKIF-NEXT: fadd.s fa3, fa1, fa5 +; CHECKIF-NEXT: fadd.s fa5, fa2, fa5 +; CHECKIF-NEXT: fmul.s fa4, fa4, fa3 +; CHECKIF-NEXT: fneg.s fa4, fa4 +; CHECKIF-NEXT: fsub.s fa0, fa4, fa5 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fnmadd_s_contract: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -32 +; RV32I-NEXT: sw ra, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a1 +; RV32I-NEXT: lui a1, %hi(.LCPI20_0) +; RV32I-NEXT: lw s1, %lo(.LCPI20_0)(a1) +; RV32I-NEXT: mv s2, a2 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: mv s3, a0 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: mv a0, s2 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: mv s1, a0 +; RV32I-NEXT: mv a0, s3 +; RV32I-NEXT: mv a1, s0 +; RV32I-NEXT: call __mulsf3 +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: xor a0, a0, a1 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __subsf3 +; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 32 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmadd_s_contract: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -48 +; RV64I-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI20_0) +; RV64I-NEXT: lw s1, %lo(.LCPI20_0)(a1) +; RV64I-NEXT: mv s2, a2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: mv s3, a0 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: mv s0, a0 +; RV64I-NEXT: mv a0, s2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: mv s1, a0 +; RV64I-NEXT: mv a0, s3 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: call __mulsf3 +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __subsf3 +; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s3, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 48 +; RV64I-NEXT: ret + %a_ = fadd float 0.0, %a ; avoid negation using xor + %b_ = fadd float 0.0, %b ; avoid negation using xor + %c_ = fadd float 0.0, %c ; avoid negation using xor + %1 = fmul contract float %a_, %b_ + %2 = fneg float %1 + %3 = fsub contract float %2, %c_ + ret float %3 +} + +define float @fnmsub_s_contract(float %a, float %b, float %c) nounwind { +; CHECKIF-LABEL: fnmsub_s_contract: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: fmv.w.x fa5, zero +; CHECKIF-NEXT: fadd.s fa4, fa0, fa5 +; CHECKIF-NEXT: fadd.s fa5, fa1, fa5 +; CHECKIF-NEXT: fnmsub.s fa0, fa4, fa5, fa2 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fnmsub_s_contract: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -32 +; RV32I-NEXT: sw ra, 28(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 24(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s1, 20(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s2, 16(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s3, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a1 +; RV32I-NEXT: lui a1, %hi(.LCPI21_0) +; RV32I-NEXT: lw s1, %lo(.LCPI21_0)(a1) +; RV32I-NEXT: mv s2, a2 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: mv s3, a0 +; RV32I-NEXT: mv a0, s0 +; RV32I-NEXT: mv a1, s1 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: mv a1, a0 +; RV32I-NEXT: mv a0, s3 +; RV32I-NEXT: call __mulsf3 +; RV32I-NEXT: mv a1, a0 +; RV32I-NEXT: mv a0, s2 +; RV32I-NEXT: call __subsf3 +; RV32I-NEXT: lw ra, 28(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 24(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s1, 20(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s2, 16(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s3, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 32 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fnmsub_s_contract: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -48 +; RV64I-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s2, 16(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s3, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a1 +; RV64I-NEXT: lui a1, %hi(.LCPI21_0) +; RV64I-NEXT: lw s1, %lo(.LCPI21_0)(a1) +; RV64I-NEXT: mv s2, a2 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: mv s3, a0 +; RV64I-NEXT: mv a0, s0 +; RV64I-NEXT: mv a1, s1 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: mv a1, a0 +; RV64I-NEXT: mv a0, s3 +; RV64I-NEXT: call __mulsf3 +; RV64I-NEXT: mv a1, a0 +; RV64I-NEXT: mv a0, s2 +; RV64I-NEXT: call __subsf3 +; RV64I-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s2, 16(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s3, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 48 +; RV64I-NEXT: ret + %a_ = fadd float 0.0, %a ; avoid negation using xor + %b_ = fadd float 0.0, %b ; avoid negation using xor + %1 = fmul contract float %a_, %b_ + %2 = fsub contract float %c, %1 + ret float %2 +} + +define float @fsgnjx_f32(float %x, float %y) nounwind { +; CHECKIF-LABEL: fsgnjx_f32: +; CHECKIF: # %bb.0: +; CHECKIF-NEXT: lui a0, 260096 +; CHECKIF-NEXT: fmv.w.x fa5, a0 +; CHECKIF-NEXT: fsgnj.s fa5, fa5, fa0 +; CHECKIF-NEXT: fmul.s fa0, fa5, fa1 +; CHECKIF-NEXT: ret +; +; RV32I-LABEL: fsgnjx_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: lui a3, 260096 +; RV32I-NEXT: and a0, a0, a2 +; RV32I-NEXT: or a0, a0, a3 +; RV32I-NEXT: call __mulsf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fsgnjx_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: lui a2, 524288 +; RV64I-NEXT: lui a3, 260096 +; RV64I-NEXT: and a0, a0, a2 +; RV64I-NEXT: or a0, a0, a3 +; RV64I-NEXT: call __mulsf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %z = call float @llvm.copysign.f32(float 1.0, float %x) + %mul = fmul float %z, %y + ret float %mul +} diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/float-convert.ll b/llvm/test/CodeGen/RISCV/GlobalISel/float-convert.ll index 7e96d529af36f..e6df28f5f28d1 100644 --- a/llvm/test/CodeGen/RISCV/GlobalISel/float-convert.ll +++ b/llvm/test/CodeGen/RISCV/GlobalISel/float-convert.ll @@ -27,23 +27,21 @@ define i32 @fcvt_wu_s(float %a) nounwind { define i32 @fcvt_wu_s_multiple_use(float %x, ptr %y) nounwind { ; RV32IF-LABEL: fcvt_wu_s_multiple_use: ; RV32IF: # %bb.0: -; RV32IF-NEXT: fcvt.wu.s a1, fa0, rtz -; RV32IF-NEXT: li a0, 1 -; RV32IF-NEXT: beqz a1, .LBB2_2 +; RV32IF-NEXT: fcvt.wu.s a0, fa0, rtz +; RV32IF-NEXT: bnez a0, .LBB2_2 ; RV32IF-NEXT: # %bb.1: -; RV32IF-NEXT: mv a0, a1 +; RV32IF-NEXT: li a0, 1 ; RV32IF-NEXT: .LBB2_2: ; RV32IF-NEXT: ret ; ; RV64IF-LABEL: fcvt_wu_s_multiple_use: ; RV64IF: # %bb.0: -; RV64IF-NEXT: fcvt.wu.s a1, fa0, rtz -; RV64IF-NEXT: slli a0, a1, 32 -; RV64IF-NEXT: srli a2, a0, 32 -; RV64IF-NEXT: li a0, 1 -; RV64IF-NEXT: beqz a2, .LBB2_2 +; RV64IF-NEXT: fcvt.wu.s a0, fa0, rtz +; RV64IF-NEXT: slli a1, a0, 32 +; RV64IF-NEXT: srli a1, a1, 32 +; RV64IF-NEXT: bnez a1, .LBB2_2 ; RV64IF-NEXT: # %bb.1: -; RV64IF-NEXT: mv a0, a1 +; RV64IF-NEXT: li a0, 1 ; RV64IF-NEXT: .LBB2_2: ; RV64IF-NEXT: ret %a = fptoui float %x to i32 diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/float-intrinsics.ll b/llvm/test/CodeGen/RISCV/GlobalISel/float-intrinsics.ll index 39a5beb317ab9..4d2b74ec735a1 100644 --- a/llvm/test/CodeGen/RISCV/GlobalISel/float-intrinsics.ll +++ b/llvm/test/CodeGen/RISCV/GlobalISel/float-intrinsics.ll @@ -11,6 +11,10 @@ ; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -global-isel -mattr=+d \ ; RUN: -verify-machineinstrs -target-abi=lp64d \ ; RUN: | FileCheck -check-prefix=RV64IF %s +; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -global-isel \ +; RUN: -verify-machineinstrs | FileCheck -check-prefix=RV32I %s +; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -global-isel \ +; RUN: -verify-machineinstrs | FileCheck -check-prefix=RV64I %s define float @sqrt_f32(float %a) nounwind { ; RV32IF-LABEL: sqrt_f32: @@ -22,6 +26,24 @@ define float @sqrt_f32(float %a) nounwind { ; RV64IF: # %bb.0: ; RV64IF-NEXT: fsqrt.s fa0, fa0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: sqrt_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call sqrtf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: sqrt_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call sqrtf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.sqrt.f32(float %a) ret float %1 } @@ -36,6 +58,24 @@ define float @fma_f32(float %a, float %b, float %c) nounwind { ; RV64IF: # %bb.0: ; RV64IF-NEXT: fmadd.s fa0, fa0, fa1, fa2 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: fma_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmaf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fma_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmaf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.fma.f32(float %a, float %b, float %c) ret float %1 } @@ -50,6 +90,34 @@ define float @fmuladd_f32(float %a, float %b, float %c) nounwind { ; RV64IF: # %bb.0: ; RV64IF-NEXT: fmadd.s fa0, fa0, fa1, fa2 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: fmuladd_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a2 +; RV32I-NEXT: call __mulsf3 +; RV32I-NEXT: mv a1, s0 +; RV32I-NEXT: call __addsf3 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fmuladd_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 0(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a2 +; RV64I-NEXT: call __mulsf3 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: call __addsf3 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.fmuladd.f32(float %a, float %b, float %c) ret float %1 } @@ -64,6 +132,20 @@ define float @fabs_f32(float %a) nounwind { ; RV64IF: # %bb.0: ; RV64IF-NEXT: fabs.s fa0, fa0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: fabs_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: and a0, a0, a1 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fabs_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: addiw a1, a1, -1 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: ret %1 = call float @llvm.fabs.f32(float %a) ret float %1 } @@ -78,6 +160,24 @@ define float @minnum_f32(float %a, float %b) nounwind { ; RV64IF: # %bb.0: ; RV64IF-NEXT: fmin.s fa0, fa0, fa1 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: minnum_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fminf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: minnum_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fminf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.minnum.f32(float %a, float %b) ret float %1 } @@ -92,6 +192,24 @@ define float @maxnum_f32(float %a, float %b) nounwind { ; RV64IF: # %bb.0: ; RV64IF-NEXT: fmax.s fa0, fa0, fa1 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: maxnum_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call fmaxf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: maxnum_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call fmaxf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.maxnum.f32(float %a, float %b) ret float %1 } @@ -106,6 +224,24 @@ define float @copysign_f32(float %a, float %b) nounwind { ; RV64IF: # %bb.0: ; RV64IF-NEXT: fsgnj.s fa0, fa0, fa1 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: copysign_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a2, 524288 +; RV32I-NEXT: addi a3, a2, -1 +; RV32I-NEXT: and a0, a0, a3 +; RV32I-NEXT: and a1, a1, a2 +; RV32I-NEXT: or a0, a0, a1 +; RV32I-NEXT: ret +; +; RV64I-LABEL: copysign_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a2, 524288 +; RV64I-NEXT: addiw a3, a2, -1 +; RV64I-NEXT: and a0, a0, a3 +; RV64I-NEXT: and a1, a1, a2 +; RV64I-NEXT: or a0, a0, a1 +; RV64I-NEXT: ret %1 = call float @llvm.copysign.f32(float %a, float %b) ret float %1 } @@ -128,6 +264,24 @@ define float @ceil_f32(float %a) nounwind { ; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IF-NEXT: addi sp, sp, 16 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: ceil_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call ceilf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: ceil_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call ceilf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.ceil.f32(float %a) ret float %1 } @@ -150,6 +304,24 @@ define float @trunc_f32(float %a) nounwind { ; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IF-NEXT: addi sp, sp, 16 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: trunc_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call truncf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: trunc_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call truncf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.trunc.f32(float %a) ret float %1 } @@ -172,6 +344,24 @@ define float @rint_f32(float %a) nounwind { ; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IF-NEXT: addi sp, sp, 16 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: rint_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call rintf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: rint_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call rintf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.rint.f32(float %a) ret float %1 } @@ -194,6 +384,24 @@ define float @nearbyint_f32(float %a) nounwind { ; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IF-NEXT: addi sp, sp, 16 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: nearbyint_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call nearbyintf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: nearbyint_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call nearbyintf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.nearbyint.f32(float %a) ret float %1 } @@ -216,6 +424,24 @@ define float @round_f32(float %a) nounwind { ; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IF-NEXT: addi sp, sp, 16 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: round_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call roundf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: round_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call roundf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.round.f32(float %a) ret float %1 } @@ -238,6 +464,24 @@ define float @roundeven_f32(float %a) nounwind { ; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload ; RV64IF-NEXT: addi sp, sp, 16 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: roundeven_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call roundevenf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: roundeven_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call roundevenf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret %1 = call float @llvm.roundeven.f32(float %a) ret float %1 } @@ -256,6 +500,68 @@ define i1 @fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 927 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: lui a2, 522240 +; RV32I-NEXT: lui a3, 2048 +; RV32I-NEXT: lui a4, 1046528 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: addi a3, a3, -1 +; RV32I-NEXT: and a1, a0, a1 +; RV32I-NEXT: addi a5, a1, -1 +; RV32I-NEXT: sltu a3, a5, a3 +; RV32I-NEXT: lui a5, 520192 +; RV32I-NEXT: xor a0, a0, a1 +; RV32I-NEXT: add a4, a1, a4 +; RV32I-NEXT: sltu a4, a4, a5 +; RV32I-NEXT: xor a5, a1, a2 +; RV32I-NEXT: sltu a2, a2, a1 +; RV32I-NEXT: seqz a1, a1 +; RV32I-NEXT: snez a0, a0 +; RV32I-NEXT: seqz a5, a5 +; RV32I-NEXT: and a3, a3, a0 +; RV32I-NEXT: or a1, a1, a5 +; RV32I-NEXT: and a0, a4, a0 +; RV32I-NEXT: or a1, a1, a3 +; RV32I-NEXT: or a0, a2, a0 +; RV32I-NEXT: or a0, a1, a0 +; RV32I-NEXT: ret +; +; RV64I-LABEL: fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: lui a2, 522240 +; RV64I-NEXT: slli a3, a0, 32 +; RV64I-NEXT: li a4, 1 +; RV64I-NEXT: lui a5, 2048 +; RV64I-NEXT: addiw a1, a1, -1 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: seqz a1, a0 +; RV64I-NEXT: xor a6, a0, a2 +; RV64I-NEXT: seqz a6, a6 +; RV64I-NEXT: or a1, a1, a6 +; RV64I-NEXT: lui a6, 520192 +; RV64I-NEXT: srli a3, a3, 32 +; RV64I-NEXT: xor a3, a3, a0 +; RV64I-NEXT: sub a4, a0, a4 +; RV64I-NEXT: sltu a2, a2, a0 +; RV64I-NEXT: sub a0, a0, a5 +; RV64I-NEXT: addiw a5, a5, -1 +; RV64I-NEXT: snez a3, a3 +; RV64I-NEXT: slli a4, a4, 32 +; RV64I-NEXT: slli a0, a0, 32 +; RV64I-NEXT: srli a4, a4, 32 +; RV64I-NEXT: srli a0, a0, 32 +; RV64I-NEXT: sltu a4, a4, a5 +; RV64I-NEXT: or a1, a1, a2 +; RV64I-NEXT: sltu a0, a0, a6 +; RV64I-NEXT: and a4, a4, a3 +; RV64I-NEXT: or a1, a1, a4 +; RV64I-NEXT: and a0, a0, a3 +; RV64I-NEXT: or a0, a1, a0 +; RV64I-NEXT: ret %cmp = call i1 @llvm.is.fpclass.f32(float %x, i32 639) ret i1 %cmp } @@ -274,6 +580,24 @@ define i1 @isnan_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 768 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: isnan_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: lui a2, 522240 +; RV32I-NEXT: and a0, a0, a1 +; RV32I-NEXT: sltu a0, a2, a0 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isnan_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: addiw a1, a1, -1 +; RV64I-NEXT: lui a2, 522240 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: sltu a0, a2, a0 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 3) ; nan ret i1 %1 } @@ -292,6 +616,26 @@ define i1 @isqnan_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 512 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: isqnan_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: and a0, a0, a1 +; RV32I-NEXT: lui a1, 523264 +; RV32I-NEXT: sltu a0, a0, a1 +; RV32I-NEXT: xori a0, a0, 1 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isqnan_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: addiw a1, a1, -1 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: lui a1, 523264 +; RV64I-NEXT: sltu a0, a0, a1 +; RV64I-NEXT: xori a0, a0, 1 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 2) ; qnan ret i1 %1 } @@ -310,6 +654,30 @@ define i1 @issnan_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 256 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: issnan_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: lui a2, 522240 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: and a0, a0, a1 +; RV32I-NEXT: lui a1, 523264 +; RV32I-NEXT: sltu a2, a2, a0 +; RV32I-NEXT: sltu a0, a0, a1 +; RV32I-NEXT: and a0, a2, a0 +; RV32I-NEXT: ret +; +; RV64I-LABEL: issnan_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: lui a2, 522240 +; RV64I-NEXT: addiw a1, a1, -1 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: lui a1, 523264 +; RV64I-NEXT: sltu a2, a2, a0 +; RV64I-NEXT: sltu a0, a0, a1 +; RV64I-NEXT: and a0, a2, a0 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 1) ; snan ret i1 %1 } @@ -328,6 +696,26 @@ define i1 @isinf_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 129 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: isinf_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: lui a2, 522240 +; RV32I-NEXT: and a0, a0, a1 +; RV32I-NEXT: xor a0, a0, a2 +; RV32I-NEXT: seqz a0, a0 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isinf_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: addiw a1, a1, -1 +; RV64I-NEXT: lui a2, 522240 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: xor a0, a0, a2 +; RV64I-NEXT: seqz a0, a0 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 516) ; 0x204 = "inf" ret i1 %1 } @@ -346,6 +734,22 @@ define i1 @isposinf_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 128 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: isposinf_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 522240 +; RV32I-NEXT: xor a0, a0, a1 +; RV32I-NEXT: seqz a0, a0 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isposinf_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 522240 +; RV64I-NEXT: slli a0, a0, 32 +; RV64I-NEXT: srli a0, a0, 32 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: seqz a0, a0 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 512) ; 0x200 = "+inf" ret i1 %1 } @@ -364,6 +768,23 @@ define i1 @isneginf_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 1 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: isneginf_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 1046528 +; RV32I-NEXT: xor a0, a0, a1 +; RV32I-NEXT: seqz a0, a0 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isneginf_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: slli a0, a0, 32 +; RV64I-NEXT: li a1, 511 +; RV64I-NEXT: srli a0, a0, 32 +; RV64I-NEXT: slli a1, a1, 23 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: seqz a0, a0 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 4) ; "-inf" ret i1 %1 } @@ -382,6 +803,24 @@ define i1 @isfinite_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 126 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: isfinite_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: lui a2, 522240 +; RV32I-NEXT: and a0, a0, a1 +; RV32I-NEXT: sltu a0, a0, a2 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isfinite_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: addiw a1, a1, -1 +; RV64I-NEXT: lui a2, 522240 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: sltu a0, a0, a2 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 504) ; 0x1f8 = "finite" ret i1 %1 } @@ -400,6 +839,20 @@ define i1 @isposfinite_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 112 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: isposfinite_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 522240 +; RV32I-NEXT: sltu a0, a0, a1 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isposfinite_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 522240 +; RV64I-NEXT: slli a0, a0, 32 +; RV64I-NEXT: srli a0, a0, 32 +; RV64I-NEXT: sltu a0, a0, a1 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 448) ; 0x1c0 = "+finite" ret i1 %1 } @@ -418,6 +871,32 @@ define i1 @isnegfinite_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 14 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: isnegfinite_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: lui a2, 522240 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: and a1, a0, a1 +; RV32I-NEXT: xor a0, a0, a1 +; RV32I-NEXT: snez a0, a0 +; RV32I-NEXT: sltu a1, a1, a2 +; RV32I-NEXT: and a0, a1, a0 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isnegfinite_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: lui a2, 522240 +; RV64I-NEXT: addiw a1, a1, -1 +; RV64I-NEXT: and a1, a0, a1 +; RV64I-NEXT: slli a0, a0, 32 +; RV64I-NEXT: srli a0, a0, 32 +; RV64I-NEXT: xor a0, a0, a1 +; RV64I-NEXT: snez a0, a0 +; RV64I-NEXT: sltu a1, a1, a2 +; RV64I-NEXT: and a0, a1, a0 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 56) ; 0x38 = "-finite" ret i1 %1 } @@ -436,6 +915,30 @@ define i1 @isnotfinite_fpclass(float %x) { ; RV64IF-NEXT: andi a0, a0, 897 ; RV64IF-NEXT: snez a0, a0 ; RV64IF-NEXT: ret +; +; RV32I-LABEL: isnotfinite_fpclass: +; RV32I: # %bb.0: +; RV32I-NEXT: lui a1, 524288 +; RV32I-NEXT: lui a2, 522240 +; RV32I-NEXT: addi a1, a1, -1 +; RV32I-NEXT: and a0, a0, a1 +; RV32I-NEXT: xor a1, a0, a2 +; RV32I-NEXT: seqz a1, a1 +; RV32I-NEXT: sltu a0, a2, a0 +; RV32I-NEXT: or a0, a1, a0 +; RV32I-NEXT: ret +; +; RV64I-LABEL: isnotfinite_fpclass: +; RV64I: # %bb.0: +; RV64I-NEXT: lui a1, 524288 +; RV64I-NEXT: lui a2, 522240 +; RV64I-NEXT: addiw a1, a1, -1 +; RV64I-NEXT: and a0, a0, a1 +; RV64I-NEXT: xor a1, a0, a2 +; RV64I-NEXT: seqz a1, a1 +; RV64I-NEXT: sltu a0, a2, a0 +; RV64I-NEXT: or a0, a1, a0 +; RV64I-NEXT: ret %1 = call i1 @llvm.is.fpclass.f32(float %x, i32 519) ; ox207 = "inf|nan" ret i1 %1 } diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir index 73311ae287e7d..74749d8f1944b 100644 --- a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir +++ b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir @@ -507,7 +507,6 @@ # DEBUG-NEXT:.. type index coverage check SKIPPED: no rules defined # DEBUG-NEXT:.. imm index coverage check SKIPPED: no rules defined # DEBUG-NEXT: G_FNEG (opcode {{[0-9]+}}): 1 type index, 0 imm indices -# DEBUG-NEXT: .. opcode {{[0-9]+}} is aliased to {{[0-9]+}} # DEBUG-NEXT: .. the first uncovered type index: 1, OK # DEBUG-NEXT: .. the first uncovered imm index: 0, OK # DEBUG-NEXT: G_FPEXT (opcode {{[0-9]+}}): 2 type indices, 0 imm indices @@ -541,8 +540,8 @@ # DEBUG-NEXT: .. the first uncovered type index: 1, OK # DEBUG-NEXT: .. the first uncovered imm index: 0, OK # DEBUG-NEXT: G_FCOPYSIGN (opcode {{[0-9]+}}): 2 type indices -# DEBUG-NEXT: .. the first uncovered type index: 2, OK -# DEBUG-NEXT: .. the first uncovered imm index: 0, OK +# DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected +# DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected # DEBUG-NEXT: G_IS_FPCLASS (opcode {{[0-9]+}}): 2 type indices, 0 imm indices # DEBUG-NEXT: .. the first uncovered type index: 2, OK # DEBUG-NEXT: .. the first uncovered imm index: 0, OK diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-ext-rv64.mir b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-ext-rv64.mir index 650804db39831..f3bc1ce28cfa6 100644 --- a/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-ext-rv64.mir +++ b/llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-ext-rv64.mir @@ -44,3 +44,117 @@ body: | PseudoRET implicit $x10 ... +--- +name: anyext_16_i32 +body: | + ; CHECK-LABEL: name: anyext_16_i32 + ; CHECK: bb.0.entry: + ; CHECK-NEXT: successors: %bb.1(0x80000000) + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: bb.1: + ; CHECK-NEXT: liveins: $x10, $x11 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10 + ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11 + ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0 + ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[C]](s64) + ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s16)) + ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[LOAD]](s16) + ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1 + ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C1]] + ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s64), [[ANYEXT]], [[TRUNC]] + ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s64) = G_ANYEXT [[SELECT]](s32) + ; CHECK-NEXT: $x10 = COPY [[ANYEXT1]](s64) + ; CHECK-NEXT: PseudoRET implicit $x10 + bb.0.entry: + bb.1: + liveins: $x10, $x11 + + %0:_(p0) = COPY $x10 + %1:_(s64) = COPY $x11 + %2:_(s1) = G_TRUNC %1(s64) + %3:_(s32) = G_CONSTANT i32 0 + %4:_(s16) = G_LOAD %0(p0) :: (load (s16)) + %5:_(s32) = G_ANYEXT %4(s16) + %6:_(s32) = G_SELECT %2(s1), %5, %3 + %7:_(s64) = G_ANYEXT %6(s32) + $x10 = COPY %7(s64) + PseudoRET implicit $x10 + +... +--- +name: sext_16_i32 +body: | + ; CHECK-LABEL: name: sext_16_i32 + ; CHECK: bb.0.entry: + ; CHECK-NEXT: successors: %bb.1(0x80000000) + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: bb.1: + ; CHECK-NEXT: liveins: $x10, $x11 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10 + ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11 + ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0 + ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[C]](s64) + ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s16)) + ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[LOAD]](s16) + ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1 + ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C1]] + ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s64), [[SEXT]], [[TRUNC]] + ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SELECT]](s32) + ; CHECK-NEXT: $x10 = COPY [[ANYEXT]](s64) + ; CHECK-NEXT: PseudoRET implicit $x10 + bb.0.entry: + bb.1: + liveins: $x10, $x11 + + %0:_(p0) = COPY $x10 + %1:_(s64) = COPY $x11 + %2:_(s1) = G_TRUNC %1(s64) + %3:_(s32) = G_CONSTANT i32 0 + %4:_(s16) = G_LOAD %0(p0) :: (load (s16)) + %5:_(s32) = G_SEXT %4(s16) + %6:_(s32) = G_SELECT %2(s1), %5, %3 + %7:_(s64) = G_ANYEXT %6(s32) + $x10 = COPY %7(s64) + PseudoRET implicit $x10 + +... +--- +name: zext_16_i32 +body: | + ; CHECK-LABEL: name: zext_16_i32 + ; CHECK: bb.0.entry: + ; CHECK-NEXT: successors: %bb.1(0x80000000) + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: bb.1: + ; CHECK-NEXT: liveins: $x10, $x11 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10 + ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11 + ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 0 + ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[C]](s64) + ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s16) = G_LOAD [[COPY]](p0) :: (load (s16)) + ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[LOAD]](s16) + ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1 + ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C1]] + ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[AND]](s64), [[ZEXT]], [[TRUNC]] + ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SELECT]](s32) + ; CHECK-NEXT: $x10 = COPY [[ANYEXT]](s64) + ; CHECK-NEXT: PseudoRET implicit $x10 + bb.0.entry: + bb.1: + liveins: $x10, $x11 + + %0:_(p0) = COPY $x10 + %1:_(s64) = COPY $x11 + %2:_(s1) = G_TRUNC %1(s64) + %3:_(s32) = G_CONSTANT i32 0 + %4:_(s16) = G_LOAD %0(p0) :: (load (s16)) + %5:_(s32) = G_ZEXT %4(s16) + %6:_(s32) = G_SELECT %2(s1), %5, %3 + %7:_(s64) = G_ANYEXT %6(s32) + $x10 = COPY %7(s64) + PseudoRET implicit $x10 + +... diff --git a/llvm/test/CodeGen/RISCV/GlobalISel/rv64zbb.ll b/llvm/test/CodeGen/RISCV/GlobalISel/rv64zbb.ll index 94c03c400ffa3..16c588fa2f2ce 100644 --- a/llvm/test/CodeGen/RISCV/GlobalISel/rv64zbb.ll +++ b/llvm/test/CodeGen/RISCV/GlobalISel/rv64zbb.ll @@ -196,11 +196,9 @@ define signext i32 @log2_ceil_i32(i32 signext %a) nounwind { define signext i32 @findLastSet_i32(i32 signext %a) nounwind { ; RV64I-LABEL: findLastSet_i32: ; RV64I: # %bb.0: -; RV64I-NEXT: addi sp, sp, -32 -; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill -; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill -; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill -; RV64I-NEXT: li s0, -1 +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 0(sp) # 8-byte Folded Spill ; RV64I-NEXT: slli a1, a0, 32 ; RV64I-NEXT: srliw a2, a0, 1 ; RV64I-NEXT: lui a3, 349525 @@ -227,36 +225,37 @@ define signext i32 @findLastSet_i32(i32 signext %a) nounwind { ; RV64I-NEXT: srli a2, a0, 4 ; RV64I-NEXT: add a0, a2, a0 ; RV64I-NEXT: lui a2, 4112 -; RV64I-NEXT: srli s1, a1, 32 +; RV64I-NEXT: srli s0, a1, 32 ; RV64I-NEXT: addiw a1, a3, -241 ; RV64I-NEXT: and a0, a0, a1 ; RV64I-NEXT: addiw a1, a2, 257 ; RV64I-NEXT: call __muldi3 -; RV64I-NEXT: beqz s1, .LBB3_2 +; RV64I-NEXT: beqz s0, .LBB3_2 ; RV64I-NEXT: # %bb.1: ; RV64I-NEXT: srliw a0, a0, 24 ; RV64I-NEXT: li a1, 32 ; RV64I-NEXT: subw a1, a1, a0 -; RV64I-NEXT: xori s0, a1, 31 +; RV64I-NEXT: xori a0, a1, 31 +; RV64I-NEXT: j .LBB3_3 ; RV64I-NEXT: .LBB3_2: -; RV64I-NEXT: mv a0, s0 -; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload -; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload -; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload -; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: li a0, -1 +; RV64I-NEXT: .LBB3_3: +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret ; ; RV64ZBB-LABEL: findLastSet_i32: ; RV64ZBB: # %bb.0: ; RV64ZBB-NEXT: slli a1, a0, 32 -; RV64ZBB-NEXT: srli a2, a1, 32 -; RV64ZBB-NEXT: li a1, -1 -; RV64ZBB-NEXT: beqz a2, .LBB3_2 +; RV64ZBB-NEXT: srli a1, a1, 32 +; RV64ZBB-NEXT: beqz a1, .LBB3_2 ; RV64ZBB-NEXT: # %bb.1: ; RV64ZBB-NEXT: clzw a0, a0 -; RV64ZBB-NEXT: xori a1, a0, 31 +; RV64ZBB-NEXT: xori a0, a0, 31 +; RV64ZBB-NEXT: ret ; RV64ZBB-NEXT: .LBB3_2: -; RV64ZBB-NEXT: mv a0, a1 +; RV64ZBB-NEXT: li a0, -1 ; RV64ZBB-NEXT: ret %1 = call i32 @llvm.ctlz.i32(i32 %a, i1 true) %2 = xor i32 31, %1 @@ -493,14 +492,12 @@ define signext i32 @cttz_zero_undef_i32(i32 signext %a) nounwind { define signext i32 @findFirstSet_i32(i32 signext %a) nounwind { ; RV64I-LABEL: findFirstSet_i32: ; RV64I: # %bb.0: -; RV64I-NEXT: addi sp, sp, -32 -; RV64I-NEXT: sd ra, 24(sp) # 8-byte Folded Spill -; RV64I-NEXT: sd s0, 16(sp) # 8-byte Folded Spill -; RV64I-NEXT: sd s1, 8(sp) # 8-byte Folded Spill -; RV64I-NEXT: mv s1, a0 -; RV64I-NEXT: li s0, -1 +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 0(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a0 ; RV64I-NEXT: not a0, a0 -; RV64I-NEXT: addi a1, s1, -1 +; RV64I-NEXT: addi a1, s0, -1 ; RV64I-NEXT: lui a2, 349525 ; RV64I-NEXT: and a0, a0, a1 ; RV64I-NEXT: addiw a1, a2, 1365 @@ -521,29 +518,30 @@ define signext i32 @findFirstSet_i32(i32 signext %a) nounwind { ; RV64I-NEXT: and a0, a0, a2 ; RV64I-NEXT: addiw a1, a1, 257 ; RV64I-NEXT: call __muldi3 -; RV64I-NEXT: slli s1, s1, 32 -; RV64I-NEXT: srli s1, s1, 32 -; RV64I-NEXT: beqz s1, .LBB8_2 +; RV64I-NEXT: slli s0, s0, 32 +; RV64I-NEXT: srli s0, s0, 32 +; RV64I-NEXT: beqz s0, .LBB8_2 ; RV64I-NEXT: # %bb.1: -; RV64I-NEXT: srliw s0, a0, 24 +; RV64I-NEXT: srliw a0, a0, 24 +; RV64I-NEXT: j .LBB8_3 ; RV64I-NEXT: .LBB8_2: -; RV64I-NEXT: mv a0, s0 -; RV64I-NEXT: ld ra, 24(sp) # 8-byte Folded Reload -; RV64I-NEXT: ld s0, 16(sp) # 8-byte Folded Reload -; RV64I-NEXT: ld s1, 8(sp) # 8-byte Folded Reload -; RV64I-NEXT: addi sp, sp, 32 +; RV64I-NEXT: li a0, -1 +; RV64I-NEXT: .LBB8_3: +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 ; RV64I-NEXT: ret ; ; RV64ZBB-LABEL: findFirstSet_i32: ; RV64ZBB: # %bb.0: ; RV64ZBB-NEXT: slli a1, a0, 32 -; RV64ZBB-NEXT: srli a2, a1, 32 -; RV64ZBB-NEXT: li a1, -1 -; RV64ZBB-NEXT: beqz a2, .LBB8_2 +; RV64ZBB-NEXT: srli a1, a1, 32 +; RV64ZBB-NEXT: beqz a1, .LBB8_2 ; RV64ZBB-NEXT: # %bb.1: -; RV64ZBB-NEXT: ctzw a1, a0 +; RV64ZBB-NEXT: ctzw a0, a0 +; RV64ZBB-NEXT: ret ; RV64ZBB-NEXT: .LBB8_2: -; RV64ZBB-NEXT: mv a0, a1 +; RV64ZBB-NEXT: li a0, -1 ; RV64ZBB-NEXT: ret %1 = call i32 @llvm.cttz.i32(i32 %a, i1 true) %2 = icmp eq i32 %a, 0 diff --git a/llvm/test/CodeGen/RISCV/aext-to-sext.ll b/llvm/test/CodeGen/RISCV/aext-to-sext.ll index 888ea666d7131..f3f71a923bdc2 100644 --- a/llvm/test/CodeGen/RISCV/aext-to-sext.ll +++ b/llvm/test/CodeGen/RISCV/aext-to-sext.ll @@ -78,12 +78,14 @@ bar: define i64 @sext_phi_constants(i32 signext %c) { ; RV64I-LABEL: sext_phi_constants: ; RV64I: # %bb.0: -; RV64I-NEXT: li a1, -1 -; RV64I-NEXT: bnez a0, .LBB2_2 -; RV64I-NEXT: # %bb.1: # %iffalse -; RV64I-NEXT: li a1, -2 -; RV64I-NEXT: .LBB2_2: # %merge -; RV64I-NEXT: slli a0, a1, 32 +; RV64I-NEXT: beqz a0, .LBB2_2 +; RV64I-NEXT: # %bb.1: +; RV64I-NEXT: li a0, -1 +; RV64I-NEXT: j .LBB2_3 +; RV64I-NEXT: .LBB2_2: # %iffalse +; RV64I-NEXT: li a0, -2 +; RV64I-NEXT: .LBB2_3: # %merge +; RV64I-NEXT: slli a0, a0, 32 ; RV64I-NEXT: srli a0, a0, 32 ; RV64I-NEXT: ret %a = icmp ne i32 %c, 0 diff --git a/llvm/test/CodeGen/RISCV/attributes.ll b/llvm/test/CodeGen/RISCV/attributes.ll index 1c8c459d1b316..b47b5ec460a7c 100644 --- a/llvm/test/CodeGen/RISCV/attributes.ll +++ b/llvm/test/CodeGen/RISCV/attributes.ll @@ -306,7 +306,7 @@ ; RV32M: .attribute 5, "rv32i2p1_m2p0_zmmul1p0" ; RV32ZMMUL: .attribute 5, "rv32i2p1_zmmul1p0" ; RV32MZMMUL: .attribute 5, "rv32i2p1_m2p0_zmmul1p0" -; RV32A: .attribute 5, "rv32i2p1_a2p1" +; RV32A: .attribute 5, "rv32i2p1_a2p1_zaamo1p0_zalrsc1p0" ; RV32B: .attribute 5, "rv32i2p1_b1p0_zba1p0_zbb1p0_zbs1p0" ; RV32F: .attribute 5, "rv32i2p1_f2p2_zicsr2p0" ; RV32D: .attribute 5, "rv32i2p1_f2p2_d2p2_zicsr2p0" @@ -446,7 +446,7 @@ ; RV64M: .attribute 5, "rv64i2p1_m2p0_zmmul1p0" ; RV64ZMMUL: .attribute 5, "rv64i2p1_zmmul1p0" ; RV64MZMMUL: .attribute 5, "rv64i2p1_m2p0_zmmul1p0" -; RV64A: .attribute 5, "rv64i2p1_a2p1" +; RV64A: .attribute 5, "rv64i2p1_a2p1_zaamo1p0_zalrsc1p0" ; RV64B: .attribute 5, "rv64i2p1_b1p0_zba1p0_zbb1p0_zbs1p0" ; RV64F: .attribute 5, "rv64i2p1_f2p2_zicsr2p0" ; RV64D: .attribute 5, "rv64i2p1_f2p2_d2p2_zicsr2p0" @@ -590,14 +590,14 @@ ; RVI20U32: .attribute 5, "rv32i2p1" ; RVI20U64: .attribute 5, "rv64i2p1" -; RVA20U64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zmmul1p0_za128rs1p0" -; RVA20S64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zmmul1p0_za128rs1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0" -; RVA22U64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zihintpause2p0_zihpm2p0_zmmul1p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0" -; RVA22S64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_zmmul1p0_za64rs1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_ssccptr1p0_sscounterenw1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svpbmt1p0" -; RVA23U64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0_supm1p0" -; RVA23S64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_h1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0_sha1p0_shcounterenw1p0_shgatpa1p0_shtvala1p0_shvsatpa1p0_shvstvala1p0_shvstvecd1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_ssstateen1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" -; RVB23U64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zawrs1p0_zfa1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0" -; RVB23S64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zawrs1p0_zfa1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" +; RVA20U64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zmmul1p0_za128rs1p0_zaamo1p0_zalrsc1p0" +; RVA20S64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zmmul1p0_za128rs1p0_zaamo1p0_zalrsc1p0_ssccptr1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0" +; RVA22U64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zihintpause2p0_zihpm2p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0" +; RVA22S64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zifencei2p0_zihintpause2p0_zihpm2p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zfhmin1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_ssccptr1p0_sscounterenw1p0_sstvala1p0_sstvecd1p0_svade1p0_svbare1p0_svinval1p0_svpbmt1p0" +; RVA23U64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0_supm1p0" +; RVA23S64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_v1p0_h1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0_sha1p0_shcounterenw1p0_shgatpa1p0_shtvala1p0_shvsatpa1p0_shvstvala1p0_shvstvecd1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_ssnpm1p0_ssstateen1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_supm1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" +; RVB23U64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0" +; RVB23S64: .attribute 5, "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zifencei2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0" ; RVM23U32: .attribute 5, "rv32i2p1_m2p0_b1p0_zicbop1p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zimop1p0_zmmul1p0_zca1p0_zcb1p0_zce1p0_zcmop1p0_zcmp1p0_zcmt1p0_zba1p0_zbb1p0_zbs1p0" define i32 @addi(i32 %a) { diff --git a/llvm/test/CodeGen/RISCV/compress-opt-select.ll b/llvm/test/CodeGen/RISCV/compress-opt-select.ll index 2667fde89e935..f9333a45016a0 100644 --- a/llvm/test/CodeGen/RISCV/compress-opt-select.ll +++ b/llvm/test/CodeGen/RISCV/compress-opt-select.ll @@ -10,24 +10,24 @@ define i32 @ne_small_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_small_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a2, 20 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: bne a1, a2, .LBB0_2 +; RV32IFDC-NEXT: c.li a1, 20 +; RV32IFDC-NEXT: bne a0, a1, .LBB0_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB0_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_small_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 20 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB0_2 +; RV32IFD-NEXT: addi a1, zero, 20 +; RV32IFD-NEXT: bne a0, a1, .LBB0_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB0_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, 20 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -38,24 +38,24 @@ define i32 @ne_small_pos(i32 %in0) minsize { define i32 @ne_small_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_small_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a2, -20 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: bne a1, a2, .LBB1_2 +; RV32IFDC-NEXT: c.li a1, -20 +; RV32IFDC-NEXT: bne a0, a1, .LBB1_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB1_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_small_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -20 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB1_2 +; RV32IFD-NEXT: addi a1, zero, -20 +; RV32IFD-NEXT: bne a0, a1, .LBB1_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB1_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, -20 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -66,24 +66,24 @@ define i32 @ne_small_neg(i32 %in0) minsize { define i32 @ne_small_edge_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_small_edge_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a2, 31 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: bne a1, a2, .LBB2_2 +; RV32IFDC-NEXT: c.li a1, 31 +; RV32IFDC-NEXT: bne a0, a1, .LBB2_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB2_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_small_edge_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 31 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB2_2 +; RV32IFD-NEXT: addi a1, zero, 31 +; RV32IFD-NEXT: bne a0, a1, .LBB2_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB2_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, 31 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -94,24 +94,24 @@ define i32 @ne_small_edge_pos(i32 %in0) minsize { define i32 @ne_small_edge_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_small_edge_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a2, -32 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: bne a1, a2, .LBB3_2 +; RV32IFDC-NEXT: c.li a1, -32 +; RV32IFDC-NEXT: bne a0, a1, .LBB3_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB3_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_small_edge_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -32 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB3_2 +; RV32IFD-NEXT: addi a1, zero, -32 +; RV32IFD-NEXT: bne a0, a1, .LBB3_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB3_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, -32 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -123,23 +123,24 @@ define i32 @ne_small_edge_neg(i32 %in0) minsize { define i32 @ne_medium_ledge_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_medium_ledge_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, -33 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.bnez a1, .LBB4_2 +; RV32IFDC-NEXT: addi a0, a0, -33 +; RV32IFDC-NEXT: c.bnez a0, .LBB4_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB4_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_medium_ledge_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 33 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB4_2 +; RV32IFD-NEXT: addi a1, zero, 33 +; RV32IFD-NEXT: bne a0, a1, .LBB4_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB4_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, 33 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -151,23 +152,24 @@ define i32 @ne_medium_ledge_pos(i32 %in0) minsize { define i32 @ne_medium_ledge_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_medium_ledge_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, 33 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.bnez a1, .LBB5_2 +; RV32IFDC-NEXT: addi a0, a0, 33 +; RV32IFDC-NEXT: c.bnez a0, .LBB5_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB5_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_medium_ledge_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -33 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB5_2 +; RV32IFD-NEXT: addi a1, zero, -33 +; RV32IFD-NEXT: bne a0, a1, .LBB5_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB5_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, -33 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -179,23 +181,24 @@ define i32 @ne_medium_ledge_neg(i32 %in0) minsize { define i32 @ne_medium_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_medium_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, -63 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.bnez a1, .LBB6_2 +; RV32IFDC-NEXT: addi a0, a0, -63 +; RV32IFDC-NEXT: c.bnez a0, .LBB6_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB6_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_medium_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 63 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB6_2 +; RV32IFD-NEXT: addi a1, zero, 63 +; RV32IFD-NEXT: bne a0, a1, .LBB6_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB6_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, 63 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -207,23 +210,24 @@ define i32 @ne_medium_pos(i32 %in0) minsize { define i32 @ne_medium_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_medium_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, 63 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.bnez a1, .LBB7_2 +; RV32IFDC-NEXT: addi a0, a0, 63 +; RV32IFDC-NEXT: c.bnez a0, .LBB7_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB7_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_medium_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -63 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB7_2 +; RV32IFD-NEXT: addi a1, zero, -63 +; RV32IFD-NEXT: bne a0, a1, .LBB7_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB7_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, -63 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -235,23 +239,24 @@ define i32 @ne_medium_neg(i32 %in0) minsize { define i32 @ne_medium_bedge_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_medium_bedge_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, -2047 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.bnez a1, .LBB8_2 +; RV32IFDC-NEXT: addi a0, a0, -2047 +; RV32IFDC-NEXT: c.bnez a0, .LBB8_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB8_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_medium_bedge_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 2047 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB8_2 +; RV32IFD-NEXT: addi a1, zero, 2047 +; RV32IFD-NEXT: bne a0, a1, .LBB8_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB8_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, 2047 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -263,23 +268,24 @@ define i32 @ne_medium_bedge_pos(i32 %in0) minsize { define i32 @ne_medium_bedge_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_medium_bedge_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, 2047 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.bnez a1, .LBB9_2 +; RV32IFDC-NEXT: addi a0, a0, 2047 +; RV32IFDC-NEXT: c.bnez a0, .LBB9_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB9_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_medium_bedge_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -2047 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB9_2 +; RV32IFD-NEXT: addi a1, zero, -2047 +; RV32IFD-NEXT: bne a0, a1, .LBB9_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB9_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, -2047 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -290,26 +296,26 @@ define i32 @ne_medium_bedge_neg(i32 %in0) minsize { define i32 @ne_big_ledge_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_big_ledge_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a0, 1 -; RV32IFDC-NEXT: slli a2, a0, 11 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: bne a1, a2, .LBB10_2 +; RV32IFDC-NEXT: c.li a1, 1 +; RV32IFDC-NEXT: c.slli a1, 11 +; RV32IFDC-NEXT: bne a0, a1, .LBB10_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB10_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_big_ledge_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a0, zero, 1 -; RV32IFD-NEXT: slli a2, a0, 11 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB10_2 +; RV32IFD-NEXT: addi a1, zero, 1 +; RV32IFD-NEXT: slli a1, a1, 11 +; RV32IFD-NEXT: bne a0, a1, .LBB10_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB10_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, 2048 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -320,24 +326,24 @@ define i32 @ne_big_ledge_pos(i32 %in0) minsize { define i32 @ne_big_ledge_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: ne_big_ledge_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: addi a2, zero, -2048 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: bne a1, a2, .LBB11_2 +; RV32IFDC-NEXT: addi a1, zero, -2048 +; RV32IFDC-NEXT: bne a0, a1, .LBB11_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB11_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: ne_big_ledge_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -2048 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: bne a1, a2, .LBB11_2 +; RV32IFD-NEXT: addi a1, zero, -2048 +; RV32IFD-NEXT: bne a0, a1, .LBB11_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB11_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp ne i32 %in0, -2048 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -351,24 +357,24 @@ define i32 @ne_big_ledge_neg(i32 %in0) minsize { define i32 @eq_small_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_small_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a2, 20 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: beq a1, a2, .LBB12_2 +; RV32IFDC-NEXT: c.li a1, 20 +; RV32IFDC-NEXT: beq a0, a1, .LBB12_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB12_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_small_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 20 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB12_2 +; RV32IFD-NEXT: addi a1, zero, 20 +; RV32IFD-NEXT: beq a0, a1, .LBB12_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB12_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, 20 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -379,24 +385,24 @@ define i32 @eq_small_pos(i32 %in0) minsize { define i32 @eq_small_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_small_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a2, -20 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: beq a1, a2, .LBB13_2 +; RV32IFDC-NEXT: c.li a1, -20 +; RV32IFDC-NEXT: beq a0, a1, .LBB13_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB13_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_small_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -20 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB13_2 +; RV32IFD-NEXT: addi a1, zero, -20 +; RV32IFD-NEXT: beq a0, a1, .LBB13_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB13_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, -20 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -407,24 +413,24 @@ define i32 @eq_small_neg(i32 %in0) minsize { define i32 @eq_small_edge_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_small_edge_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a2, 31 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: beq a1, a2, .LBB14_2 +; RV32IFDC-NEXT: c.li a1, 31 +; RV32IFDC-NEXT: beq a0, a1, .LBB14_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB14_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_small_edge_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 31 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB14_2 +; RV32IFD-NEXT: addi a1, zero, 31 +; RV32IFD-NEXT: beq a0, a1, .LBB14_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB14_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, 31 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -435,24 +441,24 @@ define i32 @eq_small_edge_pos(i32 %in0) minsize { define i32 @eq_small_edge_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_small_edge_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a2, -32 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: beq a1, a2, .LBB15_2 +; RV32IFDC-NEXT: c.li a1, -32 +; RV32IFDC-NEXT: beq a0, a1, .LBB15_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB15_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_small_edge_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -32 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB15_2 +; RV32IFD-NEXT: addi a1, zero, -32 +; RV32IFD-NEXT: beq a0, a1, .LBB15_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB15_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, -32 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -464,23 +470,24 @@ define i32 @eq_small_edge_neg(i32 %in0) minsize { define i32 @eq_medium_ledge_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_medium_ledge_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, -33 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.beqz a1, .LBB16_2 +; RV32IFDC-NEXT: addi a0, a0, -33 +; RV32IFDC-NEXT: c.beqz a0, .LBB16_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB16_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_medium_ledge_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 33 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB16_2 +; RV32IFD-NEXT: addi a1, zero, 33 +; RV32IFD-NEXT: beq a0, a1, .LBB16_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB16_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, 33 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -492,23 +499,24 @@ define i32 @eq_medium_ledge_pos(i32 %in0) minsize { define i32 @eq_medium_ledge_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_medium_ledge_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, 33 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.beqz a1, .LBB17_2 +; RV32IFDC-NEXT: addi a0, a0, 33 +; RV32IFDC-NEXT: c.beqz a0, .LBB17_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB17_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_medium_ledge_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -33 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB17_2 +; RV32IFD-NEXT: addi a1, zero, -33 +; RV32IFD-NEXT: beq a0, a1, .LBB17_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB17_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, -33 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -520,23 +528,24 @@ define i32 @eq_medium_ledge_neg(i32 %in0) minsize { define i32 @eq_medium_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_medium_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, -63 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.beqz a1, .LBB18_2 +; RV32IFDC-NEXT: addi a0, a0, -63 +; RV32IFDC-NEXT: c.beqz a0, .LBB18_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB18_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_medium_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 63 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB18_2 +; RV32IFD-NEXT: addi a1, zero, 63 +; RV32IFD-NEXT: beq a0, a1, .LBB18_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB18_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, 63 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -548,23 +557,24 @@ define i32 @eq_medium_pos(i32 %in0) minsize { define i32 @eq_medium_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_medium_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, 63 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.beqz a1, .LBB19_2 +; RV32IFDC-NEXT: addi a0, a0, 63 +; RV32IFDC-NEXT: c.beqz a0, .LBB19_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB19_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_medium_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -63 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB19_2 +; RV32IFD-NEXT: addi a1, zero, -63 +; RV32IFD-NEXT: beq a0, a1, .LBB19_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB19_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, -63 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -576,23 +586,24 @@ define i32 @eq_medium_neg(i32 %in0) minsize { define i32 @eq_medium_bedge_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_medium_bedge_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, -2047 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.beqz a1, .LBB20_2 +; RV32IFDC-NEXT: addi a0, a0, -2047 +; RV32IFDC-NEXT: c.beqz a0, .LBB20_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB20_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_medium_bedge_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, 2047 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB20_2 +; RV32IFD-NEXT: addi a1, zero, 2047 +; RV32IFD-NEXT: beq a0, a1, .LBB20_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB20_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, 2047 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -604,23 +615,24 @@ define i32 @eq_medium_bedge_pos(i32 %in0) minsize { define i32 @eq_medium_bedge_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_medium_bedge_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: addi a1, a0, 2047 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: c.beqz a1, .LBB21_2 +; RV32IFDC-NEXT: addi a0, a0, 2047 +; RV32IFDC-NEXT: c.beqz a0, .LBB21_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB21_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_medium_bedge_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -2047 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB21_2 +; RV32IFD-NEXT: addi a1, zero, -2047 +; RV32IFD-NEXT: beq a0, a1, .LBB21_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB21_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, -2047 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -631,26 +643,26 @@ define i32 @eq_medium_bedge_neg(i32 %in0) minsize { define i32 @eq_big_ledge_pos(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_big_ledge_pos: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: c.li a0, 1 -; RV32IFDC-NEXT: slli a2, a0, 11 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: beq a1, a2, .LBB22_2 +; RV32IFDC-NEXT: c.li a1, 1 +; RV32IFDC-NEXT: c.slli a1, 11 +; RV32IFDC-NEXT: beq a0, a1, .LBB22_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB22_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_big_ledge_pos: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a0, zero, 1 -; RV32IFD-NEXT: slli a2, a0, 11 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB22_2 +; RV32IFD-NEXT: addi a1, zero, 1 +; RV32IFD-NEXT: slli a1, a1, 11 +; RV32IFD-NEXT: beq a0, a1, .LBB22_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB22_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, 2048 %toRet = select i1 %cmp, i32 -99, i32 42 @@ -661,24 +673,24 @@ define i32 @eq_big_ledge_pos(i32 %in0) minsize { define i32 @eq_big_ledge_neg(i32 %in0) minsize { ; RV32IFDC-LABEL: eq_big_ledge_neg: ; RV32IFDC: # %bb.0: -; RV32IFDC-NEXT: c.mv a1, a0 -; RV32IFDC-NEXT: addi a2, zero, -2048 -; RV32IFDC-NEXT: addi a0, zero, -99 -; RV32IFDC-NEXT: beq a1, a2, .LBB23_2 +; RV32IFDC-NEXT: addi a1, zero, -2048 +; RV32IFDC-NEXT: beq a0, a1, .LBB23_2 ; RV32IFDC-NEXT: # %bb.1: ; RV32IFDC-NEXT: addi a0, zero, 42 +; RV32IFDC-NEXT: c.jr ra ; RV32IFDC-NEXT: .LBB23_2: +; RV32IFDC-NEXT: addi a0, zero, -99 ; RV32IFDC-NEXT: c.jr ra ; ; RV32IFD-LABEL: eq_big_ledge_neg: ; RV32IFD: # %bb.0: -; RV32IFD-NEXT: addi a1, a0, 0 -; RV32IFD-NEXT: addi a2, zero, -2048 -; RV32IFD-NEXT: addi a0, zero, -99 -; RV32IFD-NEXT: beq a1, a2, .LBB23_2 +; RV32IFD-NEXT: addi a1, zero, -2048 +; RV32IFD-NEXT: beq a0, a1, .LBB23_2 ; RV32IFD-NEXT: # %bb.1: ; RV32IFD-NEXT: addi a0, zero, 42 +; RV32IFD-NEXT: jalr zero, 0(ra) ; RV32IFD-NEXT: .LBB23_2: +; RV32IFD-NEXT: addi a0, zero, -99 ; RV32IFD-NEXT: jalr zero, 0(ra) %cmp = icmp eq i32 %in0, -2048 %toRet = select i1 %cmp, i32 -99, i32 42 diff --git a/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll b/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll index 3adc46143f9f2..f463bb2009f95 100644 --- a/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll +++ b/llvm/test/CodeGen/RISCV/double-intrinsics-strict.ll @@ -1695,3 +1695,61 @@ define double @atan2_f64(double %a, double %b) nounwind strictfp { %1 = call double @llvm.experimental.constrained.atan2.f64(double %a, double %b, metadata !"round.dynamic", metadata !"fpexcept.strict") strictfp ret double %1 } + +define double @ldexp_f64(double %x, i32 signext %y) nounwind { +; RV32IFD-LABEL: ldexp_f64: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IFD-NEXT: call ldexp +; RV32IFD-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: ldexp_f64: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: addi sp, sp, -16 +; RV64IFD-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IFD-NEXT: call ldexp +; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IFD-NEXT: addi sp, sp, 16 +; RV64IFD-NEXT: ret +; +; RV32IZFINXZDINX-LABEL: ldexp_f64: +; RV32IZFINXZDINX: # %bb.0: +; RV32IZFINXZDINX-NEXT: addi sp, sp, -16 +; RV32IZFINXZDINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFINXZDINX-NEXT: call ldexp +; RV32IZFINXZDINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFINXZDINX-NEXT: addi sp, sp, 16 +; RV32IZFINXZDINX-NEXT: ret +; +; RV64IZFINXZDINX-LABEL: ldexp_f64: +; RV64IZFINXZDINX: # %bb.0: +; RV64IZFINXZDINX-NEXT: addi sp, sp, -16 +; RV64IZFINXZDINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFINXZDINX-NEXT: call ldexp +; RV64IZFINXZDINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFINXZDINX-NEXT: addi sp, sp, 16 +; RV64IZFINXZDINX-NEXT: ret +; +; RV32I-LABEL: ldexp_f64: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call ldexp +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: ldexp_f64: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call ldexp +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %z = call double @llvm.experimental.constrained.ldexp.f64.i32(double %x, i32 %y, metadata !"round.dynamic", metadata !"fpexcept.strict") strictfp + ret double %z +} diff --git a/llvm/test/CodeGen/RISCV/double-intrinsics.ll b/llvm/test/CodeGen/RISCV/double-intrinsics.ll index 3ef128ed6d4cd..ebeca7c0c362a 100644 --- a/llvm/test/CodeGen/RISCV/double-intrinsics.ll +++ b/llvm/test/CodeGen/RISCV/double-intrinsics.ll @@ -1637,3 +1637,135 @@ define double @minimumnum_double(double %x, double %y) { %z = call double @llvm.minimumnum.f64(double %x, double %y) ret double %z } + +define double @ldexp_double(double %x, i32 signext %y) nounwind { +; RV32IFD-LABEL: ldexp_double: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: tail ldexp +; +; RV64IFD-LABEL: ldexp_double: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: addi sp, sp, -16 +; RV64IFD-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IFD-NEXT: call ldexp +; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IFD-NEXT: addi sp, sp, 16 +; RV64IFD-NEXT: ret +; +; RV32IZFINXZDINX-LABEL: ldexp_double: +; RV32IZFINXZDINX: # %bb.0: +; RV32IZFINXZDINX-NEXT: addi sp, sp, -16 +; RV32IZFINXZDINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFINXZDINX-NEXT: call ldexp +; RV32IZFINXZDINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFINXZDINX-NEXT: addi sp, sp, 16 +; RV32IZFINXZDINX-NEXT: ret +; +; RV64IZFINXZDINX-LABEL: ldexp_double: +; RV64IZFINXZDINX: # %bb.0: +; RV64IZFINXZDINX-NEXT: addi sp, sp, -16 +; RV64IZFINXZDINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFINXZDINX-NEXT: call ldexp +; RV64IZFINXZDINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFINXZDINX-NEXT: addi sp, sp, 16 +; RV64IZFINXZDINX-NEXT: ret +; +; RV32I-LABEL: ldexp_double: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call ldexp +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: ldexp_double: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call ldexp +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %z = call double @llvm.ldexp.f64.i32(double %x, i32 %y) + ret double %z +} + +define {double, i32} @frexp_double(double %x) nounwind { +; RV32IFD-LABEL: frexp_double: +; RV32IFD: # %bb.0: +; RV32IFD-NEXT: addi sp, sp, -16 +; RV32IFD-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IFD-NEXT: addi a0, sp, 8 +; RV32IFD-NEXT: call frexp +; RV32IFD-NEXT: lw a0, 8(sp) +; RV32IFD-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IFD-NEXT: addi sp, sp, 16 +; RV32IFD-NEXT: ret +; +; RV64IFD-LABEL: frexp_double: +; RV64IFD: # %bb.0: +; RV64IFD-NEXT: addi sp, sp, -16 +; RV64IFD-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IFD-NEXT: mv a0, sp +; RV64IFD-NEXT: call frexp +; RV64IFD-NEXT: ld a0, 0(sp) +; RV64IFD-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IFD-NEXT: addi sp, sp, 16 +; RV64IFD-NEXT: ret +; +; RV32IZFINXZDINX-LABEL: frexp_double: +; RV32IZFINXZDINX: # %bb.0: +; RV32IZFINXZDINX-NEXT: addi sp, sp, -16 +; RV32IZFINXZDINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFINXZDINX-NEXT: addi a2, sp, 8 +; RV32IZFINXZDINX-NEXT: call frexp +; RV32IZFINXZDINX-NEXT: lw a2, 8(sp) +; RV32IZFINXZDINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFINXZDINX-NEXT: addi sp, sp, 16 +; RV32IZFINXZDINX-NEXT: ret +; +; RV64IZFINXZDINX-LABEL: frexp_double: +; RV64IZFINXZDINX: # %bb.0: +; RV64IZFINXZDINX-NEXT: addi sp, sp, -16 +; RV64IZFINXZDINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFINXZDINX-NEXT: mv a1, sp +; RV64IZFINXZDINX-NEXT: call frexp +; RV64IZFINXZDINX-NEXT: ld a1, 0(sp) +; RV64IZFINXZDINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFINXZDINX-NEXT: addi sp, sp, 16 +; RV64IZFINXZDINX-NEXT: ret +; +; RV32I-LABEL: frexp_double: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv a3, a2 +; RV32I-NEXT: mv s0, a0 +; RV32I-NEXT: addi a2, sp, 4 +; RV32I-NEXT: mv a0, a1 +; RV32I-NEXT: mv a1, a3 +; RV32I-NEXT: call frexp +; RV32I-NEXT: lw a2, 4(sp) +; RV32I-NEXT: sw a0, 0(s0) +; RV32I-NEXT: sw a1, 4(s0) +; RV32I-NEXT: sw a2, 8(s0) +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: frexp_double: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: addi a1, sp, 4 +; RV64I-NEXT: call frexp +; RV64I-NEXT: lw a1, 4(sp) +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %a = call {double, i32} @llvm.frexp.f64.i32(double %x) + ret {double, i32} %a +} diff --git a/llvm/test/CodeGen/RISCV/float-intrinsics-strict.ll b/llvm/test/CodeGen/RISCV/float-intrinsics-strict.ll index f04da712dce31..4c383be1ac42c 100644 --- a/llvm/test/CodeGen/RISCV/float-intrinsics-strict.ll +++ b/llvm/test/CodeGen/RISCV/float-intrinsics-strict.ll @@ -1660,3 +1660,61 @@ define i64 @llround_f32(float %a) nounwind strictfp { %1 = call i64 @llvm.experimental.constrained.llround.i64.f32(float %a, metadata !"fpexcept.strict") strictfp ret i64 %1 } + +define float @ldexp_f32(float %x, i32 signext %y) nounwind { +; RV32IF-LABEL: ldexp_f32: +; RV32IF: # %bb.0: +; RV32IF-NEXT: addi sp, sp, -16 +; RV32IF-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IF-NEXT: call ldexpf +; RV32IF-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IF-NEXT: addi sp, sp, 16 +; RV32IF-NEXT: ret +; +; RV64IF-LABEL: ldexp_f32: +; RV64IF: # %bb.0: +; RV64IF-NEXT: addi sp, sp, -16 +; RV64IF-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IF-NEXT: call ldexpf +; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IF-NEXT: addi sp, sp, 16 +; RV64IF-NEXT: ret +; +; RV32IZFINX-LABEL: ldexp_f32: +; RV32IZFINX: # %bb.0: +; RV32IZFINX-NEXT: addi sp, sp, -16 +; RV32IZFINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFINX-NEXT: call ldexpf +; RV32IZFINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFINX-NEXT: addi sp, sp, 16 +; RV32IZFINX-NEXT: ret +; +; RV64IZFINX-LABEL: ldexp_f32: +; RV64IZFINX: # %bb.0: +; RV64IZFINX-NEXT: addi sp, sp, -16 +; RV64IZFINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFINX-NEXT: call ldexpf +; RV64IZFINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFINX-NEXT: addi sp, sp, 16 +; RV64IZFINX-NEXT: ret +; +; RV32I-LABEL: ldexp_f32: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call ldexpf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: ldexp_f32: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call ldexpf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %z = call float @llvm.experimental.constrained.ldexp.f32.i32(float %x, i32 %y, metadata !"round.dynamic", metadata !"fpexcept.strict") strictfp + ret float %z +} diff --git a/llvm/test/CodeGen/RISCV/float-intrinsics.ll b/llvm/test/CodeGen/RISCV/float-intrinsics.ll index 37381aeeb2a0f..d42afd504e5dc 100644 --- a/llvm/test/CodeGen/RISCV/float-intrinsics.ll +++ b/llvm/test/CodeGen/RISCV/float-intrinsics.ll @@ -2242,3 +2242,121 @@ define float @minimumnum_float(float %x, float %y) { %z = call float @llvm.minimumnum.f32(float %x, float %y) ret float %z } + +define float @ldexp_float(float %x, i32 signext %y) nounwind { +; RV32IF-LABEL: ldexp_float: +; RV32IF: # %bb.0: +; RV32IF-NEXT: tail ldexpf +; +; RV32IZFINX-LABEL: ldexp_float: +; RV32IZFINX: # %bb.0: +; RV32IZFINX-NEXT: tail ldexpf +; +; RV64IF-LABEL: ldexp_float: +; RV64IF: # %bb.0: +; RV64IF-NEXT: addi sp, sp, -16 +; RV64IF-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IF-NEXT: call ldexpf +; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IF-NEXT: addi sp, sp, 16 +; RV64IF-NEXT: ret +; +; RV64IZFINX-LABEL: ldexp_float: +; RV64IZFINX: # %bb.0: +; RV64IZFINX-NEXT: addi sp, sp, -16 +; RV64IZFINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFINX-NEXT: call ldexpf +; RV64IZFINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFINX-NEXT: addi sp, sp, 16 +; RV64IZFINX-NEXT: ret +; +; RV32I-LABEL: ldexp_float: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: call ldexpf +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: ldexp_float: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: call ldexpf +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %z = call float @llvm.ldexp.f32.i32(float %x, i32 %y) + ret float %z +} + +define {float, i32} @frexp_float(float %x) nounwind { +; RV32IF-LABEL: frexp_float: +; RV32IF: # %bb.0: +; RV32IF-NEXT: addi sp, sp, -16 +; RV32IF-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IF-NEXT: addi a0, sp, 8 +; RV32IF-NEXT: call frexpf +; RV32IF-NEXT: lw a0, 8(sp) +; RV32IF-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IF-NEXT: addi sp, sp, 16 +; RV32IF-NEXT: ret +; +; RV32IZFINX-LABEL: frexp_float: +; RV32IZFINX: # %bb.0: +; RV32IZFINX-NEXT: addi sp, sp, -16 +; RV32IZFINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFINX-NEXT: addi a1, sp, 8 +; RV32IZFINX-NEXT: call frexpf +; RV32IZFINX-NEXT: lw a1, 8(sp) +; RV32IZFINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFINX-NEXT: addi sp, sp, 16 +; RV32IZFINX-NEXT: ret +; +; RV64IF-LABEL: frexp_float: +; RV64IF: # %bb.0: +; RV64IF-NEXT: addi sp, sp, -16 +; RV64IF-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IF-NEXT: mv a0, sp +; RV64IF-NEXT: call frexpf +; RV64IF-NEXT: ld a0, 0(sp) +; RV64IF-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IF-NEXT: addi sp, sp, 16 +; RV64IF-NEXT: ret +; +; RV64IZFINX-LABEL: frexp_float: +; RV64IZFINX: # %bb.0: +; RV64IZFINX-NEXT: addi sp, sp, -16 +; RV64IZFINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFINX-NEXT: mv a1, sp +; RV64IZFINX-NEXT: call frexpf +; RV64IZFINX-NEXT: ld a1, 0(sp) +; RV64IZFINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFINX-NEXT: addi sp, sp, 16 +; RV64IZFINX-NEXT: ret +; +; RV32I-LABEL: frexp_float: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: addi a1, sp, 8 +; RV32I-NEXT: call frexpf +; RV32I-NEXT: lw a1, 8(sp) +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: frexp_float: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: addi a1, sp, 4 +; RV64I-NEXT: call frexpf +; RV64I-NEXT: lw a1, 4(sp) +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret + %a = call {float, i32} @llvm.frexp.f32.i32(float %x) + ret {float, i32} %a +} diff --git a/llvm/test/CodeGen/RISCV/half-intrinsics.ll b/llvm/test/CodeGen/RISCV/half-intrinsics.ll index 0d26e660c979b..8f19424742775 100644 --- a/llvm/test/CodeGen/RISCV/half-intrinsics.ll +++ b/llvm/test/CodeGen/RISCV/half-intrinsics.ll @@ -3186,3 +3186,267 @@ define half @minimumnum_half(half %x, half %y) { %z = call half @llvm.minimumnum.f16(half %x, half %y) ret half %z } + +define half @ldexp_half(half %x, i32 signext %y) nounwind { +; RV32IZFH-LABEL: ldexp_half: +; RV32IZFH: # %bb.0: +; RV32IZFH-NEXT: addi sp, sp, -16 +; RV32IZFH-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFH-NEXT: fcvt.s.h fa0, fa0 +; RV32IZFH-NEXT: call ldexpf +; RV32IZFH-NEXT: fcvt.h.s fa0, fa0 +; RV32IZFH-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFH-NEXT: addi sp, sp, 16 +; RV32IZFH-NEXT: ret +; +; RV64IZFH-LABEL: ldexp_half: +; RV64IZFH: # %bb.0: +; RV64IZFH-NEXT: addi sp, sp, -16 +; RV64IZFH-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFH-NEXT: fcvt.s.h fa0, fa0 +; RV64IZFH-NEXT: call ldexpf +; RV64IZFH-NEXT: fcvt.h.s fa0, fa0 +; RV64IZFH-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFH-NEXT: addi sp, sp, 16 +; RV64IZFH-NEXT: ret +; +; RV32IZHINX-LABEL: ldexp_half: +; RV32IZHINX: # %bb.0: +; RV32IZHINX-NEXT: addi sp, sp, -16 +; RV32IZHINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZHINX-NEXT: fcvt.s.h a0, a0 +; RV32IZHINX-NEXT: call ldexpf +; RV32IZHINX-NEXT: fcvt.h.s a0, a0 +; RV32IZHINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZHINX-NEXT: addi sp, sp, 16 +; RV32IZHINX-NEXT: ret +; +; RV64IZHINX-LABEL: ldexp_half: +; RV64IZHINX: # %bb.0: +; RV64IZHINX-NEXT: addi sp, sp, -16 +; RV64IZHINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZHINX-NEXT: fcvt.s.h a0, a0 +; RV64IZHINX-NEXT: call ldexpf +; RV64IZHINX-NEXT: fcvt.h.s a0, a0 +; RV64IZHINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZHINX-NEXT: addi sp, sp, 16 +; RV64IZHINX-NEXT: ret +; +; RV32I-LABEL: ldexp_half: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: sw s0, 8(sp) # 4-byte Folded Spill +; RV32I-NEXT: mv s0, a1 +; RV32I-NEXT: slli a0, a0, 16 +; RV32I-NEXT: srli a0, a0, 16 +; RV32I-NEXT: call __extendhfsf2 +; RV32I-NEXT: mv a1, s0 +; RV32I-NEXT: call ldexpf +; RV32I-NEXT: call __truncsfhf2 +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: lw s0, 8(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: ldexp_half: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: sd s0, 0(sp) # 8-byte Folded Spill +; RV64I-NEXT: mv s0, a1 +; RV64I-NEXT: slli a0, a0, 48 +; RV64I-NEXT: srli a0, a0, 48 +; RV64I-NEXT: call __extendhfsf2 +; RV64I-NEXT: mv a1, s0 +; RV64I-NEXT: call ldexpf +; RV64I-NEXT: call __truncsfhf2 +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV32IZFHMIN-LABEL: ldexp_half: +; RV32IZFHMIN: # %bb.0: +; RV32IZFHMIN-NEXT: addi sp, sp, -16 +; RV32IZFHMIN-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFHMIN-NEXT: fcvt.s.h fa0, fa0 +; RV32IZFHMIN-NEXT: call ldexpf +; RV32IZFHMIN-NEXT: fcvt.h.s fa0, fa0 +; RV32IZFHMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFHMIN-NEXT: addi sp, sp, 16 +; RV32IZFHMIN-NEXT: ret +; +; RV64IZFHMIN-LABEL: ldexp_half: +; RV64IZFHMIN: # %bb.0: +; RV64IZFHMIN-NEXT: addi sp, sp, -16 +; RV64IZFHMIN-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFHMIN-NEXT: fcvt.s.h fa0, fa0 +; RV64IZFHMIN-NEXT: call ldexpf +; RV64IZFHMIN-NEXT: fcvt.h.s fa0, fa0 +; RV64IZFHMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFHMIN-NEXT: addi sp, sp, 16 +; RV64IZFHMIN-NEXT: ret +; +; RV32IZHINXMIN-LABEL: ldexp_half: +; RV32IZHINXMIN: # %bb.0: +; RV32IZHINXMIN-NEXT: addi sp, sp, -16 +; RV32IZHINXMIN-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZHINXMIN-NEXT: fcvt.s.h a0, a0 +; RV32IZHINXMIN-NEXT: call ldexpf +; RV32IZHINXMIN-NEXT: fcvt.h.s a0, a0 +; RV32IZHINXMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZHINXMIN-NEXT: addi sp, sp, 16 +; RV32IZHINXMIN-NEXT: ret +; +; RV64IZHINXMIN-LABEL: ldexp_half: +; RV64IZHINXMIN: # %bb.0: +; RV64IZHINXMIN-NEXT: addi sp, sp, -16 +; RV64IZHINXMIN-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZHINXMIN-NEXT: fcvt.s.h a0, a0 +; RV64IZHINXMIN-NEXT: call ldexpf +; RV64IZHINXMIN-NEXT: fcvt.h.s a0, a0 +; RV64IZHINXMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZHINXMIN-NEXT: addi sp, sp, 16 +; RV64IZHINXMIN-NEXT: ret + %z = call half @llvm.ldexp.f16.i32(half %x, i32 %y) + ret half %z +} + +define {half, i32} @frexp_half(half %x) nounwind { +; RV32IZFH-LABEL: frexp_half: +; RV32IZFH: # %bb.0: +; RV32IZFH-NEXT: addi sp, sp, -16 +; RV32IZFH-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFH-NEXT: fcvt.s.h fa0, fa0 +; RV32IZFH-NEXT: addi a0, sp, 8 +; RV32IZFH-NEXT: call frexpf +; RV32IZFH-NEXT: lw a0, 8(sp) +; RV32IZFH-NEXT: fcvt.h.s fa0, fa0 +; RV32IZFH-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFH-NEXT: addi sp, sp, 16 +; RV32IZFH-NEXT: ret +; +; RV64IZFH-LABEL: frexp_half: +; RV64IZFH: # %bb.0: +; RV64IZFH-NEXT: addi sp, sp, -16 +; RV64IZFH-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFH-NEXT: fcvt.s.h fa0, fa0 +; RV64IZFH-NEXT: mv a0, sp +; RV64IZFH-NEXT: call frexpf +; RV64IZFH-NEXT: ld a0, 0(sp) +; RV64IZFH-NEXT: fcvt.h.s fa0, fa0 +; RV64IZFH-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFH-NEXT: addi sp, sp, 16 +; RV64IZFH-NEXT: ret +; +; RV32IZHINX-LABEL: frexp_half: +; RV32IZHINX: # %bb.0: +; RV32IZHINX-NEXT: addi sp, sp, -16 +; RV32IZHINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZHINX-NEXT: fcvt.s.h a0, a0 +; RV32IZHINX-NEXT: addi a1, sp, 8 +; RV32IZHINX-NEXT: call frexpf +; RV32IZHINX-NEXT: lw a1, 8(sp) +; RV32IZHINX-NEXT: fcvt.h.s a0, a0 +; RV32IZHINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZHINX-NEXT: addi sp, sp, 16 +; RV32IZHINX-NEXT: ret +; +; RV64IZHINX-LABEL: frexp_half: +; RV64IZHINX: # %bb.0: +; RV64IZHINX-NEXT: addi sp, sp, -16 +; RV64IZHINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZHINX-NEXT: fcvt.s.h a0, a0 +; RV64IZHINX-NEXT: mv a1, sp +; RV64IZHINX-NEXT: call frexpf +; RV64IZHINX-NEXT: ld a1, 0(sp) +; RV64IZHINX-NEXT: fcvt.h.s a0, a0 +; RV64IZHINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZHINX-NEXT: addi sp, sp, 16 +; RV64IZHINX-NEXT: ret +; +; RV32I-LABEL: frexp_half: +; RV32I: # %bb.0: +; RV32I-NEXT: addi sp, sp, -16 +; RV32I-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32I-NEXT: slli a0, a0, 16 +; RV32I-NEXT: srli a0, a0, 16 +; RV32I-NEXT: call __extendhfsf2 +; RV32I-NEXT: addi a1, sp, 8 +; RV32I-NEXT: call frexpf +; RV32I-NEXT: call __truncsfhf2 +; RV32I-NEXT: lw a1, 8(sp) +; RV32I-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32I-NEXT: addi sp, sp, 16 +; RV32I-NEXT: ret +; +; RV64I-LABEL: frexp_half: +; RV64I: # %bb.0: +; RV64I-NEXT: addi sp, sp, -16 +; RV64I-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64I-NEXT: slli a0, a0, 48 +; RV64I-NEXT: srli a0, a0, 48 +; RV64I-NEXT: call __extendhfsf2 +; RV64I-NEXT: addi a1, sp, 4 +; RV64I-NEXT: call frexpf +; RV64I-NEXT: call __truncsfhf2 +; RV64I-NEXT: lw a1, 4(sp) +; RV64I-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64I-NEXT: addi sp, sp, 16 +; RV64I-NEXT: ret +; +; RV32IZFHMIN-LABEL: frexp_half: +; RV32IZFHMIN: # %bb.0: +; RV32IZFHMIN-NEXT: addi sp, sp, -16 +; RV32IZFHMIN-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFHMIN-NEXT: fcvt.s.h fa0, fa0 +; RV32IZFHMIN-NEXT: addi a0, sp, 8 +; RV32IZFHMIN-NEXT: call frexpf +; RV32IZFHMIN-NEXT: lw a0, 8(sp) +; RV32IZFHMIN-NEXT: fcvt.h.s fa0, fa0 +; RV32IZFHMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFHMIN-NEXT: addi sp, sp, 16 +; RV32IZFHMIN-NEXT: ret +; +; RV64IZFHMIN-LABEL: frexp_half: +; RV64IZFHMIN: # %bb.0: +; RV64IZFHMIN-NEXT: addi sp, sp, -16 +; RV64IZFHMIN-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFHMIN-NEXT: fcvt.s.h fa0, fa0 +; RV64IZFHMIN-NEXT: mv a0, sp +; RV64IZFHMIN-NEXT: call frexpf +; RV64IZFHMIN-NEXT: ld a0, 0(sp) +; RV64IZFHMIN-NEXT: fcvt.h.s fa0, fa0 +; RV64IZFHMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFHMIN-NEXT: addi sp, sp, 16 +; RV64IZFHMIN-NEXT: ret +; +; RV32IZHINXMIN-LABEL: frexp_half: +; RV32IZHINXMIN: # %bb.0: +; RV32IZHINXMIN-NEXT: addi sp, sp, -16 +; RV32IZHINXMIN-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZHINXMIN-NEXT: fcvt.s.h a0, a0 +; RV32IZHINXMIN-NEXT: addi a1, sp, 8 +; RV32IZHINXMIN-NEXT: call frexpf +; RV32IZHINXMIN-NEXT: lw a1, 8(sp) +; RV32IZHINXMIN-NEXT: fcvt.h.s a0, a0 +; RV32IZHINXMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZHINXMIN-NEXT: addi sp, sp, 16 +; RV32IZHINXMIN-NEXT: ret +; +; RV64IZHINXMIN-LABEL: frexp_half: +; RV64IZHINXMIN: # %bb.0: +; RV64IZHINXMIN-NEXT: addi sp, sp, -16 +; RV64IZHINXMIN-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZHINXMIN-NEXT: fcvt.s.h a0, a0 +; RV64IZHINXMIN-NEXT: mv a1, sp +; RV64IZHINXMIN-NEXT: call frexpf +; RV64IZHINXMIN-NEXT: ld a1, 0(sp) +; RV64IZHINXMIN-NEXT: fcvt.h.s a0, a0 +; RV64IZHINXMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZHINXMIN-NEXT: addi sp, sp, 16 +; RV64IZHINXMIN-NEXT: ret + %a = call {half, i32} @llvm.frexp.f16.i32(half %x) + ret {half, i32} %a +} diff --git a/llvm/test/CodeGen/RISCV/machine-sink-load-immediate.ll b/llvm/test/CodeGen/RISCV/machine-sink-load-immediate.ll index 775ea8e820afe..eb84774014a4b 100644 --- a/llvm/test/CodeGen/RISCV/machine-sink-load-immediate.ll +++ b/llvm/test/CodeGen/RISCV/machine-sink-load-immediate.ll @@ -184,13 +184,13 @@ declare i32 @toupper() define signext i32 @overlap_live_ranges(ptr %arg, i32 signext %arg1) { ; CHECK-LABEL: overlap_live_ranges: ; CHECK: # %bb.0: # %bb -; CHECK-NEXT: li a3, 1 -; CHECK-NEXT: li a2, 13 -; CHECK-NEXT: bne a1, a3, .LBB1_2 +; CHECK-NEXT: li a2, 1 +; CHECK-NEXT: bne a1, a2, .LBB1_2 ; CHECK-NEXT: # %bb.1: # %bb2 -; CHECK-NEXT: lw a2, 4(a0) -; CHECK-NEXT: .LBB1_2: # %bb5 -; CHECK-NEXT: mv a0, a2 +; CHECK-NEXT: lw a0, 4(a0) +; CHECK-NEXT: ret +; CHECK-NEXT: .LBB1_2: +; CHECK-NEXT: li a0, 13 ; CHECK-NEXT: ret bb: %i = icmp eq i32 %arg1, 1 @@ -205,3 +205,181 @@ bb5: ; preds = %bb2, %bb %i6 = phi i32 [ %i4, %bb2 ], [ 13, %bb ] ret i32 %i6 } + + +; For switches, the values feeding the phi are always sunk into the +; target blocks as the IR syntax requires the intermediate block and +; DAG lowers it in the immediate predecessor of the phi. +define signext i32 @switch_dispatch(i8 %a) { +; CHECK-LABEL: switch_dispatch: +; CHECK: # %bb.0: # %bb +; CHECK-NEXT: addi sp, sp, -16 +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; CHECK-NEXT: sd s0, 0(sp) # 8-byte Folded Spill +; CHECK-NEXT: .cfi_offset ra, -8 +; CHECK-NEXT: .cfi_offset s0, -16 +; CHECK-NEXT: andi a0, a0, 255 +; CHECK-NEXT: li a1, 31 +; CHECK-NEXT: blt a1, a0, .LBB2_5 +; CHECK-NEXT: # %bb.1: # %bb +; CHECK-NEXT: beqz a0, .LBB2_10 +; CHECK-NEXT: # %bb.2: # %bb +; CHECK-NEXT: li a1, 12 +; CHECK-NEXT: beq a0, a1, .LBB2_11 +; CHECK-NEXT: # %bb.3: # %bb +; CHECK-NEXT: li a1, 13 +; CHECK-NEXT: bne a0, a1, .LBB2_9 +; CHECK-NEXT: # %bb.4: # %case.4 +; CHECK-NEXT: li s0, 644 +; CHECK-NEXT: j .LBB2_13 +; CHECK-NEXT: .LBB2_5: # %bb +; CHECK-NEXT: li a1, 234 +; CHECK-NEXT: beq a0, a1, .LBB2_9 +; CHECK-NEXT: # %bb.6: # %bb +; CHECK-NEXT: li a1, 70 +; CHECK-NEXT: beq a0, a1, .LBB2_12 +; CHECK-NEXT: # %bb.7: # %bb +; CHECK-NEXT: li a1, 32 +; CHECK-NEXT: bne a0, a1, .LBB2_9 +; CHECK-NEXT: # %bb.8: # %case.0 +; CHECK-NEXT: li s0, 13 +; CHECK-NEXT: j .LBB2_13 +; CHECK-NEXT: .LBB2_9: # %case.default +; CHECK-NEXT: li s0, 23 +; CHECK-NEXT: j .LBB2_13 +; CHECK-NEXT: .LBB2_10: # %case.5 +; CHECK-NEXT: li s0, 54 +; CHECK-NEXT: j .LBB2_13 +; CHECK-NEXT: .LBB2_11: # %case.1 +; CHECK-NEXT: li s0, 53 +; CHECK-NEXT: j .LBB2_13 +; CHECK-NEXT: .LBB2_12: # %case.2 +; CHECK-NEXT: li s0, 33 +; CHECK-NEXT: .LBB2_13: # %merge +; CHECK-NEXT: mv a0, s0 +; CHECK-NEXT: call use +; CHECK-NEXT: mv a0, s0 +; CHECK-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; CHECK-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; CHECK-NEXT: .cfi_restore ra +; CHECK-NEXT: .cfi_restore s0 +; CHECK-NEXT: addi sp, sp, 16 +; CHECK-NEXT: .cfi_def_cfa_offset 0 +; CHECK-NEXT: ret +bb: + switch i8 %a, label %case.default [ + i8 32, label %case.0 + i8 12, label %case.1 + i8 70, label %case.2 + i8 -22, label %case.3 + i8 13, label %case.4 + i8 0, label %case.5 + ] + +case.0: + br label %merge +case.1: + br label %merge +case.2: + br label %merge +case.3: + br label %merge +case.4: + br label %merge +case.5: + br label %merge +case.default: + br label %merge + +merge: + %res = phi i32 [ 23, %case.default ], [ 13, %case.0 ], [ 53, %case.1 ], [ 33, %case.2 ], [ 23, %case.3 ], [ 644, %case.4 ], [ 54, %case.5 ] + call void @use(i32 %res) + ret i32 %res +} + +; Same as for the switch, but written via manual branching. +define signext i32 @branch_dispatch(i8 %a) { +; CHECK-LABEL: branch_dispatch: +; CHECK: # %bb.0: # %case.0 +; CHECK-NEXT: addi sp, sp, -16 +; CHECK-NEXT: .cfi_def_cfa_offset 16 +; CHECK-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; CHECK-NEXT: sd s0, 0(sp) # 8-byte Folded Spill +; CHECK-NEXT: .cfi_offset ra, -8 +; CHECK-NEXT: .cfi_offset s0, -16 +; CHECK-NEXT: .cfi_remember_state +; CHECK-NEXT: andi a0, a0, 255 +; CHECK-NEXT: li a1, 32 +; CHECK-NEXT: beq a0, a1, .LBB3_7 +; CHECK-NEXT: # %bb.1: # %case.1 +; CHECK-NEXT: li a1, 12 +; CHECK-NEXT: beq a0, a1, .LBB3_8 +; CHECK-NEXT: # %bb.2: # %case.2 +; CHECK-NEXT: li a1, 70 +; CHECK-NEXT: beq a0, a1, .LBB3_9 +; CHECK-NEXT: # %bb.3: # %case.3 +; CHECK-NEXT: li a1, 234 +; CHECK-NEXT: li s0, 23 +; CHECK-NEXT: beq a0, a1, .LBB3_10 +; CHECK-NEXT: # %bb.4: # %case.4 +; CHECK-NEXT: beqz a0, .LBB3_11 +; CHECK-NEXT: # %bb.5: # %case.5 +; CHECK-NEXT: li a1, 5 +; CHECK-NEXT: bne a0, a1, .LBB3_10 +; CHECK-NEXT: # %bb.6: +; CHECK-NEXT: li s0, 54 +; CHECK-NEXT: j .LBB3_10 +; CHECK-NEXT: .LBB3_7: +; CHECK-NEXT: li s0, 13 +; CHECK-NEXT: j .LBB3_10 +; CHECK-NEXT: .LBB3_8: +; CHECK-NEXT: li s0, 53 +; CHECK-NEXT: j .LBB3_10 +; CHECK-NEXT: .LBB3_9: +; CHECK-NEXT: li s0, 33 +; CHECK-NEXT: .LBB3_10: # %merge +; CHECK-NEXT: mv a0, s0 +; CHECK-NEXT: call use +; CHECK-NEXT: mv a0, s0 +; CHECK-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; CHECK-NEXT: ld s0, 0(sp) # 8-byte Folded Reload +; CHECK-NEXT: .cfi_restore ra +; CHECK-NEXT: .cfi_restore s0 +; CHECK-NEXT: addi sp, sp, 16 +; CHECK-NEXT: .cfi_def_cfa_offset 0 +; CHECK-NEXT: ret +; CHECK-NEXT: .LBB3_11: +; CHECK-NEXT: .cfi_restore_state +; CHECK-NEXT: li s0, 644 +; CHECK-NEXT: j .LBB3_10 +case.0: + %c0 = icmp ne i8 %a, 32 + br i1 %c0, label %case.1, label %merge +case.1: + %c1 = icmp ne i8 %a, 12 + br i1 %c1, label %case.2, label %merge +case.2: + %c2 = icmp ne i8 %a, 70 + br i1 %c2, label %case.3, label %merge +case.3: + %c3 = icmp ne i8 %a, -22 + br i1 %c3, label %case.4, label %merge +case.4: + %c4 = icmp ne i8 %a, 0 + br i1 %c4, label %case.5, label %merge +case.5: + %c5 = icmp ne i8 %a, 5 + br i1 %c5, label %case.default, label %merge +case.default: + br label %merge + +merge: + %res = phi i32 [ 23, %case.default ], [ 13, %case.0 ], [ 53, %case.1 ], [ 33, %case.2 ], [ 23, %case.3 ], [ 644, %case.4 ], [ 54, %case.5 ] + call void @use(i32 %res) + ret i32 %res +} + + +declare void @use(i32) + diff --git a/llvm/test/CodeGen/RISCV/rv64m-w-insts-legalization.ll b/llvm/test/CodeGen/RISCV/rv64m-w-insts-legalization.ll index f69909e76d4c1..a2c572e07ff7d 100644 --- a/llvm/test/CodeGen/RISCV/rv64m-w-insts-legalization.ll +++ b/llvm/test/CodeGen/RISCV/rv64m-w-insts-legalization.ll @@ -5,15 +5,13 @@ define signext i32 @mulw(i32 signext %s, i32 signext %n, i32 signext %k) nounwin ; CHECK-LABEL: mulw: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: li a2, 1 -; CHECK-NEXT: bge a0, a1, .LBB0_3 -; CHECK-NEXT: # %bb.1: # %for.body.preheader -; CHECK-NEXT: li a2, 1 -; CHECK-NEXT: .LBB0_2: # %for.body +; CHECK-NEXT: bge a0, a1, .LBB0_2 +; CHECK-NEXT: .LBB0_1: # %for.body ; CHECK-NEXT: # =>This Inner Loop Header: Depth=1 ; CHECK-NEXT: mulw a2, a0, a2 ; CHECK-NEXT: addiw a0, a0, 1 -; CHECK-NEXT: blt a0, a1, .LBB0_2 -; CHECK-NEXT: .LBB0_3: # %for.cond.cleanup +; CHECK-NEXT: blt a0, a1, .LBB0_1 +; CHECK-NEXT: .LBB0_2: # %for.cond.cleanup ; CHECK-NEXT: mv a0, a2 ; CHECK-NEXT: ret entry: diff --git a/llvm/test/CodeGen/RISCV/rvv-cfi-info.ll b/llvm/test/CodeGen/RISCV/rvv-cfi-info.ll deleted file mode 100644 index e78bb323f4d3c..0000000000000 --- a/llvm/test/CodeGen/RISCV/rvv-cfi-info.ll +++ /dev/null @@ -1,144 +0,0 @@ -; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=riscv64 -mattr=+v,+m -verify-machineinstrs < %s \ -; RUN: | FileCheck -check-prefix=OMIT-FP %s -; RUN: llc -mtriple=riscv64 -mattr=+v,+m -verify-machineinstrs -frame-pointer=all < %s \ -; RUN: | FileCheck -check-prefix=NO-OMIT-FP %s - -define riscv_vector_cc @test_vector_callee_cfi( %va) { -; OMIT-FP-LABEL: test_vector_callee_cfi: -; OMIT-FP: # %bb.0: # %entry -; OMIT-FP-NEXT: addi sp, sp, -16 -; OMIT-FP-NEXT: .cfi_def_cfa_offset 16 -; OMIT-FP-NEXT: csrr a0, vlenb -; OMIT-FP-NEXT: slli a1, a0, 3 -; OMIT-FP-NEXT: sub a0, a1, a0 -; OMIT-FP-NEXT: sub sp, sp, a0 -; OMIT-FP-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x07, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 7 * vlenb -; OMIT-FP-NEXT: csrr a0, vlenb -; OMIT-FP-NEXT: li a1, 6 -; OMIT-FP-NEXT: mul a0, a0, a1 -; OMIT-FP-NEXT: add a0, sp, a0 -; OMIT-FP-NEXT: addi a0, a0, 16 -; OMIT-FP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill -; OMIT-FP-NEXT: csrr a0, vlenb -; OMIT-FP-NEXT: slli a0, a0, 2 -; OMIT-FP-NEXT: add a0, sp, a0 -; OMIT-FP-NEXT: addi a0, a0, 16 -; OMIT-FP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill -; OMIT-FP-NEXT: addi a0, sp, 16 -; OMIT-FP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill -; OMIT-FP-NEXT: .cfi_escape 0x10, 0x61, 0x08, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 1 * vlenb -; OMIT-FP-NEXT: .cfi_escape 0x10, 0x62, 0x08, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 3 * vlenb -; OMIT-FP-NEXT: .cfi_escape 0x10, 0x63, 0x08, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 2 * vlenb -; OMIT-FP-NEXT: .cfi_escape 0x10, 0x64, 0x08, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 7 * vlenb -; OMIT-FP-NEXT: .cfi_escape 0x10, 0x65, 0x08, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 6 * vlenb -; OMIT-FP-NEXT: .cfi_escape 0x10, 0x66, 0x08, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 5 * vlenb -; OMIT-FP-NEXT: .cfi_escape 0x10, 0x67, 0x08, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 4 * vlenb -; OMIT-FP-NEXT: #APP -; OMIT-FP-NEXT: #NO_APP -; OMIT-FP-NEXT: csrr a0, vlenb -; OMIT-FP-NEXT: li a1, 6 -; OMIT-FP-NEXT: mul a0, a0, a1 -; OMIT-FP-NEXT: add a0, sp, a0 -; OMIT-FP-NEXT: addi a0, a0, 16 -; OMIT-FP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload -; OMIT-FP-NEXT: csrr a0, vlenb -; OMIT-FP-NEXT: slli a0, a0, 2 -; OMIT-FP-NEXT: add a0, sp, a0 -; OMIT-FP-NEXT: addi a0, a0, 16 -; OMIT-FP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload -; OMIT-FP-NEXT: addi a0, sp, 16 -; OMIT-FP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload -; OMIT-FP-NEXT: csrr a0, vlenb -; OMIT-FP-NEXT: slli a1, a0, 3 -; OMIT-FP-NEXT: sub a0, a1, a0 -; OMIT-FP-NEXT: add sp, sp, a0 -; OMIT-FP-NEXT: .cfi_def_cfa sp, 16 -; OMIT-FP-NEXT: .cfi_restore v1 -; OMIT-FP-NEXT: .cfi_restore v2 -; OMIT-FP-NEXT: .cfi_restore v3 -; OMIT-FP-NEXT: .cfi_restore v4 -; OMIT-FP-NEXT: .cfi_restore v5 -; OMIT-FP-NEXT: .cfi_restore v6 -; OMIT-FP-NEXT: .cfi_restore v7 -; OMIT-FP-NEXT: addi sp, sp, 16 -; OMIT-FP-NEXT: .cfi_def_cfa_offset 0 -; OMIT-FP-NEXT: ret -; -; NO-OMIT-FP-LABEL: test_vector_callee_cfi: -; NO-OMIT-FP: # %bb.0: # %entry -; NO-OMIT-FP-NEXT: addi sp, sp, -32 -; NO-OMIT-FP-NEXT: .cfi_def_cfa_offset 32 -; NO-OMIT-FP-NEXT: sd ra, 24(sp) # 8-byte Folded Spill -; NO-OMIT-FP-NEXT: sd s0, 16(sp) # 8-byte Folded Spill -; NO-OMIT-FP-NEXT: .cfi_offset ra, -8 -; NO-OMIT-FP-NEXT: .cfi_offset s0, -16 -; NO-OMIT-FP-NEXT: addi s0, sp, 32 -; NO-OMIT-FP-NEXT: .cfi_def_cfa s0, 0 -; NO-OMIT-FP-NEXT: csrr a0, vlenb -; NO-OMIT-FP-NEXT: slli a1, a0, 3 -; NO-OMIT-FP-NEXT: sub a0, a1, a0 -; NO-OMIT-FP-NEXT: sub sp, sp, a0 -; NO-OMIT-FP-NEXT: csrr a0, vlenb -; NO-OMIT-FP-NEXT: sub a0, s0, a0 -; NO-OMIT-FP-NEXT: addi a0, a0, -32 -; NO-OMIT-FP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill -; NO-OMIT-FP-NEXT: csrr a0, vlenb -; NO-OMIT-FP-NEXT: slli a1, a0, 1 -; NO-OMIT-FP-NEXT: add a0, a1, a0 -; NO-OMIT-FP-NEXT: sub a0, s0, a0 -; NO-OMIT-FP-NEXT: addi a0, a0, -32 -; NO-OMIT-FP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill -; NO-OMIT-FP-NEXT: csrr a0, vlenb -; NO-OMIT-FP-NEXT: slli a1, a0, 3 -; NO-OMIT-FP-NEXT: sub a0, a1, a0 -; NO-OMIT-FP-NEXT: sub a0, s0, a0 -; NO-OMIT-FP-NEXT: addi a0, a0, -32 -; NO-OMIT-FP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill -; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 32 - 1 * vlenb -; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 32 - 3 * vlenb -; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 32 - 2 * vlenb -; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 32 - 7 * vlenb -; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 32 - 6 * vlenb -; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 32 - 5 * vlenb -; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 32 - 4 * vlenb -; NO-OMIT-FP-NEXT: #APP -; NO-OMIT-FP-NEXT: #NO_APP -; NO-OMIT-FP-NEXT: csrr a0, vlenb -; NO-OMIT-FP-NEXT: sub a0, s0, a0 -; NO-OMIT-FP-NEXT: addi a0, a0, -32 -; NO-OMIT-FP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload -; NO-OMIT-FP-NEXT: csrr a0, vlenb -; NO-OMIT-FP-NEXT: slli a1, a0, 1 -; NO-OMIT-FP-NEXT: add a0, a1, a0 -; NO-OMIT-FP-NEXT: sub a0, s0, a0 -; NO-OMIT-FP-NEXT: addi a0, a0, -32 -; NO-OMIT-FP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload -; NO-OMIT-FP-NEXT: csrr a0, vlenb -; NO-OMIT-FP-NEXT: slli a1, a0, 3 -; NO-OMIT-FP-NEXT: sub a0, a1, a0 -; NO-OMIT-FP-NEXT: sub a0, s0, a0 -; NO-OMIT-FP-NEXT: addi a0, a0, -32 -; NO-OMIT-FP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload -; NO-OMIT-FP-NEXT: .cfi_restore v1 -; NO-OMIT-FP-NEXT: .cfi_restore v2 -; NO-OMIT-FP-NEXT: .cfi_restore v3 -; NO-OMIT-FP-NEXT: .cfi_restore v4 -; NO-OMIT-FP-NEXT: .cfi_restore v5 -; NO-OMIT-FP-NEXT: .cfi_restore v6 -; NO-OMIT-FP-NEXT: .cfi_restore v7 -; NO-OMIT-FP-NEXT: addi sp, s0, -32 -; NO-OMIT-FP-NEXT: .cfi_def_cfa sp, 32 -; NO-OMIT-FP-NEXT: ld ra, 24(sp) # 8-byte Folded Reload -; NO-OMIT-FP-NEXT: ld s0, 16(sp) # 8-byte Folded Reload -; NO-OMIT-FP-NEXT: .cfi_restore ra -; NO-OMIT-FP-NEXT: .cfi_restore s0 -; NO-OMIT-FP-NEXT: addi sp, sp, 32 -; NO-OMIT-FP-NEXT: .cfi_def_cfa_offset 0 -; NO-OMIT-FP-NEXT: ret -entry: - call void asm sideeffect "", - "~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7}"() - - ret %va -} diff --git a/llvm/test/CodeGen/RISCV/rvv/combine-ctpop-to-vcpop.ll b/llvm/test/CodeGen/RISCV/rvv/combine-ctpop-to-vcpop.ll new file mode 100644 index 0000000000000..e5a8a25db4d41 --- /dev/null +++ b/llvm/test/CodeGen/RISCV/rvv/combine-ctpop-to-vcpop.ll @@ -0,0 +1,265 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc < %s -mtriple=riscv32 -mattr=+v,+zbb | FileCheck %s --check-prefixes=CHECK,RV32 +; RUN: llc < %s -mtriple=riscv64 -mattr=+v,+zbb | FileCheck %s --check-prefixes=CHECK,RV64 + +define i2 @test_v2i1(<2 x i1> %x) { +; CHECK-LABEL: test_v2i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetivli zero, 2, e8, mf8, ta, ma +; CHECK-NEXT: vcpop.m a0, v0 +; CHECK-NEXT: ret +entry: + %a = bitcast <2 x i1> %x to i2 + %b = call i2 @llvm.ctpop.i2(i2 %a) + ret i2 %b +} + +define i4 @test_v4i1(<4 x i1> %x) { +; CHECK-LABEL: test_v4i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetivli zero, 4, e8, mf4, ta, ma +; CHECK-NEXT: vcpop.m a0, v0 +; CHECK-NEXT: ret +entry: + %a = bitcast <4 x i1> %x to i4 + %b = call i4 @llvm.ctpop.i4(i4 %a) + ret i4 %b +} + +define i8 @test_v8i1(<8 x i1> %x) { +; CHECK-LABEL: test_v8i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetivli zero, 8, e8, mf2, ta, ma +; CHECK-NEXT: vcpop.m a0, v0 +; CHECK-NEXT: ret +entry: + %a = bitcast <8 x i1> %x to i8 + %b = call i8 @llvm.ctpop.i8(i8 %a) + ret i8 %b +} + +define i16 @test_v16i1(<16 x i1> %x) { +; CHECK-LABEL: test_v16i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, ma +; CHECK-NEXT: vcpop.m a0, v0 +; CHECK-NEXT: ret +entry: + %a = bitcast <16 x i1> %x to i16 + %b = call i16 @llvm.ctpop.i16(i16 %a) + ret i16 %b +} + +define i32 @test_v32i1(<32 x i1> %x) { +; CHECK-LABEL: test_v32i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: li a0, 32 +; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma +; CHECK-NEXT: vcpop.m a0, v0 +; CHECK-NEXT: ret +entry: + %a = bitcast <32 x i1> %x to i32 + %b = call i32 @llvm.ctpop.i32(i32 %a) + ret i32 %b +} + +define i64 @test_v64i1(<64 x i1> %x) { +; RV32-LABEL: test_v64i1: +; RV32: # %bb.0: # %entry +; RV32-NEXT: li a0, 64 +; RV32-NEXT: vsetvli zero, a0, e8, m4, ta, ma +; RV32-NEXT: vcpop.m a0, v0 +; RV32-NEXT: li a1, 0 +; RV32-NEXT: ret +; +; RV64-LABEL: test_v64i1: +; RV64: # %bb.0: # %entry +; RV64-NEXT: li a0, 64 +; RV64-NEXT: vsetvli zero, a0, e8, m4, ta, ma +; RV64-NEXT: vcpop.m a0, v0 +; RV64-NEXT: ret +entry: + %a = bitcast <64 x i1> %x to i64 + %b = call i64 @llvm.ctpop.i64(i64 %a) + ret i64 %b +} + +define i128 @test_v128i1(<128 x i1> %x) { +; RV32-LABEL: test_v128i1: +; RV32: # %bb.0: # %entry +; RV32-NEXT: li a1, 128 +; RV32-NEXT: vsetvli zero, a1, e8, m8, ta, ma +; RV32-NEXT: vcpop.m a1, v0 +; RV32-NEXT: sw a1, 0(a0) +; RV32-NEXT: sw zero, 4(a0) +; RV32-NEXT: sw zero, 8(a0) +; RV32-NEXT: sw zero, 12(a0) +; RV32-NEXT: ret +; +; RV64-LABEL: test_v128i1: +; RV64: # %bb.0: # %entry +; RV64-NEXT: li a0, 128 +; RV64-NEXT: vsetvli zero, a0, e8, m8, ta, ma +; RV64-NEXT: vcpop.m a0, v0 +; RV64-NEXT: li a1, 0 +; RV64-NEXT: ret +entry: + %a = bitcast <128 x i1> %x to i128 + %b = call i128 @llvm.ctpop.i128(i128 %a) + ret i128 %b +} + +define i32 @test_trunc_v128i1(<128 x i1> %x) { +; CHECK-LABEL: test_trunc_v128i1: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: li a0, 128 +; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma +; CHECK-NEXT: vcpop.m a0, v0 +; CHECK-NEXT: ret +entry: + %a = bitcast <128 x i1> %x to i128 + %b = call i128 @llvm.ctpop.i128(i128 %a) + %c = trunc i128 %b to i32 + ret i32 %c +} + +define i256 @test_v256i1(<256 x i1> %x) { +; RV32-LABEL: test_v256i1: +; RV32: # %bb.0: # %entry +; RV32-NEXT: vsetivli zero, 1, e64, m1, ta, ma +; RV32-NEXT: vslidedown.vi v9, v0, 1 +; RV32-NEXT: li a1, 32 +; RV32-NEXT: vslidedown.vi v10, v8, 1 +; RV32-NEXT: vmv.x.s a2, v0 +; RV32-NEXT: vmv.x.s a3, v8 +; RV32-NEXT: vsrl.vx v11, v9, a1 +; RV32-NEXT: vsrl.vx v12, v0, a1 +; RV32-NEXT: vmv.x.s a4, v9 +; RV32-NEXT: vsrl.vx v9, v10, a1 +; RV32-NEXT: vsrl.vx v8, v8, a1 +; RV32-NEXT: vmv.x.s a1, v10 +; RV32-NEXT: cpop a3, a3 +; RV32-NEXT: cpop a2, a2 +; RV32-NEXT: vmv.x.s a5, v11 +; RV32-NEXT: vmv.x.s a6, v12 +; RV32-NEXT: vmv.x.s a7, v9 +; RV32-NEXT: vmv.x.s t0, v8 +; RV32-NEXT: cpop a1, a1 +; RV32-NEXT: cpop a4, a4 +; RV32-NEXT: cpop t0, t0 +; RV32-NEXT: cpop a7, a7 +; RV32-NEXT: cpop a6, a6 +; RV32-NEXT: cpop a5, a5 +; RV32-NEXT: add a3, a3, t0 +; RV32-NEXT: add a1, a1, a7 +; RV32-NEXT: add a2, a2, a6 +; RV32-NEXT: add a4, a4, a5 +; RV32-NEXT: add a5, a3, a1 +; RV32-NEXT: add a6, a2, a4 +; RV32-NEXT: add a1, a6, a5 +; RV32-NEXT: sltu a3, a5, a3 +; RV32-NEXT: sltu a4, a6, a2 +; RV32-NEXT: sltu a2, a1, a6 +; RV32-NEXT: add a3, a4, a3 +; RV32-NEXT: add a3, a3, a2 +; RV32-NEXT: beq a3, a4, .LBB8_2 +; RV32-NEXT: # %bb.1: # %entry +; RV32-NEXT: sltu a2, a3, a4 +; RV32-NEXT: .LBB8_2: # %entry +; RV32-NEXT: sw zero, 16(a0) +; RV32-NEXT: sw zero, 20(a0) +; RV32-NEXT: sw zero, 24(a0) +; RV32-NEXT: sw zero, 28(a0) +; RV32-NEXT: sw a1, 0(a0) +; RV32-NEXT: sw a3, 4(a0) +; RV32-NEXT: sw a2, 8(a0) +; RV32-NEXT: sw zero, 12(a0) +; RV32-NEXT: ret +; +; RV64-LABEL: test_v256i1: +; RV64: # %bb.0: # %entry +; RV64-NEXT: vsetivli zero, 1, e64, m1, ta, ma +; RV64-NEXT: vslidedown.vi v9, v0, 1 +; RV64-NEXT: vmv.x.s a1, v0 +; RV64-NEXT: vslidedown.vi v10, v8, 1 +; RV64-NEXT: vmv.x.s a2, v8 +; RV64-NEXT: vmv.x.s a3, v9 +; RV64-NEXT: vmv.x.s a4, v10 +; RV64-NEXT: cpop a2, a2 +; RV64-NEXT: cpop a1, a1 +; RV64-NEXT: cpop a4, a4 +; RV64-NEXT: cpop a3, a3 +; RV64-NEXT: add a2, a2, a4 +; RV64-NEXT: add a1, a1, a3 +; RV64-NEXT: add a2, a1, a2 +; RV64-NEXT: sltu a1, a2, a1 +; RV64-NEXT: sd a2, 0(a0) +; RV64-NEXT: sd a1, 8(a0) +; RV64-NEXT: sd zero, 16(a0) +; RV64-NEXT: sd zero, 24(a0) +; RV64-NEXT: ret +entry: + %a = bitcast <256 x i1> %x to i256 + %b = call i256 @llvm.ctpop.i256(i256 %a) + ret i256 %b +} + +define i32 @test_trunc_v256i1(<256 x i1> %x) { +; RV32-LABEL: test_trunc_v256i1: +; RV32: # %bb.0: # %entry +; RV32-NEXT: vsetivli zero, 1, e64, m1, ta, ma +; RV32-NEXT: vslidedown.vi v9, v0, 1 +; RV32-NEXT: li a0, 32 +; RV32-NEXT: vslidedown.vi v10, v8, 1 +; RV32-NEXT: vmv.x.s a1, v0 +; RV32-NEXT: vmv.x.s a2, v8 +; RV32-NEXT: vsrl.vx v11, v9, a0 +; RV32-NEXT: vsrl.vx v12, v0, a0 +; RV32-NEXT: vmv.x.s a3, v9 +; RV32-NEXT: vsrl.vx v9, v10, a0 +; RV32-NEXT: vsrl.vx v8, v8, a0 +; RV32-NEXT: vmv.x.s a0, v10 +; RV32-NEXT: cpop a2, a2 +; RV32-NEXT: cpop a1, a1 +; RV32-NEXT: vmv.x.s a4, v11 +; RV32-NEXT: vmv.x.s a5, v12 +; RV32-NEXT: vmv.x.s a6, v9 +; RV32-NEXT: vmv.x.s a7, v8 +; RV32-NEXT: cpop a0, a0 +; RV32-NEXT: cpop a3, a3 +; RV32-NEXT: cpop a7, a7 +; RV32-NEXT: cpop a6, a6 +; RV32-NEXT: cpop a5, a5 +; RV32-NEXT: cpop a4, a4 +; RV32-NEXT: add a2, a2, a7 +; RV32-NEXT: add a0, a0, a6 +; RV32-NEXT: add a1, a1, a5 +; RV32-NEXT: add a3, a3, a4 +; RV32-NEXT: add a0, a2, a0 +; RV32-NEXT: add a1, a1, a3 +; RV32-NEXT: add a0, a1, a0 +; RV32-NEXT: ret +; +; RV64-LABEL: test_trunc_v256i1: +; RV64: # %bb.0: # %entry +; RV64-NEXT: vsetivli zero, 1, e64, m1, ta, ma +; RV64-NEXT: vslidedown.vi v9, v0, 1 +; RV64-NEXT: vmv.x.s a0, v0 +; RV64-NEXT: vslidedown.vi v10, v8, 1 +; RV64-NEXT: vmv.x.s a1, v8 +; RV64-NEXT: vmv.x.s a2, v9 +; RV64-NEXT: vmv.x.s a3, v10 +; RV64-NEXT: cpop a1, a1 +; RV64-NEXT: cpop a0, a0 +; RV64-NEXT: cpop a3, a3 +; RV64-NEXT: cpop a2, a2 +; RV64-NEXT: add a1, a1, a3 +; RV64-NEXT: add a0, a0, a2 +; RV64-NEXT: add a0, a0, a1 +; RV64-NEXT: ret +entry: + %a = bitcast <256 x i1> %x to i256 + %b = call i256 @llvm.ctpop.i256(i256 %a) + %c = trunc i256 %b to i32 + ret i32 %c +} diff --git a/llvm/test/CodeGen/RISCV/rvv/compressstore.ll b/llvm/test/CodeGen/RISCV/rvv/compressstore.ll index 400dfd393509c..bfb2d0a3accc4 100644 --- a/llvm/test/CodeGen/RISCV/rvv/compressstore.ll +++ b/llvm/test/CodeGen/RISCV/rvv/compressstore.ll @@ -453,20 +453,17 @@ define void @test_compresstore_v128i16(ptr %p, <128 x i1> %mask, <128 x i16> %da ; RV64-NEXT: vsetvli zero, a1, e16, m8, ta, ma ; RV64-NEXT: vcompress.vm v24, v8, v0 ; RV64-NEXT: vcpop.m a2, v0 -; RV64-NEXT: vsetvli zero, a2, e16, m8, ta, ma -; RV64-NEXT: vse16.v v24, (a0) ; RV64-NEXT: vsetivli zero, 8, e8, m1, ta, ma ; RV64-NEXT: vslidedown.vi v8, v0, 8 -; RV64-NEXT: vsetvli zero, zero, e64, m8, ta, ma -; RV64-NEXT: vmv.x.s a2, v0 ; RV64-NEXT: vsetvli zero, a1, e16, m8, ta, ma -; RV64-NEXT: vcompress.vm v24, v16, v8 +; RV64-NEXT: vcompress.vm v0, v16, v8 ; RV64-NEXT: vcpop.m a1, v8 -; RV64-NEXT: cpop a2, a2 +; RV64-NEXT: vsetvli zero, a2, e16, m8, ta, ma +; RV64-NEXT: vse16.v v24, (a0) ; RV64-NEXT: slli a2, a2, 1 ; RV64-NEXT: add a0, a0, a2 ; RV64-NEXT: vsetvli zero, a1, e16, m8, ta, ma -; RV64-NEXT: vse16.v v24, (a0) +; RV64-NEXT: vse16.v v0, (a0) ; RV64-NEXT: ret ; ; RV32-LABEL: test_compresstore_v128i16: @@ -673,20 +670,17 @@ define void @test_compresstore_v64i32(ptr %p, <64 x i1> %mask, <64 x i32> %data) ; RV32-NEXT: vsetvli zero, a1, e32, m8, ta, ma ; RV32-NEXT: vcompress.vm v24, v8, v0 ; RV32-NEXT: vcpop.m a2, v0 -; RV32-NEXT: vsetvli zero, a2, e32, m8, ta, ma -; RV32-NEXT: vse32.v v24, (a0) ; RV32-NEXT: vsetivli zero, 4, e8, mf2, ta, ma ; RV32-NEXT: vslidedown.vi v8, v0, 4 -; RV32-NEXT: vsetvli zero, zero, e32, m2, ta, ma -; RV32-NEXT: vmv.x.s a2, v0 ; RV32-NEXT: vsetvli zero, a1, e32, m8, ta, ma -; RV32-NEXT: vcompress.vm v24, v16, v8 +; RV32-NEXT: vcompress.vm v0, v16, v8 ; RV32-NEXT: vcpop.m a1, v8 -; RV32-NEXT: cpop a2, a2 +; RV32-NEXT: vsetvli zero, a2, e32, m8, ta, ma +; RV32-NEXT: vse32.v v24, (a0) ; RV32-NEXT: slli a2, a2, 2 ; RV32-NEXT: add a0, a0, a2 ; RV32-NEXT: vsetvli zero, a1, e32, m8, ta, ma -; RV32-NEXT: vse32.v v24, (a0) +; RV32-NEXT: vse32.v v0, (a0) ; RV32-NEXT: ret entry: tail call void @llvm.masked.compressstore.v64i32(<64 x i32> %data, ptr align 4 %p, <64 x i1> %mask) diff --git a/llvm/test/CodeGen/RISCV/rvv/expandload.ll b/llvm/test/CodeGen/RISCV/rvv/expandload.ll index f1fcaed2762ae..b32d85bb1943a 100644 --- a/llvm/test/CodeGen/RISCV/rvv/expandload.ll +++ b/llvm/test/CodeGen/RISCV/rvv/expandload.ll @@ -749,60 +749,66 @@ define <128 x i16> @test_expandload_v128i16(ptr %base, <128 x i1> %mask, <128 x ; CHECK-RV64-NEXT: sub sp, sp, a1 ; CHECK-RV64-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x20, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 32 * vlenb ; CHECK-RV64-NEXT: csrr a1, vlenb -; CHECK-RV64-NEXT: slli a1, a1, 4 +; CHECK-RV64-NEXT: slli a1, a1, 3 ; CHECK-RV64-NEXT: add a1, sp, a1 ; CHECK-RV64-NEXT: addi a1, a1, 16 ; CHECK-RV64-NEXT: vs8r.v v16, (a1) # Unknown-size Folded Spill ; CHECK-RV64-NEXT: li a1, 64 ; CHECK-RV64-NEXT: vsetivli zero, 8, e8, m1, ta, ma ; CHECK-RV64-NEXT: vslidedown.vi v7, v0, 8 -; CHECK-RV64-NEXT: vsetvli zero, zero, e64, m8, ta, ma -; CHECK-RV64-NEXT: vmv.x.s a2, v0 -; CHECK-RV64-NEXT: vsetvli zero, a1, e8, m4, ta, ma -; CHECK-RV64-NEXT: vcpop.m a3, v0 -; CHECK-RV64-NEXT: vsetvli zero, a3, e16, m8, ta, ma -; CHECK-RV64-NEXT: vle16.v v24, (a0) -; CHECK-RV64-NEXT: csrr a3, vlenb -; CHECK-RV64-NEXT: li a4, 24 -; CHECK-RV64-NEXT: mul a3, a3, a4 -; CHECK-RV64-NEXT: add a3, sp, a3 -; CHECK-RV64-NEXT: addi a3, a3, 16 -; CHECK-RV64-NEXT: vs8r.v v24, (a3) # Unknown-size Folded Spill ; CHECK-RV64-NEXT: vsetvli zero, a1, e8, m4, ta, ma +; CHECK-RV64-NEXT: vcpop.m a2, v0 ; CHECK-RV64-NEXT: vcpop.m a3, v7 -; CHECK-RV64-NEXT: cpop a2, a2 +; CHECK-RV64-NEXT: vsetvli zero, a2, e16, m8, ta, ma +; CHECK-RV64-NEXT: vle16.v v24, (a0) +; CHECK-RV64-NEXT: csrr a4, vlenb +; CHECK-RV64-NEXT: slli a4, a4, 4 +; CHECK-RV64-NEXT: add a4, sp, a4 +; CHECK-RV64-NEXT: addi a4, a4, 16 +; CHECK-RV64-NEXT: vs8r.v v24, (a4) # Unknown-size Folded Spill ; CHECK-RV64-NEXT: slli a2, a2, 1 ; CHECK-RV64-NEXT: add a0, a0, a2 ; CHECK-RV64-NEXT: vsetvli zero, a3, e16, m8, ta, ma -; CHECK-RV64-NEXT: vle16.v v16, (a0) +; CHECK-RV64-NEXT: vle16.v v24, (a0) ; CHECK-RV64-NEXT: csrr a0, vlenb -; CHECK-RV64-NEXT: slli a0, a0, 3 +; CHECK-RV64-NEXT: li a2, 24 +; CHECK-RV64-NEXT: mul a0, a0, a2 ; CHECK-RV64-NEXT: add a0, sp, a0 ; CHECK-RV64-NEXT: addi a0, a0, 16 -; CHECK-RV64-NEXT: vs8r.v v16, (a0) # Unknown-size Folded Spill +; CHECK-RV64-NEXT: vs8r.v v24, (a0) # Unknown-size Folded Spill ; CHECK-RV64-NEXT: vsetvli zero, a1, e16, m8, ta, mu ; CHECK-RV64-NEXT: viota.m v24, v0 ; CHECK-RV64-NEXT: csrr a0, vlenb -; CHECK-RV64-NEXT: li a1, 24 -; CHECK-RV64-NEXT: mul a0, a0, a1 +; CHECK-RV64-NEXT: slli a0, a0, 4 ; CHECK-RV64-NEXT: add a0, sp, a0 ; CHECK-RV64-NEXT: addi a0, a0, 16 ; CHECK-RV64-NEXT: vl8r.v v16, (a0) # Unknown-size Folded Reload ; CHECK-RV64-NEXT: vrgather.vv v8, v16, v24, v0.t ; CHECK-RV64-NEXT: addi a0, sp, 16 ; CHECK-RV64-NEXT: vs8r.v v8, (a0) # Unknown-size Folded Spill -; CHECK-RV64-NEXT: viota.m v8, v7 -; CHECK-RV64-NEXT: vmv1r.v v0, v7 +; CHECK-RV64-NEXT: viota.m v16, v7 ; CHECK-RV64-NEXT: csrr a0, vlenb ; CHECK-RV64-NEXT: slli a0, a0, 4 ; CHECK-RV64-NEXT: add a0, sp, a0 ; CHECK-RV64-NEXT: addi a0, a0, 16 -; CHECK-RV64-NEXT: vl8r.v v16, (a0) # Unknown-size Folded Reload +; CHECK-RV64-NEXT: vs8r.v v16, (a0) # Unknown-size Folded Spill +; CHECK-RV64-NEXT: vmv1r.v v0, v7 ; CHECK-RV64-NEXT: csrr a0, vlenb -; CHECK-RV64-NEXT: slli a0, a0, 3 +; CHECK-RV64-NEXT: li a1, 24 +; CHECK-RV64-NEXT: mul a0, a0, a1 ; CHECK-RV64-NEXT: add a0, sp, a0 ; CHECK-RV64-NEXT: addi a0, a0, 16 ; CHECK-RV64-NEXT: vl8r.v v24, (a0) # Unknown-size Folded Reload +; CHECK-RV64-NEXT: csrr a0, vlenb +; CHECK-RV64-NEXT: slli a0, a0, 3 +; CHECK-RV64-NEXT: add a0, sp, a0 +; CHECK-RV64-NEXT: addi a0, a0, 16 +; CHECK-RV64-NEXT: vl8r.v v16, (a0) # Unknown-size Folded Reload +; CHECK-RV64-NEXT: csrr a0, vlenb +; CHECK-RV64-NEXT: slli a0, a0, 4 +; CHECK-RV64-NEXT: add a0, sp, a0 +; CHECK-RV64-NEXT: addi a0, a0, 16 +; CHECK-RV64-NEXT: vl8r.v v8, (a0) # Unknown-size Folded Reload ; CHECK-RV64-NEXT: vrgather.vv v16, v24, v8, v0.t ; CHECK-RV64-NEXT: addi a0, sp, 16 ; CHECK-RV64-NEXT: vl8r.v v8, (a0) # Unknown-size Folded Reload @@ -844,12 +850,9 @@ define <128 x i16> @test_expandload_v128i16_all_ones(ptr %base, <128 x i16> %pas ; CHECK-RV64-NEXT: vsetvli zero, a1, e16, m8, ta, ma ; CHECK-RV64-NEXT: vle16.v v8, (a0) ; CHECK-RV64-NEXT: vmset.m v16 -; CHECK-RV64-NEXT: vsetvli zero, a1, e64, m1, ta, ma -; CHECK-RV64-NEXT: vmv.x.s a2, v16 -; CHECK-RV64-NEXT: cpop a2, a2 -; CHECK-RV64-NEXT: slli a2, a2, 1 -; CHECK-RV64-NEXT: add a0, a0, a2 -; CHECK-RV64-NEXT: vsetvli zero, a1, e16, m8, ta, ma +; CHECK-RV64-NEXT: vcpop.m a1, v16 +; CHECK-RV64-NEXT: slli a1, a1, 1 +; CHECK-RV64-NEXT: add a0, a0, a1 ; CHECK-RV64-NEXT: vle16.v v16, (a0) ; CHECK-RV64-NEXT: ret %res = call <128 x i16> @llvm.masked.expandload.v128i16(ptr align 2 %base, <128 x i1> splat (i1 true), <128 x i16> %passthru) @@ -1020,60 +1023,66 @@ define <64 x i32> @test_expandload_v64i32(ptr %base, <64 x i1> %mask, <64 x i32> ; CHECK-RV32-NEXT: sub sp, sp, a1 ; CHECK-RV32-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x10, 0x22, 0x11, 0x20, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 16 + 32 * vlenb ; CHECK-RV32-NEXT: csrr a1, vlenb -; CHECK-RV32-NEXT: slli a1, a1, 4 +; CHECK-RV32-NEXT: slli a1, a1, 3 ; CHECK-RV32-NEXT: add a1, sp, a1 ; CHECK-RV32-NEXT: addi a1, a1, 16 ; CHECK-RV32-NEXT: vs8r.v v16, (a1) # Unknown-size Folded Spill ; CHECK-RV32-NEXT: li a1, 32 ; CHECK-RV32-NEXT: vsetivli zero, 4, e8, mf2, ta, ma ; CHECK-RV32-NEXT: vslidedown.vi v7, v0, 4 -; CHECK-RV32-NEXT: vsetvli zero, zero, e32, m2, ta, ma -; CHECK-RV32-NEXT: vmv.x.s a2, v0 -; CHECK-RV32-NEXT: vsetvli zero, a1, e8, m2, ta, ma -; CHECK-RV32-NEXT: vcpop.m a3, v0 -; CHECK-RV32-NEXT: vsetvli zero, a3, e32, m8, ta, ma -; CHECK-RV32-NEXT: vle32.v v24, (a0) -; CHECK-RV32-NEXT: csrr a3, vlenb -; CHECK-RV32-NEXT: li a4, 24 -; CHECK-RV32-NEXT: mul a3, a3, a4 -; CHECK-RV32-NEXT: add a3, sp, a3 -; CHECK-RV32-NEXT: addi a3, a3, 16 -; CHECK-RV32-NEXT: vs8r.v v24, (a3) # Unknown-size Folded Spill ; CHECK-RV32-NEXT: vsetvli zero, a1, e8, m2, ta, ma +; CHECK-RV32-NEXT: vcpop.m a2, v0 ; CHECK-RV32-NEXT: vcpop.m a3, v7 -; CHECK-RV32-NEXT: cpop a2, a2 +; CHECK-RV32-NEXT: vsetvli zero, a2, e32, m8, ta, ma +; CHECK-RV32-NEXT: vle32.v v24, (a0) +; CHECK-RV32-NEXT: csrr a4, vlenb +; CHECK-RV32-NEXT: slli a4, a4, 4 +; CHECK-RV32-NEXT: add a4, sp, a4 +; CHECK-RV32-NEXT: addi a4, a4, 16 +; CHECK-RV32-NEXT: vs8r.v v24, (a4) # Unknown-size Folded Spill ; CHECK-RV32-NEXT: slli a2, a2, 2 ; CHECK-RV32-NEXT: add a0, a0, a2 ; CHECK-RV32-NEXT: vsetvli zero, a3, e32, m8, ta, ma -; CHECK-RV32-NEXT: vle32.v v16, (a0) +; CHECK-RV32-NEXT: vle32.v v24, (a0) ; CHECK-RV32-NEXT: csrr a0, vlenb -; CHECK-RV32-NEXT: slli a0, a0, 3 +; CHECK-RV32-NEXT: li a2, 24 +; CHECK-RV32-NEXT: mul a0, a0, a2 ; CHECK-RV32-NEXT: add a0, sp, a0 ; CHECK-RV32-NEXT: addi a0, a0, 16 -; CHECK-RV32-NEXT: vs8r.v v16, (a0) # Unknown-size Folded Spill +; CHECK-RV32-NEXT: vs8r.v v24, (a0) # Unknown-size Folded Spill ; CHECK-RV32-NEXT: vsetvli zero, a1, e32, m8, ta, mu ; CHECK-RV32-NEXT: viota.m v24, v0 ; CHECK-RV32-NEXT: csrr a0, vlenb -; CHECK-RV32-NEXT: li a1, 24 -; CHECK-RV32-NEXT: mul a0, a0, a1 +; CHECK-RV32-NEXT: slli a0, a0, 4 ; CHECK-RV32-NEXT: add a0, sp, a0 ; CHECK-RV32-NEXT: addi a0, a0, 16 ; CHECK-RV32-NEXT: vl8r.v v16, (a0) # Unknown-size Folded Reload ; CHECK-RV32-NEXT: vrgather.vv v8, v16, v24, v0.t ; CHECK-RV32-NEXT: addi a0, sp, 16 ; CHECK-RV32-NEXT: vs8r.v v8, (a0) # Unknown-size Folded Spill -; CHECK-RV32-NEXT: viota.m v8, v7 -; CHECK-RV32-NEXT: vmv1r.v v0, v7 +; CHECK-RV32-NEXT: viota.m v16, v7 ; CHECK-RV32-NEXT: csrr a0, vlenb ; CHECK-RV32-NEXT: slli a0, a0, 4 ; CHECK-RV32-NEXT: add a0, sp, a0 ; CHECK-RV32-NEXT: addi a0, a0, 16 -; CHECK-RV32-NEXT: vl8r.v v16, (a0) # Unknown-size Folded Reload +; CHECK-RV32-NEXT: vs8r.v v16, (a0) # Unknown-size Folded Spill +; CHECK-RV32-NEXT: vmv1r.v v0, v7 ; CHECK-RV32-NEXT: csrr a0, vlenb -; CHECK-RV32-NEXT: slli a0, a0, 3 +; CHECK-RV32-NEXT: li a1, 24 +; CHECK-RV32-NEXT: mul a0, a0, a1 ; CHECK-RV32-NEXT: add a0, sp, a0 ; CHECK-RV32-NEXT: addi a0, a0, 16 ; CHECK-RV32-NEXT: vl8r.v v24, (a0) # Unknown-size Folded Reload +; CHECK-RV32-NEXT: csrr a0, vlenb +; CHECK-RV32-NEXT: slli a0, a0, 3 +; CHECK-RV32-NEXT: add a0, sp, a0 +; CHECK-RV32-NEXT: addi a0, a0, 16 +; CHECK-RV32-NEXT: vl8r.v v16, (a0) # Unknown-size Folded Reload +; CHECK-RV32-NEXT: csrr a0, vlenb +; CHECK-RV32-NEXT: slli a0, a0, 4 +; CHECK-RV32-NEXT: add a0, sp, a0 +; CHECK-RV32-NEXT: addi a0, a0, 16 +; CHECK-RV32-NEXT: vl8r.v v8, (a0) # Unknown-size Folded Reload ; CHECK-RV32-NEXT: vrgather.vv v16, v24, v8, v0.t ; CHECK-RV32-NEXT: addi a0, sp, 16 ; CHECK-RV32-NEXT: vl8r.v v8, (a0) # Unknown-size Folded Reload @@ -1169,8 +1178,7 @@ define <64 x i32> @test_expandload_v64i32_all_ones(ptr %base, <64 x i32> %passth ; CHECK-RV32-NEXT: vsetvli zero, a1, e32, m8, ta, ma ; CHECK-RV32-NEXT: vle32.v v8, (a0) ; CHECK-RV32-NEXT: vmset.m v16 -; CHECK-RV32-NEXT: vmv.x.s a1, v16 -; CHECK-RV32-NEXT: cpop a1, a1 +; CHECK-RV32-NEXT: vcpop.m a1, v16 ; CHECK-RV32-NEXT: slli a1, a1, 2 ; CHECK-RV32-NEXT: add a0, a0, a1 ; CHECK-RV32-NEXT: vle32.v v16, (a0) diff --git a/llvm/test/CodeGen/RISCV/rvv/rv32-spill-vector-csr.ll b/llvm/test/CodeGen/RISCV/rvv/rv32-spill-vector-csr.ll index ac74a82e79e6d..aef160049106b 100644 --- a/llvm/test/CodeGen/RISCV/rvv/rv32-spill-vector-csr.ll +++ b/llvm/test/CodeGen/RISCV/rvv/rv32-spill-vector-csr.ll @@ -3,6 +3,8 @@ ; RUN: | FileCheck --check-prefix=SPILL-O0 %s ; RUN: llc -mtriple=riscv32 -mattr=+v,+d -O2 < %s \ ; RUN: | FileCheck --check-prefix=SPILL-O2 %s +; RUN: llc -mtriple=riscv32 -mattr=+v,+d,+zcmp -O2 < %s \ +; RUN: | FileCheck --check-prefix=SPILL-O2-ZCMP %s @.str = private unnamed_addr constant [6 x i8] c"hello\00", align 1 @@ -82,6 +84,37 @@ define @foo( %a, @llvm.riscv.vfadd.nxv1f64.nxv1f64( undef, %a, %b, i32 7, i32 %gvl) %call = call signext i32 @puts(ptr @.str) diff --git a/llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector-csr.ll b/llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector-csr.ll index 9054048f2f747..c7c44fb0e1215 100644 --- a/llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector-csr.ll +++ b/llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector-csr.ll @@ -5,6 +5,8 @@ ; RUN: | FileCheck --check-prefix=SPILL-O2 %s ; RUN: llc -mtriple=riscv64 -mattr=+v,+d -mattr=+d -riscv-v-vector-bits-max=128 -O2 < %s \ ; RUN: | FileCheck --check-prefix=SPILL-O2-VLEN128 %s +; RUN: llc -mtriple=riscv64 -mattr=+v,+d,+zcmp -O2 < %s \ +; RUN: | FileCheck --check-prefix=SPILL-O2-ZCMP %s @.str = private unnamed_addr constant [6 x i8] c"hello\00", align 1 @@ -113,6 +115,37 @@ define @foo( %a, @llvm.riscv.vfadd.nxv1f64.nxv1f64( undef, %a, %b, i64 7, i64 %gvl) %call = call signext i32 @puts(ptr @.str) diff --git a/llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector.ll b/llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector.ll index 1e6ff0baddaef..957a23f0069b8 100644 --- a/llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector.ll +++ b/llvm/test/CodeGen/RISCV/rvv/rv64-spill-vector.ll @@ -3,6 +3,8 @@ ; RUN: | FileCheck --check-prefix=SPILL-O0 %s ; RUN: llc -mtriple=riscv64 -mattr=+v -O2 < %s \ ; RUN: | FileCheck --check-prefix=SPILL-O2 %s +; RUN: llc -mtriple=riscv64 -mattr=+v,+d -mattr=+d -riscv-v-vector-bits-max=128 -O2 < %s \ +; RUN: | FileCheck --check-prefix=SPILL-O2-VLEN128 %s define @spill_lmul_1( %va) nounwind { ; SPILL-O0-LABEL: spill_lmul_1: @@ -35,6 +37,19 @@ define @spill_lmul_1( %va) nounwind { ; SPILL-O2-NEXT: add sp, sp, a0 ; SPILL-O2-NEXT: addi sp, sp, 16 ; SPILL-O2-NEXT: ret +; +; SPILL-O2-VLEN128-LABEL: spill_lmul_1: +; SPILL-O2-VLEN128: # %bb.0: # %entry +; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16 +; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16 +; SPILL-O2-VLEN128-NEXT: addi a0, sp, 16 +; SPILL-O2-VLEN128-NEXT: vs1r.v v8, (a0) # Unknown-size Folded Spill +; SPILL-O2-VLEN128-NEXT: #APP +; SPILL-O2-VLEN128-NEXT: #NO_APP +; SPILL-O2-VLEN128-NEXT: vl1r.v v8, (a0) # Unknown-size Folded Reload +; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16 +; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16 +; SPILL-O2-VLEN128-NEXT: ret entry: call void asm sideeffect "", "~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"() @@ -77,6 +92,19 @@ define @spill_lmul_2( %va) nounwind { ; SPILL-O2-NEXT: add sp, sp, a0 ; SPILL-O2-NEXT: addi sp, sp, 16 ; SPILL-O2-NEXT: ret +; +; SPILL-O2-VLEN128-LABEL: spill_lmul_2: +; SPILL-O2-VLEN128: # %bb.0: # %entry +; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16 +; SPILL-O2-VLEN128-NEXT: addi sp, sp, -32 +; SPILL-O2-VLEN128-NEXT: addi a0, sp, 16 +; SPILL-O2-VLEN128-NEXT: vs2r.v v8, (a0) # Unknown-size Folded Spill +; SPILL-O2-VLEN128-NEXT: #APP +; SPILL-O2-VLEN128-NEXT: #NO_APP +; SPILL-O2-VLEN128-NEXT: vl2r.v v8, (a0) # Unknown-size Folded Reload +; SPILL-O2-VLEN128-NEXT: addi sp, sp, 32 +; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16 +; SPILL-O2-VLEN128-NEXT: ret entry: call void asm sideeffect "", "~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"() @@ -119,6 +147,19 @@ define @spill_lmul_4( %va) nounwind { ; SPILL-O2-NEXT: add sp, sp, a0 ; SPILL-O2-NEXT: addi sp, sp, 16 ; SPILL-O2-NEXT: ret +; +; SPILL-O2-VLEN128-LABEL: spill_lmul_4: +; SPILL-O2-VLEN128: # %bb.0: # %entry +; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16 +; SPILL-O2-VLEN128-NEXT: addi sp, sp, -64 +; SPILL-O2-VLEN128-NEXT: addi a0, sp, 16 +; SPILL-O2-VLEN128-NEXT: vs4r.v v8, (a0) # Unknown-size Folded Spill +; SPILL-O2-VLEN128-NEXT: #APP +; SPILL-O2-VLEN128-NEXT: #NO_APP +; SPILL-O2-VLEN128-NEXT: vl4r.v v8, (a0) # Unknown-size Folded Reload +; SPILL-O2-VLEN128-NEXT: addi sp, sp, 64 +; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16 +; SPILL-O2-VLEN128-NEXT: ret entry: call void asm sideeffect "", "~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"() @@ -161,6 +202,19 @@ define @spill_lmul_8( %va) nounwind { ; SPILL-O2-NEXT: add sp, sp, a0 ; SPILL-O2-NEXT: addi sp, sp, 16 ; SPILL-O2-NEXT: ret +; +; SPILL-O2-VLEN128-LABEL: spill_lmul_8: +; SPILL-O2-VLEN128: # %bb.0: # %entry +; SPILL-O2-VLEN128-NEXT: addi sp, sp, -16 +; SPILL-O2-VLEN128-NEXT: addi sp, sp, -128 +; SPILL-O2-VLEN128-NEXT: addi a0, sp, 16 +; SPILL-O2-VLEN128-NEXT: vs8r.v v8, (a0) # Unknown-size Folded Spill +; SPILL-O2-VLEN128-NEXT: #APP +; SPILL-O2-VLEN128-NEXT: #NO_APP +; SPILL-O2-VLEN128-NEXT: vl8r.v v8, (a0) # Unknown-size Folded Reload +; SPILL-O2-VLEN128-NEXT: addi sp, sp, 128 +; SPILL-O2-VLEN128-NEXT: addi sp, sp, 16 +; SPILL-O2-VLEN128-NEXT: ret entry: call void asm sideeffect "", "~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"() diff --git a/llvm/test/CodeGen/RISCV/rvv/rvv-cfi-info.ll b/llvm/test/CodeGen/RISCV/rvv/rvv-cfi-info.ll new file mode 100644 index 0000000000000..0ae2c2ef9c9d3 --- /dev/null +++ b/llvm/test/CodeGen/RISCV/rvv/rvv-cfi-info.ll @@ -0,0 +1,291 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=riscv64 -mattr=+v,+m -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefix=OMIT-FP %s +; RUN: llc -mtriple=riscv64 -mattr=+v,+m -verify-machineinstrs -frame-pointer=all < %s \ +; RUN: | FileCheck -check-prefix=NO-OMIT-FP %s +; RUN: llc -mtriple=riscv64 -mattr=+v,+m,+zcmp -verify-machineinstrs < %s \ +; RUN: | FileCheck -check-prefix=OMIT-FP-ZCMP %s +; RUN: llc -mtriple=riscv64 -mattr=+v,+m,+zcmp -verify-machineinstrs -frame-pointer=all < %s \ +; RUN: | FileCheck -check-prefix=NO-OMIT-FP-ZCMP %s + +define riscv_vector_cc @test_vector_callee_cfi( %va) { +; OMIT-FP-LABEL: test_vector_callee_cfi: +; OMIT-FP: # %bb.0: # %entry +; OMIT-FP-NEXT: addi sp, sp, -48 +; OMIT-FP-NEXT: .cfi_def_cfa_offset 48 +; OMIT-FP-NEXT: sd s1, 40(sp) # 8-byte Folded Spill +; OMIT-FP-NEXT: .cfi_offset s1, -8 +; OMIT-FP-NEXT: csrr a0, vlenb +; OMIT-FP-NEXT: slli a1, a0, 3 +; OMIT-FP-NEXT: sub a0, a1, a0 +; OMIT-FP-NEXT: sub sp, sp, a0 +; OMIT-FP-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x07, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 7 * vlenb +; OMIT-FP-NEXT: csrr a0, vlenb +; OMIT-FP-NEXT: li a1, 6 +; OMIT-FP-NEXT: mul a0, a0, a1 +; OMIT-FP-NEXT: add a0, sp, a0 +; OMIT-FP-NEXT: addi a0, a0, 32 +; OMIT-FP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill +; OMIT-FP-NEXT: csrr a0, vlenb +; OMIT-FP-NEXT: slli a0, a0, 2 +; OMIT-FP-NEXT: add a0, sp, a0 +; OMIT-FP-NEXT: addi a0, a0, 32 +; OMIT-FP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill +; OMIT-FP-NEXT: addi a0, sp, 32 +; OMIT-FP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill +; OMIT-FP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 16 - 1 * vlenb +; OMIT-FP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 16 - 3 * vlenb +; OMIT-FP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 16 - 2 * vlenb +; OMIT-FP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 16 - 7 * vlenb +; OMIT-FP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 16 - 6 * vlenb +; OMIT-FP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 16 - 5 * vlenb +; OMIT-FP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x70, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 16 - 4 * vlenb +; OMIT-FP-NEXT: #APP +; OMIT-FP-NEXT: #NO_APP +; OMIT-FP-NEXT: csrr a0, vlenb +; OMIT-FP-NEXT: li a1, 6 +; OMIT-FP-NEXT: mul a0, a0, a1 +; OMIT-FP-NEXT: add a0, sp, a0 +; OMIT-FP-NEXT: addi a0, a0, 32 +; OMIT-FP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload +; OMIT-FP-NEXT: csrr a0, vlenb +; OMIT-FP-NEXT: slli a0, a0, 2 +; OMIT-FP-NEXT: add a0, sp, a0 +; OMIT-FP-NEXT: addi a0, a0, 32 +; OMIT-FP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload +; OMIT-FP-NEXT: addi a0, sp, 32 +; OMIT-FP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload +; OMIT-FP-NEXT: csrr a0, vlenb +; OMIT-FP-NEXT: slli a1, a0, 3 +; OMIT-FP-NEXT: sub a0, a1, a0 +; OMIT-FP-NEXT: add sp, sp, a0 +; OMIT-FP-NEXT: .cfi_def_cfa sp, 48 +; OMIT-FP-NEXT: .cfi_restore v1 +; OMIT-FP-NEXT: .cfi_restore v2 +; OMIT-FP-NEXT: .cfi_restore v3 +; OMIT-FP-NEXT: .cfi_restore v4 +; OMIT-FP-NEXT: .cfi_restore v5 +; OMIT-FP-NEXT: .cfi_restore v6 +; OMIT-FP-NEXT: .cfi_restore v7 +; OMIT-FP-NEXT: ld s1, 40(sp) # 8-byte Folded Reload +; OMIT-FP-NEXT: .cfi_restore s1 +; OMIT-FP-NEXT: addi sp, sp, 48 +; OMIT-FP-NEXT: .cfi_def_cfa_offset 0 +; OMIT-FP-NEXT: ret +; +; NO-OMIT-FP-LABEL: test_vector_callee_cfi: +; NO-OMIT-FP: # %bb.0: # %entry +; NO-OMIT-FP-NEXT: addi sp, sp, -48 +; NO-OMIT-FP-NEXT: .cfi_def_cfa_offset 48 +; NO-OMIT-FP-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; NO-OMIT-FP-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; NO-OMIT-FP-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; NO-OMIT-FP-NEXT: .cfi_offset ra, -8 +; NO-OMIT-FP-NEXT: .cfi_offset s0, -16 +; NO-OMIT-FP-NEXT: .cfi_offset s1, -24 +; NO-OMIT-FP-NEXT: addi s0, sp, 48 +; NO-OMIT-FP-NEXT: .cfi_def_cfa s0, 0 +; NO-OMIT-FP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-NEXT: slli a1, a0, 3 +; NO-OMIT-FP-NEXT: sub a0, a1, a0 +; NO-OMIT-FP-NEXT: sub sp, sp, a0 +; NO-OMIT-FP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill +; NO-OMIT-FP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-NEXT: slli a1, a0, 1 +; NO-OMIT-FP-NEXT: add a0, a1, a0 +; NO-OMIT-FP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill +; NO-OMIT-FP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-NEXT: slli a1, a0, 3 +; NO-OMIT-FP-NEXT: sub a0, a1, a0 +; NO-OMIT-FP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill +; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 48 - 1 * vlenb +; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 48 - 3 * vlenb +; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 48 - 2 * vlenb +; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 48 - 7 * vlenb +; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 48 - 6 * vlenb +; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 48 - 5 * vlenb +; NO-OMIT-FP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 48 - 4 * vlenb +; NO-OMIT-FP-NEXT: #APP +; NO-OMIT-FP-NEXT: #NO_APP +; NO-OMIT-FP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload +; NO-OMIT-FP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-NEXT: slli a1, a0, 1 +; NO-OMIT-FP-NEXT: add a0, a1, a0 +; NO-OMIT-FP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload +; NO-OMIT-FP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-NEXT: slli a1, a0, 3 +; NO-OMIT-FP-NEXT: sub a0, a1, a0 +; NO-OMIT-FP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload +; NO-OMIT-FP-NEXT: .cfi_restore v1 +; NO-OMIT-FP-NEXT: .cfi_restore v2 +; NO-OMIT-FP-NEXT: .cfi_restore v3 +; NO-OMIT-FP-NEXT: .cfi_restore v4 +; NO-OMIT-FP-NEXT: .cfi_restore v5 +; NO-OMIT-FP-NEXT: .cfi_restore v6 +; NO-OMIT-FP-NEXT: .cfi_restore v7 +; NO-OMIT-FP-NEXT: addi sp, s0, -48 +; NO-OMIT-FP-NEXT: .cfi_def_cfa sp, 48 +; NO-OMIT-FP-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; NO-OMIT-FP-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; NO-OMIT-FP-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; NO-OMIT-FP-NEXT: .cfi_restore ra +; NO-OMIT-FP-NEXT: .cfi_restore s0 +; NO-OMIT-FP-NEXT: .cfi_restore s1 +; NO-OMIT-FP-NEXT: addi sp, sp, 48 +; NO-OMIT-FP-NEXT: .cfi_def_cfa_offset 0 +; NO-OMIT-FP-NEXT: ret +; +; OMIT-FP-ZCMP-LABEL: test_vector_callee_cfi: +; OMIT-FP-ZCMP: # %bb.0: # %entry +; OMIT-FP-ZCMP-NEXT: cm.push {ra, s0-s1}, -48 +; OMIT-FP-ZCMP-NEXT: .cfi_def_cfa_offset 48 +; OMIT-FP-ZCMP-NEXT: .cfi_offset s1, -8 +; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; OMIT-FP-ZCMP-NEXT: slli a1, a0, 3 +; OMIT-FP-ZCMP-NEXT: sub a0, a1, a0 +; OMIT-FP-ZCMP-NEXT: sub sp, sp, a0 +; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x0f, 0x0d, 0x72, 0x00, 0x11, 0x30, 0x22, 0x11, 0x07, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # sp + 48 + 7 * vlenb +; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; OMIT-FP-ZCMP-NEXT: li a1, 6 +; OMIT-FP-ZCMP-NEXT: mul a0, a0, a1 +; OMIT-FP-ZCMP-NEXT: add a0, a0, sp +; OMIT-FP-ZCMP-NEXT: addi a0, a0, 16 +; OMIT-FP-ZCMP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill +; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; OMIT-FP-ZCMP-NEXT: slli a0, a0, 2 +; OMIT-FP-ZCMP-NEXT: add a0, a0, sp +; OMIT-FP-ZCMP-NEXT: addi a0, a0, 16 +; OMIT-FP-ZCMP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill +; OMIT-FP-ZCMP-NEXT: addi a0, sp, 16 +; OMIT-FP-ZCMP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill +; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 32 - 1 * vlenb +; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 32 - 3 * vlenb +; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 32 - 2 * vlenb +; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 32 - 7 * vlenb +; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 32 - 6 * vlenb +; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 32 - 5 * vlenb +; OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x60, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 32 - 4 * vlenb +; OMIT-FP-ZCMP-NEXT: #APP +; OMIT-FP-ZCMP-NEXT: #NO_APP +; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; OMIT-FP-ZCMP-NEXT: li a1, 6 +; OMIT-FP-ZCMP-NEXT: mul a0, a0, a1 +; OMIT-FP-ZCMP-NEXT: add a0, a0, sp +; OMIT-FP-ZCMP-NEXT: addi a0, a0, 16 +; OMIT-FP-ZCMP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload +; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; OMIT-FP-ZCMP-NEXT: slli a0, a0, 2 +; OMIT-FP-ZCMP-NEXT: add a0, a0, sp +; OMIT-FP-ZCMP-NEXT: addi a0, a0, 16 +; OMIT-FP-ZCMP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload +; OMIT-FP-ZCMP-NEXT: addi a0, sp, 16 +; OMIT-FP-ZCMP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload +; OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; OMIT-FP-ZCMP-NEXT: slli a1, a0, 3 +; OMIT-FP-ZCMP-NEXT: sub a0, a1, a0 +; OMIT-FP-ZCMP-NEXT: add sp, sp, a0 +; OMIT-FP-ZCMP-NEXT: .cfi_def_cfa sp, 48 +; OMIT-FP-ZCMP-NEXT: .cfi_restore v1 +; OMIT-FP-ZCMP-NEXT: .cfi_restore v2 +; OMIT-FP-ZCMP-NEXT: .cfi_restore v3 +; OMIT-FP-ZCMP-NEXT: .cfi_restore v4 +; OMIT-FP-ZCMP-NEXT: .cfi_restore v5 +; OMIT-FP-ZCMP-NEXT: .cfi_restore v6 +; OMIT-FP-ZCMP-NEXT: .cfi_restore v7 +; OMIT-FP-ZCMP-NEXT: cm.popret {ra, s0-s1}, 48 +; +; NO-OMIT-FP-ZCMP-LABEL: test_vector_callee_cfi: +; NO-OMIT-FP-ZCMP: # %bb.0: # %entry +; NO-OMIT-FP-ZCMP-NEXT: addi sp, sp, -48 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_def_cfa_offset 48 +; NO-OMIT-FP-ZCMP-NEXT: sd ra, 40(sp) # 8-byte Folded Spill +; NO-OMIT-FP-ZCMP-NEXT: sd s0, 32(sp) # 8-byte Folded Spill +; NO-OMIT-FP-ZCMP-NEXT: sd s1, 24(sp) # 8-byte Folded Spill +; NO-OMIT-FP-ZCMP-NEXT: .cfi_offset ra, -8 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_offset s0, -16 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_offset s1, -24 +; NO-OMIT-FP-ZCMP-NEXT: addi s0, sp, 48 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_def_cfa s0, 0 +; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 3 +; NO-OMIT-FP-ZCMP-NEXT: sub a0, a1, a0 +; NO-OMIT-FP-ZCMP-NEXT: sub sp, sp, a0 +; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-ZCMP-NEXT: vs1r.v v1, (a0) # Unknown-size Folded Spill +; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 1 +; NO-OMIT-FP-ZCMP-NEXT: add a0, a0, a1 +; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-ZCMP-NEXT: vs2r.v v2, (a0) # Unknown-size Folded Spill +; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 3 +; NO-OMIT-FP-ZCMP-NEXT: sub a0, a1, a0 +; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-ZCMP-NEXT: vs4r.v v4, (a0) # Unknown-size Folded Spill +; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x61, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7f, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v1 @ cfa - 48 - 1 * vlenb +; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x62, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7d, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v2 @ cfa - 48 - 3 * vlenb +; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x63, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7e, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v3 @ cfa - 48 - 2 * vlenb +; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x64, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x79, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v4 @ cfa - 48 - 7 * vlenb +; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x65, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7a, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v5 @ cfa - 48 - 6 * vlenb +; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x66, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7b, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v6 @ cfa - 48 - 5 * vlenb +; NO-OMIT-FP-ZCMP-NEXT: .cfi_escape 0x10, 0x67, 0x0b, 0x11, 0x50, 0x22, 0x11, 0x7c, 0x92, 0xa2, 0x38, 0x00, 0x1e, 0x22 # $v7 @ cfa - 48 - 4 * vlenb +; NO-OMIT-FP-ZCMP-NEXT: #APP +; NO-OMIT-FP-ZCMP-NEXT: #NO_APP +; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-ZCMP-NEXT: vl1r.v v1, (a0) # Unknown-size Folded Reload +; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 1 +; NO-OMIT-FP-ZCMP-NEXT: add a0, a0, a1 +; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-ZCMP-NEXT: vl2r.v v2, (a0) # Unknown-size Folded Reload +; NO-OMIT-FP-ZCMP-NEXT: csrr a0, vlenb +; NO-OMIT-FP-ZCMP-NEXT: slli a1, a0, 3 +; NO-OMIT-FP-ZCMP-NEXT: sub a0, a1, a0 +; NO-OMIT-FP-ZCMP-NEXT: sub a0, s0, a0 +; NO-OMIT-FP-ZCMP-NEXT: addi a0, a0, -48 +; NO-OMIT-FP-ZCMP-NEXT: vl4r.v v4, (a0) # Unknown-size Folded Reload +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v1 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v2 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v3 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v4 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v5 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v6 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore v7 +; NO-OMIT-FP-ZCMP-NEXT: addi sp, s0, -48 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_def_cfa sp, 48 +; NO-OMIT-FP-ZCMP-NEXT: ld ra, 40(sp) # 8-byte Folded Reload +; NO-OMIT-FP-ZCMP-NEXT: ld s0, 32(sp) # 8-byte Folded Reload +; NO-OMIT-FP-ZCMP-NEXT: ld s1, 24(sp) # 8-byte Folded Reload +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore ra +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore s0 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_restore s1 +; NO-OMIT-FP-ZCMP-NEXT: addi sp, sp, 48 +; NO-OMIT-FP-ZCMP-NEXT: .cfi_def_cfa_offset 0 +; NO-OMIT-FP-ZCMP-NEXT: ret +entry: + call void asm sideeffect "", + "~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{s1}"() + + ret %va +} diff --git a/llvm/test/CodeGen/RISCV/rvv/strided-load-store.ll b/llvm/test/CodeGen/RISCV/rvv/strided-load-store.ll index 7565e0af8fa5b..b1ece9fa8272d 100644 --- a/llvm/test/CodeGen/RISCV/rvv/strided-load-store.ll +++ b/llvm/test/CodeGen/RISCV/rvv/strided-load-store.ll @@ -17,8 +17,8 @@ define @gather(ptr %a, i32 %len) { ; CHECK-NEXT: [[ACCUM:%.*]] = phi [ zeroinitializer, [[VECTOR_PH]] ], [ [[ACCUM_NEXT:%.*]], [[VECTOR_BODY]] ] ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr [[STRUCT_FOO:%.*]], ptr [[A:%.*]], i64 [[VEC_IND_SCALAR]], i32 3 ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[TMP1]], i64 16, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP2]]) -; CHECK-NEXT: [[GATHER:%.*]] = call @llvm.vp.select.nxv1i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[TMP3]], undef, i32 [[TMP2]]) +; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[TMP1]], i64 16, splat (i1 true), i32 [[TMP2]]) +; CHECK-NEXT: [[GATHER:%.*]] = call @llvm.vp.select.nxv1i64( splat (i1 true), [[TMP3]], undef, i32 [[TMP2]]) ; CHECK-NEXT: [[ACCUM_NEXT]] = add [[ACCUM]], [[GATHER]] ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], [[TMP0]] ; CHECK-NEXT: [[VEC_IND_NEXT_SCALAR]] = add i64 [[VEC_IND_SCALAR]], [[TMP0]] @@ -62,8 +62,8 @@ define @gather_disjoint_or(ptr %a, i64 %len) { ; CHECK-NEXT: [[ACCUM:%.*]] = phi [ zeroinitializer, [[VECTOR_PH]] ], [ [[ACCUM_NEXT:%.*]], [[VECTOR_BODY]] ] ; CHECK-NEXT: [[TMP0:%.*]] = getelementptr i64, ptr [[A:%.*]], i64 [[VEC_IND_SCALAR]] ; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[TMP0]], i64 16, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP1]]) -; CHECK-NEXT: [[GATHER:%.*]] = call @llvm.vp.select.nxv1i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[TMP2]], poison, i32 [[TMP1]]) +; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[TMP0]], i64 16, splat (i1 true), i32 [[TMP1]]) +; CHECK-NEXT: [[GATHER:%.*]] = call @llvm.vp.select.nxv1i64( splat (i1 true), [[TMP2]], poison, i32 [[TMP1]]) ; CHECK-NEXT: [[ACCUM_NEXT]] = add [[ACCUM]], [[GATHER]] ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], [[VSCALE]] ; CHECK-NEXT: [[VEC_IND_NEXT_SCALAR]] = add i64 [[VEC_IND_SCALAR]], 2 @@ -116,7 +116,7 @@ define void @scatter(ptr %a, i32 %len) { ; CHECK-NEXT: [[VEC_IND_SCALAR:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[VEC_IND_NEXT_SCALAR:%.*]], [[VECTOR_BODY]] ] ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr [[STRUCT_FOO:%.*]], ptr [[A:%.*]], i64 [[VEC_IND_SCALAR]], i32 3 ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: call void @llvm.experimental.vp.strided.store.nxv1i64.p0.i64( zeroinitializer, ptr [[TMP1]], i64 16, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP2]]) +; CHECK-NEXT: call void @llvm.experimental.vp.strided.store.nxv1i64.p0.i64( zeroinitializer, ptr [[TMP1]], i64 16, splat (i1 true), i32 [[TMP2]]) ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], [[TMP0]] ; CHECK-NEXT: [[VEC_IND_NEXT_SCALAR]] = add i64 [[VEC_IND_SCALAR]], [[TMP0]] ; CHECK-NEXT: [[TMP3:%.*]] = icmp ne i64 [[INDEX_NEXT]], [[WIDE_TRIP_COUNT]] @@ -150,8 +150,8 @@ define @gather_loopless(ptr %p, i64 %stride) { ; CHECK-LABEL: @gather_loopless( ; CHECK-NEXT: [[TMP1:%.*]] = mul i64 [[STRIDE:%.*]], 4 ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[P:%.*]], i64 [[TMP1]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP2]]) -; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[TMP3]], poison, i32 [[TMP2]]) +; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[P:%.*]], i64 [[TMP1]], splat (i1 true), i32 [[TMP2]]) +; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( splat (i1 true), [[TMP3]], poison, i32 [[TMP2]]) ; CHECK-NEXT: ret [[X]] ; %step = call @llvm.stepvector.nxv1i64() @@ -172,8 +172,8 @@ define @straightline_offset_add(ptr %p, i64 %offset) { ; CHECK-LABEL: @straightline_offset_add( ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr i32, ptr [[P:%.*]], i64 [[OFFSET:%.*]] ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[TMP1]], i64 4, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP2]]) -; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[TMP3]], poison, i32 [[TMP2]]) +; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[TMP1]], i64 4, splat (i1 true), i32 [[TMP2]]) +; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( splat (i1 true), [[TMP3]], poison, i32 [[TMP2]]) ; CHECK-NEXT: ret [[X]] ; %step = call @llvm.stepvector.nxv1i64() @@ -194,8 +194,8 @@ define @straightline_offset_disjoint_or(ptr %p, i64 %offset) ; CHECK-LABEL: @straightline_offset_disjoint_or( ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr i32, ptr [[P:%.*]], i64 1 ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[TMP1]], i64 8, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP2]]) -; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[TMP3]], poison, i32 [[TMP2]]) +; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[TMP1]], i64 8, splat (i1 true), i32 [[TMP2]]) +; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( splat (i1 true), [[TMP3]], poison, i32 [[TMP2]]) ; CHECK-NEXT: ret [[X]] ; %step = call @llvm.stepvector.nxv1i64() @@ -214,8 +214,8 @@ define @straightline_offset_disjoint_or(ptr %p, i64 %offset) define @straightline_offset_shl(ptr %p) { ; CHECK-LABEL: @straightline_offset_shl( ; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[P:%.*]], i64 32, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP1]]) -; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[TMP2]], poison, i32 [[TMP1]]) +; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[P:%.*]], i64 32, splat (i1 true), i32 [[TMP1]]) +; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( splat (i1 true), [[TMP2]], poison, i32 [[TMP1]]) ; CHECK-NEXT: ret [[X]] ; %step = call @llvm.stepvector.nxv1i64() @@ -237,7 +237,7 @@ define @neg_shl_is_not_commutative(ptr %p) { ; CHECK-NEXT: [[SPLAT:%.*]] = shufflevector [[SPLAT_INSERT]], poison, zeroinitializer ; CHECK-NEXT: [[OFFSET:%.*]] = shl [[SPLAT]], [[STEP]] ; CHECK-NEXT: [[PTRS:%.*]] = getelementptr i32, ptr [[P:%.*]], [[OFFSET]] -; CHECK-NEXT: [[X:%.*]] = call @llvm.masked.gather.nxv1i64.nxv1p0( [[PTRS]], i32 8, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), poison) +; CHECK-NEXT: [[X:%.*]] = call @llvm.masked.gather.nxv1i64.nxv1p0( [[PTRS]], i32 8, splat (i1 true), poison) ; CHECK-NEXT: ret [[X]] ; %step = call @llvm.stepvector.nxv1i64() @@ -259,8 +259,8 @@ define @straightline_offset_shl_nonc(ptr %p, i64 %shift) { ; CHECK-NEXT: [[TMP1:%.*]] = shl i64 1, [[SHIFT:%.*]] ; CHECK-NEXT: [[TMP2:%.*]] = mul i64 [[TMP1]], 4 ; CHECK-NEXT: [[TMP3:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: [[TMP4:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[P:%.*]], i64 [[TMP2]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP3]]) -; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[TMP4]], poison, i32 [[TMP3]]) +; CHECK-NEXT: [[TMP4:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[P:%.*]], i64 [[TMP2]], splat (i1 true), i32 [[TMP3]]) +; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( splat (i1 true), [[TMP4]], poison, i32 [[TMP3]]) ; CHECK-NEXT: ret [[X]] ; %step = call @llvm.stepvector.nxv1i64() @@ -281,7 +281,7 @@ define void @scatter_loopless( %x, ptr %p, i64 %stride) { ; CHECK-LABEL: @scatter_loopless( ; CHECK-NEXT: [[TMP1:%.*]] = mul i64 [[STRIDE:%.*]], 4 ; CHECK-NEXT: [[TMP2:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: call void @llvm.experimental.vp.strided.store.nxv1i64.p0.i64( [[X:%.*]], ptr [[P:%.*]], i64 [[TMP1]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP2]]) +; CHECK-NEXT: call void @llvm.experimental.vp.strided.store.nxv1i64.p0.i64( [[X:%.*]], ptr [[P:%.*]], i64 [[TMP1]], splat (i1 true), i32 [[TMP2]]) ; CHECK-NEXT: ret void ; %step = call @llvm.stepvector.nxv1i64() @@ -302,7 +302,7 @@ define void @scatter_loopless( %x, ptr %p, i64 %stride) { define void @constant_stride( %x, ptr %p, i64 %stride) { ; CHECK-LABEL: @constant_stride( ; CHECK-NEXT: [[PTRS:%.*]] = getelementptr i32, ptr [[P:%.*]], zeroinitializer -; CHECK-NEXT: call void @llvm.masked.scatter.nxv1i64.nxv1p0( [[X:%.*]], [[PTRS]], i32 8, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: call void @llvm.masked.scatter.nxv1i64.nxv1p0( [[X:%.*]], [[PTRS]], i32 8, splat (i1 true)) ; CHECK-NEXT: ret void ; %ptrs = getelementptr i32, ptr %p, zeroinitializer @@ -319,8 +319,8 @@ define @vector_base_scalar_offset(ptr %p, i64 %offset) { ; CHECK-LABEL: @vector_base_scalar_offset( ; CHECK-NEXT: [[PTRS2OFFSET:%.*]] = getelementptr i64, ptr [[P:%.*]], i64 [[OFFSET:%.*]] ; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[PTRS2OFFSET]], i64 8, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP1]]) -; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[TMP2]], poison, i32 [[TMP1]]) +; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[PTRS2OFFSET]], i64 8, splat (i1 true), i32 [[TMP1]]) +; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( splat (i1 true), [[TMP2]], poison, i32 [[TMP1]]) ; CHECK-NEXT: ret [[X]] ; %step = call @llvm.stepvector.nxv1i64() @@ -339,8 +339,8 @@ define @splat_base_scalar_offset(ptr %p, i64 %offset) { ; CHECK-LABEL: @splat_base_scalar_offset( ; CHECK-NEXT: [[PTRSOFFSET:%.*]] = getelementptr i64, ptr [[P:%.*]], i64 [[OFFSET:%.*]] ; CHECK-NEXT: [[TMP1:%.*]] = call i32 @llvm.vscale.i32() -; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[PTRSOFFSET]], i64 0, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP1]]) -; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[TMP2]], poison, i32 [[TMP1]]) +; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.experimental.vp.strided.load.nxv1i64.p0.i64(ptr [[PTRSOFFSET]], i64 0, splat (i1 true), i32 [[TMP1]]) +; CHECK-NEXT: [[X:%.*]] = call @llvm.vp.select.nxv1i64( splat (i1 true), [[TMP2]], poison, i32 [[TMP1]]) ; CHECK-NEXT: ret [[X]] ; %head = insertelement poison, ptr %p, i32 0 @@ -360,7 +360,7 @@ define @nonstrided_base_scalar_offset(ptr %p, [[V:%.*]] ; CHECK-NEXT: [[PTRS2:%.*]] = getelementptr i64, [[PTRS1]], i64 [[OFFSET:%.*]] -; CHECK-NEXT: [[X:%.*]] = call @llvm.masked.gather.nxv1i64.nxv1p0( [[PTRS2]], i32 8, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), poison) +; CHECK-NEXT: [[X:%.*]] = call @llvm.masked.gather.nxv1i64.nxv1p0( [[PTRS2]], i32 8, splat (i1 true), poison) ; CHECK-NEXT: ret [[X]] ; %ptrs1 = getelementptr i64, ptr %p, %v @@ -380,7 +380,7 @@ define @vector_base_vector_offset(ptr %p, ; CHECK-NEXT: [[STEP:%.*]] = call @llvm.stepvector.nxv1i64() ; CHECK-NEXT: [[PTRS1:%.*]] = getelementptr i64, ptr [[P:%.*]], [[STEP]] ; CHECK-NEXT: [[PTRS2:%.*]] = getelementptr i64, [[PTRS1]], [[OFFSET:%.*]] -; CHECK-NEXT: [[X:%.*]] = call @llvm.masked.gather.nxv1i64.nxv1p0( [[PTRS2]], i32 8, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), poison) +; CHECK-NEXT: [[X:%.*]] = call @llvm.masked.gather.nxv1i64.nxv1p0( [[PTRS2]], i32 8, splat (i1 true), poison) ; CHECK-NEXT: ret [[X]] ; %step = call @llvm.stepvector.nxv1i64() diff --git a/llvm/test/CodeGen/RISCV/select-const.ll b/llvm/test/CodeGen/RISCV/select-const.ll index 96081fc462d6f..6a24d03de8749 100644 --- a/llvm/test/CodeGen/RISCV/select-const.ll +++ b/llvm/test/CodeGen/RISCV/select-const.ll @@ -61,22 +61,22 @@ define signext i32 @select_const_int_pow2_zero(i1 zeroext %a) nounwind { define signext i32 @select_const_int_harder(i1 zeroext %a) nounwind { ; RV32-LABEL: select_const_int_harder: ; RV32: # %bb.0: -; RV32-NEXT: mv a1, a0 -; RV32-NEXT: li a0, 6 -; RV32-NEXT: bnez a1, .LBB3_2 +; RV32-NEXT: bnez a0, .LBB3_2 ; RV32-NEXT: # %bb.1: ; RV32-NEXT: li a0, 38 +; RV32-NEXT: ret ; RV32-NEXT: .LBB3_2: +; RV32-NEXT: li a0, 6 ; RV32-NEXT: ret ; ; RV64-LABEL: select_const_int_harder: ; RV64: # %bb.0: -; RV64-NEXT: mv a1, a0 -; RV64-NEXT: li a0, 6 -; RV64-NEXT: bnez a1, .LBB3_2 +; RV64-NEXT: bnez a0, .LBB3_2 ; RV64-NEXT: # %bb.1: ; RV64-NEXT: li a0, 38 +; RV64-NEXT: ret ; RV64-NEXT: .LBB3_2: +; RV64-NEXT: li a0, 6 ; RV64-NEXT: ret %1 = select i1 %a, i32 6, i32 38 ret i32 %1 diff --git a/llvm/test/CodeGen/RISCV/select.ll b/llvm/test/CodeGen/RISCV/select.ll index 252cf776299b3..4405cc3f5e163 100644 --- a/llvm/test/CodeGen/RISCV/select.ll +++ b/llvm/test/CodeGen/RISCV/select.ll @@ -1585,22 +1585,22 @@ define i32 @select_cst_not5(i32 signext %a, i32 signext %b) { define i32 @select_cst_unknown(i32 signext %a, i32 signext %b) { ; RV32IM-LABEL: select_cst_unknown: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a2, a0 -; RV32IM-NEXT: li a0, 5 -; RV32IM-NEXT: blt a2, a1, .LBB42_2 +; RV32IM-NEXT: blt a0, a1, .LBB42_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, -7 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB42_2: +; RV32IM-NEXT: li a0, 5 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst_unknown: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a2, a0 -; RV64IM-NEXT: li a0, 5 -; RV64IM-NEXT: blt a2, a1, .LBB42_2 +; RV64IM-NEXT: blt a0, a1, .LBB42_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, -7 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB42_2: +; RV64IM-NEXT: li a0, 5 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst_unknown: @@ -1626,22 +1626,22 @@ define i32 @select_cst_unknown(i32 signext %a, i32 signext %b) { define i32 @select_cst1(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst1: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 10 -; RV32IM-NEXT: bnez a1, .LBB43_2 +; RV32IM-NEXT: bnez a0, .LBB43_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, 20 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB43_2: +; RV32IM-NEXT: li a0, 10 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst1: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 10 -; RV64IM-NEXT: bnez a1, .LBB43_2 +; RV64IM-NEXT: bnez a0, .LBB43_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, 20 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB43_2: +; RV64IM-NEXT: li a0, 10 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst1: @@ -1664,24 +1664,24 @@ define i32 @select_cst1(i1 zeroext %cond) { define i32 @select_cst2(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst2: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 10 -; RV32IM-NEXT: bnez a1, .LBB44_2 +; RV32IM-NEXT: bnez a0, .LBB44_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: lui a0, 5 ; RV32IM-NEXT: addi a0, a0, -480 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB44_2: +; RV32IM-NEXT: li a0, 10 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst2: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 10 -; RV64IM-NEXT: bnez a1, .LBB44_2 +; RV64IM-NEXT: bnez a0, .LBB44_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: lui a0, 5 ; RV64IM-NEXT: addiw a0, a0, -480 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB44_2: +; RV64IM-NEXT: li a0, 10 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst2: @@ -1782,24 +1782,24 @@ define i32 @select_cst4(i1 zeroext %cond) { define i32 @select_cst5(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst5: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 2047 -; RV32IM-NEXT: bnez a1, .LBB47_2 +; RV32IM-NEXT: bnez a0, .LBB47_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: lui a0, 1 ; RV32IM-NEXT: addi a0, a0, -2047 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB47_2: +; RV32IM-NEXT: li a0, 2047 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst5: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 2047 -; RV64IM-NEXT: bnez a1, .LBB47_2 +; RV64IM-NEXT: bnez a0, .LBB47_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: lui a0, 1 ; RV64IM-NEXT: addiw a0, a0, -2047 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB47_2: +; RV64IM-NEXT: li a0, 2047 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst5: @@ -1862,22 +1862,22 @@ define i32 @select_cst5_invert(i1 zeroext %cond) { define i32 @select_cst_diff2(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst_diff2: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 120 -; RV32IM-NEXT: bnez a1, .LBB49_2 +; RV32IM-NEXT: bnez a0, .LBB49_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, 122 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB49_2: +; RV32IM-NEXT: li a0, 120 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst_diff2: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 120 -; RV64IM-NEXT: bnez a1, .LBB49_2 +; RV64IM-NEXT: bnez a0, .LBB49_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, 122 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB49_2: +; RV64IM-NEXT: li a0, 120 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst_diff2: @@ -1900,22 +1900,22 @@ define i32 @select_cst_diff2(i1 zeroext %cond) { define i32 @select_cst_diff2_invert(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst_diff2_invert: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 122 -; RV32IM-NEXT: bnez a1, .LBB50_2 +; RV32IM-NEXT: bnez a0, .LBB50_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, 120 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB50_2: +; RV32IM-NEXT: li a0, 122 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst_diff2_invert: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 122 -; RV64IM-NEXT: bnez a1, .LBB50_2 +; RV64IM-NEXT: bnez a0, .LBB50_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, 120 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB50_2: +; RV64IM-NEXT: li a0, 122 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst_diff2_invert: @@ -1938,22 +1938,22 @@ define i32 @select_cst_diff2_invert(i1 zeroext %cond) { define i32 @select_cst_diff4(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst_diff4: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 10 -; RV32IM-NEXT: bnez a1, .LBB51_2 +; RV32IM-NEXT: bnez a0, .LBB51_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, 6 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB51_2: +; RV32IM-NEXT: li a0, 10 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst_diff4: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 10 -; RV64IM-NEXT: bnez a1, .LBB51_2 +; RV64IM-NEXT: bnez a0, .LBB51_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, 6 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB51_2: +; RV64IM-NEXT: li a0, 10 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst_diff4: @@ -1976,22 +1976,22 @@ define i32 @select_cst_diff4(i1 zeroext %cond) { define i32 @select_cst_diff4_invert(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst_diff4_invert: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 6 -; RV32IM-NEXT: bnez a1, .LBB52_2 +; RV32IM-NEXT: bnez a0, .LBB52_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, 10 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB52_2: +; RV32IM-NEXT: li a0, 6 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst_diff4_invert: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 6 -; RV64IM-NEXT: bnez a1, .LBB52_2 +; RV64IM-NEXT: bnez a0, .LBB52_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, 10 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB52_2: +; RV64IM-NEXT: li a0, 6 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst_diff4_invert: @@ -2014,22 +2014,22 @@ define i32 @select_cst_diff4_invert(i1 zeroext %cond) { define i32 @select_cst_diff8(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst_diff8: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 14 -; RV32IM-NEXT: bnez a1, .LBB53_2 +; RV32IM-NEXT: bnez a0, .LBB53_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, 6 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB53_2: +; RV32IM-NEXT: li a0, 14 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst_diff8: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 14 -; RV64IM-NEXT: bnez a1, .LBB53_2 +; RV64IM-NEXT: bnez a0, .LBB53_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, 6 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB53_2: +; RV64IM-NEXT: li a0, 14 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst_diff8: @@ -2052,22 +2052,22 @@ define i32 @select_cst_diff8(i1 zeroext %cond) { define i32 @select_cst_diff8_invert(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst_diff8_invert: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 6 -; RV32IM-NEXT: bnez a1, .LBB54_2 +; RV32IM-NEXT: bnez a0, .LBB54_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, 14 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB54_2: +; RV32IM-NEXT: li a0, 6 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst_diff8_invert: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 6 -; RV64IM-NEXT: bnez a1, .LBB54_2 +; RV64IM-NEXT: bnez a0, .LBB54_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, 14 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB54_2: +; RV64IM-NEXT: li a0, 6 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst_diff8_invert: @@ -2091,22 +2091,22 @@ define i32 @select_cst_diff8_invert(i1 zeroext %cond) { define i32 @select_cst_diff1024(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst_diff1024: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 1030 -; RV32IM-NEXT: bnez a1, .LBB55_2 +; RV32IM-NEXT: bnez a0, .LBB55_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, 6 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB55_2: +; RV32IM-NEXT: li a0, 1030 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst_diff1024: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 1030 -; RV64IM-NEXT: bnez a1, .LBB55_2 +; RV64IM-NEXT: bnez a0, .LBB55_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, 6 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB55_2: +; RV64IM-NEXT: li a0, 1030 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst_diff1024: @@ -2129,22 +2129,22 @@ define i32 @select_cst_diff1024(i1 zeroext %cond) { define i32 @select_cst_diff1024_invert(i1 zeroext %cond) { ; RV32IM-LABEL: select_cst_diff1024_invert: ; RV32IM: # %bb.0: -; RV32IM-NEXT: mv a1, a0 -; RV32IM-NEXT: li a0, 6 -; RV32IM-NEXT: bnez a1, .LBB56_2 +; RV32IM-NEXT: bnez a0, .LBB56_2 ; RV32IM-NEXT: # %bb.1: ; RV32IM-NEXT: li a0, 1030 +; RV32IM-NEXT: ret ; RV32IM-NEXT: .LBB56_2: +; RV32IM-NEXT: li a0, 6 ; RV32IM-NEXT: ret ; ; RV64IM-LABEL: select_cst_diff1024_invert: ; RV64IM: # %bb.0: -; RV64IM-NEXT: mv a1, a0 -; RV64IM-NEXT: li a0, 6 -; RV64IM-NEXT: bnez a1, .LBB56_2 +; RV64IM-NEXT: bnez a0, .LBB56_2 ; RV64IM-NEXT: # %bb.1: ; RV64IM-NEXT: li a0, 1030 +; RV64IM-NEXT: ret ; RV64IM-NEXT: .LBB56_2: +; RV64IM-NEXT: li a0, 6 ; RV64IM-NEXT: ret ; ; RV64IMXVTCONDOPS-LABEL: select_cst_diff1024_invert: diff --git a/llvm/test/CodeGen/RISCV/sextw-removal.ll b/llvm/test/CodeGen/RISCV/sextw-removal.ll index 11b0e5263e112..e0a16aa05cd00 100644 --- a/llvm/test/CodeGen/RISCV/sextw-removal.ll +++ b/llvm/test/CodeGen/RISCV/sextw-removal.ll @@ -1032,17 +1032,19 @@ bb7: ; preds = %bb2 define signext i32 @bug(i32 signext %x) { ; CHECK-LABEL: bug: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: beqz a0, .LBB18_4 +; CHECK-NEXT: beqz a0, .LBB18_5 ; CHECK-NEXT: # %bb.1: # %if.end -; CHECK-NEXT: srliw a2, a0, 16 -; CHECK-NEXT: seqz a1, a2 -; CHECK-NEXT: slli a1, a1, 4 -; CHECK-NEXT: sllw a0, a0, a1 -; CHECK-NEXT: li a1, 16 -; CHECK-NEXT: beqz a2, .LBB18_3 +; CHECK-NEXT: srliw a1, a0, 16 +; CHECK-NEXT: seqz a2, a1 +; CHECK-NEXT: slli a2, a2, 4 +; CHECK-NEXT: sllw a0, a0, a2 +; CHECK-NEXT: beqz a1, .LBB18_3 ; CHECK-NEXT: # %bb.2: # %if.end ; CHECK-NEXT: li a1, 32 -; CHECK-NEXT: .LBB18_3: # %if.end +; CHECK-NEXT: j .LBB18_4 +; CHECK-NEXT: .LBB18_3: +; CHECK-NEXT: li a1, 16 +; CHECK-NEXT: .LBB18_4: # %if.end ; CHECK-NEXT: srliw a2, a0, 24 ; CHECK-NEXT: seqz a2, a2 ; CHECK-NEXT: slli a3, a2, 3 @@ -1067,22 +1069,24 @@ define signext i32 @bug(i32 signext %x) { ; CHECK-NEXT: not a0, a0 ; CHECK-NEXT: srli a0, a0, 31 ; CHECK-NEXT: addw a0, a1, a0 -; CHECK-NEXT: .LBB18_4: # %cleanup +; CHECK-NEXT: .LBB18_5: # %cleanup ; CHECK-NEXT: ret ; ; NOREMOVAL-LABEL: bug: ; NOREMOVAL: # %bb.0: # %entry -; NOREMOVAL-NEXT: beqz a0, .LBB18_4 +; NOREMOVAL-NEXT: beqz a0, .LBB18_5 ; NOREMOVAL-NEXT: # %bb.1: # %if.end -; NOREMOVAL-NEXT: srliw a2, a0, 16 -; NOREMOVAL-NEXT: seqz a1, a2 -; NOREMOVAL-NEXT: slli a1, a1, 4 -; NOREMOVAL-NEXT: sllw a0, a0, a1 -; NOREMOVAL-NEXT: li a1, 16 -; NOREMOVAL-NEXT: beqz a2, .LBB18_3 +; NOREMOVAL-NEXT: srliw a1, a0, 16 +; NOREMOVAL-NEXT: seqz a2, a1 +; NOREMOVAL-NEXT: slli a2, a2, 4 +; NOREMOVAL-NEXT: sllw a0, a0, a2 +; NOREMOVAL-NEXT: beqz a1, .LBB18_3 ; NOREMOVAL-NEXT: # %bb.2: # %if.end ; NOREMOVAL-NEXT: li a1, 32 -; NOREMOVAL-NEXT: .LBB18_3: # %if.end +; NOREMOVAL-NEXT: j .LBB18_4 +; NOREMOVAL-NEXT: .LBB18_3: +; NOREMOVAL-NEXT: li a1, 16 +; NOREMOVAL-NEXT: .LBB18_4: # %if.end ; NOREMOVAL-NEXT: srliw a2, a0, 24 ; NOREMOVAL-NEXT: seqz a2, a2 ; NOREMOVAL-NEXT: slli a3, a2, 3 @@ -1107,7 +1111,7 @@ define signext i32 @bug(i32 signext %x) { ; NOREMOVAL-NEXT: not a0, a0 ; NOREMOVAL-NEXT: srli a0, a0, 31 ; NOREMOVAL-NEXT: addw a0, a1, a0 -; NOREMOVAL-NEXT: .LBB18_4: # %cleanup +; NOREMOVAL-NEXT: .LBB18_5: # %cleanup ; NOREMOVAL-NEXT: ret entry: %tobool.not = icmp eq i32 %x, 0 diff --git a/llvm/test/CodeGen/RISCV/typepromotion-overflow.ll b/llvm/test/CodeGen/RISCV/typepromotion-overflow.ll index ec7e0ecce80ca..ae1aabed49805 100644 --- a/llvm/test/CodeGen/RISCV/typepromotion-overflow.ll +++ b/llvm/test/CodeGen/RISCV/typepromotion-overflow.ll @@ -7,13 +7,14 @@ define zeroext i16 @overflow_add(i16 zeroext %a, i16 zeroext %b) { ; CHECK-NEXT: add a0, a1, a0 ; CHECK-NEXT: ori a0, a0, 1 ; CHECK-NEXT: slli a0, a0, 48 -; CHECK-NEXT: srli a1, a0, 48 -; CHECK-NEXT: li a2, 1024 -; CHECK-NEXT: li a0, 2 -; CHECK-NEXT: bltu a2, a1, .LBB0_2 +; CHECK-NEXT: srli a0, a0, 48 +; CHECK-NEXT: li a1, 1024 +; CHECK-NEXT: bltu a1, a0, .LBB0_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 5 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB0_2: +; CHECK-NEXT: li a0, 2 ; CHECK-NEXT: ret %add = add i16 %b, %a %or = or i16 %add, 1 @@ -28,13 +29,14 @@ define zeroext i16 @overflow_sub(i16 zeroext %a, i16 zeroext %b) { ; CHECK-NEXT: subw a0, a0, a1 ; CHECK-NEXT: ori a0, a0, 1 ; CHECK-NEXT: slli a0, a0, 48 -; CHECK-NEXT: srli a1, a0, 48 -; CHECK-NEXT: li a2, 1024 -; CHECK-NEXT: li a0, 2 -; CHECK-NEXT: bltu a2, a1, .LBB1_2 +; CHECK-NEXT: srli a0, a0, 48 +; CHECK-NEXT: li a1, 1024 +; CHECK-NEXT: bltu a1, a0, .LBB1_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 5 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB1_2: +; CHECK-NEXT: li a0, 2 ; CHECK-NEXT: ret %add = sub i16 %a, %b %or = or i16 %add, 1 @@ -49,13 +51,14 @@ define zeroext i16 @overflow_mul(i16 zeroext %a, i16 zeroext %b) { ; CHECK-NEXT: mul a0, a1, a0 ; CHECK-NEXT: ori a0, a0, 1 ; CHECK-NEXT: slli a0, a0, 48 -; CHECK-NEXT: srli a1, a0, 48 -; CHECK-NEXT: li a2, 1024 -; CHECK-NEXT: li a0, 2 -; CHECK-NEXT: bltu a2, a1, .LBB2_2 +; CHECK-NEXT: srli a0, a0, 48 +; CHECK-NEXT: li a1, 1024 +; CHECK-NEXT: bltu a1, a0, .LBB2_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 5 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB2_2: +; CHECK-NEXT: li a0, 2 ; CHECK-NEXT: ret %add = mul i16 %b, %a %or = or i16 %add, 1 @@ -70,13 +73,14 @@ define zeroext i16 @overflow_shl(i16 zeroext %a, i16 zeroext %b) { ; CHECK-NEXT: sll a0, a0, a1 ; CHECK-NEXT: ori a0, a0, 1 ; CHECK-NEXT: slli a0, a0, 48 -; CHECK-NEXT: srli a1, a0, 48 -; CHECK-NEXT: li a2, 1024 -; CHECK-NEXT: li a0, 2 -; CHECK-NEXT: bltu a2, a1, .LBB3_2 +; CHECK-NEXT: srli a0, a0, 48 +; CHECK-NEXT: li a1, 1024 +; CHECK-NEXT: bltu a1, a0, .LBB3_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 5 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB3_2: +; CHECK-NEXT: li a0, 2 ; CHECK-NEXT: ret %add = shl i16 %a, %b %or = or i16 %add, 1 @@ -89,12 +93,13 @@ define i32 @overflow_add_no_consts(i8 zeroext %a, i8 zeroext %b, i8 zeroext %lim ; CHECK-LABEL: overflow_add_no_consts: ; CHECK: # %bb.0: ; CHECK-NEXT: add a0, a1, a0 -; CHECK-NEXT: andi a1, a0, 255 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: bltu a2, a1, .LBB4_2 +; CHECK-NEXT: andi a0, a0, 255 +; CHECK-NEXT: bltu a2, a0, .LBB4_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB4_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %add = add i8 %b, %a %cmp = icmp ugt i8 %add, %limit @@ -106,13 +111,14 @@ define i32 @overflow_add_const_limit(i8 zeroext %a, i8 zeroext %b) { ; CHECK-LABEL: overflow_add_const_limit: ; CHECK: # %bb.0: ; CHECK-NEXT: add a0, a1, a0 -; CHECK-NEXT: andi a1, a0, 255 -; CHECK-NEXT: li a2, 128 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: bltu a2, a1, .LBB5_2 +; CHECK-NEXT: andi a0, a0, 255 +; CHECK-NEXT: li a1, 128 +; CHECK-NEXT: bltu a1, a0, .LBB5_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB5_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %add = add i8 %b, %a %cmp = icmp ugt i8 %add, -128 @@ -124,13 +130,14 @@ define i32 @overflow_add_positive_const_limit(i8 zeroext %a) { ; CHECK-LABEL: overflow_add_positive_const_limit: ; CHECK: # %bb.0: ; CHECK-NEXT: slli a0, a0, 56 -; CHECK-NEXT: srai a1, a0, 56 -; CHECK-NEXT: li a2, -1 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: blt a1, a2, .LBB6_2 +; CHECK-NEXT: srai a0, a0, 56 +; CHECK-NEXT: li a1, -1 +; CHECK-NEXT: blt a0, a1, .LBB6_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB6_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %cmp = icmp slt i8 %a, -1 %res = select i1 %cmp, i32 8, i32 16 @@ -140,13 +147,13 @@ define i32 @overflow_add_positive_const_limit(i8 zeroext %a) { define i32 @unsafe_add_underflow(i8 zeroext %a) { ; CHECK-LABEL: unsafe_add_underflow: ; CHECK: # %bb.0: -; CHECK-NEXT: mv a1, a0 -; CHECK-NEXT: li a2, 1 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: beq a1, a2, .LBB7_2 +; CHECK-NEXT: li a1, 1 +; CHECK-NEXT: beq a0, a1, .LBB7_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB7_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %cmp = icmp eq i8 %a, 1 %res = select i1 %cmp, i32 8, i32 16 @@ -156,12 +163,12 @@ define i32 @unsafe_add_underflow(i8 zeroext %a) { define i32 @safe_add_underflow(i8 zeroext %a) { ; CHECK-LABEL: safe_add_underflow: ; CHECK: # %bb.0: -; CHECK-NEXT: mv a1, a0 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: beqz a1, .LBB8_2 +; CHECK-NEXT: beqz a0, .LBB8_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB8_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %cmp = icmp eq i8 %a, 0 %res = select i1 %cmp, i32 8, i32 16 @@ -171,13 +178,14 @@ define i32 @safe_add_underflow(i8 zeroext %a) { define i32 @safe_add_underflow_neg(i8 zeroext %a) { ; CHECK-LABEL: safe_add_underflow_neg: ; CHECK: # %bb.0: -; CHECK-NEXT: addi a1, a0, -2 -; CHECK-NEXT: li a2, 251 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: bltu a1, a2, .LBB9_2 +; CHECK-NEXT: addi a0, a0, -2 +; CHECK-NEXT: li a1, 251 +; CHECK-NEXT: bltu a0, a1, .LBB9_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB9_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %add = add i8 %a, -2 %cmp = icmp ult i8 %add, -5 @@ -189,13 +197,14 @@ define i32 @overflow_sub_negative_const_limit(i8 zeroext %a) { ; CHECK-LABEL: overflow_sub_negative_const_limit: ; CHECK: # %bb.0: ; CHECK-NEXT: slli a0, a0, 56 -; CHECK-NEXT: srai a1, a0, 56 -; CHECK-NEXT: li a2, -1 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: blt a1, a2, .LBB10_2 +; CHECK-NEXT: srai a0, a0, 56 +; CHECK-NEXT: li a1, -1 +; CHECK-NEXT: blt a0, a1, .LBB10_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB10_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %cmp = icmp slt i8 %a, -1 %res = select i1 %cmp, i32 8, i32 16 @@ -206,13 +215,14 @@ define i32 @overflow_sub_negative_const_limit(i8 zeroext %a) { define i32 @sext_sub_underflow(i8 zeroext %a) { ; CHECK-LABEL: sext_sub_underflow: ; CHECK: # %bb.0: -; CHECK-NEXT: addi a1, a0, -6 -; CHECK-NEXT: li a2, -6 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: bltu a2, a1, .LBB11_2 +; CHECK-NEXT: addi a0, a0, -6 +; CHECK-NEXT: li a1, -6 +; CHECK-NEXT: bltu a1, a0, .LBB11_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB11_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %sub = add i8 %a, -6 %cmp = icmp ugt i8 %sub, -6 @@ -223,12 +233,12 @@ define i32 @sext_sub_underflow(i8 zeroext %a) { define i32 @safe_sub_underflow(i8 zeroext %a) { ; CHECK-LABEL: safe_sub_underflow: ; CHECK: # %bb.0: -; CHECK-NEXT: mv a1, a0 -; CHECK-NEXT: li a0, 16 -; CHECK-NEXT: beqz a1, .LBB12_2 +; CHECK-NEXT: beqz a0, .LBB12_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 8 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB12_2: +; CHECK-NEXT: li a0, 16 ; CHECK-NEXT: ret %cmp.not = icmp eq i8 %a, 0 %res = select i1 %cmp.not, i32 16, i32 8 @@ -238,13 +248,14 @@ define i32 @safe_sub_underflow(i8 zeroext %a) { define i32 @safe_sub_underflow_neg(i8 zeroext %a) { ; CHECK-LABEL: safe_sub_underflow_neg: ; CHECK: # %bb.0: -; CHECK-NEXT: addi a1, a0, -4 -; CHECK-NEXT: li a2, 250 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: bltu a2, a1, .LBB13_2 +; CHECK-NEXT: addi a0, a0, -4 +; CHECK-NEXT: li a1, 250 +; CHECK-NEXT: bltu a1, a0, .LBB13_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB13_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %sub = add i8 %a, -4 %cmp = icmp ugt i8 %sub, -6 @@ -256,13 +267,14 @@ define i32 @safe_sub_underflow_neg(i8 zeroext %a) { define i32 @sext_sub_underflow_neg(i8 zeroext %a) { ; CHECK-LABEL: sext_sub_underflow_neg: ; CHECK: # %bb.0: -; CHECK-NEXT: addi a1, a0, -4 -; CHECK-NEXT: li a2, -3 -; CHECK-NEXT: li a0, 8 -; CHECK-NEXT: bltu a1, a2, .LBB14_2 +; CHECK-NEXT: addi a0, a0, -4 +; CHECK-NEXT: li a1, -3 +; CHECK-NEXT: bltu a0, a1, .LBB14_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: li a0, 16 +; CHECK-NEXT: ret ; CHECK-NEXT: .LBB14_2: +; CHECK-NEXT: li a0, 8 ; CHECK-NEXT: ret %sub = add i8 %a, -4 %cmp = icmp ult i8 %sub, -3 diff --git a/llvm/test/CodeGen/RISCV/zfh-half-intrinsics-strict.ll b/llvm/test/CodeGen/RISCV/zfh-half-intrinsics-strict.ll index 348ca8e529621..3efa9e58e65d3 100644 --- a/llvm/test/CodeGen/RISCV/zfh-half-intrinsics-strict.ll +++ b/llvm/test/CodeGen/RISCV/zfh-half-intrinsics-strict.ll @@ -737,3 +737,73 @@ define i64 @llround_f16(half %a) nounwind strictfp { %1 = call i64 @llvm.experimental.constrained.llround.i64.f16(half %a, metadata !"fpexcept.strict") strictfp ret i64 %1 } + +define half @ldexp_f16(half %x, i32 signext %y) nounwind { +; RV32IZFH-LABEL: ldexp_f16: +; RV32IZFH: # %bb.0: +; RV32IZFH-NEXT: addi sp, sp, -16 +; RV32IZFH-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFH-NEXT: fcvt.s.h fa0, fa0 +; RV32IZFH-NEXT: call ldexpf +; RV32IZFH-NEXT: fcvt.h.s fa0, fa0 +; RV32IZFH-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFH-NEXT: addi sp, sp, 16 +; RV32IZFH-NEXT: ret +; +; RV64IZFH-LABEL: ldexp_f16: +; RV64IZFH: # %bb.0: +; RV64IZFH-NEXT: addi sp, sp, -16 +; RV64IZFH-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFH-NEXT: fcvt.s.h fa0, fa0 +; RV64IZFH-NEXT: call ldexpf +; RV64IZFH-NEXT: fcvt.h.s fa0, fa0 +; RV64IZFH-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFH-NEXT: addi sp, sp, 16 +; RV64IZFH-NEXT: ret +; +; RV32IZHINX-LABEL: ldexp_f16: +; RV32IZHINX: # %bb.0: +; RV32IZHINX-NEXT: addi sp, sp, -16 +; RV32IZHINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZHINX-NEXT: fcvt.s.h a0, a0 +; RV32IZHINX-NEXT: call ldexpf +; RV32IZHINX-NEXT: fcvt.h.s a0, a0 +; RV32IZHINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZHINX-NEXT: addi sp, sp, 16 +; RV32IZHINX-NEXT: ret +; +; RV64IZHINX-LABEL: ldexp_f16: +; RV64IZHINX: # %bb.0: +; RV64IZHINX-NEXT: addi sp, sp, -16 +; RV64IZHINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZHINX-NEXT: fcvt.s.h a0, a0 +; RV64IZHINX-NEXT: call ldexpf +; RV64IZHINX-NEXT: fcvt.h.s a0, a0 +; RV64IZHINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZHINX-NEXT: addi sp, sp, 16 +; RV64IZHINX-NEXT: ret +; +; RV32IZDINXZHINX-LABEL: ldexp_f16: +; RV32IZDINXZHINX: # %bb.0: +; RV32IZDINXZHINX-NEXT: addi sp, sp, -16 +; RV32IZDINXZHINX-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZDINXZHINX-NEXT: fcvt.s.h a0, a0 +; RV32IZDINXZHINX-NEXT: call ldexpf +; RV32IZDINXZHINX-NEXT: fcvt.h.s a0, a0 +; RV32IZDINXZHINX-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZDINXZHINX-NEXT: addi sp, sp, 16 +; RV32IZDINXZHINX-NEXT: ret +; +; RV64IZDINXZHINX-LABEL: ldexp_f16: +; RV64IZDINXZHINX: # %bb.0: +; RV64IZDINXZHINX-NEXT: addi sp, sp, -16 +; RV64IZDINXZHINX-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZDINXZHINX-NEXT: fcvt.s.h a0, a0 +; RV64IZDINXZHINX-NEXT: call ldexpf +; RV64IZDINXZHINX-NEXT: fcvt.h.s a0, a0 +; RV64IZDINXZHINX-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZDINXZHINX-NEXT: addi sp, sp, 16 +; RV64IZDINXZHINX-NEXT: ret + %z = call half @llvm.experimental.constrained.ldexp.f16.i32(half %x, i32 %y, metadata !"round.dynamic", metadata !"fpexcept.strict") strictfp + ret half %z +} diff --git a/llvm/test/CodeGen/RISCV/zfhmin-half-intrinsics-strict.ll b/llvm/test/CodeGen/RISCV/zfhmin-half-intrinsics-strict.ll index 097d1e0f6ee55..214ea46d3130d 100644 --- a/llvm/test/CodeGen/RISCV/zfhmin-half-intrinsics-strict.ll +++ b/llvm/test/CodeGen/RISCV/zfhmin-half-intrinsics-strict.ll @@ -767,3 +767,73 @@ define i64 @llround_f16(half %a) nounwind strictfp { %1 = call i64 @llvm.experimental.constrained.llround.i64.f16(half %a, metadata !"fpexcept.strict") strictfp ret i64 %1 } + +define half @ldexp_f16(half %x, i32 signext %y) nounwind { +; RV32IZFHMIN-LABEL: ldexp_f16: +; RV32IZFHMIN: # %bb.0: +; RV32IZFHMIN-NEXT: addi sp, sp, -16 +; RV32IZFHMIN-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZFHMIN-NEXT: fcvt.s.h fa0, fa0 +; RV32IZFHMIN-NEXT: call ldexpf +; RV32IZFHMIN-NEXT: fcvt.h.s fa0, fa0 +; RV32IZFHMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZFHMIN-NEXT: addi sp, sp, 16 +; RV32IZFHMIN-NEXT: ret +; +; RV64IZFHMIN-LABEL: ldexp_f16: +; RV64IZFHMIN: # %bb.0: +; RV64IZFHMIN-NEXT: addi sp, sp, -16 +; RV64IZFHMIN-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZFHMIN-NEXT: fcvt.s.h fa0, fa0 +; RV64IZFHMIN-NEXT: call ldexpf +; RV64IZFHMIN-NEXT: fcvt.h.s fa0, fa0 +; RV64IZFHMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZFHMIN-NEXT: addi sp, sp, 16 +; RV64IZFHMIN-NEXT: ret +; +; RV32IZHINXMIN-STRICT-LABEL: ldexp_f16: +; RV32IZHINXMIN-STRICT: # %bb.0: +; RV32IZHINXMIN-STRICT-NEXT: addi sp, sp, -16 +; RV32IZHINXMIN-STRICT-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZHINXMIN-STRICT-NEXT: fcvt.s.h a0, a0 +; RV32IZHINXMIN-STRICT-NEXT: call ldexpf +; RV32IZHINXMIN-STRICT-NEXT: fcvt.h.s a0, a0 +; RV32IZHINXMIN-STRICT-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZHINXMIN-STRICT-NEXT: addi sp, sp, 16 +; RV32IZHINXMIN-STRICT-NEXT: ret +; +; RV64IZHINXMIN-STRICT-LABEL: ldexp_f16: +; RV64IZHINXMIN-STRICT: # %bb.0: +; RV64IZHINXMIN-STRICT-NEXT: addi sp, sp, -16 +; RV64IZHINXMIN-STRICT-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZHINXMIN-STRICT-NEXT: fcvt.s.h a0, a0 +; RV64IZHINXMIN-STRICT-NEXT: call ldexpf +; RV64IZHINXMIN-STRICT-NEXT: fcvt.h.s a0, a0 +; RV64IZHINXMIN-STRICT-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZHINXMIN-STRICT-NEXT: addi sp, sp, 16 +; RV64IZHINXMIN-STRICT-NEXT: ret +; +; RV32IZDINXZHINXMIN-LABEL: ldexp_f16: +; RV32IZDINXZHINXMIN: # %bb.0: +; RV32IZDINXZHINXMIN-NEXT: addi sp, sp, -16 +; RV32IZDINXZHINXMIN-NEXT: sw ra, 12(sp) # 4-byte Folded Spill +; RV32IZDINXZHINXMIN-NEXT: fcvt.s.h a0, a0 +; RV32IZDINXZHINXMIN-NEXT: call ldexpf +; RV32IZDINXZHINXMIN-NEXT: fcvt.h.s a0, a0 +; RV32IZDINXZHINXMIN-NEXT: lw ra, 12(sp) # 4-byte Folded Reload +; RV32IZDINXZHINXMIN-NEXT: addi sp, sp, 16 +; RV32IZDINXZHINXMIN-NEXT: ret +; +; RV64IZDINXZHINXMIN-LABEL: ldexp_f16: +; RV64IZDINXZHINXMIN: # %bb.0: +; RV64IZDINXZHINXMIN-NEXT: addi sp, sp, -16 +; RV64IZDINXZHINXMIN-NEXT: sd ra, 8(sp) # 8-byte Folded Spill +; RV64IZDINXZHINXMIN-NEXT: fcvt.s.h a0, a0 +; RV64IZDINXZHINXMIN-NEXT: call ldexpf +; RV64IZDINXZHINXMIN-NEXT: fcvt.h.s a0, a0 +; RV64IZDINXZHINXMIN-NEXT: ld ra, 8(sp) # 8-byte Folded Reload +; RV64IZDINXZHINXMIN-NEXT: addi sp, sp, 16 +; RV64IZDINXZHINXMIN-NEXT: ret + %z = call half @llvm.experimental.constrained.ldexp.f16.i32(half %x, i32 %y, metadata !"round.dynamic", metadata !"fpexcept.strict") strictfp + ret half %z +} diff --git a/llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_const.ll b/llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_const.ll index b4faba9a4eb8e..3ebfa1d8c8a9d 100644 --- a/llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_const.ll +++ b/llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_function_pointers/fp_const.ll @@ -10,8 +10,9 @@ ; CHECK-DAG: %[[TyInt64:.*]] = OpTypeInt 64 0 ; CHECK-DAG: %[[TyFun:.*]] = OpTypeFunction %[[TyInt64]] %[[TyInt64]] ; CHECK-DAG: %[[TyInt8:.*]] = OpTypeInt 8 0 +; CHECK-DAG: %[[TyPtrFunCodeSection:.*]] = OpTypePointer CodeSectionINTEL %[[TyFun]] +; CHECK-DAG: %[[ConstFunFp:.*]] = OpConstantFunctionPointerINTEL %[[TyPtrFunCodeSection]] %[[DefFunFp:.*]] ; CHECK-DAG: %[[TyPtrFun:.*]] = OpTypePointer Function %[[TyFun]] -; CHECK-DAG: %[[ConstFunFp:.*]] = OpConstantFunctionPointerINTEL %[[TyPtrFun]] %[[DefFunFp:.*]] ; CHECK-DAG: %[[TyPtrPtrFun:.*]] = OpTypePointer Function %[[TyPtrFun]] ; CHECK-DAG: %[[TyPtrInt8:.*]] = OpTypePointer Function %[[TyInt8]] ; CHECK-DAG: %[[TyPtrPtrInt8:.*]] = OpTypePointer Function %[[TyPtrInt8]] diff --git a/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveActiveAnyTrue.ll b/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveActiveAnyTrue.ll new file mode 100644 index 0000000000000..127ab36a2a01a --- /dev/null +++ b/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/WaveActiveAnyTrue.ll @@ -0,0 +1,21 @@ +; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s +; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val %} + +; CHECK-DAG: %[[#bool:]] = OpTypeBool +; CHECK-DAG: %[[#uint:]] = OpTypeInt 32 0 +; CHECK-DAG: %[[#scope:]] = OpConstant %[[#uint]] 3 +; CHECK-DAG: OpCapability GroupNonUniformVote + +; CHECK-LABEL: Begin function test_wave_any +define i1 @test_wave_any(i1 %p1) #0 { +entry: +; CHECK: %[[#param:]] = OpFunctionParameter %[[#bool]] +; CHECK: %{{.+}} = OpGroupNonUniformAny %[[#bool]] %[[#scope]] %[[#param]] + %0 = call token @llvm.experimental.convergence.entry() + %ret = call i1 @llvm.spv.wave.any(i1 %p1) [ "convergencectrl"(token %0) ] + ret i1 %ret +} + +declare i1 @llvm.spv.wave.any(i1) #0 + +attributes #0 = { convergent } diff --git a/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/idot.ll b/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/idot.ll index 22b6ed6bdfcbc..8acad352cdc29 100644 --- a/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/idot.ll +++ b/llvm/test/CodeGen/SPIRV/hlsl-intrinsics/idot.ll @@ -1,8 +1,20 @@ -; RUN: llc -O0 -mtriple=spirv-unknown-unknown %s -o - | FileCheck %s -; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv-unknown-unknown %s -o - -filetype=obj | spirv-val %} +; RUN: llc -O0 -mtriple=spirv1.5-unknown-unknown %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-EXP +; RUN: llc -O0 -mtriple=spirv1.6-unknown-unknown %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-DOT +; RUN: llc -O0 -mtriple=spirv1.5-unknown-unknown -spirv-ext=+SPV_KHR_integer_dot_product %s -o - | FileCheck %s --check-prefixes=CHECK,CHECK-DOT,CHECK-EXT +; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv1.5-unknown-unknown %s -o - -filetype=obj | spirv-val %} +; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv1.6-unknown-unknown %s -o - -filetype=obj | spirv-val %} +; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv1.5-unknown-unknown -spirv-ext=+SPV_KHR_integer_dot_product %s -o - -filetype=obj | spirv-val %} ; Make sure dxil operation function calls for dot are generated for int/uint vectors. +; CHECK-DAG: OpCapability Int8 +; CHECK-DOT-DAG: OpCapability DotProduct +; CHECK-DOT-DAG: OpCapability DotProductInputAll +; CHECK-DOT-DAG: OpCapability DotProductInput4x8Bit +; CHECK-EXT-DAG: OpExtension "SPV_KHR_integer_dot_product" + +; CHECK-DAG: %[[#int_8:]] = OpTypeInt 8 +; CHECK-DAG: %[[#vec4_int_8:]] = OpTypeVector %[[#int_8]] 4 ; CHECK-DAG: %[[#int_16:]] = OpTypeInt 16 ; CHECK-DAG: %[[#vec2_int_16:]] = OpTypeVector %[[#int_16]] 2 ; CHECK-DAG: %[[#vec3_int_16:]] = OpTypeVector %[[#int_16]] 3 @@ -11,14 +23,32 @@ ; CHECK-DAG: %[[#int_64:]] = OpTypeInt 64 ; CHECK-DAG: %[[#vec2_int_64:]] = OpTypeVector %[[#int_64]] 2 +define noundef i8 @dot_int8_t4(<4 x i8> noundef %a, <4 x i8> noundef %b) { +entry: +; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec4_int_8]] +; CHECK: %[[#arg1:]] = OpFunctionParameter %[[#vec4_int_8]] + +; CHECK-DOT: %[[#dot:]] = OpSDot %[[#int_8]] %[[#arg0]] %[[#arg1]] + +; CHECK-EXP: %[[#mul_vec:]] = OpIMul %[[#vec4_int_8]] %[[#arg0]] %[[#arg1]] +; CHECK-EXP: %[[#elt0:]] = OpCompositeExtract %[[#int_8]] %[[#mul_vec]] 0 +; CHECK-EXP: %[[#elt1:]] = OpCompositeExtract %[[#int_8]] %[[#mul_vec]] 1 +; CHECK-EXP: %[[#sum:]] = OpIAdd %[[#int_8]] %[[#elt0]] %[[#elt1]] + %dot = call i8 @llvm.spv.sdot.v4i8(<4 x i8> %a, <4 x i8> %b) + ret i8 %dot +} + define noundef i16 @dot_int16_t2(<2 x i16> noundef %a, <2 x i16> noundef %b) { entry: ; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec2_int_16]] ; CHECK: %[[#arg1:]] = OpFunctionParameter %[[#vec2_int_16]] -; CHECK: %[[#mul_vec:]] = OpIMul %[[#vec2_int_16]] %[[#arg0]] %[[#arg1]] -; CHECK: %[[#elt0:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 0 -; CHECK: %[[#elt1:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 1 -; CHECK: %[[#sum:]] = OpIAdd %[[#int_16]] %[[#elt0]] %[[#elt1]] + +; CHECK-DOT: %[[#dot:]] = OpSDot %[[#int_16]] %[[#arg0]] %[[#arg1]] + +; CHECK-EXP: %[[#mul_vec:]] = OpIMul %[[#vec2_int_16]] %[[#arg0]] %[[#arg1]] +; CHECK-EXP: %[[#elt0:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 0 +; CHECK-EXP: %[[#elt1:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 1 +; CHECK-EXP: %[[#sum:]] = OpIAdd %[[#int_16]] %[[#elt0]] %[[#elt1]] %dot = call i16 @llvm.spv.sdot.v3i16(<2 x i16> %a, <2 x i16> %b) ret i16 %dot } @@ -27,28 +57,49 @@ define noundef i32 @dot_int4(<4 x i32> noundef %a, <4 x i32> noundef %b) { entry: ; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec4_int_32]] ; CHECK: %[[#arg1:]] = OpFunctionParameter %[[#vec4_int_32]] -; CHECK: %[[#mul_vec:]] = OpIMul %[[#vec4_int_32]] %[[#arg0]] %[[#arg1]] -; CHECK: %[[#elt0:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 0 -; CHECK: %[[#elt1:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 1 -; CHECK: %[[#sum0:]] = OpIAdd %[[#int_32]] %[[#elt0]] %[[#elt1]] -; CHECK: %[[#elt2:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 2 -; CHECK: %[[#sum1:]] = OpIAdd %[[#int_32]] %[[#sum0]] %[[#elt2]] -; CHECK: %[[#elt3:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 3 -; CHECK: %[[#sum2:]] = OpIAdd %[[#int_32]] %[[#sum1]] %[[#elt3]] + +; CHECK-DOT: %[[#dot:]] = OpSDot %[[#int_32]] %[[#arg0]] %[[#arg1]] + +; CHECK-EXP: %[[#mul_vec:]] = OpIMul %[[#vec4_int_32]] %[[#arg0]] %[[#arg1]] +; CHECK-EXP: %[[#elt0:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 0 +; CHECK-EXP: %[[#elt1:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 1 +; CHECK-EXP: %[[#sum0:]] = OpIAdd %[[#int_32]] %[[#elt0]] %[[#elt1]] +; CHECK-EXP: %[[#elt2:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 2 +; CHECK-EXP: %[[#sum1:]] = OpIAdd %[[#int_32]] %[[#sum0]] %[[#elt2]] +; CHECK-EXP: %[[#elt3:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 3 +; CHECK-EXP: %[[#sum2:]] = OpIAdd %[[#int_32]] %[[#sum1]] %[[#elt3]] %dot = call i32 @llvm.spv.sdot.v4i32(<4 x i32> %a, <4 x i32> %b) ret i32 %dot } +define noundef i8 @dot_uint8_t4(<4 x i8> noundef %a, <4 x i8> noundef %b) { +entry: +; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec4_int_8]] +; CHECK: %[[#arg1:]] = OpFunctionParameter %[[#vec4_int_8]] + +; CHECK-DOT: %[[#dot:]] = OpUDot %[[#int_8]] %[[#arg0]] %[[#arg1]] + +; CHECK-EXP: %[[#mul_vec:]] = OpIMul %[[#vec4_int_8]] %[[#arg0]] %[[#arg1]] +; CHECK-EXP: %[[#elt0:]] = OpCompositeExtract %[[#int_8]] %[[#mul_vec]] 0 +; CHECK-EXP: %[[#elt1:]] = OpCompositeExtract %[[#int_8]] %[[#mul_vec]] 1 +; CHECK-EXP: %[[#sum:]] = OpIAdd %[[#int_8]] %[[#elt0]] %[[#elt1]] + %dot = call i8 @llvm.spv.udot.v4i8(<4 x i8> %a, <4 x i8> %b) + ret i8 %dot +} + define noundef i16 @dot_uint16_t3(<3 x i16> noundef %a, <3 x i16> noundef %b) { entry: ; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec3_int_16]] ; CHECK: %[[#arg1:]] = OpFunctionParameter %[[#vec3_int_16]] -; CHECK: %[[#mul_vec:]] = OpIMul %[[#vec3_int_16]] %[[#arg0]] %[[#arg1]] -; CHECK: %[[#elt0:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 0 -; CHECK: %[[#elt1:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 1 -; CHECK: %[[#sum0:]] = OpIAdd %[[#int_16]] %[[#elt0]] %[[#elt1]] -; CHECK: %[[#elt2:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 2 -; CHECK: %[[#sum1:]] = OpIAdd %[[#int_16]] %[[#sum0]] %[[#elt2]] + +; CHECK-DOT: %[[#dot:]] = OpUDot %[[#int_16]] %[[#arg0]] %[[#arg1]] + +; CHECK-EXP: %[[#mul_vec:]] = OpIMul %[[#vec3_int_16]] %[[#arg0]] %[[#arg1]] +; CHECK-EXP: %[[#elt0:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 0 +; CHECK-EXP: %[[#elt1:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 1 +; CHECK-EXP: %[[#sum0:]] = OpIAdd %[[#int_16]] %[[#elt0]] %[[#elt1]] +; CHECK-EXP: %[[#elt2:]] = OpCompositeExtract %[[#int_16]] %[[#mul_vec]] 2 +; CHECK-EXP: %[[#sum1:]] = OpIAdd %[[#int_16]] %[[#sum0]] %[[#elt2]] %dot = call i16 @llvm.spv.udot.v3i16(<3 x i16> %a, <3 x i16> %b) ret i16 %dot } @@ -57,14 +108,17 @@ define noundef i32 @dot_uint4(<4 x i32> noundef %a, <4 x i32> noundef %b) { entry: ; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec4_int_32]] ; CHECK: %[[#arg1:]] = OpFunctionParameter %[[#vec4_int_32]] -; CHECK: %[[#mul_vec:]] = OpIMul %[[#vec4_int_32]] %[[#arg0]] %[[#arg1]] -; CHECK: %[[#elt0:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 0 -; CHECK: %[[#elt1:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 1 -; CHECK: %[[#sum0:]] = OpIAdd %[[#int_32]] %[[#elt0]] %[[#elt1]] -; CHECK: %[[#elt2:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 2 -; CHECK: %[[#sum1:]] = OpIAdd %[[#int_32]] %[[#sum0]] %[[#elt2]] -; CHECK: %[[#elt3:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 3 -; CHECK: %[[#sum2:]] = OpIAdd %[[#int_32]] %[[#sum1]] %[[#elt3]] + +; CHECK-DOT: %[[#dot:]] = OpUDot %[[#int_32]] %[[#arg0]] %[[#arg1]] + +; CHECK-EXP: %[[#mul_vec:]] = OpIMul %[[#vec4_int_32]] %[[#arg0]] %[[#arg1]] +; CHECK-EXP: %[[#elt0:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 0 +; CHECK-EXP: %[[#elt1:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 1 +; CHECK-EXP: %[[#sum0:]] = OpIAdd %[[#int_32]] %[[#elt0]] %[[#elt1]] +; CHECK-EXP: %[[#elt2:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 2 +; CHECK-EXP: %[[#sum1:]] = OpIAdd %[[#int_32]] %[[#sum0]] %[[#elt2]] +; CHECK-EXP: %[[#elt3:]] = OpCompositeExtract %[[#int_32]] %[[#mul_vec]] 3 +; CHECK-EXP: %[[#sum2:]] = OpIAdd %[[#int_32]] %[[#sum1]] %[[#elt3]] %dot = call i32 @llvm.spv.udot.v4i32(<4 x i32> %a, <4 x i32> %b) ret i32 %dot } @@ -73,16 +127,21 @@ define noundef i64 @dot_uint64_t4(<2 x i64> noundef %a, <2 x i64> noundef %b) { entry: ; CHECK: %[[#arg0:]] = OpFunctionParameter %[[#vec2_int_64]] ; CHECK: %[[#arg1:]] = OpFunctionParameter %[[#vec2_int_64]] -; CHECK: %[[#mul_vec:]] = OpIMul %[[#vec2_int_64]] %[[#arg0]] %[[#arg1]] -; CHECK: %[[#elt0:]] = OpCompositeExtract %[[#int_64]] %[[#mul_vec]] 0 -; CHECK: %[[#elt1:]] = OpCompositeExtract %[[#int_64]] %[[#mul_vec]] 1 -; CHECK: %[[#sum0:]] = OpIAdd %[[#int_64]] %[[#elt0]] %[[#elt1]] + +; CHECK-DOT: %[[#dot:]] = OpUDot %[[#int_64]] %[[#arg0]] %[[#arg1]] + +; CHECK-EXP: %[[#mul_vec:]] = OpIMul %[[#vec2_int_64]] %[[#arg0]] %[[#arg1]] +; CHECK-EXP: %[[#elt0:]] = OpCompositeExtract %[[#int_64]] %[[#mul_vec]] 0 +; CHECK-EXP: %[[#elt1:]] = OpCompositeExtract %[[#int_64]] %[[#mul_vec]] 1 +; CHECK-EXP: %[[#sum0:]] = OpIAdd %[[#int_64]] %[[#elt0]] %[[#elt1]] %dot = call i64 @llvm.spv.udot.v2i64(<2 x i64> %a, <2 x i64> %b) ret i64 %dot } +declare i8 @llvm.spv.sdot.v4i8(<4 x i8>, <4 x i8>) declare i16 @llvm.spv.sdot.v2i16(<2 x i16>, <2 x i16>) declare i32 @llvm.spv.sdot.v4i32(<4 x i32>, <4 x i32>) +declare i8 @llvm.spv.udot.v4i8(<4 x i8>, <4 x i8>) declare i16 @llvm.spv.udot.v3i32(<3 x i16>, <3 x i16>) declare i32 @llvm.spv.udot.v4i32(<4 x i32>, <4 x i32>) declare i64 @llvm.spv.udot.v2i64(<2 x i64>, <2 x i64>) diff --git a/llvm/test/CodeGen/SPIRV/instructions/integer-casts.ll b/llvm/test/CodeGen/SPIRV/instructions/integer-casts.ll index a53bd8e53205e..640dc273dfa62 100644 --- a/llvm/test/CodeGen/SPIRV/instructions/integer-casts.ll +++ b/llvm/test/CodeGen/SPIRV/instructions/integer-casts.ll @@ -250,8 +250,12 @@ define <4 x i32> @u16tou32v4(<4 x i16> %a) { ; CHECK: %[[#]] = OpSatConvertUToS [[U64]] %[[#]] ; CHECK: %[[#]] = OpConvertPtrToU [[U64]] [[Arg1]] ; CHECK: %[[#]] = OpConvertUToPtr %[[#]] [[Arg2]] +; CHECK: %[[#]] = OpUConvert [[U32v4]] %[[#]] +; CHECK: %[[#]] = OpSConvert [[U32v4]] %[[#]] +; CHECK: %[[#]] = OpConvertUToF [[F32]] %[[#]] +; CHECK: %[[#]] = OpConvertUToF [[F32]] %[[#]] ; CHECK: OpFunctionEnd -define dso_local spir_kernel void @test_wrappers(ptr addrspace(4) %arg, i64 %arg_ptr) { +define dso_local spir_kernel void @test_wrappers(ptr addrspace(4) %arg, i64 %arg_ptr, <4 x i8> %arg_v2) { %r1 = call spir_func i32 @__spirv_ConvertFToU(float 0.000000e+00) %r2 = call spir_func i32 @__spirv_ConvertFToS(float 0.000000e+00) %r3 = call spir_func float @__spirv_ConvertSToF(i32 1) @@ -264,6 +268,10 @@ define dso_local spir_kernel void @test_wrappers(ptr addrspace(4) %arg, i64 %arg %r10 = call spir_func i64 @__spirv_SatConvertUToS(i64 1) %r11 = call spir_func i64 @__spirv_ConvertPtrToU(ptr addrspace(4) %arg) %r12 = call spir_func ptr addrspace(4) @__spirv_ConvertUToPtr(i64 %arg_ptr) + %r13 = call spir_func <4 x i32> @_Z22__spirv_UConvert_Rint2Dv2_a(<4 x i8> %arg_v2) + %r14 = call spir_func <4 x i32> @_Z22__spirv_SConvert_Rint2Dv2_a(<4 x i8> %arg_v2) + %r15 = call spir_func float @_Z30__spirv_ConvertUToF_Rfloat_rtz(i64 %arg_ptr) + %r16 = call spir_func float @__spirv_ConvertUToF_Rfloat_rtz(i64 %arg_ptr) ret void } @@ -279,3 +287,7 @@ declare dso_local spir_func i64 @__spirv_SatConvertSToU(i64) declare dso_local spir_func i64 @__spirv_SatConvertUToS(i64) declare dso_local spir_func i64 @__spirv_ConvertPtrToU(ptr addrspace(4)) declare dso_local spir_func ptr addrspace(4) @__spirv_ConvertUToPtr(i64) +declare dso_local spir_func <4 x i32> @_Z22__spirv_UConvert_Rint2Dv2_a(<4 x i8>) +declare dso_local spir_func <4 x i32> @_Z22__spirv_SConvert_Rint2Dv2_a(<4 x i8>) +declare dso_local spir_func float @_Z30__spirv_ConvertUToF_Rfloat_rtz(i64) +declare dso_local spir_func float @__spirv_ConvertUToF_Rfloat_rtz(i64) diff --git a/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll b/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll index edf818ab95131..b08f0e5a74d56 100644 --- a/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll +++ b/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll @@ -4156,86 +4156,81 @@ entry: ret <4 x double> %log2 } -define <1 x float> @constrained_vector_rint_v1f32() #0 { +define <1 x float> @constrained_vector_rint_v1f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_rint_v1f32: ; S390X: # %bb.0: # %entry -; S390X-NEXT: larl %r1, .LCPI75_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: le %f0, 0(%r2) ; S390X-NEXT: fiebr %f0, 0, %f0 ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_rint_v1f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI75_0 -; SZ13-NEXT: lde %f0, 0(%r1) +; SZ13-NEXT: lde %f0, 0(%r2) ; SZ13-NEXT: fiebr %f0, 0, %f0 ; SZ13-NEXT: vlr %v24, %v0 ; SZ13-NEXT: br %r14 entry: + %b = load <1 x float>, ptr %a %rint = call <1 x float> @llvm.experimental.constrained.rint.v1f32( - <1 x float> , + <1 x float> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <1 x float> %rint } -define <2 x double> @constrained_vector_rint_v2f64() #0 { +define <2 x double> @constrained_vector_rint_v2f64(ptr %a) #0 { ; S390X-LABEL: constrained_vector_rint_v2f64: ; S390X: # %bb.0: # %entry -; S390X-NEXT: larl %r1, .LCPI76_0 -; S390X-NEXT: ld %f0, 0(%r1) -; S390X-NEXT: larl %r1, .LCPI76_1 -; S390X-NEXT: ld %f1, 0(%r1) +; S390X-NEXT: ld %f0, 8(%r2) +; S390X-NEXT: ld %f1, 0(%r2) ; S390X-NEXT: fidbr %f2, 0, %f0 ; S390X-NEXT: fidbr %f0, 0, %f1 ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_rint_v2f64: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI76_0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 +; SZ13-NEXT: vl %v0, 0(%r2), 3 ; SZ13-NEXT: vfidb %v24, %v0, 0, 0 ; SZ13-NEXT: br %r14 entry: + %b = load <2 x double>, ptr %a %rint = call <2 x double> @llvm.experimental.constrained.rint.v2f64( - <2 x double> , + <2 x double> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <2 x double> %rint } -define <3 x float> @constrained_vector_rint_v3f32() #0 { +define <3 x float> @constrained_vector_rint_v3f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_rint_v3f32: ; S390X: # %bb.0: # %entry -; S390X-NEXT: larl %r1, .LCPI77_0 -; S390X-NEXT: le %f0, 0(%r1) -; S390X-NEXT: larl %r1, .LCPI77_1 -; S390X-NEXT: le %f1, 0(%r1) -; S390X-NEXT: larl %r1, .LCPI77_2 -; S390X-NEXT: le %f3, 0(%r1) +; S390X-NEXT: lg %r0, 0(%r2) +; S390X-NEXT: risbg %r1, %r0, 0, 159, 0 +; S390X-NEXT: le %f0, 8(%r2) +; S390X-NEXT: ldgr %f1, %r1 +; S390X-NEXT: sllg %r0, %r0, 32 +; S390X-NEXT: ldgr %f2, %r0 ; S390X-NEXT: fiebr %f4, 0, %f0 -; S390X-NEXT: fiebr %f2, 0, %f1 -; S390X-NEXT: fiebr %f0, 0, %f3 +; S390X-NEXT: fiebr %f2, 0, %f2 +; S390X-NEXT: fiebr %f0, 0, %f1 ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_rint_v3f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI77_0 -; SZ13-NEXT: lde %f0, 0(%r1) -; SZ13-NEXT: larl %r1, .LCPI77_1 -; SZ13-NEXT: lde %f1, 0(%r1) -; SZ13-NEXT: larl %r1, .LCPI77_2 -; SZ13-NEXT: lde %f2, 0(%r1) -; SZ13-NEXT: fiebr %f0, 0, %f0 +; SZ13-NEXT: vl %v0, 0(%r2), 4 +; SZ13-NEXT: vrepf %v1, %v0, 2 +; SZ13-NEXT: vrepf %v2, %v0, 1 ; SZ13-NEXT: fiebr %f1, 0, %f1 ; SZ13-NEXT: fiebr %f2, 0, %f2 -; SZ13-NEXT: vmrhf %v1, %v1, %v2 -; SZ13-NEXT: vrepf %v0, %v0, 0 -; SZ13-NEXT: vmrhg %v24, %v1, %v0 +; SZ13-NEXT: fiebr %f0, 0, %f0 +; SZ13-NEXT: vmrhf %v0, %v0, %v2 +; SZ13-NEXT: vrepf %v1, %v1, 0 +; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: br %r14 entry: + %b = load <3 x float>, ptr %a %rint = call <3 x float> @llvm.experimental.constrained.rint.v3f32( - <3 x float> , + <3 x float> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <3 x float> %rint @@ -4274,17 +4269,13 @@ entry: ret void } -define <4 x double> @constrained_vector_rint_v4f64() #0 { +define <4 x double> @constrained_vector_rint_v4f64(ptr %a) #0 { ; S390X-LABEL: constrained_vector_rint_v4f64: ; S390X: # %bb.0: # %entry -; S390X-NEXT: larl %r1, .LCPI79_0 -; S390X-NEXT: ld %f0, 0(%r1) -; S390X-NEXT: larl %r1, .LCPI79_1 -; S390X-NEXT: ld %f1, 0(%r1) -; S390X-NEXT: larl %r1, .LCPI79_2 -; S390X-NEXT: ld %f2, 0(%r1) -; S390X-NEXT: larl %r1, .LCPI79_3 -; S390X-NEXT: ld %f3, 0(%r1) +; S390X-NEXT: ld %f0, 24(%r2) +; S390X-NEXT: ld %f1, 16(%r2) +; S390X-NEXT: ld %f2, 8(%r2) +; S390X-NEXT: ld %f3, 0(%r2) ; S390X-NEXT: fidbr %f6, 0, %f0 ; S390X-NEXT: fidbr %f4, 0, %f1 ; S390X-NEXT: fidbr %f2, 0, %f2 @@ -4293,23 +4284,21 @@ define <4 x double> @constrained_vector_rint_v4f64() #0 { ; ; SZ13-LABEL: constrained_vector_rint_v4f64: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI79_0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 -; SZ13-NEXT: larl %r1, .LCPI79_1 -; SZ13-NEXT: vfidb %v24, %v0, 0, 0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 +; SZ13-NEXT: vl %v0, 16(%r2), 4 +; SZ13-NEXT: vl %v1, 0(%r2), 4 +; SZ13-NEXT: vfidb %v24, %v1, 0, 0 ; SZ13-NEXT: vfidb %v26, %v0, 0, 0 ; SZ13-NEXT: br %r14 entry: + %b = load <4 x double>, ptr %a %rint = call <4 x double> @llvm.experimental.constrained.rint.v4f64( - <4 x double> , + <4 x double> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <4 x double> %rint } -define <1 x float> @constrained_vector_nearbyint_v1f32() #0 { +define <1 x float> @constrained_vector_nearbyint_v1f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_nearbyint_v1f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) @@ -4317,114 +4306,115 @@ define <1 x float> @constrained_vector_nearbyint_v1f32() #0 { ; S390X-NEXT: .cfi_offset %r15, -40 ; S390X-NEXT: aghi %r15, -160 ; S390X-NEXT: .cfi_def_cfa_offset 320 -; S390X-NEXT: larl %r1, .LCPI80_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: le %f0, 0(%r2) ; S390X-NEXT: brasl %r14, nearbyintf@PLT ; S390X-NEXT: lmg %r14, %r15, 272(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_nearbyint_v1f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI80_0 -; SZ13-NEXT: lde %f0, 0(%r1) +; SZ13-NEXT: lde %f0, 0(%r2) ; SZ13-NEXT: fiebra %f0, 0, %f0, 4 ; SZ13-NEXT: vlr %v24, %v0 ; SZ13-NEXT: br %r14 entry: + %b = load <1 x float>, ptr %a %nearby = call <1 x float> @llvm.experimental.constrained.nearbyint.v1f32( - <1 x float> , + <1 x float> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <1 x float> %nearby } -define <2 x double> @constrained_vector_nearbyint_v2f64() #0 { +define <2 x double> @constrained_vector_nearbyint_v2f64(ptr %a) #0 { ; S390X-LABEL: constrained_vector_nearbyint_v2f64: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -168 -; S390X-NEXT: .cfi_def_cfa_offset 328 -; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -176 +; S390X-NEXT: .cfi_def_cfa_offset 336 +; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 -; S390X-NEXT: larl %r1, .LCPI81_0 -; S390X-NEXT: ld %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f9, -176 +; S390X-NEXT: ld %f0, 8(%r2) +; S390X-NEXT: ld %f8, 0(%r2) ; S390X-NEXT: brasl %r14, nearbyint@PLT -; S390X-NEXT: larl %r1, .LCPI81_1 -; S390X-NEXT: ld %f1, 0(%r1) -; S390X-NEXT: ldr %f8, %f0 -; S390X-NEXT: ldr %f0, %f1 +; S390X-NEXT: ldr %f9, %f0 +; S390X-NEXT: ldr %f0, %f8 ; S390X-NEXT: brasl %r14, nearbyint@PLT -; S390X-NEXT: ldr %f2, %f8 -; S390X-NEXT: ld %f8, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 280(%r15) +; S390X-NEXT: ldr %f2, %f9 +; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 288(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_nearbyint_v2f64: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI81_0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 +; SZ13-NEXT: vl %v0, 0(%r2), 3 ; SZ13-NEXT: vfidb %v24, %v0, 4, 0 ; SZ13-NEXT: br %r14 entry: + %b = load <2 x double>, ptr %a %nearby = call <2 x double> @llvm.experimental.constrained.nearbyint.v2f64( - <2 x double> , + <2 x double> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <2 x double> %nearby } -define <3 x float> @constrained_vector_nearbyint_v3f32() #0 { +define <3 x float> @constrained_vector_nearbyint_v3f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_nearbyint_v3f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -176 -; S390X-NEXT: .cfi_def_cfa_offset 336 -; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill -; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -184 +; S390X-NEXT: .cfi_def_cfa_offset 344 +; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f10, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 ; S390X-NEXT: .cfi_offset %f9, -176 -; S390X-NEXT: larl %r1, .LCPI82_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f10, -184 +; S390X-NEXT: lg %r0, 0(%r2) +; S390X-NEXT: le %f0, 8(%r2) +; S390X-NEXT: risbg %r1, %r0, 0, 159, 0 +; S390X-NEXT: ldgr %f8, %r1 +; S390X-NEXT: sllg %r0, %r0, 32 +; S390X-NEXT: ldgr %f9, %r0 ; S390X-NEXT: brasl %r14, nearbyintf@PLT -; S390X-NEXT: larl %r1, .LCPI82_1 -; S390X-NEXT: le %f1, 0(%r1) -; S390X-NEXT: ler %f8, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f10, %f0 +; S390X-NEXT: ler %f0, %f9 ; S390X-NEXT: brasl %r14, nearbyintf@PLT -; S390X-NEXT: larl %r1, .LCPI82_2 -; S390X-NEXT: le %f1, 0(%r1) ; S390X-NEXT: ler %f9, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f0, %f8 ; S390X-NEXT: brasl %r14, nearbyintf@PLT ; S390X-NEXT: ler %f2, %f9 -; S390X-NEXT: ler %f4, %f8 -; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload -; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 288(%r15) +; S390X-NEXT: ler %f4, %f10 +; S390X-NEXT: ld %f8, 176(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f10, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 296(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_nearbyint_v3f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI82_0 -; SZ13-NEXT: lde %f0, 0(%r1) -; SZ13-NEXT: larl %r1, .LCPI82_1 -; SZ13-NEXT: lde %f1, 0(%r1) -; SZ13-NEXT: larl %r1, .LCPI82_2 -; SZ13-NEXT: lde %f2, 0(%r1) -; SZ13-NEXT: fiebra %f0, 0, %f0, 4 +; SZ13-NEXT: vl %v0, 0(%r2), 4 +; SZ13-NEXT: vrepf %v1, %v0, 2 +; SZ13-NEXT: vrepf %v2, %v0, 1 ; SZ13-NEXT: fiebra %f1, 0, %f1, 4 ; SZ13-NEXT: fiebra %f2, 0, %f2, 4 -; SZ13-NEXT: vmrhf %v1, %v1, %v2 -; SZ13-NEXT: vrepf %v0, %v0, 0 -; SZ13-NEXT: vmrhg %v24, %v1, %v0 +; SZ13-NEXT: fiebra %f0, 0, %f0, 4 +; SZ13-NEXT: vmrhf %v0, %v0, %v2 +; SZ13-NEXT: vrepf %v1, %v1, 0 +; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: br %r14 entry: + %b = load <3 x float>, ptr %a %nearby = call <3 x float> @llvm.experimental.constrained.nearbyint.v3f32( - <3 x float> , + <3 x float> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <3 x float> %nearby @@ -4484,60 +4474,57 @@ entry: ret void } -define <4 x double> @constrained_vector_nearbyint_v4f64() #0 { +define <4 x double> @constrained_vector_nearbyint_v4f64(ptr %a) #0 { ; S390X-LABEL: constrained_vector_nearbyint_v4f64: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -184 -; S390X-NEXT: .cfi_def_cfa_offset 344 -; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill -; S390X-NEXT: std %f9, 168(%r15) # 8-byte Folded Spill -; S390X-NEXT: std %f10, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -192 +; S390X-NEXT: .cfi_def_cfa_offset 352 +; S390X-NEXT: std %f8, 184(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 176(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f10, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f11, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 ; S390X-NEXT: .cfi_offset %f9, -176 ; S390X-NEXT: .cfi_offset %f10, -184 -; S390X-NEXT: larl %r1, .LCPI84_0 -; S390X-NEXT: ld %f0, 0(%r1) -; S390X-NEXT: brasl %r14, nearbyint@PLT -; S390X-NEXT: larl %r1, .LCPI84_1 -; S390X-NEXT: ld %f1, 0(%r1) -; S390X-NEXT: ldr %f8, %f0 -; S390X-NEXT: ldr %f0, %f1 +; S390X-NEXT: .cfi_offset %f11, -192 +; S390X-NEXT: ld %f8, 0(%r2) +; S390X-NEXT: ld %f9, 8(%r2) +; S390X-NEXT: ld %f0, 24(%r2) +; S390X-NEXT: ld %f10, 16(%r2) ; S390X-NEXT: brasl %r14, nearbyint@PLT -; S390X-NEXT: larl %r1, .LCPI84_2 -; S390X-NEXT: ld %f1, 0(%r1) -; S390X-NEXT: ldr %f9, %f0 -; S390X-NEXT: ldr %f0, %f1 +; S390X-NEXT: ldr %f11, %f0 +; S390X-NEXT: ldr %f0, %f10 ; S390X-NEXT: brasl %r14, nearbyint@PLT -; S390X-NEXT: larl %r1, .LCPI84_3 -; S390X-NEXT: ld %f1, 0(%r1) ; S390X-NEXT: ldr %f10, %f0 -; S390X-NEXT: ldr %f0, %f1 +; S390X-NEXT: ldr %f0, %f9 ; S390X-NEXT: brasl %r14, nearbyint@PLT -; S390X-NEXT: ldr %f2, %f10 -; S390X-NEXT: ldr %f4, %f9 -; S390X-NEXT: ldr %f6, %f8 -; S390X-NEXT: ld %f8, 176(%r15) # 8-byte Folded Reload -; S390X-NEXT: ld %f9, 168(%r15) # 8-byte Folded Reload -; S390X-NEXT: ld %f10, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 296(%r15) +; S390X-NEXT: ldr %f9, %f0 +; S390X-NEXT: ldr %f0, %f8 +; S390X-NEXT: brasl %r14, nearbyint@PLT +; S390X-NEXT: ldr %f2, %f9 +; S390X-NEXT: ldr %f4, %f10 +; S390X-NEXT: ldr %f6, %f11 +; S390X-NEXT: ld %f8, 184(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 176(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f10, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f11, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 304(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_nearbyint_v4f64: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI84_0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 -; SZ13-NEXT: larl %r1, .LCPI84_1 -; SZ13-NEXT: vfidb %v24, %v0, 4, 0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 +; SZ13-NEXT: vl %v0, 16(%r2), 4 +; SZ13-NEXT: vl %v1, 0(%r2), 4 +; SZ13-NEXT: vfidb %v24, %v1, 4, 0 ; SZ13-NEXT: vfidb %v26, %v0, 4, 0 ; SZ13-NEXT: br %r14 entry: + %b = load <4 x double>, ptr %a %nearby = call <4 x double> @llvm.experimental.constrained.nearbyint.v4f64( - <4 x double> , + <4 x double> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <4 x double> %nearby @@ -5544,7 +5531,7 @@ entry: ret <4 x double> %result } -define <1 x float> @constrained_vector_ceil_v1f32() #0 { +define <1 x float> @constrained_vector_ceil_v1f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_ceil_v1f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) @@ -5565,97 +5552,101 @@ define <1 x float> @constrained_vector_ceil_v1f32() #0 { ; SZ13-NEXT: vlr %v24, %v0 ; SZ13-NEXT: br %r14 entry: + %b = load <1 x float>, ptr %a %ceil = call <1 x float> @llvm.experimental.constrained.ceil.v1f32( <1 x float> , metadata !"fpexcept.strict") #0 ret <1 x float> %ceil } -define <2 x double> @constrained_vector_ceil_v2f64() #0 { +define <2 x double> @constrained_vector_ceil_v2f64(ptr %a) #0 { ; S390X-LABEL: constrained_vector_ceil_v2f64: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -168 -; S390X-NEXT: .cfi_def_cfa_offset 328 -; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -176 +; S390X-NEXT: .cfi_def_cfa_offset 336 +; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 -; S390X-NEXT: larl %r1, .LCPI104_0 -; S390X-NEXT: ld %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f9, -176 +; S390X-NEXT: ld %f0, 8(%r2) +; S390X-NEXT: ld %f8, 0(%r2) ; S390X-NEXT: brasl %r14, ceil@PLT -; S390X-NEXT: larl %r1, .LCPI104_1 -; S390X-NEXT: ld %f1, 0(%r1) -; S390X-NEXT: ldr %f8, %f0 -; S390X-NEXT: ldr %f0, %f1 +; S390X-NEXT: ldr %f9, %f0 +; S390X-NEXT: ldr %f0, %f8 ; S390X-NEXT: brasl %r14, ceil@PLT -; S390X-NEXT: ldr %f2, %f8 -; S390X-NEXT: ld %f8, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 280(%r15) +; S390X-NEXT: ldr %f2, %f9 +; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 288(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_ceil_v2f64: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI104_0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 +; SZ13-NEXT: vl %v0, 0(%r2), 3 ; SZ13-NEXT: vfidb %v24, %v0, 4, 6 ; SZ13-NEXT: br %r14 entry: + %b = load <2 x double>, ptr %a %ceil = call <2 x double> @llvm.experimental.constrained.ceil.v2f64( - <2 x double> , + <2 x double> %b, metadata !"fpexcept.strict") #0 ret <2 x double> %ceil } -define <3 x float> @constrained_vector_ceil_v3f32() #0 { +define <3 x float> @constrained_vector_ceil_v3f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_ceil_v3f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -176 -; S390X-NEXT: .cfi_def_cfa_offset 336 -; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill -; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -184 +; S390X-NEXT: .cfi_def_cfa_offset 344 +; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f10, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 ; S390X-NEXT: .cfi_offset %f9, -176 -; S390X-NEXT: larl %r1, .LCPI105_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f10, -184 +; S390X-NEXT: lg %r0, 0(%r2) +; S390X-NEXT: le %f0, 8(%r2) +; S390X-NEXT: risbg %r1, %r0, 0, 159, 0 +; S390X-NEXT: ldgr %f8, %r1 +; S390X-NEXT: sllg %r0, %r0, 32 +; S390X-NEXT: ldgr %f9, %r0 ; S390X-NEXT: brasl %r14, ceilf@PLT -; S390X-NEXT: larl %r1, .LCPI105_1 -; S390X-NEXT: le %f1, 0(%r1) -; S390X-NEXT: ler %f8, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f10, %f0 +; S390X-NEXT: ler %f0, %f9 ; S390X-NEXT: brasl %r14, ceilf@PLT -; S390X-NEXT: larl %r1, .LCPI105_2 -; S390X-NEXT: le %f1, 0(%r1) ; S390X-NEXT: ler %f9, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f0, %f8 ; S390X-NEXT: brasl %r14, ceilf@PLT ; S390X-NEXT: ler %f2, %f9 -; S390X-NEXT: ler %f4, %f8 -; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload -; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 288(%r15) +; S390X-NEXT: ler %f4, %f10 +; S390X-NEXT: ld %f8, 176(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f10, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 296(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_ceil_v3f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI105_0 -; SZ13-NEXT: lde %f0, 0(%r1) -; SZ13-NEXT: larl %r1, .LCPI105_1 -; SZ13-NEXT: lde %f2, 0(%r1) -; SZ13-NEXT: vgmf %v1, 2, 9 -; SZ13-NEXT: fiebra %f0, 6, %f0, 4 +; SZ13-NEXT: vl %v0, 0(%r2), 4 +; SZ13-NEXT: vrepf %v1, %v0, 2 +; SZ13-NEXT: vrepf %v2, %v0, 1 ; SZ13-NEXT: fiebra %f1, 6, %f1, 4 ; SZ13-NEXT: fiebra %f2, 6, %f2, 4 -; SZ13-NEXT: vmrhf %v1, %v1, %v2 -; SZ13-NEXT: vrepf %v0, %v0, 0 -; SZ13-NEXT: vmrhg %v24, %v1, %v0 +; SZ13-NEXT: fiebra %f0, 6, %f0, 4 +; SZ13-NEXT: vmrhf %v0, %v0, %v2 +; SZ13-NEXT: vrepf %v1, %v1, 0 +; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: br %r14 entry: + %b = load <3 x float>, ptr %a %ceil = call <3 x float> @llvm.experimental.constrained.ceil.v3f32( - <3 x float> , + <3 x float> %b, metadata !"fpexcept.strict") #0 ret <3 x float> %ceil } @@ -5713,7 +5704,7 @@ entry: ret void } -define <1 x float> @constrained_vector_floor_v1f32() #0 { +define <1 x float> @constrained_vector_floor_v1f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_floor_v1f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) @@ -5721,111 +5712,114 @@ define <1 x float> @constrained_vector_floor_v1f32() #0 { ; S390X-NEXT: .cfi_offset %r15, -40 ; S390X-NEXT: aghi %r15, -160 ; S390X-NEXT: .cfi_def_cfa_offset 320 -; S390X-NEXT: larl %r1, .LCPI107_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: le %f0, 0(%r2) ; S390X-NEXT: brasl %r14, floorf@PLT ; S390X-NEXT: lmg %r14, %r15, 272(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_floor_v1f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: vgmf %v0, 2, 9 +; SZ13-NEXT: lde %f0, 0(%r2) ; SZ13-NEXT: fiebra %f0, 7, %f0, 4 ; SZ13-NEXT: vlr %v24, %v0 ; SZ13-NEXT: br %r14 entry: + %b = load <1 x float>, ptr %a %floor = call <1 x float> @llvm.experimental.constrained.floor.v1f32( - <1 x float> , + <1 x float> %b, metadata !"fpexcept.strict") #0 ret <1 x float> %floor } -define <2 x double> @constrained_vector_floor_v2f64() #0 { +define <2 x double> @constrained_vector_floor_v2f64(ptr %a) #0 { ; S390X-LABEL: constrained_vector_floor_v2f64: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -168 -; S390X-NEXT: .cfi_def_cfa_offset 328 -; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -176 +; S390X-NEXT: .cfi_def_cfa_offset 336 +; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 -; S390X-NEXT: larl %r1, .LCPI108_0 -; S390X-NEXT: ld %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f9, -176 +; S390X-NEXT: ld %f0, 8(%r2) +; S390X-NEXT: ld %f8, 0(%r2) ; S390X-NEXT: brasl %r14, floor@PLT -; S390X-NEXT: larl %r1, .LCPI108_1 -; S390X-NEXT: ld %f1, 0(%r1) -; S390X-NEXT: ldr %f8, %f0 -; S390X-NEXT: ldr %f0, %f1 +; S390X-NEXT: ldr %f9, %f0 +; S390X-NEXT: ldr %f0, %f8 ; S390X-NEXT: brasl %r14, floor@PLT -; S390X-NEXT: ldr %f2, %f8 -; S390X-NEXT: ld %f8, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 280(%r15) +; S390X-NEXT: ldr %f2, %f9 +; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 288(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_floor_v2f64: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI108_0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 +; SZ13-NEXT: vl %v0, 0(%r2), 3 ; SZ13-NEXT: vfidb %v24, %v0, 4, 7 ; SZ13-NEXT: br %r14 entry: + %b = load <2 x double>, ptr %a %floor = call <2 x double> @llvm.experimental.constrained.floor.v2f64( - <2 x double> , + <2 x double> %b, metadata !"fpexcept.strict") #0 ret <2 x double> %floor } -define <3 x float> @constrained_vector_floor_v3f32() #0 { +define <3 x float> @constrained_vector_floor_v3f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_floor_v3f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -176 -; S390X-NEXT: .cfi_def_cfa_offset 336 -; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill -; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -184 +; S390X-NEXT: .cfi_def_cfa_offset 344 +; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f10, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 ; S390X-NEXT: .cfi_offset %f9, -176 -; S390X-NEXT: larl %r1, .LCPI109_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f10, -184 +; S390X-NEXT: lg %r0, 0(%r2) +; S390X-NEXT: le %f0, 8(%r2) +; S390X-NEXT: risbg %r1, %r0, 0, 159, 0 +; S390X-NEXT: ldgr %f8, %r1 +; S390X-NEXT: sllg %r0, %r0, 32 +; S390X-NEXT: ldgr %f9, %r0 ; S390X-NEXT: brasl %r14, floorf@PLT -; S390X-NEXT: larl %r1, .LCPI109_1 -; S390X-NEXT: le %f1, 0(%r1) -; S390X-NEXT: ler %f8, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f10, %f0 +; S390X-NEXT: ler %f0, %f9 ; S390X-NEXT: brasl %r14, floorf@PLT -; S390X-NEXT: larl %r1, .LCPI109_2 -; S390X-NEXT: le %f1, 0(%r1) ; S390X-NEXT: ler %f9, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f0, %f8 ; S390X-NEXT: brasl %r14, floorf@PLT ; S390X-NEXT: ler %f2, %f9 -; S390X-NEXT: ler %f4, %f8 -; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload -; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 288(%r15) +; S390X-NEXT: ler %f4, %f10 +; S390X-NEXT: ld %f8, 176(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f10, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 296(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_floor_v3f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI109_0 -; SZ13-NEXT: lde %f0, 0(%r1) -; SZ13-NEXT: larl %r1, .LCPI109_1 -; SZ13-NEXT: lde %f2, 0(%r1) -; SZ13-NEXT: vgmf %v1, 2, 9 -; SZ13-NEXT: fiebra %f0, 7, %f0, 4 +; SZ13-NEXT: vl %v0, 0(%r2), 4 +; SZ13-NEXT: vrepf %v1, %v0, 2 +; SZ13-NEXT: vrepf %v2, %v0, 1 ; SZ13-NEXT: fiebra %f1, 7, %f1, 4 ; SZ13-NEXT: fiebra %f2, 7, %f2, 4 -; SZ13-NEXT: vmrhf %v1, %v1, %v2 -; SZ13-NEXT: vrepf %v0, %v0, 0 -; SZ13-NEXT: vmrhg %v24, %v1, %v0 +; SZ13-NEXT: fiebra %f0, 7, %f0, 4 +; SZ13-NEXT: vmrhf %v0, %v0, %v2 +; SZ13-NEXT: vrepf %v1, %v1, 0 +; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: br %r14 entry: + %b = load <3 x float>, ptr %a %floor = call <3 x float> @llvm.experimental.constrained.floor.v3f32( - <3 x float> , + <3 x float> %b, metadata !"fpexcept.strict") #0 ret <3 x float> %floor } @@ -5883,7 +5877,7 @@ entry: ret void } -define <1 x float> @constrained_vector_round_v1f32() #0 { +define <1 x float> @constrained_vector_round_v1f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_round_v1f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) @@ -5891,110 +5885,113 @@ define <1 x float> @constrained_vector_round_v1f32() #0 { ; S390X-NEXT: .cfi_offset %r15, -40 ; S390X-NEXT: aghi %r15, -160 ; S390X-NEXT: .cfi_def_cfa_offset 320 -; S390X-NEXT: larl %r1, .LCPI111_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: le %f0, 0(%r2) ; S390X-NEXT: brasl %r14, roundf@PLT ; S390X-NEXT: lmg %r14, %r15, 272(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_round_v1f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: vgmf %v0, 2, 9 +; SZ13-NEXT: lde %f0, 0(%r2) ; SZ13-NEXT: fiebra %f0, 1, %f0, 4 ; SZ13-NEXT: vlr %v24, %v0 ; SZ13-NEXT: br %r14 entry: + %b = load <1 x float>, ptr %a %round = call <1 x float> @llvm.experimental.constrained.round.v1f32( - <1 x float> , + <1 x float> %b, metadata !"fpexcept.strict") #0 ret <1 x float> %round } -define <2 x double> @constrained_vector_round_v2f64() #0 { +define <2 x double> @constrained_vector_round_v2f64(ptr %a) #0 { ; S390X-LABEL: constrained_vector_round_v2f64: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -168 -; S390X-NEXT: .cfi_def_cfa_offset 328 -; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -176 +; S390X-NEXT: .cfi_def_cfa_offset 336 +; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 -; S390X-NEXT: larl %r1, .LCPI112_0 -; S390X-NEXT: ld %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f9, -176 +; S390X-NEXT: ld %f0, 8(%r2) +; S390X-NEXT: ld %f8, 0(%r2) ; S390X-NEXT: brasl %r14, round@PLT -; S390X-NEXT: larl %r1, .LCPI112_1 -; S390X-NEXT: ld %f1, 0(%r1) -; S390X-NEXT: ldr %f8, %f0 -; S390X-NEXT: ldr %f0, %f1 +; S390X-NEXT: ldr %f9, %f0 +; S390X-NEXT: ldr %f0, %f8 ; S390X-NEXT: brasl %r14, round@PLT -; S390X-NEXT: ldr %f2, %f8 -; S390X-NEXT: ld %f8, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 280(%r15) +; S390X-NEXT: ldr %f2, %f9 +; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 288(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_round_v2f64: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI112_0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 +; SZ13-NEXT: vl %v0, 0(%r2), 3 ; SZ13-NEXT: vfidb %v24, %v0, 4, 1 ; SZ13-NEXT: br %r14 entry: + %b = load <2 x double>, ptr %a %round = call <2 x double> @llvm.experimental.constrained.round.v2f64( - <2 x double> , + <2 x double> %b, metadata !"fpexcept.strict") #0 ret <2 x double> %round } -define <3 x float> @constrained_vector_round_v3f32() #0 { +define <3 x float> @constrained_vector_round_v3f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_round_v3f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -176 -; S390X-NEXT: .cfi_def_cfa_offset 336 -; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill -; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -184 +; S390X-NEXT: .cfi_def_cfa_offset 344 +; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f10, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 ; S390X-NEXT: .cfi_offset %f9, -176 -; S390X-NEXT: larl %r1, .LCPI113_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f10, -184 +; S390X-NEXT: lg %r0, 0(%r2) +; S390X-NEXT: le %f0, 8(%r2) +; S390X-NEXT: risbg %r1, %r0, 0, 159, 0 +; S390X-NEXT: ldgr %f8, %r1 +; S390X-NEXT: sllg %r0, %r0, 32 +; S390X-NEXT: ldgr %f9, %r0 ; S390X-NEXT: brasl %r14, roundf@PLT -; S390X-NEXT: larl %r1, .LCPI113_1 -; S390X-NEXT: le %f1, 0(%r1) -; S390X-NEXT: ler %f8, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f10, %f0 +; S390X-NEXT: ler %f0, %f9 ; S390X-NEXT: brasl %r14, roundf@PLT -; S390X-NEXT: larl %r1, .LCPI113_2 -; S390X-NEXT: le %f1, 0(%r1) ; S390X-NEXT: ler %f9, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f0, %f8 ; S390X-NEXT: brasl %r14, roundf@PLT ; S390X-NEXT: ler %f2, %f9 -; S390X-NEXT: ler %f4, %f8 -; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload -; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 288(%r15) +; S390X-NEXT: ler %f4, %f10 +; S390X-NEXT: ld %f8, 176(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f10, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 296(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_round_v3f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI113_0 -; SZ13-NEXT: lde %f0, 0(%r1) -; SZ13-NEXT: larl %r1, .LCPI113_1 -; SZ13-NEXT: lde %f2, 0(%r1) -; SZ13-NEXT: vgmf %v1, 2, 9 -; SZ13-NEXT: fiebra %f0, 1, %f0, 4 +; SZ13-NEXT: vl %v0, 0(%r2), 4 +; SZ13-NEXT: vrepf %v1, %v0, 2 +; SZ13-NEXT: vrepf %v2, %v0, 1 ; SZ13-NEXT: fiebra %f1, 1, %f1, 4 ; SZ13-NEXT: fiebra %f2, 1, %f2, 4 -; SZ13-NEXT: vmrhf %v1, %v1, %v2 -; SZ13-NEXT: vrepf %v0, %v0, 0 -; SZ13-NEXT: vmrhg %v24, %v1, %v0 +; SZ13-NEXT: fiebra %f0, 1, %f0, 4 +; SZ13-NEXT: vmrhf %v0, %v0, %v2 +; SZ13-NEXT: vrepf %v1, %v1, 0 +; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: br %r14 entry: + %b = load <3 x float>, ptr %a %round = call <3 x float> @llvm.experimental.constrained.round.v3f32( - <3 x float> , + <3 x float> %b, metadata !"fpexcept.strict") #0 ret <3 x float> %round } @@ -6053,7 +6050,7 @@ entry: ret void } -define <1 x float> @constrained_vector_trunc_v1f32() #0 { +define <1 x float> @constrained_vector_trunc_v1f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_trunc_v1f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) @@ -6061,110 +6058,113 @@ define <1 x float> @constrained_vector_trunc_v1f32() #0 { ; S390X-NEXT: .cfi_offset %r15, -40 ; S390X-NEXT: aghi %r15, -160 ; S390X-NEXT: .cfi_def_cfa_offset 320 -; S390X-NEXT: larl %r1, .LCPI115_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: le %f0, 0(%r2) ; S390X-NEXT: brasl %r14, truncf@PLT ; S390X-NEXT: lmg %r14, %r15, 272(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_trunc_v1f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: vgmf %v0, 2, 9 +; SZ13-NEXT: lde %f0, 0(%r2) ; SZ13-NEXT: fiebra %f0, 5, %f0, 4 ; SZ13-NEXT: vlr %v24, %v0 ; SZ13-NEXT: br %r14 entry: + %b = load <1 x float>, ptr %a %trunc = call <1 x float> @llvm.experimental.constrained.trunc.v1f32( - <1 x float> , + <1 x float> %b, metadata !"fpexcept.strict") #0 ret <1 x float> %trunc } -define <2 x double> @constrained_vector_trunc_v2f64() #0 { +define <2 x double> @constrained_vector_trunc_v2f64(ptr %a) #0 { ; S390X-LABEL: constrained_vector_trunc_v2f64: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -168 -; S390X-NEXT: .cfi_def_cfa_offset 328 -; S390X-NEXT: std %f8, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -176 +; S390X-NEXT: .cfi_def_cfa_offset 336 +; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 -; S390X-NEXT: larl %r1, .LCPI116_0 -; S390X-NEXT: ld %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f9, -176 +; S390X-NEXT: ld %f0, 8(%r2) +; S390X-NEXT: ld %f8, 0(%r2) ; S390X-NEXT: brasl %r14, trunc@PLT -; S390X-NEXT: larl %r1, .LCPI116_1 -; S390X-NEXT: ld %f1, 0(%r1) -; S390X-NEXT: ldr %f8, %f0 -; S390X-NEXT: ldr %f0, %f1 +; S390X-NEXT: ldr %f9, %f0 +; S390X-NEXT: ldr %f0, %f8 ; S390X-NEXT: brasl %r14, trunc@PLT -; S390X-NEXT: ldr %f2, %f8 -; S390X-NEXT: ld %f8, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 280(%r15) +; S390X-NEXT: ldr %f2, %f9 +; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 288(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_trunc_v2f64: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI116_0 -; SZ13-NEXT: vl %v0, 0(%r1), 3 +; SZ13-NEXT: vl %v0, 0(%r2), 3 ; SZ13-NEXT: vfidb %v24, %v0, 4, 5 ; SZ13-NEXT: br %r14 entry: + %b = load <2 x double>, ptr %a %trunc = call <2 x double> @llvm.experimental.constrained.trunc.v2f64( - <2 x double> , + <2 x double> %b, metadata !"fpexcept.strict") #0 ret <2 x double> %trunc } -define <3 x float> @constrained_vector_trunc_v3f32() #0 { +define <3 x float> @constrained_vector_trunc_v3f32(ptr %a) #0 { ; S390X-LABEL: constrained_vector_trunc_v3f32: ; S390X: # %bb.0: # %entry ; S390X-NEXT: stmg %r14, %r15, 112(%r15) ; S390X-NEXT: .cfi_offset %r14, -48 ; S390X-NEXT: .cfi_offset %r15, -40 -; S390X-NEXT: aghi %r15, -176 -; S390X-NEXT: .cfi_def_cfa_offset 336 -; S390X-NEXT: std %f8, 168(%r15) # 8-byte Folded Spill -; S390X-NEXT: std %f9, 160(%r15) # 8-byte Folded Spill +; S390X-NEXT: aghi %r15, -184 +; S390X-NEXT: .cfi_def_cfa_offset 344 +; S390X-NEXT: std %f8, 176(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f9, 168(%r15) # 8-byte Folded Spill +; S390X-NEXT: std %f10, 160(%r15) # 8-byte Folded Spill ; S390X-NEXT: .cfi_offset %f8, -168 ; S390X-NEXT: .cfi_offset %f9, -176 -; S390X-NEXT: larl %r1, .LCPI117_0 -; S390X-NEXT: le %f0, 0(%r1) +; S390X-NEXT: .cfi_offset %f10, -184 +; S390X-NEXT: lg %r0, 0(%r2) +; S390X-NEXT: le %f0, 8(%r2) +; S390X-NEXT: risbg %r1, %r0, 0, 159, 0 +; S390X-NEXT: ldgr %f8, %r1 +; S390X-NEXT: sllg %r0, %r0, 32 +; S390X-NEXT: ldgr %f9, %r0 ; S390X-NEXT: brasl %r14, truncf@PLT -; S390X-NEXT: larl %r1, .LCPI117_1 -; S390X-NEXT: le %f1, 0(%r1) -; S390X-NEXT: ler %f8, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f10, %f0 +; S390X-NEXT: ler %f0, %f9 ; S390X-NEXT: brasl %r14, truncf@PLT -; S390X-NEXT: larl %r1, .LCPI117_2 -; S390X-NEXT: le %f1, 0(%r1) ; S390X-NEXT: ler %f9, %f0 -; S390X-NEXT: ler %f0, %f1 +; S390X-NEXT: ler %f0, %f8 ; S390X-NEXT: brasl %r14, truncf@PLT ; S390X-NEXT: ler %f2, %f9 -; S390X-NEXT: ler %f4, %f8 -; S390X-NEXT: ld %f8, 168(%r15) # 8-byte Folded Reload -; S390X-NEXT: ld %f9, 160(%r15) # 8-byte Folded Reload -; S390X-NEXT: lmg %r14, %r15, 288(%r15) +; S390X-NEXT: ler %f4, %f10 +; S390X-NEXT: ld %f8, 176(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f9, 168(%r15) # 8-byte Folded Reload +; S390X-NEXT: ld %f10, 160(%r15) # 8-byte Folded Reload +; S390X-NEXT: lmg %r14, %r15, 296(%r15) ; S390X-NEXT: br %r14 ; ; SZ13-LABEL: constrained_vector_trunc_v3f32: ; SZ13: # %bb.0: # %entry -; SZ13-NEXT: larl %r1, .LCPI117_0 -; SZ13-NEXT: lde %f0, 0(%r1) -; SZ13-NEXT: larl %r1, .LCPI117_1 -; SZ13-NEXT: lde %f2, 0(%r1) -; SZ13-NEXT: vgmf %v1, 2, 9 -; SZ13-NEXT: fiebra %f0, 5, %f0, 4 +; SZ13-NEXT: vl %v0, 0(%r2), 4 +; SZ13-NEXT: vrepf %v1, %v0, 2 +; SZ13-NEXT: vrepf %v2, %v0, 1 ; SZ13-NEXT: fiebra %f1, 5, %f1, 4 ; SZ13-NEXT: fiebra %f2, 5, %f2, 4 -; SZ13-NEXT: vmrhf %v1, %v1, %v2 -; SZ13-NEXT: vrepf %v0, %v0, 0 -; SZ13-NEXT: vmrhg %v24, %v1, %v0 +; SZ13-NEXT: fiebra %f0, 5, %f0, 4 +; SZ13-NEXT: vmrhf %v0, %v0, %v2 +; SZ13-NEXT: vrepf %v1, %v1, 0 +; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: br %r14 entry: + %b = load <3 x float>, ptr %a %trunc = call <3 x float> @llvm.experimental.constrained.trunc.v3f32( - <3 x float> , + <3 x float> %b, metadata !"fpexcept.strict") #0 ret <3 x float> %trunc } diff --git a/llvm/test/CodeGen/WinEH/wineh-dynamic-alloca.ll b/llvm/test/CodeGen/WinEH/wineh-dynamic-alloca.ll new file mode 100644 index 0000000000000..aee1838445c56 --- /dev/null +++ b/llvm/test/CodeGen/WinEH/wineh-dynamic-alloca.ll @@ -0,0 +1,95 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc < %s | FileCheck %s +target datalayout = "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32-a:0:32-S32" +target triple = "i386-pc-windows-msvc" + +%struct.Foo = type { i32, i32 } + +@bar = external global i1 + +define dso_local noundef i32 @foo() local_unnamed_addr #0 personality ptr @__CxxFrameHandler3 { +; CHECK-LABEL: foo: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: pushl %ebp +; CHECK-NEXT: movl %esp, %ebp +; CHECK-NEXT: pushl %ebx +; CHECK-NEXT: pushl %edi +; CHECK-NEXT: pushl %esi +; CHECK-NEXT: subl $16, %esp +; CHECK-NEXT: movl %esp, -28(%ebp) +; CHECK-NEXT: movl $-1, -16(%ebp) +; CHECK-NEXT: leal -24(%ebp), %eax +; CHECK-NEXT: movl $___ehhandler$foo, -20(%ebp) +; CHECK-NEXT: movl %fs:0, %ecx +; CHECK-NEXT: movl %ecx, -24(%ebp) +; CHECK-NEXT: movl %eax, %fs:0 +; CHECK-NEXT: cmpb $1, _bar +; CHECK-NEXT: je LBB0_1 +; CHECK-NEXT: LBB0_5: # %exit +; CHECK-NEXT: $ehgcr_0_5: +; CHECK-NEXT: movl -24(%ebp), %eax +; CHECK-NEXT: movl %eax, %fs:0 +; CHECK-NEXT: xorl %eax, %eax +; CHECK-NEXT: leal -12(%ebp), %esp +; CHECK-NEXT: popl %esi +; CHECK-NEXT: popl %edi +; CHECK-NEXT: popl %ebx +; CHECK-NEXT: popl %ebp +; CHECK-NEXT: retl +; CHECK-NEXT: LBB0_1: # %if.then +; CHECK-NEXT: pushl %eax +; CHECK-NEXT: pushl %eax +; CHECK-NEXT: movl %esp, %eax +; CHECK-NEXT: movl %esp, -28(%ebp) +; CHECK-NEXT: movl $123, (%eax) +; CHECK-NEXT: movl $0, -16(%ebp) +; CHECK-NEXT: calll _alwaysthrows +; CHECK-NEXT: # %bb.4: # %unreachable.i +; CHECK-NEXT: LBB0_3: # Block address taken +; CHECK-NEXT: # %catch.i +; CHECK-NEXT: addl $12, %ebp +; CHECK-NEXT: jmp LBB0_5 +; CHECK-NEXT: .def "?catch$2@?0?foo@4HA"; +; CHECK-NEXT: .scl 3; +; CHECK-NEXT: .type 32; +; CHECK-NEXT: .endef +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: "?catch$2@?0?foo@4HA": +; CHECK-NEXT: LBB0_2: # %catch.i +; CHECK-NEXT: pushl %ebp +; CHECK-NEXT: addl $12, %ebp +; CHECK-NEXT: movl %esp, -28(%ebp) +; CHECK-NEXT: movl $LBB0_3, %eax +; CHECK-NEXT: popl %ebp +; CHECK-NEXT: retl # CATCHRET +; CHECK-NEXT: Lfunc_end0: +entry: + %cmp = load i1, ptr @bar + br i1 %cmp, label %if.then, label %exit + +if.then: ; preds = %entry + %foo = alloca <{ %struct.Foo }>, align 4 + store i32 123, ptr %foo, align 4 + invoke void @alwaysthrows() #1 + to label %unreachable.i unwind label %catch.dispatch.i + +catch.dispatch.i: ; preds = %if.then + %3 = catchswitch within none [label %catch.i] unwind to caller + +catch.i: ; preds = %catch.dispatch.i + %4 = catchpad within %3 [ptr null, i32 64, ptr null] + catchret from %4 to label %exit + +unreachable.i: ; preds = %if.then + unreachable + +exit: ; preds = %entry, %catch.i + ret i32 0 +} + +declare dso_local i32 @__CxxFrameHandler3(...) + +declare dso_local void @alwaysthrows() local_unnamed_addr + +attributes #0 = { norecurse "min-legal-vector-width"="0" "target-cpu"="pentium4" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { noreturn } diff --git a/llvm/test/CodeGen/WinEH/wineh-inlined-inalloca.ll b/llvm/test/CodeGen/WinEH/wineh-inlined-inalloca.ll new file mode 100644 index 0000000000000..87f6d000e4b58 --- /dev/null +++ b/llvm/test/CodeGen/WinEH/wineh-inlined-inalloca.ll @@ -0,0 +1,90 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc < %s | FileCheck %s +target datalayout = "e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32-a:0:32-S32" +target triple = "i386-pc-windows-msvc" + +%struct.Foo = type { i32, i32 } + +define dso_local noundef i32 @foo() local_unnamed_addr #0 personality ptr @__CxxFrameHandler3 { +; CHECK-LABEL: foo: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: pushl %ebp +; CHECK-NEXT: movl %esp, %ebp +; CHECK-NEXT: pushl %ebx +; CHECK-NEXT: pushl %edi +; CHECK-NEXT: pushl %esi +; CHECK-NEXT: subl $16, %esp +; CHECK-NEXT: movl %esp, -28(%ebp) +; CHECK-NEXT: movl $-1, -16(%ebp) +; CHECK-NEXT: leal -24(%ebp), %eax +; CHECK-NEXT: movl $___ehhandler$foo, -20(%ebp) +; CHECK-NEXT: movl %fs:0, %ecx +; CHECK-NEXT: movl %ecx, -24(%ebp) +; CHECK-NEXT: movl %eax, %fs:0 +; CHECK-NEXT: pushl %eax +; CHECK-NEXT: pushl %eax +; CHECK-NEXT: movl %esp, %ecx +; CHECK-NEXT: movl %esp, -28(%ebp) +; CHECK-NEXT: movl $123, (%ecx) +; CHECK-NEXT: calll _bar +; CHECK-NEXT: movl $0, -16(%ebp) +; CHECK-NEXT: calll _alwaysthrows +; CHECK-NEXT: # %bb.3: # %unreachable.i +; CHECK-NEXT: LBB0_2: # Block address taken +; CHECK-NEXT: # %catch.i +; CHECK-NEXT: addl $12, %ebp +; CHECK-NEXT: jmp LBB0_4 +; CHECK-NEXT: LBB0_4: # %exit +; CHECK-NEXT: $ehgcr_0_4: +; CHECK-NEXT: movl -24(%ebp), %eax +; CHECK-NEXT: movl %eax, %fs:0 +; CHECK-NEXT: xorl %eax, %eax +; CHECK-NEXT: leal -12(%ebp), %esp +; CHECK-NEXT: popl %esi +; CHECK-NEXT: popl %edi +; CHECK-NEXT: popl %ebx +; CHECK-NEXT: popl %ebp +; CHECK-NEXT: retl +; CHECK-NEXT: .def "?catch$1@?0?foo@4HA"; +; CHECK-NEXT: .scl 3; +; CHECK-NEXT: .type 32; +; CHECK-NEXT: .endef +; CHECK-NEXT: .p2align 4 +; CHECK-NEXT: "?catch$1@?0?foo@4HA": +; CHECK-NEXT: LBB0_1: # %catch.i +; CHECK-NEXT: pushl %ebp +; CHECK-NEXT: addl $12, %ebp +; CHECK-NEXT: movl %esp, -28(%ebp) +; CHECK-NEXT: movl $LBB0_2, %eax +; CHECK-NEXT: popl %ebp +; CHECK-NEXT: retl # CATCHRET +; CHECK-NEXT: Lfunc_end0: +entry: + %argmem = alloca inalloca <{ %struct.Foo }>, align 4 + store i32 123, ptr %argmem, align 4 + call x86_thiscallcc void @bar(ptr noundef nonnull align 4 dereferenceable(8) %argmem) + invoke void @alwaysthrows() #1 + to label %unreachable.i unwind label %catch.dispatch.i + +catch.dispatch.i: ; preds = %entry + %3 = catchswitch within none [label %catch.i] unwind to caller + +catch.i: ; preds = %catch.dispatch.i + %4 = catchpad within %3 [ptr null, i32 64, ptr null] + catchret from %4 to label %exit + +unreachable.i: ; preds = %entry + unreachable + +exit: ; preds = %catch.i + ret i32 0 +} + +declare dso_local x86_thiscallcc void @bar(ptr noundef nonnull align 4 dereferenceable(8) %this) local_unnamed_addr + +declare dso_local i32 @__CxxFrameHandler3(...) + +declare dso_local void @alwaysthrows() local_unnamed_addr + +attributes #0 = { norecurse "min-legal-vector-width"="0" "target-cpu"="pentium4" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #1 = { noreturn } diff --git a/llvm/test/CodeGen/X86/apx/imulzu.ll b/llvm/test/CodeGen/X86/apx/imulzu.ll new file mode 100644 index 0000000000000..9a4a63750a1db --- /dev/null +++ b/llvm/test/CodeGen/X86/apx/imulzu.ll @@ -0,0 +1,226 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc < %s -mtriple=x86_64-pc-linux-gnu -mattr=+zu | FileCheck %s --check-prefixes=CHECK,ZU +; RUN: llc < %s -mtriple=x86_64-pc-linux-gnu | FileCheck %s --check-prefixes=CHECK,NOZU + +; Test generation of 16b imulzu when -mattr=+zu is specified. +; The mulzu_* tests check for basic generation, which is limited to cases where a +; zero-extend of the result can be folded into imulzu. +; The remaining tests are modifications of selected test/CodeGen/X86/imul.ll tests with +; 16b multiplies, to check that common strength reductions in ISel are still performed +; when -mattr=+zu is in effect. +; +; FIXME: several cases from imul.ll covering DAG combines, in particular those using LEA, +; are not ported as X86's IsDesirableToPromoteOp has no way to accurately identify when +; promotion will permit a better sequence than an unpromoted imulzu. +; These cases should be added when they are implemented. + +define i32 @mulzu_16_32(i16 %A) { +; ZU-LABEL: mulzu_16_32: +; ZU: # %bb.0: +; ZU-NEXT: imulzuw $1234, %di, %ax # imm = 0x4D2 +; ZU-NEXT: retq +; +; NOZU-LABEL: mulzu_16_32: +; NOZU: # %bb.0: +; NOZU-NEXT: imull $1234, %edi, %eax # imm = 0x4D2 +; NOZU-NEXT: movzwl %ax, %eax +; NOZU-NEXT: retq + %mul = mul i16 %A, 1234 + %r = zext i16 %mul to i32 + ret i32 %r +} + +define i64 @mulzu_16_64(i16 %A) { +; ZU-LABEL: mulzu_16_64: +; ZU: # %bb.0: +; ZU-NEXT: imulzuw $1234, %di, %ax # imm = 0x4D2 +; ZU-NEXT: retq +; +; NOZU-LABEL: mulzu_16_64: +; NOZU: # %bb.0: +; NOZU-NEXT: imull $1234, %edi, %eax # imm = 0x4D2 +; NOZU-NEXT: movzwl %ax, %eax +; NOZU-NEXT: retq + %mul = mul i16 %A, 1234 + %r = zext i16 %mul to i64 + ret i64 %r +} + +define i32 @mulzu_16_32_mem(ptr %P) { +; ZU-LABEL: mulzu_16_32_mem: +; ZU: # %bb.0: +; ZU-NEXT: imulzuw $1234, (%rdi), %ax # imm = 0x4D2 +; ZU-NEXT: retq +; +; NOZU-LABEL: mulzu_16_32_mem: +; NOZU: # %bb.0: +; NOZU-NEXT: movzwl (%rdi), %eax +; NOZU-NEXT: imull $1234, %eax, %eax # imm = 0x4D2 +; NOZU-NEXT: movzwl %ax, %eax +; NOZU-NEXT: retq + %gep = getelementptr i16, ptr %P, i64 0 + %A = load i16, ptr %gep + %mul = mul i16 %A, 1234 + %r = zext i16 %mul to i32 + ret i32 %r +} + +define i64 @mulzu_16_64_mem(ptr %P) { +; ZU-LABEL: mulzu_16_64_mem: +; ZU: # %bb.0: +; ZU-NEXT: imulzuw $1234, (%rdi), %ax # imm = 0x4D2 +; ZU-NEXT: retq +; +; NOZU-LABEL: mulzu_16_64_mem: +; NOZU: # %bb.0: +; NOZU-NEXT: movzwl (%rdi), %eax +; NOZU-NEXT: imull $1234, %eax, %eax # imm = 0x4D2 +; NOZU-NEXT: movzwl %ax, %eax +; NOZU-NEXT: retq + %gep = getelementptr i16, ptr %P, i64 0 + %A = load i16, ptr %gep + %mul = mul i16 %A, 1234 + %r = zext i16 %mul to i64 + ret i64 %r +} + +; The following mulzu cases check that imulzu is not +; generated in the absence of a single zext user. The ZU/NOZU +; cases should match. + +define void @mulzu_16_store(i16 %A, ptr %R) { +; CHECK-LABEL: mulzu_16_store: +; CHECK: # %bb.0: +; CHECK-NEXT: imull $1234, %edi, %eax # imm = 0x4D2 +; CHECK-NEXT: movw %ax, (%rsi) +; CHECK-NEXT: retq + %gep = getelementptr i16, ptr %R, i64 0 + %mul = mul i16 %A, 1234 + store i16 %mul, ptr %gep + ret void +} + +define i32 @mulzu_16_store_32(i16 %A, ptr %R) { +; CHECK-LABEL: mulzu_16_store_32: +; CHECK: # %bb.0: +; CHECK-NEXT: imull $1234, %edi, %eax # imm = 0x4D2 +; CHECK-NEXT: movw %ax, (%rsi) +; CHECK-NEXT: movzwl %ax, %eax +; CHECK-NEXT: retq + %gep = getelementptr i16, ptr %R, i64 0 + %mul = mul i16 %A, 1234 + store i16 %mul, ptr %gep + %r = zext i16 %mul to i32 + ret i32 %r +} + +define i64 @mulzu_16_store_64(i16 %A, ptr %R) { +; CHECK-LABEL: mulzu_16_store_64: +; CHECK: # %bb.0: +; CHECK-NEXT: imull $1234, %edi, %eax # imm = 0x4D2 +; CHECK-NEXT: movw %ax, (%rsi) +; CHECK-NEXT: movzwl %ax, %eax +; CHECK-NEXT: retq + %gep = getelementptr i16, ptr %R, i64 0 + %mul = mul i16 %A, 1234 + store i16 %mul, ptr %gep + %r = zext i16 %mul to i64 + ret i64 %r +} + +define i32 @mulzu_sext_16_32(i16 %A) { +; CHECK-LABEL: mulzu_sext_16_32: +; CHECK: # %bb.0: +; CHECK-NEXT: imull $1234, %edi, %eax # imm = 0x4D2 +; CHECK-NEXT: cwtl +; CHECK-NEXT: retq + %mul = mul i16 %A, 1234 + %r = sext i16 %mul to i32 + ret i32 %r +} + +define i64 @mulzu_sext_16_64(i16 %A) { +; CHECK-LABEL: mulzu_sext_16_64: +; CHECK: # %bb.0: +; CHECK-NEXT: imull $1234, %edi, %eax # imm = 0x4D2 +; CHECK-NEXT: movswq %ax, %rax +; CHECK-NEXT: retq + %mul = mul i16 %A, 1234 + %r = sext i16 %mul to i64 + ret i64 %r +} + +; Tests ported from test/CodeGen/X86/imul.ll follow from this point. +; The generated code, which strength-reduces multiplies by certain +; constants, should be unaffected by enabling zu. + +define i16 @mul4_16(i16 %A) { +; +; CHECK-LABEL: mul4_16: +; CHECK: # %bb.0: +; CHECK-NEXT: # kill: def $edi killed $edi def $rdi +; CHECK-NEXT: leal (,%rdi,4), %eax +; CHECK-NEXT: # kill: def $ax killed $ax killed $eax +; CHECK-NEXT: retq + %mul = mul i16 %A, 4 + ret i16 %mul +} + +define i16 @mul4096_16(i16 %A) { +; +; CHECK-LABEL: mul4096_16: +; CHECK: # %bb.0: +; CHECK-NEXT: movl %edi, %eax +; CHECK-NEXT: shll $12, %eax +; CHECK-NEXT: # kill: def $ax killed $ax killed $eax +; CHECK-NEXT: retq + %mul = mul i16 %A, 4096 + ret i16 %mul +} + +define i16 @mulmin4096_16(i16 %A) { +; +; CHECK-LABEL: mulmin4096_16: +; CHECK: # %bb.0: +; CHECK-NEXT: movl %edi, %eax +; CHECK-NEXT: shll $12, %eax +; CHECK-NEXT: negl %eax +; CHECK-NEXT: # kill: def $ax killed $ax killed $eax +; CHECK-NEXT: retq + %mul = mul i16 %A, -4096 + ret i16 %mul +} + +define i16 @mul4_16_minsize(i16 %A) minsize { +; +; CHECK-LABEL: mul4_16_minsize: +; CHECK: # %bb.0: +; CHECK-NEXT: # kill: def $edi killed $edi def $rdi +; CHECK-NEXT: leal (,%rdi,4), %eax +; CHECK-NEXT: # kill: def $ax killed $ax killed $eax +; CHECK-NEXT: retq + %mul = mul i16 %A, 4 + ret i16 %mul +} + +define i16 @mul0_16(i16 %A) { +; +; CHECK-LABEL: mul0_16: +; CHECK: # %bb.0: +; CHECK-NEXT: xorl %eax, %eax +; CHECK-NEXT: retq + %mul = mul i16 %A, 0 + ret i16 %mul +} + +define i16 @mul4294967295_16(i16 %A) { +; +; CHECK-LABEL: mul4294967295_16: +; CHECK: # %bb.0: +; CHECK-NEXT: movl %edi, %eax +; CHECK-NEXT: negl %eax +; CHECK-NEXT: # kill: def $ax killed $ax killed $eax +; CHECK-NEXT: retq + %mul = mul i16 %A, 4294967295 + ret i16 %mul +} diff --git a/llvm/test/CodeGen/X86/avx512-insert-extract.ll b/llvm/test/CodeGen/X86/avx512-insert-extract.ll index f2a197cca8ae5..1c4bfa8422d81 100644 --- a/llvm/test/CodeGen/X86/avx512-insert-extract.ll +++ b/llvm/test/CodeGen/X86/avx512-insert-extract.ll @@ -2159,30 +2159,11 @@ define i128 @test_insertelement_variable_v128i1(<128 x i8> %a, i8 %b, i32 %index define void @test_concat_v2i1(ptr %arg, ptr %arg1, ptr %arg2) nounwind { ; KNL-LABEL: test_concat_v2i1: ; KNL: ## %bb.0: -; KNL-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero -; KNL-NEXT: vcvtph2ps %xmm0, %xmm1 -; KNL-NEXT: vmovss {{.*#+}} xmm2 = [6.0E+0,0.0E+0,0.0E+0,0.0E+0] -; KNL-NEXT: vucomiss %xmm2, %xmm1 -; KNL-NEXT: setb %al -; KNL-NEXT: andl $1, %eax -; KNL-NEXT: kmovw %eax, %k0 -; KNL-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,1,1,1,4,5,6,7] -; KNL-NEXT: vcvtph2ps %xmm0, %xmm0 -; KNL-NEXT: vucomiss %xmm2, %xmm0 -; KNL-NEXT: setb %al -; KNL-NEXT: kmovw %eax, %k1 -; KNL-NEXT: kshiftlw $1, %k1, %k1 -; KNL-NEXT: korw %k1, %k0, %k0 -; KNL-NEXT: vxorps %xmm2, %xmm2, %xmm2 -; KNL-NEXT: vucomiss %xmm2, %xmm1 -; KNL-NEXT: seta %al -; KNL-NEXT: andl $1, %eax -; KNL-NEXT: kmovw %eax, %k1 -; KNL-NEXT: vucomiss %xmm2, %xmm0 -; KNL-NEXT: seta %al -; KNL-NEXT: kmovw %eax, %k2 -; KNL-NEXT: kshiftlw $1, %k2, %k2 -; KNL-NEXT: korw %k2, %k1, %k1 +; KNL-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero +; KNL-NEXT: vcvtph2ps %xmm0, %ymm0 +; KNL-NEXT: vcmpltps {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm0, %k0 +; KNL-NEXT: vxorps %xmm1, %xmm1, %xmm1 +; KNL-NEXT: vcmpltps %zmm0, %zmm1, %k1 ; KNL-NEXT: kandw %k1, %k0, %k1 ; KNL-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero ; KNL-NEXT: vpternlogd $255, %zmm1, %zmm1, %zmm1 {%k1} {z} @@ -2194,36 +2175,16 @@ define void @test_concat_v2i1(ptr %arg, ptr %arg1, ptr %arg2) nounwind { ; ; SKX-LABEL: test_concat_v2i1: ; SKX: ## %bb.0: -; SKX-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero -; SKX-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[1,1,1,1,4,5,6,7] -; SKX-NEXT: vcvtph2ps %xmm1, %xmm1 -; SKX-NEXT: vmovss {{.*#+}} xmm2 = [6.0E+0,0.0E+0,0.0E+0,0.0E+0] -; SKX-NEXT: vucomiss %xmm2, %xmm1 -; SKX-NEXT: setb %al -; SKX-NEXT: kmovd %eax, %k0 -; SKX-NEXT: kshiftlb $1, %k0, %k0 -; SKX-NEXT: vcvtph2ps %xmm0, %xmm0 -; SKX-NEXT: vucomiss %xmm2, %xmm0 -; SKX-NEXT: setb %al -; SKX-NEXT: kmovd %eax, %k1 -; SKX-NEXT: kshiftlb $7, %k1, %k1 -; SKX-NEXT: kshiftrb $7, %k1, %k1 -; SKX-NEXT: korw %k0, %k1, %k0 -; SKX-NEXT: vxorps %xmm2, %xmm2, %xmm2 -; SKX-NEXT: vucomiss %xmm2, %xmm1 -; SKX-NEXT: seta %al -; SKX-NEXT: kmovd %eax, %k1 -; SKX-NEXT: kshiftlb $1, %k1, %k1 -; SKX-NEXT: vucomiss %xmm2, %xmm0 -; SKX-NEXT: seta %al -; SKX-NEXT: kmovd %eax, %k2 -; SKX-NEXT: kshiftlb $7, %k2, %k2 -; SKX-NEXT: kshiftrb $7, %k2, %k2 -; SKX-NEXT: korw %k1, %k2, %k1 +; SKX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero +; SKX-NEXT: vcvtph2ps %xmm0, %ymm0 +; SKX-NEXT: vcmpltps {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm0, %k0 +; SKX-NEXT: vxorps %xmm1, %xmm1, %xmm1 +; SKX-NEXT: vcmpltps %ymm0, %ymm1, %k1 ; SKX-NEXT: kandw %k1, %k0, %k1 ; SKX-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero ; SKX-NEXT: vmovdqu16 %xmm0, %xmm0 {%k1} {z} ; SKX-NEXT: vmovd %xmm0, (%rdx) +; SKX-NEXT: vzeroupper ; SKX-NEXT: retq %tmp = load <2 x half>, ptr %arg, align 8 %tmp3 = fcmp fast olt <2 x half> %tmp, diff --git a/llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll b/llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll index ffbeeb19a4aeb..5078130f18077 100644 --- a/llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll +++ b/llvm/test/CodeGen/X86/avx512-shuffles/partial_permute.ll @@ -2540,9 +2540,9 @@ define <4 x i64> @test_masked_z_8xi64_to_4xi64_perm_mem_mask3(ptr %vp, <4 x i64> define <4 x i64> @test_masked_8xi64_to_4xi64_perm_mem_mask4(ptr %vp, <4 x i64> %vec2, <4 x i64> %mask) { ; CHECK-LABEL: test_masked_8xi64_to_4xi64_perm_mem_mask4: ; CHECK: # %bb.0: -; CHECK-NEXT: vmovdqa (%rdi), %ymm2 -; CHECK-NEXT: vpmovsxbq {{.*#+}} ymm3 = [0,4,6,1] -; CHECK-NEXT: vpermi2q 32(%rdi), %ymm2, %ymm3 +; CHECK-NEXT: vmovdqa 32(%rdi), %ymm2 +; CHECK-NEXT: vpmovsxbq {{.*#+}} ymm3 = [4,0,2,5] +; CHECK-NEXT: vpermi2q (%rdi), %ymm2, %ymm3 ; CHECK-NEXT: vptestnmq %ymm1, %ymm1, %k1 ; CHECK-NEXT: vmovdqa64 %ymm3, %ymm0 {%k1} ; CHECK-NEXT: retq @@ -2556,10 +2556,10 @@ define <4 x i64> @test_masked_8xi64_to_4xi64_perm_mem_mask4(ptr %vp, <4 x i64> % define <4 x i64> @test_masked_z_8xi64_to_4xi64_perm_mem_mask4(ptr %vp, <4 x i64> %mask) { ; CHECK-LABEL: test_masked_z_8xi64_to_4xi64_perm_mem_mask4: ; CHECK: # %bb.0: -; CHECK-NEXT: vmovdqa (%rdi), %ymm2 -; CHECK-NEXT: vpmovsxbq {{.*#+}} ymm1 = [0,4,6,1] +; CHECK-NEXT: vmovdqa 32(%rdi), %ymm2 +; CHECK-NEXT: vpmovsxbq {{.*#+}} ymm1 = [4,0,2,5] ; CHECK-NEXT: vptestnmq %ymm0, %ymm0, %k1 -; CHECK-NEXT: vpermi2q 32(%rdi), %ymm2, %ymm1 {%k1} {z} +; CHECK-NEXT: vpermi2q (%rdi), %ymm2, %ymm1 {%k1} {z} ; CHECK-NEXT: vmovdqa %ymm1, %ymm0 ; CHECK-NEXT: retq %vec = load <8 x i64>, ptr %vp @@ -3514,12 +3514,11 @@ define <8 x float> @test_masked_16xfloat_to_8xfloat_perm_mem_mask2(ptr %vp, <8 x ; CHECK-FAST-PERLANE-LABEL: test_masked_16xfloat_to_8xfloat_perm_mem_mask2: ; CHECK-FAST-PERLANE: # %bb.0: ; CHECK-FAST-PERLANE-NEXT: vmovaps (%rdi), %xmm2 -; CHECK-FAST-PERLANE-NEXT: vmovaps 32(%rdi), %ymm3 -; CHECK-FAST-PERLANE-NEXT: vmovaps {{.*#+}} ymm4 = [9,5,2,3,2,8,8,1] -; CHECK-FAST-PERLANE-NEXT: vpermi2ps %ymm2, %ymm3, %ymm4 +; CHECK-FAST-PERLANE-NEXT: vmovaps {{.*#+}} ymm3 = [1,13,10,11,10,0,0,9] +; CHECK-FAST-PERLANE-NEXT: vpermi2ps 32(%rdi), %ymm2, %ymm3 ; CHECK-FAST-PERLANE-NEXT: vxorps %xmm2, %xmm2, %xmm2 ; CHECK-FAST-PERLANE-NEXT: vcmpeqps %ymm2, %ymm1, %k1 -; CHECK-FAST-PERLANE-NEXT: vmovaps %ymm4, %ymm0 {%k1} +; CHECK-FAST-PERLANE-NEXT: vmovaps %ymm3, %ymm0 {%k1} ; CHECK-FAST-PERLANE-NEXT: retq %vec = load <16 x float>, ptr %vp %shuf = shufflevector <16 x float> %vec, <16 x float> undef, <8 x i32> @@ -3542,11 +3541,10 @@ define <8 x float> @test_masked_z_16xfloat_to_8xfloat_perm_mem_mask2(ptr %vp, <8 ; CHECK-FAST-PERLANE-LABEL: test_masked_z_16xfloat_to_8xfloat_perm_mem_mask2: ; CHECK-FAST-PERLANE: # %bb.0: ; CHECK-FAST-PERLANE-NEXT: vmovaps (%rdi), %xmm2 -; CHECK-FAST-PERLANE-NEXT: vmovaps 32(%rdi), %ymm3 -; CHECK-FAST-PERLANE-NEXT: vmovaps {{.*#+}} ymm1 = [9,5,2,3,2,8,8,1] -; CHECK-FAST-PERLANE-NEXT: vxorps %xmm4, %xmm4, %xmm4 -; CHECK-FAST-PERLANE-NEXT: vcmpeqps %ymm4, %ymm0, %k1 -; CHECK-FAST-PERLANE-NEXT: vpermi2ps %ymm2, %ymm3, %ymm1 {%k1} {z} +; CHECK-FAST-PERLANE-NEXT: vmovaps {{.*#+}} ymm1 = [1,13,10,11,10,0,0,9] +; CHECK-FAST-PERLANE-NEXT: vxorps %xmm3, %xmm3, %xmm3 +; CHECK-FAST-PERLANE-NEXT: vcmpeqps %ymm3, %ymm0, %k1 +; CHECK-FAST-PERLANE-NEXT: vpermi2ps 32(%rdi), %ymm2, %ymm1 {%k1} {z} ; CHECK-FAST-PERLANE-NEXT: vmovaps %ymm1, %ymm0 ; CHECK-FAST-PERLANE-NEXT: retq %vec = load <16 x float>, ptr %vp @@ -4398,9 +4396,9 @@ define <4 x double> @test_masked_z_8xdouble_to_4xdouble_perm_mem_mask0(ptr %vp, define <4 x double> @test_masked_8xdouble_to_4xdouble_perm_mem_mask1(ptr %vp, <4 x double> %vec2, <4 x double> %mask) { ; CHECK-FAST-LABEL: test_masked_8xdouble_to_4xdouble_perm_mem_mask1: ; CHECK-FAST: # %bb.0: -; CHECK-FAST-NEXT: vmovapd (%rdi), %ymm2 -; CHECK-FAST-NEXT: vmovapd {{.*#+}} ymm3 = [3,4,2,6] -; CHECK-FAST-NEXT: vpermi2pd 32(%rdi){1to4}, %ymm2, %ymm3 +; CHECK-FAST-NEXT: vbroadcastsd 32(%rdi), %ymm2 +; CHECK-FAST-NEXT: vmovapd {{.*#+}} ymm3 = [7,0,6,2] +; CHECK-FAST-NEXT: vpermi2pd (%rdi), %ymm2, %ymm3 ; CHECK-FAST-NEXT: vxorpd %xmm2, %xmm2, %xmm2 ; CHECK-FAST-NEXT: vcmpeqpd %ymm2, %ymm1, %k1 ; CHECK-FAST-NEXT: vmovapd %ymm3, %ymm0 {%k1} @@ -4423,11 +4421,11 @@ define <4 x double> @test_masked_8xdouble_to_4xdouble_perm_mem_mask1(ptr %vp, <4 define <4 x double> @test_masked_z_8xdouble_to_4xdouble_perm_mem_mask1(ptr %vp, <4 x double> %mask) { ; CHECK-FAST-LABEL: test_masked_z_8xdouble_to_4xdouble_perm_mem_mask1: ; CHECK-FAST: # %bb.0: -; CHECK-FAST-NEXT: vmovapd (%rdi), %ymm2 -; CHECK-FAST-NEXT: vmovapd {{.*#+}} ymm1 = [3,4,2,6] +; CHECK-FAST-NEXT: vbroadcastsd 32(%rdi), %ymm2 +; CHECK-FAST-NEXT: vmovapd {{.*#+}} ymm1 = [7,0,6,2] ; CHECK-FAST-NEXT: vxorpd %xmm3, %xmm3, %xmm3 ; CHECK-FAST-NEXT: vcmpeqpd %ymm3, %ymm0, %k1 -; CHECK-FAST-NEXT: vpermi2pd 32(%rdi){1to4}, %ymm2, %ymm1 {%k1} {z} +; CHECK-FAST-NEXT: vpermi2pd (%rdi), %ymm2, %ymm1 {%k1} {z} ; CHECK-FAST-NEXT: vmovapd %ymm1, %ymm0 ; CHECK-FAST-NEXT: retq ; diff --git a/llvm/test/CodeGen/X86/avx512-vec-cmp.ll b/llvm/test/CodeGen/X86/avx512-vec-cmp.ll index 832e55a835525..24eb9b3715ed6 100644 --- a/llvm/test/CodeGen/X86/avx512-vec-cmp.ll +++ b/llvm/test/CodeGen/X86/avx512-vec-cmp.ll @@ -1441,88 +1441,44 @@ define <4 x i32> @zext_bool_logic(<4 x i64> %cond1, <4 x i64> %cond2, <4 x i32> define void @half_vec_compare(ptr %x, ptr %y) { ; KNL-LABEL: half_vec_compare: ; KNL: ## %bb.0: ## %entry -; KNL-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero -; KNL-NEXT: ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6e,0x07] -; KNL-NEXT: vpshuflw $85, %xmm0, %xmm1 ## encoding: [0xc5,0xfb,0x70,0xc8,0x55] -; KNL-NEXT: ## xmm1 = xmm0[1,1,1,1,4,5,6,7] -; KNL-NEXT: vcvtph2ps %xmm1, %xmm1 ## encoding: [0xc4,0xe2,0x79,0x13,0xc9] -; KNL-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0] -; KNL-NEXT: vxorps %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe8,0x57,0xd2] -; KNL-NEXT: vucomiss %xmm2, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xca] -; KNL-NEXT: movl $65535, %ecx ## encoding: [0xb9,0xff,0xff,0x00,0x00] -; KNL-NEXT: ## imm = 0xFFFF -; KNL-NEXT: movl $0, %edx ## encoding: [0xba,0x00,0x00,0x00,0x00] -; KNL-NEXT: cmovnel %ecx, %edx ## encoding: [0x0f,0x45,0xd1] -; KNL-NEXT: cmovpl %ecx, %edx ## encoding: [0x0f,0x4a,0xd1] -; KNL-NEXT: vcvtph2ps %xmm0, %xmm0 ## encoding: [0xc4,0xe2,0x79,0x13,0xc0] -; KNL-NEXT: vucomiss %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc2] -; KNL-NEXT: cmovnel %ecx, %eax ## encoding: [0x0f,0x45,0xc1] -; KNL-NEXT: cmovpl %ecx, %eax ## encoding: [0x0f,0x4a,0xc1] -; KNL-NEXT: vmovd %eax, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6e,0xc0] -; KNL-NEXT: vpinsrw $1, %edx, %xmm0, %xmm0 ## encoding: [0xc5,0xf9,0xc4,0xc2,0x01] -; KNL-NEXT: vpacksswb %xmm0, %xmm0, %xmm0 ## encoding: [0xc5,0xf9,0x63,0xc0] +; KNL-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero +; KNL-NEXT: ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07] +; KNL-NEXT: vcvtph2ps %xmm0, %ymm0 ## encoding: [0xc4,0xe2,0x7d,0x13,0xc0] +; KNL-NEXT: vxorps %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf0,0x57,0xc9] +; KNL-NEXT: vcmpneqps %ymm1, %ymm0, %ymm0 ## encoding: [0xc5,0xfc,0xc2,0xc1,0x04] +; KNL-NEXT: vpmovdb %zmm0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x48,0x31,0xc0] ; KNL-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0 ## encoding: [0xc5,0xf9,0xdb,0x05,A,A,A,A] ; KNL-NEXT: ## fixup A - offset: 4, value: {{\.?LCPI[0-9]+_[0-9]+}}-4, kind: reloc_riprel_4byte ; KNL-NEXT: vpextrw $0, %xmm0, (%rsi) ## encoding: [0xc4,0xe3,0x79,0x15,0x06,0x00] +; KNL-NEXT: vzeroupper ## encoding: [0xc5,0xf8,0x77] ; KNL-NEXT: retq ## encoding: [0xc3] ; ; AVX512BW-LABEL: half_vec_compare: ; AVX512BW: ## %bb.0: ## %entry -; AVX512BW-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero -; AVX512BW-NEXT: ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6e,0x07] -; AVX512BW-NEXT: vpshuflw $85, %xmm0, %xmm1 ## encoding: [0xc5,0xfb,0x70,0xc8,0x55] -; AVX512BW-NEXT: ## xmm1 = xmm0[1,1,1,1,4,5,6,7] -; AVX512BW-NEXT: vcvtph2ps %xmm1, %xmm1 ## encoding: [0xc4,0xe2,0x79,0x13,0xc9] -; AVX512BW-NEXT: xorl %eax, %eax ## encoding: [0x31,0xc0] -; AVX512BW-NEXT: vxorps %xmm2, %xmm2, %xmm2 ## encoding: [0xc5,0xe8,0x57,0xd2] -; AVX512BW-NEXT: vucomiss %xmm2, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xca] -; AVX512BW-NEXT: movl $65535, %ecx ## encoding: [0xb9,0xff,0xff,0x00,0x00] -; AVX512BW-NEXT: ## imm = 0xFFFF -; AVX512BW-NEXT: movl $0, %edx ## encoding: [0xba,0x00,0x00,0x00,0x00] -; AVX512BW-NEXT: cmovnel %ecx, %edx ## encoding: [0x0f,0x45,0xd1] -; AVX512BW-NEXT: cmovpl %ecx, %edx ## encoding: [0x0f,0x4a,0xd1] -; AVX512BW-NEXT: vcvtph2ps %xmm0, %xmm0 ## encoding: [0xc4,0xe2,0x79,0x13,0xc0] -; AVX512BW-NEXT: vucomiss %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc2] -; AVX512BW-NEXT: cmovnel %ecx, %eax ## encoding: [0x0f,0x45,0xc1] -; AVX512BW-NEXT: cmovpl %ecx, %eax ## encoding: [0x0f,0x4a,0xc1] -; AVX512BW-NEXT: vmovd %eax, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6e,0xc0] -; AVX512BW-NEXT: vpinsrw $1, %edx, %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0xc4,0xc2,0x01] -; AVX512BW-NEXT: vpacksswb %xmm0, %xmm0, %xmm0 ## encoding: [0xc5,0xf9,0x63,0xc0] +; AVX512BW-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero +; AVX512BW-NEXT: ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07] +; AVX512BW-NEXT: vcvtph2ps %xmm0, %ymm0 ## encoding: [0xc4,0xe2,0x7d,0x13,0xc0] +; AVX512BW-NEXT: vxorps %xmm1, %xmm1, %xmm1 ## encoding: [0xc5,0xf0,0x57,0xc9] +; AVX512BW-NEXT: vcmpneqps %ymm1, %ymm0, %ymm0 ## encoding: [0xc5,0xfc,0xc2,0xc1,0x04] +; AVX512BW-NEXT: vpmovdb %zmm0, %xmm0 ## encoding: [0x62,0xf2,0x7e,0x48,0x31,0xc0] ; AVX512BW-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0 ## encoding: [0xc5,0xf9,0xdb,0x05,A,A,A,A] ; AVX512BW-NEXT: ## fixup A - offset: 4, value: {{\.?LCPI[0-9]+_[0-9]+}}-4, kind: reloc_riprel_4byte ; AVX512BW-NEXT: vpextrw $0, %xmm0, (%rsi) ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x15,0x06,0x00] +; AVX512BW-NEXT: vzeroupper ## encoding: [0xc5,0xf8,0x77] ; AVX512BW-NEXT: retq ## encoding: [0xc3] ; ; SKX-LABEL: half_vec_compare: ; SKX: ## %bb.0: ## %entry -; SKX-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero -; SKX-NEXT: ## EVEX TO VEX Compression encoding: [0xc5,0xf9,0x6e,0x07] -; SKX-NEXT: vpshuflw $85, %xmm0, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xfb,0x70,0xc8,0x55] -; SKX-NEXT: ## xmm1 = xmm0[1,1,1,1,4,5,6,7] -; SKX-NEXT: vcvtph2ps %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x13,0xc9] -; SKX-NEXT: vxorps %xmm2, %xmm2, %xmm2 ## EVEX TO VEX Compression encoding: [0xc5,0xe8,0x57,0xd2] -; SKX-NEXT: vucomiss %xmm2, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xca] -; SKX-NEXT: setp %al ## encoding: [0x0f,0x9a,0xc0] -; SKX-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1] -; SKX-NEXT: orb %al, %cl ## encoding: [0x08,0xc1] -; SKX-NEXT: testb %cl, %cl ## encoding: [0x84,0xc9] -; SKX-NEXT: setne %al ## encoding: [0x0f,0x95,0xc0] -; SKX-NEXT: vcvtph2ps %xmm0, %xmm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x79,0x13,0xc0] -; SKX-NEXT: vucomiss %xmm2, %xmm0 ## EVEX TO VEX Compression encoding: [0xc5,0xf8,0x2e,0xc2] -; SKX-NEXT: setp %cl ## encoding: [0x0f,0x9a,0xc1] -; SKX-NEXT: setne %dl ## encoding: [0x0f,0x95,0xc2] -; SKX-NEXT: orb %cl, %dl ## encoding: [0x08,0xca] -; SKX-NEXT: testb %dl, %dl ## encoding: [0x84,0xd2] -; SKX-NEXT: setne %cl ## encoding: [0x0f,0x95,0xc1] -; SKX-NEXT: andl $1, %ecx ## encoding: [0x83,0xe1,0x01] -; SKX-NEXT: kmovw %ecx, %k0 ## encoding: [0xc5,0xf8,0x92,0xc1] -; SKX-NEXT: kmovd %eax, %k1 ## encoding: [0xc5,0xfb,0x92,0xc8] -; SKX-NEXT: kshiftlw $1, %k1, %k1 ## encoding: [0xc4,0xe3,0xf9,0x32,0xc9,0x01] -; SKX-NEXT: korw %k1, %k0, %k1 ## encoding: [0xc5,0xfc,0x45,0xc9] +; SKX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero +; SKX-NEXT: ## EVEX TO VEX Compression encoding: [0xc5,0xfa,0x10,0x07] +; SKX-NEXT: vcvtph2ps %xmm0, %ymm0 ## EVEX TO VEX Compression encoding: [0xc4,0xe2,0x7d,0x13,0xc0] +; SKX-NEXT: vxorps %xmm1, %xmm1, %xmm1 ## EVEX TO VEX Compression encoding: [0xc5,0xf0,0x57,0xc9] +; SKX-NEXT: vcmpneqps %ymm1, %ymm0, %k1 ## encoding: [0x62,0xf1,0x7c,0x28,0xc2,0xc9,0x04] ; SKX-NEXT: vmovdqu8 {{.*#+}} xmm0 {%k1} {z} = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] ; SKX-NEXT: ## encoding: [0x62,0xf1,0x7f,0x89,0x6f,0x05,A,A,A,A] ; SKX-NEXT: ## fixup A - offset: 6, value: {{\.?LCPI[0-9]+_[0-9]+}}-4, kind: reloc_riprel_4byte ; SKX-NEXT: vpextrw $0, %xmm0, (%rsi) ## EVEX TO VEX Compression encoding: [0xc4,0xe3,0x79,0x15,0x06,0x00] +; SKX-NEXT: vzeroupper ## encoding: [0xc5,0xf8,0x77] ; SKX-NEXT: retq ## encoding: [0xc3] entry: %0 = load <2 x half>, ptr %x diff --git a/llvm/test/CodeGen/X86/basic-block-address-map-pgo-features.ll b/llvm/test/CodeGen/X86/basic-block-address-map-pgo-features.ll index fca5aa046b03b..63779727ec72c 100644 --- a/llvm/test/CodeGen/X86/basic-block-address-map-pgo-features.ll +++ b/llvm/test/CodeGen/X86/basic-block-address-map-pgo-features.ll @@ -11,6 +11,10 @@ ; RUN: llc < %s -mtriple=x86_64 -function-sections -unique-section-names=true -basic-block-address-map -pgo-analysis-map=bb-freq | FileCheck %s --check-prefixes=CHECK,PGO-BBF,BBF-ONLY ; RUN: llc < %s -mtriple=x86_64 -function-sections -unique-section-names=true -basic-block-address-map -pgo-analysis-map=br-prob | FileCheck %s --check-prefixes=CHECK,PGO-BRP,BRP-ONLY +; RUN: llc < %s -mtriple=x86_64 -function-sections -unique-section-names=true -basic-block-address-map -pgo-analysis-map=func-entry-count -basic-block-address-map-skip-bb-entries | FileCheck %s --check-prefixes=SKIP-BB-ENTRIES +; RUN: not llc < %s -mtriple=x86_64 -function-sections -unique-section-names=true -basic-block-address-map -pgo-analysis-map=bb-freq -basic-block-address-map-skip-bb-entries 2>&1 | FileCheck %s --check-prefixes=SKIP-BB-ENTRIES-ERROR +; RUN: not llc < %s -mtriple=x86_64 -function-sections -unique-section-names=true -basic-block-address-map -pgo-analysis-map=br-prob -basic-block-address-map-skip-bb-entries 2>&1 | FileCheck %s --check-prefixes=SKIP-BB-ENTRIES-ERROR + ;; Verify that we emit an error if we try and specify values in addition to all/none ; RUN: not llc < %s -mtriple=x86_64 -basic-block-address-map -pgo-analysis-map=all,bb-freq ; RUN: not llc < %s -mtriple=x86_64 -basic-block-address-map -pgo-analysis-map=none,bb-freq @@ -134,3 +138,10 @@ declare i32 @__gxx_personality_v0(...) ; PGO-BRP-NEXT: .byte 5 # successor BB ID ; PGO-BRP-NEXT: .ascii "\200\200\200\200\b" # successor branch probability +; SKIP-BB-ENTRIES: .byte 17 # feature +; SKIP-BB-ENTRIES-NEXT: .quad .Lfunc_begin0 # function address +; SKIP-BB-ENTRIES-NEXT: .byte 6 # number of basic blocks +; SKIP-BB-ENTRIES-NEXT: .byte 100 # function entry count +; SKIP-BB-ENTRIES-NOT: # BB id + +; SKIP-BB-ENTRIES-ERROR: error: BB entries info is required for BBFreq and BrProb features diff --git a/llvm/test/CodeGen/X86/evex-to-vex-compress.mir b/llvm/test/CodeGen/X86/evex-to-vex-compress.mir index 2f587d789779c..452adf1d920b5 100644 --- a/llvm/test/CodeGen/X86/evex-to-vex-compress.mir +++ b/llvm/test/CodeGen/X86/evex-to-vex-compress.mir @@ -2309,21 +2309,21 @@ body: | ; CHECK: $xmm0 = VINSERTPSrri $xmm0, $xmm0, 1 $xmm0 = VINSERTPSZrri $xmm0, $xmm0, 1 ; CHECK: $xmm0 = VROUNDSDmi $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - $xmm0 = VRNDSCALESDZm $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + $xmm0 = VRNDSCALESDZrmi $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr ; CHECK: $xmm0 = VROUNDSDri $xmm0, $xmm1, 15, implicit $mxcsr - $xmm0 = VRNDSCALESDZr $xmm0, $xmm1, 15, implicit $mxcsr + $xmm0 = VRNDSCALESDZrri $xmm0, $xmm1, 15, implicit $mxcsr ; CHECK: $xmm0 = VROUNDSSmi $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - $xmm0 = VRNDSCALESSZm $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + $xmm0 = VRNDSCALESSZrmi $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr ; CHECK: $xmm0 = VROUNDSSri $xmm0, $xmm1, 15, implicit $mxcsr - $xmm0 = VRNDSCALESSZr $xmm0, $xmm1, 15, implicit $mxcsr + $xmm0 = VRNDSCALESSZrri $xmm0, $xmm1, 15, implicit $mxcsr ; CHECK: $xmm0 = VROUNDSDmi_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - $xmm0 = VRNDSCALESDZm_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + $xmm0 = VRNDSCALESDZrmi_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr ; CHECK: $xmm0 = VROUNDSDri_Int $xmm0, $xmm1, 15, implicit $mxcsr - $xmm0 = VRNDSCALESDZr_Int $xmm0, $xmm1, 15, implicit $mxcsr + $xmm0 = VRNDSCALESDZrri_Int $xmm0, $xmm1, 15, implicit $mxcsr ; CHECK: $xmm0 = VROUNDSSmi_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - $xmm0 = VRNDSCALESSZm_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + $xmm0 = VRNDSCALESSZrmi_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr ; CHECK: $xmm0 = VROUNDSSri_Int $xmm0, $xmm1, 15, implicit $mxcsr - $xmm0 = VRNDSCALESSZr_Int $xmm0, $xmm1, 15, implicit $mxcsr + $xmm0 = VRNDSCALESSZrri_Int $xmm0, $xmm1, 15, implicit $mxcsr RET64 ... @@ -4636,38 +4636,38 @@ body: | VUCOMISSZrm $xmm16, $rdi, 1, $noreg, 0, $noreg, implicit-def $eflags, implicit $mxcsr ; CHECK: VUCOMISSZrr $xmm16, $xmm1, implicit-def $eflags, implicit $mxcsr VUCOMISSZrr $xmm16, $xmm1, implicit-def $eflags, implicit $mxcsr - ; CHECK: $xmm16 = VRNDSCALESDZm $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - $xmm16 = VRNDSCALESDZm $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - ; CHECK: $xmm16 = VRNDSCALESDZr $xmm16, $xmm1, 15, implicit $mxcsr - $xmm16 = VRNDSCALESDZr $xmm16, $xmm1, 15, implicit $mxcsr - ; CHECK: $xmm16 = VRNDSCALESSZm $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - $xmm16 = VRNDSCALESSZm $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - ; CHECK: $xmm16 = VRNDSCALESSZr $xmm16, $xmm1, 15, implicit $mxcsr - $xmm16 = VRNDSCALESSZr $xmm16, $xmm1, 15, implicit $mxcsr - ; CHECK: $xmm16 = VRNDSCALESDZm_Int $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - $xmm16 = VRNDSCALESDZm_Int $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - ; CHECK: $xmm16 = VRNDSCALESDZr_Int $xmm16, $xmm1, 15, implicit $mxcsr - $xmm16 = VRNDSCALESDZr_Int $xmm16, $xmm1, 15, implicit $mxcsr - ; CHECK: $xmm16 = VRNDSCALESSZm_Int $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - $xmm16 = VRNDSCALESSZm_Int $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr - ; CHECK: $xmm16 = VRNDSCALESSZr_Int $xmm16, $xmm1, 15, implicit $mxcsr - $xmm16 = VRNDSCALESSZr_Int $xmm16, $xmm1, 15, implicit $mxcsr - ; CHECK: $xmm0 = VRNDSCALESDZm $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr - $xmm0 = VRNDSCALESDZm $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr - ; CHECK: $xmm0 = VRNDSCALESDZr $xmm0, $xmm1, 31, implicit $mxcsr - $xmm0 = VRNDSCALESDZr $xmm0, $xmm1, 31, implicit $mxcsr - ; CHECK: $xmm0 = VRNDSCALESSZm $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr - $xmm0 = VRNDSCALESSZm $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr - ; CHECK: $xmm0 = VRNDSCALESSZr $xmm0, $xmm1, 31, implicit $mxcsr - $xmm0 = VRNDSCALESSZr $xmm0, $xmm1, 31, implicit $mxcsr - ; CHECK: $xmm0 = VRNDSCALESDZm_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr - $xmm0 = VRNDSCALESDZm_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr - ; CHECK: $xmm0 = VRNDSCALESDZr_Int $xmm0, $xmm1, 31, implicit $mxcsr - $xmm0 = VRNDSCALESDZr_Int $xmm0, $xmm1, 31, implicit $mxcsr - ; CHECK: $xmm0 = VRNDSCALESSZm_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr - $xmm0 = VRNDSCALESSZm_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr - ; CHECK: $xmm0 = VRNDSCALESSZr_Int $xmm0, $xmm1, 31, implicit $mxcsr - $xmm0 = VRNDSCALESSZr_Int $xmm0, $xmm1, 31, implicit $mxcsr + ; CHECK: $xmm16 = VRNDSCALESDZrmi $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + $xmm16 = VRNDSCALESDZrmi $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + ; CHECK: $xmm16 = VRNDSCALESDZrri $xmm16, $xmm1, 15, implicit $mxcsr + $xmm16 = VRNDSCALESDZrri $xmm16, $xmm1, 15, implicit $mxcsr + ; CHECK: $xmm16 = VRNDSCALESSZrmi $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + $xmm16 = VRNDSCALESSZrmi $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + ; CHECK: $xmm16 = VRNDSCALESSZrri $xmm16, $xmm1, 15, implicit $mxcsr + $xmm16 = VRNDSCALESSZrri $xmm16, $xmm1, 15, implicit $mxcsr + ; CHECK: $xmm16 = VRNDSCALESDZrmi_Int $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + $xmm16 = VRNDSCALESDZrmi_Int $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + ; CHECK: $xmm16 = VRNDSCALESDZrri_Int $xmm16, $xmm1, 15, implicit $mxcsr + $xmm16 = VRNDSCALESDZrri_Int $xmm16, $xmm1, 15, implicit $mxcsr + ; CHECK: $xmm16 = VRNDSCALESSZrmi_Int $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + $xmm16 = VRNDSCALESSZrmi_Int $xmm16, $rip, 1, $noreg, 0, $noreg, 15, implicit $mxcsr + ; CHECK: $xmm16 = VRNDSCALESSZrri_Int $xmm16, $xmm1, 15, implicit $mxcsr + $xmm16 = VRNDSCALESSZrri_Int $xmm16, $xmm1, 15, implicit $mxcsr + ; CHECK: $xmm0 = VRNDSCALESDZrmi $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr + $xmm0 = VRNDSCALESDZrmi $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr + ; CHECK: $xmm0 = VRNDSCALESDZrri $xmm0, $xmm1, 31, implicit $mxcsr + $xmm0 = VRNDSCALESDZrri $xmm0, $xmm1, 31, implicit $mxcsr + ; CHECK: $xmm0 = VRNDSCALESSZrmi $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr + $xmm0 = VRNDSCALESSZrmi $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr + ; CHECK: $xmm0 = VRNDSCALESSZrri $xmm0, $xmm1, 31, implicit $mxcsr + $xmm0 = VRNDSCALESSZrri $xmm0, $xmm1, 31, implicit $mxcsr + ; CHECK: $xmm0 = VRNDSCALESDZrmi_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr + $xmm0 = VRNDSCALESDZrmi_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr + ; CHECK: $xmm0 = VRNDSCALESDZrri_Int $xmm0, $xmm1, 31, implicit $mxcsr + $xmm0 = VRNDSCALESDZrri_Int $xmm0, $xmm1, 31, implicit $mxcsr + ; CHECK: $xmm0 = VRNDSCALESSZrmi_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr + $xmm0 = VRNDSCALESSZrmi_Int $xmm0, $rip, 1, $noreg, 0, $noreg, 31, implicit $mxcsr + ; CHECK: $xmm0 = VRNDSCALESSZrri_Int $xmm0, $xmm1, 31, implicit $mxcsr + $xmm0 = VRNDSCALESSZrri_Int $xmm0, $xmm1, 31, implicit $mxcsr RET64 ... diff --git a/llvm/test/CodeGen/X86/fminimum-fmaximum.ll b/llvm/test/CodeGen/X86/fminimum-fmaximum.ll index 41d9a867c0a96..07701f082b0e2 100644 --- a/llvm/test/CodeGen/X86/fminimum-fmaximum.ll +++ b/llvm/test/CodeGen/X86/fminimum-fmaximum.ll @@ -1641,188 +1641,26 @@ define <4 x half> @test_fmaximum_v4f16(<4 x half> %x, <4 x half> %y) { ; ; AVX512-LABEL: test_fmaximum_v4f16: ; AVX512: # %bb.0: -; AVX512-NEXT: pushq %rbp -; AVX512-NEXT: .cfi_def_cfa_offset 16 -; AVX512-NEXT: pushq %r15 -; AVX512-NEXT: .cfi_def_cfa_offset 24 -; AVX512-NEXT: pushq %r14 -; AVX512-NEXT: .cfi_def_cfa_offset 32 -; AVX512-NEXT: pushq %r13 -; AVX512-NEXT: .cfi_def_cfa_offset 40 -; AVX512-NEXT: pushq %r12 -; AVX512-NEXT: .cfi_def_cfa_offset 48 -; AVX512-NEXT: pushq %rbx -; AVX512-NEXT: .cfi_def_cfa_offset 56 -; AVX512-NEXT: .cfi_offset %rbx, -56 -; AVX512-NEXT: .cfi_offset %r12, -48 -; AVX512-NEXT: .cfi_offset %r13, -40 -; AVX512-NEXT: .cfi_offset %r14, -32 -; AVX512-NEXT: .cfi_offset %r15, -24 -; AVX512-NEXT: .cfi_offset %rbp, -16 -; AVX512-NEXT: vpshufd {{.*#+}} xmm2 = xmm1[3,3,3,3] -; AVX512-NEXT: vcvtph2ps %xmm2, %xmm2 -; AVX512-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[3,3,3,3] -; AVX512-NEXT: vcvtph2ps %xmm3, %xmm3 -; AVX512-NEXT: xorl %eax, %eax -; AVX512-NEXT: vucomiss %xmm2, %xmm3 -; AVX512-NEXT: movl $65535, %ecx # imm = 0xFFFF -; AVX512-NEXT: movl $0, %edx -; AVX512-NEXT: cmovpl %ecx, %edx -; AVX512-NEXT: movl $0, %edi -; AVX512-NEXT: cmoval %ecx, %edi -; AVX512-NEXT: vpsrldq {{.*#+}} xmm2 = xmm1[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; AVX512-NEXT: vcvtph2ps %xmm2, %xmm2 -; AVX512-NEXT: vpsrldq {{.*#+}} xmm3 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; AVX512-NEXT: vcvtph2ps %xmm3, %xmm3 -; AVX512-NEXT: vucomiss %xmm2, %xmm3 -; AVX512-NEXT: movl $0, %esi -; AVX512-NEXT: cmovpl %ecx, %esi -; AVX512-NEXT: movl $0, %r9d -; AVX512-NEXT: cmoval %ecx, %r9d -; AVX512-NEXT: vshufpd {{.*#+}} xmm2 = xmm1[1,0] -; AVX512-NEXT: vcvtph2ps %xmm2, %xmm2 -; AVX512-NEXT: vshufpd {{.*#+}} xmm3 = xmm0[1,0] -; AVX512-NEXT: vcvtph2ps %xmm3, %xmm3 -; AVX512-NEXT: vucomiss %xmm2, %xmm3 -; AVX512-NEXT: movl $0, %r8d -; AVX512-NEXT: cmovpl %ecx, %r8d -; AVX512-NEXT: movl $0, %r11d -; AVX512-NEXT: cmoval %ecx, %r11d -; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm1[3,3,3,3,4,5,6,7] -; AVX512-NEXT: vcvtph2ps %xmm2, %xmm2 -; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm0[3,3,3,3,4,5,6,7] -; AVX512-NEXT: vcvtph2ps %xmm3, %xmm3 -; AVX512-NEXT: vucomiss %xmm2, %xmm3 -; AVX512-NEXT: movl $0, %r10d -; AVX512-NEXT: cmovpl %ecx, %r10d -; AVX512-NEXT: movl $0, %ebp -; AVX512-NEXT: cmoval %ecx, %ebp -; AVX512-NEXT: vmovshdup {{.*#+}} xmm2 = xmm1[1,1,3,3] -; AVX512-NEXT: vcvtph2ps %xmm2, %xmm2 -; AVX512-NEXT: vmovshdup {{.*#+}} xmm3 = xmm0[1,1,3,3] -; AVX512-NEXT: vcvtph2ps %xmm3, %xmm3 -; AVX512-NEXT: vucomiss %xmm2, %xmm3 -; AVX512-NEXT: movl $0, %ebx -; AVX512-NEXT: cmovpl %ecx, %ebx -; AVX512-NEXT: movl $0, %r14d -; AVX512-NEXT: cmoval %ecx, %r14d -; AVX512-NEXT: vpshuflw {{.*#+}} xmm2 = xmm1[1,1,1,1,4,5,6,7] -; AVX512-NEXT: vcvtph2ps %xmm2, %xmm2 -; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm0[1,1,1,1,4,5,6,7] -; AVX512-NEXT: vcvtph2ps %xmm3, %xmm3 -; AVX512-NEXT: vucomiss %xmm2, %xmm3 -; AVX512-NEXT: movl $0, %r15d -; AVX512-NEXT: cmovpl %ecx, %r15d -; AVX512-NEXT: movl $0, %r12d -; AVX512-NEXT: cmoval %ecx, %r12d -; AVX512-NEXT: vcvtph2ps %xmm1, %xmm2 -; AVX512-NEXT: vcvtph2ps %xmm0, %xmm3 -; AVX512-NEXT: vucomiss %xmm2, %xmm3 -; AVX512-NEXT: movl $0, %r13d -; AVX512-NEXT: cmoval %ecx, %r13d -; AVX512-NEXT: vmovd %r13d, %xmm2 -; AVX512-NEXT: vpinsrw $1, %r12d, %xmm2, %xmm2 -; AVX512-NEXT: vpinsrw $2, %r14d, %xmm2, %xmm2 -; AVX512-NEXT: vpinsrw $3, %ebp, %xmm2, %xmm2 -; AVX512-NEXT: vpinsrw $4, %r11d, %xmm2, %xmm2 -; AVX512-NEXT: vpinsrw $5, %r9d, %xmm2, %xmm2 -; AVX512-NEXT: vpinsrw $6, %edi, %xmm2, %xmm2 -; AVX512-NEXT: movl $0, %edi -; AVX512-NEXT: cmovpl %ecx, %edi -; AVX512-NEXT: vpsrldq {{.*#+}} xmm3 = xmm1[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; AVX512-NEXT: vcvtph2ps %xmm3, %xmm3 -; AVX512-NEXT: vpsrldq {{.*#+}} xmm4 = xmm0[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; AVX512-NEXT: vcvtph2ps %xmm4, %xmm4 -; AVX512-NEXT: vucomiss %xmm3, %xmm4 -; AVX512-NEXT: movl $0, %r9d -; AVX512-NEXT: cmoval %ecx, %r9d -; AVX512-NEXT: vpinsrw $7, %r9d, %xmm2, %xmm2 -; AVX512-NEXT: vpblendvb %xmm2, %xmm0, %xmm1, %xmm2 -; AVX512-NEXT: vmovd %edi, %xmm3 -; AVX512-NEXT: vpinsrw $1, %r15d, %xmm3, %xmm3 -; AVX512-NEXT: vpinsrw $2, %ebx, %xmm3, %xmm3 -; AVX512-NEXT: vpinsrw $3, %r10d, %xmm3, %xmm3 -; AVX512-NEXT: vpinsrw $4, %r8d, %xmm3, %xmm3 -; AVX512-NEXT: vpinsrw $5, %esi, %xmm3, %xmm3 -; AVX512-NEXT: vpinsrw $6, %edx, %xmm3, %xmm3 -; AVX512-NEXT: movl $0, %edx -; AVX512-NEXT: cmovpl %ecx, %edx -; AVX512-NEXT: vpinsrw $7, %edx, %xmm3, %xmm3 -; AVX512-NEXT: vpbroadcastw {{.*#+}} xmm4 = [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN] -; AVX512-NEXT: vpblendvb %xmm3, %xmm4, %xmm2, %xmm2 -; AVX512-NEXT: vpshuflw {{.*#+}} xmm3 = xmm2[1,1,1,1,4,5,6,7] -; AVX512-NEXT: vcvtph2ps %xmm3, %xmm3 -; AVX512-NEXT: vpxor %xmm4, %xmm4, %xmm4 -; AVX512-NEXT: vucomiss %xmm4, %xmm3 -; AVX512-NEXT: movl $65535, %edx # imm = 0xFFFF -; AVX512-NEXT: cmovnel %eax, %edx -; AVX512-NEXT: cmovpl %eax, %edx -; AVX512-NEXT: vcvtph2ps %xmm2, %xmm3 -; AVX512-NEXT: vucomiss %xmm4, %xmm3 -; AVX512-NEXT: movl $65535, %esi # imm = 0xFFFF -; AVX512-NEXT: cmovnel %eax, %esi -; AVX512-NEXT: cmovpl %eax, %esi -; AVX512-NEXT: vmovd %esi, %xmm3 -; AVX512-NEXT: vpinsrw $1, %edx, %xmm3, %xmm3 -; AVX512-NEXT: vpshufd {{.*#+}} xmm5 = xmm2[1,1,1,1] -; AVX512-NEXT: vcvtph2ps %xmm5, %xmm5 -; AVX512-NEXT: vucomiss %xmm4, %xmm5 -; AVX512-NEXT: movl $65535, %edx # imm = 0xFFFF -; AVX512-NEXT: cmovnel %eax, %edx -; AVX512-NEXT: cmovpl %eax, %edx -; AVX512-NEXT: vpinsrw $2, %edx, %xmm3, %xmm3 -; AVX512-NEXT: vpshuflw {{.*#+}} xmm5 = xmm2[3,3,3,3,4,5,6,7] -; AVX512-NEXT: vcvtph2ps %xmm5, %xmm5 -; AVX512-NEXT: vucomiss %xmm4, %xmm5 -; AVX512-NEXT: movl $65535, %edx # imm = 0xFFFF -; AVX512-NEXT: cmovnel %eax, %edx -; AVX512-NEXT: cmovpl %eax, %edx -; AVX512-NEXT: vpinsrw $3, %edx, %xmm3, %xmm3 -; AVX512-NEXT: vpshufd {{.*#+}} xmm5 = xmm2[2,3,2,3] -; AVX512-NEXT: vcvtph2ps %xmm5, %xmm5 -; AVX512-NEXT: vucomiss %xmm4, %xmm5 -; AVX512-NEXT: movl $65535, %edx # imm = 0xFFFF -; AVX512-NEXT: cmovnel %eax, %edx -; AVX512-NEXT: cmovpl %eax, %edx -; AVX512-NEXT: vpinsrw $4, %edx, %xmm3, %xmm3 -; AVX512-NEXT: vpsrldq {{.*#+}} xmm5 = xmm2[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; AVX512-NEXT: vcvtph2ps %xmm5, %xmm5 -; AVX512-NEXT: vucomiss %xmm4, %xmm5 -; AVX512-NEXT: movl $65535, %edx # imm = 0xFFFF -; AVX512-NEXT: cmovnel %eax, %edx -; AVX512-NEXT: cmovpl %eax, %edx -; AVX512-NEXT: vpinsrw $5, %edx, %xmm3, %xmm3 -; AVX512-NEXT: vpshufd {{.*#+}} xmm5 = xmm2[3,3,3,3] -; AVX512-NEXT: vcvtph2ps %xmm5, %xmm5 -; AVX512-NEXT: vucomiss %xmm4, %xmm5 -; AVX512-NEXT: movl $65535, %edx # imm = 0xFFFF -; AVX512-NEXT: cmovnel %eax, %edx -; AVX512-NEXT: cmovpl %eax, %edx -; AVX512-NEXT: vpinsrw $6, %edx, %xmm3, %xmm3 -; AVX512-NEXT: vpsrldq {{.*#+}} xmm5 = xmm2[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; AVX512-NEXT: vcvtph2ps %xmm5, %xmm5 -; AVX512-NEXT: vucomiss %xmm4, %xmm5 -; AVX512-NEXT: cmovnel %eax, %ecx -; AVX512-NEXT: cmovpl %eax, %ecx -; AVX512-NEXT: vpinsrw $7, %ecx, %xmm3, %xmm3 -; AVX512-NEXT: vpxor %xmm4, %xmm4, %xmm4 -; AVX512-NEXT: vpcmpeqw %xmm4, %xmm0, %xmm5 -; AVX512-NEXT: vpblendvb %xmm5, %xmm0, %xmm2, %xmm0 -; AVX512-NEXT: vpcmpeqw %xmm4, %xmm1, %xmm4 -; AVX512-NEXT: vpblendvb %xmm4, %xmm1, %xmm0, %xmm0 -; AVX512-NEXT: vpblendvb %xmm3, %xmm0, %xmm2, %xmm0 -; AVX512-NEXT: popq %rbx -; AVX512-NEXT: .cfi_def_cfa_offset 48 -; AVX512-NEXT: popq %r12 -; AVX512-NEXT: .cfi_def_cfa_offset 40 -; AVX512-NEXT: popq %r13 -; AVX512-NEXT: .cfi_def_cfa_offset 32 -; AVX512-NEXT: popq %r14 -; AVX512-NEXT: .cfi_def_cfa_offset 24 -; AVX512-NEXT: popq %r15 -; AVX512-NEXT: .cfi_def_cfa_offset 16 -; AVX512-NEXT: popq %rbp -; AVX512-NEXT: .cfi_def_cfa_offset 8 +; AVX512-NEXT: vcvtph2ps %xmm0, %ymm2 +; AVX512-NEXT: vcvtph2ps %xmm1, %ymm3 +; AVX512-NEXT: vcmpltps %ymm2, %ymm3, %ymm4 +; AVX512-NEXT: vpmovdw %zmm4, %ymm4 +; AVX512-NEXT: vpblendvb %xmm4, %xmm0, %xmm1, %xmm4 +; AVX512-NEXT: vcmpunordps %ymm3, %ymm2, %ymm2 +; AVX512-NEXT: vpmovdw %zmm2, %ymm2 +; AVX512-NEXT: vpbroadcastw {{.*#+}} xmm3 = [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN] +; AVX512-NEXT: vpblendvb %xmm2, %xmm3, %xmm4, %xmm2 +; AVX512-NEXT: vpxor %xmm3, %xmm3, %xmm3 +; AVX512-NEXT: vpcmpeqw %xmm3, %xmm0, %xmm4 +; AVX512-NEXT: vpblendvb %xmm4, %xmm0, %xmm2, %xmm0 +; AVX512-NEXT: vpcmpeqw %xmm3, %xmm1, %xmm3 +; AVX512-NEXT: vpblendvb %xmm3, %xmm1, %xmm0, %xmm0 +; AVX512-NEXT: vcvtph2ps %xmm2, %ymm1 +; AVX512-NEXT: vpxor %xmm3, %xmm3, %xmm3 +; AVX512-NEXT: vcmpeqps %ymm3, %ymm1, %ymm1 +; AVX512-NEXT: vpmovdw %zmm1, %ymm1 +; AVX512-NEXT: vpblendvb %xmm1, %xmm0, %xmm2, %xmm0 +; AVX512-NEXT: vzeroupper ; AVX512-NEXT: retq ; ; X86-LABEL: test_fmaximum_v4f16: diff --git a/llvm/test/CodeGen/X86/half.ll b/llvm/test/CodeGen/X86/half.ll index 9f01d07e6a670..033cadae6a1e7 100644 --- a/llvm/test/CodeGen/X86/half.ll +++ b/llvm/test/CodeGen/X86/half.ll @@ -1166,15 +1166,15 @@ define void @main.45() #0 { ; ; BWON-F16C-LABEL: main.45: ; BWON-F16C: # %bb.0: # %entry -; BWON-F16C-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero -; BWON-F16C-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,0,0,0,4,5,6,7] -; BWON-F16C-NEXT: vcvtph2ps %xmm0, %xmm0 -; BWON-F16C-NEXT: xorl %eax, %eax -; BWON-F16C-NEXT: vucomiss %xmm0, %xmm0 -; BWON-F16C-NEXT: movl $65535, %ecx # imm = 0xFFFF -; BWON-F16C-NEXT: cmovnpl %eax, %ecx -; BWON-F16C-NEXT: vmovd %ecx, %xmm0 +; BWON-F16C-NEXT: vpinsrw $0, (%rax), %xmm0, %xmm0 +; BWON-F16C-NEXT: vpextrw $0, %xmm0, %eax ; BWON-F16C-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7] +; BWON-F16C-NEXT: vmovd %eax, %xmm1 +; BWON-F16C-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7] +; BWON-F16C-NEXT: vcvtph2ps %xmm0, %xmm0 +; BWON-F16C-NEXT: vxorps %xmm2, %xmm2, %xmm2 +; BWON-F16C-NEXT: vcmpunordps %xmm2, %xmm0, %xmm0 +; BWON-F16C-NEXT: vpackssdw %xmm0, %xmm0, %xmm0 ; BWON-F16C-NEXT: vpblendvb %xmm0, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm0 ; BWON-F16C-NEXT: vmovq %xmm0, (%rax) ; BWON-F16C-NEXT: retq diff --git a/llvm/test/CodeGen/X86/insert-into-constant-vector.ll b/llvm/test/CodeGen/X86/insert-into-constant-vector.ll index f371ec10fe25f..6e41e1bb87eb2 100644 --- a/llvm/test/CodeGen/X86/insert-into-constant-vector.ll +++ b/llvm/test/CodeGen/X86/insert-into-constant-vector.ll @@ -447,9 +447,8 @@ define <8 x i64> @elt5_v8i64(i64 %x) { ; X64-AVX512F-LABEL: elt5_v8i64: ; X64-AVX512F: # %bb.0: ; X64-AVX512F-NEXT: vmovq %rdi, %xmm1 -; X64-AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,8,6,7] -; X64-AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm0 = [42,1,2,3,4,0,6,7] -; X64-AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0 +; X64-AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm0 = [8,9,10,11,12,0,14,15] +; X64-AVX512F-NEXT: vpermi2q {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm1, %zmm0 ; X64-AVX512F-NEXT: retq %ins = insertelement <8 x i64> , i64 %x, i32 5 ret <8 x i64> %ins diff --git a/llvm/test/CodeGen/X86/pr114520.ll b/llvm/test/CodeGen/X86/pr114520.ll index 660b169e302d8..c557da6b3ab8c 100644 --- a/llvm/test/CodeGen/X86/pr114520.ll +++ b/llvm/test/CodeGen/X86/pr114520.ll @@ -21,83 +21,8 @@ entry: define <8 x half> @test2(<8 x half> %x) { ; CHECK-LABEL: test2: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vcvtph2ps %xmm0, %xmm2 -; CHECK-NEXT: vmovss {{.*#+}} xmm1 = [-Inf,0.0E+0,0.0E+0,0.0E+0] -; CHECK-NEXT: vucomiss %xmm1, %xmm2 -; CHECK-NEXT: seta %al -; CHECK-NEXT: andl $1, %eax -; CHECK-NEXT: kmovw %eax, %k0 -; CHECK-NEXT: vpshuflw {{.*#+}} xmm2 = xmm0[1,1,1,1,4,5,6,7] -; CHECK-NEXT: vcvtph2ps %xmm2, %xmm2 -; CHECK-NEXT: vucomiss %xmm1, %xmm2 -; CHECK-NEXT: seta %al -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $14, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-5, %ax -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vmovshdup {{.*#+}} xmm2 = xmm0[1,1,3,3] -; CHECK-NEXT: vcvtph2ps %xmm2, %xmm2 -; CHECK-NEXT: vucomiss %xmm1, %xmm2 -; CHECK-NEXT: seta %al -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $13, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-9, %ax -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vpshuflw {{.*#+}} xmm2 = xmm0[3,3,3,3,4,5,6,7] -; CHECK-NEXT: vcvtph2ps %xmm2, %xmm2 -; CHECK-NEXT: vucomiss %xmm1, %xmm2 -; CHECK-NEXT: seta %al -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $12, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-17, %ax -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vshufpd {{.*#+}} xmm2 = xmm0[1,0] -; CHECK-NEXT: vcvtph2ps %xmm2, %xmm2 -; CHECK-NEXT: vucomiss %xmm1, %xmm2 -; CHECK-NEXT: seta %al -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $11, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-33, %ax -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vpsrldq {{.*#+}} xmm2 = xmm0[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; CHECK-NEXT: vcvtph2ps %xmm2, %xmm2 -; CHECK-NEXT: vucomiss %xmm1, %xmm2 -; CHECK-NEXT: seta %al -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $10, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-65, %ax -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vshufps {{.*#+}} xmm2 = xmm0[3,3,3,3] -; CHECK-NEXT: vcvtph2ps %xmm2, %xmm2 -; CHECK-NEXT: vucomiss %xmm1, %xmm2 -; CHECK-NEXT: seta %al -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kshiftlw $6, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: kshiftlw $9, %k0, %k0 -; CHECK-NEXT: kshiftrw $9, %k0, %k0 -; CHECK-NEXT: vpsrldq {{.*#+}} xmm2 = xmm0[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; CHECK-NEXT: vcvtph2ps %xmm2, %xmm2 -; CHECK-NEXT: vucomiss %xmm1, %xmm2 -; CHECK-NEXT: seta %al -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: kshiftlw $7, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k1 +; CHECK-NEXT: vcvtph2ps %xmm0, %ymm1 +; CHECK-NEXT: vcmpgtps {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm1, %k1 ; CHECK-NEXT: vpbroadcastw {{.*#+}} xmm1 = [-Inf,-Inf,-Inf,-Inf,-Inf,-Inf,-Inf,-Inf] ; CHECK-NEXT: vpcmpeqd %ymm2, %ymm2, %ymm2 ; CHECK-NEXT: vmovdqa32 %ymm2, %ymm2 {%k1} {z} diff --git a/llvm/test/CodeGen/X86/pr57340.ll b/llvm/test/CodeGen/X86/pr57340.ll index 00a52c639e43c..6bebbe3cee1f9 100644 --- a/llvm/test/CodeGen/X86/pr57340.ll +++ b/llvm/test/CodeGen/X86/pr57340.ll @@ -4,236 +4,13 @@ define void @main.41() local_unnamed_addr #1 { ; CHECK-LABEL: main.41: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: vpbroadcastw (%rax), %xmm0 -; CHECK-NEXT: vpextrw $0, %xmm0, %eax -; CHECK-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm1 -; CHECK-NEXT: vmovdqu (%rax), %ymm3 +; CHECK-NEXT: vpbroadcastw (%rax), %ymm0 +; CHECK-NEXT: vmovdqu (%rax), %ymm1 ; CHECK-NEXT: vpmovsxbw {{.*#+}} ymm2 = [31,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14] -; CHECK-NEXT: vpermi2w %ymm1, %ymm3, %ymm2 -; CHECK-NEXT: vprold $16, %xmm2, %xmm1 -; CHECK-NEXT: vcvtph2ps %xmm1, %xmm3 -; CHECK-NEXT: vmovdqu (%rax), %xmm5 -; CHECK-NEXT: vprold $16, %xmm5, %xmm1 -; CHECK-NEXT: vcvtph2ps %xmm1, %xmm1 -; CHECK-NEXT: vucomiss %xmm3, %xmm1 -; CHECK-NEXT: setnp %cl -; CHECK-NEXT: sete %dl -; CHECK-NEXT: testb %cl, %dl -; CHECK-NEXT: setne %cl -; CHECK-NEXT: kmovd %ecx, %k0 -; CHECK-NEXT: kshiftlw $15, %k0, %k0 -; CHECK-NEXT: vmovd %eax, %xmm3 -; CHECK-NEXT: vcvtph2ps %xmm3, %xmm3 -; CHECK-NEXT: vcvtph2ps %xmm5, %xmm6 -; CHECK-NEXT: kshiftrw $14, %k0, %k0 -; CHECK-NEXT: vucomiss %xmm3, %xmm6 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: andl $1, %eax -; CHECK-NEXT: kmovw %eax, %k1 -; CHECK-NEXT: korw %k0, %k1, %k0 -; CHECK-NEXT: movw $-5, %ax -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[1,1,3,3] -; CHECK-NEXT: vcvtph2ps %xmm3, %xmm3 -; CHECK-NEXT: vcvtph2ps %xmm0, %xmm0 -; CHECK-NEXT: vucomiss %xmm3, %xmm0 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $13, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-9, %ax -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vprolq $16, %xmm2, %xmm3 -; CHECK-NEXT: vcvtph2ps %xmm3, %xmm4 -; CHECK-NEXT: vprolq $16, %xmm5, %xmm3 -; CHECK-NEXT: vcvtph2ps %xmm3, %xmm3 -; CHECK-NEXT: vucomiss %xmm4, %xmm3 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $12, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-17, %ax -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[2,3,0,1] -; CHECK-NEXT: vcvtph2ps %xmm4, %xmm4 -; CHECK-NEXT: vucomiss %xmm4, %xmm0 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $11, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-33, %ax -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: vpsrldq {{.*#+}} xmm4 = xmm2[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; CHECK-NEXT: vcvtph2ps %xmm4, %xmm7 -; CHECK-NEXT: vpsrldq {{.*#+}} xmm4 = xmm5[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; CHECK-NEXT: vcvtph2ps %xmm4, %xmm4 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vucomiss %xmm7, %xmm4 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $10, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-65, %ax -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vshufps {{.*#+}} xmm7 = xmm2[3,3,3,3] -; CHECK-NEXT: vcvtph2ps %xmm7, %xmm7 -; CHECK-NEXT: vucomiss %xmm7, %xmm0 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $9, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-129, %ax -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vpsrldq {{.*#+}} xmm7 = xmm2[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; CHECK-NEXT: vcvtph2ps %xmm7, %xmm7 -; CHECK-NEXT: vpsrldq {{.*#+}} xmm5 = xmm5[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; CHECK-NEXT: vcvtph2ps %xmm5, %xmm5 -; CHECK-NEXT: vucomiss %xmm7, %xmm5 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $8, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-257, %ax # imm = 0xFEFF -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: vextracti128 $1, %ymm2, %xmm2 -; CHECK-NEXT: vcvtph2ps %xmm2, %xmm7 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vucomiss %xmm7, %xmm6 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $7, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-513, %ax # imm = 0xFDFF -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vprold $16, %xmm2, %xmm6 -; CHECK-NEXT: vcvtph2ps %xmm6, %xmm6 -; CHECK-NEXT: vucomiss %xmm6, %xmm1 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $6, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-1025, %ax # imm = 0xFBFF -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vpshufd {{.*#+}} xmm1 = xmm2[1,1,3,3] -; CHECK-NEXT: vcvtph2ps %xmm1, %xmm1 -; CHECK-NEXT: vucomiss %xmm1, %xmm0 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $5, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-2049, %ax # imm = 0xF7FF -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vprolq $16, %xmm2, %xmm1 -; CHECK-NEXT: vcvtph2ps %xmm1, %xmm1 -; CHECK-NEXT: vucomiss %xmm1, %xmm3 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $4, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-4097, %ax # imm = 0xEFFF -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vpshufd {{.*#+}} xmm1 = xmm2[2,3,0,1] -; CHECK-NEXT: vcvtph2ps %xmm1, %xmm1 -; CHECK-NEXT: vucomiss %xmm1, %xmm0 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $3, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-8193, %ax # imm = 0xDFFF -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vpsrldq {{.*#+}} xmm1 = xmm2[10,11,12,13,14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; CHECK-NEXT: vcvtph2ps %xmm1, %xmm1 -; CHECK-NEXT: vucomiss %xmm1, %xmm4 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: kshiftrw $2, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: movw $-16385, %ax # imm = 0xBFFF -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: vshufps {{.*#+}} xmm1 = xmm2[3,3,3,3] -; CHECK-NEXT: vcvtph2ps %xmm1, %xmm1 -; CHECK-NEXT: kandw %k1, %k0, %k0 -; CHECK-NEXT: vucomiss %xmm1, %xmm0 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $14, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k0 -; CHECK-NEXT: kshiftlw $1, %k0, %k0 -; CHECK-NEXT: vpsrldq {{.*#+}} xmm0 = xmm2[14,15],zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero,zero -; CHECK-NEXT: vcvtph2ps %xmm0, %xmm0 -; CHECK-NEXT: kshiftrw $1, %k0, %k0 -; CHECK-NEXT: vucomiss %xmm0, %xmm5 -; CHECK-NEXT: setnp %al -; CHECK-NEXT: sete %cl -; CHECK-NEXT: testb %al, %cl -; CHECK-NEXT: setne %al -; CHECK-NEXT: kmovd %eax, %k1 -; CHECK-NEXT: kshiftlw $15, %k1, %k1 -; CHECK-NEXT: korw %k1, %k0, %k1 +; CHECK-NEXT: vpermi2w %ymm0, %ymm1, %ymm2 +; CHECK-NEXT: vcvtph2ps %ymm2, %zmm0 +; CHECK-NEXT: vcvtph2ps %ymm1, %zmm1 +; CHECK-NEXT: vcmpeqps %zmm0, %zmm1, %k1 ; CHECK-NEXT: vmovdqu8 {{.*#+}} xmm0 {%k1} {z} = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] ; CHECK-NEXT: vmovdqa %xmm0, (%rax) ; CHECK-NEXT: vzeroupper diff --git a/llvm/test/CodeGen/X86/tailcall-nofpclass.ll b/llvm/test/CodeGen/X86/tailcall-nofpclass.ll new file mode 100644 index 0000000000000..fd085bb1244fb --- /dev/null +++ b/llvm/test/CodeGen/X86/tailcall-nofpclass.ll @@ -0,0 +1,13 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 +; RUN: llc -mtriple=x86_64-linux < %s | FileCheck %s + +; Ensures that taillcall optimization can still be +; performed when nofpclass is used. + +define noundef nofpclass(nan inf) float @_Z3foof(float noundef nofpclass(nan inf) %0) { +; CHECK-LABEL: _Z3foof: +; CHECK: # %bb.0: +; CHECK-NEXT: jmp expf@PLT # TAILCALL + %2 = tail call float @llvm.exp.f32(float %0) + ret float %2 +} diff --git a/llvm/test/CodeGen/X86/vec-strict-cmp-512-skx.ll b/llvm/test/CodeGen/X86/vec-strict-cmp-512-skx.ll index 3028b74967378..0ec33ad800912 100644 --- a/llvm/test/CodeGen/X86/vec-strict-cmp-512-skx.ll +++ b/llvm/test/CodeGen/X86/vec-strict-cmp-512-skx.ll @@ -34,7 +34,34 @@ define <8 x i32> @test_v8f64_oeq_q(<8 x i32> %a, <8 x i32> %b, <8 x double> %f1, ret <8 x i32> %res } +define <16 x i32> @test_v16f64_ogt(<16 x i32> %a, <16 x i32> %b, <16 x double> %f1, <16 x double> %f2) #0 { +; SKX-LABEL: test_v16f64_ogt +; SKX: # %bb.0: +; SKX-NEXT: pushq %rbp +; SKX-NEXT: movq %rsp, %rbp +; SKX-NEXT: andq $-32, %rsp +; SKX-NEXT: subq $32, %rsp +; SKX-NEXT: vcmpgtpd 80(%rbp), %ymm6, %k0 +; SKX-NEXT: vcmpgtpd 112(%rbp), %ymm7, %k1 +; SKX-NEXT: kshiftlb $4, %k1, %k1 +; SKX-NEXT: korb %k1, %k0, %k1 +; SKX-NEXT: vcmpgtpd 16(%rbp), %ymm4, %k0 +; SKX-NEXT: vcmpgtpd 48(%rbp), %ymm5, %k2 +; SKX-NEXT: kshiftlb $4, %k2, %k2 +; SKX-NEXT: korb %k2, %k0, %k2 +; SKX-NEXT: vpblendmd %ymm0, %ymm2, %ymm0 {%k2} +; SKX-NEXT: vpblendmd %ymm1, %ymm3, %ymm1 {%k1} +; SKX-NEXT: movq %rbp, %rsp +; SKX-NEXT: popq %rbp +; SKX-NEXT: retq + %cond = tail call <16 x i1> @llvm.experimental.constrained.fcmps.v16f64( + <16 x double> %f1, <16 x double> %f2, metadata !"ogt", metadata !"fpexcept.maytrap") + %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b + ret <16 x i32> %res +} + declare <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(<16 x float>, <16 x float>, metadata, metadata) declare <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(<8 x double>, <8 x double>, metadata, metadata) +declare <16 x i1> @llvm.experimental.constrained.fcmps.v16f64(<16 x double>, <16 x double>, metadata, metadata) attributes #0 = { nounwind strictfp "min-legal-vector-width"="0" } diff --git a/llvm/test/CodeGen/X86/vector-compare-all_of.ll b/llvm/test/CodeGen/X86/vector-compare-all_of.ll index 30202701fdb8c..bf027a7346deb 100644 --- a/llvm/test/CodeGen/X86/vector-compare-all_of.ll +++ b/llvm/test/CodeGen/X86/vector-compare-all_of.ll @@ -1594,3 +1594,62 @@ define i1 @select_v2i8(ptr %s0, ptr %s1) { %res = select i1 %cmp0, i1 %cmp1, i1 false ret i1 %res } + +define i1 @PR116977(<32 x i8> %a, <32 x i8> %b, <32 x i8> %v) { +; SSE-LABEL: PR116977: +; SSE: # %bb.0: +; SSE-NEXT: pcmpeqb %xmm4, %xmm0 +; SSE-NEXT: pcmpeqb %xmm5, %xmm1 +; SSE-NEXT: pcmpeqb %xmm4, %xmm2 +; SSE-NEXT: pand %xmm0, %xmm2 +; SSE-NEXT: pcmpeqb %xmm5, %xmm3 +; SSE-NEXT: pand %xmm1, %xmm3 +; SSE-NEXT: pand %xmm2, %xmm3 +; SSE-NEXT: pmovmskb %xmm3, %eax +; SSE-NEXT: cmpl $65535, %eax # imm = 0xFFFF +; SSE-NEXT: sete %al +; SSE-NEXT: retq +; +; AVX1-LABEL: PR116977: +; AVX1: # %bb.0: +; AVX1-NEXT: vpcmpeqb %xmm0, %xmm2, %xmm3 +; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0 +; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm4 +; AVX1-NEXT: vpcmpeqb %xmm0, %xmm4, %xmm0 +; AVX1-NEXT: vpcmpeqb %xmm1, %xmm2, %xmm2 +; AVX1-NEXT: vpand %xmm2, %xmm3, %xmm2 +; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1 +; AVX1-NEXT: vpcmpeqb %xmm1, %xmm4, %xmm1 +; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0 +; AVX1-NEXT: vpand %xmm0, %xmm2, %xmm0 +; AVX1-NEXT: vpmovmskb %xmm0, %eax +; AVX1-NEXT: xorl $65535, %eax # imm = 0xFFFF +; AVX1-NEXT: sete %al +; AVX1-NEXT: vzeroupper +; AVX1-NEXT: retq +; +; AVX2-LABEL: PR116977: +; AVX2: # %bb.0: +; AVX2-NEXT: vpxor %ymm0, %ymm2, %ymm0 +; AVX2-NEXT: vpxor %ymm1, %ymm2, %ymm1 +; AVX2-NEXT: vpor %ymm1, %ymm0, %ymm0 +; AVX2-NEXT: vptest %ymm0, %ymm0 +; AVX2-NEXT: sete %al +; AVX2-NEXT: vzeroupper +; AVX2-NEXT: retq +; +; AVX512-LABEL: PR116977: +; AVX512: # %bb.0: +; AVX512-NEXT: vpcmpneqb %ymm0, %ymm2, %k0 +; AVX512-NEXT: vpcmpneqb %ymm1, %ymm2, %k1 +; AVX512-NEXT: kortestd %k1, %k0 +; AVX512-NEXT: sete %al +; AVX512-NEXT: vzeroupper +; AVX512-NEXT: retq + %ca = icmp ne <32 x i8> %v, %a + %cb = icmp ne <32 x i8> %v, %b + %or = or <32 x i1> %ca, %cb + %scl = bitcast <32 x i1> %or to i32 + %cmp = icmp eq i32 %scl, 0 + ret i1 %cmp +} diff --git a/llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll b/llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll index 21dfdc3c2abe4..49062eaef3188 100644 --- a/llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll +++ b/llvm/test/CodeGen/X86/vector-constrained-fp-intrinsics.ll @@ -3011,25 +3011,26 @@ entry: ret <4 x double> %log2 } -define <1 x float> @constrained_vector_rint_v1f32() #0 { -; CHECK-LABEL: constrained_vector_rint_v1f32: +define <1 x float> @constrained_vector_rint_v1f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_rint_v1f32_var: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; CHECK-NEXT: callq rintf@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_rint_v1f32: +; AVX-LABEL: constrained_vector_rint_v1f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $4, %xmm0, %xmm0, %xmm0 ; AVX-NEXT: retq entry: + %b = load <1 x float>, ptr %a %rint = call <1 x float> @llvm.experimental.constrained.rint.v1f32( - <1 x float> , + <1 x float> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <1 x float> %rint @@ -3063,42 +3064,77 @@ entry: ret <2 x double> %rint } -define <3 x float> @constrained_vector_rint_v3f32() #0 { -; CHECK-LABEL: constrained_vector_rint_v3f32: +define <2 x double> @constrained_vector_rint_v2f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_rint_v2f64_var: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: subq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 48 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [4.4E+1,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: callq rint@PLT +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq rint@PLT +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps %xmm1, %xmm0 +; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 8 +; CHECK-NEXT: retq +; +; AVX-LABEL: constrained_vector_rint_v2f64_var: +; AVX: # %bb.0: # %entry +; AVX-NEXT: vroundpd $4, (%rdi), %xmm0 +; AVX-NEXT: retq +entry: + %b = load <2 x double>, ptr %a + %rint = call <2 x double> @llvm.experimental.constrained.rint.v2f64( + <2 x double> %b, + metadata !"round.dynamic", + metadata !"fpexcept.strict") #0 + ret <2 x double> %rint +} + +define <3 x float> @constrained_vector_rint_v3f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_rint_v3f32_var: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: subq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 64 +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq rintf@PLT ; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1] ; CHECK-NEXT: callq rintf@PLT -; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [4.3E+1,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq rintf@PLT -; CHECK-NEXT: movaps (%rsp), %xmm1 # 16-byte Reload -; CHECK-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1] -; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload -; CHECK-NEXT: # xmm1 = xmm1[0],mem[0] -; CHECK-NEXT: movaps %xmm1, %xmm0 -; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: unpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1] +; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] +; CHECK-NEXT: addq $56, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_rint_v3f32: +; AVX-LABEL: constrained_vector_rint_v3f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [4.4E+1,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $4, %xmm0, %xmm0, %xmm0 -; AVX-NEXT: vmovss {{.*#+}} xmm1 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero +; AVX-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $4, %xmm1, %xmm1, %xmm1 -; AVX-NEXT: vmovss {{.*#+}} xmm2 = [4.3E+1,0.0E+0,0.0E+0,0.0E+0] ; AVX-NEXT: vroundss $4, %xmm2, %xmm2, %xmm2 ; AVX-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[2,3] ; AVX-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0,1],xmm0[0],xmm1[3] ; AVX-NEXT: retq entry: + %b = load <3 x float>, ptr %a %rint = call <3 x float> @llvm.experimental.constrained.rint.v3f32( - <3 x float> , + <3 x float> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <3 x float> %rint @@ -3143,6 +3179,51 @@ entry: ret <3 x double> %rint } +define <3 x double> @constrained_vector_rint_v3f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_rint_v3f64_var: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero +; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq rint@PLT +; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: callq rint@PLT +; CHECK-NEXT: movsd %xmm0, (%rsp) # 8-byte Spill +; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 8-byte Reload +; CHECK-NEXT: # xmm0 = mem[0],zero +; CHECK-NEXT: callq rint@PLT +; CHECK-NEXT: movsd %xmm0, {{[0-9]+}}(%rsp) +; CHECK-NEXT: fldl {{[0-9]+}}(%rsp) +; CHECK-NEXT: wait +; CHECK-NEXT: movsd (%rsp), %xmm0 # 8-byte Reload +; CHECK-NEXT: # xmm0 = mem[0],zero +; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 8-byte Reload +; CHECK-NEXT: # xmm1 = mem[0],zero +; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 8 +; CHECK-NEXT: retq +; +; AVX-LABEL: constrained_vector_rint_v3f64_var: +; AVX: # %bb.0: # %entry +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero +; AVX-NEXT: vroundsd $4, %xmm0, %xmm0, %xmm0 +; AVX-NEXT: vroundpd $4, (%rdi), %xmm1 +; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0 +; AVX-NEXT: retq +entry: + %b = load <3 x double>, ptr %a + %rint = call <3 x double> @llvm.experimental.constrained.rint.v3f64( + <3 x double> %b, + metadata !"round.dynamic", + metadata !"fpexcept.strict") #0 + ret <3 x double> %rint +} + define <4 x double> @constrained_vector_rint_v4f64() #0 { ; CHECK-LABEL: constrained_vector_rint_v4f64: ; CHECK: # %bb.0: # %entry @@ -3182,25 +3263,70 @@ entry: ret <4 x double> %rint } -define <1 x float> @constrained_vector_nearbyint_v1f32() #0 { -; CHECK-LABEL: constrained_vector_nearbyint_v1f32: +define <4 x double> @constrained_vector_rint_v4f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_rint_v4f64_var: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: subq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 64 +; CHECK-NEXT: movaps (%rdi), %xmm1 +; CHECK-NEXT: movaps %xmm1, (%rsp) # 16-byte Spill +; CHECK-NEXT: movaps 16(%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps %xmm1, %xmm0 +; CHECK-NEXT: callq rint@PLT +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq rint@PLT +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload +; CHECK-NEXT: callq rint@PLT +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq rint@PLT +; CHECK-NEXT: movaps (%rsp), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload +; CHECK-NEXT: addq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 8 +; CHECK-NEXT: retq +; +; AVX-LABEL: constrained_vector_rint_v4f64_var: +; AVX: # %bb.0: # %entry +; AVX-NEXT: vroundpd $4, (%rdi), %ymm0 +; AVX-NEXT: retq +entry: + %b = load <4 x double>, ptr %a + %rint = call <4 x double> @llvm.experimental.constrained.rint.v4f64( + <4 x double> %b, + metadata !"round.dynamic", + metadata !"fpexcept.strict") #0 + ret <4 x double> %rint +} + +define <1 x float> @constrained_vector_nearbyint_v1f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_nearbyint_v1f32_var: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; CHECK-NEXT: callq nearbyintf@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_nearbyint_v1f32: +; AVX-LABEL: constrained_vector_nearbyint_v1f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $12, %xmm0, %xmm0, %xmm0 ; AVX-NEXT: retq entry: + %b = load <1 x float>, ptr %a %nearby = call <1 x float> @llvm.experimental.constrained.nearbyint.v1f32( - <1 x float> , + <1 x float> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <1 x float> %nearby @@ -3234,42 +3360,77 @@ entry: ret <2 x double> %nearby } -define <3 x float> @constrained_vector_nearbyint_v3f32() #0 { -; CHECK-LABEL: constrained_vector_nearbyint_v3f32: +define <2 x double> @constrained_vector_nearbyint_v2f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_nearbyint_v2f64_var: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: subq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 48 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [4.4E+1,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: callq nearbyint@PLT +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq nearbyint@PLT +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps %xmm1, %xmm0 +; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 8 +; CHECK-NEXT: retq +; +; AVX-LABEL: constrained_vector_nearbyint_v2f64_var: +; AVX: # %bb.0: # %entry +; AVX-NEXT: vroundpd $12, (%rdi), %xmm0 +; AVX-NEXT: retq +entry: + %b = load <2 x double>, ptr %a + %nearby = call <2 x double> @llvm.experimental.constrained.nearbyint.v2f64( + <2 x double> %b, + metadata !"round.dynamic", + metadata !"fpexcept.strict") #0 + ret <2 x double> %nearby +} + +define <3 x float> @constrained_vector_nearbyint_v3f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_nearbyint_v3f32_var: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: subq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 64 +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq nearbyintf@PLT ; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1] ; CHECK-NEXT: callq nearbyintf@PLT -; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [4.3E+1,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq nearbyintf@PLT -; CHECK-NEXT: movaps (%rsp), %xmm1 # 16-byte Reload -; CHECK-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1] -; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload -; CHECK-NEXT: # xmm1 = xmm1[0],mem[0] -; CHECK-NEXT: movaps %xmm1, %xmm0 -; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: unpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1] +; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] +; CHECK-NEXT: addq $56, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_nearbyint_v3f32: +; AVX-LABEL: constrained_vector_nearbyint_v3f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [4.4E+1,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $12, %xmm0, %xmm0, %xmm0 -; AVX-NEXT: vmovss {{.*#+}} xmm1 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero +; AVX-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $12, %xmm1, %xmm1, %xmm1 -; AVX-NEXT: vmovss {{.*#+}} xmm2 = [4.3E+1,0.0E+0,0.0E+0,0.0E+0] ; AVX-NEXT: vroundss $12, %xmm2, %xmm2, %xmm2 ; AVX-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[2,3] ; AVX-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0,1],xmm0[0],xmm1[3] ; AVX-NEXT: retq entry: + %b = load <3 x float>, ptr %a %nearby = call <3 x float> @llvm.experimental.constrained.nearbyint.v3f32( - <3 x float> , + <3 x float> %b, metadata !"round.dynamic", metadata !"fpexcept.strict") #0 ret <3 x float> %nearby @@ -3314,6 +3475,51 @@ entry: ret <3 x double> %nearby } +define <3 x double> @constrained_vector_nearbyint_v3f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_nearbyint_v3f64_var: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero +; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq nearbyint@PLT +; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: callq nearbyint@PLT +; CHECK-NEXT: movsd %xmm0, (%rsp) # 8-byte Spill +; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 8-byte Reload +; CHECK-NEXT: # xmm0 = mem[0],zero +; CHECK-NEXT: callq nearbyint@PLT +; CHECK-NEXT: movsd %xmm0, {{[0-9]+}}(%rsp) +; CHECK-NEXT: fldl {{[0-9]+}}(%rsp) +; CHECK-NEXT: wait +; CHECK-NEXT: movsd (%rsp), %xmm0 # 8-byte Reload +; CHECK-NEXT: # xmm0 = mem[0],zero +; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 8-byte Reload +; CHECK-NEXT: # xmm1 = mem[0],zero +; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 8 +; CHECK-NEXT: retq +; +; AVX-LABEL: constrained_vector_nearbyint_v3f64_var: +; AVX: # %bb.0: # %entry +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero +; AVX-NEXT: vroundsd $12, %xmm0, %xmm0, %xmm0 +; AVX-NEXT: vroundpd $12, (%rdi), %xmm1 +; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0 +; AVX-NEXT: retq +entry: + %b = load <3 x double>, ptr %a + %nearby = call <3 x double> @llvm.experimental.constrained.nearbyint.v3f64( + <3 x double> %b, + metadata !"round.dynamic", + metadata !"fpexcept.strict") #0 + ret <3 x double> %nearby +} + define <4 x double> @constrained_vector_nearbyint_v4f64() #0 { ; CHECK-LABEL: constrained_vector_nearbyint_v4f64: ; CHECK: # %bb.0: # %entry @@ -3353,6 +3559,50 @@ entry: ret <4 x double> %nearby } +define <4 x double> @constrained_vector_nearbyint_v4f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_nearbyint_v4f64_var: +; CHECK: # %bb.0: # %entry +; CHECK-NEXT: subq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 64 +; CHECK-NEXT: movaps (%rdi), %xmm1 +; CHECK-NEXT: movaps %xmm1, (%rsp) # 16-byte Spill +; CHECK-NEXT: movaps 16(%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps %xmm1, %xmm0 +; CHECK-NEXT: callq nearbyint@PLT +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq nearbyint@PLT +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload +; CHECK-NEXT: callq nearbyint@PLT +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq nearbyint@PLT +; CHECK-NEXT: movaps (%rsp), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload +; CHECK-NEXT: addq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 8 +; CHECK-NEXT: retq +; +; AVX-LABEL: constrained_vector_nearbyint_v4f64_var: +; AVX: # %bb.0: # %entry +; AVX-NEXT: vroundpd $12, (%rdi), %ymm0 +; AVX-NEXT: retq +entry: + %b = load <4 x double>, ptr %a + %nearby = call <4 x double> @llvm.experimental.constrained.nearbyint.v4f64( + <4 x double> %b, + metadata !"round.dynamic", + metadata !"fpexcept.strict") #0 + ret <4 x double> %nearby +} + define <1 x float> @constrained_vector_maxnum_v1f32() #0 { ; CHECK-LABEL: constrained_vector_maxnum_v1f32: ; CHECK: # %bb.0: # %entry @@ -4482,10 +4732,10 @@ define <1 x i64> @constrained_vector_fptoui_v1i64_v1f32() #0 { ; CHECK-NEXT: movss {{.*#+}} xmm2 = [9.22337203E+18,0.0E+0,0.0E+0,0.0E+0] ; CHECK-NEXT: comiss %xmm0, %xmm2 ; CHECK-NEXT: xorps %xmm1, %xmm1 -; CHECK-NEXT: ja .LBB115_2 +; CHECK-NEXT: ja .LBB121_2 ; CHECK-NEXT: # %bb.1: # %entry ; CHECK-NEXT: movaps %xmm2, %xmm1 -; CHECK-NEXT: .LBB115_2: # %entry +; CHECK-NEXT: .LBB121_2: # %entry ; CHECK-NEXT: subss %xmm1, %xmm0 ; CHECK-NEXT: cvttss2si %xmm0, %rcx ; CHECK-NEXT: setbe %al @@ -4500,10 +4750,10 @@ define <1 x i64> @constrained_vector_fptoui_v1i64_v1f32() #0 { ; AVX1-NEXT: vmovss {{.*#+}} xmm1 = [9.22337203E+18,0.0E+0,0.0E+0,0.0E+0] ; AVX1-NEXT: vcomiss %xmm0, %xmm1 ; AVX1-NEXT: vxorps %xmm2, %xmm2, %xmm2 -; AVX1-NEXT: ja .LBB115_2 +; AVX1-NEXT: ja .LBB121_2 ; AVX1-NEXT: # %bb.1: # %entry ; AVX1-NEXT: vmovaps %xmm1, %xmm2 -; AVX1-NEXT: .LBB115_2: # %entry +; AVX1-NEXT: .LBB121_2: # %entry ; AVX1-NEXT: vsubss %xmm2, %xmm0, %xmm0 ; AVX1-NEXT: vcvttss2si %xmm0, %rcx ; AVX1-NEXT: setbe %al @@ -4531,10 +4781,10 @@ define <2 x i64> @constrained_vector_fptoui_v2i64_v2f32() #0 { ; CHECK-NEXT: comiss %xmm2, %xmm1 ; CHECK-NEXT: xorps %xmm0, %xmm0 ; CHECK-NEXT: xorps %xmm3, %xmm3 -; CHECK-NEXT: ja .LBB116_2 +; CHECK-NEXT: ja .LBB122_2 ; CHECK-NEXT: # %bb.1: # %entry ; CHECK-NEXT: movaps %xmm1, %xmm3 -; CHECK-NEXT: .LBB116_2: # %entry +; CHECK-NEXT: .LBB122_2: # %entry ; CHECK-NEXT: subss %xmm3, %xmm2 ; CHECK-NEXT: cvttss2si %xmm2, %rax ; CHECK-NEXT: setbe %cl @@ -4544,10 +4794,10 @@ define <2 x i64> @constrained_vector_fptoui_v2i64_v2f32() #0 { ; CHECK-NEXT: movq %rcx, %xmm2 ; CHECK-NEXT: movss {{.*#+}} xmm3 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] ; CHECK-NEXT: comiss %xmm3, %xmm1 -; CHECK-NEXT: ja .LBB116_4 +; CHECK-NEXT: ja .LBB122_4 ; CHECK-NEXT: # %bb.3: # %entry ; CHECK-NEXT: movaps %xmm1, %xmm0 -; CHECK-NEXT: .LBB116_4: # %entry +; CHECK-NEXT: .LBB122_4: # %entry ; CHECK-NEXT: subss %xmm0, %xmm3 ; CHECK-NEXT: cvttss2si %xmm3, %rax ; CHECK-NEXT: setbe %cl @@ -4565,10 +4815,10 @@ define <2 x i64> @constrained_vector_fptoui_v2i64_v2f32() #0 { ; AVX1-NEXT: vcomiss %xmm2, %xmm0 ; AVX1-NEXT: vxorps %xmm1, %xmm1, %xmm1 ; AVX1-NEXT: vxorps %xmm3, %xmm3, %xmm3 -; AVX1-NEXT: ja .LBB116_2 +; AVX1-NEXT: ja .LBB122_2 ; AVX1-NEXT: # %bb.1: # %entry ; AVX1-NEXT: vmovaps %xmm0, %xmm3 -; AVX1-NEXT: .LBB116_2: # %entry +; AVX1-NEXT: .LBB122_2: # %entry ; AVX1-NEXT: vsubss %xmm3, %xmm2, %xmm2 ; AVX1-NEXT: vcvttss2si %xmm2, %rax ; AVX1-NEXT: setbe %cl @@ -4578,10 +4828,10 @@ define <2 x i64> @constrained_vector_fptoui_v2i64_v2f32() #0 { ; AVX1-NEXT: vmovq %rcx, %xmm2 ; AVX1-NEXT: vmovss {{.*#+}} xmm3 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] ; AVX1-NEXT: vcomiss %xmm3, %xmm0 -; AVX1-NEXT: ja .LBB116_4 +; AVX1-NEXT: ja .LBB122_4 ; AVX1-NEXT: # %bb.3: # %entry ; AVX1-NEXT: vmovaps %xmm0, %xmm1 -; AVX1-NEXT: .LBB116_4: # %entry +; AVX1-NEXT: .LBB122_4: # %entry ; AVX1-NEXT: vsubss %xmm1, %xmm3, %xmm0 ; AVX1-NEXT: vcvttss2si %xmm0, %rax ; AVX1-NEXT: setbe %cl @@ -4622,10 +4872,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f32() #0 { ; CHECK-NEXT: comiss %xmm2, %xmm1 ; CHECK-NEXT: xorps %xmm0, %xmm0 ; CHECK-NEXT: xorps %xmm3, %xmm3 -; CHECK-NEXT: ja .LBB117_2 +; CHECK-NEXT: ja .LBB123_2 ; CHECK-NEXT: # %bb.1: # %entry ; CHECK-NEXT: movaps %xmm1, %xmm3 -; CHECK-NEXT: .LBB117_2: # %entry +; CHECK-NEXT: .LBB123_2: # %entry ; CHECK-NEXT: subss %xmm3, %xmm2 ; CHECK-NEXT: cvttss2si %xmm2, %rcx ; CHECK-NEXT: setbe %al @@ -4635,10 +4885,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f32() #0 { ; CHECK-NEXT: movss {{.*#+}} xmm2 = [4.3E+1,0.0E+0,0.0E+0,0.0E+0] ; CHECK-NEXT: comiss %xmm2, %xmm1 ; CHECK-NEXT: xorps %xmm3, %xmm3 -; CHECK-NEXT: ja .LBB117_4 +; CHECK-NEXT: ja .LBB123_4 ; CHECK-NEXT: # %bb.3: # %entry ; CHECK-NEXT: movaps %xmm1, %xmm3 -; CHECK-NEXT: .LBB117_4: # %entry +; CHECK-NEXT: .LBB123_4: # %entry ; CHECK-NEXT: subss %xmm3, %xmm2 ; CHECK-NEXT: cvttss2si %xmm2, %rcx ; CHECK-NEXT: setbe %dl @@ -4647,10 +4897,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f32() #0 { ; CHECK-NEXT: xorq %rcx, %rdx ; CHECK-NEXT: movss {{.*#+}} xmm2 = [4.4E+1,0.0E+0,0.0E+0,0.0E+0] ; CHECK-NEXT: comiss %xmm2, %xmm1 -; CHECK-NEXT: ja .LBB117_6 +; CHECK-NEXT: ja .LBB123_6 ; CHECK-NEXT: # %bb.5: # %entry ; CHECK-NEXT: movaps %xmm1, %xmm0 -; CHECK-NEXT: .LBB117_6: # %entry +; CHECK-NEXT: .LBB123_6: # %entry ; CHECK-NEXT: subss %xmm0, %xmm2 ; CHECK-NEXT: cvttss2si %xmm2, %rsi ; CHECK-NEXT: setbe %cl @@ -4666,10 +4916,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f32() #0 { ; AVX1-NEXT: vcomiss %xmm2, %xmm0 ; AVX1-NEXT: vxorps %xmm1, %xmm1, %xmm1 ; AVX1-NEXT: vxorps %xmm3, %xmm3, %xmm3 -; AVX1-NEXT: ja .LBB117_2 +; AVX1-NEXT: ja .LBB123_2 ; AVX1-NEXT: # %bb.1: # %entry ; AVX1-NEXT: vmovaps %xmm0, %xmm3 -; AVX1-NEXT: .LBB117_2: # %entry +; AVX1-NEXT: .LBB123_2: # %entry ; AVX1-NEXT: vsubss %xmm3, %xmm2, %xmm2 ; AVX1-NEXT: vcvttss2si %xmm2, %rax ; AVX1-NEXT: setbe %cl @@ -4680,10 +4930,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f32() #0 { ; AVX1-NEXT: vmovss {{.*#+}} xmm3 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] ; AVX1-NEXT: vcomiss %xmm3, %xmm0 ; AVX1-NEXT: vxorps %xmm4, %xmm4, %xmm4 -; AVX1-NEXT: ja .LBB117_4 +; AVX1-NEXT: ja .LBB123_4 ; AVX1-NEXT: # %bb.3: # %entry ; AVX1-NEXT: vmovaps %xmm0, %xmm4 -; AVX1-NEXT: .LBB117_4: # %entry +; AVX1-NEXT: .LBB123_4: # %entry ; AVX1-NEXT: vsubss %xmm4, %xmm3, %xmm3 ; AVX1-NEXT: vcvttss2si %xmm3, %rax ; AVX1-NEXT: setbe %cl @@ -4694,10 +4944,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f32() #0 { ; AVX1-NEXT: vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0] ; AVX1-NEXT: vmovss {{.*#+}} xmm3 = [4.4E+1,0.0E+0,0.0E+0,0.0E+0] ; AVX1-NEXT: vcomiss %xmm3, %xmm0 -; AVX1-NEXT: ja .LBB117_6 +; AVX1-NEXT: ja .LBB123_6 ; AVX1-NEXT: # %bb.5: # %entry ; AVX1-NEXT: vmovaps %xmm0, %xmm1 -; AVX1-NEXT: .LBB117_6: # %entry +; AVX1-NEXT: .LBB123_6: # %entry ; AVX1-NEXT: vsubss %xmm1, %xmm3, %xmm0 ; AVX1-NEXT: vcvttss2si %xmm0, %rax ; AVX1-NEXT: setbe %cl @@ -4735,10 +4985,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f32() #0 { ; CHECK-NEXT: comiss %xmm0, %xmm2 ; CHECK-NEXT: xorps %xmm1, %xmm1 ; CHECK-NEXT: xorps %xmm3, %xmm3 -; CHECK-NEXT: ja .LBB118_2 +; CHECK-NEXT: ja .LBB124_2 ; CHECK-NEXT: # %bb.1: # %entry ; CHECK-NEXT: movaps %xmm2, %xmm3 -; CHECK-NEXT: .LBB118_2: # %entry +; CHECK-NEXT: .LBB124_2: # %entry ; CHECK-NEXT: subss %xmm3, %xmm0 ; CHECK-NEXT: cvttss2si %xmm0, %rcx ; CHECK-NEXT: setbe %al @@ -4748,10 +4998,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f32() #0 { ; CHECK-NEXT: movss {{.*#+}} xmm0 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] ; CHECK-NEXT: comiss %xmm0, %xmm2 ; CHECK-NEXT: xorps %xmm4, %xmm4 -; CHECK-NEXT: ja .LBB118_4 +; CHECK-NEXT: ja .LBB124_4 ; CHECK-NEXT: # %bb.3: # %entry ; CHECK-NEXT: movaps %xmm2, %xmm4 -; CHECK-NEXT: .LBB118_4: # %entry +; CHECK-NEXT: .LBB124_4: # %entry ; CHECK-NEXT: movq %rax, %xmm3 ; CHECK-NEXT: subss %xmm4, %xmm0 ; CHECK-NEXT: cvttss2si %xmm0, %rax @@ -4763,10 +5013,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f32() #0 { ; CHECK-NEXT: movss {{.*#+}} xmm4 = [4.5E+1,0.0E+0,0.0E+0,0.0E+0] ; CHECK-NEXT: comiss %xmm4, %xmm2 ; CHECK-NEXT: xorps %xmm5, %xmm5 -; CHECK-NEXT: ja .LBB118_6 +; CHECK-NEXT: ja .LBB124_6 ; CHECK-NEXT: # %bb.5: # %entry ; CHECK-NEXT: movaps %xmm2, %xmm5 -; CHECK-NEXT: .LBB118_6: # %entry +; CHECK-NEXT: .LBB124_6: # %entry ; CHECK-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm3[0] ; CHECK-NEXT: subss %xmm5, %xmm4 ; CHECK-NEXT: cvttss2si %xmm4, %rax @@ -4777,10 +5027,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f32() #0 { ; CHECK-NEXT: movq %rcx, %xmm3 ; CHECK-NEXT: movss {{.*#+}} xmm4 = [4.4E+1,0.0E+0,0.0E+0,0.0E+0] ; CHECK-NEXT: comiss %xmm4, %xmm2 -; CHECK-NEXT: ja .LBB118_8 +; CHECK-NEXT: ja .LBB124_8 ; CHECK-NEXT: # %bb.7: # %entry ; CHECK-NEXT: movaps %xmm2, %xmm1 -; CHECK-NEXT: .LBB118_8: # %entry +; CHECK-NEXT: .LBB124_8: # %entry ; CHECK-NEXT: subss %xmm1, %xmm4 ; CHECK-NEXT: cvttss2si %xmm4, %rax ; CHECK-NEXT: setbe %cl @@ -4798,10 +5048,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f32() #0 { ; AVX1-NEXT: vcomiss %xmm2, %xmm0 ; AVX1-NEXT: vxorps %xmm1, %xmm1, %xmm1 ; AVX1-NEXT: vxorps %xmm3, %xmm3, %xmm3 -; AVX1-NEXT: ja .LBB118_2 +; AVX1-NEXT: ja .LBB124_2 ; AVX1-NEXT: # %bb.1: # %entry ; AVX1-NEXT: vmovaps %xmm0, %xmm3 -; AVX1-NEXT: .LBB118_2: # %entry +; AVX1-NEXT: .LBB124_2: # %entry ; AVX1-NEXT: vsubss %xmm3, %xmm2, %xmm2 ; AVX1-NEXT: vcvttss2si %xmm2, %rcx ; AVX1-NEXT: setbe %al @@ -4811,10 +5061,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f32() #0 { ; AVX1-NEXT: vmovss {{.*#+}} xmm3 = [4.4E+1,0.0E+0,0.0E+0,0.0E+0] ; AVX1-NEXT: vcomiss %xmm3, %xmm0 ; AVX1-NEXT: vxorps %xmm4, %xmm4, %xmm4 -; AVX1-NEXT: ja .LBB118_4 +; AVX1-NEXT: ja .LBB124_4 ; AVX1-NEXT: # %bb.3: # %entry ; AVX1-NEXT: vmovaps %xmm0, %xmm4 -; AVX1-NEXT: .LBB118_4: # %entry +; AVX1-NEXT: .LBB124_4: # %entry ; AVX1-NEXT: vmovq %rax, %xmm2 ; AVX1-NEXT: vsubss %xmm4, %xmm3, %xmm3 ; AVX1-NEXT: vcvttss2si %xmm3, %rax @@ -4826,10 +5076,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f32() #0 { ; AVX1-NEXT: vmovss {{.*#+}} xmm4 = [4.3E+1,0.0E+0,0.0E+0,0.0E+0] ; AVX1-NEXT: vcomiss %xmm4, %xmm0 ; AVX1-NEXT: vxorps %xmm5, %xmm5, %xmm5 -; AVX1-NEXT: ja .LBB118_6 +; AVX1-NEXT: ja .LBB124_6 ; AVX1-NEXT: # %bb.5: # %entry ; AVX1-NEXT: vmovaps %xmm0, %xmm5 -; AVX1-NEXT: .LBB118_6: # %entry +; AVX1-NEXT: .LBB124_6: # %entry ; AVX1-NEXT: vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0] ; AVX1-NEXT: vsubss %xmm5, %xmm4, %xmm3 ; AVX1-NEXT: vcvttss2si %xmm3, %rax @@ -4840,10 +5090,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f32() #0 { ; AVX1-NEXT: vmovq %rcx, %xmm3 ; AVX1-NEXT: vmovss {{.*#+}} xmm4 = [4.2E+1,0.0E+0,0.0E+0,0.0E+0] ; AVX1-NEXT: vcomiss %xmm4, %xmm0 -; AVX1-NEXT: ja .LBB118_8 +; AVX1-NEXT: ja .LBB124_8 ; AVX1-NEXT: # %bb.7: # %entry ; AVX1-NEXT: vmovaps %xmm0, %xmm1 -; AVX1-NEXT: .LBB118_8: # %entry +; AVX1-NEXT: .LBB124_8: # %entry ; AVX1-NEXT: vsubss %xmm1, %xmm4, %xmm0 ; AVX1-NEXT: vcvttss2si %xmm0, %rax ; AVX1-NEXT: setbe %cl @@ -5036,10 +5286,10 @@ define <1 x i64> @constrained_vector_fptoui_v1i64_v1f64() #0 { ; CHECK-NEXT: movsd {{.*#+}} xmm2 = [9.2233720368547758E+18,0.0E+0] ; CHECK-NEXT: comisd %xmm0, %xmm2 ; CHECK-NEXT: xorpd %xmm1, %xmm1 -; CHECK-NEXT: ja .LBB123_2 +; CHECK-NEXT: ja .LBB129_2 ; CHECK-NEXT: # %bb.1: # %entry ; CHECK-NEXT: movapd %xmm2, %xmm1 -; CHECK-NEXT: .LBB123_2: # %entry +; CHECK-NEXT: .LBB129_2: # %entry ; CHECK-NEXT: subsd %xmm1, %xmm0 ; CHECK-NEXT: cvttsd2si %xmm0, %rcx ; CHECK-NEXT: setbe %al @@ -5054,10 +5304,10 @@ define <1 x i64> @constrained_vector_fptoui_v1i64_v1f64() #0 { ; AVX1-NEXT: vmovsd {{.*#+}} xmm1 = [9.2233720368547758E+18,0.0E+0] ; AVX1-NEXT: vcomisd %xmm0, %xmm1 ; AVX1-NEXT: vxorpd %xmm2, %xmm2, %xmm2 -; AVX1-NEXT: ja .LBB123_2 +; AVX1-NEXT: ja .LBB129_2 ; AVX1-NEXT: # %bb.1: # %entry ; AVX1-NEXT: vmovapd %xmm1, %xmm2 -; AVX1-NEXT: .LBB123_2: # %entry +; AVX1-NEXT: .LBB129_2: # %entry ; AVX1-NEXT: vsubsd %xmm2, %xmm0, %xmm0 ; AVX1-NEXT: vcvttsd2si %xmm0, %rcx ; AVX1-NEXT: setbe %al @@ -5085,10 +5335,10 @@ define <2 x i64> @constrained_vector_fptoui_v2i64_v2f64() #0 { ; CHECK-NEXT: comisd %xmm2, %xmm1 ; CHECK-NEXT: xorpd %xmm0, %xmm0 ; CHECK-NEXT: xorpd %xmm3, %xmm3 -; CHECK-NEXT: ja .LBB124_2 +; CHECK-NEXT: ja .LBB130_2 ; CHECK-NEXT: # %bb.1: # %entry ; CHECK-NEXT: movapd %xmm1, %xmm3 -; CHECK-NEXT: .LBB124_2: # %entry +; CHECK-NEXT: .LBB130_2: # %entry ; CHECK-NEXT: subsd %xmm3, %xmm2 ; CHECK-NEXT: cvttsd2si %xmm2, %rax ; CHECK-NEXT: setbe %cl @@ -5098,10 +5348,10 @@ define <2 x i64> @constrained_vector_fptoui_v2i64_v2f64() #0 { ; CHECK-NEXT: movq %rcx, %xmm2 ; CHECK-NEXT: movsd {{.*#+}} xmm3 = [4.2100000000000001E+1,0.0E+0] ; CHECK-NEXT: comisd %xmm3, %xmm1 -; CHECK-NEXT: ja .LBB124_4 +; CHECK-NEXT: ja .LBB130_4 ; CHECK-NEXT: # %bb.3: # %entry ; CHECK-NEXT: movapd %xmm1, %xmm0 -; CHECK-NEXT: .LBB124_4: # %entry +; CHECK-NEXT: .LBB130_4: # %entry ; CHECK-NEXT: subsd %xmm0, %xmm3 ; CHECK-NEXT: cvttsd2si %xmm3, %rax ; CHECK-NEXT: setbe %cl @@ -5119,10 +5369,10 @@ define <2 x i64> @constrained_vector_fptoui_v2i64_v2f64() #0 { ; AVX1-NEXT: vcomisd %xmm2, %xmm0 ; AVX1-NEXT: vxorpd %xmm1, %xmm1, %xmm1 ; AVX1-NEXT: vxorpd %xmm3, %xmm3, %xmm3 -; AVX1-NEXT: ja .LBB124_2 +; AVX1-NEXT: ja .LBB130_2 ; AVX1-NEXT: # %bb.1: # %entry ; AVX1-NEXT: vmovapd %xmm0, %xmm3 -; AVX1-NEXT: .LBB124_2: # %entry +; AVX1-NEXT: .LBB130_2: # %entry ; AVX1-NEXT: vsubsd %xmm3, %xmm2, %xmm2 ; AVX1-NEXT: vcvttsd2si %xmm2, %rax ; AVX1-NEXT: setbe %cl @@ -5132,10 +5382,10 @@ define <2 x i64> @constrained_vector_fptoui_v2i64_v2f64() #0 { ; AVX1-NEXT: vmovq %rcx, %xmm2 ; AVX1-NEXT: vmovsd {{.*#+}} xmm3 = [4.2100000000000001E+1,0.0E+0] ; AVX1-NEXT: vcomisd %xmm3, %xmm0 -; AVX1-NEXT: ja .LBB124_4 +; AVX1-NEXT: ja .LBB130_4 ; AVX1-NEXT: # %bb.3: # %entry ; AVX1-NEXT: vmovapd %xmm0, %xmm1 -; AVX1-NEXT: .LBB124_4: # %entry +; AVX1-NEXT: .LBB130_4: # %entry ; AVX1-NEXT: vsubsd %xmm1, %xmm3, %xmm0 ; AVX1-NEXT: vcvttsd2si %xmm0, %rax ; AVX1-NEXT: setbe %cl @@ -5177,10 +5427,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f64() #0 { ; CHECK-NEXT: comisd %xmm2, %xmm1 ; CHECK-NEXT: xorpd %xmm0, %xmm0 ; CHECK-NEXT: xorpd %xmm3, %xmm3 -; CHECK-NEXT: ja .LBB125_2 +; CHECK-NEXT: ja .LBB131_2 ; CHECK-NEXT: # %bb.1: # %entry ; CHECK-NEXT: movapd %xmm1, %xmm3 -; CHECK-NEXT: .LBB125_2: # %entry +; CHECK-NEXT: .LBB131_2: # %entry ; CHECK-NEXT: subsd %xmm3, %xmm2 ; CHECK-NEXT: cvttsd2si %xmm2, %rcx ; CHECK-NEXT: setbe %al @@ -5190,10 +5440,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f64() #0 { ; CHECK-NEXT: movsd {{.*#+}} xmm2 = [4.2200000000000003E+1,0.0E+0] ; CHECK-NEXT: comisd %xmm2, %xmm1 ; CHECK-NEXT: xorpd %xmm3, %xmm3 -; CHECK-NEXT: ja .LBB125_4 +; CHECK-NEXT: ja .LBB131_4 ; CHECK-NEXT: # %bb.3: # %entry ; CHECK-NEXT: movapd %xmm1, %xmm3 -; CHECK-NEXT: .LBB125_4: # %entry +; CHECK-NEXT: .LBB131_4: # %entry ; CHECK-NEXT: subsd %xmm3, %xmm2 ; CHECK-NEXT: cvttsd2si %xmm2, %rcx ; CHECK-NEXT: setbe %dl @@ -5202,10 +5452,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f64() #0 { ; CHECK-NEXT: xorq %rcx, %rdx ; CHECK-NEXT: movsd {{.*#+}} xmm2 = [4.2299999999999997E+1,0.0E+0] ; CHECK-NEXT: comisd %xmm2, %xmm1 -; CHECK-NEXT: ja .LBB125_6 +; CHECK-NEXT: ja .LBB131_6 ; CHECK-NEXT: # %bb.5: # %entry ; CHECK-NEXT: movapd %xmm1, %xmm0 -; CHECK-NEXT: .LBB125_6: # %entry +; CHECK-NEXT: .LBB131_6: # %entry ; CHECK-NEXT: subsd %xmm0, %xmm2 ; CHECK-NEXT: cvttsd2si %xmm2, %rsi ; CHECK-NEXT: setbe %cl @@ -5221,10 +5471,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f64() #0 { ; AVX1-NEXT: vcomisd %xmm2, %xmm0 ; AVX1-NEXT: vxorpd %xmm1, %xmm1, %xmm1 ; AVX1-NEXT: vxorpd %xmm3, %xmm3, %xmm3 -; AVX1-NEXT: ja .LBB125_2 +; AVX1-NEXT: ja .LBB131_2 ; AVX1-NEXT: # %bb.1: # %entry ; AVX1-NEXT: vmovapd %xmm0, %xmm3 -; AVX1-NEXT: .LBB125_2: # %entry +; AVX1-NEXT: .LBB131_2: # %entry ; AVX1-NEXT: vsubsd %xmm3, %xmm2, %xmm2 ; AVX1-NEXT: vcvttsd2si %xmm2, %rax ; AVX1-NEXT: setbe %cl @@ -5235,10 +5485,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f64() #0 { ; AVX1-NEXT: vmovsd {{.*#+}} xmm3 = [4.2100000000000001E+1,0.0E+0] ; AVX1-NEXT: vcomisd %xmm3, %xmm0 ; AVX1-NEXT: vxorpd %xmm4, %xmm4, %xmm4 -; AVX1-NEXT: ja .LBB125_4 +; AVX1-NEXT: ja .LBB131_4 ; AVX1-NEXT: # %bb.3: # %entry ; AVX1-NEXT: vmovapd %xmm0, %xmm4 -; AVX1-NEXT: .LBB125_4: # %entry +; AVX1-NEXT: .LBB131_4: # %entry ; AVX1-NEXT: vsubsd %xmm4, %xmm3, %xmm3 ; AVX1-NEXT: vcvttsd2si %xmm3, %rax ; AVX1-NEXT: setbe %cl @@ -5249,10 +5499,10 @@ define <3 x i64> @constrained_vector_fptoui_v3i64_v3f64() #0 { ; AVX1-NEXT: vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0] ; AVX1-NEXT: vmovsd {{.*#+}} xmm3 = [4.2299999999999997E+1,0.0E+0] ; AVX1-NEXT: vcomisd %xmm3, %xmm0 -; AVX1-NEXT: ja .LBB125_6 +; AVX1-NEXT: ja .LBB131_6 ; AVX1-NEXT: # %bb.5: # %entry ; AVX1-NEXT: vmovapd %xmm0, %xmm1 -; AVX1-NEXT: .LBB125_6: # %entry +; AVX1-NEXT: .LBB131_6: # %entry ; AVX1-NEXT: vsubsd %xmm1, %xmm3, %xmm0 ; AVX1-NEXT: vcvttsd2si %xmm0, %rax ; AVX1-NEXT: setbe %cl @@ -5290,10 +5540,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f64() #0 { ; CHECK-NEXT: comisd %xmm0, %xmm2 ; CHECK-NEXT: xorpd %xmm1, %xmm1 ; CHECK-NEXT: xorpd %xmm3, %xmm3 -; CHECK-NEXT: ja .LBB126_2 +; CHECK-NEXT: ja .LBB132_2 ; CHECK-NEXT: # %bb.1: # %entry ; CHECK-NEXT: movapd %xmm2, %xmm3 -; CHECK-NEXT: .LBB126_2: # %entry +; CHECK-NEXT: .LBB132_2: # %entry ; CHECK-NEXT: subsd %xmm3, %xmm0 ; CHECK-NEXT: cvttsd2si %xmm0, %rcx ; CHECK-NEXT: setbe %al @@ -5303,10 +5553,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f64() #0 { ; CHECK-NEXT: movsd {{.*#+}} xmm0 = [4.2100000000000001E+1,0.0E+0] ; CHECK-NEXT: comisd %xmm0, %xmm2 ; CHECK-NEXT: xorpd %xmm4, %xmm4 -; CHECK-NEXT: ja .LBB126_4 +; CHECK-NEXT: ja .LBB132_4 ; CHECK-NEXT: # %bb.3: # %entry ; CHECK-NEXT: movapd %xmm2, %xmm4 -; CHECK-NEXT: .LBB126_4: # %entry +; CHECK-NEXT: .LBB132_4: # %entry ; CHECK-NEXT: movq %rax, %xmm3 ; CHECK-NEXT: subsd %xmm4, %xmm0 ; CHECK-NEXT: cvttsd2si %xmm0, %rax @@ -5318,10 +5568,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f64() #0 { ; CHECK-NEXT: movsd {{.*#+}} xmm4 = [4.2399999999999999E+1,0.0E+0] ; CHECK-NEXT: comisd %xmm4, %xmm2 ; CHECK-NEXT: xorpd %xmm5, %xmm5 -; CHECK-NEXT: ja .LBB126_6 +; CHECK-NEXT: ja .LBB132_6 ; CHECK-NEXT: # %bb.5: # %entry ; CHECK-NEXT: movapd %xmm2, %xmm5 -; CHECK-NEXT: .LBB126_6: # %entry +; CHECK-NEXT: .LBB132_6: # %entry ; CHECK-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm3[0] ; CHECK-NEXT: subsd %xmm5, %xmm4 ; CHECK-NEXT: cvttsd2si %xmm4, %rax @@ -5332,10 +5582,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f64() #0 { ; CHECK-NEXT: movq %rcx, %xmm3 ; CHECK-NEXT: movsd {{.*#+}} xmm4 = [4.2299999999999997E+1,0.0E+0] ; CHECK-NEXT: comisd %xmm4, %xmm2 -; CHECK-NEXT: ja .LBB126_8 +; CHECK-NEXT: ja .LBB132_8 ; CHECK-NEXT: # %bb.7: # %entry ; CHECK-NEXT: movapd %xmm2, %xmm1 -; CHECK-NEXT: .LBB126_8: # %entry +; CHECK-NEXT: .LBB132_8: # %entry ; CHECK-NEXT: subsd %xmm1, %xmm4 ; CHECK-NEXT: cvttsd2si %xmm4, %rax ; CHECK-NEXT: setbe %cl @@ -5353,10 +5603,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f64() #0 { ; AVX1-NEXT: vcomisd %xmm2, %xmm0 ; AVX1-NEXT: vxorpd %xmm1, %xmm1, %xmm1 ; AVX1-NEXT: vxorpd %xmm3, %xmm3, %xmm3 -; AVX1-NEXT: ja .LBB126_2 +; AVX1-NEXT: ja .LBB132_2 ; AVX1-NEXT: # %bb.1: # %entry ; AVX1-NEXT: vmovapd %xmm0, %xmm3 -; AVX1-NEXT: .LBB126_2: # %entry +; AVX1-NEXT: .LBB132_2: # %entry ; AVX1-NEXT: vsubsd %xmm3, %xmm2, %xmm2 ; AVX1-NEXT: vcvttsd2si %xmm2, %rcx ; AVX1-NEXT: setbe %al @@ -5366,10 +5616,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f64() #0 { ; AVX1-NEXT: vmovsd {{.*#+}} xmm3 = [4.2299999999999997E+1,0.0E+0] ; AVX1-NEXT: vcomisd %xmm3, %xmm0 ; AVX1-NEXT: vxorpd %xmm4, %xmm4, %xmm4 -; AVX1-NEXT: ja .LBB126_4 +; AVX1-NEXT: ja .LBB132_4 ; AVX1-NEXT: # %bb.3: # %entry ; AVX1-NEXT: vmovapd %xmm0, %xmm4 -; AVX1-NEXT: .LBB126_4: # %entry +; AVX1-NEXT: .LBB132_4: # %entry ; AVX1-NEXT: vmovq %rax, %xmm2 ; AVX1-NEXT: vsubsd %xmm4, %xmm3, %xmm3 ; AVX1-NEXT: vcvttsd2si %xmm3, %rax @@ -5381,10 +5631,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f64() #0 { ; AVX1-NEXT: vmovsd {{.*#+}} xmm4 = [4.2200000000000003E+1,0.0E+0] ; AVX1-NEXT: vcomisd %xmm4, %xmm0 ; AVX1-NEXT: vxorpd %xmm5, %xmm5, %xmm5 -; AVX1-NEXT: ja .LBB126_6 +; AVX1-NEXT: ja .LBB132_6 ; AVX1-NEXT: # %bb.5: # %entry ; AVX1-NEXT: vmovapd %xmm0, %xmm5 -; AVX1-NEXT: .LBB126_6: # %entry +; AVX1-NEXT: .LBB132_6: # %entry ; AVX1-NEXT: vpunpcklqdq {{.*#+}} xmm2 = xmm3[0],xmm2[0] ; AVX1-NEXT: vsubsd %xmm5, %xmm4, %xmm3 ; AVX1-NEXT: vcvttsd2si %xmm3, %rax @@ -5395,10 +5645,10 @@ define <4 x i64> @constrained_vector_fptoui_v4i64_v4f64() #0 { ; AVX1-NEXT: vmovq %rcx, %xmm3 ; AVX1-NEXT: vmovsd {{.*#+}} xmm4 = [4.2100000000000001E+1,0.0E+0] ; AVX1-NEXT: vcomisd %xmm4, %xmm0 -; AVX1-NEXT: ja .LBB126_8 +; AVX1-NEXT: ja .LBB132_8 ; AVX1-NEXT: # %bb.7: # %entry ; AVX1-NEXT: vmovapd %xmm0, %xmm1 -; AVX1-NEXT: .LBB126_8: # %entry +; AVX1-NEXT: .LBB132_8: # %entry ; AVX1-NEXT: vsubsd %xmm1, %xmm4, %xmm0 ; AVX1-NEXT: vcvttsd2si %xmm0, %rax ; AVX1-NEXT: setbe %cl @@ -5620,108 +5870,121 @@ entry: ret <4 x double> %result } -define <1 x float> @constrained_vector_ceil_v1f32() #0 { -; CHECK-LABEL: constrained_vector_ceil_v1f32: +define <1 x float> @constrained_vector_ceil_v1f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_ceil_v1f32_var: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; CHECK-NEXT: callq ceilf@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_ceil_v1f32: +; AVX-LABEL: constrained_vector_ceil_v1f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $10, %xmm0, %xmm0, %xmm0 ; AVX-NEXT: retq entry: + %b = load <1 x float>, ptr %a %ceil = call <1 x float> @llvm.experimental.constrained.ceil.v1f32( - <1 x float> , + <1 x float> %b, metadata !"fpexcept.strict") #0 ret <1 x float> %ceil } -define <2 x double> @constrained_vector_ceil_v2f64() #0 { -; CHECK-LABEL: constrained_vector_ceil_v2f64: +define <2 x double> @constrained_vector_ceil_v2f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_ceil_v2f64_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $24, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] -; CHECK-NEXT: callq ceil@PLT +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movaps (%rdi), %xmm0 ; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] ; CHECK-NEXT: callq ceil@PLT -; CHECK-NEXT: unpcklpd (%rsp), %xmm0 # 16-byte Folded Reload -; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] -; CHECK-NEXT: addq $24, %rsp +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq ceil@PLT +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps %xmm1, %xmm0 +; CHECK-NEXT: addq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_ceil_v2f64: +; AVX-LABEL: constrained_vector_ceil_v2f64_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vroundpd $10, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0 +; AVX-NEXT: vroundpd $10, (%rdi), %xmm0 ; AVX-NEXT: retq entry: + %b = load <2 x double>, ptr %a %ceil = call <2 x double> @llvm.experimental.constrained.ceil.v2f64( - <2 x double> , + <2 x double> %b, metadata !"fpexcept.strict") #0 ret <2 x double> %ceil } -define <3 x float> @constrained_vector_ceil_v3f32() #0 { -; CHECK-LABEL: constrained_vector_ceil_v3f32: +define <3 x float> @constrained_vector_ceil_v3f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_ceil_v3f32_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $40, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 48 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [3.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: subq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 64 +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq ceilf@PLT ; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1] ; CHECK-NEXT: callq ceilf@PLT -; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [2.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq ceilf@PLT -; CHECK-NEXT: movaps (%rsp), %xmm1 # 16-byte Reload -; CHECK-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1] -; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload -; CHECK-NEXT: # xmm1 = xmm1[0],mem[0] -; CHECK-NEXT: movaps %xmm1, %xmm0 -; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: unpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1] +; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] +; CHECK-NEXT: addq $56, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_ceil_v3f32: +; AVX-LABEL: constrained_vector_ceil_v3f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [3.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $10, %xmm0, %xmm0, %xmm0 -; AVX-NEXT: vmovss {{.*#+}} xmm1 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero +; AVX-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $10, %xmm1, %xmm1, %xmm1 -; AVX-NEXT: vmovss {{.*#+}} xmm2 = [2.5E+0,0.0E+0,0.0E+0,0.0E+0] ; AVX-NEXT: vroundss $10, %xmm2, %xmm2, %xmm2 ; AVX-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[2,3] ; AVX-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0,1],xmm0[0],xmm1[3] ; AVX-NEXT: retq entry: + %b = load <3 x float>, ptr %a %ceil = call <3 x float> @llvm.experimental.constrained.ceil.v3f32( - <3 x float> , + <3 x float> %b, metadata !"fpexcept.strict") #0 ret <3 x float> %ceil } -define <3 x double> @constrained_vector_ceil_v3f64() #0 { -; CHECK-LABEL: constrained_vector_ceil_v3f64: +define <3 x double> @constrained_vector_ceil_v3f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_ceil_v3f64_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $24, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero +; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq ceil@PLT ; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq ceil@PLT ; CHECK-NEXT: movsd %xmm0, (%rsp) # 8-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.5E+0,0.0E+0] +; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 8-byte Reload +; CHECK-NEXT: # xmm0 = mem[0],zero ; CHECK-NEXT: callq ceil@PLT ; CHECK-NEXT: movsd %xmm0, {{[0-9]+}}(%rsp) ; CHECK-NEXT: fldl {{[0-9]+}}(%rsp) @@ -5730,127 +5993,141 @@ define <3 x double> @constrained_vector_ceil_v3f64() #0 { ; CHECK-NEXT: # xmm0 = mem[0],zero ; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 8-byte Reload ; CHECK-NEXT: # xmm1 = mem[0],zero -; CHECK-NEXT: addq $24, %rsp +; CHECK-NEXT: addq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_ceil_v3f64: +; AVX-LABEL: constrained_vector_ceil_v3f64_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovsd {{.*#+}} xmm0 = [1.5E+0,0.0E+0] +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero ; AVX-NEXT: vroundsd $10, %xmm0, %xmm0, %xmm0 -; AVX-NEXT: vroundpd $10, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1 +; AVX-NEXT: vroundpd $10, (%rdi), %xmm1 ; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0 ; AVX-NEXT: retq entry: + %b = load <3 x double>, ptr %a %ceil = call <3 x double> @llvm.experimental.constrained.ceil.v3f64( - <3 x double> , + <3 x double> %b, metadata !"fpexcept.strict") #0 ret <3 x double> %ceil } -define <1 x float> @constrained_vector_floor_v1f32() #0 { -; CHECK-LABEL: constrained_vector_floor_v1f32: +define <1 x float> @constrained_vector_floor_v1f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_floor_v1f32_var: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; CHECK-NEXT: callq floorf@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_floor_v1f32: +; AVX-LABEL: constrained_vector_floor_v1f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $9, %xmm0, %xmm0, %xmm0 ; AVX-NEXT: retq entry: + %b = load <1 x float>, ptr %a %floor = call <1 x float> @llvm.experimental.constrained.floor.v1f32( - <1 x float> , + <1 x float> %b, metadata !"fpexcept.strict") #0 ret <1 x float> %floor } -define <2 x double> @constrained_vector_floor_v2f64() #0 { -; CHECK-LABEL: constrained_vector_floor_v2f64: +define <2 x double> @constrained_vector_floor_v2f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_floor_v2f64_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $24, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] -; CHECK-NEXT: callq floor@PLT +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movaps (%rdi), %xmm0 ; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] ; CHECK-NEXT: callq floor@PLT -; CHECK-NEXT: unpcklpd (%rsp), %xmm0 # 16-byte Folded Reload -; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] -; CHECK-NEXT: addq $24, %rsp +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq floor@PLT +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps %xmm1, %xmm0 +; CHECK-NEXT: addq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_floor_v2f64: +; AVX-LABEL: constrained_vector_floor_v2f64_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vroundpd $9, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0 +; AVX-NEXT: vroundpd $9, (%rdi), %xmm0 ; AVX-NEXT: retq entry: + %b = load <2 x double>, ptr %a %floor = call <2 x double> @llvm.experimental.constrained.floor.v2f64( - <2 x double> , + <2 x double> %b, metadata !"fpexcept.strict") #0 ret <2 x double> %floor } -define <3 x float> @constrained_vector_floor_v3f32() #0 { -; CHECK-LABEL: constrained_vector_floor_v3f32: +define <3 x float> @constrained_vector_floor_v3f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_floor_v3f32_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $40, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 48 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [3.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: subq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 64 +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq floorf@PLT ; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1] ; CHECK-NEXT: callq floorf@PLT -; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [2.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq floorf@PLT -; CHECK-NEXT: movaps (%rsp), %xmm1 # 16-byte Reload -; CHECK-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1] -; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload -; CHECK-NEXT: # xmm1 = xmm1[0],mem[0] -; CHECK-NEXT: movaps %xmm1, %xmm0 -; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: unpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1] +; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] +; CHECK-NEXT: addq $56, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_floor_v3f32: +; AVX-LABEL: constrained_vector_floor_v3f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [3.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $9, %xmm0, %xmm0, %xmm0 -; AVX-NEXT: vmovss {{.*#+}} xmm1 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero +; AVX-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $9, %xmm1, %xmm1, %xmm1 -; AVX-NEXT: vmovss {{.*#+}} xmm2 = [2.5E+0,0.0E+0,0.0E+0,0.0E+0] ; AVX-NEXT: vroundss $9, %xmm2, %xmm2, %xmm2 ; AVX-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[2,3] ; AVX-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0,1],xmm0[0],xmm1[3] ; AVX-NEXT: retq entry: + %b = load <3 x float>, ptr %a %floor = call <3 x float> @llvm.experimental.constrained.floor.v3f32( - <3 x float> , + <3 x float> %b, metadata !"fpexcept.strict") #0 ret <3 x float> %floor } -define <3 x double> @constrained_vector_floor_v3f64() #0 { -; CHECK-LABEL: constrained_vector_floor_v3f64: +define <3 x double> @constrained_vector_floor_v3f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_floor_v3f64_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $24, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero +; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq floor@PLT ; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq floor@PLT ; CHECK-NEXT: movsd %xmm0, (%rsp) # 8-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.5E+0,0.0E+0] +; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 8-byte Reload +; CHECK-NEXT: # xmm0 = mem[0],zero ; CHECK-NEXT: callq floor@PLT ; CHECK-NEXT: movsd %xmm0, {{[0-9]+}}(%rsp) ; CHECK-NEXT: fldl {{[0-9]+}}(%rsp) @@ -5859,149 +6136,175 @@ define <3 x double> @constrained_vector_floor_v3f64() #0 { ; CHECK-NEXT: # xmm0 = mem[0],zero ; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 8-byte Reload ; CHECK-NEXT: # xmm1 = mem[0],zero -; CHECK-NEXT: addq $24, %rsp +; CHECK-NEXT: addq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_floor_v3f64: +; AVX-LABEL: constrained_vector_floor_v3f64_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovsd {{.*#+}} xmm0 = [1.5E+0,0.0E+0] +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero ; AVX-NEXT: vroundsd $9, %xmm0, %xmm0, %xmm0 -; AVX-NEXT: vroundpd $9, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1 +; AVX-NEXT: vroundpd $9, (%rdi), %xmm1 ; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0 ; AVX-NEXT: retq entry: + %b = load <3 x double>, ptr %a %floor = call <3 x double> @llvm.experimental.constrained.floor.v3f64( - <3 x double> , + <3 x double> %b, metadata !"fpexcept.strict") #0 ret <3 x double> %floor } -define <1 x float> @constrained_vector_round_v1f32() #0 { -; CHECK-LABEL: constrained_vector_round_v1f32: +define <1 x float> @constrained_vector_round_v1f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_round_v1f32_var: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; CHECK-NEXT: callq roundf@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_round_v1f32: +; AVX-LABEL: constrained_vector_round_v1f32_var: ; AVX: # %bb.0: # %entry ; AVX-NEXT: pushq %rax ; AVX-NEXT: .cfi_def_cfa_offset 16 -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: callq roundf@PLT ; AVX-NEXT: popq %rax ; AVX-NEXT: .cfi_def_cfa_offset 8 ; AVX-NEXT: retq entry: + %b = load <1 x float>, ptr %a %round = call <1 x float> @llvm.experimental.constrained.round.v1f32( - <1 x float> , + <1 x float> %b, metadata !"fpexcept.strict") #0 ret <1 x float> %round } -define <2 x double> @constrained_vector_round_v2f64() #0 { -; CHECK-LABEL: constrained_vector_round_v2f64: +define <2 x double> @constrained_vector_round_v2f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_round_v2f64_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $24, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] -; CHECK-NEXT: callq round@PLT +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movaps (%rdi), %xmm0 ; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] ; CHECK-NEXT: callq round@PLT -; CHECK-NEXT: unpcklpd (%rsp), %xmm0 # 16-byte Folded Reload -; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] -; CHECK-NEXT: addq $24, %rsp +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq round@PLT +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps %xmm1, %xmm0 +; CHECK-NEXT: addq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_round_v2f64: +; AVX-LABEL: constrained_vector_round_v2f64_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: subq $24, %rsp -; AVX-NEXT: .cfi_def_cfa_offset 32 -; AVX-NEXT: vmovsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] +; AVX-NEXT: subq $40, %rsp +; AVX-NEXT: .cfi_def_cfa_offset 48 +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero +; AVX-NEXT: vmovsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero ; AVX-NEXT: callq round@PLT -; AVX-NEXT: vmovaps %xmm0, (%rsp) # 16-byte Spill -; AVX-NEXT: vmovsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] +; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; AVX-NEXT: vmovsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 8-byte Reload +; AVX-NEXT: # xmm0 = mem[0],zero ; AVX-NEXT: callq round@PLT -; AVX-NEXT: vunpcklpd (%rsp), %xmm0, %xmm0 # 16-byte Folded Reload +; AVX-NEXT: vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload ; AVX-NEXT: # xmm0 = xmm0[0],mem[0] -; AVX-NEXT: addq $24, %rsp +; AVX-NEXT: addq $40, %rsp ; AVX-NEXT: .cfi_def_cfa_offset 8 ; AVX-NEXT: retq entry: + %b = load <2 x double>, ptr %a %round = call <2 x double> @llvm.experimental.constrained.round.v2f64( - <2 x double> , + <2 x double> %b, metadata !"fpexcept.strict") #0 ret <2 x double> %round } -define <3 x float> @constrained_vector_round_v3f32() #0 { -; CHECK-LABEL: constrained_vector_round_v3f32: +define <3 x float> @constrained_vector_round_v3f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_round_v3f32_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $40, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 48 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [3.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: subq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 64 +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq roundf@PLT ; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1] ; CHECK-NEXT: callq roundf@PLT -; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [2.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq roundf@PLT -; CHECK-NEXT: movaps (%rsp), %xmm1 # 16-byte Reload -; CHECK-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1] -; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload -; CHECK-NEXT: # xmm1 = xmm1[0],mem[0] -; CHECK-NEXT: movaps %xmm1, %xmm0 -; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: unpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1] +; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] +; CHECK-NEXT: addq $56, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_round_v3f32: +; AVX-LABEL: constrained_vector_round_v3f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: subq $40, %rsp -; AVX-NEXT: .cfi_def_cfa_offset 48 -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [3.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: pushq %rbx +; AVX-NEXT: .cfi_def_cfa_offset 16 +; AVX-NEXT: subq $48, %rsp +; AVX-NEXT: .cfi_def_cfa_offset 64 +; AVX-NEXT: .cfi_offset %rbx, -16 +; AVX-NEXT: movq %rdi, %rbx +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: callq roundf@PLT ; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero +; AVX-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero +; AVX-NEXT: vmovss %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 4-byte Spill ; AVX-NEXT: callq roundf@PLT -; AVX-NEXT: vmovaps %xmm0, (%rsp) # 16-byte Spill -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [2.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; AVX-NEXT: vmovss {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 4-byte Reload +; AVX-NEXT: # xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: callq roundf@PLT -; AVX-NEXT: vmovaps (%rsp), %xmm1 # 16-byte Reload +; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload ; AVX-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[2,3] ; AVX-NEXT: vinsertps $32, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload ; AVX-NEXT: # xmm0 = xmm0[0,1],mem[0],xmm0[3] -; AVX-NEXT: addq $40, %rsp +; AVX-NEXT: addq $48, %rsp +; AVX-NEXT: .cfi_def_cfa_offset 16 +; AVX-NEXT: popq %rbx ; AVX-NEXT: .cfi_def_cfa_offset 8 ; AVX-NEXT: retq entry: + %b = load <3 x float>, ptr %a %round = call <3 x float> @llvm.experimental.constrained.round.v3f32( - <3 x float> , + <3 x float> %b, metadata !"fpexcept.strict") #0 ret <3 x float> %round } -define <3 x double> @constrained_vector_round_v3f64() #0 { -; CHECK-LABEL: constrained_vector_round_v3f64: +define <3 x double> @constrained_vector_round_v3f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_round_v3f64_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $24, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero +; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq round@PLT ; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq round@PLT ; CHECK-NEXT: movsd %xmm0, (%rsp) # 8-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.5E+0,0.0E+0] +; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 8-byte Reload +; CHECK-NEXT: # xmm0 = mem[0],zero ; CHECK-NEXT: callq round@PLT ; CHECK-NEXT: movsd %xmm0, {{[0-9]+}}(%rsp) ; CHECK-NEXT: fldl {{[0-9]+}}(%rsp) @@ -6010,139 +6313,162 @@ define <3 x double> @constrained_vector_round_v3f64() #0 { ; CHECK-NEXT: # xmm0 = mem[0],zero ; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 8-byte Reload ; CHECK-NEXT: # xmm1 = mem[0],zero -; CHECK-NEXT: addq $24, %rsp +; CHECK-NEXT: addq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_round_v3f64: +; AVX-LABEL: constrained_vector_round_v3f64_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: subq $40, %rsp -; AVX-NEXT: .cfi_def_cfa_offset 48 -; AVX-NEXT: vmovsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] +; AVX-NEXT: pushq %rbx +; AVX-NEXT: .cfi_def_cfa_offset 16 +; AVX-NEXT: subq $48, %rsp +; AVX-NEXT: .cfi_def_cfa_offset 64 +; AVX-NEXT: .cfi_offset %rbx, -16 +; AVX-NEXT: movq %rdi, %rbx +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero +; AVX-NEXT: vmovsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero ; AVX-NEXT: callq round@PLT ; AVX-NEXT: vmovaps %xmm0, (%rsp) # 16-byte Spill -; AVX-NEXT: vmovsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] +; AVX-NEXT: vmovsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 8-byte Reload +; AVX-NEXT: # xmm0 = mem[0],zero ; AVX-NEXT: callq round@PLT ; AVX-NEXT: vunpcklpd (%rsp), %xmm0, %xmm0 # 16-byte Folded Reload ; AVX-NEXT: # xmm0 = xmm0[0],mem[0] -; AVX-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill -; AVX-NEXT: vmovsd {{.*#+}} xmm0 = [1.5E+0,0.0E+0] +; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero ; AVX-NEXT: vzeroupper ; AVX-NEXT: callq round@PLT -; AVX-NEXT: vmovups (%rsp), %ymm1 # 32-byte Reload +; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload ; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0 -; AVX-NEXT: addq $40, %rsp +; AVX-NEXT: addq $48, %rsp +; AVX-NEXT: .cfi_def_cfa_offset 16 +; AVX-NEXT: popq %rbx ; AVX-NEXT: .cfi_def_cfa_offset 8 ; AVX-NEXT: retq entry: + %b = load <3 x double>, ptr %a %round = call <3 x double> @llvm.experimental.constrained.round.v3f64( - <3 x double> , + <3 x double> %b, metadata !"fpexcept.strict") #0 ret <3 x double> %round } -define <1 x float> @constrained_vector_trunc_v1f32() #0 { -; CHECK-LABEL: constrained_vector_trunc_v1f32: +define <1 x float> @constrained_vector_trunc_v1f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_trunc_v1f32_var: ; CHECK: # %bb.0: # %entry ; CHECK-NEXT: pushq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 16 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; CHECK-NEXT: callq truncf@PLT ; CHECK-NEXT: popq %rax ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_trunc_v1f32: +; AVX-LABEL: constrained_vector_trunc_v1f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $11, %xmm0, %xmm0, %xmm0 ; AVX-NEXT: retq entry: + %b = load <1 x float>, ptr %a %trunc = call <1 x float> @llvm.experimental.constrained.trunc.v1f32( - <1 x float> , + <1 x float> %b, metadata !"fpexcept.strict") #0 ret <1 x float> %trunc } -define <2 x double> @constrained_vector_trunc_v2f64() #0 { -; CHECK-LABEL: constrained_vector_trunc_v2f64: +define <2 x double> @constrained_vector_trunc_v2f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_trunc_v2f64_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $24, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] -; CHECK-NEXT: callq trunc@PLT +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movaps (%rdi), %xmm0 ; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] ; CHECK-NEXT: callq trunc@PLT -; CHECK-NEXT: unpcklpd (%rsp), %xmm0 # 16-byte Folded Reload -; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] -; CHECK-NEXT: addq $24, %rsp +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] +; CHECK-NEXT: callq trunc@PLT +; CHECK-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload +; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0] +; CHECK-NEXT: movaps %xmm1, %xmm0 +; CHECK-NEXT: addq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_trunc_v2f64: +; AVX-LABEL: constrained_vector_trunc_v2f64_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vroundpd $11, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0 +; AVX-NEXT: vroundpd $11, (%rdi), %xmm0 ; AVX-NEXT: retq entry: + %b = load <2 x double>, ptr %a %trunc = call <2 x double> @llvm.experimental.constrained.trunc.v2f64( - <2 x double> , + <2 x double> %b, metadata !"fpexcept.strict") #0 ret <2 x double> %trunc } -define <3 x float> @constrained_vector_trunc_v3f32() #0 { -; CHECK-LABEL: constrained_vector_trunc_v3f32: +define <3 x float> @constrained_vector_trunc_v3f32_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_trunc_v3f32_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $40, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 48 -; CHECK-NEXT: movss {{.*#+}} xmm0 = [3.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: subq $56, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 64 +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq truncf@PLT ; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload +; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1,1,1] ; CHECK-NEXT: callq truncf@PLT -; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill -; CHECK-NEXT: movss {{.*#+}} xmm0 = [2.5E+0,0.0E+0,0.0E+0,0.0E+0] +; CHECK-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq truncf@PLT -; CHECK-NEXT: movaps (%rsp), %xmm1 # 16-byte Reload -; CHECK-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1] -; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload -; CHECK-NEXT: # xmm1 = xmm1[0],mem[0] -; CHECK-NEXT: movaps %xmm1, %xmm0 -; CHECK-NEXT: addq $40, %rsp +; CHECK-NEXT: unpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1] +; CHECK-NEXT: unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload +; CHECK-NEXT: # xmm0 = xmm0[0],mem[0] +; CHECK-NEXT: addq $56, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_trunc_v3f32: +; AVX-LABEL: constrained_vector_trunc_v3f32_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovss {{.*#+}} xmm0 = [3.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $11, %xmm0, %xmm0, %xmm0 -; AVX-NEXT: vmovss {{.*#+}} xmm1 = [1.5E+0,0.0E+0,0.0E+0,0.0E+0] +; AVX-NEXT: vmovss {{.*#+}} xmm1 = mem[0],zero,zero,zero +; AVX-NEXT: vmovss {{.*#+}} xmm2 = mem[0],zero,zero,zero ; AVX-NEXT: vroundss $11, %xmm1, %xmm1, %xmm1 -; AVX-NEXT: vmovss {{.*#+}} xmm2 = [2.5E+0,0.0E+0,0.0E+0,0.0E+0] ; AVX-NEXT: vroundss $11, %xmm2, %xmm2, %xmm2 ; AVX-NEXT: vinsertps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[2,3] ; AVX-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0,1],xmm0[0],xmm1[3] ; AVX-NEXT: retq entry: + %b = load <3 x float>, ptr %a %trunc = call <3 x float> @llvm.experimental.constrained.trunc.v3f32( - <3 x float> , + <3 x float> %b, metadata !"fpexcept.strict") #0 ret <3 x float> %trunc } -define <3 x double> @constrained_vector_trunc_v3f64() #0 { -; CHECK-LABEL: constrained_vector_trunc_v3f64: +define <3 x double> @constrained_vector_trunc_v3f64_var(ptr %a) #0 { +; CHECK-LABEL: constrained_vector_trunc_v3f64_var: ; CHECK: # %bb.0: # %entry -; CHECK-NEXT: subq $24, %rsp -; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.8999999999999999E+0,0.0E+0] +; CHECK-NEXT: subq $40, %rsp +; CHECK-NEXT: .cfi_def_cfa_offset 48 +; CHECK-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero +; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill +; CHECK-NEXT: movaps (%rdi), %xmm0 +; CHECK-NEXT: movaps %xmm0, (%rsp) # 16-byte Spill +; CHECK-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1] ; CHECK-NEXT: callq trunc@PLT ; CHECK-NEXT: movsd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 8-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.1000000000000001E+0,0.0E+0] +; CHECK-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload ; CHECK-NEXT: callq trunc@PLT ; CHECK-NEXT: movsd %xmm0, (%rsp) # 8-byte Spill -; CHECK-NEXT: movsd {{.*#+}} xmm0 = [1.5E+0,0.0E+0] +; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 8-byte Reload +; CHECK-NEXT: # xmm0 = mem[0],zero ; CHECK-NEXT: callq trunc@PLT ; CHECK-NEXT: movsd %xmm0, {{[0-9]+}}(%rsp) ; CHECK-NEXT: fldl {{[0-9]+}}(%rsp) @@ -6151,20 +6477,21 @@ define <3 x double> @constrained_vector_trunc_v3f64() #0 { ; CHECK-NEXT: # xmm0 = mem[0],zero ; CHECK-NEXT: movsd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 8-byte Reload ; CHECK-NEXT: # xmm1 = mem[0],zero -; CHECK-NEXT: addq $24, %rsp +; CHECK-NEXT: addq $40, %rsp ; CHECK-NEXT: .cfi_def_cfa_offset 8 ; CHECK-NEXT: retq ; -; AVX-LABEL: constrained_vector_trunc_v3f64: +; AVX-LABEL: constrained_vector_trunc_v3f64_var: ; AVX: # %bb.0: # %entry -; AVX-NEXT: vmovsd {{.*#+}} xmm0 = [1.5E+0,0.0E+0] +; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero ; AVX-NEXT: vroundsd $11, %xmm0, %xmm0, %xmm0 -; AVX-NEXT: vroundpd $11, {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1 +; AVX-NEXT: vroundpd $11, (%rdi), %xmm1 ; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0 ; AVX-NEXT: retq entry: + %b = load <3 x double>, ptr %a %trunc = call <3 x double> @llvm.experimental.constrained.trunc.v3f64( - <3 x double> , + <3 x double> %b, metadata !"fpexcept.strict") #0 ret <3 x double> %trunc } @@ -6757,10 +7084,10 @@ define <1 x double> @constrained_vector_uitofp_v1f64_v1i64(<1 x i64> %x) #0 { ; CHECK-NEXT: testq %rdi, %rdi ; CHECK-NEXT: cmovnsq %rdi, %rcx ; CHECK-NEXT: cvtsi2sd %rcx, %xmm0 -; CHECK-NEXT: jns .LBB169_2 +; CHECK-NEXT: jns .LBB175_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: addsd %xmm0, %xmm0 -; CHECK-NEXT: .LBB169_2: # %entry +; CHECK-NEXT: .LBB175_2: # %entry ; CHECK-NEXT: retq ; ; AVX1-LABEL: constrained_vector_uitofp_v1f64_v1i64: @@ -6773,10 +7100,10 @@ define <1 x double> @constrained_vector_uitofp_v1f64_v1i64(<1 x i64> %x) #0 { ; AVX1-NEXT: testq %rdi, %rdi ; AVX1-NEXT: cmovnsq %rdi, %rcx ; AVX1-NEXT: vcvtsi2sd %rcx, %xmm0, %xmm0 -; AVX1-NEXT: jns .LBB169_2 +; AVX1-NEXT: jns .LBB175_2 ; AVX1-NEXT: # %bb.1: ; AVX1-NEXT: vaddsd %xmm0, %xmm0, %xmm0 -; AVX1-NEXT: .LBB169_2: # %entry +; AVX1-NEXT: .LBB175_2: # %entry ; AVX1-NEXT: retq ; ; AVX512-LABEL: constrained_vector_uitofp_v1f64_v1i64: @@ -6802,10 +7129,10 @@ define <1 x float> @constrained_vector_uitofp_v1f32_v1i64(<1 x i64> %x) #0 { ; CHECK-NEXT: testq %rdi, %rdi ; CHECK-NEXT: cmovnsq %rdi, %rcx ; CHECK-NEXT: cvtsi2ss %rcx, %xmm0 -; CHECK-NEXT: jns .LBB170_2 +; CHECK-NEXT: jns .LBB176_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: addss %xmm0, %xmm0 -; CHECK-NEXT: .LBB170_2: # %entry +; CHECK-NEXT: .LBB176_2: # %entry ; CHECK-NEXT: retq ; ; AVX1-LABEL: constrained_vector_uitofp_v1f32_v1i64: @@ -6818,10 +7145,10 @@ define <1 x float> @constrained_vector_uitofp_v1f32_v1i64(<1 x i64> %x) #0 { ; AVX1-NEXT: testq %rdi, %rdi ; AVX1-NEXT: cmovnsq %rdi, %rcx ; AVX1-NEXT: vcvtsi2ss %rcx, %xmm0, %xmm0 -; AVX1-NEXT: jns .LBB170_2 +; AVX1-NEXT: jns .LBB176_2 ; AVX1-NEXT: # %bb.1: ; AVX1-NEXT: vaddss %xmm0, %xmm0, %xmm0 -; AVX1-NEXT: .LBB170_2: # %entry +; AVX1-NEXT: .LBB176_2: # %entry ; AVX1-NEXT: retq ; ; AVX512-LABEL: constrained_vector_uitofp_v1f32_v1i64: @@ -6920,10 +7247,10 @@ define <2 x double> @constrained_vector_uitofp_v2f64_v2i64(<2 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: xorps %xmm0, %xmm0 ; CHECK-NEXT: cvtsi2sd %rdx, %xmm0 -; CHECK-NEXT: jns .LBB173_2 +; CHECK-NEXT: jns .LBB179_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: addsd %xmm0, %xmm0 -; CHECK-NEXT: .LBB173_2: # %entry +; CHECK-NEXT: .LBB179_2: # %entry ; CHECK-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3] ; CHECK-NEXT: movq %xmm1, %rax ; CHECK-NEXT: movq %rax, %rcx @@ -6935,10 +7262,10 @@ define <2 x double> @constrained_vector_uitofp_v2f64_v2i64(<2 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: xorps %xmm1, %xmm1 ; CHECK-NEXT: cvtsi2sd %rdx, %xmm1 -; CHECK-NEXT: jns .LBB173_4 +; CHECK-NEXT: jns .LBB179_4 ; CHECK-NEXT: # %bb.3: ; CHECK-NEXT: addsd %xmm1, %xmm1 -; CHECK-NEXT: .LBB173_4: # %entry +; CHECK-NEXT: .LBB179_4: # %entry ; CHECK-NEXT: unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0] ; CHECK-NEXT: retq ; @@ -6953,10 +7280,10 @@ define <2 x double> @constrained_vector_uitofp_v2f64_v2i64(<2 x i64> %x) #0 { ; AVX1-NEXT: testq %rax, %rax ; AVX1-NEXT: cmovnsq %rax, %rdx ; AVX1-NEXT: vcvtsi2sd %rdx, %xmm1, %xmm1 -; AVX1-NEXT: jns .LBB173_2 +; AVX1-NEXT: jns .LBB179_2 ; AVX1-NEXT: # %bb.1: ; AVX1-NEXT: vaddsd %xmm1, %xmm1, %xmm1 -; AVX1-NEXT: .LBB173_2: # %entry +; AVX1-NEXT: .LBB179_2: # %entry ; AVX1-NEXT: vmovq %xmm0, %rax ; AVX1-NEXT: movq %rax, %rcx ; AVX1-NEXT: shrq %rcx @@ -6966,10 +7293,10 @@ define <2 x double> @constrained_vector_uitofp_v2f64_v2i64(<2 x i64> %x) #0 { ; AVX1-NEXT: testq %rax, %rax ; AVX1-NEXT: cmovnsq %rax, %rdx ; AVX1-NEXT: vcvtsi2sd %rdx, %xmm2, %xmm0 -; AVX1-NEXT: jns .LBB173_4 +; AVX1-NEXT: jns .LBB179_4 ; AVX1-NEXT: # %bb.3: ; AVX1-NEXT: vaddsd %xmm0, %xmm0, %xmm0 -; AVX1-NEXT: .LBB173_4: # %entry +; AVX1-NEXT: .LBB179_4: # %entry ; AVX1-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0] ; AVX1-NEXT: retq ; @@ -7011,10 +7338,10 @@ define <2 x float> @constrained_vector_uitofp_v2f32_v2i64(<2 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: xorps %xmm0, %xmm0 ; CHECK-NEXT: cvtsi2ss %rdx, %xmm0 -; CHECK-NEXT: jns .LBB174_2 +; CHECK-NEXT: jns .LBB180_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: addss %xmm0, %xmm0 -; CHECK-NEXT: .LBB174_2: # %entry +; CHECK-NEXT: .LBB180_2: # %entry ; CHECK-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3] ; CHECK-NEXT: movq %xmm1, %rax ; CHECK-NEXT: movq %rax, %rcx @@ -7026,10 +7353,10 @@ define <2 x float> @constrained_vector_uitofp_v2f32_v2i64(<2 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: xorps %xmm1, %xmm1 ; CHECK-NEXT: cvtsi2ss %rdx, %xmm1 -; CHECK-NEXT: jns .LBB174_4 +; CHECK-NEXT: jns .LBB180_4 ; CHECK-NEXT: # %bb.3: ; CHECK-NEXT: addss %xmm1, %xmm1 -; CHECK-NEXT: .LBB174_4: # %entry +; CHECK-NEXT: .LBB180_4: # %entry ; CHECK-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] ; CHECK-NEXT: retq ; @@ -7177,10 +7504,10 @@ define <3 x double> @constrained_vector_uitofp_v3f64_v3i64(<3 x i64> %x) #0 { ; CHECK-NEXT: testq %rdi, %rdi ; CHECK-NEXT: cmovnsq %rdi, %rcx ; CHECK-NEXT: cvtsi2sd %rcx, %xmm0 -; CHECK-NEXT: jns .LBB177_2 +; CHECK-NEXT: jns .LBB183_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: addsd %xmm0, %xmm0 -; CHECK-NEXT: .LBB177_2: # %entry +; CHECK-NEXT: .LBB183_2: # %entry ; CHECK-NEXT: movq %rsi, %rax ; CHECK-NEXT: shrq %rax ; CHECK-NEXT: movl %esi, %ecx @@ -7189,10 +7516,10 @@ define <3 x double> @constrained_vector_uitofp_v3f64_v3i64(<3 x i64> %x) #0 { ; CHECK-NEXT: testq %rsi, %rsi ; CHECK-NEXT: cmovnsq %rsi, %rcx ; CHECK-NEXT: cvtsi2sd %rcx, %xmm1 -; CHECK-NEXT: jns .LBB177_4 +; CHECK-NEXT: jns .LBB183_4 ; CHECK-NEXT: # %bb.3: ; CHECK-NEXT: addsd %xmm1, %xmm1 -; CHECK-NEXT: .LBB177_4: # %entry +; CHECK-NEXT: .LBB183_4: # %entry ; CHECK-NEXT: movq %rdx, %rax ; CHECK-NEXT: shrq %rax ; CHECK-NEXT: movl %edx, %ecx @@ -7201,10 +7528,10 @@ define <3 x double> @constrained_vector_uitofp_v3f64_v3i64(<3 x i64> %x) #0 { ; CHECK-NEXT: testq %rdx, %rdx ; CHECK-NEXT: cmovnsq %rdx, %rcx ; CHECK-NEXT: cvtsi2sd %rcx, %xmm2 -; CHECK-NEXT: jns .LBB177_6 +; CHECK-NEXT: jns .LBB183_6 ; CHECK-NEXT: # %bb.5: ; CHECK-NEXT: addsd %xmm2, %xmm2 -; CHECK-NEXT: .LBB177_6: # %entry +; CHECK-NEXT: .LBB183_6: # %entry ; CHECK-NEXT: movsd %xmm2, -{{[0-9]+}}(%rsp) ; CHECK-NEXT: fldl -{{[0-9]+}}(%rsp) ; CHECK-NEXT: wait @@ -7221,10 +7548,10 @@ define <3 x double> @constrained_vector_uitofp_v3f64_v3i64(<3 x i64> %x) #0 { ; AVX1-NEXT: testq %rax, %rax ; AVX1-NEXT: cmovnsq %rax, %rdx ; AVX1-NEXT: vcvtsi2sd %rdx, %xmm1, %xmm1 -; AVX1-NEXT: jns .LBB177_2 +; AVX1-NEXT: jns .LBB183_2 ; AVX1-NEXT: # %bb.1: ; AVX1-NEXT: vaddsd %xmm1, %xmm1, %xmm1 -; AVX1-NEXT: .LBB177_2: # %entry +; AVX1-NEXT: .LBB183_2: # %entry ; AVX1-NEXT: vmovq %xmm0, %rax ; AVX1-NEXT: movq %rax, %rcx ; AVX1-NEXT: shrq %rcx @@ -7234,10 +7561,10 @@ define <3 x double> @constrained_vector_uitofp_v3f64_v3i64(<3 x i64> %x) #0 { ; AVX1-NEXT: testq %rax, %rax ; AVX1-NEXT: cmovnsq %rax, %rdx ; AVX1-NEXT: vcvtsi2sd %rdx, %xmm2, %xmm2 -; AVX1-NEXT: jns .LBB177_4 +; AVX1-NEXT: jns .LBB183_4 ; AVX1-NEXT: # %bb.3: ; AVX1-NEXT: vaddsd %xmm2, %xmm2, %xmm2 -; AVX1-NEXT: .LBB177_4: # %entry +; AVX1-NEXT: .LBB183_4: # %entry ; AVX1-NEXT: vunpcklpd {{.*#+}} xmm1 = xmm2[0],xmm1[0] ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0 ; AVX1-NEXT: vmovq %xmm0, %rax @@ -7249,10 +7576,10 @@ define <3 x double> @constrained_vector_uitofp_v3f64_v3i64(<3 x i64> %x) #0 { ; AVX1-NEXT: testq %rax, %rax ; AVX1-NEXT: cmovnsq %rax, %rdx ; AVX1-NEXT: vcvtsi2sd %rdx, %xmm3, %xmm0 -; AVX1-NEXT: jns .LBB177_6 +; AVX1-NEXT: jns .LBB183_6 ; AVX1-NEXT: # %bb.5: ; AVX1-NEXT: vaddsd %xmm0, %xmm0, %xmm0 -; AVX1-NEXT: .LBB177_6: # %entry +; AVX1-NEXT: .LBB183_6: # %entry ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0 ; AVX1-NEXT: retq ; @@ -7287,10 +7614,10 @@ define <3 x float> @constrained_vector_uitofp_v3f32_v3i64(<3 x i64> %x) #0 { ; CHECK-NEXT: testq %rsi, %rsi ; CHECK-NEXT: cmovnsq %rsi, %rcx ; CHECK-NEXT: cvtsi2ss %rcx, %xmm1 -; CHECK-NEXT: jns .LBB178_2 +; CHECK-NEXT: jns .LBB184_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: addss %xmm1, %xmm1 -; CHECK-NEXT: .LBB178_2: # %entry +; CHECK-NEXT: .LBB184_2: # %entry ; CHECK-NEXT: movq %rdi, %rax ; CHECK-NEXT: shrq %rax ; CHECK-NEXT: movl %edi, %ecx @@ -7299,10 +7626,10 @@ define <3 x float> @constrained_vector_uitofp_v3f32_v3i64(<3 x i64> %x) #0 { ; CHECK-NEXT: testq %rdi, %rdi ; CHECK-NEXT: cmovnsq %rdi, %rcx ; CHECK-NEXT: cvtsi2ss %rcx, %xmm0 -; CHECK-NEXT: jns .LBB178_4 +; CHECK-NEXT: jns .LBB184_4 ; CHECK-NEXT: # %bb.3: ; CHECK-NEXT: addss %xmm0, %xmm0 -; CHECK-NEXT: .LBB178_4: # %entry +; CHECK-NEXT: .LBB184_4: # %entry ; CHECK-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] ; CHECK-NEXT: movq %rdx, %rax ; CHECK-NEXT: shrq %rax @@ -7313,10 +7640,10 @@ define <3 x float> @constrained_vector_uitofp_v3f32_v3i64(<3 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rdx, %rcx ; CHECK-NEXT: xorps %xmm1, %xmm1 ; CHECK-NEXT: cvtsi2ss %rcx, %xmm1 -; CHECK-NEXT: jns .LBB178_6 +; CHECK-NEXT: jns .LBB184_6 ; CHECK-NEXT: # %bb.5: ; CHECK-NEXT: addss %xmm1, %xmm1 -; CHECK-NEXT: .LBB178_6: # %entry +; CHECK-NEXT: .LBB184_6: # %entry ; CHECK-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0] ; CHECK-NEXT: retq ; @@ -7331,10 +7658,10 @@ define <3 x float> @constrained_vector_uitofp_v3f32_v3i64(<3 x i64> %x) #0 { ; AVX1-NEXT: testq %rax, %rax ; AVX1-NEXT: cmovnsq %rax, %rdx ; AVX1-NEXT: vcvtsi2ss %rdx, %xmm1, %xmm1 -; AVX1-NEXT: jns .LBB178_2 +; AVX1-NEXT: jns .LBB184_2 ; AVX1-NEXT: # %bb.1: ; AVX1-NEXT: vaddss %xmm1, %xmm1, %xmm1 -; AVX1-NEXT: .LBB178_2: # %entry +; AVX1-NEXT: .LBB184_2: # %entry ; AVX1-NEXT: vmovq %xmm0, %rax ; AVX1-NEXT: movq %rax, %rcx ; AVX1-NEXT: shrq %rcx @@ -7344,10 +7671,10 @@ define <3 x float> @constrained_vector_uitofp_v3f32_v3i64(<3 x i64> %x) #0 { ; AVX1-NEXT: testq %rax, %rax ; AVX1-NEXT: cmovnsq %rax, %rdx ; AVX1-NEXT: vcvtsi2ss %rdx, %xmm2, %xmm2 -; AVX1-NEXT: jns .LBB178_4 +; AVX1-NEXT: jns .LBB184_4 ; AVX1-NEXT: # %bb.3: ; AVX1-NEXT: vaddss %xmm2, %xmm2, %xmm2 -; AVX1-NEXT: .LBB178_4: # %entry +; AVX1-NEXT: .LBB184_4: # %entry ; AVX1-NEXT: vinsertps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[2,3] ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0 ; AVX1-NEXT: vmovq %xmm0, %rax @@ -7359,10 +7686,10 @@ define <3 x float> @constrained_vector_uitofp_v3f32_v3i64(<3 x i64> %x) #0 { ; AVX1-NEXT: testq %rax, %rax ; AVX1-NEXT: cmovnsq %rax, %rdx ; AVX1-NEXT: vcvtsi2ss %rdx, %xmm3, %xmm0 -; AVX1-NEXT: jns .LBB178_6 +; AVX1-NEXT: jns .LBB184_6 ; AVX1-NEXT: # %bb.5: ; AVX1-NEXT: vaddss %xmm0, %xmm0, %xmm0 -; AVX1-NEXT: .LBB178_6: # %entry +; AVX1-NEXT: .LBB184_6: # %entry ; AVX1-NEXT: vinsertps {{.*#+}} xmm0 = xmm1[0,1],xmm0[0],xmm1[3] ; AVX1-NEXT: vzeroupper ; AVX1-NEXT: retq @@ -7477,10 +7804,10 @@ define <4 x double> @constrained_vector_uitofp_v4f64_v4i64(<4 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: xorps %xmm0, %xmm0 ; CHECK-NEXT: cvtsi2sd %rdx, %xmm0 -; CHECK-NEXT: jns .LBB181_2 +; CHECK-NEXT: jns .LBB187_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: addsd %xmm0, %xmm0 -; CHECK-NEXT: .LBB181_2: # %entry +; CHECK-NEXT: .LBB187_2: # %entry ; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,3,2,3] ; CHECK-NEXT: movq %xmm2, %rax ; CHECK-NEXT: movq %rax, %rcx @@ -7491,10 +7818,10 @@ define <4 x double> @constrained_vector_uitofp_v4f64_v4i64(<4 x i64> %x) #0 { ; CHECK-NEXT: testq %rax, %rax ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: cvtsi2sd %rdx, %xmm3 -; CHECK-NEXT: jns .LBB181_4 +; CHECK-NEXT: jns .LBB187_4 ; CHECK-NEXT: # %bb.3: ; CHECK-NEXT: addsd %xmm3, %xmm3 -; CHECK-NEXT: .LBB181_4: # %entry +; CHECK-NEXT: .LBB187_4: # %entry ; CHECK-NEXT: movq %xmm1, %rax ; CHECK-NEXT: movq %rax, %rcx ; CHECK-NEXT: shrq %rcx @@ -7505,10 +7832,10 @@ define <4 x double> @constrained_vector_uitofp_v4f64_v4i64(<4 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: xorps %xmm2, %xmm2 ; CHECK-NEXT: cvtsi2sd %rdx, %xmm2 -; CHECK-NEXT: jns .LBB181_6 +; CHECK-NEXT: jns .LBB187_6 ; CHECK-NEXT: # %bb.5: ; CHECK-NEXT: addsd %xmm2, %xmm2 -; CHECK-NEXT: .LBB181_6: # %entry +; CHECK-NEXT: .LBB187_6: # %entry ; CHECK-NEXT: unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm3[0] ; CHECK-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3] ; CHECK-NEXT: movq %xmm1, %rax @@ -7521,10 +7848,10 @@ define <4 x double> @constrained_vector_uitofp_v4f64_v4i64(<4 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: xorps %xmm1, %xmm1 ; CHECK-NEXT: cvtsi2sd %rdx, %xmm1 -; CHECK-NEXT: jns .LBB181_8 +; CHECK-NEXT: jns .LBB187_8 ; CHECK-NEXT: # %bb.7: ; CHECK-NEXT: addsd %xmm1, %xmm1 -; CHECK-NEXT: .LBB181_8: # %entry +; CHECK-NEXT: .LBB187_8: # %entry ; CHECK-NEXT: unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm1[0] ; CHECK-NEXT: movapd %xmm2, %xmm1 ; CHECK-NEXT: retq @@ -7601,10 +7928,10 @@ define <4 x float> @constrained_vector_uitofp_v4f32_v4i64(<4 x i64> %x) #0 { ; CHECK-NEXT: testq %rax, %rax ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: cvtsi2ss %rdx, %xmm2 -; CHECK-NEXT: jns .LBB182_2 +; CHECK-NEXT: jns .LBB188_2 ; CHECK-NEXT: # %bb.1: ; CHECK-NEXT: addss %xmm2, %xmm2 -; CHECK-NEXT: .LBB182_2: # %entry +; CHECK-NEXT: .LBB188_2: # %entry ; CHECK-NEXT: pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3] ; CHECK-NEXT: movq %xmm1, %rax ; CHECK-NEXT: movq %rax, %rcx @@ -7615,10 +7942,10 @@ define <4 x float> @constrained_vector_uitofp_v4f32_v4i64(<4 x i64> %x) #0 { ; CHECK-NEXT: testq %rax, %rax ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: cvtsi2ss %rdx, %xmm3 -; CHECK-NEXT: jns .LBB182_4 +; CHECK-NEXT: jns .LBB188_4 ; CHECK-NEXT: # %bb.3: ; CHECK-NEXT: addss %xmm3, %xmm3 -; CHECK-NEXT: .LBB182_4: # %entry +; CHECK-NEXT: .LBB188_4: # %entry ; CHECK-NEXT: movq %xmm0, %rax ; CHECK-NEXT: movq %rax, %rcx ; CHECK-NEXT: shrq %rcx @@ -7629,10 +7956,10 @@ define <4 x float> @constrained_vector_uitofp_v4f32_v4i64(<4 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: xorps %xmm1, %xmm1 ; CHECK-NEXT: cvtsi2ss %rdx, %xmm1 -; CHECK-NEXT: jns .LBB182_6 +; CHECK-NEXT: jns .LBB188_6 ; CHECK-NEXT: # %bb.5: ; CHECK-NEXT: addss %xmm1, %xmm1 -; CHECK-NEXT: .LBB182_6: # %entry +; CHECK-NEXT: .LBB188_6: # %entry ; CHECK-NEXT: unpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1] ; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3] ; CHECK-NEXT: movq %xmm0, %rax @@ -7645,10 +7972,10 @@ define <4 x float> @constrained_vector_uitofp_v4f32_v4i64(<4 x i64> %x) #0 { ; CHECK-NEXT: cmovnsq %rax, %rdx ; CHECK-NEXT: xorps %xmm0, %xmm0 ; CHECK-NEXT: cvtsi2ss %rdx, %xmm0 -; CHECK-NEXT: jns .LBB182_8 +; CHECK-NEXT: jns .LBB188_8 ; CHECK-NEXT: # %bb.7: ; CHECK-NEXT: addss %xmm0, %xmm0 -; CHECK-NEXT: .LBB182_8: # %entry +; CHECK-NEXT: .LBB188_8: # %entry ; CHECK-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1] ; CHECK-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0] ; CHECK-NEXT: movaps %xmm1, %xmm0 diff --git a/llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.ll b/llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.ll index 00e43df15deea..b3d8d05f69947 100644 --- a/llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.ll +++ b/llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-2.ll @@ -4,14 +4,14 @@ ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX2 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FP ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FCP -; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX512 -; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512-FCP -; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX512DQ -; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-FCP -; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX512BW -; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512BW-FCP -; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX512DQ-BW -; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-BW-FCP +; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX512,AVX512-VL +; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512-FCP +; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX512,AVX512DQ +; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512DQ-FCP +; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX512,AVX512BW +; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512BW-FCP +; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX512,AVX512DQ-BW +; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512,AVX512DQ-BW-FCP ; These patterns are produced by LoopVectorizer for interleaved loads. @@ -69,69 +69,6 @@ define void @load_i16_stride2_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1) nou ; AVX512-NEXT: vmovd %xmm1, (%rsi) ; AVX512-NEXT: vmovd %xmm0, (%rdx) ; AVX512-NEXT: retq -; -; AVX512-FCP-LABEL: load_i16_stride2_vf2: -; AVX512-FCP: # %bb.0: -; AVX512-FCP-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero -; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,2,2,3,4,5,6,7] -; AVX512-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,3,2,3,4,5,6,7] -; AVX512-FCP-NEXT: vmovd %xmm1, (%rsi) -; AVX512-FCP-NEXT: vmovd %xmm0, (%rdx) -; AVX512-FCP-NEXT: retq -; -; AVX512DQ-LABEL: load_i16_stride2_vf2: -; AVX512DQ: # %bb.0: -; AVX512DQ-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero -; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,2,2,3,4,5,6,7] -; AVX512DQ-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,3,2,3,4,5,6,7] -; AVX512DQ-NEXT: vmovd %xmm1, (%rsi) -; AVX512DQ-NEXT: vmovd %xmm0, (%rdx) -; AVX512DQ-NEXT: retq -; -; AVX512DQ-FCP-LABEL: load_i16_stride2_vf2: -; AVX512DQ-FCP: # %bb.0: -; AVX512DQ-FCP-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero -; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,2,2,3,4,5,6,7] -; AVX512DQ-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,3,2,3,4,5,6,7] -; AVX512DQ-FCP-NEXT: vmovd %xmm1, (%rsi) -; AVX512DQ-FCP-NEXT: vmovd %xmm0, (%rdx) -; AVX512DQ-FCP-NEXT: retq -; -; AVX512BW-LABEL: load_i16_stride2_vf2: -; AVX512BW: # %bb.0: -; AVX512BW-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero -; AVX512BW-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,2,2,3,4,5,6,7] -; AVX512BW-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,3,2,3,4,5,6,7] -; AVX512BW-NEXT: vmovd %xmm1, (%rsi) -; AVX512BW-NEXT: vmovd %xmm0, (%rdx) -; AVX512BW-NEXT: retq -; -; AVX512BW-FCP-LABEL: load_i16_stride2_vf2: -; AVX512BW-FCP: # %bb.0: -; AVX512BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero -; AVX512BW-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,2,2,3,4,5,6,7] -; AVX512BW-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,3,2,3,4,5,6,7] -; AVX512BW-FCP-NEXT: vmovd %xmm1, (%rsi) -; AVX512BW-FCP-NEXT: vmovd %xmm0, (%rdx) -; AVX512BW-FCP-NEXT: retq -; -; AVX512DQ-BW-LABEL: load_i16_stride2_vf2: -; AVX512DQ-BW: # %bb.0: -; AVX512DQ-BW-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero -; AVX512DQ-BW-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,2,2,3,4,5,6,7] -; AVX512DQ-BW-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,3,2,3,4,5,6,7] -; AVX512DQ-BW-NEXT: vmovd %xmm1, (%rsi) -; AVX512DQ-BW-NEXT: vmovd %xmm0, (%rdx) -; AVX512DQ-BW-NEXT: retq -; -; AVX512DQ-BW-FCP-LABEL: load_i16_stride2_vf2: -; AVX512DQ-BW-FCP: # %bb.0: -; AVX512DQ-BW-FCP-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero -; AVX512DQ-BW-FCP-NEXT: vpshuflw {{.*#+}} xmm1 = xmm0[0,2,2,3,4,5,6,7] -; AVX512DQ-BW-FCP-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[1,3,2,3,4,5,6,7] -; AVX512DQ-BW-FCP-NEXT: vmovd %xmm1, (%rsi) -; AVX512DQ-BW-FCP-NEXT: vmovd %xmm0, (%rdx) -; AVX512DQ-BW-FCP-NEXT: retq %wide.vec = load <4 x i16>, ptr %in.vec, align 64 %strided.vec0 = shufflevector <4 x i16> %wide.vec, <4 x i16> poison, <2 x i32> %strided.vec1 = shufflevector <4 x i16> %wide.vec, <4 x i16> poison, <2 x i32> @@ -198,62 +135,6 @@ define void @load_i16_stride2_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1) nou ; AVX512-NEXT: vpmovdw %xmm0, (%rsi) ; AVX512-NEXT: vmovq %xmm1, (%rdx) ; AVX512-NEXT: retq -; -; AVX512-FCP-LABEL: load_i16_stride2_vf4: -; AVX512-FCP: # %bb.0: -; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0 -; AVX512-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[2,3,6,7,10,11,14,15,u,u,u,u,u,u,u,u] -; AVX512-FCP-NEXT: vpmovdw %xmm0, (%rsi) -; AVX512-FCP-NEXT: vmovq %xmm1, (%rdx) -; AVX512-FCP-NEXT: retq -; -; AVX512DQ-LABEL: load_i16_stride2_vf4: -; AVX512DQ: # %bb.0: -; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0 -; AVX512DQ-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[2,3,6,7,10,11,14,15,u,u,u,u,u,u,u,u] -; AVX512DQ-NEXT: vpmovdw %xmm0, (%rsi) -; AVX512DQ-NEXT: vmovq %xmm1, (%rdx) -; AVX512DQ-NEXT: retq -; -; AVX512DQ-FCP-LABEL: load_i16_stride2_vf4: -; AVX512DQ-FCP: # %bb.0: -; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0 -; AVX512DQ-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[2,3,6,7,10,11,14,15,u,u,u,u,u,u,u,u] -; AVX512DQ-FCP-NEXT: vpmovdw %xmm0, (%rsi) -; AVX512DQ-FCP-NEXT: vmovq %xmm1, (%rdx) -; AVX512DQ-FCP-NEXT: retq -; -; AVX512BW-LABEL: load_i16_stride2_vf4: -; AVX512BW: # %bb.0: -; AVX512BW-NEXT: vmovdqa (%rdi), %xmm0 -; AVX512BW-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[2,3,6,7,10,11,14,15,u,u,u,u,u,u,u,u] -; AVX512BW-NEXT: vpmovdw %xmm0, (%rsi) -; AVX512BW-NEXT: vmovq %xmm1, (%rdx) -; AVX512BW-NEXT: retq -; -; AVX512BW-FCP-LABEL: load_i16_stride2_vf4: -; AVX512BW-FCP: # %bb.0: -; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %xmm0 -; AVX512BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[2,3,6,7,10,11,14,15,u,u,u,u,u,u,u,u] -; AVX512BW-FCP-NEXT: vpmovdw %xmm0, (%rsi) -; AVX512BW-FCP-NEXT: vmovq %xmm1, (%rdx) -; AVX512BW-FCP-NEXT: retq -; -; AVX512DQ-BW-LABEL: load_i16_stride2_vf4: -; AVX512DQ-BW: # %bb.0: -; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %xmm0 -; AVX512DQ-BW-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[2,3,6,7,10,11,14,15,u,u,u,u,u,u,u,u] -; AVX512DQ-BW-NEXT: vpmovdw %xmm0, (%rsi) -; AVX512DQ-BW-NEXT: vmovq %xmm1, (%rdx) -; AVX512DQ-BW-NEXT: retq -; -; AVX512DQ-BW-FCP-LABEL: load_i16_stride2_vf4: -; AVX512DQ-BW-FCP: # %bb.0: -; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %xmm0 -; AVX512DQ-BW-FCP-NEXT: vpshufb {{.*#+}} xmm1 = xmm0[2,3,6,7,10,11,14,15,u,u,u,u,u,u,u,u] -; AVX512DQ-BW-FCP-NEXT: vpmovdw %xmm0, (%rsi) -; AVX512DQ-BW-FCP-NEXT: vmovq %xmm1, (%rdx) -; AVX512DQ-BW-FCP-NEXT: retq %wide.vec = load <8 x i16>, ptr %in.vec, align 64 %strided.vec0 = shufflevector <8 x i16> %wide.vec, <8 x i16> poison, <4 x i32> %strided.vec1 = shufflevector <8 x i16> %wide.vec, <8 x i16> poison, <4 x i32> @@ -349,69 +230,6 @@ define void @load_i16_stride2_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1) nou ; AVX512-NEXT: vpmovdw %ymm1, (%rdx) ; AVX512-NEXT: vzeroupper ; AVX512-NEXT: retq -; -; AVX512-FCP-LABEL: load_i16_stride2_vf8: -; AVX512-FCP: # %bb.0: -; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm0 -; AVX512-FCP-NEXT: vpsrld $16, %ymm0, %ymm1 -; AVX512-FCP-NEXT: vpmovdw %ymm0, (%rsi) -; AVX512-FCP-NEXT: vpmovdw %ymm1, (%rdx) -; AVX512-FCP-NEXT: vzeroupper -; AVX512-FCP-NEXT: retq -; -; AVX512DQ-LABEL: load_i16_stride2_vf8: -; AVX512DQ: # %bb.0: -; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm0 -; AVX512DQ-NEXT: vpsrld $16, %ymm0, %ymm1 -; AVX512DQ-NEXT: vpmovdw %ymm0, (%rsi) -; AVX512DQ-NEXT: vpmovdw %ymm1, (%rdx) -; AVX512DQ-NEXT: vzeroupper -; AVX512DQ-NEXT: retq -; -; AVX512DQ-FCP-LABEL: load_i16_stride2_vf8: -; AVX512DQ-FCP: # %bb.0: -; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm0 -; AVX512DQ-FCP-NEXT: vpsrld $16, %ymm0, %ymm1 -; AVX512DQ-FCP-NEXT: vpmovdw %ymm0, (%rsi) -; AVX512DQ-FCP-NEXT: vpmovdw %ymm1, (%rdx) -; AVX512DQ-FCP-NEXT: vzeroupper -; AVX512DQ-FCP-NEXT: retq -; -; AVX512BW-LABEL: load_i16_stride2_vf8: -; AVX512BW: # %bb.0: -; AVX512BW-NEXT: vmovdqa (%rdi), %ymm0 -; AVX512BW-NEXT: vpsrld $16, %ymm0, %ymm1 -; AVX512BW-NEXT: vpmovdw %ymm0, (%rsi) -; AVX512BW-NEXT: vpmovdw %ymm1, (%rdx) -; AVX512BW-NEXT: vzeroupper -; AVX512BW-NEXT: retq -; -; AVX512BW-FCP-LABEL: load_i16_stride2_vf8: -; AVX512BW-FCP: # %bb.0: -; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %ymm0 -; AVX512BW-FCP-NEXT: vpsrld $16, %ymm0, %ymm1 -; AVX512BW-FCP-NEXT: vpmovdw %ymm0, (%rsi) -; AVX512BW-FCP-NEXT: vpmovdw %ymm1, (%rdx) -; AVX512BW-FCP-NEXT: vzeroupper -; AVX512BW-FCP-NEXT: retq -; -; AVX512DQ-BW-LABEL: load_i16_stride2_vf8: -; AVX512DQ-BW: # %bb.0: -; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %ymm0 -; AVX512DQ-BW-NEXT: vpsrld $16, %ymm0, %ymm1 -; AVX512DQ-BW-NEXT: vpmovdw %ymm0, (%rsi) -; AVX512DQ-BW-NEXT: vpmovdw %ymm1, (%rdx) -; AVX512DQ-BW-NEXT: vzeroupper -; AVX512DQ-BW-NEXT: retq -; -; AVX512DQ-BW-FCP-LABEL: load_i16_stride2_vf8: -; AVX512DQ-BW-FCP: # %bb.0: -; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %ymm0 -; AVX512DQ-BW-FCP-NEXT: vpsrld $16, %ymm0, %ymm1 -; AVX512DQ-BW-FCP-NEXT: vpmovdw %ymm0, (%rsi) -; AVX512DQ-BW-FCP-NEXT: vpmovdw %ymm1, (%rdx) -; AVX512DQ-BW-FCP-NEXT: vzeroupper -; AVX512DQ-BW-FCP-NEXT: retq %wide.vec = load <16 x i16>, ptr %in.vec, align 64 %strided.vec0 = shufflevector <16 x i16> %wide.vec, <16 x i16> poison, <8 x i32> %strided.vec1 = shufflevector <16 x i16> %wide.vec, <16 x i16> poison, <8 x i32> @@ -544,69 +362,6 @@ define void @load_i16_stride2_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1) no ; AVX512-NEXT: vpmovdw %zmm1, (%rdx) ; AVX512-NEXT: vzeroupper ; AVX512-NEXT: retq -; -; AVX512-FCP-LABEL: load_i16_stride2_vf16: -; AVX512-FCP: # %bb.0: -; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm0 -; AVX512-FCP-NEXT: vpsrld $16, %zmm0, %zmm1 -; AVX512-FCP-NEXT: vpmovdw %zmm0, (%rsi) -; AVX512-FCP-NEXT: vpmovdw %zmm1, (%rdx) -; AVX512-FCP-NEXT: vzeroupper -; AVX512-FCP-NEXT: retq -; -; AVX512DQ-LABEL: load_i16_stride2_vf16: -; AVX512DQ: # %bb.0: -; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm0 -; AVX512DQ-NEXT: vpsrld $16, %zmm0, %zmm1 -; AVX512DQ-NEXT: vpmovdw %zmm0, (%rsi) -; AVX512DQ-NEXT: vpmovdw %zmm1, (%rdx) -; AVX512DQ-NEXT: vzeroupper -; AVX512DQ-NEXT: retq -; -; AVX512DQ-FCP-LABEL: load_i16_stride2_vf16: -; AVX512DQ-FCP: # %bb.0: -; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm0 -; AVX512DQ-FCP-NEXT: vpsrld $16, %zmm0, %zmm1 -; AVX512DQ-FCP-NEXT: vpmovdw %zmm0, (%rsi) -; AVX512DQ-FCP-NEXT: vpmovdw %zmm1, (%rdx) -; AVX512DQ-FCP-NEXT: vzeroupper -; AVX512DQ-FCP-NEXT: retq -; -; AVX512BW-LABEL: load_i16_stride2_vf16: -; AVX512BW: # %bb.0: -; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0 -; AVX512BW-NEXT: vpsrld $16, %zmm0, %zmm1 -; AVX512BW-NEXT: vpmovdw %zmm0, (%rsi) -; AVX512BW-NEXT: vpmovdw %zmm1, (%rdx) -; AVX512BW-NEXT: vzeroupper -; AVX512BW-NEXT: retq -; -; AVX512BW-FCP-LABEL: load_i16_stride2_vf16: -; AVX512BW-FCP: # %bb.0: -; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm0 -; AVX512BW-FCP-NEXT: vpsrld $16, %zmm0, %zmm1 -; AVX512BW-FCP-NEXT: vpmovdw %zmm0, (%rsi) -; AVX512BW-FCP-NEXT: vpmovdw %zmm1, (%rdx) -; AVX512BW-FCP-NEXT: vzeroupper -; AVX512BW-FCP-NEXT: retq -; -; AVX512DQ-BW-LABEL: load_i16_stride2_vf16: -; AVX512DQ-BW: # %bb.0: -; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm0 -; AVX512DQ-BW-NEXT: vpsrld $16, %zmm0, %zmm1 -; AVX512DQ-BW-NEXT: vpmovdw %zmm0, (%rsi) -; AVX512DQ-BW-NEXT: vpmovdw %zmm1, (%rdx) -; AVX512DQ-BW-NEXT: vzeroupper -; AVX512DQ-BW-NEXT: retq -; -; AVX512DQ-BW-FCP-LABEL: load_i16_stride2_vf16: -; AVX512DQ-BW-FCP: # %bb.0: -; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm0 -; AVX512DQ-BW-FCP-NEXT: vpsrld $16, %zmm0, %zmm1 -; AVX512DQ-BW-FCP-NEXT: vpmovdw %zmm0, (%rsi) -; AVX512DQ-BW-FCP-NEXT: vpmovdw %zmm1, (%rdx) -; AVX512DQ-BW-FCP-NEXT: vzeroupper -; AVX512DQ-BW-FCP-NEXT: retq %wide.vec = load <32 x i16>, ptr %in.vec, align 64 %strided.vec0 = shufflevector <32 x i16> %wide.vec, <32 x i16> poison, <16 x i32> %strided.vec1 = shufflevector <32 x i16> %wide.vec, <32 x i16> poison, <16 x i32> @@ -817,18 +572,18 @@ define void @load_i16_stride2_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1) no ; AVX2-FCP-NEXT: vzeroupper ; AVX2-FCP-NEXT: retq ; -; AVX512-LABEL: load_i16_stride2_vf32: -; AVX512: # %bb.0: -; AVX512-NEXT: vmovdqa64 (%rdi), %zmm0 -; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm1 -; AVX512-NEXT: vpsrld $16, %zmm0, %zmm2 -; AVX512-NEXT: vpsrld $16, %zmm1, %zmm3 -; AVX512-NEXT: vpmovdw %zmm1, 32(%rsi) -; AVX512-NEXT: vpmovdw %zmm0, (%rsi) -; AVX512-NEXT: vpmovdw %zmm3, 32(%rdx) -; AVX512-NEXT: vpmovdw %zmm2, (%rdx) -; AVX512-NEXT: vzeroupper -; AVX512-NEXT: retq +; AVX512-VL-LABEL: load_i16_stride2_vf32: +; AVX512-VL: # %bb.0: +; AVX512-VL-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512-VL-NEXT: vmovdqa64 64(%rdi), %zmm1 +; AVX512-VL-NEXT: vpsrld $16, %zmm0, %zmm2 +; AVX512-VL-NEXT: vpsrld $16, %zmm1, %zmm3 +; AVX512-VL-NEXT: vpmovdw %zmm1, 32(%rsi) +; AVX512-VL-NEXT: vpmovdw %zmm0, (%rsi) +; AVX512-VL-NEXT: vpmovdw %zmm3, 32(%rdx) +; AVX512-VL-NEXT: vpmovdw %zmm2, (%rdx) +; AVX512-VL-NEXT: vzeroupper +; AVX512-VL-NEXT: retq ; ; AVX512-FCP-LABEL: load_i16_stride2_vf32: ; AVX512-FCP: # %bb.0: @@ -1344,27 +1099,27 @@ define void @load_i16_stride2_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1) no ; AVX2-FCP-NEXT: vzeroupper ; AVX2-FCP-NEXT: retq ; -; AVX512-LABEL: load_i16_stride2_vf64: -; AVX512: # %bb.0: -; AVX512-NEXT: vmovdqa64 (%rdi), %zmm0 -; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm1 -; AVX512-NEXT: vmovdqa64 128(%rdi), %zmm2 -; AVX512-NEXT: vmovdqa64 192(%rdi), %zmm3 -; AVX512-NEXT: vpmovdw %zmm1, %ymm4 -; AVX512-NEXT: vpsrld $16, %zmm1, %zmm1 -; AVX512-NEXT: vpsrld $16, %zmm0, %zmm5 -; AVX512-NEXT: vpsrld $16, %zmm3, %zmm6 -; AVX512-NEXT: vpsrld $16, %zmm2, %zmm7 -; AVX512-NEXT: vpmovdw %zmm0, (%rsi) -; AVX512-NEXT: vmovdqa %ymm4, 32(%rsi) -; AVX512-NEXT: vpmovdw %zmm2, 64(%rsi) -; AVX512-NEXT: vpmovdw %zmm3, 96(%rsi) -; AVX512-NEXT: vpmovdw %zmm7, 64(%rdx) -; AVX512-NEXT: vpmovdw %zmm6, 96(%rdx) -; AVX512-NEXT: vpmovdw %zmm5, (%rdx) -; AVX512-NEXT: vpmovdw %zmm1, 32(%rdx) -; AVX512-NEXT: vzeroupper -; AVX512-NEXT: retq +; AVX512-VL-LABEL: load_i16_stride2_vf64: +; AVX512-VL: # %bb.0: +; AVX512-VL-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512-VL-NEXT: vmovdqa64 64(%rdi), %zmm1 +; AVX512-VL-NEXT: vmovdqa64 128(%rdi), %zmm2 +; AVX512-VL-NEXT: vmovdqa64 192(%rdi), %zmm3 +; AVX512-VL-NEXT: vpmovdw %zmm1, %ymm4 +; AVX512-VL-NEXT: vpsrld $16, %zmm1, %zmm1 +; AVX512-VL-NEXT: vpsrld $16, %zmm0, %zmm5 +; AVX512-VL-NEXT: vpsrld $16, %zmm3, %zmm6 +; AVX512-VL-NEXT: vpsrld $16, %zmm2, %zmm7 +; AVX512-VL-NEXT: vpmovdw %zmm0, (%rsi) +; AVX512-VL-NEXT: vmovdqa %ymm4, 32(%rsi) +; AVX512-VL-NEXT: vpmovdw %zmm2, 64(%rsi) +; AVX512-VL-NEXT: vpmovdw %zmm3, 96(%rsi) +; AVX512-VL-NEXT: vpmovdw %zmm7, 64(%rdx) +; AVX512-VL-NEXT: vpmovdw %zmm6, 96(%rdx) +; AVX512-VL-NEXT: vpmovdw %zmm5, (%rdx) +; AVX512-VL-NEXT: vpmovdw %zmm1, 32(%rdx) +; AVX512-VL-NEXT: vzeroupper +; AVX512-VL-NEXT: retq ; ; AVX512-FCP-LABEL: load_i16_stride2_vf64: ; AVX512-FCP: # %bb.0: diff --git a/llvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll b/llvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll index c71a96f704ac3..b214bf082f235 100644 --- a/llvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll +++ b/llvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll @@ -413,12 +413,9 @@ define half @test_v2f16(<2 x half> %a0) nounwind { ; AVX512F: # %bb.0: ; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0 ; AVX512F-NEXT: vpsrld $16, %xmm0, %xmm1 -; AVX512F-NEXT: vcvtph2ps %xmm0, %xmm2 -; AVX512F-NEXT: vcvtph2ps %xmm1, %xmm3 -; AVX512F-NEXT: vucomiss %xmm3, %xmm2 -; AVX512F-NEXT: seta %al -; AVX512F-NEXT: negb %al -; AVX512F-NEXT: kmovd %eax, %k1 +; AVX512F-NEXT: vcvtph2ps %xmm0, %ymm2 +; AVX512F-NEXT: vcvtph2ps %xmm1, %ymm3 +; AVX512F-NEXT: vcmpltps %zmm2, %zmm3, %k1 ; AVX512F-NEXT: vmovdqu16 %zmm0, %zmm1 {%k1} ; AVX512F-NEXT: vmovdqa %xmm1, %xmm0 ; AVX512F-NEXT: vzeroupper @@ -427,14 +424,12 @@ define half @test_v2f16(<2 x half> %a0) nounwind { ; AVX512VL-LABEL: test_v2f16: ; AVX512VL: # %bb.0: ; AVX512VL-NEXT: vpsrld $16, %xmm0, %xmm1 -; AVX512VL-NEXT: vcvtph2ps %xmm0, %xmm2 -; AVX512VL-NEXT: vcvtph2ps %xmm1, %xmm3 -; AVX512VL-NEXT: vucomiss %xmm3, %xmm2 -; AVX512VL-NEXT: seta %al -; AVX512VL-NEXT: negb %al -; AVX512VL-NEXT: kmovd %eax, %k1 +; AVX512VL-NEXT: vcvtph2ps %xmm0, %ymm2 +; AVX512VL-NEXT: vcvtph2ps %xmm1, %ymm3 +; AVX512VL-NEXT: vcmpltps %ymm2, %ymm3, %k1 ; AVX512VL-NEXT: vmovdqu16 %xmm0, %xmm1 {%k1} ; AVX512VL-NEXT: vmovdqa %xmm1, %xmm0 +; AVX512VL-NEXT: vzeroupper ; AVX512VL-NEXT: retq ; ; AVX512FP16-LABEL: test_v2f16: diff --git a/llvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll b/llvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll index 2dffe2bf0dfa1..9f37df716b6cd 100644 --- a/llvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll +++ b/llvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll @@ -412,12 +412,9 @@ define half @test_v2f16(<2 x half> %a0) nounwind { ; AVX512F: # %bb.0: ; AVX512F-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0 ; AVX512F-NEXT: vpsrld $16, %xmm0, %xmm1 -; AVX512F-NEXT: vcvtph2ps %xmm0, %xmm2 -; AVX512F-NEXT: vcvtph2ps %xmm1, %xmm3 -; AVX512F-NEXT: xorl %eax, %eax -; AVX512F-NEXT: vucomiss %xmm3, %xmm2 -; AVX512F-NEXT: sbbl %eax, %eax -; AVX512F-NEXT: kmovd %eax, %k1 +; AVX512F-NEXT: vcvtph2ps %xmm0, %ymm2 +; AVX512F-NEXT: vcvtph2ps %xmm1, %ymm3 +; AVX512F-NEXT: vcmpltps %zmm3, %zmm2, %k1 ; AVX512F-NEXT: vmovdqu16 %zmm0, %zmm1 {%k1} ; AVX512F-NEXT: vmovdqa %xmm1, %xmm0 ; AVX512F-NEXT: vzeroupper @@ -426,14 +423,12 @@ define half @test_v2f16(<2 x half> %a0) nounwind { ; AVX512VL-LABEL: test_v2f16: ; AVX512VL: # %bb.0: ; AVX512VL-NEXT: vpsrld $16, %xmm0, %xmm1 -; AVX512VL-NEXT: vcvtph2ps %xmm0, %xmm2 -; AVX512VL-NEXT: vcvtph2ps %xmm1, %xmm3 -; AVX512VL-NEXT: xorl %eax, %eax -; AVX512VL-NEXT: vucomiss %xmm3, %xmm2 -; AVX512VL-NEXT: sbbl %eax, %eax -; AVX512VL-NEXT: kmovd %eax, %k1 +; AVX512VL-NEXT: vcvtph2ps %xmm0, %ymm2 +; AVX512VL-NEXT: vcvtph2ps %xmm1, %ymm3 +; AVX512VL-NEXT: vcmpltps %ymm3, %ymm2, %k1 ; AVX512VL-NEXT: vmovdqu16 %xmm0, %xmm1 {%k1} ; AVX512VL-NEXT: vmovdqa %xmm1, %xmm0 +; AVX512VL-NEXT: vzeroupper ; AVX512VL-NEXT: retq ; ; AVX512FP16-LABEL: test_v2f16: diff --git a/llvm/test/CodeGen/X86/vector-shuffle-128-v4.ll b/llvm/test/CodeGen/X86/vector-shuffle-128-v4.ll index 6360c68e62cc9..6fe16f85ec6be 100644 --- a/llvm/test/CodeGen/X86/vector-shuffle-128-v4.ll +++ b/llvm/test/CodeGen/X86/vector-shuffle-128-v4.ll @@ -2516,10 +2516,8 @@ define <4 x float> @shuffle_mem_v4f32_0624(<4 x float> %a0, ptr %a1) { ; ; AVX512VL-LABEL: shuffle_mem_v4f32_0624: ; AVX512VL: # %bb.0: -; AVX512VL-NEXT: vmovaps (%rdi), %xmm2 -; AVX512VL-NEXT: vmovaps {{.*#+}} xmm1 = [0,6,2,4] -; AVX512VL-NEXT: vpermi2ps %xmm0, %xmm2, %xmm1 -; AVX512VL-NEXT: vmovaps %xmm1, %xmm0 +; AVX512VL-NEXT: vmovaps {{.*#+}} xmm1 = [4,2,6,0] +; AVX512VL-NEXT: vpermt2ps (%rdi), %xmm1, %xmm0 ; AVX512VL-NEXT: retq %1 = load <4 x float>, ptr %a1 %2 = shufflevector <4 x float> %1, <4 x float> %a0, <4 x i32> diff --git a/llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll b/llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll index 97c6c4afa5990..469c087ec9c08 100644 --- a/llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll +++ b/llvm/test/CodeGen/X86/vector-shuffle-512-v64.ll @@ -1101,6 +1101,121 @@ define <64 x i8> @shuffle_v64i8_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_ ret <64 x i8> %r } +define <64 x i8> @shuffle_v64i8_61_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124(<64 x i8> %a0, <64 x i8> %a1) { +; AVX512F-LABEL: shuffle_v64i8_61_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124: +; AVX512F: # %bb.0: +; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm2 +; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm0[2,3],ymm2[0,1] +; AVX512F-NEXT: vpalignr {{.*#+}} ymm2 = ymm3[13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11,12],ymm3[29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27,28] +; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm1 +; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm0[0,1] +; AVX512F-NEXT: vpalignr {{.*#+}} ymm0 = ymm1[13,14,15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12],ymm1[29,30,31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28] +; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm0 +; AVX512F-NEXT: retq +; +; AVX512BW-LABEL: shuffle_v64i8_61_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124: +; AVX512BW: # %bb.0: +; AVX512BW-NEXT: valignq {{.*#+}} zmm1 = zmm1[6,7],zmm0[0,1,2,3,4,5] +; AVX512BW-NEXT: vpalignr {{.*#+}} zmm0 = zmm1[13,14,15],zmm0[0,1,2,3,4,5,6,7,8,9,10,11,12],zmm1[29,30,31],zmm0[16,17,18,19,20,21,22,23,24,25,26,27,28],zmm1[45,46,47],zmm0[32,33,34,35,36,37,38,39,40,41,42,43,44],zmm1[61,62,63],zmm0[48,49,50,51,52,53,54,55,56,57,58,59,60] +; AVX512BW-NEXT: retq +; +; AVX512DQ-LABEL: shuffle_v64i8_61_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124: +; AVX512DQ: # %bb.0: +; AVX512DQ-NEXT: vextracti64x4 $1, %zmm0, %ymm2 +; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm0[2,3],ymm2[0,1] +; AVX512DQ-NEXT: vpalignr {{.*#+}} ymm2 = ymm3[13,14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11,12],ymm3[29,30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27,28] +; AVX512DQ-NEXT: vextracti64x4 $1, %zmm1, %ymm1 +; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm0[0,1] +; AVX512DQ-NEXT: vpalignr {{.*#+}} ymm0 = ymm1[13,14,15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12],ymm1[29,30,31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28] +; AVX512DQ-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm0 +; AVX512DQ-NEXT: retq +; +; AVX512VBMI-LABEL: shuffle_v64i8_61_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124: +; AVX512VBMI: # %bb.0: +; AVX512VBMI-NEXT: valignq {{.*#+}} zmm1 = zmm1[6,7],zmm0[0,1,2,3,4,5] +; AVX512VBMI-NEXT: vpalignr {{.*#+}} zmm0 = zmm1[13,14,15],zmm0[0,1,2,3,4,5,6,7,8,9,10,11,12],zmm1[29,30,31],zmm0[16,17,18,19,20,21,22,23,24,25,26,27,28],zmm1[45,46,47],zmm0[32,33,34,35,36,37,38,39,40,41,42,43,44],zmm1[61,62,63],zmm0[48,49,50,51,52,53,54,55,56,57,58,59,60] +; AVX512VBMI-NEXT: retq + %r = shufflevector <64 x i8> %a1, <64 x i8> %a0, <64 x i32> + ret <64 x i8> %r +} + +; PR79799 +define <64 x i8> @shuffle_v64i8_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125(<64 x i8> %a0, <64 x i8> %a1) { +; AVX512F-LABEL: shuffle_v64i8_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125: +; AVX512F: # %bb.0: +; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm2 +; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm0[2,3],ymm2[0,1] +; AVX512F-NEXT: vpalignr {{.*#+}} ymm2 = ymm3[14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11,12,13],ymm3[30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27,28,29] +; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm1 +; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm0[0,1] +; AVX512F-NEXT: vpalignr {{.*#+}} ymm0 = ymm1[14,15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13],ymm1[30,31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29] +; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm0 +; AVX512F-NEXT: retq +; +; AVX512BW-LABEL: shuffle_v64i8_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125: +; AVX512BW: # %bb.0: +; AVX512BW-NEXT: vpmovsxbw {{.*#+}} zmm2 = [63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30] +; AVX512BW-NEXT: vpermt2w %zmm1, %zmm2, %zmm0 +; AVX512BW-NEXT: retq +; +; AVX512DQ-LABEL: shuffle_v64i8_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125: +; AVX512DQ: # %bb.0: +; AVX512DQ-NEXT: vextracti64x4 $1, %zmm0, %ymm2 +; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm0[2,3],ymm2[0,1] +; AVX512DQ-NEXT: vpalignr {{.*#+}} ymm2 = ymm3[14,15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11,12,13],ymm3[30,31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27,28,29] +; AVX512DQ-NEXT: vextracti64x4 $1, %zmm1, %ymm1 +; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm0[0,1] +; AVX512DQ-NEXT: vpalignr {{.*#+}} ymm0 = ymm1[14,15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13],ymm1[30,31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29] +; AVX512DQ-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm0 +; AVX512DQ-NEXT: retq +; +; AVX512VBMI-LABEL: shuffle_v64i8_62_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125: +; AVX512VBMI: # %bb.0: +; AVX512VBMI-NEXT: vpmovsxbw {{.*#+}} zmm2 = [63,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30] +; AVX512VBMI-NEXT: vpermt2w %zmm1, %zmm2, %zmm0 +; AVX512VBMI-NEXT: retq + %r = shufflevector <64 x i8> %a1, <64 x i8> %a0, <64 x i32> + ret <64 x i8> %r +} + +define <64 x i8> @shuffle_v64i8_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125_126(<64 x i8> %a0, <64 x i8> %a1) { +; AVX512F-LABEL: shuffle_v64i8_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125_126: +; AVX512F: # %bb.0: +; AVX512F-NEXT: vextracti64x4 $1, %zmm0, %ymm2 +; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm0[2,3],ymm2[0,1] +; AVX512F-NEXT: vpalignr {{.*#+}} ymm2 = ymm3[15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm3[31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30] +; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm1 +; AVX512F-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm0[0,1] +; AVX512F-NEXT: vpalignr {{.*#+}} ymm0 = ymm1[15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm1[31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30] +; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm0 +; AVX512F-NEXT: retq +; +; AVX512BW-LABEL: shuffle_v64i8_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125_126: +; AVX512BW: # %bb.0: +; AVX512BW-NEXT: valignq {{.*#+}} zmm1 = zmm1[6,7],zmm0[0,1,2,3,4,5] +; AVX512BW-NEXT: vpalignr {{.*#+}} zmm0 = zmm1[15],zmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],zmm1[31],zmm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],zmm1[47],zmm0[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],zmm1[63],zmm0[48,49,50,51,52,53,54,55,56,57,58,59,60,61,62] +; AVX512BW-NEXT: retq +; +; AVX512DQ-LABEL: shuffle_v64i8_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125_126: +; AVX512DQ: # %bb.0: +; AVX512DQ-NEXT: vextracti64x4 $1, %zmm0, %ymm2 +; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm0[2,3],ymm2[0,1] +; AVX512DQ-NEXT: vpalignr {{.*#+}} ymm2 = ymm3[15],ymm2[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm3[31],ymm2[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30] +; AVX512DQ-NEXT: vextracti64x4 $1, %zmm1, %ymm1 +; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm0[0,1] +; AVX512DQ-NEXT: vpalignr {{.*#+}} ymm0 = ymm1[15],ymm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],ymm1[31],ymm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30] +; AVX512DQ-NEXT: vinserti64x4 $1, %ymm2, %zmm0, %zmm0 +; AVX512DQ-NEXT: retq +; +; AVX512VBMI-LABEL: shuffle_v64i8_63_64_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84_85_86_87_88_89_90_91_92_93_94_95_96_97_98_99_100_101_102_103_104_105_106_107_108_109_110_111_112_113_114_115_116_117_118_119_120_121_122_123_124_125_126: +; AVX512VBMI: # %bb.0: +; AVX512VBMI-NEXT: valignq {{.*#+}} zmm1 = zmm1[6,7],zmm0[0,1,2,3,4,5] +; AVX512VBMI-NEXT: vpalignr {{.*#+}} zmm0 = zmm1[15],zmm0[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],zmm1[31],zmm0[16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],zmm1[47],zmm0[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],zmm1[63],zmm0[48,49,50,51,52,53,54,55,56,57,58,59,60,61,62] +; AVX512VBMI-NEXT: retq + %r = shufflevector <64 x i8> %a1, <64 x i8> %a0, <64 x i32> + ret <64 x i8> %r +} + define <64 x i8> @shuffle_v64i8_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_66_68_72_74_78_80_84_86_90_92_96_98_102_104_108_110_114_116_120_122_126(<64 x i8> %a0, <64 x i8> %a1) { ; AVX512F-LABEL: shuffle_v64i8_00_01_02_03_04_05_06_07_08_09_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40_41_42_66_68_72_74_78_80_84_86_90_92_96_98_102_104_108_110_114_116_120_122_126: ; AVX512F: # %bb.0: diff --git a/llvm/test/CodeGen/X86/vector-shuffle-avx512.ll b/llvm/test/CodeGen/X86/vector-shuffle-avx512.ll index 8cc20ec3c1a7e..3fd73319e8577 100644 --- a/llvm/test/CodeGen/X86/vector-shuffle-avx512.ll +++ b/llvm/test/CodeGen/X86/vector-shuffle-avx512.ll @@ -339,7 +339,7 @@ define <64 x i8> @test_mm512_mask_blend_epi8(<64 x i8> %A, <64 x i8> %W){ ; AVX512F: # %bb.0: # %entry ; AVX512F-NEXT: vpbroadcastw {{.*#+}} ymm2 = [255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0,255,0] ; AVX512F-NEXT: vinserti64x4 $1, %ymm2, %zmm2, %zmm2 -; AVX512F-NEXT: vpternlogq $216, %zmm2, %zmm1, %zmm0 +; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 = zmm0 ^ (zmm2 & (zmm0 ^ zmm1)) ; AVX512F-NEXT: ret{{[l|q]}} entry: %0 = shufflevector <64 x i8> %A, <64 x i8> %W, <64 x i32> @@ -354,15 +354,10 @@ define <32 x i16> @test_mm512_mask_blend_epi16(<32 x i16> %A, <32 x i16> %W){ ; AVX512-NEXT: vpblendmw %zmm0, %zmm1, %zmm0 {%k1} ; AVX512-NEXT: ret{{[l|q]}} ; -; X86-AVX512F-LABEL: test_mm512_mask_blend_epi16: -; X86-AVX512F: # %bb.0: # %entry -; X86-AVX512F-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}{1to16}, %zmm1, %zmm0 -; X86-AVX512F-NEXT: retl -; -; X64-AVX512F-LABEL: test_mm512_mask_blend_epi16: -; X64-AVX512F: # %bb.0: # %entry -; X64-AVX512F-NEXT: vpternlogd $216, {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm1, %zmm0 -; X64-AVX512F-NEXT: retq +; AVX512F-LABEL: test_mm512_mask_blend_epi16: +; AVX512F: # %bb.0: # %entry +; AVX512F-NEXT: vpternlogd {{.*#+}} zmm0 = zmm0 ^ (mem & (zmm0 ^ zmm1)) +; AVX512F-NEXT: ret{{[l|q]}} entry: %0 = shufflevector <32 x i16> %A, <32 x i16> %W, <32 x i32> ret <32 x i16> %0 @@ -486,18 +481,14 @@ define <8 x float> @test_masked_permps_v8f32(ptr %vp, <8 x float> %vec2) { ; X86-AVX512-LABEL: test_masked_permps_v8f32: ; X86-AVX512: # %bb.0: ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax -; X86-AVX512-NEXT: vmovaps (%eax), %ymm2 -; X86-AVX512-NEXT: vmovaps {{.*#+}} ymm1 = [7,6,3,11,7,6,14,15] -; X86-AVX512-NEXT: vpermi2ps %ymm0, %ymm2, %ymm1 -; X86-AVX512-NEXT: vmovaps %ymm1, %ymm0 +; X86-AVX512-NEXT: vmovaps {{.*#+}} ymm1 = [15,14,11,3,15,14,6,7] +; X86-AVX512-NEXT: vpermt2ps (%eax), %ymm1, %ymm0 ; X86-AVX512-NEXT: retl ; ; X64-AVX512-LABEL: test_masked_permps_v8f32: ; X64-AVX512: # %bb.0: -; X64-AVX512-NEXT: vmovaps (%rdi), %ymm2 -; X64-AVX512-NEXT: vmovaps {{.*#+}} ymm1 = [7,6,3,11,7,6,14,15] -; X64-AVX512-NEXT: vpermi2ps %ymm0, %ymm2, %ymm1 -; X64-AVX512-NEXT: vmovaps %ymm1, %ymm0 +; X64-AVX512-NEXT: vmovaps {{.*#+}} ymm1 = [15,14,11,3,15,14,6,7] +; X64-AVX512-NEXT: vpermt2ps (%rdi), %ymm1, %ymm0 ; X64-AVX512-NEXT: retq ; ; X86-AVX512F-LABEL: test_masked_permps_v8f32: @@ -505,18 +496,18 @@ define <8 x float> @test_masked_permps_v8f32(ptr %vp, <8 x float> %vec2) { ; X86-AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0 ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax ; X86-AVX512F-NEXT: vmovaps (%eax), %ymm1 -; X86-AVX512F-NEXT: vmovaps {{.*#+}} ymm2 = [7,6,3,19,7,6,22,23] -; X86-AVX512F-NEXT: vpermt2ps %zmm0, %zmm2, %zmm1 -; X86-AVX512F-NEXT: vmovaps %ymm1, %ymm0 +; X86-AVX512F-NEXT: vmovaps {{.*#+}} ymm2 = [23,22,19,3,23,22,6,7] +; X86-AVX512F-NEXT: vpermt2ps %zmm1, %zmm2, %zmm0 +; X86-AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0 ; X86-AVX512F-NEXT: retl ; ; X64-AVX512F-LABEL: test_masked_permps_v8f32: ; X64-AVX512F: # %bb.0: ; X64-AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0 ; X64-AVX512F-NEXT: vmovaps (%rdi), %ymm1 -; X64-AVX512F-NEXT: vmovaps {{.*#+}} ymm2 = [7,6,3,19,7,6,22,23] -; X64-AVX512F-NEXT: vpermt2ps %zmm0, %zmm2, %zmm1 -; X64-AVX512F-NEXT: vmovaps %ymm1, %ymm0 +; X64-AVX512F-NEXT: vmovaps {{.*#+}} ymm2 = [23,22,19,3,23,22,6,7] +; X64-AVX512F-NEXT: vpermt2ps %zmm1, %zmm2, %zmm0 +; X64-AVX512F-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0 ; X64-AVX512F-NEXT: retq %vec = load <8 x float>, ptr %vp %shuf = shufflevector <8 x float> %vec, <8 x float> undef, <8 x i32> @@ -528,35 +519,27 @@ define <16 x float> @test_masked_permps_v16f32(ptr %vp, <16 x float> %vec2) { ; X86-AVX512-LABEL: test_masked_permps_v16f32: ; X86-AVX512: # %bb.0: ; X86-AVX512-NEXT: movl {{[0-9]+}}(%esp), %eax -; X86-AVX512-NEXT: vmovaps (%eax), %zmm2 -; X86-AVX512-NEXT: vmovaps {{.*#+}} zmm1 = [15,13,11,19,14,12,22,23,7,6,3,27,7,29,3,31] -; X86-AVX512-NEXT: vpermi2ps %zmm0, %zmm2, %zmm1 -; X86-AVX512-NEXT: vmovaps %zmm1, %zmm0 +; X86-AVX512-NEXT: vmovaps {{.*#+}} zmm1 = [31,29,27,3,30,28,6,7,23,22,19,11,23,13,19,15] +; X86-AVX512-NEXT: vpermt2ps (%eax), %zmm1, %zmm0 ; X86-AVX512-NEXT: retl ; ; X64-AVX512-LABEL: test_masked_permps_v16f32: ; X64-AVX512: # %bb.0: -; X64-AVX512-NEXT: vmovaps (%rdi), %zmm2 -; X64-AVX512-NEXT: vmovaps {{.*#+}} zmm1 = [15,13,11,19,14,12,22,23,7,6,3,27,7,29,3,31] -; X64-AVX512-NEXT: vpermi2ps %zmm0, %zmm2, %zmm1 -; X64-AVX512-NEXT: vmovaps %zmm1, %zmm0 +; X64-AVX512-NEXT: vmovaps {{.*#+}} zmm1 = [31,29,27,3,30,28,6,7,23,22,19,11,23,13,19,15] +; X64-AVX512-NEXT: vpermt2ps (%rdi), %zmm1, %zmm0 ; X64-AVX512-NEXT: retq ; ; X86-AVX512F-LABEL: test_masked_permps_v16f32: ; X86-AVX512F: # %bb.0: ; X86-AVX512F-NEXT: movl {{[0-9]+}}(%esp), %eax -; X86-AVX512F-NEXT: vmovaps (%eax), %zmm2 -; X86-AVX512F-NEXT: vmovaps {{.*#+}} zmm1 = [15,13,11,19,14,12,22,23,7,6,3,27,7,29,3,31] -; X86-AVX512F-NEXT: vpermi2ps %zmm0, %zmm2, %zmm1 -; X86-AVX512F-NEXT: vmovaps %zmm1, %zmm0 +; X86-AVX512F-NEXT: vmovaps {{.*#+}} zmm1 = [31,29,27,3,30,28,6,7,23,22,19,11,23,13,19,15] +; X86-AVX512F-NEXT: vpermt2ps (%eax), %zmm1, %zmm0 ; X86-AVX512F-NEXT: retl ; ; X64-AVX512F-LABEL: test_masked_permps_v16f32: ; X64-AVX512F: # %bb.0: -; X64-AVX512F-NEXT: vmovaps (%rdi), %zmm2 -; X64-AVX512F-NEXT: vmovaps {{.*#+}} zmm1 = [15,13,11,19,14,12,22,23,7,6,3,27,7,29,3,31] -; X64-AVX512F-NEXT: vpermi2ps %zmm0, %zmm2, %zmm1 -; X64-AVX512F-NEXT: vmovaps %zmm1, %zmm0 +; X64-AVX512F-NEXT: vmovaps {{.*#+}} zmm1 = [31,29,27,3,30,28,6,7,23,22,19,11,23,13,19,15] +; X64-AVX512F-NEXT: vpermt2ps (%rdi), %zmm1, %zmm0 ; X64-AVX512F-NEXT: retq %vec = load <16 x float>, ptr %vp %shuf = shufflevector <16 x float> %vec, <16 x float> undef, <16 x i32> diff --git a/llvm/test/CodeGen/X86/vector-shuffle-v1.ll b/llvm/test/CodeGen/X86/vector-shuffle-v1.ll index 6f9b3e94aa68f..2b89590a0bb41 100644 --- a/llvm/test/CodeGen/X86/vector-shuffle-v1.ll +++ b/llvm/test/CodeGen/X86/vector-shuffle-v1.ll @@ -719,10 +719,9 @@ define i8 @shuf8i1__9_6_1_10_3_7_7_1(i8 %a) { ; AVX512F: # %bb.0: ; AVX512F-NEXT: kmovw %edi, %k1 ; AVX512F-NEXT: vpternlogq {{.*#+}} zmm0 {%k1} {z} = -1 -; AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm1 = [9,6,1,0,3,7,7,1] -; AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm2 = [18446744073709551615,18446744073709551615,0,0,0,0,0,0] -; AVX512F-NEXT: vpermt2q %zmm0, %zmm1, %zmm2 -; AVX512F-NEXT: vptestmq %zmm2, %zmm2, %k0 +; AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm1 = [1,14,9,8,11,15,15,9] +; AVX512F-NEXT: vpermi2q {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm0, %zmm1 +; AVX512F-NEXT: vptestmq %zmm1, %zmm1, %k0 ; AVX512F-NEXT: kmovw %k0, %eax ; AVX512F-NEXT: # kill: def $al killed $al killed $eax ; AVX512F-NEXT: vzeroupper diff --git a/llvm/test/CodeGen/X86/vector-shuffle-v48.ll b/llvm/test/CodeGen/X86/vector-shuffle-v48.ll index ed9f849d35d00..0efbe018764d2 100644 --- a/llvm/test/CodeGen/X86/vector-shuffle-v48.ll +++ b/llvm/test/CodeGen/X86/vector-shuffle-v48.ll @@ -79,10 +79,9 @@ define <32 x i8> @foo(ptr %x0) { ; ; AVX512VBMI-LABEL: foo: ; AVX512VBMI: # %bb.0: -; AVX512VBMI-NEXT: vmovdqu (%rdi), %ymm1 -; AVX512VBMI-NEXT: vmovdqu 32(%rdi), %xmm2 -; AVX512VBMI-NEXT: vmovdqa {{.*#+}} ymm0 = [0,1,3,4,6,7,9,10,12,13,15,16,18,19,21,22,24,25,27,28,30,31,33,34,36,37,39,40,42,43,45,46] -; AVX512VBMI-NEXT: vpermi2b %ymm2, %ymm1, %ymm0 +; AVX512VBMI-NEXT: vmovdqu 32(%rdi), %xmm1 +; AVX512VBMI-NEXT: vmovdqa {{.*#+}} ymm0 = [32,33,35,36,38,39,41,42,44,45,47,48,50,51,53,54,56,57,59,60,62,63,1,2,4,5,7,8,10,11,13,14] +; AVX512VBMI-NEXT: vpermi2b (%rdi), %ymm1, %ymm0 ; AVX512VBMI-NEXT: retq %1 = load <48 x i8>, ptr %x0, align 1 %2 = shufflevector <48 x i8> %1, <48 x i8> undef, <32 x i32> diff --git a/llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll b/llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll index ac267544f0c0e..181f5651784d8 100644 --- a/llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll +++ b/llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast_from_memory.ll @@ -4895,11 +4895,10 @@ define void @vec512_i8_widen_to_i256_factor32_broadcast_to_v2i256_factor2(ptr %i ; ; AVX512BW-LABEL: vec512_i8_widen_to_i256_factor32_broadcast_to_v2i256_factor2: ; AVX512BW: # %bb.0: -; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm0 = [8,0,2,0,8,0,6,0] ; AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,0,10,0,0,0,14,0] -; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm2 -; AVX512BW-NEXT: vpandq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm2, %zmm0 +; AVX512BW-NEXT: vpermt2q (%rdi), %zmm0, %zmm1 +; AVX512BW-NEXT: vpandq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm1, %zmm0 ; AVX512BW-NEXT: vpaddb (%rsi), %zmm0, %zmm0 ; AVX512BW-NEXT: vmovdqa64 %zmm0, (%rdx) ; AVX512BW-NEXT: vzeroupper @@ -4997,11 +4996,10 @@ define void @vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16(ptr %i ; ; AVX512BW-LABEL: vec512_i16_widen_to_i32_factor2_broadcast_to_v16i32_factor16: ; AVX512BW: # %bb.0: -; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512BW-NEXT: vpmovsxbw {{.*#+}} zmm0 = [32,1,32,3,32,5,32,7,32,9,32,11,32,13,32,15,32,17,32,19,32,21,32,23,32,25,32,27,32,29,32,31] ; AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512BW-NEXT: vpmovsxbw {{.*#+}} zmm2 = [0,33,0,35,0,37,0,39,0,41,0,43,0,45,0,47,0,49,0,51,0,53,0,55,0,57,0,59,0,61,0,63] -; AVX512BW-NEXT: vpermi2w %zmm1, %zmm0, %zmm2 -; AVX512BW-NEXT: vpaddb (%rsi), %zmm2, %zmm0 +; AVX512BW-NEXT: vpermt2w (%rdi), %zmm0, %zmm1 +; AVX512BW-NEXT: vpaddb (%rsi), %zmm1, %zmm0 ; AVX512BW-NEXT: vmovdqa64 %zmm0, (%rdx) ; AVX512BW-NEXT: vzeroupper ; AVX512BW-NEXT: retq @@ -5411,13 +5409,12 @@ define void @vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8(ptr %in. ; ; AVX512F-LABEL: vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8: ; AVX512F: # %bb.0: -; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512F-NEXT: vpmovsxbd {{.*#+}} zmm0 = [16,1,16,3,16,5,16,7,16,9,16,11,16,13,16,15] ; AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512F-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,17,0,19,0,21,0,23,0,25,0,27,0,29,0,31] -; AVX512F-NEXT: vpermi2d %zmm1, %zmm0, %zmm2 -; AVX512F-NEXT: vextracti64x4 $1, %zmm2, %ymm0 +; AVX512F-NEXT: vpermt2d (%rdi), %zmm0, %zmm1 +; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm0 ; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm0 -; AVX512F-NEXT: vpaddb (%rsi), %ymm2, %ymm1 +; AVX512F-NEXT: vpaddb (%rsi), %ymm1, %ymm1 ; AVX512F-NEXT: vmovdqa %ymm1, (%rdx) ; AVX512F-NEXT: vmovdqa %ymm0, 32(%rdx) ; AVX512F-NEXT: vzeroupper @@ -5425,13 +5422,12 @@ define void @vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8(ptr %in. ; ; AVX512DQ-LABEL: vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8: ; AVX512DQ: # %bb.0: -; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm0 = [16,1,16,3,16,5,16,7,16,9,16,11,16,13,16,15] ; AVX512DQ-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,17,0,19,0,21,0,23,0,25,0,27,0,29,0,31] -; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm0, %zmm2 -; AVX512DQ-NEXT: vextracti64x4 $1, %zmm2, %ymm0 +; AVX512DQ-NEXT: vpermt2d (%rdi), %zmm0, %zmm1 +; AVX512DQ-NEXT: vextracti64x4 $1, %zmm1, %ymm0 ; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm0 -; AVX512DQ-NEXT: vpaddb (%rsi), %ymm2, %ymm1 +; AVX512DQ-NEXT: vpaddb (%rsi), %ymm1, %ymm1 ; AVX512DQ-NEXT: vmovdqa %ymm1, (%rdx) ; AVX512DQ-NEXT: vmovdqa %ymm0, 32(%rdx) ; AVX512DQ-NEXT: vzeroupper @@ -5439,11 +5435,10 @@ define void @vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8(ptr %in. ; ; AVX512BW-LABEL: vec512_i32_widen_to_i64_factor2_broadcast_to_v8i64_factor8: ; AVX512BW: # %bb.0: -; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [16,1,16,3,16,5,16,7,16,9,16,11,16,13,16,15] ; AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,17,0,19,0,21,0,23,0,25,0,27,0,29,0,31] -; AVX512BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm2 -; AVX512BW-NEXT: vpaddb (%rsi), %zmm2, %zmm0 +; AVX512BW-NEXT: vpermt2d (%rdi), %zmm0, %zmm1 +; AVX512BW-NEXT: vpaddb (%rsi), %zmm1, %zmm0 ; AVX512BW-NEXT: vmovdqa64 %zmm0, (%rdx) ; AVX512BW-NEXT: vzeroupper ; AVX512BW-NEXT: retq @@ -5679,13 +5674,12 @@ define void @vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4(ptr %i ; ; AVX512F-LABEL: vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4: ; AVX512F: # %bb.0: -; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm0 = [8,1,8,3,8,5,8,7] ; AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,9,0,11,0,13,0,15] -; AVX512F-NEXT: vpermi2q %zmm1, %zmm0, %zmm2 -; AVX512F-NEXT: vextracti64x4 $1, %zmm2, %ymm0 +; AVX512F-NEXT: vpermt2q (%rdi), %zmm0, %zmm1 +; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm0 ; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm0 -; AVX512F-NEXT: vpaddb (%rsi), %ymm2, %ymm1 +; AVX512F-NEXT: vpaddb (%rsi), %ymm1, %ymm1 ; AVX512F-NEXT: vmovdqa %ymm1, (%rdx) ; AVX512F-NEXT: vmovdqa %ymm0, 32(%rdx) ; AVX512F-NEXT: vzeroupper @@ -5693,13 +5687,12 @@ define void @vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4(ptr %i ; ; AVX512DQ-LABEL: vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4: ; AVX512DQ: # %bb.0: -; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm0 = [8,1,8,3,8,5,8,7] ; AVX512DQ-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,9,0,11,0,13,0,15] -; AVX512DQ-NEXT: vpermi2q %zmm1, %zmm0, %zmm2 -; AVX512DQ-NEXT: vextracti64x4 $1, %zmm2, %ymm0 +; AVX512DQ-NEXT: vpermt2q (%rdi), %zmm0, %zmm1 +; AVX512DQ-NEXT: vextracti64x4 $1, %zmm1, %ymm0 ; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm0 -; AVX512DQ-NEXT: vpaddb (%rsi), %ymm2, %ymm1 +; AVX512DQ-NEXT: vpaddb (%rsi), %ymm1, %ymm1 ; AVX512DQ-NEXT: vmovdqa %ymm1, (%rdx) ; AVX512DQ-NEXT: vmovdqa %ymm0, 32(%rdx) ; AVX512DQ-NEXT: vzeroupper @@ -5707,11 +5700,10 @@ define void @vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4(ptr %i ; ; AVX512BW-LABEL: vec512_i64_widen_to_i128_factor2_broadcast_to_v4i128_factor4: ; AVX512BW: # %bb.0: -; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm0 = [8,1,8,3,8,5,8,7] ; AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,9,0,11,0,13,0,15] -; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm2 -; AVX512BW-NEXT: vpaddb (%rsi), %zmm2, %zmm0 +; AVX512BW-NEXT: vpermt2q (%rdi), %zmm0, %zmm1 +; AVX512BW-NEXT: vpaddb (%rsi), %zmm1, %zmm0 ; AVX512BW-NEXT: vmovdqa64 %zmm0, (%rdx) ; AVX512BW-NEXT: vzeroupper ; AVX512BW-NEXT: retq @@ -5938,13 +5930,12 @@ define void @vec512_i128_widen_to_i256_factor2_broadcast_to_v2i256_factor2(ptr % ; ; AVX512F-LABEL: vec512_i128_widen_to_i256_factor2_broadcast_to_v2i256_factor2: ; AVX512F: # %bb.0: -; AVX512F-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm0 = [8,9,2,3,8,9,6,7] ; AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512F-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,1,10,11,0,1,14,15] -; AVX512F-NEXT: vpermi2q %zmm1, %zmm0, %zmm2 -; AVX512F-NEXT: vextracti64x4 $1, %zmm2, %ymm0 +; AVX512F-NEXT: vpermt2q (%rdi), %zmm0, %zmm1 +; AVX512F-NEXT: vextracti64x4 $1, %zmm1, %ymm0 ; AVX512F-NEXT: vpaddb 32(%rsi), %ymm0, %ymm0 -; AVX512F-NEXT: vpaddb (%rsi), %ymm2, %ymm1 +; AVX512F-NEXT: vpaddb (%rsi), %ymm1, %ymm1 ; AVX512F-NEXT: vmovdqa %ymm1, (%rdx) ; AVX512F-NEXT: vmovdqa %ymm0, 32(%rdx) ; AVX512F-NEXT: vzeroupper @@ -5952,13 +5943,12 @@ define void @vec512_i128_widen_to_i256_factor2_broadcast_to_v2i256_factor2(ptr % ; ; AVX512DQ-LABEL: vec512_i128_widen_to_i256_factor2_broadcast_to_v2i256_factor2: ; AVX512DQ: # %bb.0: -; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm0 = [8,9,2,3,8,9,6,7] ; AVX512DQ-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,1,10,11,0,1,14,15] -; AVX512DQ-NEXT: vpermi2q %zmm1, %zmm0, %zmm2 -; AVX512DQ-NEXT: vextracti64x4 $1, %zmm2, %ymm0 +; AVX512DQ-NEXT: vpermt2q (%rdi), %zmm0, %zmm1 +; AVX512DQ-NEXT: vextracti64x4 $1, %zmm1, %ymm0 ; AVX512DQ-NEXT: vpaddb 32(%rsi), %ymm0, %ymm0 -; AVX512DQ-NEXT: vpaddb (%rsi), %ymm2, %ymm1 +; AVX512DQ-NEXT: vpaddb (%rsi), %ymm1, %ymm1 ; AVX512DQ-NEXT: vmovdqa %ymm1, (%rdx) ; AVX512DQ-NEXT: vmovdqa %ymm0, 32(%rdx) ; AVX512DQ-NEXT: vzeroupper @@ -5966,11 +5956,10 @@ define void @vec512_i128_widen_to_i256_factor2_broadcast_to_v2i256_factor2(ptr % ; ; AVX512BW-LABEL: vec512_i128_widen_to_i256_factor2_broadcast_to_v2i256_factor2: ; AVX512BW: # %bb.0: -; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0 +; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm0 = [8,9,2,3,8,9,6,7] ; AVX512BW-NEXT: vpxor %xmm1, %xmm1, %xmm1 -; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,1,10,11,0,1,14,15] -; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm2 -; AVX512BW-NEXT: vpaddb (%rsi), %zmm2, %zmm0 +; AVX512BW-NEXT: vpermt2q (%rdi), %zmm0, %zmm1 +; AVX512BW-NEXT: vpaddb (%rsi), %zmm1, %zmm0 ; AVX512BW-NEXT: vmovdqa64 %zmm0, (%rdx) ; AVX512BW-NEXT: vzeroupper ; AVX512BW-NEXT: retq diff --git a/llvm/test/CodeGen/Xtensa/mul.ll b/llvm/test/CodeGen/Xtensa/mul.ll index 9b13897293dc1..c5995bbc479a6 100644 --- a/llvm/test/CodeGen/Xtensa/mul.ll +++ b/llvm/test/CodeGen/Xtensa/mul.ll @@ -4,7 +4,8 @@ define signext i32 @square(i32 %a) nounwind { ; XTENSA-LABEL: square: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a8, .LCPI0_0 @@ -20,7 +21,8 @@ define signext i32 @square(i32 %a) nounwind { define signext i32 @mul(i32 %a, i32 %b) nounwind { ; XTENSA-LABEL: mul: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a8, .LCPI1_0 @@ -35,7 +37,8 @@ define signext i32 @mul(i32 %a, i32 %b) nounwind { define signext i32 @mul_constant(i32 %a) nounwind { ; XTENSA-LABEL: mul_constant: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a3, 5 @@ -51,7 +54,8 @@ define signext i32 @mul_constant(i32 %a) nounwind { define i32 @mul_pow2(i32 %a) nounwind { ; XTENSA-LABEL: mul_pow2: -; XTENSA: slli a2, a2, 3 +; XTENSA: # %bb.0: +; XTENSA-NEXT: slli a2, a2, 3 ; XTENSA-NEXT: ret %1 = mul i32 %a, 8 ret i32 %1 @@ -59,7 +63,8 @@ define i32 @mul_pow2(i32 %a) nounwind { define i64 @mul64(i64 %a, i64 %b) nounwind { ; XTENSA-LABEL: mul64: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a8, .LCPI4_0 @@ -74,7 +79,8 @@ define i64 @mul64(i64 %a, i64 %b) nounwind { define i64 @mul64_constant(i64 %a) nounwind { ; XTENSA-LABEL: mul64_constant: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a4, 5 @@ -91,7 +97,8 @@ define i64 @mul64_constant(i64 %a) nounwind { define i32 @mulhs(i32 %a, i32 %b) nounwind { ; XTENSA-LABEL: mulhs: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: or a4, a3, a3 @@ -114,7 +121,8 @@ define i32 @mulhs(i32 %a, i32 %b) nounwind { define i32 @mulhs_positive_constant(i32 %a) nounwind { ; XTENSA-LABEL: mulhs_positive_constant: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: srai a3, a2, 31 @@ -136,7 +144,8 @@ define i32 @mulhs_positive_constant(i32 %a) nounwind { define i32 @mulhs_negative_constant(i32 %a) nounwind { ; XTENSA-LABEL: mulhs_negative_constant: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: srai a3, a2, 31 @@ -158,7 +167,8 @@ define i32 @mulhs_negative_constant(i32 %a) nounwind { define zeroext i32 @mulhu(i32 zeroext %a, i32 zeroext %b) nounwind { ; XTENSA-LABEL: mulhu: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: or a4, a3, a3 @@ -181,7 +191,8 @@ define zeroext i32 @mulhu(i32 zeroext %a, i32 zeroext %b) nounwind { define i32 @mulhsu(i32 %a, i32 %b) nounwind { ; XTENSA-LABEL: mulhsu: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: or a4, a3, a3 @@ -204,7 +215,8 @@ define i32 @mulhsu(i32 %a, i32 %b) nounwind { define i32 @mulhu_constant(i32 %a) nounwind { ; XTENSA-LABEL: mulhu_constant: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a4, 5 @@ -226,7 +238,8 @@ define i32 @mulhu_constant(i32 %a) nounwind { define i32 @muli32_p65(i32 %a) nounwind { ; XTENSA-LABEL: muli32_p65: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a3, 65 @@ -242,7 +255,8 @@ define i32 @muli32_p65(i32 %a) nounwind { define i32 @muli32_p63(i32 %a) nounwind { ; XTENSA-LABEL: muli32_p63: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a3, 63 @@ -258,7 +272,8 @@ define i32 @muli32_p63(i32 %a) nounwind { define i64 @muli64_p65(i64 %a) nounwind { ; XTENSA-LABEL: muli64_p65: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a4, 65 @@ -275,7 +290,8 @@ define i64 @muli64_p65(i64 %a) nounwind { define i64 @muli64_p63(i64 %a) nounwind { ; XTENSA-LABEL: muli64_p63: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a4, 63 @@ -292,7 +308,8 @@ define i64 @muli64_p63(i64 %a) nounwind { define i32 @muli32_m63(i32 %a) nounwind { ; XTENSA-LABEL: muli32_m63: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a3, -63 @@ -308,7 +325,8 @@ define i32 @muli32_m63(i32 %a) nounwind { define i32 @muli32_m65(i32 %a) nounwind { ; XTENSA-LABEL: muli32_m65: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a3, -65 @@ -324,7 +342,8 @@ define i32 @muli32_m65(i32 %a) nounwind { define i64 @muli64_m63(i64 %a) nounwind { ; XTENSA-LABEL: muli64_m63: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a4, -63 @@ -341,7 +360,8 @@ define i64 @muli64_m63(i64 %a) nounwind { define i64 @muli64_m65(i64 %a) nounwind { ; XTENSA-LABEL: muli64_m65: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a4, -65 @@ -358,7 +378,8 @@ define i64 @muli64_m65(i64 %a) nounwind { define i32 @muli32_p384(i32 %a) nounwind { ; XTENSA-LABEL: muli32_p384: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: movi a3, 384 @@ -374,7 +395,8 @@ define i32 @muli32_p384(i32 %a) nounwind { define i32 @muli32_p12288(i32 %a) nounwind { ; XTENSA-LABEL: muli32_p12288: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a3, .LCPI21_0 @@ -390,7 +412,8 @@ define i32 @muli32_p12288(i32 %a) nounwind { define i32 @muli32_p4352(i32 %a) nounwind { ; XTENSA-LABEL: muli32_p4352: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a3, .LCPI22_0 @@ -406,7 +429,8 @@ define i32 @muli32_p4352(i32 %a) nounwind { define i32 @muli32_p3840(i32 %a) nounwind { ; XTENSA-LABEL: muli32_p3840: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a3, .LCPI23_0 @@ -422,7 +446,8 @@ define i32 @muli32_p3840(i32 %a) nounwind { define i32 @muli32_m3840(i32 %a) nounwind { ; XTENSA-LABEL: muli32_m3840: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a3, .LCPI24_0 @@ -438,7 +463,8 @@ define i32 @muli32_m3840(i32 %a) nounwind { define i32 @muli32_m4352(i32 %a) nounwind { ; XTENSA-LABEL: muli32_m4352: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a3, .LCPI25_0 @@ -454,7 +480,8 @@ define i32 @muli32_m4352(i32 %a) nounwind { define i64 @muli64_p4352(i64 %a) nounwind { ; XTENSA-LABEL: muli64_p4352: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a4, .LCPI26_0 @@ -471,7 +498,8 @@ define i64 @muli64_p4352(i64 %a) nounwind { define i64 @muli64_p3840(i64 %a) nounwind { ; XTENSA-LABEL: muli64_p3840: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a4, .LCPI27_0 @@ -488,7 +516,8 @@ define i64 @muli64_p3840(i64 %a) nounwind { define i64 @muli64_m4352(i64 %a) nounwind { ; XTENSA-LABEL: muli64_m4352: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a4, .LCPI28_0 @@ -505,7 +534,8 @@ define i64 @muli64_m4352(i64 %a) nounwind { define i64 @muli64_m3840(i64 %a) nounwind { ; XTENSA-LABEL: muli64_m3840: -; XTENSA: addi a8, a1, -16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -16 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: s32i a0, a1, 0 # 4-byte Folded Spill ; XTENSA-NEXT: l32r a4, .LCPI29_0 @@ -522,17 +552,123 @@ define i64 @muli64_m3840(i64 %a) nounwind { define i128 @muli128_m3840(i128 %a) nounwind { ; XTENSA-LABEL: muli128_m3840: -; XTENSA: addi a8, a1, -16 -; XTENSA-NEXT: or a1, a8, a8 -; XTENSA-NEXT: s32i a0, a1, 8 # 4-byte Folded Spill -; XTENSA-NEXT: movi a7, -1 -; XTENSA-NEXT: s32i a7, a1, 4 -; XTENSA-NEXT: s32i a7, a1, 0 -; XTENSA-NEXT: l32r a6, .LCPI30_0 -; XTENSA-NEXT: l32r a8, .LCPI30_1 -; XTENSA-NEXT: callx0 a8 -; XTENSA-NEXT: l32i a0, a1, 8 # 4-byte Folded Reload -; XTENSA-NEXT: addi a8, a1, 16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -80 +; XTENSA-NEXT: or a1, a8, a8 +; XTENSA-NEXT: s32i a0, a1, 64 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a12, a1, 60 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a13, a1, 56 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a14, a1, 52 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a15, a1, 48 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a5, a1, 20 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a4, a1, 16 # 4-byte Folded Spill +; XTENSA-NEXT: or a15, a3, a3 +; XTENSA-NEXT: l32r a14, .LCPI30_0 +; XTENSA-NEXT: movi a12, 0 +; XTENSA-NEXT: l32r a13, .LCPI30_1 +; XTENSA-NEXT: s32i a2, a1, 36 # 4-byte Folded Spill +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: s32i a2, a1, 28 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a3, a1, 44 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a15, a1, 40 # 4-byte Folded Spill +; XTENSA-NEXT: or a2, a15, a15 +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: s32i a14, a1, 12 # 4-byte Folded Spill +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: l32i a8, a1, 44 # 4-byte Folded Reload +; XTENSA-NEXT: add a15, a2, a8 +; XTENSA-NEXT: movi a8, 1 +; XTENSA-NEXT: s32i a8, a1, 44 # 4-byte Folded Spill +; XTENSA-NEXT: bltu a15, a2, .LBB30_2 +; XTENSA-NEXT: # %bb.1: +; XTENSA-NEXT: or a8, a12, a12 +; XTENSA-NEXT: .LBB30_2: +; XTENSA-NEXT: add a8, a3, a8 +; XTENSA-NEXT: s32i a8, a1, 32 # 4-byte Folded Spill +; XTENSA-NEXT: movi a14, -1 +; XTENSA-NEXT: l32i a2, a1, 36 # 4-byte Folded Reload +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: add a9, a2, a15 +; XTENSA-NEXT: l32i a8, a1, 44 # 4-byte Folded Reload +; XTENSA-NEXT: s32i a9, a1, 24 # 4-byte Folded Spill +; XTENSA-NEXT: bltu a9, a2, .LBB30_4 +; XTENSA-NEXT: # %bb.3: +; XTENSA-NEXT: or a8, a12, a12 +; XTENSA-NEXT: .LBB30_4: +; XTENSA-NEXT: add a8, a3, a8 +; XTENSA-NEXT: l32i a9, a1, 32 # 4-byte Folded Reload +; XTENSA-NEXT: add a15, a9, a8 +; XTENSA-NEXT: l32i a2, a1, 40 # 4-byte Folded Reload +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: s32i a3, a1, 4 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a15, a1, 8 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a2, a1, 0 # 4-byte Folded Spill +; XTENSA-NEXT: add a15, a2, a15 +; XTENSA-NEXT: l32i a2, a1, 16 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a3, a1, 20 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a4, a1, 12 # 4-byte Folded Reload +; XTENSA-NEXT: or a5, a14, a14 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: s32i a2, a1, 16 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a3, a1, 20 # 4-byte Folded Spill +; XTENSA-NEXT: l32i a2, a1, 36 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a3, a1, 40 # 4-byte Folded Reload +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a14, a14 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: l32i a8, a1, 16 # 4-byte Folded Reload +; XTENSA-NEXT: add a9, a2, a8 +; XTENSA-NEXT: add a4, a15, a9 +; XTENSA-NEXT: l32i a7, a1, 44 # 4-byte Folded Reload +; XTENSA-NEXT: or a8, a7, a7 +; XTENSA-NEXT: bltu a4, a15, .LBB30_6 +; XTENSA-NEXT: # %bb.5: +; XTENSA-NEXT: or a8, a12, a12 +; XTENSA-NEXT: .LBB30_6: +; XTENSA-NEXT: or a10, a7, a7 +; XTENSA-NEXT: l32i a11, a1, 0 # 4-byte Folded Reload +; XTENSA-NEXT: bltu a15, a11, .LBB30_8 +; XTENSA-NEXT: # %bb.7: +; XTENSA-NEXT: or a10, a12, a12 +; XTENSA-NEXT: .LBB30_8: +; XTENSA-NEXT: or a11, a7, a7 +; XTENSA-NEXT: l32i a6, a1, 32 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a5, a1, 8 # 4-byte Folded Reload +; XTENSA-NEXT: bltu a5, a6, .LBB30_10 +; XTENSA-NEXT: # %bb.9: +; XTENSA-NEXT: or a11, a12, a12 +; XTENSA-NEXT: .LBB30_10: +; XTENSA-NEXT: l32i a6, a1, 4 # 4-byte Folded Reload +; XTENSA-NEXT: add a11, a6, a11 +; XTENSA-NEXT: add a10, a11, a10 +; XTENSA-NEXT: bltu a9, a2, .LBB30_12 +; XTENSA-NEXT: # %bb.11: +; XTENSA-NEXT: or a7, a12, a12 +; XTENSA-NEXT: .LBB30_12: +; XTENSA-NEXT: l32i a9, a1, 20 # 4-byte Folded Reload +; XTENSA-NEXT: add a9, a3, a9 +; XTENSA-NEXT: add a9, a9, a7 +; XTENSA-NEXT: add a9, a10, a9 +; XTENSA-NEXT: add a5, a9, a8 +; XTENSA-NEXT: l32i a2, a1, 28 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a3, a1, 24 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a15, a1, 48 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a14, a1, 52 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a13, a1, 56 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a12, a1, 60 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a0, a1, 64 # 4-byte Folded Reload +; XTENSA-NEXT: addi a8, a1, 80 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: ret %1 = mul i128 %a, -3840 @@ -541,17 +677,123 @@ define i128 @muli128_m3840(i128 %a) nounwind { define i128 @muli128_m63(i128 %a) nounwind { ; XTENSA-LABEL: muli128_m63: -; XTENSA: addi a8, a1, -16 -; XTENSA-NEXT: or a1, a8, a8 -; XTENSA-NEXT: s32i a0, a1, 8 # 4-byte Folded Spill -; XTENSA-NEXT: movi a7, -1 -; XTENSA-NEXT: s32i a7, a1, 4 -; XTENSA-NEXT: s32i a7, a1, 0 -; XTENSA-NEXT: movi a6, -63 -; XTENSA-NEXT: l32r a8, .LCPI31_0 -; XTENSA-NEXT: callx0 a8 -; XTENSA-NEXT: l32i a0, a1, 8 # 4-byte Folded Reload -; XTENSA-NEXT: addi a8, a1, 16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -80 +; XTENSA-NEXT: or a1, a8, a8 +; XTENSA-NEXT: s32i a0, a1, 64 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a12, a1, 60 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a13, a1, 56 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a14, a1, 52 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a15, a1, 48 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a5, a1, 20 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a4, a1, 16 # 4-byte Folded Spill +; XTENSA-NEXT: or a15, a3, a3 +; XTENSA-NEXT: movi a14, -63 +; XTENSA-NEXT: movi a12, 0 +; XTENSA-NEXT: l32r a13, .LCPI31_0 +; XTENSA-NEXT: s32i a2, a1, 36 # 4-byte Folded Spill +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: s32i a2, a1, 28 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a3, a1, 44 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a15, a1, 40 # 4-byte Folded Spill +; XTENSA-NEXT: or a2, a15, a15 +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: s32i a14, a1, 12 # 4-byte Folded Spill +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: l32i a8, a1, 44 # 4-byte Folded Reload +; XTENSA-NEXT: add a15, a2, a8 +; XTENSA-NEXT: movi a8, 1 +; XTENSA-NEXT: s32i a8, a1, 44 # 4-byte Folded Spill +; XTENSA-NEXT: bltu a15, a2, .LBB31_2 +; XTENSA-NEXT: # %bb.1: +; XTENSA-NEXT: or a8, a12, a12 +; XTENSA-NEXT: .LBB31_2: +; XTENSA-NEXT: add a8, a3, a8 +; XTENSA-NEXT: s32i a8, a1, 32 # 4-byte Folded Spill +; XTENSA-NEXT: movi a14, -1 +; XTENSA-NEXT: l32i a2, a1, 36 # 4-byte Folded Reload +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: add a9, a2, a15 +; XTENSA-NEXT: l32i a8, a1, 44 # 4-byte Folded Reload +; XTENSA-NEXT: s32i a9, a1, 24 # 4-byte Folded Spill +; XTENSA-NEXT: bltu a9, a2, .LBB31_4 +; XTENSA-NEXT: # %bb.3: +; XTENSA-NEXT: or a8, a12, a12 +; XTENSA-NEXT: .LBB31_4: +; XTENSA-NEXT: add a8, a3, a8 +; XTENSA-NEXT: l32i a9, a1, 32 # 4-byte Folded Reload +; XTENSA-NEXT: add a15, a9, a8 +; XTENSA-NEXT: l32i a2, a1, 40 # 4-byte Folded Reload +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: s32i a3, a1, 4 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a15, a1, 8 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a2, a1, 0 # 4-byte Folded Spill +; XTENSA-NEXT: add a15, a2, a15 +; XTENSA-NEXT: l32i a2, a1, 16 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a3, a1, 20 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a4, a1, 12 # 4-byte Folded Reload +; XTENSA-NEXT: or a5, a14, a14 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: s32i a2, a1, 16 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a3, a1, 20 # 4-byte Folded Spill +; XTENSA-NEXT: l32i a2, a1, 36 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a3, a1, 40 # 4-byte Folded Reload +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a14, a14 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: l32i a8, a1, 16 # 4-byte Folded Reload +; XTENSA-NEXT: add a9, a2, a8 +; XTENSA-NEXT: add a4, a15, a9 +; XTENSA-NEXT: l32i a7, a1, 44 # 4-byte Folded Reload +; XTENSA-NEXT: or a8, a7, a7 +; XTENSA-NEXT: bltu a4, a15, .LBB31_6 +; XTENSA-NEXT: # %bb.5: +; XTENSA-NEXT: or a8, a12, a12 +; XTENSA-NEXT: .LBB31_6: +; XTENSA-NEXT: or a10, a7, a7 +; XTENSA-NEXT: l32i a11, a1, 0 # 4-byte Folded Reload +; XTENSA-NEXT: bltu a15, a11, .LBB31_8 +; XTENSA-NEXT: # %bb.7: +; XTENSA-NEXT: or a10, a12, a12 +; XTENSA-NEXT: .LBB31_8: +; XTENSA-NEXT: or a11, a7, a7 +; XTENSA-NEXT: l32i a6, a1, 32 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a5, a1, 8 # 4-byte Folded Reload +; XTENSA-NEXT: bltu a5, a6, .LBB31_10 +; XTENSA-NEXT: # %bb.9: +; XTENSA-NEXT: or a11, a12, a12 +; XTENSA-NEXT: .LBB31_10: +; XTENSA-NEXT: l32i a6, a1, 4 # 4-byte Folded Reload +; XTENSA-NEXT: add a11, a6, a11 +; XTENSA-NEXT: add a10, a11, a10 +; XTENSA-NEXT: bltu a9, a2, .LBB31_12 +; XTENSA-NEXT: # %bb.11: +; XTENSA-NEXT: or a7, a12, a12 +; XTENSA-NEXT: .LBB31_12: +; XTENSA-NEXT: l32i a9, a1, 20 # 4-byte Folded Reload +; XTENSA-NEXT: add a9, a3, a9 +; XTENSA-NEXT: add a9, a9, a7 +; XTENSA-NEXT: add a9, a10, a9 +; XTENSA-NEXT: add a5, a9, a8 +; XTENSA-NEXT: l32i a2, a1, 28 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a3, a1, 24 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a15, a1, 48 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a14, a1, 52 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a13, a1, 56 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a12, a1, 60 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a0, a1, 64 # 4-byte Folded Reload +; XTENSA-NEXT: addi a8, a1, 80 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: ret %1 = mul i128 %a, -63 @@ -560,22 +802,119 @@ define i128 @muli128_m63(i128 %a) nounwind { define i64 @mulhsu_i64(i64 %a, i64 %b) nounwind { ; XTENSA-LABEL: mulhsu_i64: -; XTENSA: addi a8, a1, -16 -; XTENSA-NEXT: or a1, a8, a8 -; XTENSA-NEXT: s32i a0, a1, 8 # 4-byte Folded Spill -; XTENSA-NEXT: or a7, a5, a5 -; XTENSA-NEXT: or a6, a4, a4 -; XTENSA-NEXT: srai a8, a7, 31 -; XTENSA-NEXT: s32i a8, a1, 4 -; XTENSA-NEXT: s32i a8, a1, 0 -; XTENSA-NEXT: movi a4, 0 -; XTENSA-NEXT: l32r a8, .LCPI32_0 -; XTENSA-NEXT: or a5, a4, a4 -; XTENSA-NEXT: callx0 a8 -; XTENSA-NEXT: or a2, a4, a4 -; XTENSA-NEXT: or a3, a5, a5 -; XTENSA-NEXT: l32i a0, a1, 8 # 4-byte Folded Reload -; XTENSA-NEXT: addi a8, a1, 16 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addi a8, a1, -64 +; XTENSA-NEXT: or a1, a8, a8 +; XTENSA-NEXT: s32i a0, a1, 56 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a12, a1, 52 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a13, a1, 48 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a14, a1, 44 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a15, a1, 40 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a5, a1, 28 # 4-byte Folded Spill +; XTENSA-NEXT: or a14, a4, a4 +; XTENSA-NEXT: or a15, a3, a3 +; XTENSA-NEXT: movi a12, 0 +; XTENSA-NEXT: l32r a13, .LCPI32_0 +; XTENSA-NEXT: s32i a2, a1, 32 # 4-byte Folded Spill +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: s32i a3, a1, 24 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a15, a1, 36 # 4-byte Folded Spill +; XTENSA-NEXT: or a2, a15, a15 +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: s32i a14, a1, 16 # 4-byte Folded Spill +; XTENSA-NEXT: or a4, a14, a14 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: l32i a8, a1, 24 # 4-byte Folded Reload +; XTENSA-NEXT: add a14, a2, a8 +; XTENSA-NEXT: movi a15, 1 +; XTENSA-NEXT: or a8, a15, a15 +; XTENSA-NEXT: bltu a14, a2, .LBB32_2 +; XTENSA-NEXT: # %bb.1: +; XTENSA-NEXT: or a8, a12, a12 +; XTENSA-NEXT: .LBB32_2: +; XTENSA-NEXT: add a8, a3, a8 +; XTENSA-NEXT: s32i a8, a1, 24 # 4-byte Folded Spill +; XTENSA-NEXT: l32i a2, a1, 32 # 4-byte Folded Reload +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: l32i a4, a1, 28 # 4-byte Folded Reload +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: add a9, a2, a14 +; XTENSA-NEXT: s32i a15, a1, 20 # 4-byte Folded Spill +; XTENSA-NEXT: or a8, a15, a15 +; XTENSA-NEXT: bltu a9, a2, .LBB32_4 +; XTENSA-NEXT: # %bb.3: +; XTENSA-NEXT: or a8, a12, a12 +; XTENSA-NEXT: .LBB32_4: +; XTENSA-NEXT: add a8, a3, a8 +; XTENSA-NEXT: l32i a9, a1, 24 # 4-byte Folded Reload +; XTENSA-NEXT: add a14, a9, a8 +; XTENSA-NEXT: l32i a2, a1, 36 # 4-byte Folded Reload +; XTENSA-NEXT: or a3, a12, a12 +; XTENSA-NEXT: l32i a15, a1, 28 # 4-byte Folded Reload +; XTENSA-NEXT: or a4, a15, a15 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: s32i a3, a1, 8 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a14, a1, 12 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a2, a1, 4 # 4-byte Folded Spill +; XTENSA-NEXT: add a14, a2, a14 +; XTENSA-NEXT: l32i a2, a1, 16 # 4-byte Folded Reload +; XTENSA-NEXT: or a3, a15, a15 +; XTENSA-NEXT: or a4, a12, a12 +; XTENSA-NEXT: or a5, a12, a12 +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: s32i a2, a1, 0 # 4-byte Folded Spill +; XTENSA-NEXT: s32i a3, a1, 16 # 4-byte Folded Spill +; XTENSA-NEXT: srai a2, a15, 31 +; XTENSA-NEXT: or a3, a2, a2 +; XTENSA-NEXT: l32i a4, a1, 32 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a5, a1, 36 # 4-byte Folded Reload +; XTENSA-NEXT: callx0 a13 +; XTENSA-NEXT: or a8, a2, a2 +; XTENSA-NEXT: l32i a9, a1, 0 # 4-byte Folded Reload +; XTENSA-NEXT: add a10, a8, a9 +; XTENSA-NEXT: add a2, a14, a10 +; XTENSA-NEXT: l32i a6, a1, 20 # 4-byte Folded Reload +; XTENSA-NEXT: or a9, a6, a6 +; XTENSA-NEXT: bltu a2, a14, .LBB32_6 +; XTENSA-NEXT: # %bb.5: +; XTENSA-NEXT: or a9, a12, a12 +; XTENSA-NEXT: .LBB32_6: +; XTENSA-NEXT: or a11, a6, a6 +; XTENSA-NEXT: l32i a7, a1, 4 # 4-byte Folded Reload +; XTENSA-NEXT: bltu a14, a7, .LBB32_8 +; XTENSA-NEXT: # %bb.7: +; XTENSA-NEXT: or a11, a12, a12 +; XTENSA-NEXT: .LBB32_8: +; XTENSA-NEXT: or a7, a6, a6 +; XTENSA-NEXT: l32i a5, a1, 24 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a4, a1, 12 # 4-byte Folded Reload +; XTENSA-NEXT: bltu a4, a5, .LBB32_10 +; XTENSA-NEXT: # %bb.9: +; XTENSA-NEXT: or a7, a12, a12 +; XTENSA-NEXT: .LBB32_10: +; XTENSA-NEXT: l32i a5, a1, 8 # 4-byte Folded Reload +; XTENSA-NEXT: add a7, a5, a7 +; XTENSA-NEXT: add a11, a7, a11 +; XTENSA-NEXT: bltu a10, a8, .LBB32_12 +; XTENSA-NEXT: # %bb.11: +; XTENSA-NEXT: or a6, a12, a12 +; XTENSA-NEXT: .LBB32_12: +; XTENSA-NEXT: l32i a8, a1, 16 # 4-byte Folded Reload +; XTENSA-NEXT: add a8, a3, a8 +; XTENSA-NEXT: add a8, a8, a6 +; XTENSA-NEXT: add a8, a11, a8 +; XTENSA-NEXT: add a3, a8, a9 +; XTENSA-NEXT: l32i a15, a1, 40 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a14, a1, 44 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a13, a1, 48 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a12, a1, 52 # 4-byte Folded Reload +; XTENSA-NEXT: l32i a0, a1, 56 # 4-byte Folded Reload +; XTENSA-NEXT: addi a8, a1, 64 ; XTENSA-NEXT: or a1, a8, a8 ; XTENSA-NEXT: ret %1 = zext i64 %a to i128 @@ -588,7 +927,8 @@ define i64 @mulhsu_i64(i64 %a, i64 %b) nounwind { define i8 @muladd_demand(i8 %x, i8 %y) nounwind { ; XTENSA-LABEL: muladd_demand: -; XTENSA: slli a8, a2, 1 +; XTENSA: # %bb.0: +; XTENSA-NEXT: slli a8, a2, 1 ; XTENSA-NEXT: sub a8, a3, a8 ; XTENSA-NEXT: movi a9, 15 ; XTENSA-NEXT: and a2, a8, a9 @@ -601,7 +941,8 @@ define i8 @muladd_demand(i8 %x, i8 %y) nounwind { define i8 @mulsub_demand(i8 %x, i8 %y) nounwind { ; XTENSA-LABEL: mulsub_demand: -; XTENSA: addx2 a8, a2, a3 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addx2 a8, a2, a3 ; XTENSA-NEXT: movi a9, 15 ; XTENSA-NEXT: and a2, a8, a9 ; XTENSA-NEXT: ret @@ -613,7 +954,8 @@ define i8 @mulsub_demand(i8 %x, i8 %y) nounwind { define i8 @muladd_demand_2(i8 %x, i8 %y) nounwind { ; XTENSA-LABEL: muladd_demand_2: -; XTENSA: slli a8, a2, 1 +; XTENSA: # %bb.0: +; XTENSA-NEXT: slli a8, a2, 1 ; XTENSA-NEXT: sub a8, a3, a8 ; XTENSA-NEXT: movi a9, -16 ; XTENSA-NEXT: or a2, a8, a9 @@ -626,7 +968,8 @@ define i8 @muladd_demand_2(i8 %x, i8 %y) nounwind { define i8 @mulsub_demand_2(i8 %x, i8 %y) nounwind { ; XTENSA-LABEL: mulsub_demand_2: -; XTENSA: addx2 a8, a2, a3 +; XTENSA: # %bb.0: +; XTENSA-NEXT: addx2 a8, a2, a3 ; XTENSA-NEXT: movi a9, -16 ; XTENSA-NEXT: or a2, a8, a9 ; XTENSA-NEXT: ret @@ -638,7 +981,8 @@ define i8 @mulsub_demand_2(i8 %x, i8 %y) nounwind { define signext i32 @mul_imm_2(i32 %a) nounwind { ; XTENSA-LABEL: mul_imm_2: -; XTENSA: slli a2, a2, 1 +; XTENSA: # %bb.0: +; XTENSA-NEXT: slli a2, a2, 1 ; XTENSA-NEXT: ret %1 = mul i32 %a, 2 ret i32 %1 @@ -646,7 +990,8 @@ define signext i32 @mul_imm_2(i32 %a) nounwind { define signext i32 @mul_imm_1024(i32 %a) nounwind { ; XTENSA-LABEL: mul_imm_1024: -; XTENSA: slli a2, a2, 10 +; XTENSA: # %bb.0: +; XTENSA-NEXT: slli a2, a2, 10 ; XTENSA-NEXT: ret %1 = mul i32 %a, 1024 ret i32 %1 @@ -654,7 +999,8 @@ define signext i32 @mul_imm_1024(i32 %a) nounwind { define signext i32 @mul_imm_16384(i32 %a) nounwind { ; XTENSA-LABEL: mul_imm_16384: -; XTENSA: slli a2, a2, 14 +; XTENSA: # %bb.0: +; XTENSA-NEXT: slli a2, a2, 14 ; XTENSA-NEXT: ret %1 = mul i32 %a, 16384 ret i32 %1 @@ -662,7 +1008,9 @@ define signext i32 @mul_imm_16384(i32 %a) nounwind { define <4 x i32> @mul_vec_splat_constant(<4 x i32> %a) { ; XTENSA-LABEL: mul_vec_splat_constant: -; XTENSA: slli a2, a2, 2 +; XTENSA: .cfi_startproc +; XTENSA-NEXT: # %bb.0: +; XTENSA-NEXT: slli a2, a2, 2 ; XTENSA-NEXT: slli a3, a3, 2 ; XTENSA-NEXT: slli a4, a4, 2 ; XTENSA-NEXT: slli a5, a5, 2 diff --git a/llvm/test/ExecutionEngine/JITLink/AArch64/MachO_ptrauth-globals.s b/llvm/test/ExecutionEngine/JITLink/AArch64/MachO_ptrauth-globals.s new file mode 100644 index 0000000000000..ebe9d470038e4 --- /dev/null +++ b/llvm/test/ExecutionEngine/JITLink/AArch64/MachO_ptrauth-globals.s @@ -0,0 +1,158 @@ +# RUN: llvm-mc -triple=arm64e-apple-macosx -filetype=obj -o %t.o %s +# RUN: llvm-jitlink %t.o +# +# REQUIRES: system-darwin && host=arm64{{.*}} +# +# Check that arm64e ptrauth relocations are handled correctly. +# +# This test contains eight global pointers with different signing schemes +# (IA vs DA key, with and without address diversity, and with 0 or 0xa5a5 as +# the additional diversity value). If all pointers pass authentication at +# runtime then the test returns zero. +# +# This test requires execution since the signed pointers are written by a +# signing function attached to the graph. +# +# TODO: Write an out-of-process version. This will probably need to be added to +# the ORC runtime. + + .section __TEXT,__text,regular,pure_instructions + .build_version macos, 13, 0 sdk_version 13, 3 + .globl _main + .p2align 2 +_main: + adrp x8, _p1@PAGE + ldr x16, [x8, _p1@PAGEOFF] + autiza x16 + + adrp x9, _p2@PAGE + add x9, x9, _p2@PAGEOFF + ldr x16, [x9] + autia x16, x9 + + adrp x10, _p3@PAGE + ldr x16, [x10, _p3@PAGEOFF] + mov x17, #23130 + autia x16, x17 + + adrp x9, _p4@PAGE + add x9, x9, _p4@PAGEOFF + ldr x16, [x9] + mov x17, x9 + movk x17, #23130, lsl #48 + autia x16, x17 + + adrp x10, _p5@PAGE + ldr x10, [x10, _p5@PAGEOFF] + ldraa x10, [x10] + + adrp x9, _p6@PAGE + add x9, x9, _p6@PAGEOFF + ldr x16, [x9] + autda x16, x9 + + adrp x10, _p7@PAGE + ldr x16, [x10, _p7@PAGEOFF] + mov x17, #23130 + autda x16, x17 + + adrp x9, _p8@PAGE + add x9, x9, _p8@PAGEOFF + ldr x16, [x9] + mov x17, x9 + movk x17, #23130, lsl #48 + autda x16, x17 + + mov w0, #0 + ret + + .private_extern _a + .section __DATA,__data + .globl _a + .p2align 3 +_a: + .quad 1 + + .private_extern _b + .globl _b + .p2align 3 +_b: + .quad 2 + + .private_extern _c + .globl _c + .p2align 3 +_c: + .quad 3 + + .private_extern _d + .globl _d + .p2align 3 +_d: + .quad 4 + + .private_extern _e + .globl _e + .p2align 3 +_e: + .quad 5 + + .private_extern _f + .globl _f + .p2align 3 +_f: + .quad 6 + + .private_extern _g + .globl _g + .p2align 3 +_g: + .quad 7 + + .private_extern _h + .globl _h + .p2align 3 +_h: + .quad 8 + + .globl _p1 + .p2align 3 +_p1: + .quad _a@AUTH(ia,0) + + .globl _p2 + .p2align 3 +_p2: + .quad _b@AUTH(ia,0,addr) + + .globl _p3 + .p2align 3 +_p3: + .quad _c@AUTH(ia,23130) + + .globl _p4 + .p2align 3 +_p4: + .quad _d@AUTH(ia,23130,addr) + + .globl _p5 + .p2align 3 +_p5: + .quad _e@AUTH(da,0) + + .globl _p6 + .p2align 3 +_p6: + .quad _f@AUTH(da,0,addr) + + .globl _p7 + .p2align 3 +_p7: + .quad _g@AUTH(da,23130) + + .globl _p8y + .p2align 3 +_p8: + .quad _h@AUTH(da,23130,addr) + +.subsections_via_symbols diff --git a/llvm/test/ExecutionEngine/JITLink/LoongArch/ELF_loongarch64_relocations.s b/llvm/test/ExecutionEngine/JITLink/LoongArch/ELF_loongarch64_relocations.s index 74eb8118d10e3..f07ac5422b8fc 100644 --- a/llvm/test/ExecutionEngine/JITLink/LoongArch/ELF_loongarch64_relocations.s +++ b/llvm/test/ExecutionEngine/JITLink/LoongArch/ELF_loongarch64_relocations.s @@ -68,6 +68,12 @@ test_addi_pcrel_lo12: # jitlink-check: decode_operand(test_external_jump, 0) = \ # jitlink-check: (stub_addr(elf_reloc.o, external_func) - \ # jitlink-check: test_external_jump)[27:0] +# jitlink-check: decode_operand(test_external_call36, 1)[19:0] = \ +# jitlink-check: (stub_addr(elf_reloc.o, external_func) - \ +# jitlink-check: test_external_call36 + (1<<17))[37:18] +# jitlink-check: decode_operand(test_external_call36 + 4, 2)[17:0] = \ +# jitlink-check: (stub_addr(elf_reloc.o, external_func) - \ +# jitlink-check: test_external_call36)[17:0] .globl test_external_call .p2align 2 test_external_call: @@ -80,6 +86,13 @@ test_external_jump: b external_func .size test_external_jump, .-test_external_jump + .globl test_external_call36 + .p2align 2 +test_external_call36: + pcaddu18i $ra, %call36(external_func) + jirl $ra, $ra, 0 + .size test_external_call36, .-test_external_call36 + ## Check R_LARCH_GOT_PC_HI20 / R_LARCH_GOT_PC_LO12 handling with a reference to ## an external symbol. Validate both the reference to the GOT entry, and also ## the content of the GOT entry. @@ -104,6 +117,19 @@ test_gotoffset12_external: .size test_gotoffset12_external, .-test_gotoffset12_external +## Check R_LARCH_CALL36 relocation of a local function call. + +# jitlink-check: decode_operand(local_func_call36, 1)[19:0] = \ +# jitlink-check: ((local_func - local_func_call36) + (1<<17))[37:18] +# jitlink-check: decode_operand(local_func_call36 + 4, 2)[17:0] = \ +# jitlink-check: (local_func - local_func_call36)[17:0] + .globl local_func_call36 + .p2align 2 +local_func_call36: + pcaddu18i $ra, %call36(local_func) + jirl $ra, $ra, 0 + .size local_func_call36, .-local_func_call36 + .globl named_data .p2align 4 .type named_data,@object diff --git a/llvm/test/Instrumentation/AddressSanitizer/asan-masked-load-store.ll b/llvm/test/Instrumentation/AddressSanitizer/asan-masked-load-store.ll index 597b3bb855b42..a8da5a3740e59 100644 --- a/llvm/test/Instrumentation/AddressSanitizer/asan-masked-load-store.ll +++ b/llvm/test/Instrumentation/AddressSanitizer/asan-masked-load-store.ll @@ -452,7 +452,7 @@ define @scalable.expandload.nxv4f32(ptr align 4 %p, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i64 [[IV]] +; CHECK-NEXT: [[TMP8:%.*]] = extractelement splat (i1 true), i64 [[IV]] ; CHECK-NEXT: br i1 [[TMP8]], label [[TMP9:%.*]], label [[TMP12]] ; CHECK: 9: ; CHECK-NEXT: [[TMP10:%.*]] = getelementptr , ptr [[P:%.*]], i64 0, i64 [[IV]] @@ -490,7 +490,7 @@ define void @scalable.compressstore.nxv4f32(ptr align 4 %p, ; CHECK-NEXT: br label [[DOTSPLIT:%.*]] ; CHECK: .split: ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, [[TMP4]] ], [ [[IV_NEXT:%.*]], [[TMP12:%.*]] ] -; CHECK-NEXT: [[TMP8:%.*]] = extractelement shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i64 [[IV]] +; CHECK-NEXT: [[TMP8:%.*]] = extractelement splat (i1 true), i64 [[IV]] ; CHECK-NEXT: br i1 [[TMP8]], label [[TMP9:%.*]], label [[TMP12]] ; CHECK: 9: ; CHECK-NEXT: [[TMP10:%.*]] = getelementptr , ptr [[P:%.*]], i64 0, i64 [[IV]] diff --git a/llvm/test/Instrumentation/BoundsChecking/negative.ll b/llvm/test/Instrumentation/BoundsChecking/negative.ll new file mode 100644 index 0000000000000..d8fb117bd13af --- /dev/null +++ b/llvm/test/Instrumentation/BoundsChecking/negative.ll @@ -0,0 +1,45 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py +; Check that negative oob gep do not generate invalid check. +; RUN: opt < %s -passes=bounds-checking -S | FileCheck %s +target datalayout = "e-p:64:64:64-p1:16:16:16-p2:64:64:64:48-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" + + +@str = global [100 x i8] zeroinitializer, align 1 + +define i16 @main() { +; CHECK-LABEL: @main( +; CHECK-NEXT: entry: +; CHECK-NEXT: br label [[FOR_COND:%.*]] +; CHECK: for.cond: +; CHECK-NEXT: [[I_0:%.*]] = phi i8 [ 65, [[ENTRY:%.*]] ], [ [[INC:%.*]], [[TMP4:%.*]] ] +; CHECK-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i8 [[I_0]], 76 +; CHECK-NEXT: br i1 [[EXITCOND_NOT]], label [[FOR_END:%.*]], label [[TMP4]] +; CHECK: for.inc: +; CHECK-NEXT: [[I_0_C:%.*]] = sext i8 [[I_0]] to i64 +; CHECK-NEXT: [[TMP0:%.*]] = add i64 -65, [[I_0_C]] +; CHECK-NEXT: [[GEP:%.*]] = getelementptr i8, ptr getelementptr (i8, ptr @str, i8 -65), i8 [[I_0]] +; CHECK-NEXT: [[TMP1:%.*]] = sub i64 100, [[TMP0]] +; CHECK-NEXT: store i8 [[I_0]], ptr [[GEP]], align 1 +; CHECK-NEXT: [[INC]] = add nuw nsw i8 [[I_0]], 1 +; CHECK-NEXT: br label [[FOR_COND]] +; CHECK: for.end: +; CHECK-NEXT: ret i16 0 +; +entry: + br label %for.cond + +for.cond: + %i.0 = phi i8 [ 65, %entry ], [ %inc, %for.inc ] + %exitcond.not = icmp eq i8 %i.0, 76 + br i1 %exitcond.not, label %for.end, label %for.inc + +for.inc: ; preds = %for.cond + %gep = getelementptr i8, ptr getelementptr (i8, ptr @str, i8 -65), i8 %i.0 + store i8 %i.0, ptr %gep, align 1 + %inc = add nuw nsw i8 %i.0, 1 + br label %for.cond + +for.end: + ret i16 0 +} + diff --git a/llvm/test/LTO/X86/codemodel-3.ll b/llvm/test/LTO/X86/codemodel-3.ll index 13702dfbca2da..8ae601c43cb29 100644 --- a/llvm/test/LTO/X86/codemodel-3.ll +++ b/llvm/test/LTO/X86/codemodel-3.ll @@ -18,4 +18,4 @@ entry: ret ptr @data } -; CHECK: 'Code Model': IDs have conflicting values +; CHECK: 'Code Model': IDs have conflicting values: 'i32 1' from {{.*}}, and 'i32 4' from {{.*}} diff --git a/llvm/test/LTO/X86/largedatathreshold-3.ll b/llvm/test/LTO/X86/largedatathreshold-3.ll index fea7987ff1556..496b71ea0ca00 100644 --- a/llvm/test/LTO/X86/largedatathreshold-3.ll +++ b/llvm/test/LTO/X86/largedatathreshold-3.ll @@ -3,7 +3,7 @@ ; RUN: not llvm-lto2 run -r %t0.o,_start,px -r %t1.o,bar,px -r %t0.o,_GLOBAL_OFFSET_TABLE_, \ ; RUN: -r %t1.o,_GLOBAL_OFFSET_TABLE_, %t0.o %t1.o -o %t2.s 2>&1 | FileCheck %s -; CHECK: 'Large Data Threshold': IDs have conflicting values +; CHECK: 'Large Data Threshold': IDs have conflicting values: 'i32 101' from {{.*}}, and 'i32 100' from {{.*}} target triple = "x86_64-unknown-linux-gnu" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" diff --git a/llvm/test/Linker/module-flags-6-a.ll b/llvm/test/Linker/module-flags-6-a.ll index dd6519727f241..47f46d4d1889e 100644 --- a/llvm/test/Linker/module-flags-6-a.ll +++ b/llvm/test/Linker/module-flags-6-a.ll @@ -2,7 +2,7 @@ ; Test module flags error messages. -; CHECK: linking module flags 'foo': IDs have conflicting values in '{{.*}}module-flags-6-b.ll' and 'llvm-link' +; CHECK: linking module flags 'foo': IDs have conflicting values: 'i32 38' from {{.*}}module-flags-6-b.ll, and 'i32 37' from llvm-link !0 = !{ i32 1, !"foo", i32 37 } diff --git a/llvm/test/MC/AMDGPU/ds.s b/llvm/test/MC/AMDGPU/ds.s index fd436fe9fe0dd..bb1840eb849df 100644 --- a/llvm/test/MC/AMDGPU/ds.s +++ b/llvm/test/MC/AMDGPU/ds.s @@ -1,9 +1,7 @@ -// RUN: not llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefix=SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefixes=CI,SICI // RUN: llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=VI -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefixes=NOSI,NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefixes=NOSI,NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop2.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop2.s index 0f2852fc531ed..7d850ec92aadb 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop2.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop2.s @@ -1,2572 +1,2555 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo -// W32: encoding: [0x01,0x05,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo ; encoding: [0x01,0x05,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v255, v2, vcc_lo -// W32: encoding: [0xff,0x05,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, v255, v2, vcc_lo ; encoding: [0xff,0x05,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, s1, v2, vcc_lo -// W32: encoding: [0x01,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, s1, v2, vcc_lo ; encoding: [0x01,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, s105, v2, vcc_lo -// W32: encoding: [0x69,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, s105, v2, vcc_lo ; encoding: [0x69,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, vcc_lo, v2, vcc_lo -// W32: encoding: [0x6a,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, vcc_lo, v2, vcc_lo ; encoding: [0x6a,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, vcc_hi, v2, vcc_lo -// W32: encoding: [0x6b,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, vcc_hi, v2, vcc_lo ; encoding: [0x6b,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, ttmp15, v2, vcc_lo -// W32: encoding: [0x7b,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, ttmp15, v2, vcc_lo ; encoding: [0x7b,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, m0, v2, vcc_lo -// W32: encoding: [0x7d,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, m0, v2, vcc_lo ; encoding: [0x7d,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, exec_lo, v2, vcc_lo -// W32: encoding: [0x7e,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, exec_lo, v2, vcc_lo ; encoding: [0x7e,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, exec_hi, v2, vcc_lo -// W32: encoding: [0x7f,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, exec_hi, v2, vcc_lo ; encoding: [0x7f,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, null, v2, vcc_lo -// W32: encoding: [0x7c,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, null, v2, vcc_lo ; encoding: [0x7c,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, -1, v2, vcc_lo -// W32: encoding: [0xc1,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, -1, v2, vcc_lo ; encoding: [0xc1,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, 0.5, v2, vcc_lo -// W32: encoding: [0xf0,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, 0.5, v2, vcc_lo ; encoding: [0xf0,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, src_scc, v2, vcc_lo -// W32: encoding: [0xfd,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, src_scc, v2, vcc_lo ; encoding: [0xfd,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc_lo, 0xaf123456, v255, vcc_lo -// W32: encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v255, vcc_lo, 0xaf123456, v255, vcc_lo ; encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc -// W64: encoding: [0x01,0x05,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, v1, v2, vcc ; encoding: [0x01,0x05,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v255, v2, vcc -// W64: encoding: [0xff,0x05,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, v255, v2, vcc ; encoding: [0xff,0x05,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, s1, v2, vcc -// W64: encoding: [0x01,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, s1, v2, vcc ; encoding: [0x01,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, s105, v2, vcc -// W64: encoding: [0x69,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, s105, v2, vcc ; encoding: [0x69,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, vcc_lo, v2, vcc -// W64: encoding: [0x6a,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, vcc_lo, v2, vcc ; encoding: [0x6a,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, vcc_hi, v2, vcc -// W64: encoding: [0x6b,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, vcc_hi, v2, vcc ; encoding: [0x6b,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, ttmp15, v2, vcc -// W64: encoding: [0x7b,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, ttmp15, v2, vcc ; encoding: [0x7b,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, m0, v2, vcc -// W64: encoding: [0x7d,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, m0, v2, vcc ; encoding: [0x7d,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, exec_lo, v2, vcc -// W64: encoding: [0x7e,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, exec_lo, v2, vcc ; encoding: [0x7e,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, exec_hi, v2, vcc -// W64: encoding: [0x7f,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, exec_hi, v2, vcc ; encoding: [0x7f,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, null, v2, vcc -// W64: encoding: [0x7c,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, null, v2, vcc ; encoding: [0x7c,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, -1, v2, vcc -// W64: encoding: [0xc1,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, -1, v2, vcc ; encoding: [0xc1,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, 0.5, v2, vcc -// W64: encoding: [0xf0,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, 0.5, v2, vcc ; encoding: [0xf0,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, src_scc, v2, vcc -// W64: encoding: [0xfd,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, src_scc, v2, vcc ; encoding: [0xfd,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc, 0xaf123456, v255, vcc -// W64: encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v255, vcc, 0xaf123456, v255, vcc ; encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x64] v_add_f16 v5, v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x64] v_add_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x64] v_add_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x64] v_add_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x64] v_add_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x64] v_add_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x64] v_add_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x64] v_add_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x64] v_add_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x64] v_add_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x64] v_add_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x64] v_add_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x64] v_add_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x64] +// GFX11: v_add_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x64] v_add_f16 v127, 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0xfe,0x64,0x0b,0xfe,0x00,0x00] +// GFX11: v_add_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x64,0x0b,0xfe,0x00,0x00] v_add_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x06] v_add_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x06] v_add_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x06] v_add_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x06] v_add_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x06] v_add_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x06] v_add_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x06] v_add_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x06] v_add_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x06] v_add_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x06] v_add_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x06] v_add_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x06] v_add_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x06] v_add_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x06] +// GFX11: v_add_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x06] v_add_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_add_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x07,0x56,0x34,0x12,0xaf] v_add_nc_u32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x4a] v_add_nc_u32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x4a] v_add_nc_u32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x4a] v_add_nc_u32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x4a] v_add_nc_u32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x4a] v_add_nc_u32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x4a] v_add_nc_u32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x4a] v_add_nc_u32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x4a] v_add_nc_u32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x4a] v_add_nc_u32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x4a] v_add_nc_u32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x4a] v_add_nc_u32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x4a] v_add_nc_u32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x4a] v_add_nc_u32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x4a] +// GFX11: v_add_nc_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x4a] v_add_nc_u32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x4b,0x56,0x34,0x12,0xaf] +// GFX11: v_add_nc_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x4b,0x56,0x34,0x12,0xaf] v_and_b32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x36] v_and_b32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x36] v_and_b32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x36] v_and_b32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x36] v_and_b32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x36] v_and_b32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x36] v_and_b32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x36] v_and_b32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x36] v_and_b32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x36] v_and_b32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x36] v_and_b32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x36] v_and_b32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x36] v_and_b32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x36] v_and_b32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x36] +// GFX11: v_and_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x36] v_and_b32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x37,0x56,0x34,0x12,0xaf] +// GFX11: v_and_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x37,0x56,0x34,0x12,0xaf] v_ashrrev_i32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x34] v_ashrrev_i32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x34] v_ashrrev_i32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x34] v_ashrrev_i32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x34] v_ashrrev_i32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x34] v_ashrrev_i32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x34] v_ashrrev_i32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x34] v_ashrrev_i32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x34] v_ashrrev_i32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x34] v_ashrrev_i32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x34] v_ashrrev_i32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x34] v_ashrrev_i32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x34] v_ashrrev_i32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x34] v_ashrrev_i32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x34] +// GFX11: v_ashrrev_i32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x34] v_ashrrev_i32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x35,0x56,0x34,0x12,0xaf] +// GFX11: v_ashrrev_i32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x35,0x56,0x34,0x12,0xaf] v_cndmask_b32 v5, v1, v2, vcc_lo -// W32: encoding: [0x01,0x05,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, v1, v2, vcc_lo ; encoding: [0x01,0x05,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v255, v2, vcc_lo -// W32: encoding: [0xff,0x05,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, v255, v2, vcc_lo ; encoding: [0xff,0x05,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, s1, v2, vcc_lo -// W32: encoding: [0x01,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, s1, v2, vcc_lo ; encoding: [0x01,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, s105, v2, vcc_lo -// W32: encoding: [0x69,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, s105, v2, vcc_lo ; encoding: [0x69,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, vcc_lo, v2, vcc_lo -// W32: encoding: [0x6a,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, vcc_lo, v2, vcc_lo ; encoding: [0x6a,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, vcc_hi, v2, vcc_lo -// W32: encoding: [0x6b,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, vcc_hi, v2, vcc_lo ; encoding: [0x6b,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, ttmp15, v2, vcc_lo -// W32: encoding: [0x7b,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, ttmp15, v2, vcc_lo ; encoding: [0x7b,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, m0, v2, vcc_lo -// W32: encoding: [0x7d,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, m0, v2, vcc_lo ; encoding: [0x7d,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, exec_lo, v2, vcc_lo -// W32: encoding: [0x7e,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, exec_lo, v2, vcc_lo ; encoding: [0x7e,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, exec_hi, v2, vcc_lo -// W32: encoding: [0x7f,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, exec_hi, v2, vcc_lo ; encoding: [0x7f,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, null, v2, vcc_lo -// W32: encoding: [0x7c,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, null, v2, vcc_lo ; encoding: [0x7c,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, -1, v2, vcc_lo -// W32: encoding: [0xc1,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, -1, v2, vcc_lo ; encoding: [0xc1,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, 0.5, v2, vcc_lo -// W32: encoding: [0xf0,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, 0.5, v2, vcc_lo ; encoding: [0xf0,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, src_scc, v2, vcc_lo -// W32: encoding: [0xfd,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, src_scc, v2, vcc_lo ; encoding: [0xfd,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, 0xaf123456, v255, vcc_lo -// W32: encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v255, 0xaf123456, v255, vcc_lo ; encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc -// W64: encoding: [0x01,0x05,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, v1, v2, vcc ; encoding: [0x01,0x05,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v255, v2, vcc -// W64: encoding: [0xff,0x05,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, v255, v2, vcc ; encoding: [0xff,0x05,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, s1, v2, vcc -// W64: encoding: [0x01,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, s1, v2, vcc ; encoding: [0x01,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, s105, v2, vcc -// W64: encoding: [0x69,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, s105, v2, vcc ; encoding: [0x69,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, vcc_lo, v2, vcc -// W64: encoding: [0x6a,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, vcc_lo, v2, vcc ; encoding: [0x6a,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, vcc_hi, v2, vcc -// W64: encoding: [0x6b,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, vcc_hi, v2, vcc ; encoding: [0x6b,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, ttmp15, v2, vcc -// W64: encoding: [0x7b,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, ttmp15, v2, vcc ; encoding: [0x7b,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, m0, v2, vcc -// W64: encoding: [0x7d,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, m0, v2, vcc ; encoding: [0x7d,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, exec_lo, v2, vcc -// W64: encoding: [0x7e,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, exec_lo, v2, vcc ; encoding: [0x7e,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, exec_hi, v2, vcc -// W64: encoding: [0x7f,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, exec_hi, v2, vcc ; encoding: [0x7f,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, null, v2, vcc -// W64: encoding: [0x7c,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, null, v2, vcc ; encoding: [0x7c,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, -1, v2, vcc -// W64: encoding: [0xc1,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, -1, v2, vcc ; encoding: [0xc1,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, 0.5, v2, vcc -// W64: encoding: [0xf0,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, 0.5, v2, vcc ; encoding: [0xf0,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, src_scc, v2, vcc -// W64: encoding: [0xfd,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, src_scc, v2, vcc ; encoding: [0xfd,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, 0xaf123456, v255, vcc -// W64: encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v255, 0xaf123456, v255, vcc ; encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cvt_pk_rtz_f16_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf] v_cvt_pkrtz_f16_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x5e] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_rtz_f16_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf] v_dot2acc_f32_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x04] v_dot2acc_f32_f16 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x04] v_dot2acc_f32_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x04] v_dot2acc_f32_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x04] v_dot2acc_f32_f16 v255, 0xfe0b, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x05,0x0b,0xfe,0x00,0x00] +// GFX11: v_dot2acc_f32_f16 v255, 0xfe0b, v255 ; encoding: [0xff,0xfe,0xff,0x05,0x0b,0xfe,0x00,0x00] v_dot2c_f32_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x04] v_dot2c_f32_f16 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x04] v_dot2c_f32_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x04] v_dot2c_f32_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x04] +// GFX11: v_dot2acc_f32_f16 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x04] v_dot2c_f32_f16 v255, 0xfe0b, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x05,0x0b,0xfe,0x00,0x00] +// GFX11: v_dot2acc_f32_f16 v255, 0xfe0b, v255 ; encoding: [0xff,0xfe,0xff,0x05,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, v1.l, v2.l, 0xfe0b -// GFX11: encoding: [0x01,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, v1, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, v1, v2, 0xfe0b ; encoding: [0x01,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, v127.l, v2.l, 0xfe0b -// GFX11: encoding: [0x7f,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, v127, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, v127, v2, 0xfe0b ; encoding: [0x7f,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, v1.h, v2.l, 0xfe0b -// GFX11: encoding: [0x81,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, s1, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, s1, v2, 0xfe0b ; encoding: [0x01,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, v127.h, v2.l, 0xfe0b -// GFX11: encoding: [0xff,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, s105, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, s105, v2, 0xfe0b ; encoding: [0x69,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, s1, v2.l, 0xfe0b -// GFX11: encoding: [0x01,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, vcc_lo, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, vcc_lo, v2, 0xfe0b ; encoding: [0x6a,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, s105, v2.l, 0xfe0b -// GFX11: encoding: [0x69,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, vcc_hi, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, vcc_hi, v2, 0xfe0b ; encoding: [0x6b,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, vcc_lo, v2.l, 0xfe0b -// GFX11: encoding: [0x6a,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, ttmp15, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, ttmp15, v2, 0xfe0b ; encoding: [0x7b,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, vcc_hi, v2.l, 0xfe0b -// GFX11: encoding: [0x6b,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, m0, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, m0, v2, 0xfe0b ; encoding: [0x7d,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, ttmp15, v2.l, 0xfe0b -// GFX11: encoding: [0x7b,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, exec_lo, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, exec_lo, v2, 0xfe0b ; encoding: [0x7e,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, m0, v2.l, 0xfe0b -// GFX11: encoding: [0x7d,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, exec_hi, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, exec_hi, v2, 0xfe0b ; encoding: [0x7f,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, exec_lo, v2.l, 0xfe0b -// GFX11: encoding: [0x7e,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, null, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, null, v2, 0xfe0b ; encoding: [0x7c,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, exec_hi, v2.l, 0xfe0b -// GFX11: encoding: [0x7f,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, -1, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, -1, v2, 0xfe0b ; encoding: [0xc1,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, null, v2.l, 0xfe0b -// GFX11: encoding: [0x7c,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, 0.5, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, 0.5, v2, 0xfe0b ; encoding: [0xf0,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, -1, v2.l, 0xfe0b -// GFX11: encoding: [0xc1,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, src_scc, v2, 0xfe0b +// GFX11: v_fmaak_f16 v5, src_scc, v2, 0xfe0b ; encoding: [0xfd,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v127.l, 0.5, v127.l, 0xfe0b -// GFX11: encoding: [0xf0,0xfe,0xfe,0x70,0x0b,0xfe,0x00,0x00] - -v_fmaak_f16 v5.h, src_scc, v2.h, 0xfe0b -// GFX11: encoding: [0xfd,0x04,0x0b,0x71,0x0b,0xfe,0x00,0x00] - -v_fmaak_f16 v127.h, 0xfe0b, v127.h, 0xfe0b -// GFX11: encoding: [0xff,0xfe,0xff,0x71,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v127, 0xfe0b, v127, 0xfe0b +// GFX11: v_fmaak_f16 v127, 0xfe0b, v127, 0xfe0b ; encoding: [0xff,0xfe,0xfe,0x70,0x0b,0xfe,0x00,0x00] v_fmaak_f32 v5, v1, v2, 0xaf123456 -// GFX11: encoding: [0x01,0x05,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, v1, v2, 0xaf123456 ; encoding: [0x01,0x05,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, v255, v2, 0xaf123456 -// GFX11: encoding: [0xff,0x05,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, v255, v2, 0xaf123456 ; encoding: [0xff,0x05,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, s1, v2, 0xaf123456 -// GFX11: encoding: [0x01,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, s1, v2, 0xaf123456 ; encoding: [0x01,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, s105, v2, 0xaf123456 -// GFX11: encoding: [0x69,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, s105, v2, 0xaf123456 ; encoding: [0x69,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, vcc_lo, v2, 0xaf123456 -// GFX11: encoding: [0x6a,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, vcc_lo, v2, 0xaf123456 ; encoding: [0x6a,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, vcc_hi, v2, 0xaf123456 -// GFX11: encoding: [0x6b,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, vcc_hi, v2, 0xaf123456 ; encoding: [0x6b,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, ttmp15, v2, 0xaf123456 -// GFX11: encoding: [0x7b,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, ttmp15, v2, 0xaf123456 ; encoding: [0x7b,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, m0, v2, 0xaf123456 -// GFX11: encoding: [0x7d,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, m0, v2, 0xaf123456 ; encoding: [0x7d,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, exec_lo, v2, 0xaf123456 -// GFX11: encoding: [0x7e,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, exec_lo, v2, 0xaf123456 ; encoding: [0x7e,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, exec_hi, v2, 0xaf123456 -// GFX11: encoding: [0x7f,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, exec_hi, v2, 0xaf123456 ; encoding: [0x7f,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, null, v2, 0xaf123456 -// GFX11: encoding: [0x7c,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, null, v2, 0xaf123456 ; encoding: [0x7c,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, -1, v2, 0xaf123456 -// GFX11: encoding: [0xc1,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, -1, v2, 0xaf123456 ; encoding: [0xc1,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, 0.5, v2, 0xaf123456 -// GFX11: encoding: [0xf0,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, 0.5, v2, 0xaf123456 ; encoding: [0xf0,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, src_scc, v2, 0xaf123456 -// GFX11: encoding: [0xfd,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v5, src_scc, v2, 0xaf123456 ; encoding: [0xfd,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v255, 0xaf123456, v255, 0xaf123456 -// GFX11: encoding: [0xff,0xfe,0xff,0x5b,0x56,0x34,0x12,0xaf] +// GFX11: v_fmaak_f32 v255, 0xaf123456, v255, 0xaf123456 ; encoding: [0xff,0xfe,0xff,0x5b,0x56,0x34,0x12,0xaf] v_fmac_dx9_zero_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x0c] v_fmac_dx9_zero_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x0d,0x56,0x34,0x12,0xaf] - -v_fmac_f16 v5.l, v1.l, v2.l -// GFX11: encoding: [0x01,0x05,0x0a,0x6c] +// GFX11: v_fmac_dx9_zero_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x0d,0x56,0x34,0x12,0xaf] -v_fmac_f16 v5.l, v127.l, v2.l -// GFX11: encoding: [0x7f,0x05,0x0a,0x6c] +v_fmac_f16 v5, v1, v2 +// GFX11: v_fmac_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x6c] -v_fmac_f16 v5.l, v1.h, v2.l -// GFX11: encoding: [0x81,0x05,0x0a,0x6c] +v_fmac_f16 v5, v127, v2 +// GFX11: v_fmac_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x6c] -v_fmac_f16 v5.l, v127.h, v2.l -// GFX11: encoding: [0xff,0x05,0x0a,0x6c] +v_fmac_f16 v5, s1, v2 +// GFX11: v_fmac_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, s1, v2.l -// GFX11: encoding: [0x01,0x04,0x0a,0x6c] +v_fmac_f16 v5, s105, v2 +// GFX11: v_fmac_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, s105, v2.l -// GFX11: encoding: [0x69,0x04,0x0a,0x6c] +v_fmac_f16 v5, vcc_lo, v2 +// GFX11: v_fmac_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, vcc_lo, v2.l -// GFX11: encoding: [0x6a,0x04,0x0a,0x6c] +v_fmac_f16 v5, vcc_hi, v2 +// GFX11: v_fmac_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, vcc_hi, v2.l -// GFX11: encoding: [0x6b,0x04,0x0a,0x6c] +v_fmac_f16 v5, ttmp15, v2 +// GFX11: v_fmac_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, ttmp15, v2.l -// GFX11: encoding: [0x7b,0x04,0x0a,0x6c] +v_fmac_f16 v5, m0, v2 +// GFX11: v_fmac_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, m0, v2.l -// GFX11: encoding: [0x7d,0x04,0x0a,0x6c] +v_fmac_f16 v5, exec_lo, v2 +// GFX11: v_fmac_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, exec_lo, v2.l -// GFX11: encoding: [0x7e,0x04,0x0a,0x6c] +v_fmac_f16 v5, exec_hi, v2 +// GFX11: v_fmac_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, exec_hi, v2.l -// GFX11: encoding: [0x7f,0x04,0x0a,0x6c] +v_fmac_f16 v5, null, v2 +// GFX11: v_fmac_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, null, v2.l -// GFX11: encoding: [0x7c,0x04,0x0a,0x6c] +v_fmac_f16 v5, -1, v2 +// GFX11: v_fmac_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, -1, v2.l -// GFX11: encoding: [0xc1,0x04,0x0a,0x6c] +v_fmac_f16 v5, 0.5, v2 +// GFX11: v_fmac_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x6c] -v_fmac_f16 v127.l, 0.5, v127.l -// GFX11: encoding: [0xf0,0xfe,0xfe,0x6c] +v_fmac_f16 v5, src_scc, v2 +// GFX11: v_fmac_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x6c] -v_fmac_f16 v5.h, src_scc, v2.h -// GFX11: encoding: [0xfd,0x04,0x0b,0x6d] - -v_fmac_f16 v127.h, 0xfe0b, v127.h -// GFX11: encoding: [0xff,0xfe,0xff,0x6d,0x0b,0xfe,0x00,0x00] +v_fmac_f16 v127, 0xfe0b, v127 +// GFX11: v_fmac_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x6c,0x0b,0xfe,0x00,0x00] v_fmac_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x56] v_fmac_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x56] v_fmac_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x56] v_fmac_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x56] v_fmac_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x56] v_fmac_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x56] v_fmac_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x56] v_fmac_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x56] v_fmac_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x56] v_fmac_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x56] v_fmac_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x56] v_fmac_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x56] v_fmac_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x56] v_fmac_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x56] +// GFX11: v_fmac_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x56] v_fmac_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x57,0x56,0x34,0x12,0xaf] +// GFX11: v_fmac_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x57,0x56,0x34,0x12,0xaf] v_fmac_legacy_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x0c] v_fmac_legacy_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x0c] v_fmac_legacy_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x0c] v_fmac_legacy_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x0c] +// GFX11: v_fmac_dx9_zero_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x0c] v_fmac_legacy_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x0d,0x56,0x34,0x12,0xaf] - -v_fmamk_f16 v5.l, v1.l, 0xfe0b, v3.l -// GFX11: encoding: [0x01,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] - -v_fmamk_f16 v5.l, v127.l, 0xfe0b, v3.l -// GFX11: encoding: [0x7f,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x0d,0x56,0x34,0x12,0xaf] -v_fmamk_f16 v5.l, v1.h, 0xfe0b, v3.l -// GFX11: encoding: [0x81,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, v1, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, v1, 0xfe0b, v3 ; encoding: [0x01,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, v127.h, 0xfe0b, v3.l -// GFX11: encoding: [0xff,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, v127, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, v127, 0xfe0b, v3 ; encoding: [0x7f,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, s1, 0xfe0b, v3.l -// GFX11: encoding: [0x01,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, s1, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, s1, 0xfe0b, v3 ; encoding: [0x01,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, s105, 0xfe0b, v3.l -// GFX11: encoding: [0x69,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, s105, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, s105, 0xfe0b, v3 ; encoding: [0x69,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, vcc_lo, 0xfe0b, v3.l -// GFX11: encoding: [0x6a,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, vcc_lo, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, vcc_lo, 0xfe0b, v3 ; encoding: [0x6a,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, vcc_hi, 0xfe0b, v3.l -// GFX11: encoding: [0x6b,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, vcc_hi, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, vcc_hi, 0xfe0b, v3 ; encoding: [0x6b,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, ttmp15, 0xfe0b, v3.l -// GFX11: encoding: [0x7b,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, ttmp15, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, ttmp15, 0xfe0b, v3 ; encoding: [0x7b,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, m0, 0xfe0b, v3.l -// GFX11: encoding: [0x7d,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, m0, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, m0, 0xfe0b, v3 ; encoding: [0x7d,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, exec_lo, 0xfe0b, v3.l -// GFX11: encoding: [0x7e,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, exec_lo, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, exec_lo, 0xfe0b, v3 ; encoding: [0x7e,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, exec_hi, 0xfe0b, v3.l -// GFX11: encoding: [0x7f,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, exec_hi, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, exec_hi, 0xfe0b, v3 ; encoding: [0x7f,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, null, 0xfe0b, v3.l -// GFX11: encoding: [0x7c,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, null, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, null, 0xfe0b, v3 ; encoding: [0x7c,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, -1, 0xfe0b, v3.l -// GFX11: encoding: [0xc1,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, -1, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, -1, 0xfe0b, v3 ; encoding: [0xc1,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v127.l, 0.5, 0xfe0b, v127.l -// GFX11: encoding: [0xf0,0xfe,0xfe,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, 0.5, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, 0.5, 0xfe0b, v3 ; encoding: [0xf0,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.h, src_scc, 0xfe0b, v3.h -// GFX11: encoding: [0xfd,0x06,0x0b,0x6f,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, src_scc, 0xfe0b, v3 +// GFX11: v_fmamk_f16 v5, src_scc, 0xfe0b, v3 ; encoding: [0xfd,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v127.h, 0xfe0b, 0xfe0b, v127.h -// GFX11: encoding: [0xff,0xfe,0xff,0x6f,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v127, 0xfe0b, 0xfe0b, v127 +// GFX11: v_fmamk_f16 v127, 0xfe0b, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x6e,0x0b,0xfe,0x00,0x00] v_fmamk_f32 v5, v1, 0xaf123456, v3 -// GFX11: encoding: [0x01,0x07,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, v1, 0xaf123456, v3 ; encoding: [0x01,0x07,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, v255, 0xaf123456, v3 -// GFX11: encoding: [0xff,0x07,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, v255, 0xaf123456, v3 ; encoding: [0xff,0x07,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, s1, 0xaf123456, v3 -// GFX11: encoding: [0x01,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, s1, 0xaf123456, v3 ; encoding: [0x01,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, s105, 0xaf123456, v3 -// GFX11: encoding: [0x69,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, s105, 0xaf123456, v3 ; encoding: [0x69,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, vcc_lo, 0xaf123456, v3 -// GFX11: encoding: [0x6a,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, vcc_lo, 0xaf123456, v3 ; encoding: [0x6a,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, vcc_hi, 0xaf123456, v3 -// GFX11: encoding: [0x6b,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, vcc_hi, 0xaf123456, v3 ; encoding: [0x6b,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, ttmp15, 0xaf123456, v3 -// GFX11: encoding: [0x7b,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, ttmp15, 0xaf123456, v3 ; encoding: [0x7b,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, m0, 0xaf123456, v3 -// GFX11: encoding: [0x7d,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, m0, 0xaf123456, v3 ; encoding: [0x7d,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, exec_lo, 0xaf123456, v3 -// GFX11: encoding: [0x7e,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, exec_lo, 0xaf123456, v3 ; encoding: [0x7e,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, exec_hi, 0xaf123456, v3 -// GFX11: encoding: [0x7f,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, exec_hi, 0xaf123456, v3 ; encoding: [0x7f,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, null, 0xaf123456, v3 -// GFX11: encoding: [0x7c,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, null, 0xaf123456, v3 ; encoding: [0x7c,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, -1, 0xaf123456, v3 -// GFX11: encoding: [0xc1,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, -1, 0xaf123456, v3 ; encoding: [0xc1,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, 0.5, 0xaf123456, v3 -// GFX11: encoding: [0xf0,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, 0.5, 0xaf123456, v3 ; encoding: [0xf0,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, src_scc, 0xaf123456, v3 -// GFX11: encoding: [0xfd,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v5, src_scc, 0xaf123456, v3 ; encoding: [0xfd,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v255, 0xaf123456, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x59,0x56,0x34,0x12,0xaf] +// GFX11: v_fmamk_f32 v255, 0xaf123456, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x59,0x56,0x34,0x12,0xaf] v_ldexp_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x76] v_ldexp_f16 v5, v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x76] v_ldexp_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x76] v_ldexp_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x76] v_ldexp_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x76] v_ldexp_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x76] v_ldexp_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x76] v_ldexp_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x76] v_ldexp_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x76] v_ldexp_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x76] v_ldexp_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x76] v_ldexp_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x76] v_ldexp_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x76] v_ldexp_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x76] +// GFX11: v_ldexp_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x76] v_ldexp_f16 v127, 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0xfe,0x76,0x0b,0xfe,0x00,0x00] +// GFX11: v_ldexp_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x76,0x0b,0xfe,0x00,0x00] v_lshlrev_b32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x30] v_lshlrev_b32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x30] v_lshlrev_b32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x30] v_lshlrev_b32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x30] v_lshlrev_b32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x30] v_lshlrev_b32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x30] v_lshlrev_b32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x30] v_lshlrev_b32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x30] v_lshlrev_b32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x30] v_lshlrev_b32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x30] v_lshlrev_b32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x30] v_lshlrev_b32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x30] v_lshlrev_b32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x30] v_lshlrev_b32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x30] +// GFX11: v_lshlrev_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x30] v_lshlrev_b32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x31,0x56,0x34,0x12,0xaf] +// GFX11: v_lshlrev_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x31,0x56,0x34,0x12,0xaf] v_lshrrev_b32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x32] v_lshrrev_b32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x32] v_lshrrev_b32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x32] v_lshrrev_b32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x32] v_lshrrev_b32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x32] v_lshrrev_b32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x32] v_lshrrev_b32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x32] v_lshrrev_b32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x32] v_lshrrev_b32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x32] v_lshrrev_b32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x32] v_lshrrev_b32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x32] v_lshrrev_b32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x32] v_lshrrev_b32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x32] v_lshrrev_b32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x32] +// GFX11: v_lshrrev_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x32] v_lshrrev_b32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x33,0x56,0x34,0x12,0xaf] +// GFX11: v_lshrrev_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x33,0x56,0x34,0x12,0xaf] v_max_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x72] v_max_f16 v5, v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x72] v_max_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x72] v_max_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x72] v_max_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x72] v_max_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x72] v_max_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x72] v_max_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x72] v_max_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x72] v_max_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x72] v_max_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x72] v_max_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x72] v_max_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x72] v_max_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x72] +// GFX11: v_max_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x72] v_max_f16 v127, 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0xfe,0x72,0x0b,0xfe,0x00,0x00] +// GFX11: v_max_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x72,0x0b,0xfe,0x00,0x00] v_max_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x20] v_max_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x20] v_max_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x20] v_max_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x20] v_max_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x20] v_max_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x20] v_max_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x20] v_max_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x20] v_max_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x20] v_max_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x20] v_max_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x20] v_max_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x20] v_max_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x20] v_max_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x20] +// GFX11: v_max_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x20] v_max_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x21,0x56,0x34,0x12,0xaf] +// GFX11: v_max_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x21,0x56,0x34,0x12,0xaf] v_max_i32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x24] v_max_i32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x24] v_max_i32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x24] v_max_i32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x24] v_max_i32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x24] v_max_i32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x24] v_max_i32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x24] v_max_i32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x24] v_max_i32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x24] v_max_i32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x24] v_max_i32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x24] v_max_i32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x24] v_max_i32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x24] v_max_i32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x24] +// GFX11: v_max_i32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x24] v_max_i32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x25,0x56,0x34,0x12,0xaf] +// GFX11: v_max_i32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x25,0x56,0x34,0x12,0xaf] v_max_u32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x28] v_max_u32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x28] v_max_u32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x28] v_max_u32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x28] v_max_u32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x28] v_max_u32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x28] v_max_u32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x28] v_max_u32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x28] v_max_u32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x28] v_max_u32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x28] v_max_u32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x28] v_max_u32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x28] v_max_u32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x28] v_max_u32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x28] +// GFX11: v_max_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x28] v_max_u32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x29,0x56,0x34,0x12,0xaf] +// GFX11: v_max_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x29,0x56,0x34,0x12,0xaf] v_min_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x74] v_min_f16 v5, v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x74] v_min_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x74] v_min_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x74] v_min_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x74] v_min_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x74] v_min_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x74] v_min_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x74] v_min_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x74] v_min_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x74] v_min_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x74] v_min_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x74] v_min_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x74] v_min_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x74] +// GFX11: v_min_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x74] v_min_f16 v127, 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0xfe,0x74,0x0b,0xfe,0x00,0x00] +// GFX11: v_min_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x74,0x0b,0xfe,0x00,0x00] v_min_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x1e] v_min_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x1e] v_min_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x1e] v_min_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x1e] v_min_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x1e] v_min_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x1e] v_min_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x1e] v_min_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x1e] v_min_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x1e] v_min_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x1e] v_min_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x1e] v_min_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x1e] v_min_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x1e] v_min_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x1e] +// GFX11: v_min_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x1e] v_min_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x1f,0x56,0x34,0x12,0xaf] +// GFX11: v_min_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x1f,0x56,0x34,0x12,0xaf] v_min_i32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x22] v_min_i32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x22] v_min_i32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x22] v_min_i32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x22] v_min_i32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x22] v_min_i32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x22] v_min_i32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x22] v_min_i32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x22] v_min_i32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x22] v_min_i32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x22] v_min_i32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x22] v_min_i32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x22] v_min_i32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x22] v_min_i32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x22] +// GFX11: v_min_i32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x22] v_min_i32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x23,0x56,0x34,0x12,0xaf] +// GFX11: v_min_i32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x23,0x56,0x34,0x12,0xaf] v_min_u32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x26] v_min_u32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x26] v_min_u32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x26] v_min_u32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x26] v_min_u32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x26] v_min_u32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x26] v_min_u32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x26] v_min_u32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x26] v_min_u32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x26] v_min_u32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x26] v_min_u32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x26] v_min_u32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x26] v_min_u32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x26] v_min_u32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x26] +// GFX11: v_min_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x26] v_min_u32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x27,0x56,0x34,0x12,0xaf] +// GFX11: v_min_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x27,0x56,0x34,0x12,0xaf] v_mul_dx9_zero_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x0e] v_mul_dx9_zero_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x0e] v_mul_dx9_zero_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x0f,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_dx9_zero_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x0f,0x56,0x34,0x12,0xaf] v_mul_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x6a] v_mul_f16 v5, v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x6a] v_mul_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x6a] v_mul_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x6a] v_mul_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x6a] v_mul_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x6a] v_mul_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x6a] v_mul_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x6a] v_mul_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x6a] v_mul_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x6a] v_mul_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x6a] v_mul_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x6a] v_mul_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x6a] v_mul_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x6a] +// GFX11: v_mul_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x6a] v_mul_f16 v127, 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0xfe,0x6a,0x0b,0xfe,0x00,0x00] +// GFX11: v_mul_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x6a,0x0b,0xfe,0x00,0x00] v_mul_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x10] v_mul_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x10] v_mul_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x10] v_mul_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x10] v_mul_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x10] v_mul_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x10] v_mul_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x10] v_mul_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x10] v_mul_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x10] v_mul_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x10] v_mul_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x10] v_mul_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x10] v_mul_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x10] v_mul_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x10] +// GFX11: v_mul_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x10] v_mul_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x11,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x11,0x56,0x34,0x12,0xaf] v_mul_hi_i32_i24 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x14] v_mul_hi_i32_i24 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x14] v_mul_hi_i32_i24 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x14] +// GFX11: v_mul_hi_i32_i24_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x14] v_mul_hi_i32_i24 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x15,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_i32_i24_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x15,0x56,0x34,0x12,0xaf] v_mul_hi_u32_u24 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x18] v_mul_hi_u32_u24 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x18] v_mul_hi_u32_u24 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x18] +// GFX11: v_mul_hi_u32_u24_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x18] v_mul_hi_u32_u24 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x19,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_u32_u24_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x19,0x56,0x34,0x12,0xaf] v_mul_i32_i24 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x12] v_mul_i32_i24 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x12] v_mul_i32_i24 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x12] v_mul_i32_i24 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x12] v_mul_i32_i24 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x12] v_mul_i32_i24 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x12] v_mul_i32_i24 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x12] v_mul_i32_i24 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x12] v_mul_i32_i24 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x12] v_mul_i32_i24 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x12] v_mul_i32_i24 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x12] v_mul_i32_i24 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x12] v_mul_i32_i24 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x12] v_mul_i32_i24 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x12] +// GFX11: v_mul_i32_i24_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x12] v_mul_i32_i24 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x13,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_i32_i24_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x13,0x56,0x34,0x12,0xaf] v_mul_legacy_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x0e] v_mul_legacy_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x0e] v_mul_legacy_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x0e] +// GFX11: v_mul_dx9_zero_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x0e] v_mul_legacy_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x0f,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_dx9_zero_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x0f,0x56,0x34,0x12,0xaf] v_mul_u32_u24 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x16] v_mul_u32_u24 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x16] v_mul_u32_u24 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x16] v_mul_u32_u24 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x16] v_mul_u32_u24 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x16] v_mul_u32_u24 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x16] v_mul_u32_u24 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x16] v_mul_u32_u24 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x16] v_mul_u32_u24 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x16] v_mul_u32_u24 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x16] v_mul_u32_u24 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x16] v_mul_u32_u24 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x16] v_mul_u32_u24 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x16] v_mul_u32_u24 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x16] +// GFX11: v_mul_u32_u24_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x16] v_mul_u32_u24 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x17,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_u32_u24_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x17,0x56,0x34,0x12,0xaf] v_or_b32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x38] v_or_b32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x38] v_or_b32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x38] v_or_b32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x38] v_or_b32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x38] v_or_b32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x38] v_or_b32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x38] v_or_b32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x38] v_or_b32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x38] v_or_b32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x38] v_or_b32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x38] v_or_b32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x38] v_or_b32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x38] v_or_b32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x38] +// GFX11: v_or_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x38] v_or_b32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x39,0x56,0x34,0x12,0xaf] +// GFX11: v_or_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x39,0x56,0x34,0x12,0xaf] v_pk_fmac_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x78] v_pk_fmac_f16 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x78] v_pk_fmac_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x78] v_pk_fmac_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x78] v_pk_fmac_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x78] v_pk_fmac_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x78] v_pk_fmac_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x78] v_pk_fmac_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x78] v_pk_fmac_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x78] v_pk_fmac_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x78] v_pk_fmac_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x78] v_pk_fmac_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x78] v_pk_fmac_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x78] v_pk_fmac_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x78] +// GFX11: v_pk_fmac_f16 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x78] v_pk_fmac_f16 v255, 0xfe0b, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x79,0x0b,0xfe,0x00,0x00] +// GFX11: v_pk_fmac_f16 v255, 0xfe0b, v255 ; encoding: [0xff,0xfe,0xff,0x79,0x0b,0xfe,0x00,0x00] v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo -// W32: encoding: [0x01,0x05,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo ; encoding: [0x01,0x05,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v255, v2, vcc_lo -// W32: encoding: [0xff,0x05,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, v255, v2, vcc_lo ; encoding: [0xff,0x05,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, s1, v2, vcc_lo -// W32: encoding: [0x01,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, s1, v2, vcc_lo ; encoding: [0x01,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, s105, v2, vcc_lo -// W32: encoding: [0x69,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, s105, v2, vcc_lo ; encoding: [0x69,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, vcc_lo, v2, vcc_lo -// W32: encoding: [0x6a,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, vcc_lo, v2, vcc_lo ; encoding: [0x6a,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, vcc_hi, v2, vcc_lo -// W32: encoding: [0x6b,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, vcc_hi, v2, vcc_lo ; encoding: [0x6b,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, ttmp15, v2, vcc_lo -// W32: encoding: [0x7b,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, ttmp15, v2, vcc_lo ; encoding: [0x7b,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, m0, v2, vcc_lo -// W32: encoding: [0x7d,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, m0, v2, vcc_lo ; encoding: [0x7d,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, exec_lo, v2, vcc_lo -// W32: encoding: [0x7e,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, exec_lo, v2, vcc_lo ; encoding: [0x7e,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, exec_hi, v2, vcc_lo -// W32: encoding: [0x7f,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, exec_hi, v2, vcc_lo ; encoding: [0x7f,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, null, v2, vcc_lo -// W32: encoding: [0x7c,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, null, v2, vcc_lo ; encoding: [0x7c,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, -1, v2, vcc_lo -// W32: encoding: [0xc1,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, -1, v2, vcc_lo ; encoding: [0xc1,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, 0.5, v2, vcc_lo -// W32: encoding: [0xf0,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, 0.5, v2, vcc_lo ; encoding: [0xf0,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, src_scc, v2, vcc_lo -// W32: encoding: [0xfd,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, src_scc, v2, vcc_lo ; encoding: [0xfd,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc_lo, 0xaf123456, v255, vcc_lo -// W32: encoding: [0xff,0xfe,0xff,0x43,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v255, vcc_lo, 0xaf123456, v255, vcc_lo ; encoding: [0xff,0xfe,0xff,0x43,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc -// W64: encoding: [0x01,0x05,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, v1, v2, vcc ; encoding: [0x01,0x05,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v255, v2, vcc -// W64: encoding: [0xff,0x05,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, v255, v2, vcc ; encoding: [0xff,0x05,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, s1, v2, vcc -// W64: encoding: [0x01,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, s1, v2, vcc ; encoding: [0x01,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, s105, v2, vcc -// W64: encoding: [0x69,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, s105, v2, vcc ; encoding: [0x69,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, vcc_lo, v2, vcc -// W64: encoding: [0x6a,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, vcc_lo, v2, vcc ; encoding: [0x6a,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, vcc_hi, v2, vcc -// W64: encoding: [0x6b,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, vcc_hi, v2, vcc ; encoding: [0x6b,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, ttmp15, v2, vcc -// W64: encoding: [0x7b,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, ttmp15, v2, vcc ; encoding: [0x7b,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, m0, v2, vcc -// W64: encoding: [0x7d,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, m0, v2, vcc ; encoding: [0x7d,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, exec_lo, v2, vcc -// W64: encoding: [0x7e,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, exec_lo, v2, vcc ; encoding: [0x7e,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, exec_hi, v2, vcc -// W64: encoding: [0x7f,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, exec_hi, v2, vcc ; encoding: [0x7f,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, null, v2, vcc -// W64: encoding: [0x7c,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, null, v2, vcc ; encoding: [0x7c,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, -1, v2, vcc -// W64: encoding: [0xc1,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, -1, v2, vcc ; encoding: [0xc1,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, 0.5, v2, vcc -// W64: encoding: [0xf0,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, 0.5, v2, vcc ; encoding: [0xf0,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, src_scc, v2, vcc -// W64: encoding: [0xfd,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, src_scc, v2, vcc ; encoding: [0xfd,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc, 0xaf123456, v255, vcc -// W64: encoding: [0xff,0xfe,0xff,0x43,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v255, vcc, 0xaf123456, v255, vcc ; encoding: [0xff,0xfe,0xff,0x43,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x66] v_sub_f16 v5, v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x66] v_sub_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x66] v_sub_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x66] v_sub_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x66] v_sub_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x66] v_sub_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x66] v_sub_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x66] v_sub_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x66] v_sub_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x66] v_sub_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x66] v_sub_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x66] v_sub_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x66] v_sub_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x66] +// GFX11: v_sub_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x66] v_sub_f16 v127, 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0xfe,0x66,0x0b,0xfe,0x00,0x00] +// GFX11: v_sub_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x66,0x0b,0xfe,0x00,0x00] v_sub_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x08] v_sub_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x08] v_sub_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x08] v_sub_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x08] v_sub_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x08] v_sub_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x08] v_sub_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x08] v_sub_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x08] v_sub_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x08] v_sub_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x08] v_sub_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x08] v_sub_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x08] v_sub_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x08] v_sub_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x08] +// GFX11: v_sub_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x08] v_sub_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x09,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x09,0x56,0x34,0x12,0xaf] v_sub_nc_u32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x4c] v_sub_nc_u32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x4c] v_sub_nc_u32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x4c] v_sub_nc_u32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x4c] v_sub_nc_u32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x4c] v_sub_nc_u32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x4c] v_sub_nc_u32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x4c] v_sub_nc_u32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x4c] v_sub_nc_u32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x4c] v_sub_nc_u32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x4c] v_sub_nc_u32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x4c] v_sub_nc_u32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x4c] v_sub_nc_u32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x4c] v_sub_nc_u32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x4c] +// GFX11: v_sub_nc_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x4c] v_sub_nc_u32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x4d,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_nc_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x4d,0x56,0x34,0x12,0xaf] v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo -// W32: encoding: [0x01,0x05,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo ; encoding: [0x01,0x05,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v255, v2, vcc_lo -// W32: encoding: [0xff,0x05,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, v255, v2, vcc_lo ; encoding: [0xff,0x05,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, s1, v2, vcc_lo -// W32: encoding: [0x01,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, s1, v2, vcc_lo ; encoding: [0x01,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, s105, v2, vcc_lo -// W32: encoding: [0x69,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, s105, v2, vcc_lo ; encoding: [0x69,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, vcc_lo, v2, vcc_lo -// W32: encoding: [0x6a,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, vcc_lo, v2, vcc_lo ; encoding: [0x6a,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, vcc_hi, v2, vcc_lo -// W32: encoding: [0x6b,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, vcc_hi, v2, vcc_lo ; encoding: [0x6b,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, ttmp15, v2, vcc_lo -// W32: encoding: [0x7b,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, ttmp15, v2, vcc_lo ; encoding: [0x7b,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, m0, v2, vcc_lo -// W32: encoding: [0x7d,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, m0, v2, vcc_lo ; encoding: [0x7d,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, exec_lo, v2, vcc_lo -// W32: encoding: [0x7e,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, exec_lo, v2, vcc_lo ; encoding: [0x7e,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, exec_hi, v2, vcc_lo -// W32: encoding: [0x7f,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, exec_hi, v2, vcc_lo ; encoding: [0x7f,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, null, v2, vcc_lo -// W32: encoding: [0x7c,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, null, v2, vcc_lo ; encoding: [0x7c,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, -1, v2, vcc_lo -// W32: encoding: [0xc1,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, -1, v2, vcc_lo ; encoding: [0xc1,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, 0.5, v2, vcc_lo -// W32: encoding: [0xf0,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, 0.5, v2, vcc_lo ; encoding: [0xf0,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, src_scc, v2, vcc_lo -// W32: encoding: [0xfd,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, src_scc, v2, vcc_lo ; encoding: [0xfd,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc_lo, 0xaf123456, v255, vcc_lo -// W32: encoding: [0xff,0xfe,0xff,0x45,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v255, vcc_lo, 0xaf123456, v255, vcc_lo ; encoding: [0xff,0xfe,0xff,0x45,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc -// W64: encoding: [0x01,0x05,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, v1, v2, vcc ; encoding: [0x01,0x05,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v255, v2, vcc -// W64: encoding: [0xff,0x05,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, v255, v2, vcc ; encoding: [0xff,0x05,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, s1, v2, vcc -// W64: encoding: [0x01,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, s1, v2, vcc ; encoding: [0x01,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, s105, v2, vcc -// W64: encoding: [0x69,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, s105, v2, vcc ; encoding: [0x69,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, vcc_lo, v2, vcc -// W64: encoding: [0x6a,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, vcc_lo, v2, vcc ; encoding: [0x6a,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, vcc_hi, v2, vcc -// W64: encoding: [0x6b,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, vcc_hi, v2, vcc ; encoding: [0x6b,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, ttmp15, v2, vcc -// W64: encoding: [0x7b,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, ttmp15, v2, vcc ; encoding: [0x7b,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, m0, v2, vcc -// W64: encoding: [0x7d,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, m0, v2, vcc ; encoding: [0x7d,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, exec_lo, v2, vcc -// W64: encoding: [0x7e,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, exec_lo, v2, vcc ; encoding: [0x7e,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, exec_hi, v2, vcc -// W64: encoding: [0x7f,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, exec_hi, v2, vcc ; encoding: [0x7f,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, null, v2, vcc -// W64: encoding: [0x7c,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, null, v2, vcc ; encoding: [0x7c,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, -1, v2, vcc -// W64: encoding: [0xc1,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, -1, v2, vcc ; encoding: [0xc1,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, 0.5, v2, vcc -// W64: encoding: [0xf0,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, 0.5, v2, vcc ; encoding: [0xf0,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, src_scc, v2, vcc -// W64: encoding: [0xfd,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, src_scc, v2, vcc ; encoding: [0xfd,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc, 0xaf123456, v255, vcc -// W64: encoding: [0xff,0xfe,0xff,0x45,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v255, vcc, 0xaf123456, v255, vcc ; encoding: [0xff,0xfe,0xff,0x45,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_f16 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x68] v_subrev_f16 v5, v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x68] v_subrev_f16 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x68] v_subrev_f16 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x68] v_subrev_f16 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x68] v_subrev_f16 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x68] v_subrev_f16 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x68] v_subrev_f16 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x68] v_subrev_f16 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x68] v_subrev_f16 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x68] v_subrev_f16 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x68] v_subrev_f16 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x68] v_subrev_f16 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x68] v_subrev_f16 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x68] +// GFX11: v_subrev_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x68] v_subrev_f16 v127, 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0xfe,0x68,0x0b,0xfe,0x00,0x00] +// GFX11: v_subrev_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x68,0x0b,0xfe,0x00,0x00] v_subrev_f32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x0a] v_subrev_f32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x0a] v_subrev_f32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x0a] v_subrev_f32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x0a] v_subrev_f32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x0a] v_subrev_f32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x0a] v_subrev_f32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x0a] v_subrev_f32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x0a] v_subrev_f32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x0a] v_subrev_f32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x0a] v_subrev_f32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x0a] v_subrev_f32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x0a] v_subrev_f32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x0a] v_subrev_f32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x0a] +// GFX11: v_subrev_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x0a] v_subrev_f32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x0b,0x56,0x34,0x12,0xaf] +// GFX11: v_subrev_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x0b,0x56,0x34,0x12,0xaf] v_subrev_nc_u32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x4e] v_subrev_nc_u32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x4e] v_subrev_nc_u32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x4e] +// GFX11: v_subrev_nc_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x4e] v_subrev_nc_u32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x4f,0x56,0x34,0x12,0xaf] +// GFX11: v_subrev_nc_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x4f,0x56,0x34,0x12,0xaf] v_xnor_b32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x3c] v_xnor_b32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x3c] v_xnor_b32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x3c] v_xnor_b32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x3c] v_xnor_b32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x3c] v_xnor_b32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x3c] v_xnor_b32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x3c] v_xnor_b32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x3c] v_xnor_b32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x3c] v_xnor_b32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x3c] v_xnor_b32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x3c] v_xnor_b32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x3c] v_xnor_b32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x3c] v_xnor_b32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x3c] +// GFX11: v_xnor_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x3c] v_xnor_b32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x3d,0x56,0x34,0x12,0xaf] +// GFX11: v_xnor_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x3d,0x56,0x34,0x12,0xaf] v_xor_b32 v5, v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x3a] v_xor_b32 v5, v255, v2 -// GFX11: encoding: [0xff,0x05,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x3a] v_xor_b32 v5, s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x3a] v_xor_b32 v5, s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x3a] v_xor_b32 v5, vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x3a] v_xor_b32 v5, vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x3a] v_xor_b32 v5, ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x3a] v_xor_b32 v5, m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x3a] v_xor_b32 v5, exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x3a] v_xor_b32 v5, exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x3a] v_xor_b32 v5, null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x3a] v_xor_b32 v5, -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x3a] v_xor_b32 v5, 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x3a] v_xor_b32 v5, src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x3a] +// GFX11: v_xor_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x3a] v_xor_b32 v255, 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x3b,0x56,0x34,0x12,0xaf] +// GFX11: v_xor_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x3b,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s index f40278cb9c42e..9d0a407a4cd5e 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s @@ -1,2114 +1,2115 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xff,0x41,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x41,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xff,0x41,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x41,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1b,0x00,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1b,0x00,0xff] v_add_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0xe4,0x00,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0xe4,0x00,0xff] v_add_f16 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x40,0x01,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x40,0x01,0xff] v_add_f16 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x41,0x01,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x41,0x01,0xff] v_add_f16 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x01,0x01,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x01,0x01,0xff] v_add_f16 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x0f,0x01,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x0f,0x01,0xff] v_add_f16 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x11,0x01,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x11,0x01,0xff] v_add_f16 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1f,0x01,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1f,0x01,0xff] v_add_f16 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x21,0x01,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x21,0x01,0xff] v_add_f16 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x2f,0x01,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x2f,0x01,0xff] v_add_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x50,0x01,0xff] +// GFX11: v_add_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x50,0x01,0xff] v_add_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x5f,0x01,0x01] +// GFX11: v_add_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x5f,0x01,0x01] v_add_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x60,0x09,0x13] +// GFX11: v_add_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x60,0x09,0x13] v_add_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xfe,0x64,0x7f,0x6f,0xf5,0x30] +// GFX11: v_add_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x64,0x7f,0x6f,0xf5,0x30] v_add_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1b,0x00,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1b,0x00,0xff] v_add_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0xe4,0x00,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0xe4,0x00,0xff] v_add_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x40,0x01,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x40,0x01,0xff] v_add_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x41,0x01,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x41,0x01,0xff] v_add_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x01,0x01,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x01,0x01,0xff] v_add_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x0f,0x01,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x0f,0x01,0xff] v_add_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x11,0x01,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x11,0x01,0xff] v_add_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1f,0x01,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1f,0x01,0xff] v_add_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x21,0x01,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x21,0x01,0xff] v_add_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x2f,0x01,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x2f,0x01,0xff] v_add_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x50,0x01,0xff] +// GFX11: v_add_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x50,0x01,0xff] v_add_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x5f,0x01,0x01] +// GFX11: v_add_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x5f,0x01,0x01] v_add_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x60,0x09,0x13] +// GFX11: v_add_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x60,0x09,0x13] v_add_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x07,0xff,0x6f,0xf5,0x30] +// GFX11: v_add_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x07,0xff,0x6f,0xf5,0x30] v_add_nc_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x1b,0x00,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x1b,0x00,0xff] v_add_nc_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0xe4,0x00,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0xe4,0x00,0xff] v_add_nc_u32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x40,0x01,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x40,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x41,0x01,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x41,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x01,0x01,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x01,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x0f,0x01,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x0f,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x11,0x01,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x11,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x1f,0x01,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x1f,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x21,0x01,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x21,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x2f,0x01,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x2f,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x50,0x01,0xff] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x50,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x5f,0x01,0x01] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x5f,0x01,0x01] v_add_nc_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x60,0x09,0x13] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x60,0x09,0x13] v_add_nc_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x4b,0xff,0x6f,0x05,0x30] +// GFX11: v_add_nc_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x4b,0xff,0x6f,0x05,0x30] v_and_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x1b,0x00,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x1b,0x00,0xff] v_and_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0xe4,0x00,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0xe4,0x00,0xff] v_and_b32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x40,0x01,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x40,0x01,0xff] v_and_b32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x41,0x01,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x41,0x01,0xff] v_and_b32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x01,0x01,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x01,0x01,0xff] v_and_b32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x0f,0x01,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x0f,0x01,0xff] v_and_b32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x11,0x01,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x11,0x01,0xff] v_and_b32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x1f,0x01,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x1f,0x01,0xff] v_and_b32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x21,0x01,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x21,0x01,0xff] v_and_b32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x2f,0x01,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x2f,0x01,0xff] v_and_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x50,0x01,0xff] +// GFX11: v_and_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x50,0x01,0xff] v_and_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x5f,0x01,0x01] +// GFX11: v_and_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x5f,0x01,0x01] v_and_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x60,0x09,0x13] +// GFX11: v_and_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x60,0x09,0x13] v_and_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x37,0xff,0x6f,0x05,0x30] +// GFX11: v_and_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x37,0xff,0x6f,0x05,0x30] v_ashrrev_i32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x1b,0x00,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x1b,0x00,0xff] v_ashrrev_i32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0xe4,0x00,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0xe4,0x00,0xff] v_ashrrev_i32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x40,0x01,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x40,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x41,0x01,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x41,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x01,0x01,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x01,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x0f,0x01,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x0f,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x11,0x01,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x11,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x1f,0x01,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x1f,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x21,0x01,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x21,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x2f,0x01,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x2f,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x50,0x01,0xff] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x50,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x5f,0x01,0x01] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x5f,0x01,0x01] v_ashrrev_i32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x60,0x09,0x13] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x60,0x09,0x13] v_ashrrev_i32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x35,0xff,0x6f,0x05,0x30] +// GFX11: v_ashrrev_i32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x35,0xff,0x6f,0x05,0x30] v_cndmask_b32 v5, v1, v2, vcc_lo quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, -v1, |v2|, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x90,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, -v1, |v2|, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x90,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, |v1|, -v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x60,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, |v1|, -v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x60,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, -|v1|, -|v2|, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0xf0,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, -|v1|, -|v2|, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0xf0,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xff,0x03,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v255, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x03,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xff,0x03,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v255, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x03,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32_dpp v5, -v1, |v2|, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x90,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, -v1, |v2|, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x90,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32_dpp v5, |v1|, -v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x60,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, |v1|, -v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x60,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32_dpp v5, -|v1|, -|v2|, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:0 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0xf0,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, -|v1|, -|v2|, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0xf0,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cvt_pk_rtz_f16_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1b,0x00,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0xe4,0x00,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x40,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x41,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x01,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x0f,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x11,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1f,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x21,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x2f,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x50,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x5f,0x01,0x01] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x60,0x09,0x13] v_cvt_pk_rtz_f16_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x5f,0xff,0x6f,0xf5,0x30] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x5f,0xff,0x6f,0xf5,0x30] v_cvt_pkrtz_f16_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1b,0x00,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0xe4,0x00,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x40,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x41,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x01,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x0f,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x11,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1f,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x21,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x2f,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x50,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x5f,0x01,0x01] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x60,0x09,0x13] v_cvt_pkrtz_f16_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x5f,0xff,0x6f,0xf5,0x30] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x5f,0xff,0x6f,0xf5,0x30] v_dot2acc_f32_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x1b,0x00,0xff] v_dot2acc_f32_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0xe4,0x00,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x40,0x01,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x41,0x01,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x01,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x01,0x01,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x0f,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x0f,0x01,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x11,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x11,0x01,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x1f,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x1f,0x01,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x21,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x21,0x01,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x2f,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x2f,0x01,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x50,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x50,0x01,0xff] v_dot2acc_f32_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x5f,0x01,0x01] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x5f,0x01,0x01] v_dot2acc_f32_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x60,0x09,0x13] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x60,0x09,0x13] v_dot2acc_f32_f16 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x05,0xff,0x6f,0xf5,0x30] +// GFX11: v_dot2acc_f32_f16_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x05,0xff,0x6f,0xf5,0x30] v_dot2c_f32_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x1b,0x00,0xff] v_dot2c_f32_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0xe4,0x00,0xff] v_dot2c_f32_f16 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x40,0x01,0xff] v_dot2c_f32_f16 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x41,0x01,0xff] v_dot2c_f32_f16 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x01,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x01,0x01,0xff] v_dot2c_f32_f16 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x0f,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x0f,0x01,0xff] v_dot2c_f32_f16 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x11,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x11,0x01,0xff] v_dot2c_f32_f16 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x1f,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x1f,0x01,0xff] v_dot2c_f32_f16 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x21,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x21,0x01,0xff] v_dot2c_f32_f16 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x2f,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x2f,0x01,0xff] v_dot2c_f32_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x50,0x01,0xff] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x50,0x01,0xff] v_dot2c_f32_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x5f,0x01,0x01] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x5f,0x01,0x01] v_dot2c_f32_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x04,0x01,0x60,0x09,0x13] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x04,0x01,0x60,0x09,0x13] v_dot2c_f32_f16 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x05,0xff,0x6f,0xf5,0x30] +// GFX11: v_dot2acc_f32_f16_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x05,0xff,0x6f,0xf5,0x30] -v_fmac_f16 v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x1b,0x00,0xff] +v_fmac_f16 v5, v1, v2 quad_perm:[3,2,1,0] +// GFX11: v_fmac_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x1b,0x00,0xff] -v_fmac_f16 v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0xe4,0x00,0xff] +v_fmac_f16 v5, v1, v2 quad_perm:[0,1,2,3] +// GFX11: v_fmac_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0xe4,0x00,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x40,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_mirror +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x40,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x41,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_half_mirror +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x41,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x01,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_shl:1 +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x01,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x0f,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_shl:15 +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x0f,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x11,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_shr:1 +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x11,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x1f,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_shr:15 +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x1f,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x21,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_ror:1 +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x21,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x2f,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_ror:15 +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x2f,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x50,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x50,0x01,0xff] -v_fmac_f16 v127.l, v127.l, v127.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0xfe,0xfe,0x6c,0x7f,0x5f,0x01,0x01] +v_fmac_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x5f,0x01,0x01] -v_fmac_f16 v5.h, v1.h, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0b,0x6d,0x81,0x60,0x09,0x13] +v_fmac_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 +// GFX11: v_fmac_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x60,0x09,0x13] -v_fmac_f16 v127.h, -|v127.h|, -|v127.h| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x6d,0xff,0x6f,0xf5,0x30] +v_fmac_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 +// GFX11: v_fmac_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x6c,0x7f,0x6f,0xf5,0x30] v_fmac_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x1b,0x00,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x1b,0x00,0xff] v_fmac_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0xe4,0x00,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0xe4,0x00,0xff] v_fmac_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x40,0x01,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x40,0x01,0xff] v_fmac_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x41,0x01,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x41,0x01,0xff] v_fmac_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x01,0x01,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x01,0x01,0xff] v_fmac_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x0f,0x01,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x0f,0x01,0xff] v_fmac_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x11,0x01,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x11,0x01,0xff] v_fmac_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x1f,0x01,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x1f,0x01,0xff] v_fmac_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x21,0x01,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x21,0x01,0xff] v_fmac_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x2f,0x01,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x2f,0x01,0xff] v_fmac_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x50,0x01,0xff] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x50,0x01,0xff] v_fmac_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x5f,0x01,0x01] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x5f,0x01,0x01] v_fmac_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x60,0x09,0x13] +// GFX11: v_fmac_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x60,0x09,0x13] v_fmac_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x57,0xff,0x6f,0xf5,0x30] +// GFX11: v_fmac_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x57,0xff,0x6f,0xf5,0x30] v_ldexp_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1b,0x00,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1b,0x00,0xff] v_ldexp_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xff] v_ldexp_f16 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x40,0x01,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x40,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x41,0x01,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x41,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x01,0x01,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x01,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x0f,0x01,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x0f,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x11,0x01,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x11,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1f,0x01,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1f,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x21,0x01,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x21,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x2f,0x01,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x2f,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x50,0x01,0xff] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x50,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x5f,0x01,0x01] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x5f,0x01,0x01] v_ldexp_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x60,0x09,0x13] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x60,0x09,0x13] v_ldexp_f16 v127, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xfe,0x76,0x7f,0x6f,0x35,0x30] +// GFX11: v_ldexp_f16_dpp v127, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x76,0x7f,0x6f,0x35,0x30] v_lshlrev_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x1b,0x00,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x1b,0x00,0xff] v_lshlrev_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0xe4,0x00,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0xe4,0x00,0xff] v_lshlrev_b32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x40,0x01,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x40,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x41,0x01,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x41,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x01,0x01,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x01,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x0f,0x01,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x0f,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x11,0x01,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x11,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x1f,0x01,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x1f,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x21,0x01,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x21,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x2f,0x01,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x2f,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x50,0x01,0xff] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x50,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x5f,0x01,0x01] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x5f,0x01,0x01] v_lshlrev_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x60,0x09,0x13] v_lshlrev_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x31,0xff,0x6f,0x05,0x30] +// GFX11: v_lshlrev_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x31,0xff,0x6f,0x05,0x30] v_lshrrev_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x1b,0x00,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x1b,0x00,0xff] v_lshrrev_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0xe4,0x00,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0xe4,0x00,0xff] v_lshrrev_b32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x40,0x01,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x40,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x41,0x01,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x41,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x01,0x01,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x01,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x0f,0x01,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x0f,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x11,0x01,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x11,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x1f,0x01,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x1f,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x21,0x01,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x21,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x2f,0x01,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x2f,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x50,0x01,0xff] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x50,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x5f,0x01,0x01] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x5f,0x01,0x01] v_lshrrev_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x60,0x09,0x13] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x60,0x09,0x13] v_lshrrev_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x33,0xff,0x6f,0x05,0x30] +// GFX11: v_lshrrev_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x33,0xff,0x6f,0x05,0x30] v_max_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x1b,0x00,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x1b,0x00,0xff] v_max_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0xe4,0x00,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0xe4,0x00,0xff] v_max_f16 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x40,0x01,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x40,0x01,0xff] v_max_f16 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x41,0x01,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x41,0x01,0xff] v_max_f16 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x01,0x01,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x01,0x01,0xff] v_max_f16 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x0f,0x01,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x0f,0x01,0xff] v_max_f16 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x11,0x01,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x11,0x01,0xff] v_max_f16 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x1f,0x01,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x1f,0x01,0xff] v_max_f16 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x21,0x01,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x21,0x01,0xff] v_max_f16 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x2f,0x01,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x2f,0x01,0xff] v_max_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x50,0x01,0xff] +// GFX11: v_max_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x50,0x01,0xff] v_max_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x5f,0x01,0x01] +// GFX11: v_max_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x5f,0x01,0x01] v_max_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x72,0x01,0x60,0x09,0x13] +// GFX11: v_max_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x72,0x01,0x60,0x09,0x13] v_max_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xfe,0x72,0x7f,0x6f,0xf5,0x30] +// GFX11: v_max_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x72,0x7f,0x6f,0xf5,0x30] v_max_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x1b,0x00,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x1b,0x00,0xff] v_max_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0xe4,0x00,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0xe4,0x00,0xff] v_max_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x40,0x01,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x40,0x01,0xff] v_max_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x41,0x01,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x41,0x01,0xff] v_max_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x01,0x01,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x01,0x01,0xff] v_max_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x0f,0x01,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x0f,0x01,0xff] v_max_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x11,0x01,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x11,0x01,0xff] v_max_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x1f,0x01,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x1f,0x01,0xff] v_max_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x21,0x01,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x21,0x01,0xff] v_max_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x2f,0x01,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x2f,0x01,0xff] v_max_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x50,0x01,0xff] +// GFX11: v_max_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x50,0x01,0xff] v_max_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x5f,0x01,0x01] +// GFX11: v_max_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x5f,0x01,0x01] v_max_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_max_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x20,0x01,0x60,0x09,0x13] v_max_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x21,0xff,0x6f,0xf5,0x30] +// GFX11: v_max_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x21,0xff,0x6f,0xf5,0x30] v_max_i32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x1b,0x00,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x1b,0x00,0xff] v_max_i32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0xe4,0x00,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0xe4,0x00,0xff] v_max_i32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x40,0x01,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x40,0x01,0xff] v_max_i32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x41,0x01,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x41,0x01,0xff] v_max_i32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x01,0x01,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x01,0x01,0xff] v_max_i32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x0f,0x01,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x0f,0x01,0xff] v_max_i32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x11,0x01,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x11,0x01,0xff] v_max_i32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x1f,0x01,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x1f,0x01,0xff] v_max_i32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x21,0x01,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x21,0x01,0xff] v_max_i32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x2f,0x01,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x2f,0x01,0xff] v_max_i32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x50,0x01,0xff] +// GFX11: v_max_i32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x50,0x01,0xff] v_max_i32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x5f,0x01,0x01] +// GFX11: v_max_i32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x5f,0x01,0x01] v_max_i32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x60,0x09,0x13] +// GFX11: v_max_i32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x60,0x09,0x13] v_max_i32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x25,0xff,0x6f,0x05,0x30] +// GFX11: v_max_i32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x25,0xff,0x6f,0x05,0x30] v_max_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x1b,0x00,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x1b,0x00,0xff] v_max_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0xe4,0x00,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0xe4,0x00,0xff] v_max_u32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x40,0x01,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x40,0x01,0xff] v_max_u32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x41,0x01,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x41,0x01,0xff] v_max_u32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x01,0x01,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x01,0x01,0xff] v_max_u32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x0f,0x01,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x0f,0x01,0xff] v_max_u32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x11,0x01,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x11,0x01,0xff] v_max_u32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x1f,0x01,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x1f,0x01,0xff] v_max_u32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x21,0x01,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x21,0x01,0xff] v_max_u32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x2f,0x01,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x2f,0x01,0xff] v_max_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x50,0x01,0xff] +// GFX11: v_max_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x50,0x01,0xff] v_max_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x5f,0x01,0x01] +// GFX11: v_max_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x5f,0x01,0x01] v_max_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x60,0x09,0x13] +// GFX11: v_max_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x60,0x09,0x13] v_max_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x29,0xff,0x6f,0x05,0x30] +// GFX11: v_max_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x29,0xff,0x6f,0x05,0x30] v_min_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x1b,0x00,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x1b,0x00,0xff] v_min_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0xe4,0x00,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0xe4,0x00,0xff] v_min_f16 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x40,0x01,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x40,0x01,0xff] v_min_f16 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x41,0x01,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x41,0x01,0xff] v_min_f16 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x01,0x01,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x01,0x01,0xff] v_min_f16 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x0f,0x01,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x0f,0x01,0xff] v_min_f16 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x11,0x01,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x11,0x01,0xff] v_min_f16 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x1f,0x01,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x1f,0x01,0xff] v_min_f16 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x21,0x01,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x21,0x01,0xff] v_min_f16 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x2f,0x01,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x2f,0x01,0xff] v_min_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x50,0x01,0xff] +// GFX11: v_min_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x50,0x01,0xff] v_min_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x5f,0x01,0x01] +// GFX11: v_min_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x5f,0x01,0x01] v_min_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x74,0x01,0x60,0x09,0x13] +// GFX11: v_min_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x74,0x01,0x60,0x09,0x13] v_min_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xfe,0x74,0x7f,0x6f,0xf5,0x30] +// GFX11: v_min_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x74,0x7f,0x6f,0xf5,0x30] v_min_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x1b,0x00,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x1b,0x00,0xff] v_min_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0xe4,0x00,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0xe4,0x00,0xff] v_min_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x40,0x01,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x40,0x01,0xff] v_min_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x41,0x01,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x41,0x01,0xff] v_min_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x01,0x01,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x01,0x01,0xff] v_min_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x0f,0x01,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x0f,0x01,0xff] v_min_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x11,0x01,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x11,0x01,0xff] v_min_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x1f,0x01,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x1f,0x01,0xff] v_min_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x21,0x01,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x21,0x01,0xff] v_min_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x2f,0x01,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x2f,0x01,0xff] v_min_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x50,0x01,0xff] +// GFX11: v_min_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x50,0x01,0xff] v_min_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x5f,0x01,0x01] +// GFX11: v_min_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x5f,0x01,0x01] v_min_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x60,0x09,0x13] +// GFX11: v_min_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x1e,0x01,0x60,0x09,0x13] v_min_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x1f,0xff,0x6f,0xf5,0x30] +// GFX11: v_min_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x1f,0xff,0x6f,0xf5,0x30] v_min_i32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x1b,0x00,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x1b,0x00,0xff] v_min_i32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0xe4,0x00,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0xe4,0x00,0xff] v_min_i32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x40,0x01,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x40,0x01,0xff] v_min_i32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x41,0x01,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x41,0x01,0xff] v_min_i32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x01,0x01,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x01,0x01,0xff] v_min_i32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x0f,0x01,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x0f,0x01,0xff] v_min_i32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x11,0x01,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x11,0x01,0xff] v_min_i32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x1f,0x01,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x1f,0x01,0xff] v_min_i32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x21,0x01,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x21,0x01,0xff] v_min_i32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x2f,0x01,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x2f,0x01,0xff] v_min_i32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x50,0x01,0xff] +// GFX11: v_min_i32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x50,0x01,0xff] v_min_i32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x5f,0x01,0x01] +// GFX11: v_min_i32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x5f,0x01,0x01] v_min_i32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x60,0x09,0x13] +// GFX11: v_min_i32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x60,0x09,0x13] v_min_i32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x23,0xff,0x6f,0x05,0x30] +// GFX11: v_min_i32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x23,0xff,0x6f,0x05,0x30] v_min_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x1b,0x00,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x1b,0x00,0xff] v_min_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0xe4,0x00,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0xe4,0x00,0xff] v_min_u32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x40,0x01,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x40,0x01,0xff] v_min_u32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x41,0x01,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x41,0x01,0xff] v_min_u32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x01,0x01,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x01,0x01,0xff] v_min_u32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x0f,0x01,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x0f,0x01,0xff] v_min_u32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x11,0x01,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x11,0x01,0xff] v_min_u32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x1f,0x01,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x1f,0x01,0xff] v_min_u32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x21,0x01,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x21,0x01,0xff] v_min_u32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x2f,0x01,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x2f,0x01,0xff] v_min_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x50,0x01,0xff] +// GFX11: v_min_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x50,0x01,0xff] v_min_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x5f,0x01,0x01] +// GFX11: v_min_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x5f,0x01,0x01] v_min_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x60,0x09,0x13] +// GFX11: v_min_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x60,0x09,0x13] v_min_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x27,0xff,0x6f,0x05,0x30] +// GFX11: v_min_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x27,0xff,0x6f,0x05,0x30] v_mul_dx9_zero_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1b,0x00,0xff] v_mul_dx9_zero_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0xe4,0x00,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x40,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x40,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x41,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x41,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x01,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x01,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x0f,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x11,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x11,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1f,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x21,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x21,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x2f,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x50,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x50,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x5f,0x01,0x01] v_mul_dx9_zero_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x60,0x09,0x13] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x60,0x09,0x13] v_mul_dx9_zero_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x0f,0xff,0x6f,0xf5,0x30] +// GFX11: v_mul_dx9_zero_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x0f,0xff,0x6f,0xf5,0x30] v_mul_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x1b,0x00,0xff] v_mul_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0xe4,0x00,0xff] v_mul_f16 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x40,0x01,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x40,0x01,0xff] v_mul_f16 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x41,0x01,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x41,0x01,0xff] v_mul_f16 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x01,0x01,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x01,0x01,0xff] v_mul_f16 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x0f,0x01,0xff] v_mul_f16 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x11,0x01,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x11,0x01,0xff] v_mul_f16 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x1f,0x01,0xff] v_mul_f16 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x21,0x01,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x21,0x01,0xff] v_mul_f16 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x2f,0x01,0xff] v_mul_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x50,0x01,0xff] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x50,0x01,0xff] v_mul_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x5f,0x01,0x01] v_mul_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x60,0x09,0x13] +// GFX11: v_mul_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x60,0x09,0x13] v_mul_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xfe,0x6a,0x7f,0x6f,0xf5,0x30] +// GFX11: v_mul_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x6a,0x7f,0x6f,0xf5,0x30] v_mul_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x1b,0x00,0xff] v_mul_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0xe4,0x00,0xff] v_mul_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x40,0x01,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x40,0x01,0xff] v_mul_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x41,0x01,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x41,0x01,0xff] v_mul_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x01,0x01,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x01,0x01,0xff] v_mul_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x0f,0x01,0xff] v_mul_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x11,0x01,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x11,0x01,0xff] v_mul_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x1f,0x01,0xff] v_mul_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x21,0x01,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x21,0x01,0xff] v_mul_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x2f,0x01,0xff] v_mul_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x50,0x01,0xff] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x50,0x01,0xff] v_mul_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x5f,0x01,0x01] v_mul_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x60,0x09,0x13] +// GFX11: v_mul_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x60,0x09,0x13] v_mul_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x11,0xff,0x6f,0xf5,0x30] +// GFX11: v_mul_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x11,0xff,0x6f,0xf5,0x30] v_mul_hi_i32_i24 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x1b,0x00,0xff] v_mul_hi_i32_i24 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0xe4,0x00,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x40,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x40,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x41,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x41,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x01,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x01,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x0f,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x11,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x11,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x1f,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x21,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x21,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x2f,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x50,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x50,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x5f,0x01,0x01] v_mul_hi_i32_i24 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x60,0x09,0x13] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x60,0x09,0x13] v_mul_hi_i32_i24 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x15,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_hi_i32_i24_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x15,0xff,0x6f,0x05,0x30] v_mul_hi_u32_u24 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x1b,0x00,0xff] v_mul_hi_u32_u24 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0xe4,0x00,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x40,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x40,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x41,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x41,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x01,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x01,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x0f,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x11,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x11,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x1f,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x21,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x21,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x2f,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x50,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x50,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x5f,0x01,0x01] v_mul_hi_u32_u24 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x60,0x09,0x13] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x60,0x09,0x13] v_mul_hi_u32_u24 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x19,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_hi_u32_u24_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x19,0xff,0x6f,0x05,0x30] v_mul_i32_i24 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x1b,0x00,0xff] v_mul_i32_i24 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0xe4,0x00,0xff] v_mul_i32_i24 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x40,0x01,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x40,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x41,0x01,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x41,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x01,0x01,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x01,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x0f,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x11,0x01,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x11,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x1f,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x21,0x01,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x21,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x2f,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x50,0x01,0xff] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x50,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x5f,0x01,0x01] v_mul_i32_i24 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x60,0x09,0x13] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x60,0x09,0x13] v_mul_i32_i24 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x13,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_i32_i24_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x13,0xff,0x6f,0x05,0x30] v_mul_legacy_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1b,0x00,0xff] v_mul_legacy_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0xe4,0x00,0xff] v_mul_legacy_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x40,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x40,0x01,0xff] v_mul_legacy_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x41,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x41,0x01,0xff] v_mul_legacy_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x01,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x01,0x01,0xff] v_mul_legacy_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x0f,0x01,0xff] v_mul_legacy_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x11,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x11,0x01,0xff] v_mul_legacy_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1f,0x01,0xff] v_mul_legacy_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x21,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x21,0x01,0xff] v_mul_legacy_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x2f,0x01,0xff] v_mul_legacy_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x50,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x50,0x01,0xff] v_mul_legacy_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x5f,0x01,0x01] v_mul_legacy_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x60,0x09,0x13] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x60,0x09,0x13] v_mul_legacy_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x0f,0xff,0x6f,0xf5,0x30] +// GFX11: v_mul_dx9_zero_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x0f,0xff,0x6f,0xf5,0x30] v_mul_u32_u24 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x1b,0x00,0xff] v_mul_u32_u24 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0xe4,0x00,0xff] v_mul_u32_u24 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x40,0x01,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x40,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x41,0x01,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x41,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x01,0x01,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x01,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x0f,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x11,0x01,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x11,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x1f,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x21,0x01,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x21,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x2f,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x50,0x01,0xff] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x50,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x5f,0x01,0x01] v_mul_u32_u24 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x60,0x09,0x13] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x60,0x09,0x13] v_mul_u32_u24 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x17,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_u32_u24_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x17,0xff,0x6f,0x05,0x30] v_or_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x1b,0x00,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x1b,0x00,0xff] v_or_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0xe4,0x00,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0xe4,0x00,0xff] v_or_b32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x40,0x01,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x40,0x01,0xff] v_or_b32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x41,0x01,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x41,0x01,0xff] v_or_b32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x01,0x01,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x01,0x01,0xff] v_or_b32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x0f,0x01,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x0f,0x01,0xff] v_or_b32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x11,0x01,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x11,0x01,0xff] v_or_b32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x1f,0x01,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x1f,0x01,0xff] v_or_b32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x21,0x01,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x21,0x01,0xff] v_or_b32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x2f,0x01,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x2f,0x01,0xff] v_or_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x50,0x01,0xff] +// GFX11: v_or_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x50,0x01,0xff] v_or_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x5f,0x01,0x01] +// GFX11: v_or_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x5f,0x01,0x01] v_or_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x60,0x09,0x13] +// GFX11: v_or_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x60,0x09,0x13] v_or_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x39,0xff,0x6f,0x05,0x30] +// GFX11: v_or_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x39,0xff,0x6f,0x05,0x30] v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xff,0x43,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x43,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xff,0x43,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x43,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x1b,0x00,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x1b,0x00,0xff] v_sub_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0xe4,0x00,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0xe4,0x00,0xff] v_sub_f16 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x40,0x01,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x40,0x01,0xff] v_sub_f16 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x41,0x01,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x41,0x01,0xff] v_sub_f16 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x01,0x01,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x01,0x01,0xff] v_sub_f16 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x0f,0x01,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x0f,0x01,0xff] v_sub_f16 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x11,0x01,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x11,0x01,0xff] v_sub_f16 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x1f,0x01,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x1f,0x01,0xff] v_sub_f16 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x21,0x01,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x21,0x01,0xff] v_sub_f16 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x2f,0x01,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x2f,0x01,0xff] v_sub_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x50,0x01,0xff] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x50,0x01,0xff] v_sub_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x5f,0x01,0x01] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x5f,0x01,0x01] v_sub_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x60,0x09,0x13] +// GFX11: v_sub_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x60,0x09,0x13] v_sub_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xfe,0x66,0x7f,0x6f,0xf5,0x30] +// GFX11: v_sub_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x66,0x7f,0x6f,0xf5,0x30] v_sub_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x1b,0x00,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x1b,0x00,0xff] v_sub_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0xe4,0x00,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0xe4,0x00,0xff] v_sub_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x40,0x01,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x40,0x01,0xff] v_sub_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x41,0x01,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x41,0x01,0xff] v_sub_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x01,0x01,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x01,0x01,0xff] v_sub_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x0f,0x01,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x0f,0x01,0xff] v_sub_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x11,0x01,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x11,0x01,0xff] v_sub_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x1f,0x01,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x1f,0x01,0xff] v_sub_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x21,0x01,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x21,0x01,0xff] v_sub_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x2f,0x01,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x2f,0x01,0xff] v_sub_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x50,0x01,0xff] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x50,0x01,0xff] v_sub_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x5f,0x01,0x01] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x5f,0x01,0x01] v_sub_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x60,0x09,0x13] +// GFX11: v_sub_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x60,0x09,0x13] v_sub_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x09,0xff,0x6f,0xf5,0x30] +// GFX11: v_sub_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x09,0xff,0x6f,0xf5,0x30] v_sub_nc_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x1b,0x00,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x1b,0x00,0xff] v_sub_nc_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0xe4,0x00,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0xe4,0x00,0xff] v_sub_nc_u32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x40,0x01,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x40,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x41,0x01,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x41,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x01,0x01,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x01,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x0f,0x01,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x0f,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x11,0x01,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x11,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x1f,0x01,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x1f,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x21,0x01,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x21,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x2f,0x01,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x2f,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x50,0x01,0xff] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x50,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x5f,0x01,0x01] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x5f,0x01,0x01] v_sub_nc_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x60,0x09,0x13] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x60,0x09,0x13] v_sub_nc_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x4d,0xff,0x6f,0x05,0x30] +// GFX11: v_sub_nc_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x4d,0xff,0x6f,0x05,0x30] v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xff,0x45,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x45,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xff,0x45,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x45,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x1b,0x00,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x1b,0x00,0xff] v_subrev_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0xe4,0x00,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0xe4,0x00,0xff] v_subrev_f16 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x40,0x01,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x40,0x01,0xff] v_subrev_f16 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x41,0x01,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x41,0x01,0xff] v_subrev_f16 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x01,0x01,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x01,0x01,0xff] v_subrev_f16 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x0f,0x01,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x0f,0x01,0xff] v_subrev_f16 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x11,0x01,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x11,0x01,0xff] v_subrev_f16 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x1f,0x01,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x1f,0x01,0xff] v_subrev_f16 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x21,0x01,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x21,0x01,0xff] v_subrev_f16 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x2f,0x01,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x2f,0x01,0xff] v_subrev_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x50,0x01,0xff] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x50,0x01,0xff] v_subrev_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x5f,0x01,0x01] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x5f,0x01,0x01] v_subrev_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x60,0x09,0x13] +// GFX11: v_subrev_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x60,0x09,0x13] v_subrev_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xfe,0x68,0x7f,0x6f,0xf5,0x30] +// GFX11: v_subrev_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x68,0x7f,0x6f,0xf5,0x30] v_subrev_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x1b,0x00,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x1b,0x00,0xff] v_subrev_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0xe4,0x00,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0xe4,0x00,0xff] v_subrev_f32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x40,0x01,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x40,0x01,0xff] v_subrev_f32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x41,0x01,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x41,0x01,0xff] v_subrev_f32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x01,0x01,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x01,0x01,0xff] v_subrev_f32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x0f,0x01,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x0f,0x01,0xff] v_subrev_f32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x11,0x01,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x11,0x01,0xff] v_subrev_f32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x1f,0x01,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x1f,0x01,0xff] v_subrev_f32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x21,0x01,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x21,0x01,0xff] v_subrev_f32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x2f,0x01,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x2f,0x01,0xff] v_subrev_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x50,0x01,0xff] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x50,0x01,0xff] v_subrev_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x5f,0x01,0x01] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x5f,0x01,0x01] v_subrev_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x60,0x09,0x13] +// GFX11: v_subrev_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x60,0x09,0x13] v_subrev_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x0b,0xff,0x6f,0xf5,0x30] +// GFX11: v_subrev_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x0b,0xff,0x6f,0xf5,0x30] v_subrev_nc_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x1b,0x00,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x1b,0x00,0xff] v_subrev_nc_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0xe4,0x00,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0xe4,0x00,0xff] v_subrev_nc_u32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x40,0x01,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x40,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x41,0x01,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x41,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x01,0x01,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x01,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x0f,0x01,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x0f,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x11,0x01,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x11,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x1f,0x01,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x1f,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x21,0x01,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x21,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x2f,0x01,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x2f,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x50,0x01,0xff] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x50,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x5f,0x01,0x01] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x5f,0x01,0x01] v_subrev_nc_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x60,0x09,0x13] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x60,0x09,0x13] v_subrev_nc_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x4f,0xff,0x6f,0x05,0x30] +// GFX11: v_subrev_nc_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x4f,0xff,0x6f,0x05,0x30] v_xnor_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x1b,0x00,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x1b,0x00,0xff] v_xnor_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0xe4,0x00,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0xe4,0x00,0xff] v_xnor_b32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x40,0x01,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x40,0x01,0xff] v_xnor_b32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x41,0x01,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x41,0x01,0xff] v_xnor_b32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x01,0x01,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x01,0x01,0xff] v_xnor_b32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x0f,0x01,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x0f,0x01,0xff] v_xnor_b32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x11,0x01,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x11,0x01,0xff] v_xnor_b32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x1f,0x01,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x1f,0x01,0xff] v_xnor_b32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x21,0x01,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x21,0x01,0xff] v_xnor_b32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x2f,0x01,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x2f,0x01,0xff] v_xnor_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x50,0x01,0xff] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x50,0x01,0xff] v_xnor_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x5f,0x01,0x01] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x5f,0x01,0x01] v_xnor_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x60,0x09,0x13] +// GFX11: v_xnor_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x60,0x09,0x13] v_xnor_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x3d,0xff,0x6f,0x05,0x30] +// GFX11: v_xnor_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x3d,0xff,0x6f,0x05,0x30] v_xor_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x1b,0x00,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x1b,0x00,0xff] v_xor_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0xe4,0x00,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0xe4,0x00,0xff] v_xor_b32 v5, v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x40,0x01,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x40,0x01,0xff] v_xor_b32 v5, v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x41,0x01,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x41,0x01,0xff] v_xor_b32 v5, v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x01,0x01,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x01,0x01,0xff] v_xor_b32 v5, v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x0f,0x01,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x0f,0x01,0xff] v_xor_b32 v5, v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x11,0x01,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x11,0x01,0xff] v_xor_b32 v5, v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x1f,0x01,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x1f,0x01,0xff] v_xor_b32 v5, v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x21,0x01,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x21,0x01,0xff] v_xor_b32 v5, v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x2f,0x01,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x2f,0x01,0xff] v_xor_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x50,0x01,0xff] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x50,0x01,0xff] v_xor_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x5f,0x01,0x01] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x5f,0x01,0x01] v_xor_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x60,0x09,0x13] +// GFX11: v_xor_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x60,0x09,0x13] v_xor_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xff,0x3b,0xff,0x6f,0x05,0x30] +// GFX11: v_xor_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x3b,0xff,0x6f,0x05,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8.s index ffec9f3a7ec09..6c82b7ea6b15d 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp8.s @@ -1,454 +1,452 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xff,0x41,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x41,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xff,0x41,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x41,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] +// GFX11: v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] v_add_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] +// GFX11: v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] v_add_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xfe,0x64,0x7f,0x00,0x00,0x00] +// GFX11: v_add_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x64,0x7f,0x00,0x00,0x00] v_add_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x06,0x01,0x77,0x39,0x05] +// GFX11: v_add_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x06,0x01,0x77,0x39,0x05] v_add_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x06,0x01,0x77,0x39,0x05] +// GFX11: v_add_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x06,0x01,0x77,0x39,0x05] v_add_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x07,0xff,0x00,0x00,0x00] +// GFX11: v_add_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x07,0xff,0x00,0x00,0x00] v_add_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05] v_add_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05] v_add_nc_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x4b,0xff,0x00,0x00,0x00] +// GFX11: v_add_nc_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x4b,0xff,0x00,0x00,0x00] v_and_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x36,0x01,0x77,0x39,0x05] +// GFX11: v_and_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x36,0x01,0x77,0x39,0x05] v_and_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x36,0x01,0x77,0x39,0x05] +// GFX11: v_and_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x36,0x01,0x77,0x39,0x05] v_and_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x37,0xff,0x00,0x00,0x00] +// GFX11: v_and_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x37,0xff,0x00,0x00,0x00] v_ashrrev_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x34,0x01,0x77,0x39,0x05] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x34,0x01,0x77,0x39,0x05] v_ashrrev_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x34,0x01,0x77,0x39,0x05] +// GFX11: v_ashrrev_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x34,0x01,0x77,0x39,0x05] v_ashrrev_i32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x35,0xff,0x00,0x00,0x00] +// GFX11: v_ashrrev_i32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x35,0xff,0x00,0x00,0x00] v_cndmask_b32 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xff,0x03,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v255, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x03,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xff,0x03,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v255, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x03,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cvt_pk_rtz_f16_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x5f,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x5f,0xff,0x00,0x00,0x00] v_cvt_pkrtz_f16_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x5f,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x5f,0xff,0x00,0x00,0x00] v_dot2acc_f32_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x04,0x01,0x77,0x39,0x05] v_dot2acc_f32_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x04,0x01,0x77,0x39,0x05] v_dot2acc_f32_f16 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x05,0xff,0x00,0x00,0x00] +// GFX11: v_dot2acc_f32_f16_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x05,0xff,0x00,0x00,0x00] v_dot2c_f32_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x04,0x01,0x77,0x39,0x05] v_dot2c_f32_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_dot2acc_f32_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x04,0x01,0x77,0x39,0x05] v_dot2c_f32_f16 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x05,0xff,0x00,0x00,0x00] +// GFX11: v_dot2acc_f32_f16_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x05,0xff,0x00,0x00,0x00] -v_fmac_f16 v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x6c,0x01,0x77,0x39,0x05] +v_fmac_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] +// GFX11: v_fmac_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x6c,0x01,0x77,0x39,0x05] -v_fmac_f16 v127.l, v127.l, v127.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0xfe,0xfe,0x6c,0x7f,0x77,0x39,0x05] +v_fmac_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 +// GFX11: v_fmac_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x6c,0x01,0x77,0x39,0x05] -v_fmac_f16 v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0b,0x6d,0x81,0x77,0x39,0x05] - -v_fmac_f16 v127.h, v127.h, v127.h dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x6d,0xff,0x00,0x00,0x00] +v_fmac_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 +// GFX11: v_fmac_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x6c,0x7f,0x00,0x00,0x00] v_fmac_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x56,0x01,0x77,0x39,0x05] +// GFX11: v_fmac_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x56,0x01,0x77,0x39,0x05] v_fmac_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x56,0x01,0x77,0x39,0x05] +// GFX11: v_fmac_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x56,0x01,0x77,0x39,0x05] v_fmac_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x57,0xff,0x00,0x00,0x00] +// GFX11: v_fmac_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x57,0xff,0x00,0x00,0x00] v_ldexp_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x76,0x01,0x77,0x39,0x05] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x76,0x01,0x77,0x39,0x05] v_ldexp_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x76,0x01,0x77,0x39,0x05] +// GFX11: v_ldexp_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x76,0x01,0x77,0x39,0x05] v_ldexp_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xfe,0x76,0x7f,0x00,0x00,0x00] +// GFX11: v_ldexp_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x76,0x7f,0x00,0x00,0x00] v_lshlrev_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x30,0x01,0x77,0x39,0x05] v_lshlrev_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_lshlrev_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x30,0x01,0x77,0x39,0x05] v_lshlrev_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x31,0xff,0x00,0x00,0x00] +// GFX11: v_lshlrev_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x31,0xff,0x00,0x00,0x00] v_lshrrev_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x32,0x01,0x77,0x39,0x05] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x32,0x01,0x77,0x39,0x05] v_lshrrev_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x32,0x01,0x77,0x39,0x05] +// GFX11: v_lshrrev_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x32,0x01,0x77,0x39,0x05] v_lshrrev_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x33,0xff,0x00,0x00,0x00] +// GFX11: v_lshrrev_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x33,0xff,0x00,0x00,0x00] v_max_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x72,0x01,0x77,0x39,0x05] +// GFX11: v_max_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x72,0x01,0x77,0x39,0x05] v_max_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x72,0x01,0x77,0x39,0x05] +// GFX11: v_max_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x72,0x01,0x77,0x39,0x05] v_max_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xfe,0x72,0x7f,0x00,0x00,0x00] +// GFX11: v_max_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x72,0x7f,0x00,0x00,0x00] v_max_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_max_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x20,0x01,0x77,0x39,0x05] v_max_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_max_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x20,0x01,0x77,0x39,0x05] v_max_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x21,0xff,0x00,0x00,0x00] +// GFX11: v_max_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x21,0xff,0x00,0x00,0x00] v_max_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x24,0x01,0x77,0x39,0x05] +// GFX11: v_max_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x24,0x01,0x77,0x39,0x05] v_max_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x24,0x01,0x77,0x39,0x05] +// GFX11: v_max_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x24,0x01,0x77,0x39,0x05] v_max_i32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x25,0xff,0x00,0x00,0x00] +// GFX11: v_max_i32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x25,0xff,0x00,0x00,0x00] v_max_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x28,0x01,0x77,0x39,0x05] +// GFX11: v_max_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x28,0x01,0x77,0x39,0x05] v_max_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x28,0x01,0x77,0x39,0x05] +// GFX11: v_max_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x28,0x01,0x77,0x39,0x05] v_max_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x29,0xff,0x00,0x00,0x00] +// GFX11: v_max_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x29,0xff,0x00,0x00,0x00] v_min_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x74,0x01,0x77,0x39,0x05] +// GFX11: v_min_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x74,0x01,0x77,0x39,0x05] v_min_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x74,0x01,0x77,0x39,0x05] +// GFX11: v_min_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x74,0x01,0x77,0x39,0x05] v_min_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xfe,0x74,0x7f,0x00,0x00,0x00] +// GFX11: v_min_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x74,0x7f,0x00,0x00,0x00] v_min_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x1e,0x01,0x77,0x39,0x05] +// GFX11: v_min_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x1e,0x01,0x77,0x39,0x05] v_min_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x1e,0x01,0x77,0x39,0x05] +// GFX11: v_min_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x1e,0x01,0x77,0x39,0x05] v_min_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x1f,0xff,0x00,0x00,0x00] +// GFX11: v_min_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x1f,0xff,0x00,0x00,0x00] v_min_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x22,0x01,0x77,0x39,0x05] +// GFX11: v_min_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x22,0x01,0x77,0x39,0x05] v_min_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x22,0x01,0x77,0x39,0x05] +// GFX11: v_min_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x22,0x01,0x77,0x39,0x05] v_min_i32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x23,0xff,0x00,0x00,0x00] +// GFX11: v_min_i32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x23,0xff,0x00,0x00,0x00] v_min_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x26,0x01,0x77,0x39,0x05] +// GFX11: v_min_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x26,0x01,0x77,0x39,0x05] v_min_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x26,0x01,0x77,0x39,0x05] +// GFX11: v_min_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x26,0x01,0x77,0x39,0x05] v_min_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x27,0xff,0x00,0x00,0x00] +// GFX11: v_min_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x27,0xff,0x00,0x00,0x00] v_mul_dx9_zero_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x0f,0xff,0x00,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x0f,0xff,0x00,0x00,0x00] v_mul_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x6a,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x6a,0x01,0x77,0x39,0x05] v_mul_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x6a,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x6a,0x01,0x77,0x39,0x05] v_mul_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xfe,0x6a,0x7f,0x00,0x00,0x00] +// GFX11: v_mul_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x6a,0x7f,0x00,0x00,0x00] v_mul_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x10,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x10,0x01,0x77,0x39,0x05] v_mul_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x10,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x10,0x01,0x77,0x39,0x05] v_mul_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x11,0xff,0x00,0x00,0x00] +// GFX11: v_mul_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x11,0xff,0x00,0x00,0x00] v_mul_hi_i32_i24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x14,0x01,0x77,0x39,0x05] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x14,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x14,0x01,0x77,0x39,0x05] +// GFX11: v_mul_hi_i32_i24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x14,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x15,0xff,0x00,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x15,0xff,0x00,0x00,0x00] v_mul_hi_u32_u24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x18,0x01,0x77,0x39,0x05] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x18,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x18,0x01,0x77,0x39,0x05] +// GFX11: v_mul_hi_u32_u24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x18,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x19,0xff,0x00,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x19,0xff,0x00,0x00,0x00] v_mul_i32_i24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x12,0x01,0x77,0x39,0x05] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x12,0x01,0x77,0x39,0x05] v_mul_i32_i24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x12,0x01,0x77,0x39,0x05] +// GFX11: v_mul_i32_i24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x12,0x01,0x77,0x39,0x05] v_mul_i32_i24 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x13,0xff,0x00,0x00,0x00] +// GFX11: v_mul_i32_i24_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x13,0xff,0x00,0x00,0x00] v_mul_legacy_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] v_mul_legacy_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] v_mul_legacy_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x0f,0xff,0x00,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x0f,0xff,0x00,0x00,0x00] v_mul_u32_u24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x16,0x01,0x77,0x39,0x05] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x16,0x01,0x77,0x39,0x05] v_mul_u32_u24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x16,0x01,0x77,0x39,0x05] +// GFX11: v_mul_u32_u24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x16,0x01,0x77,0x39,0x05] v_mul_u32_u24 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x17,0xff,0x00,0x00,0x00] +// GFX11: v_mul_u32_u24_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x17,0xff,0x00,0x00,0x00] v_or_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x38,0x01,0x77,0x39,0x05] +// GFX11: v_or_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x38,0x01,0x77,0x39,0x05] v_or_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x38,0x01,0x77,0x39,0x05] +// GFX11: v_or_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x38,0x01,0x77,0x39,0x05] v_or_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x39,0xff,0x00,0x00,0x00] +// GFX11: v_or_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x39,0xff,0x00,0x00,0x00] v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xff,0x43,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x43,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xff,0x43,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x43,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x66,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x66,0x01,0x77,0x39,0x05] v_sub_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x66,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x66,0x01,0x77,0x39,0x05] v_sub_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xfe,0x66,0x7f,0x00,0x00,0x00] +// GFX11: v_sub_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x66,0x7f,0x00,0x00,0x00] v_sub_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x08,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x08,0x01,0x77,0x39,0x05] v_sub_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x08,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x08,0x01,0x77,0x39,0x05] v_sub_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x09,0xff,0x00,0x00,0x00] +// GFX11: v_sub_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x09,0xff,0x00,0x00,0x00] v_sub_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05] v_sub_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05] v_sub_nc_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x4d,0xff,0x00,0x00,0x00] +// GFX11: v_sub_nc_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x4d,0xff,0x00,0x00,0x00] v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xff,0x45,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x45,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xff,0x45,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x45,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x68,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x68,0x01,0x77,0x39,0x05] v_subrev_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x68,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x68,0x01,0x77,0x39,0x05] v_subrev_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xfe,0x68,0x7f,0x00,0x00,0x00] +// GFX11: v_subrev_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x68,0x7f,0x00,0x00,0x00] v_subrev_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x0a,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x0a,0x01,0x77,0x39,0x05] v_subrev_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x0a,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x0a,0x01,0x77,0x39,0x05] v_subrev_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x0b,0xff,0x00,0x00,0x00] +// GFX11: v_subrev_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x0b,0xff,0x00,0x00,0x00] v_subrev_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05] v_subrev_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05] v_subrev_nc_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x4f,0xff,0x00,0x00,0x00] +// GFX11: v_subrev_nc_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x4f,0xff,0x00,0x00,0x00] v_xnor_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x3c,0x01,0x77,0x39,0x05] +// GFX11: v_xnor_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x3c,0x01,0x77,0x39,0x05] v_xnor_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x3c,0x01,0x77,0x39,0x05] +// GFX11: v_xnor_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x3c,0x01,0x77,0x39,0x05] v_xnor_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x3d,0xff,0x00,0x00,0x00] +// GFX11: v_xnor_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x3d,0xff,0x00,0x00,0x00] v_xor_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x3a,0x01,0x77,0x39,0x05] +// GFX11: v_xor_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x3a,0x01,0x77,0x39,0x05] v_xor_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x3a,0x01,0x77,0x39,0x05] +// GFX11: v_xor_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x3a,0x01,0x77,0x39,0x05] v_xor_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xff,0x3b,0xff,0x00,0x00,0x00] +// GFX11: v_xor_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x3b,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3.s index 210d55898367d..376e6bf968cbc 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3.s @@ -1,2165 +1,2064 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add3_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_add3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x55,0xd6,0x01,0x05,0x0e,0x00] v_add3_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_add3_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x55,0xd6,0xff,0x05,0xa4,0x01] v_add3_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_add3_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x55,0xd6,0x01,0xfe,0xff,0x01] v_add3_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_add3_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x55,0xd6,0x69,0xd2,0xf8,0x01] v_add3_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_add3_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x55,0xd6,0x6a,0xf6,0x0c,0x04] v_add3_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_add3_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x55,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_add3_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_add3_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x55,0xd6,0x7b,0xfa,0xed,0x01] v_add3_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_add3_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x55,0xd6,0x7d,0xe0,0xf5,0x01] v_add3_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_add3_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x55,0xd6,0x7e,0x82,0xad,0x01] v_add3_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_add3_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x55,0xd6,0x7f,0xf8,0xa8,0x01] v_add3_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_add3_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x55,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_add3_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_add3_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x55,0xd6,0xc1,0xfe,0xf4,0x03] v_add3_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_add3_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x55,0xd6,0xf0,0xfa,0xc0,0x03] v_add3_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x55,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_add3_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x55,0xd6,0xfd,0xd4,0x04,0x03] v_add3_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x55,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_add3_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x55,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_add_co_u32 v5, s6, v1, v2 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, v1, v2 ; encoding: [0x05,0x06,0x00,0xd7,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, v255, v255 -// W32: encoding: [0x05,0x06,0x00,0xd7,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, v255, v255 ; encoding: [0x05,0x06,0x00,0xd7,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, s1, s2 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, s1, s2 ; encoding: [0x05,0x06,0x00,0xd7,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, s105, s105 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, s105, s105 ; encoding: [0x05,0x06,0x00,0xd7,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, vcc_lo, ttmp15 ; encoding: [0x05,0x06,0x00,0xd7,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, vcc_hi, 0xaf123456 ; encoding: [0x05,0x06,0x00,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, ttmp15, src_scc -// W32: encoding: [0x05,0x06,0x00,0xd7,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, ttmp15, src_scc ; encoding: [0x05,0x06,0x00,0xd7,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, m0, 0.5 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, m0, 0.5 ; encoding: [0x05,0x06,0x00,0xd7,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, exec_lo, -1 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, exec_lo, -1 ; encoding: [0x05,0x06,0x00,0xd7,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, exec_hi, null -// W32: encoding: [0x05,0x06,0x00,0xd7,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, exec_hi, null ; encoding: [0x05,0x06,0x00,0xd7,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s105, null, exec_lo -// W32: encoding: [0x05,0x69,0x00,0xd7,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s105, null, exec_lo ; encoding: [0x05,0x69,0x00,0xd7,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, vcc_lo, -1, exec_hi -// W32: encoding: [0x05,0x6a,0x00,0xd7,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, vcc_lo, -1, exec_hi ; encoding: [0x05,0x6a,0x00,0xd7,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, vcc_hi, 0.5, m0 -// W32: encoding: [0x05,0x6b,0x00,0xd7,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, vcc_hi, 0.5, m0 ; encoding: [0x05,0x6b,0x00,0xd7,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, ttmp15, src_scc, vcc_lo -// W32: encoding: [0x05,0x7b,0x00,0xd7,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, ttmp15, src_scc, vcc_lo ; encoding: [0x05,0x7b,0x00,0xd7,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], v1, v2 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], v1, v2 ; encoding: [0x05,0x0c,0x00,0xd7,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], v255, v255 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], v255, v255 ; encoding: [0x05,0x0c,0x00,0xd7,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], s1, s2 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], s1, s2 ; encoding: [0x05,0x0c,0x00,0xd7,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], s105, s105 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], s105, s105 ; encoding: [0x05,0x0c,0x00,0xd7,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], vcc_lo, ttmp15 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], vcc_lo, ttmp15 ; encoding: [0x05,0x0c,0x00,0xd7,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 ; encoding: [0x05,0x0c,0x00,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], ttmp15, src_scc -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], ttmp15, src_scc ; encoding: [0x05,0x0c,0x00,0xd7,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], m0, 0.5 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], m0, 0.5 ; encoding: [0x05,0x0c,0x00,0xd7,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], exec_lo, -1 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], exec_lo, -1 ; encoding: [0x05,0x0c,0x00,0xd7,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], exec_hi, null -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], exec_hi, null ; encoding: [0x05,0x0c,0x00,0xd7,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], null, exec_lo -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], null, exec_lo ; encoding: [0x05,0x0c,0x00,0xd7,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[104:105], -1, exec_hi -// W64: encoding: [0x05,0x68,0x00,0xd7,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[104:105], -1, exec_hi ; encoding: [0x05,0x68,0x00,0xd7,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, vcc, 0.5, m0 -// W64: encoding: [0x05,0x6a,0x00,0xd7,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_u32 v5, vcc, 0.5, m0 ; encoding: [0x05,0x6a,0x00,0xd7,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_u32 v5, ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x05,0x7a,0x00,0xd7,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, ttmp[14:15], src_scc, vcc_lo ; encoding: [0x05,0x7a,0x00,0xd7,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v255, null, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0xfc,0x00,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_add_co_u32 v255, null, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0xfc,0x00,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_add_f64 v[5:6], v[1:2], v[2:3] -// GFX11: encoding: [0x05,0x00,0x27,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_add_f64 v[5:6], v[1:2], v[2:3] ; encoding: [0x05,0x00,0x27,0xd7,0x01,0x05,0x02,0x00] v_add_f64 v[5:6], v[254:255], v[254:255] -// GFX11: encoding: [0x05,0x00,0x27,0xd7,0xfe,0xfd,0x03,0x00] +// GFX11: v_add_f64 v[5:6], v[254:255], v[254:255] ; encoding: [0x05,0x00,0x27,0xd7,0xfe,0xfd,0x03,0x00] v_add_f64 v[5:6], s[2:3], s[4:5] -// GFX11: encoding: [0x05,0x00,0x27,0xd7,0x02,0x08,0x00,0x00] +// GFX11: v_add_f64 v[5:6], s[2:3], s[4:5] ; encoding: [0x05,0x00,0x27,0xd7,0x02,0x08,0x00,0x00] v_add_f64 v[5:6], s[104:105], s[104:105] -// GFX11: encoding: [0x05,0x00,0x27,0xd7,0x68,0xd0,0x00,0x00] +// GFX11: v_add_f64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x27,0xd7,0x68,0xd0,0x00,0x00] v_add_f64 v[5:6], vcc, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x27,0xd7,0x6a,0xf4,0x00,0x00] +// GFX11: v_add_f64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x27,0xd7,0x6a,0xf4,0x00,0x00] v_add_f64 v[5:6], ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x27,0xd7,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_add_f64 v[5:6], ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x27,0xd7,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_add_f64 v[5:6], -|exec|, src_scc -// GFX11: encoding: [0x05,0x01,0x27,0xd7,0x7e,0xfa,0x01,0x20] +// GFX11: v_add_f64 v[5:6], -|exec|, src_scc ; encoding: [0x05,0x01,0x27,0xd7,0x7e,0xfa,0x01,0x20] v_add_f64 v[5:6], null, 0.5 -// GFX11: encoding: [0x05,0x00,0x27,0xd7,0x7c,0xe0,0x01,0x00] +// GFX11: v_add_f64 v[5:6], null, 0.5 ; encoding: [0x05,0x00,0x27,0xd7,0x7c,0xe0,0x01,0x00] v_add_f64 v[5:6], -1, -1 -// GFX11: encoding: [0x05,0x00,0x27,0xd7,0xc1,0x82,0x01,0x00] +// GFX11: v_add_f64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x27,0xd7,0xc1,0x82,0x01,0x00] v_add_f64 v[5:6], 0.5, null mul:2 -// GFX11: encoding: [0x05,0x00,0x27,0xd7,0xf0,0xf8,0x00,0x08] +// GFX11: v_add_f64 v[5:6], 0.5, null mul:2 ; encoding: [0x05,0x00,0x27,0xd7,0xf0,0xf8,0x00,0x08] v_add_f64 v[5:6], -|src_scc|, -|exec| mul:4 -// GFX11: encoding: [0x05,0x03,0x27,0xd7,0xfd,0xfc,0x00,0x70] +// GFX11: v_add_f64 v[5:6], -|src_scc|, -|exec| mul:4 ; encoding: [0x05,0x03,0x27,0xd7,0xfd,0xfc,0x00,0x70] v_add_f64 v[254:255], 0xaf123456, -|vcc| clamp div:2 -// GFX11: encoding: [0xfe,0x82,0x27,0xd7,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_add_f64 v[254:255], 0xaf123456, -|vcc| clamp div:2 ; encoding: [0xfe,0x82,0x27,0xd7,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] v_add_lshl_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_add_lshl_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x47,0xd6,0x01,0x05,0x0e,0x00] v_add_lshl_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_add_lshl_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x47,0xd6,0xff,0x05,0xa4,0x01] v_add_lshl_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_add_lshl_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x47,0xd6,0x01,0xfe,0xff,0x01] v_add_lshl_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_add_lshl_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x47,0xd6,0x69,0xd2,0xf8,0x01] v_add_lshl_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_add_lshl_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x47,0xd6,0x6a,0xf6,0x0c,0x04] v_add_lshl_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_add_lshl_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x47,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_add_lshl_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_add_lshl_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x47,0xd6,0x7b,0xfa,0xed,0x01] v_add_lshl_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_add_lshl_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x47,0xd6,0x7d,0xe0,0xf5,0x01] v_add_lshl_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_add_lshl_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x47,0xd6,0x7e,0x82,0xad,0x01] v_add_lshl_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_add_lshl_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x47,0xd6,0x7f,0xf8,0xa8,0x01] v_add_lshl_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_add_lshl_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x47,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_add_lshl_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_add_lshl_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x47,0xd6,0xc1,0xfe,0xf4,0x03] v_add_lshl_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_add_lshl_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x47,0xd6,0xf0,0xfa,0xc0,0x03] v_add_lshl_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x47,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_add_lshl_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x47,0xd6,0xfd,0xd4,0x04,0x03] v_add_lshl_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x47,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_add_lshl_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x47,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_add_nc_i16 v5.l, v1.h, v2.l -// GFX11: encoding: [0x05,0x08,0x0d,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_add_nc_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0d,0xd7,0x01,0x05,0x02,0x00] v_add_nc_i16 v5.l, v255.l, v255.h -// GFX11: encoding: [0x05,0x10,0x0d,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_add_nc_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0d,0xd7,0xff,0xff,0x03,0x00] v_add_nc_i16 v5.l, s1, s2 -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0d,0xd7,0x01,0x04,0x00,0x00] v_add_nc_i16 v5.l, s105, s105 -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0d,0xd7,0x69,0xd2,0x00,0x00] v_add_nc_i16 v5.l, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0d,0xd7,0x6a,0xf6,0x00,0x00] v_add_nc_i16 v5.l, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0d,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_i16 v5.l, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_add_nc_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0d,0xd7,0x7b,0xfa,0x01,0x00] v_add_nc_i16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_add_nc_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0d,0xd7,0x7d,0xe0,0x01,0x00] v_add_nc_i16 v5.l, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_add_nc_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0d,0xd7,0x7e,0x82,0x01,0x00] v_add_nc_i16 v5.l, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0d,0xd7,0x7f,0xf8,0x00,0x00] v_add_nc_i16 v5.l, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x0d,0xd7,0x7c,0xfc,0x00,0x00] v_add_nc_i16 v5.l, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0d,0xd7,0xc1,0xfe,0x00,0x00] v_add_nc_i16 v5.h, null, exec_lo op_sel:[1,1,1] -// GFX11: encoding: [0x05,0x58,0x0d,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_add_nc_i16 v5.h, null, exec_lo op_sel:[1,1,1] ; encoding: [0x05,0x58,0x0d,0xd7,0x7c,0xfc,0x00,0x00] v_add_nc_i16 v5.l, -1, exec_hi op_sel:[0,0,0] -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0d,0xd7,0xc1,0xfe,0x00,0x00] v_add_nc_i16 v5.l, 0.5, m0 op_sel:[1,0,0] -// GFX11: encoding: [0x05,0x08,0x0d,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, 0.5, m0 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0d,0xd7,0xf0,0xfa,0x00,0x00] v_add_nc_i16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] -// GFX11: encoding: [0x05,0x10,0x0d,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_add_nc_i16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0d,0xd7,0xfd,0xd4,0x00,0x00] v_add_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp -// GFX11: encoding: [0xff,0xc0,0x0d,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_add_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x0d,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_i16 v5.l, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x0d,0xd7,0xfd,0xd4,0x00,0x00] - -v_add_nc_i16 v5.l, v1.h, v2.l -// GFX11: encoding: [0x05,0x08,0x0d,0xd7,0x01,0x05,0x02,0x00] - -v_add_nc_i16 v5.l, v255.l, v255.h -// GFX11: encoding: [0x05,0x10,0x0d,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_add_nc_i16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0d,0xd7,0xfd,0xd4,0x00,0x00] v_add_nc_i16 v255.h, 0xfe0b, vcc_hi clamp -// GFX11: encoding: [0xff,0xc0,0x0d,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_add_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x0d,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_i32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_add_nc_i32 v5, v1, v2 ; encoding: [0x05,0x00,0x26,0xd7,0x01,0x05,0x02,0x00] v_add_nc_i32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_add_nc_i32 v5, v255, v255 ; encoding: [0x05,0x00,0x26,0xd7,0xff,0xff,0x03,0x00] v_add_nc_i32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_add_nc_i32 v5, s1, s2 ; encoding: [0x05,0x00,0x26,0xd7,0x01,0x04,0x00,0x00] v_add_nc_i32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_add_nc_i32 v5, s105, s105 ; encoding: [0x05,0x00,0x26,0xd7,0x69,0xd2,0x00,0x00] v_add_nc_i32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_add_nc_i32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x26,0xd7,0x6a,0xf6,0x00,0x00] v_add_nc_i32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_add_nc_i32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x26,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_add_nc_i32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_add_nc_i32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x26,0xd7,0x7b,0xfa,0x01,0x00] v_add_nc_i32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_add_nc_i32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x26,0xd7,0x7d,0xe0,0x01,0x00] v_add_nc_i32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_add_nc_i32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x26,0xd7,0x7e,0x82,0x01,0x00] v_add_nc_i32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_add_nc_i32 v5, exec_hi, null ; encoding: [0x05,0x00,0x26,0xd7,0x7f,0xf8,0x00,0x00] v_add_nc_i32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_add_nc_i32 v5, null, exec_lo ; encoding: [0x05,0x00,0x26,0xd7,0x7c,0xfc,0x00,0x00] v_add_nc_i32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_add_nc_i32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x26,0xd7,0xc1,0xfe,0x00,0x00] v_add_nc_i32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_add_nc_i32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x26,0xd7,0xf0,0xfa,0x00,0x00] v_add_nc_i32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x26,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_add_nc_i32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x26,0xd7,0xfd,0xd4,0x00,0x00] v_add_nc_i32 v255, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0x80,0x26,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_add_nc_i32 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x26,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_add_nc_u16 v5.l, v1.h, v2.l -// GFX11: encoding: [0x05,0x08,0x03,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_add_nc_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x03,0xd7,0x01,0x05,0x02,0x00] v_add_nc_u16 v5.l, v255.l, v255.h -// GFX11: encoding: [0x05,0x10,0x03,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_add_nc_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x03,0xd7,0xff,0xff,0x03,0x00] v_add_nc_u16 v5.l, s1, s2 -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x03,0xd7,0x01,0x04,0x00,0x00] v_add_nc_u16 v5.l, s105, s105 -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x03,0xd7,0x69,0xd2,0x00,0x00] v_add_nc_u16 v5.l, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x03,0xd7,0x6a,0xf6,0x00,0x00] v_add_nc_u16 v5.l, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x03,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_u16 v5.l, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_add_nc_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x03,0xd7,0x7b,0xfa,0x01,0x00] v_add_nc_u16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_add_nc_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x03,0xd7,0x7d,0xe0,0x01,0x00] v_add_nc_u16 v5.l, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_add_nc_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x03,0xd7,0x7e,0x82,0x01,0x00] v_add_nc_u16 v5.l, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x03,0xd7,0x7f,0xf8,0x00,0x00] v_add_nc_u16 v5.l, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x03,0xd7,0x7c,0xfc,0x00,0x00] v_add_nc_u16 v5.l, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x03,0xd7,0xc1,0xfe,0x00,0x00] v_add_nc_u16 v5.h, null, exec_lo op_sel:[1,1,1] -// GFX11: encoding: [0x05,0x58,0x03,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_add_nc_u16 v5.h, null, exec_lo op_sel:[1,1,1] ; encoding: [0x05,0x58,0x03,0xd7,0x7c,0xfc,0x00,0x00] v_add_nc_u16 v5.l, -1, exec_hi op_sel:[0,0,0] -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x03,0xd7,0xc1,0xfe,0x00,0x00] v_add_nc_u16 v5.l, 0.5, m0 op_sel:[1,0,0] -// GFX11: encoding: [0x05,0x08,0x03,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, 0.5, m0 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x03,0xd7,0xf0,0xfa,0x00,0x00] v_add_nc_u16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] -// GFX11: encoding: [0x05,0x10,0x03,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_add_nc_u16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] ; encoding: [0x05,0x10,0x03,0xd7,0xfd,0xd4,0x00,0x00] v_add_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp -// GFX11: encoding: [0xff,0xc0,0x03,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_add_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x03,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_u16 v5.l, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x03,0xd7,0xfd,0xd4,0x00,0x00] - -v_add_nc_u16 v5.l, v1.h, v2.l -// GFX11: encoding: [0x05,0x08,0x03,0xd7,0x01,0x05,0x02,0x00] - -v_add_nc_u16 v5.l, v255.l, v255.h -// GFX11: encoding: [0x05,0x10,0x03,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_add_nc_u16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x03,0xd7,0xfd,0xd4,0x00,0x00] v_add_nc_u16 v255.h, 0xfe0b, vcc_hi clamp -// GFX11: encoding: [0xff,0xc0,0x03,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_add_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x03,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_alignbit_b32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_alignbit_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x16,0xd6,0x01,0x05,0x0e,0x00] v_alignbit_b32 v5, v255, s2, s3 -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0xff,0x05,0x0c,0x00] +// GFX11: v_alignbit_b32 v5, v255, s2, s3 ; encoding: [0x05,0x00,0x16,0xd6,0xff,0x05,0x0c,0x00] v_alignbit_b32 v5, s1, v255, s3 -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x01,0xfe,0x0f,0x00] +// GFX11: v_alignbit_b32 v5, s1, v255, s3 ; encoding: [0x05,0x00,0x16,0xd6,0x01,0xfe,0x0f,0x00] v_alignbit_b32 v5, s105, s105, s105 -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x69,0xd2,0xa4,0x01] +// GFX11: v_alignbit_b32 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x16,0xd6,0x69,0xd2,0xa4,0x01] v_alignbit_b32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_alignbit_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x16,0xd6,0x6a,0xf6,0x0c,0x04] v_alignbit_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_alignbit_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x16,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_alignbit_b32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_alignbit_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x16,0xd6,0x7b,0xfa,0xed,0x01] v_alignbit_b32 v5, m0, 0.5, exec_lo -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x7d,0xe0,0xf9,0x01] +// GFX11: v_alignbit_b32 v5, m0, 0.5, exec_lo ; encoding: [0x05,0x00,0x16,0xd6,0x7d,0xe0,0xf9,0x01] v_alignbit_b32 v5, exec_lo, -1, m0 -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x7e,0x82,0xf5,0x01] +// GFX11: v_alignbit_b32 v5, exec_lo, -1, m0 ; encoding: [0x05,0x00,0x16,0xd6,0x7e,0x82,0xf5,0x01] v_alignbit_b32 v5, exec_hi, null, vcc_hi -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x7f,0xf8,0xac,0x01] +// GFX11: v_alignbit_b32 v5, exec_hi, null, vcc_hi ; encoding: [0x05,0x00,0x16,0xd6,0x7f,0xf8,0xac,0x01] v_alignbit_b32 v5, null, exec_lo, vcc_lo -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0x7c,0xfc,0xa8,0x01] +// GFX11: v_alignbit_b32 v5, null, exec_lo, vcc_lo ; encoding: [0x05,0x00,0x16,0xd6,0x7c,0xfc,0xa8,0x01] v_alignbit_b32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_alignbit_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x16,0xd6,0xc1,0xfe,0xf4,0x03] v_alignbit_b32 v5, 0.5, m0, exec_hi -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0xf0,0xfa,0xfc,0x01] +// GFX11: v_alignbit_b32 v5, 0.5, m0, exec_hi ; encoding: [0x05,0x00,0x16,0xd6,0xf0,0xfa,0xfc,0x01] v_alignbit_b32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x16,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_alignbit_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x16,0xd6,0xfd,0xd4,0x04,0x03] v_alignbit_b32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x16,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_alignbit_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x16,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_alignbyte_b32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_alignbyte_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x17,0xd6,0x01,0x05,0x0e,0x00] v_alignbyte_b32 v5, v255, s2, s3 -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0xff,0x05,0x0c,0x00] +// GFX11: v_alignbyte_b32 v5, v255, s2, s3 ; encoding: [0x05,0x00,0x17,0xd6,0xff,0x05,0x0c,0x00] v_alignbyte_b32 v5, s1, v255, s3 -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x01,0xfe,0x0f,0x00] +// GFX11: v_alignbyte_b32 v5, s1, v255, s3 ; encoding: [0x05,0x00,0x17,0xd6,0x01,0xfe,0x0f,0x00] v_alignbyte_b32 v5, s105, s105, s105 -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x69,0xd2,0xa4,0x01] +// GFX11: v_alignbyte_b32 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x17,0xd6,0x69,0xd2,0xa4,0x01] v_alignbyte_b32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_alignbyte_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x17,0xd6,0x6a,0xf6,0x0c,0x04] v_alignbyte_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_alignbyte_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x17,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_alignbyte_b32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_alignbyte_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x17,0xd6,0x7b,0xfa,0xed,0x01] v_alignbyte_b32 v5, m0, 0.5, exec_lo -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x7d,0xe0,0xf9,0x01] +// GFX11: v_alignbyte_b32 v5, m0, 0.5, exec_lo ; encoding: [0x05,0x00,0x17,0xd6,0x7d,0xe0,0xf9,0x01] v_alignbyte_b32 v5, exec_lo, -1, m0 -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x7e,0x82,0xf5,0x01] +// GFX11: v_alignbyte_b32 v5, exec_lo, -1, m0 ; encoding: [0x05,0x00,0x17,0xd6,0x7e,0x82,0xf5,0x01] v_alignbyte_b32 v5, exec_hi, null, vcc_hi -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x7f,0xf8,0xac,0x01] +// GFX11: v_alignbyte_b32 v5, exec_hi, null, vcc_hi ; encoding: [0x05,0x00,0x17,0xd6,0x7f,0xf8,0xac,0x01] v_alignbyte_b32 v5, null, exec_lo, vcc_lo -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0x7c,0xfc,0xa8,0x01] +// GFX11: v_alignbyte_b32 v5, null, exec_lo, vcc_lo ; encoding: [0x05,0x00,0x17,0xd6,0x7c,0xfc,0xa8,0x01] v_alignbyte_b32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_alignbyte_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x17,0xd6,0xc1,0xfe,0xf4,0x03] v_alignbyte_b32 v5, 0.5, m0, exec_hi -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0xf0,0xfa,0xfc,0x01] +// GFX11: v_alignbyte_b32 v5, 0.5, m0, exec_hi ; encoding: [0x05,0x00,0x17,0xd6,0xf0,0xfa,0xfc,0x01] v_alignbyte_b32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x17,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_alignbyte_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x17,0xd6,0xfd,0xd4,0x04,0x03] v_alignbyte_b32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x17,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_alignbyte_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x17,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_and_b16 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_and_b16 v5, v1, v2 ; encoding: [0x05,0x00,0x62,0xd7,0x01,0x05,0x02,0x00] v_and_b16 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_and_b16 v5, v255, v255 ; encoding: [0x05,0x00,0x62,0xd7,0xff,0xff,0x03,0x00] v_and_b16 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_and_b16 v5, s1, s2 ; encoding: [0x05,0x00,0x62,0xd7,0x01,0x04,0x00,0x00] v_and_b16 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_and_b16 v5, s105, s105 ; encoding: [0x05,0x00,0x62,0xd7,0x69,0xd2,0x00,0x00] v_and_b16 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_and_b16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x62,0xd7,0x6a,0xf6,0x00,0x00] v_and_b16 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_and_b16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x62,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_and_b16 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_and_b16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x62,0xd7,0x7b,0xfa,0x01,0x00] v_and_b16 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_and_b16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x62,0xd7,0x7d,0xe0,0x01,0x00] v_and_b16 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_and_b16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x62,0xd7,0x7e,0x82,0x01,0x00] v_and_b16 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_and_b16 v5, exec_hi, null ; encoding: [0x05,0x00,0x62,0xd7,0x7f,0xf8,0x00,0x00] v_and_b16 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_and_b16 v5, null, exec_lo ; encoding: [0x05,0x00,0x62,0xd7,0x7c,0xfc,0x00,0x00] v_and_b16 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_and_b16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x62,0xd7,0xc1,0xfe,0x00,0x00] v_and_b16 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_and_b16 v5, 0.5, m0 ; encoding: [0x05,0x00,0x62,0xd7,0xf0,0xfa,0x00,0x00] v_and_b16 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x62,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_and_b16 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x62,0xd7,0xfd,0xd4,0x00,0x00] v_and_b16 v255, 0xfe0b, vcc_hi -// GFX11: encoding: [0xff,0x00,0x62,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_and_b16 v255, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x62,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_and_or_b32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_and_or_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x57,0xd6,0x01,0x05,0x0e,0x00] v_and_or_b32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_and_or_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x57,0xd6,0xff,0x05,0xa4,0x01] v_and_or_b32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_and_or_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x57,0xd6,0x01,0xfe,0xff,0x01] v_and_or_b32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_and_or_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x57,0xd6,0x69,0xd2,0xf8,0x01] v_and_or_b32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_and_or_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x57,0xd6,0x6a,0xf6,0x0c,0x04] v_and_or_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_and_or_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x57,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_and_or_b32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_and_or_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x57,0xd6,0x7b,0xfa,0xed,0x01] v_and_or_b32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_and_or_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x57,0xd6,0x7d,0xe0,0xf5,0x01] v_and_or_b32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_and_or_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x57,0xd6,0x7e,0x82,0xad,0x01] v_and_or_b32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_and_or_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x57,0xd6,0x7f,0xf8,0xa8,0x01] v_and_or_b32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_and_or_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x57,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_and_or_b32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_and_or_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x57,0xd6,0xc1,0xfe,0xf4,0x03] v_and_or_b32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_and_or_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x57,0xd6,0xf0,0xfa,0xc0,0x03] v_and_or_b32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x57,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_and_or_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x57,0xd6,0xfd,0xd4,0x04,0x03] v_and_or_b32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x57,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_and_or_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x57,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_ashrrev_i16 v5.l, v1.l, v2.l -// GFX11: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_ashrrev_i16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00] v_ashrrev_i16 v5.l, v255.l, v255.l -// GFX11: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_ashrrev_i16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00] v_ashrrev_i16 v5.l, s1, s2 -// GFX11: [0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_ashrrev_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00] v_ashrrev_i16 v5.l, s105, s105 -// GFX11: [0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_ashrrev_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00] v_ashrrev_i16 v5.l, vcc_lo, ttmp15 -// GFX11: [0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_ashrrev_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00] v_ashrrev_i16 v5.l, vcc_hi, 0xfe0b -// GFX11: [0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_ashrrev_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_ashrrev_i16 v5.l, ttmp15, src_scc -// GFX11: [0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_ashrrev_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00] v_ashrrev_i16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x3a,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_ashrrev_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x3a,0xd7,0x7d,0xe0,0x01,0x00] v_ashrrev_i16 v5.l, exec_lo, -1 -// GFX11: [0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_ashrrev_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00] v_ashrrev_i16 v5.l, exec_hi, null -// GFX11: [0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_ashrrev_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00] v_ashrrev_i16 v5.l, null, exec_lo -// GFX11: [0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_ashrrev_i16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00] v_ashrrev_i16 v5.l, -1, exec_hi -// GFX11: [0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_ashrrev_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00] v_ashrrev_i16 v5.l, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x3a,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_ashrrev_i16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x3a,0xd7,0xf0,0xfa,0x00,0x00] v_ashrrev_i16 v5.l, src_scc, vcc_lo -// GFX11: [0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_ashrrev_i16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00] v_ashrrev_i16 v255.l, 0xfe0b, vcc_hi -// GFX11: [0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_ashrrev_i16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_ashrrev_i16 v5.l, v1.h, v2.l -// GFX11: [0x05,0x08,0x3a,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_ashrrev_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x3a,0xd7,0x01,0x05,0x02,0x00] v_ashrrev_i16 v5.l, v255.l, v255.h -// GFX11: [0x05,0x10,0x3a,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_ashrrev_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x3a,0xd7,0xff,0xff,0x03,0x00] v_ashrrev_i16 v255.h, 0xfe0b, vcc_hi -// GFX11: [0xff,0x40,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_ashrrev_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_ashrrev_i64 v[5:6], v1, vcc -// GFX11: encoding: [0x05,0x00,0x3e,0xd7,0x01,0xd5,0x00,0x00] +// GFX11: v_ashrrev_i64 v[5:6], v1, vcc ; encoding: [0x05,0x00,0x3e,0xd7,0x01,0xd5,0x00,0x00] v_ashrrev_i64 v[5:6], v255, exec -// GFX11: encoding: [0x05,0x00,0x3e,0xd7,0xff,0xfd,0x00,0x00] +// GFX11: v_ashrrev_i64 v[5:6], v255, exec ; encoding: [0x05,0x00,0x3e,0xd7,0xff,0xfd,0x00,0x00] v_ashrrev_i64 v[5:6], exec_lo, v[2:3] -// GFX11: encoding: [0x05,0x00,0x3e,0xd7,0x7e,0x04,0x02,0x00] +// GFX11: v_ashrrev_i64 v[5:6], exec_lo, v[2:3] ; encoding: [0x05,0x00,0x3e,0xd7,0x7e,0x04,0x02,0x00] v_ashrrev_i64 v[5:6], exec_hi, v[254:255] -// GFX11: encoding: [0x05,0x00,0x3e,0xd7,0x7f,0xfc,0x03,0x00] +// GFX11: v_ashrrev_i64 v[5:6], exec_hi, v[254:255] ; encoding: [0x05,0x00,0x3e,0xd7,0x7f,0xfc,0x03,0x00] v_ashrrev_i64 v[5:6], null, null -// GFX11: encoding: [0x05,0x00,0x3e,0xd7,0x7c,0xf8,0x00,0x00] +// GFX11: v_ashrrev_i64 v[5:6], null, null ; encoding: [0x05,0x00,0x3e,0xd7,0x7c,0xf8,0x00,0x00] v_ashrrev_i64 v[5:6], -1, -1 -// GFX11: encoding: [0x05,0x00,0x3e,0xd7,0xc1,0x82,0x01,0x00] +// GFX11: v_ashrrev_i64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x3e,0xd7,0xc1,0x82,0x01,0x00] v_ashrrev_i64 v[5:6], 0.5, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x3e,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_ashrrev_i64 v[5:6], 0.5, 0xaf123456 ; encoding: [0x05,0x00,0x3e,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_ashrrev_i64 v[5:6], src_scc, src_scc -// GFX11: encoding: [0x05,0x00,0x3e,0xd7,0xfd,0xfa,0x01,0x00] +// GFX11: v_ashrrev_i64 v[5:6], src_scc, src_scc ; encoding: [0x05,0x00,0x3e,0xd7,0xfd,0xfa,0x01,0x00] v_ashrrev_i64 v[254:255], 0xaf123456, 0.5 -// GFX11: encoding: [0xfe,0x00,0x3e,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_ashrrev_i64 v[254:255], 0xaf123456, 0.5 ; encoding: [0xfe,0x00,0x3e,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] v_bcnt_u32_b32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_bcnt_u32_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x1e,0xd7,0x01,0x05,0x02,0x00] v_bcnt_u32_b32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_bcnt_u32_b32 v5, v255, v255 ; encoding: [0x05,0x00,0x1e,0xd7,0xff,0xff,0x03,0x00] v_bcnt_u32_b32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_bcnt_u32_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x1e,0xd7,0x01,0x04,0x00,0x00] v_bcnt_u32_b32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_bcnt_u32_b32 v5, s105, s105 ; encoding: [0x05,0x00,0x1e,0xd7,0x69,0xd2,0x00,0x00] v_bcnt_u32_b32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_bcnt_u32_b32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1e,0xd7,0x6a,0xf6,0x00,0x00] v_bcnt_u32_b32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_bcnt_u32_b32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1e,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_bcnt_u32_b32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_bcnt_u32_b32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1e,0xd7,0x7b,0xfa,0x01,0x00] v_bcnt_u32_b32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_bcnt_u32_b32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1e,0xd7,0x7d,0xe0,0x01,0x00] v_bcnt_u32_b32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_bcnt_u32_b32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1e,0xd7,0x7e,0x82,0x01,0x00] v_bcnt_u32_b32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_bcnt_u32_b32 v5, exec_hi, null ; encoding: [0x05,0x00,0x1e,0xd7,0x7f,0xf8,0x00,0x00] v_bcnt_u32_b32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_bcnt_u32_b32 v5, null, exec_lo ; encoding: [0x05,0x00,0x1e,0xd7,0x7c,0xfc,0x00,0x00] v_bcnt_u32_b32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_bcnt_u32_b32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1e,0xd7,0xc1,0xfe,0x00,0x00] v_bcnt_u32_b32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_bcnt_u32_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1e,0xd7,0xf0,0xfa,0x00,0x00] v_bcnt_u32_b32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1e,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_bcnt_u32_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1e,0xd7,0xfd,0xd4,0x00,0x00] v_bcnt_u32_b32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x1e,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_bcnt_u32_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1e,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_bfe_i32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_bfe_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x11,0xd6,0x01,0x05,0x0e,0x00] v_bfe_i32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_bfe_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x11,0xd6,0xff,0x05,0xa4,0x01] v_bfe_i32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_bfe_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x11,0xd6,0x01,0xfe,0xff,0x01] v_bfe_i32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_bfe_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x11,0xd6,0x69,0xd2,0xf8,0x01] v_bfe_i32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_bfe_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x11,0xd6,0x6a,0xf6,0x0c,0x04] v_bfe_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_bfe_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x11,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_bfe_i32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_bfe_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x11,0xd6,0x7b,0xfa,0xed,0x01] v_bfe_i32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_bfe_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x11,0xd6,0x7d,0xe0,0xf5,0x01] v_bfe_i32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_bfe_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x11,0xd6,0x7e,0x82,0xad,0x01] v_bfe_i32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_bfe_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x11,0xd6,0x7f,0xf8,0xa8,0x01] v_bfe_i32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_bfe_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x11,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_bfe_i32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_bfe_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x11,0xd6,0xc1,0xfe,0xf4,0x03] v_bfe_i32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_bfe_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x11,0xd6,0xf0,0xfa,0xc0,0x03] v_bfe_i32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x11,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_bfe_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x11,0xd6,0xfd,0xd4,0x04,0x03] v_bfe_i32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x11,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_bfe_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x11,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_bfe_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_bfe_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x10,0xd6,0x01,0x05,0x0e,0x00] v_bfe_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_bfe_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x10,0xd6,0xff,0x05,0xa4,0x01] v_bfe_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_bfe_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x10,0xd6,0x01,0xfe,0xff,0x01] v_bfe_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_bfe_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x10,0xd6,0x69,0xd2,0xf8,0x01] v_bfe_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_bfe_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x10,0xd6,0x6a,0xf6,0x0c,0x04] v_bfe_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_bfe_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x10,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_bfe_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_bfe_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x10,0xd6,0x7b,0xfa,0xed,0x01] v_bfe_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_bfe_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x10,0xd6,0x7d,0xe0,0xf5,0x01] v_bfe_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_bfe_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x10,0xd6,0x7e,0x82,0xad,0x01] v_bfe_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_bfe_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x10,0xd6,0x7f,0xf8,0xa8,0x01] v_bfe_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_bfe_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x10,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_bfe_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_bfe_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x10,0xd6,0xc1,0xfe,0xf4,0x03] v_bfe_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_bfe_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x10,0xd6,0xf0,0xfa,0xc0,0x03] v_bfe_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x10,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_bfe_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x10,0xd6,0xfd,0xd4,0x04,0x03] v_bfe_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x10,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_bfe_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x10,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_bfi_b32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_bfi_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x12,0xd6,0x01,0x05,0x0e,0x00] v_bfi_b32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_bfi_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x12,0xd6,0xff,0x05,0xa4,0x01] v_bfi_b32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_bfi_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x12,0xd6,0x01,0xfe,0xff,0x01] v_bfi_b32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_bfi_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x12,0xd6,0x69,0xd2,0xf8,0x01] v_bfi_b32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_bfi_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x12,0xd6,0x6a,0xf6,0x0c,0x04] v_bfi_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_bfi_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x12,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_bfi_b32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_bfi_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x12,0xd6,0x7b,0xfa,0xed,0x01] v_bfi_b32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_bfi_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x12,0xd6,0x7d,0xe0,0xf5,0x01] v_bfi_b32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_bfi_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x12,0xd6,0x7e,0x82,0xad,0x01] v_bfi_b32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_bfi_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x12,0xd6,0x7f,0xf8,0xa8,0x01] v_bfi_b32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_bfi_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x12,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_bfi_b32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_bfi_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x12,0xd6,0xc1,0xfe,0xf4,0x03] v_bfi_b32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_bfi_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x12,0xd6,0xf0,0xfa,0xc0,0x03] v_bfi_b32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x12,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_bfi_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x12,0xd6,0xfd,0xd4,0x04,0x03] v_bfi_b32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x12,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_bfi_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x12,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_bfm_b32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_bfm_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x1d,0xd7,0x01,0x05,0x02,0x00] v_bfm_b32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_bfm_b32 v5, v255, v255 ; encoding: [0x05,0x00,0x1d,0xd7,0xff,0xff,0x03,0x00] v_bfm_b32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_bfm_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x1d,0xd7,0x01,0x04,0x00,0x00] v_bfm_b32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_bfm_b32 v5, s105, s105 ; encoding: [0x05,0x00,0x1d,0xd7,0x69,0xd2,0x00,0x00] v_bfm_b32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_bfm_b32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1d,0xd7,0x6a,0xf6,0x00,0x00] v_bfm_b32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_bfm_b32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1d,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_bfm_b32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_bfm_b32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1d,0xd7,0x7b,0xfa,0x01,0x00] v_bfm_b32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_bfm_b32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1d,0xd7,0x7d,0xe0,0x01,0x00] v_bfm_b32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_bfm_b32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1d,0xd7,0x7e,0x82,0x01,0x00] v_bfm_b32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_bfm_b32 v5, exec_hi, null ; encoding: [0x05,0x00,0x1d,0xd7,0x7f,0xf8,0x00,0x00] v_bfm_b32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_bfm_b32 v5, null, exec_lo ; encoding: [0x05,0x00,0x1d,0xd7,0x7c,0xfc,0x00,0x00] v_bfm_b32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_bfm_b32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1d,0xd7,0xc1,0xfe,0x00,0x00] v_bfm_b32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_bfm_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1d,0xd7,0xf0,0xfa,0x00,0x00] v_bfm_b32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1d,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_bfm_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1d,0xd7,0xfd,0xd4,0x00,0x00] v_bfm_b32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x1d,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_bfm_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1d,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cndmask_b16 v5, v1, src_scc, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x01,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, v1, src_scc, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x01,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_cndmask_b16 v5, v255, 0.5, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0xff,0xe1,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, v255, 0.5, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0xff,0xe1,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:30: error: invalid operand for instruction v_cndmask_b16 v5, s105, s105, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, s105, s105, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, vcc_hi, v2, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x6b,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, vcc_hi, v2, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x6b,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, ttmp15, ttmp15, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, m0, v255, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7d,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, m0, v255, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x7d,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, exec_lo, exec_lo, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, exec_hi, exec_hi, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7f,0xfe,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, exec_hi, exec_hi, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x7f,0xfe,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, null, m0, s105 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7c,0xfa,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, null, m0, s105 ; encoding: [0x05,0x00,0x5d,0xd6,0x7c,0xfa,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, -1, -|vcc_lo|, vcc_lo -// W32: encoding: [0x05,0x02,0x5d,0xd6,0xc1,0xd4,0xa8,0x41] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, -1, -|vcc_lo|, vcc_lo ; encoding: [0x05,0x02,0x5d,0xd6,0xc1,0xd4,0xa8,0x41] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, 0.5, -1, vcc_hi -// W32: encoding: [0x05,0x00,0x5d,0xd6,0xf0,0x82,0xad,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, 0.5, -1, vcc_hi ; encoding: [0x05,0x00,0x5d,0xd6,0xf0,0x82,0xad,0x01] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, -|src_scc|, null, ttmp15 -// W32: encoding: [0x05,0x01,0x5d,0xd6,0xfd,0xf8,0xec,0x21] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, -|src_scc|, null, ttmp15 ; encoding: [0x05,0x01,0x5d,0xd6,0xfd,0xf8,0xec,0x21] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cndmask_b16 v5, v1, src_scc, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x01,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, v1, src_scc, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x01,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_cndmask_b16 v5, v255, 0.5, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0xff,0xe1,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, v255, 0.5, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0xff,0xe1,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:30: error: invalid operand for instruction v_cndmask_b16 v5, s105, s105, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, s105, s105, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, vcc_hi, v2, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x6b,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, vcc_hi, v2, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x6b,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, m0, v255, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7d,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, m0, v255, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7d,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, exec_hi, exec_hi, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7f,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, exec_hi, exec_hi, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7f,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, null, m0, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7c,0xfa,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, null, m0, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7c,0xfa,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, -1, -|vcc_lo|, s[104:105] -// W64: encoding: [0x05,0x02,0x5d,0xd6,0xc1,0xd4,0xa0,0x41] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, -1, -|vcc_lo|, s[104:105] ; encoding: [0x05,0x02,0x5d,0xd6,0xc1,0xd4,0xa0,0x41] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, 0.5, -1, vcc -// W64: encoding: [0x05,0x00,0x5d,0xd6,0xf0,0x82,0xa9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, 0.5, -1, vcc ; encoding: [0x05,0x00,0x5d,0xd6,0xf0,0x82,0xa9,0x01] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, -|src_scc|, null, ttmp[14:15] -// W64: encoding: [0x05,0x01,0x5d,0xd6,0xfd,0xf8,0xe8,0x21] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, -|src_scc|, null, ttmp[14:15] ; encoding: [0x05,0x01,0x5d,0xd6,0xfd,0xf8,0xe8,0x21] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cndmask_b16 v255, -|0xfe0b|, -|vcc_hi|, null -// GFX11: encoding: [0xff,0x03,0x5d,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX11: v_cndmask_b16 v255, -|0xfe0b|, -|vcc_hi|, null ; encoding: [0xff,0x03,0x5d,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_cubeid_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x0c,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_cubeid_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0c,0xd6,0x01,0x05,0x0e,0x00] v_cubeid_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x0c,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_cubeid_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0c,0xd6,0xff,0x05,0xa4,0x01] v_cubeid_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x0c,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_cubeid_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0c,0xd6,0x01,0xfe,0xff,0x01] v_cubeid_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x0c,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_cubeid_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0c,0xd6,0x69,0xd2,0xf8,0x01] v_cubeid_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x0c,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_cubeid_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0c,0xd6,0x6a,0xf6,0x0c,0x04] v_cubeid_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x0c,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_cubeid_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0c,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cubeid_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x0c,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_cubeid_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x0c,0xd6,0x7b,0xfa,0xed,0xe1] v_cubeid_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0c,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_cubeid_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0c,0xd6,0x7d,0xe0,0xf5,0x01] v_cubeid_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x0c,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_cubeid_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x0c,0xd6,0x7e,0x82,0xad,0x01] v_cubeid_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x0c,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_cubeid_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x0c,0xd6,0x7f,0xf8,0xa8,0xa1] v_cubeid_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x0c,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_cubeid_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x0c,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_cubeid_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x0c,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_cubeid_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x0c,0xd6,0xc1,0xfe,0xf4,0xc3] v_cubeid_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x0c,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_cubeid_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x0c,0xd6,0xf0,0xfa,0xc0,0x4b] v_cubeid_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x0c,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_cubeid_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x0c,0xd6,0xfd,0xd4,0x04,0x33] v_cubeid_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x0c,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_cubeid_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x0c,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_cubema_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x0f,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_cubema_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0f,0xd6,0x01,0x05,0x0e,0x00] v_cubema_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x0f,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_cubema_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0f,0xd6,0xff,0x05,0xa4,0x01] v_cubema_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x0f,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_cubema_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0f,0xd6,0x01,0xfe,0xff,0x01] v_cubema_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x0f,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_cubema_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0f,0xd6,0x69,0xd2,0xf8,0x01] v_cubema_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x0f,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_cubema_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0f,0xd6,0x6a,0xf6,0x0c,0x04] v_cubema_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x0f,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_cubema_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0f,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cubema_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x0f,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_cubema_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x0f,0xd6,0x7b,0xfa,0xed,0xe1] v_cubema_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0f,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_cubema_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0f,0xd6,0x7d,0xe0,0xf5,0x01] v_cubema_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x0f,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_cubema_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x0f,0xd6,0x7e,0x82,0xad,0x01] v_cubema_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x0f,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_cubema_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x0f,0xd6,0x7f,0xf8,0xa8,0xa1] v_cubema_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x0f,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_cubema_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x0f,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_cubema_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x0f,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_cubema_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x0f,0xd6,0xc1,0xfe,0xf4,0xc3] v_cubema_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x0f,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_cubema_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x0f,0xd6,0xf0,0xfa,0xc0,0x4b] v_cubema_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x0f,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_cubema_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x0f,0xd6,0xfd,0xd4,0x04,0x33] v_cubema_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x0f,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_cubema_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x0f,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_cubesc_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x0d,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_cubesc_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0d,0xd6,0x01,0x05,0x0e,0x00] v_cubesc_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x0d,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_cubesc_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0d,0xd6,0xff,0x05,0xa4,0x01] v_cubesc_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x0d,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_cubesc_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0d,0xd6,0x01,0xfe,0xff,0x01] v_cubesc_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x0d,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_cubesc_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0d,0xd6,0x69,0xd2,0xf8,0x01] v_cubesc_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x0d,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_cubesc_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0d,0xd6,0x6a,0xf6,0x0c,0x04] v_cubesc_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x0d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_cubesc_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cubesc_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x0d,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_cubesc_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x0d,0xd6,0x7b,0xfa,0xed,0xe1] v_cubesc_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0d,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_cubesc_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0d,0xd6,0x7d,0xe0,0xf5,0x01] v_cubesc_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x0d,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_cubesc_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x0d,0xd6,0x7e,0x82,0xad,0x01] v_cubesc_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x0d,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_cubesc_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x0d,0xd6,0x7f,0xf8,0xa8,0xa1] v_cubesc_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x0d,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_cubesc_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x0d,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_cubesc_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x0d,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_cubesc_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x0d,0xd6,0xc1,0xfe,0xf4,0xc3] v_cubesc_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x0d,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_cubesc_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x0d,0xd6,0xf0,0xfa,0xc0,0x4b] v_cubesc_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x0d,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_cubesc_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x0d,0xd6,0xfd,0xd4,0x04,0x33] v_cubesc_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x0d,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_cubesc_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x0d,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_cubetc_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x0e,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_cubetc_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0e,0xd6,0x01,0x05,0x0e,0x00] v_cubetc_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x0e,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_cubetc_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0e,0xd6,0xff,0x05,0xa4,0x01] v_cubetc_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x0e,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_cubetc_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0e,0xd6,0x01,0xfe,0xff,0x01] v_cubetc_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x0e,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_cubetc_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0e,0xd6,0x69,0xd2,0xf8,0x01] v_cubetc_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x0e,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_cubetc_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0e,0xd6,0x6a,0xf6,0x0c,0x04] v_cubetc_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x0e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_cubetc_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cubetc_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x0e,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_cubetc_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x0e,0xd6,0x7b,0xfa,0xed,0xe1] v_cubetc_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0e,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_cubetc_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0e,0xd6,0x7d,0xe0,0xf5,0x01] v_cubetc_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x0e,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_cubetc_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x0e,0xd6,0x7e,0x82,0xad,0x01] v_cubetc_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x0e,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_cubetc_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x0e,0xd6,0x7f,0xf8,0xa8,0xa1] v_cubetc_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x0e,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_cubetc_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x0e,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_cubetc_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x0e,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_cubetc_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x0e,0xd6,0xc1,0xfe,0xf4,0xc3] v_cubetc_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x0e,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_cubetc_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x0e,0xd6,0xf0,0xfa,0xc0,0x4b] v_cubetc_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x0e,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_cubetc_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x0e,0xd6,0xfd,0xd4,0x04,0x33] v_cubetc_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x0e,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_cubetc_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x0e,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_cvt_pk_i16_f32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x06,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_i16_f32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x06,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_i16_f32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x06,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_i16_f32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x06,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_i16_f32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x06,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_i16_f32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_i16_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x06,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_i16_f32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x06,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_i16_f32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x06,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_i16_f32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x06,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_i16_f32 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x06,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x06,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_i16_f32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x06,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_i16_f32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_i16_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x06,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_i16_f32 v5, 0.5, -m0 -// GFX11: encoding: [0x05,0x00,0x06,0xd7,0xf0,0xfa,0x00,0x40] +// GFX11: v_cvt_pk_i16_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x06,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_i16_f32 v5, -src_scc, |vcc_lo| -// GFX11: encoding: [0x05,0x02,0x06,0xd7,0xfd,0xd4,0x00,0x20] +// GFX11: v_cvt_pk_i16_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x06,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_i16_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX11: encoding: [0xff,0x03,0x06,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_i16_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x06,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cvt_pk_i16_i32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, v1, v2 ; encoding: [0x05,0x00,0x24,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_i16_i32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, v255, v255 ; encoding: [0x05,0x00,0x24,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_i16_i32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, s1, s2 ; encoding: [0x05,0x00,0x24,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_i16_i32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, s105, s105 ; encoding: [0x05,0x00,0x24,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_i16_i32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x24,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_i16_i32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_i16_i32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x24,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_i16_i32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x24,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_i16_i32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x24,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_i16_i32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x24,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_i16_i32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, exec_hi, null ; encoding: [0x05,0x00,0x24,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_i16_i32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, null, exec_lo ; encoding: [0x05,0x00,0x24,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_i16_i32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x24,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_i16_i32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x24,0xd7,0xf0,0xfa,0x00,0x00] v_cvt_pk_i16_i32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x24,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_cvt_pk_i16_i32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x24,0xd7,0xfd,0xd4,0x00,0x00] v_cvt_pk_i16_i32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x24,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_i16_i32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x24,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_i16_f16 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x12,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_norm_i16_f16 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, v255, v255 ; encoding: [0x05,0x00,0x12,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_norm_i16_f16 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, s1, s2 ; encoding: [0x05,0x00,0x12,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, s105, s105 ; encoding: [0x05,0x00,0x12,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x12,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x12,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x12,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_norm_i16_f16 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x12,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_norm_i16_f16 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x12,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_norm_i16_f16 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x12,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x12,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, null, exec_lo ; encoding: [0x05,0x00,0x12,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x12,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0xf0,0xfa,0x00,0x40] +// GFX11: v_cvt_pk_norm_i16_f16 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x12,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_norm_i16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX11: encoding: [0x05,0x0a,0x12,0xd7,0xfd,0xd4,0x00,0x20] +// GFX11: v_cvt_pk_norm_i16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] ; encoding: [0x05,0x0a,0x12,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_norm_i16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX11: encoding: [0xff,0x13,0x12,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] ; encoding: [0xff,0x13,0x12,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x13,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_norm_u16_f16 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, v255, v255 ; encoding: [0x05,0x00,0x13,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_norm_u16_f16 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, s1, s2 ; encoding: [0x05,0x00,0x13,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, s105, s105 ; encoding: [0x05,0x00,0x13,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x13,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x13,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x13,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_norm_u16_f16 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x13,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_norm_u16_f16 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x13,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_norm_u16_f16 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x13,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x13,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, null, exec_lo ; encoding: [0x05,0x00,0x13,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x13,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0xf0,0xfa,0x00,0x40] +// GFX11: v_cvt_pk_norm_u16_f16 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x13,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_norm_u16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX11: encoding: [0x05,0x0a,0x13,0xd7,0xfd,0xd4,0x00,0x20] +// GFX11: v_cvt_pk_norm_u16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] ; encoding: [0x05,0x0a,0x13,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_norm_u16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX11: encoding: [0xff,0x13,0x13,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] ; encoding: [0xff,0x13,0x13,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cvt_pk_u16_f32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x07,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_u16_f32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x07,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_u16_f32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x07,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_u16_f32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x07,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_u16_f32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x07,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_u16_f32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_u16_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x07,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_u16_f32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x07,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_u16_f32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x07,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_u16_f32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x07,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_u16_f32 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x07,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x07,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_u16_f32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x07,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_u16_f32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_u16_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x07,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_u16_f32 v5, 0.5, -m0 -// GFX11: encoding: [0x05,0x00,0x07,0xd7,0xf0,0xfa,0x00,0x40] +// GFX11: v_cvt_pk_u16_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x07,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_u16_f32 v5, -src_scc, |vcc_lo| -// GFX11: encoding: [0x05,0x02,0x07,0xd7,0xfd,0xd4,0x00,0x20] +// GFX11: v_cvt_pk_u16_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x07,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_u16_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX11: encoding: [0xff,0x03,0x07,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_u16_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x07,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cvt_pk_u16_u32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, v1, v2 ; encoding: [0x05,0x00,0x23,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_u16_u32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, v255, v255 ; encoding: [0x05,0x00,0x23,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_u16_u32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, s1, s2 ; encoding: [0x05,0x00,0x23,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_u16_u32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, s105, s105 ; encoding: [0x05,0x00,0x23,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_u16_u32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x23,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_u16_u32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_u16_u32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x23,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_u16_u32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x23,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_u16_u32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x23,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_u16_u32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x23,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_u16_u32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, exec_hi, null ; encoding: [0x05,0x00,0x23,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_u16_u32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, null, exec_lo ; encoding: [0x05,0x00,0x23,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_u16_u32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x23,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_u16_u32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x23,0xd7,0xf0,0xfa,0x00,0x00] v_cvt_pk_u16_u32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x23,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_cvt_pk_u16_u32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x23,0xd7,0xfd,0xd4,0x00,0x00] v_cvt_pk_u16_u32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x23,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_u16_u32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x23,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_u8_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_cvt_pk_u8_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x26,0xd6,0x01,0x05,0x0e,0x00] v_cvt_pk_u8_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_cvt_pk_u8_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x26,0xd6,0xff,0x05,0xa4,0x01] v_cvt_pk_u8_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_cvt_pk_u8_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x26,0xd6,0x01,0xfe,0xff,0x01] v_cvt_pk_u8_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_cvt_pk_u8_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x26,0xd6,0x69,0xd2,0xf8,0x01] v_cvt_pk_u8_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_cvt_pk_u8_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x26,0xd6,0x6a,0xf6,0x0c,0x04] v_cvt_pk_u8_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_u8_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x26,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cvt_pk_u8_f32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_cvt_pk_u8_f32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x26,0xd6,0x7b,0xfa,0xed,0x01] v_cvt_pk_u8_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_cvt_pk_u8_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x26,0xd6,0x7d,0xe0,0xf5,0x01] v_cvt_pk_u8_f32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_cvt_pk_u8_f32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x26,0xd6,0x7e,0x82,0xad,0x01] v_cvt_pk_u8_f32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_cvt_pk_u8_f32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x26,0xd6,0x7f,0xf8,0xa8,0x01] v_cvt_pk_u8_f32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_u8_f32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x26,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_cvt_pk_u8_f32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_cvt_pk_u8_f32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x26,0xd6,0xc1,0xfe,0xf4,0x03] v_cvt_pk_u8_f32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_cvt_pk_u8_f32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x26,0xd6,0xf0,0xfa,0xc0,0x03] v_cvt_pk_u8_f32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x26,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_cvt_pk_u8_f32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x26,0xd6,0xfd,0xd4,0x04,0x03] v_cvt_pk_u8_f32 v255, -|0xaf123456|, vcc_hi, null -// GFX11: encoding: [0xff,0x01,0x26,0xd6,0xff,0xd6,0xf0,0x21,0x56,0x34,0x12,0xaf] - -v_cvt_pk_norm_i16_f16 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x01,0x05,0x02,0x00] - -v_cvt_pk_norm_i16_f16 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0xff,0xff,0x03,0x00] - -v_cvt_pk_norm_i16_f16 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x01,0x04,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x69,0xd2,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x6a,0xf6,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x7b,0xfa,0x01,0x00] - -v_cvt_pk_norm_i16_f16 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x7d,0xe0,0x01,0x00] - -v_cvt_pk_norm_i16_f16 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x7e,0x82,0x01,0x00] - -v_cvt_pk_norm_i16_f16 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x12,0xd7,0x7f,0xf8,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0x7c,0xfc,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0xc1,0xfe,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX11: encoding: [0x05,0x00,0x12,0xd7,0xf0,0xfa,0x00,0x40] - -v_cvt_pk_norm_i16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX11: encoding: [0x05,0x0a,0x12,0xd7,0xfd,0xd4,0x00,0x20] - -v_cvt_pk_norm_i16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX11: encoding: [0xff,0x13,0x12,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_u8_f32 v255, -|0xaf123456|, vcc_hi, null ; encoding: [0xff,0x01,0x26,0xd6,0xff,0xd6,0xf0,0x21,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_i16_f32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x21,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_norm_i16_f32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x21,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_norm_i16_f32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x21,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x21,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x21,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_norm_i16_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x21,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_i16_f32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x21,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_norm_i16_f32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x21,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_norm_i16_f32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x21,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_norm_i16_f32 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x21,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x21,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x21,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x21,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, 0.5, -m0 -// GFX11: encoding: [0x05,0x00,0x21,0xd7,0xf0,0xfa,0x00,0x40] +// GFX11: v_cvt_pk_norm_i16_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x21,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_norm_i16_f32 v5, -src_scc, |vcc_lo| -// GFX11: encoding: [0x05,0x02,0x21,0xd7,0xfd,0xd4,0x00,0x20] +// GFX11: v_cvt_pk_norm_i16_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x21,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_norm_i16_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX11: encoding: [0xff,0x03,0x21,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] - -v_cvt_pk_norm_u16_f16 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x01,0x05,0x02,0x00] - -v_cvt_pk_norm_u16_f16 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0xff,0xff,0x03,0x00] - -v_cvt_pk_norm_u16_f16 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x01,0x04,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x69,0xd2,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x6a,0xf6,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x7b,0xfa,0x01,0x00] - -v_cvt_pk_norm_u16_f16 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x7d,0xe0,0x01,0x00] - -v_cvt_pk_norm_u16_f16 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x7e,0x82,0x01,0x00] - -v_cvt_pk_norm_u16_f16 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x13,0xd7,0x7f,0xf8,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0x7c,0xfc,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0xc1,0xfe,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX11: encoding: [0x05,0x00,0x13,0xd7,0xf0,0xfa,0x00,0x40] - -v_cvt_pk_norm_u16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX11: encoding: [0x05,0x0a,0x13,0xd7,0xfd,0xd4,0x00,0x20] - -v_cvt_pk_norm_u16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX11: encoding: [0xff,0x13,0x13,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x21,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_u16_f32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x22,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_norm_u16_f32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x22,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_norm_u16_f32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x22,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x22,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x22,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_norm_u16_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x22,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_u16_f32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x22,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_norm_u16_f32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x22,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_norm_u16_f32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x22,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_norm_u16_f32 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x22,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x22,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x22,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x22,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, 0.5, -m0 -// GFX11: encoding: [0x05,0x00,0x22,0xd7,0xf0,0xfa,0x00,0x40] +// GFX11: v_cvt_pk_norm_u16_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x22,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_norm_u16_f32 v5, -src_scc, |vcc_lo| -// GFX11: encoding: [0x05,0x02,0x22,0xd7,0xfd,0xd4,0x00,0x20] +// GFX11: v_cvt_pk_norm_u16_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x22,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_norm_u16_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX11: encoding: [0xff,0x03,0x22,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_norm_u16_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x22,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_div_fixup_f16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x54,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_div_fixup_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x54,0xd6,0x01,0x05,0x0e,0x00] v_div_fixup_f16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x54,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_div_fixup_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x54,0xd6,0xff,0x05,0xa4,0x01] v_div_fixup_f16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x54,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_div_fixup_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x54,0xd6,0x01,0xfe,0xff,0x01] v_div_fixup_f16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x54,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_div_fixup_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x54,0xd6,0x69,0xd2,0xf8,0x01] v_div_fixup_f16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x54,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_div_fixup_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x54,0xd6,0x6a,0xf6,0x0c,0x04] v_div_fixup_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x54,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_div_fixup_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x54,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_div_fixup_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x54,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_div_fixup_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x54,0xd6,0x7b,0xfa,0xed,0xe1] v_div_fixup_f16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x54,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_div_fixup_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x54,0xd6,0x7d,0xe0,0xf5,0x01] v_div_fixup_f16 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x54,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_div_fixup_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x54,0xd6,0x7e,0x82,0xad,0x01] v_div_fixup_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x7d,0x54,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_div_fixup_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x54,0xd6,0x7f,0xf8,0xa8,0xa1] v_div_fixup_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x04,0x54,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX11: v_div_fixup_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x54,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_div_fixup_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x0e,0x54,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_div_fixup_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x54,0xd6,0xc1,0xfe,0xf4,0xc3] v_div_fixup_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x54,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX11: v_div_fixup_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x54,0xd6,0xf0,0xfa,0xc0,0x43] v_div_fixup_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x22,0x54,0xd6,0xfd,0xd4,0x04,0x23] +// GFX11: v_div_fixup_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x54,0xd6,0xfd,0xd4,0x04,0x23] v_div_fixup_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX11: encoding: [0xff,0xc3,0x54,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX11: v_div_fixup_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x54,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_div_fixup_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] mul:2 -// GFX11: encoding: [0x05,0x10,0x54,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_div_fixup_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] mul:2 ; encoding: [0x05,0x10,0x54,0xd6,0xf0,0xfa,0xc0,0x4b] v_div_fixup_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x27,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_div_fixup_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x27,0xd6,0x01,0x05,0x0e,0x00] v_div_fixup_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x27,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_div_fixup_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x27,0xd6,0xff,0x05,0xa4,0x01] v_div_fixup_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x27,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_div_fixup_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x27,0xd6,0x01,0xfe,0xff,0x01] v_div_fixup_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x27,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_div_fixup_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x27,0xd6,0x69,0xd2,0xf8,0x01] v_div_fixup_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x27,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_div_fixup_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x27,0xd6,0x6a,0xf6,0x0c,0x04] v_div_fixup_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x27,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fixup_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x27,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_div_fixup_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x27,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_div_fixup_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x27,0xd6,0x7b,0xfa,0xed,0xe1] v_div_fixup_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x27,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_div_fixup_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x27,0xd6,0x7d,0xe0,0xf5,0x01] v_div_fixup_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x27,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_div_fixup_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x27,0xd6,0x7e,0x82,0xad,0x01] v_div_fixup_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x27,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_div_fixup_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x27,0xd6,0x7f,0xf8,0xa8,0xa1] v_div_fixup_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x27,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fixup_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x27,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_div_fixup_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x27,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_div_fixup_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x27,0xd6,0xc1,0xfe,0xf4,0xc3] v_div_fixup_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x27,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_div_fixup_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x27,0xd6,0xf0,0xfa,0xc0,0x4b] v_div_fixup_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x27,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_div_fixup_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x27,0xd6,0xfd,0xd4,0x04,0x33] v_div_fixup_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x27,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fixup_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x27,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_div_fixup_f64 v[5:6], v[1:2], v[2:3], v[3:4] -// GFX11: encoding: [0x05,0x00,0x28,0xd6,0x01,0x05,0x0e,0x04] +// GFX11: v_div_fixup_f64 v[5:6], v[1:2], v[2:3], v[3:4] ; encoding: [0x05,0x00,0x28,0xd6,0x01,0x05,0x0e,0x04] v_div_fixup_f64 v[5:6], v[254:255], v[254:255], s[6:7] -// GFX11: encoding: [0x05,0x00,0x28,0xd6,0xfe,0xfd,0x1b,0x00] +// GFX11: v_div_fixup_f64 v[5:6], v[254:255], v[254:255], s[6:7] ; encoding: [0x05,0x00,0x28,0xd6,0xfe,0xfd,0x1b,0x00] v_div_fixup_f64 v[5:6], s[2:3], s[4:5], v[254:255] -// GFX11: encoding: [0x05,0x00,0x28,0xd6,0x02,0x08,0xf8,0x07] +// GFX11: v_div_fixup_f64 v[5:6], s[2:3], s[4:5], v[254:255] ; encoding: [0x05,0x00,0x28,0xd6,0x02,0x08,0xf8,0x07] v_div_fixup_f64 v[5:6], -|s[104:105]|, s[104:105], -|s[104:105]| -// GFX11: encoding: [0x05,0x05,0x28,0xd6,0x68,0xd0,0xa0,0xa1] +// GFX11: v_div_fixup_f64 v[5:6], -|s[104:105]|, s[104:105], -|s[104:105]| ; encoding: [0x05,0x05,0x28,0xd6,0x68,0xd0,0xa0,0xa1] v_div_fixup_f64 v[5:6], vcc, -|ttmp[14:15]|, -|ttmp[14:15]| -// GFX11: encoding: [0x05,0x06,0x28,0xd6,0x6a,0xf4,0xe8,0xc1] +// GFX11: v_div_fixup_f64 v[5:6], vcc, -|ttmp[14:15]|, -|ttmp[14:15]| ; encoding: [0x05,0x06,0x28,0xd6,0x6a,0xf4,0xe8,0xc1] v_div_fixup_f64 v[5:6], -|ttmp[14:15]|, 0xaf123456, null -// GFX11: encoding: [0x05,0x01,0x28,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fixup_f64 v[5:6], -|ttmp[14:15]|, 0xaf123456, null ; encoding: [0x05,0x01,0x28,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] v_div_fixup_f64 v[5:6], -|exec|, -|src_scc|, -|exec| -// GFX11: encoding: [0x05,0x07,0x28,0xd6,0x7e,0xfa,0xf9,0xe1] +// GFX11: v_div_fixup_f64 v[5:6], -|exec|, -|src_scc|, -|exec| ; encoding: [0x05,0x07,0x28,0xd6,0x7e,0xfa,0xf9,0xe1] v_div_fixup_f64 v[5:6], null, 0.5, vcc -// GFX11: encoding: [0x05,0x00,0x28,0xd6,0x7c,0xe0,0xa9,0x01] +// GFX11: v_div_fixup_f64 v[5:6], null, 0.5, vcc ; encoding: [0x05,0x00,0x28,0xd6,0x7c,0xe0,0xa9,0x01] v_div_fixup_f64 v[5:6], -1, -1, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x28,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fixup_f64 v[5:6], -1, -1, 0xaf123456 ; encoding: [0x05,0x00,0x28,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] v_div_fixup_f64 v[5:6], 0.5, null, -|src_scc| mul:2 -// GFX11: encoding: [0x05,0x04,0x28,0xd6,0xf0,0xf8,0xf4,0x8b] +// GFX11: v_div_fixup_f64 v[5:6], 0.5, null, -|src_scc| mul:2 ; encoding: [0x05,0x04,0x28,0xd6,0xf0,0xf8,0xf4,0x8b] v_div_fixup_f64 v[5:6], -|src_scc|, -|exec|, 0.5 mul:4 -// GFX11: encoding: [0x05,0x03,0x28,0xd6,0xfd,0xfc,0xc0,0x73] +// GFX11: v_div_fixup_f64 v[5:6], -|src_scc|, -|exec|, 0.5 mul:4 ; encoding: [0x05,0x03,0x28,0xd6,0xfd,0xfc,0xc0,0x73] v_div_fixup_f64 v[254:255], 0xaf123456, -|vcc|, -1 clamp div:2 -// GFX11: encoding: [0xfe,0x82,0x28,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fixup_f64 v[254:255], 0xaf123456, -|vcc|, -1 clamp div:2 ; encoding: [0xfe,0x82,0x28,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] v_div_fmas_f32 v5, vcc_lo, v2, vcc_lo -// W32: encoding: [0x05,0x00,0x37,0xd6,0x6a,0x04,0xaa,0x01] +// GFX11: v_div_fmas_f32 v5, vcc_lo, v2, vcc_lo ; encoding: [0x05,0x00,0x37,0xd6,0x6a,0x04,0xaa,0x01] v_div_fmas_f32 v5, ttmp15, ttmp15, ttmp15 -// W32: encoding: [0x05,0x00,0x37,0xd6,0x7b,0xf6,0xec,0x01] +// GFX11: v_div_fmas_f32 v5, ttmp15, ttmp15, ttmp15 ; encoding: [0x05,0x00,0x37,0xd6,0x7b,0xf6,0xec,0x01] v_div_fmas_f32 v5, -|m0|, -|v255|, v3 -// W32: encoding: [0x05,0x03,0x37,0xd6,0x7d,0xfe,0x0f,0x64] +// GFX11: v_div_fmas_f32 v5, -|m0|, -|v255|, v3 ; encoding: [0x05,0x03,0x37,0xd6,0x7d,0xfe,0x0f,0x64] v_div_fmas_f32 v5, -|exec_lo|, -|exec_lo|, -|exec_lo| -// W32: encoding: [0x05,0x07,0x37,0xd6,0x7e,0xfc,0xf8,0xe1] +// GFX11: v_div_fmas_f32 v5, -|exec_lo|, -|exec_lo|, -|exec_lo| ; encoding: [0x05,0x07,0x37,0xd6,0x7e,0xfc,0xf8,0xe1] v_div_fmas_f32 v5, -|exec_hi|, 0.5, -|v255| -// W32: encoding: [0x05,0x05,0x37,0xd6,0x7f,0xe0,0xfd,0xa7] +// GFX11: v_div_fmas_f32 v5, -|exec_hi|, 0.5, -|v255| ; encoding: [0x05,0x05,0x37,0xd6,0x7f,0xe0,0xfd,0xa7] v_div_fmas_f32 v5, null, exec_hi, -|exec_hi| -// W32: encoding: [0x05,0x04,0x37,0xd6,0x7c,0xfe,0xfc,0x81] +// GFX11: v_div_fmas_f32 v5, null, exec_hi, -|exec_hi| ; encoding: [0x05,0x04,0x37,0xd6,0x7c,0xfe,0xfc,0x81] v_div_fmas_f32 v5, -1, -|m0|, -|m0| -// W32: encoding: [0x05,0x06,0x37,0xd6,0xc1,0xfa,0xf4,0xc1] +// GFX11: v_div_fmas_f32 v5, -1, -|m0|, -|m0| ; encoding: [0x05,0x06,0x37,0xd6,0xc1,0xfa,0xf4,0xc1] v_div_fmas_f32 v5, 0.5, -|vcc_lo|, 0.5 mul:2 -// W32: encoding: [0x05,0x02,0x37,0xd6,0xf0,0xd4,0xc0,0x4b] +// GFX11: v_div_fmas_f32 v5, 0.5, -|vcc_lo|, 0.5 mul:2 ; encoding: [0x05,0x02,0x37,0xd6,0xf0,0xd4,0xc0,0x4b] v_div_fmas_f32 v5, vcc_lo, v2, v3 -// W64: encoding: [0x05,0x00,0x37,0xd6,0x6a,0x04,0x0e,0x04] +// GFX11: v_div_fmas_f32 v5, vcc_lo, v2, v3 ; encoding: [0x05,0x00,0x37,0xd6,0x6a,0x04,0x0e,0x04] v_div_fmas_f32 v5, vcc_hi, v255, vcc_hi -// W64: encoding: [0x05,0x00,0x37,0xd6,0x6b,0xfe,0xaf,0x01] +// GFX11: v_div_fmas_f32 v5, vcc_hi, v255, vcc_hi ; encoding: [0x05,0x00,0x37,0xd6,0x6b,0xfe,0xaf,0x01] v_div_fmas_f32 v5, -|ttmp15|, -|ttmp15|, ttmp15 -// W64: encoding: [0x05,0x03,0x37,0xd6,0x7b,0xf6,0xec,0x61] +// GFX11: v_div_fmas_f32 v5, -|ttmp15|, -|ttmp15|, ttmp15 ; encoding: [0x05,0x03,0x37,0xd6,0x7b,0xf6,0xec,0x61] v_div_fmas_f32 v5, m0, 0.5, v255 -// W64: encoding: [0x05,0x00,0x37,0xd6,0x7d,0xe0,0xfd,0x07] +// GFX11: v_div_fmas_f32 v5, m0, 0.5, v255 ; encoding: [0x05,0x00,0x37,0xd6,0x7d,0xe0,0xfd,0x07] v_div_fmas_f32 v5, -|exec_lo|, exec_lo, -|exec_lo| -// W64: encoding: [0x05,0x05,0x37,0xd6,0x7e,0xfc,0xf8,0xa1] +// GFX11: v_div_fmas_f32 v5, -|exec_lo|, exec_lo, -|exec_lo| ; encoding: [0x05,0x05,0x37,0xd6,0x7e,0xfc,0xf8,0xa1] v_div_fmas_f32 v5, -|exec_hi|, -|exec_hi|, -|exec_hi| -// W64: encoding: [0x05,0x07,0x37,0xd6,0x7f,0xfe,0xfc,0xe1] +// GFX11: v_div_fmas_f32 v5, -|exec_hi|, -|exec_hi|, -|exec_hi| ; encoding: [0x05,0x07,0x37,0xd6,0x7f,0xfe,0xfc,0xe1] v_div_fmas_f32 v5, null, m0, -|m0| -// W64: encoding: [0x05,0x04,0x37,0xd6,0x7c,0xfa,0xf4,0x81] +// GFX11: v_div_fmas_f32 v5, null, m0, -|m0| ; encoding: [0x05,0x04,0x37,0xd6,0x7c,0xfa,0xf4,0x81] v_div_fmas_f32 v5, -1, -|vcc_lo|, -|vcc_lo| -// W64: encoding: [0x05,0x06,0x37,0xd6,0xc1,0xd4,0xa8,0xc1] +// GFX11: v_div_fmas_f32 v5, -1, -|vcc_lo|, -|vcc_lo| ; encoding: [0x05,0x06,0x37,0xd6,0xc1,0xd4,0xa8,0xc1] v_div_fmas_f32 v5, 0.5, -|vcc_hi|, 0.5 mul:2 -// W64: encoding: [0x05,0x02,0x37,0xd6,0xf0,0xd6,0xc0,0x4b] +// GFX11: v_div_fmas_f32 v5, 0.5, -|vcc_hi|, 0.5 mul:2 ; encoding: [0x05,0x02,0x37,0xd6,0xf0,0xd6,0xc0,0x4b] v_div_fmas_f32 v5, v1, 0xaf123456, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x37,0xd6,0x01,0xff,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fmas_f32 v5, v1, 0xaf123456, 0xaf123456 ; encoding: [0x05,0x00,0x37,0xd6,0x01,0xff,0xfd,0x03,0x56,0x34,0x12,0xaf] v_div_fmas_f32 v5, v255, src_scc, src_scc -// GFX11: encoding: [0x05,0x00,0x37,0xd6,0xff,0xfb,0xf5,0x03] +// GFX11: v_div_fmas_f32 v5, v255, src_scc, src_scc ; encoding: [0x05,0x00,0x37,0xd6,0xff,0xfb,0xf5,0x03] v_div_fmas_f32 v5, s105, s105, s105 -// GFX11: encoding: [0x05,0x00,0x37,0xd6,0x69,0xd2,0xa4,0x01] +// GFX11: v_div_fmas_f32 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x37,0xd6,0x69,0xd2,0xa4,0x01] v_div_fmas_f32 v5, src_scc, -1, -1 mul:4 -// GFX11: encoding: [0x05,0x00,0x37,0xd6,0xfd,0x82,0x05,0x13] +// GFX11: v_div_fmas_f32 v5, src_scc, -1, -1 mul:4 ; encoding: [0x05,0x00,0x37,0xd6,0xfd,0x82,0x05,0x13] v_div_fmas_f32 v255, -|0xaf123456|, null, null clamp div:2 -// GFX11: encoding: [0xff,0x81,0x37,0xd6,0xff,0xf8,0xf0,0x39,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fmas_f32 v255, -|0xaf123456|, null, null clamp div:2 ; encoding: [0xff,0x81,0x37,0xd6,0xff,0xf8,0xf0,0x39,0x56,0x34,0x12,0xaf] v_div_fmas_f64 v[5:6], v[1:2], 0xaf123456, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x38,0xd6,0x01,0xff,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fmas_f64 v[5:6], v[1:2], 0xaf123456, 0xaf123456 ; encoding: [0x05,0x00,0x38,0xd6,0x01,0xff,0xfd,0x03,0x56,0x34,0x12,0xaf] v_div_fmas_f64 v[5:6], v[254:255], src_scc, v[3:4] -// GFX11: encoding: [0x05,0x00,0x38,0xd6,0xfe,0xfb,0x0d,0x04] +// GFX11: v_div_fmas_f64 v[5:6], v[254:255], src_scc, v[3:4] ; encoding: [0x05,0x00,0x38,0xd6,0xfe,0xfb,0x0d,0x04] v_div_fmas_f64 v[5:6], s[104:105], |s[104:105]|, s[104:105] -// GFX11: encoding: [0x05,0x02,0x38,0xd6,0x68,0xd0,0xa0,0x01] +// GFX11: v_div_fmas_f64 v[5:6], s[104:105], |s[104:105]|, s[104:105] ; encoding: [0x05,0x02,0x38,0xd6,0x68,0xd0,0xa0,0x01] v_div_fmas_f64 v[5:6], -|vcc|, v[2:3], -|v[254:255]| -// GFX11: encoding: [0x05,0x05,0x38,0xd6,0x6a,0x04,0xfa,0xa7] +// GFX11: v_div_fmas_f64 v[5:6], -|vcc|, v[2:3], -|v[254:255]| ; encoding: [0x05,0x05,0x38,0xd6,0x6a,0x04,0xfa,0xa7] v_div_fmas_f64 v[5:6], -|ttmp[14:15]|, -|ttmp[14:15]|, -|ttmp[14:15]| -// GFX11: encoding: [0x05,0x07,0x38,0xd6,0x7a,0xf4,0xe8,0xe1] +// GFX11: v_div_fmas_f64 v[5:6], -|ttmp[14:15]|, -|ttmp[14:15]|, -|ttmp[14:15]| ; encoding: [0x05,0x07,0x38,0xd6,0x7a,0xf4,0xe8,0xe1] v_div_fmas_f64 v[5:6], -|exec|, -|v[254:255]|, null -// GFX11: encoding: [0x05,0x03,0x38,0xd6,0x7e,0xfc,0xf3,0x61] +// GFX11: v_div_fmas_f64 v[5:6], -|exec|, -|v[254:255]|, null ; encoding: [0x05,0x03,0x38,0xd6,0x7e,0xfc,0xf3,0x61] v_div_fmas_f64 v[5:6], null, 0.5, -src_scc -// GFX11: encoding: [0x05,0x00,0x38,0xd6,0x7c,0xe0,0xf5,0x83] +// GFX11: v_div_fmas_f64 v[5:6], null, 0.5, -src_scc ; encoding: [0x05,0x00,0x38,0xd6,0x7c,0xe0,0xf5,0x83] v_div_fmas_f64 v[5:6], -1, -exec, |exec| -// GFX11: encoding: [0x05,0x04,0x38,0xd6,0xc1,0xfc,0xf8,0x41] +// GFX11: v_div_fmas_f64 v[5:6], -1, -exec, |exec| ; encoding: [0x05,0x04,0x38,0xd6,0xc1,0xfc,0xf8,0x41] v_div_fmas_f64 v[5:6], 0.5, -|vcc|, -|vcc| mul:2 -// GFX11: encoding: [0x05,0x06,0x38,0xd6,0xf0,0xd4,0xa8,0xc9] +// GFX11: v_div_fmas_f64 v[5:6], 0.5, -|vcc|, -|vcc| mul:2 ; encoding: [0x05,0x06,0x38,0xd6,0xf0,0xd4,0xa8,0xc9] v_div_fmas_f64 v[5:6], -|src_scc|, -1, 0.5 mul:4 -// GFX11: encoding: [0x05,0x01,0x38,0xd6,0xfd,0x82,0xc1,0x33] +// GFX11: v_div_fmas_f64 v[5:6], -|src_scc|, -1, 0.5 mul:4 ; encoding: [0x05,0x01,0x38,0xd6,0xfd,0x82,0xc1,0x33] v_div_fmas_f64 v[254:255], 0xaf123456, null, -1 clamp div:2 -// GFX11: encoding: [0xfe,0x80,0x38,0xd6,0xff,0xf8,0x04,0x1b,0x56,0x34,0x12,0xaf] +// GFX11: v_div_fmas_f64 v[254:255], 0xaf123456, null, -1 clamp div:2 ; encoding: [0xfe,0x80,0x38,0xd6,0xff,0xf8,0x04,0x1b,0x56,0x34,0x12,0xaf] v_div_scale_f32 v5, vcc_lo, v1, v2, s3 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x01,0x05,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, v1, v2, s3 ; encoding: [0x05,0x6a,0xfc,0xd6,0x01,0x05,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, v255, s2, s105 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0xff,0x05,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, v255, s2, s105 ; encoding: [0x05,0x6a,0xfc,0xd6,0xff,0x05,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, s1, v255, exec_hi -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x01,0xfe,0xff,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, s1, v255, exec_hi ; encoding: [0x05,0x6a,0xfc,0xd6,0x01,0xfe,0xff,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, s105, s105, exec_lo -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x69,0xd2,0xf8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, s105, s105, exec_lo ; encoding: [0x05,0x6a,0xfc,0xd6,0x69,0xd2,0xf8,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, vcc_lo, ttmp15, v3 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x6a,0xf6,0x0c,0x04] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x6a,0xfc,0xd6,0x6a,0xf6,0x0c,0x04] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, vcc_hi, 0xaf123456, v255 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x6a,0xfc,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, -ttmp15, -src_scc, -ttmp15 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7b,0xfa,0xed,0xe1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, -ttmp15, -src_scc, -ttmp15 ; encoding: [0x05,0x6a,0xfc,0xd6,0x7b,0xfa,0xed,0xe1] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, m0, 0.5, m0 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7d,0xe0,0xf5,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, m0, 0.5, m0 ; encoding: [0x05,0x6a,0xfc,0xd6,0x7d,0xe0,0xf5,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, exec_lo, -1, vcc_hi -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7e,0x82,0xad,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, exec_lo, -1, vcc_hi ; encoding: [0x05,0x6a,0xfc,0xd6,0x7e,0x82,0xad,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, -exec_hi, null, -vcc_lo -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7f,0xf8,0xa8,0xa1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, -exec_hi, null, -vcc_lo ; encoding: [0x05,0x6a,0xfc,0xd6,0x7f,0xf8,0xa8,0xa1] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, null, exec_lo, neg(0xaf123456) -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, null, exec_lo, neg(0xaf123456) ; encoding: [0x05,0x6a,0xfc,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, -1, -exec_hi, -src_scc -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0xc1,0xfe,0xf4,0xc3] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, -1, -exec_hi, -src_scc ; encoding: [0x05,0x6a,0xfc,0xd6,0xc1,0xfe,0xf4,0xc3] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, 0.5, -m0, 0.5 mul:2 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0xf0,0xfa,0xc0,0x4b] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x6a,0xfc,0xd6,0xf0,0xfa,0xc0,0x4b] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, -src_scc, vcc_lo, -1 mul:4 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0xfd,0xd4,0x04,0x33] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, -src_scc, vcc_lo, -1 mul:4 ; encoding: [0x05,0x6a,0xfc,0xd6,0xfd,0xd4,0x04,0x33] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v255, vcc_lo, neg(0xaf123456), -vcc_hi, null clamp div:2 -// W32: encoding: [0xff,0xea,0xfc,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v255, vcc_lo, neg(0xaf123456), -vcc_hi, null clamp div:2 ; encoding: [0xff,0xea,0xfc,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_div_scale_f32 v5, vcc, v1, v2, s3 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x01,0x05,0x0e,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, v1, v2, s3 ; encoding: [0x05,0x6a,0xfc,0xd6,0x01,0x05,0x0e,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, v255, s2, s105 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0xff,0x05,0xa4,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, v255, s2, s105 ; encoding: [0x05,0x6a,0xfc,0xd6,0xff,0x05,0xa4,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, s1, v255, exec_hi -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x01,0xfe,0xff,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, s1, v255, exec_hi ; encoding: [0x05,0x6a,0xfc,0xd6,0x01,0xfe,0xff,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, s105, s105, exec_lo -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x69,0xd2,0xf8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, s105, s105, exec_lo ; encoding: [0x05,0x6a,0xfc,0xd6,0x69,0xd2,0xf8,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, vcc_lo, ttmp15, v3 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x6a,0xf6,0x0c,0x04] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x6a,0xfc,0xd6,0x6a,0xf6,0x0c,0x04] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, vcc_hi, 0xaf123456, v255 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x6a,0xfc,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, -ttmp15, -src_scc, -ttmp15 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7b,0xfa,0xed,0xe1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, -ttmp15, -src_scc, -ttmp15 ; encoding: [0x05,0x6a,0xfc,0xd6,0x7b,0xfa,0xed,0xe1] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, m0, 0.5, m0 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7d,0xe0,0xf5,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, m0, 0.5, m0 ; encoding: [0x05,0x6a,0xfc,0xd6,0x7d,0xe0,0xf5,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, exec_lo, -1, vcc_hi -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7e,0x82,0xad,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, exec_lo, -1, vcc_hi ; encoding: [0x05,0x6a,0xfc,0xd6,0x7e,0x82,0xad,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, -exec_hi, null, -vcc_lo -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7f,0xf8,0xa8,0xa1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, -exec_hi, null, -vcc_lo ; encoding: [0x05,0x6a,0xfc,0xd6,0x7f,0xf8,0xa8,0xa1] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, null, exec_lo, neg(0xaf123456) -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, null, exec_lo, neg(0xaf123456) ; encoding: [0x05,0x6a,0xfc,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, -1, -exec_hi, -src_scc -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0xc1,0xfe,0xf4,0xc3] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, -1, -exec_hi, -src_scc ; encoding: [0x05,0x6a,0xfc,0xd6,0xc1,0xfe,0xf4,0xc3] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, 0.5, -m0, 0.5 mul:2 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0xf0,0xfa,0xc0,0x4b] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x6a,0xfc,0xd6,0xf0,0xfa,0xc0,0x4b] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, -src_scc, vcc_lo, -1 mul:4 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0xfd,0xd4,0x04,0x33] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, -src_scc, vcc_lo, -1 mul:4 ; encoding: [0x05,0x6a,0xfc,0xd6,0xfd,0xd4,0x04,0x33] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v255, vcc, neg(0xaf123456), -vcc_hi, null clamp div:2 -// W64: encoding: [0xff,0xea,0xfc,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v255, vcc, neg(0xaf123456), -vcc_hi, null clamp div:2 ; encoding: [0xff,0xea,0xfc,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, v[1:2], v[2:3], v[3:4] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x01,0x05,0x0e,0x04] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, v[1:2], v[2:3], v[3:4] ; encoding: [0x05,0x6a,0xfd,0xd6,0x01,0x05,0x0e,0x04] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, v[254:255], v[254:255], s[6:7] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0xfe,0xfd,0x1b,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, v[254:255], v[254:255], s[6:7] ; encoding: [0x05,0x6a,0xfd,0xd6,0xfe,0xfd,0x1b,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, s[2:3], s[4:5], v[254:255] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x02,0x08,0xf8,0x07] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, s[2:3], s[4:5], v[254:255] ; encoding: [0x05,0x6a,0xfd,0xd6,0x02,0x08,0xf8,0x07] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -s[104:105], s[104:105], -s[104:105] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x68,0xd0,0xa0,0xa1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -s[104:105], s[104:105], -s[104:105] ; encoding: [0x05,0x6a,0xfd,0xd6,0x68,0xd0,0xa0,0xa1] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, vcc, -ttmp[14:15], -ttmp[14:15] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x6a,0xf4,0xe8,0xc1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, vcc, -ttmp[14:15], -ttmp[14:15] ; encoding: [0x05,0x6a,0xfd,0xd6,0x6a,0xf4,0xe8,0xc1] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -ttmp[14:15], 0xaf123456, null -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -ttmp[14:15], 0xaf123456, null ; encoding: [0x05,0x6a,0xfd,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -exec, -src_scc, -exec -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x7e,0xfa,0xf9,0xe1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -exec, -src_scc, -exec ; encoding: [0x05,0x6a,0xfd,0xd6,0x7e,0xfa,0xf9,0xe1] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, null, 0.5, vcc -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x7c,0xe0,0xa9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, null, 0.5, vcc ; encoding: [0x05,0x6a,0xfd,0xd6,0x7c,0xe0,0xa9,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -1, -1, 0xaf123456 -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -1, -1, 0xaf123456 ; encoding: [0x05,0x6a,0xfd,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, 0.5, null, -src_scc mul:2 -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0xf0,0xf8,0xf4,0x8b] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, 0.5, null, -src_scc mul:2 ; encoding: [0x05,0x6a,0xfd,0xd6,0xf0,0xf8,0xf4,0x8b] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -src_scc, -exec, 0.5 mul:4 -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0xfd,0xfc,0xc0,0x73] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -src_scc, -exec, 0.5 mul:4 ; encoding: [0x05,0x6a,0xfd,0xd6,0xfd,0xfc,0xc0,0x73] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[254:255], vcc_lo, 0xaf123456, -vcc, -1 clamp div:2 -// W32: encoding: [0xfe,0xea,0xfd,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[254:255], vcc_lo, 0xaf123456, -vcc, -1 clamp div:2 ; encoding: [0xfe,0xea,0xfd,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, v[1:2], v[2:3], v[3:4] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x01,0x05,0x0e,0x04] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, v[1:2], v[2:3], v[3:4] ; encoding: [0x05,0x6a,0xfd,0xd6,0x01,0x05,0x0e,0x04] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, v[254:255], v[254:255], s[6:7] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0xfe,0xfd,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, v[254:255], v[254:255], s[6:7] ; encoding: [0x05,0x6a,0xfd,0xd6,0xfe,0xfd,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, s[2:3], s[4:5], v[254:255] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x02,0x08,0xf8,0x07] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, s[2:3], s[4:5], v[254:255] ; encoding: [0x05,0x6a,0xfd,0xd6,0x02,0x08,0xf8,0x07] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -s[104:105], s[104:105], -s[104:105] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x68,0xd0,0xa0,0xa1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -s[104:105], s[104:105], -s[104:105] ; encoding: [0x05,0x6a,0xfd,0xd6,0x68,0xd0,0xa0,0xa1] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, vcc, -ttmp[14:15], -ttmp[14:15] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x6a,0xf4,0xe8,0xc1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, vcc, -ttmp[14:15], -ttmp[14:15] ; encoding: [0x05,0x6a,0xfd,0xd6,0x6a,0xf4,0xe8,0xc1] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -ttmp[14:15], 0xaf123456, null -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -ttmp[14:15], 0xaf123456, null ; encoding: [0x05,0x6a,0xfd,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -exec, -src_scc, -exec -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x7e,0xfa,0xf9,0xe1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -exec, -src_scc, -exec ; encoding: [0x05,0x6a,0xfd,0xd6,0x7e,0xfa,0xf9,0xe1] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, null, 0.5, vcc -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x7c,0xe0,0xa9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, null, 0.5, vcc ; encoding: [0x05,0x6a,0xfd,0xd6,0x7c,0xe0,0xa9,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -1, -1, 0xaf123456 -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -1, -1, 0xaf123456 ; encoding: [0x05,0x6a,0xfd,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, 0.5, null, -src_scc mul:2 -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0xf0,0xf8,0xf4,0x8b] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, 0.5, null, -src_scc mul:2 ; encoding: [0x05,0x6a,0xfd,0xd6,0xf0,0xf8,0xf4,0x8b] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -src_scc, -exec, 0.5 mul:4 -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0xfd,0xfc,0xc0,0x73] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -src_scc, -exec, 0.5 mul:4 ; encoding: [0x05,0x6a,0xfd,0xd6,0xfd,0xfc,0xc0,0x73] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[254:255], vcc, 0xaf123456, -vcc, -1 clamp div:2 -// W64: encoding: [0xfe,0xea,0xfd,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[254:255], vcc, 0xaf123456, -vcc, -1 clamp div:2 ; encoding: [0xfe,0xea,0xfd,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_dot2_bf16_bf16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x67,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_dot2_bf16_bf16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x67,0xd6,0x01,0x05,0x0e,0x00] v_dot2_bf16_bf16 v5, v255, v255, s105 -// GFX11: encoding: [0x05,0x00,0x67,0xd6,0xff,0xff,0xa7,0x01] +// GFX11: v_dot2_bf16_bf16 v5, v255, v255, s105 ; encoding: [0x05,0x00,0x67,0xd6,0xff,0xff,0xa7,0x01] v_dot2_bf16_bf16 v5, s1, s2, v3 -// GFX11: encoding: [0x05,0x00,0x67,0xd6,0x01,0x04,0x0c,0x04] +// GFX11: v_dot2_bf16_bf16 v5, s1, s2, v3 ; encoding: [0x05,0x00,0x67,0xd6,0x01,0x04,0x0c,0x04] v_dot2_bf16_bf16 v5, s105, s105, m0 -// GFX11: encoding: [0x05,0x00,0x67,0xd6,0x69,0xd2,0xf4,0x01] +// GFX11: v_dot2_bf16_bf16 v5, s105, s105, m0 ; encoding: [0x05,0x00,0x67,0xd6,0x69,0xd2,0xf4,0x01] v_dot2_bf16_bf16 v5, vcc_lo, ttmp15, v255 -// GFX11: encoding: [0x05,0x00,0x67,0xd6,0x6a,0xf6,0xfc,0x07] +// GFX11: v_dot2_bf16_bf16 v5, vcc_lo, ttmp15, v255 ; encoding: [0x05,0x00,0x67,0xd6,0x6a,0xf6,0xfc,0x07] v_dot2_bf16_bf16 v5, vcc_hi, 0xfe0b, vcc_hi -// GFX11: encoding: [0x05,0x00,0x67,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_dot2_bf16_bf16 v5, vcc_hi, 0xfe0b, vcc_hi ; encoding: [0x05,0x00,0x67,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] v_dot2_bf16_bf16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x67,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_dot2_bf16_bf16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x67,0xd6,0x7b,0xfa,0xed,0x01] v_dot2_bf16_bf16 v5, |m0|, -1, -vcc_lo -// GFX11: encoding: [0x05,0x01,0x67,0xd6,0x7d,0x82,0xa9,0x81] +// GFX11: v_dot2_bf16_bf16 v5, |m0|, -1, -vcc_lo ; encoding: [0x05,0x01,0x67,0xd6,0x7d,0x82,0xa9,0x81] v_dot2_bf16_bf16 v5, -|exec_lo|, null, -|0xfe0b| -// GFX11: encoding: [0x05,0x05,0x67,0xd6,0x7e,0xf8,0xfc,0xa3,0x0b,0xfe,0x00,0x00] +// GFX11: v_dot2_bf16_bf16 v5, -|exec_lo|, null, -|0xfe0b| ; encoding: [0x05,0x05,0x67,0xd6,0x7e,0xf8,0xfc,0xa3,0x0b,0xfe,0x00,0x00] v_dot2_bf16_bf16 v5, -|exec_hi|, -|exec_lo|, -|exec_lo| -// GFX11: encoding: [0x05,0x07,0x67,0xd6,0x7f,0xfc,0xf8,0xe1] +// GFX11: v_dot2_bf16_bf16 v5, -|exec_hi|, -|exec_lo|, -|exec_lo| ; encoding: [0x05,0x07,0x67,0xd6,0x7f,0xfc,0xf8,0xe1] v_dot2_bf16_bf16 v5, null, -exec_hi, |src_scc| -// GFX11: encoding: [0x05,0x04,0x67,0xd6,0x7c,0xfe,0xf4,0x43] +// GFX11: v_dot2_bf16_bf16 v5, null, -exec_hi, |src_scc| ; encoding: [0x05,0x04,0x67,0xd6,0x7c,0xfe,0xf4,0x43] v_dot2_bf16_bf16 v5, -1, -|m0|, -|exec_hi| op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x06,0x67,0xd6,0xc1,0xfa,0xfc,0xc1] +// GFX11: v_dot2_bf16_bf16 v5, -1, -|m0|, -|exec_hi| ; encoding: [0x05,0x06,0x67,0xd6,0xc1,0xfa,0xfc,0xc1] v_dot2_bf16_bf16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x22,0x67,0xd6,0xfd,0xd4,0x04,0x23] +// GFX11: v_dot2_bf16_bf16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x67,0xd6,0xfd,0xd4,0x04,0x23] v_dot2_bf16_bf16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] -// GFX11: encoding: [0xff,0x43,0x67,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX11: v_dot2_bf16_bf16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] ; encoding: [0xff,0x43,0x67,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_dot2_bf16_bf16 v2, v0, 0x20004000, v2 // GFX11: v_dot2_bf16_bf16 v2, v0, 0x20004000, v2 ; encoding: [0x02,0x00,0x67,0xd6,0x00,0xff,0x09,0x04,0x00,0x40,0x00,0x20] @@ -2168,4176 +2067,4164 @@ v_dot2_bf16_bf16 v2, 0x20004000, v0, v2 // GFX11: v_dot2_bf16_bf16 v2, 0x20004000, v0, v2 ; encoding: [0x02,0x00,0x67,0xd6,0xff,0x00,0x0a,0x04,0x00,0x40,0x00,0x20] v_dot2_f16_f16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_dot2_f16_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x66,0xd6,0x01,0x05,0x0e,0x00] v_dot2_f16_f16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_dot2_f16_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x66,0xd6,0xff,0x05,0xa4,0x01] v_dot2_f16_f16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_dot2_f16_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x66,0xd6,0x01,0xfe,0xff,0x01] v_dot2_f16_f16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_dot2_f16_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x66,0xd6,0x69,0xd2,0xf8,0x01] v_dot2_f16_f16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_dot2_f16_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x66,0xd6,0x6a,0xf6,0x0c,0x04] v_dot2_f16_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_dot2_f16_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x66,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_dot2_f16_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x66,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_dot2_f16_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x66,0xd6,0x7b,0xfa,0xed,0xe1] v_dot2_f16_f16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_dot2_f16_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x66,0xd6,0x7d,0xe0,0xf5,0x01] v_dot2_f16_f16 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x66,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_dot2_f16_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x66,0xd6,0x7e,0x82,0xad,0x01] v_dot2_f16_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x66,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_dot2_f16_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x66,0xd6,0x7f,0xf8,0xa8,0xa1] v_dot2_f16_f16 v5, null, exec_lo, -|0xfe0b| -// GFX11: encoding: [0x05,0x04,0x66,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX11: v_dot2_f16_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x66,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_dot2_f16_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x66,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_dot2_f16_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x66,0xd6,0xc1,0xfe,0xf4,0xc3] v_dot2_f16_f16 v5, 0.5, -m0, 0.5 op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX11: v_dot2_f16_f16 v5, 0.5, -m0, 0.5 ; encoding: [0x05,0x00,0x66,0xd6,0xf0,0xfa,0xc0,0x43] v_dot2_f16_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x22,0x66,0xd6,0xfd,0xd4,0x04,0x23] +// GFX11: v_dot2_f16_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x66,0xd6,0xfd,0xd4,0x04,0x23] v_dot2_f16_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] -// GFX11: encoding: [0xff,0x43,0x66,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX11: v_dot2_f16_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] ; encoding: [0xff,0x43,0x66,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_dot2_f16_f16 v2, v0, 0x20004000, v2 -// GFX11: v_dot2_f16_f16 v2, v0, 0x20004000, v2 ; encoding: [0x02,0x00,0x66,0xd6,0x00,0xff,0x09,0x04,0x00,0x40,0x00,0x20] +// GFX11: v_dot2_f16_f16 v2, v0, 0x20004000, v2 ; encoding: [0x02,0x00,0x66,0xd6,0x00,0xff,0x09,0x04,0x00,0x40,0x00,0x20] v_dot2_f16_f16 v2, 0x20004000, v0, v2 -// GFX11: v_dot2_f16_f16 v2, 0x20004000, v0, v2 ; encoding: [0x02,0x00,0x66,0xd6,0xff,0x00,0x0a,0x04,0x00,0x40,0x00,0x20] +// GFX11: v_dot2_f16_f16 v2, 0x20004000, v0, v2 ; encoding: [0x02,0x00,0x66,0xd6,0xff,0x00,0x0a,0x04,0x00,0x40,0x00,0x20] v_fma_dx9_zero_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_fma_dx9_zero_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x09,0xd6,0x01,0x05,0x0e,0x00] v_fma_dx9_zero_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x09,0xd6,0xff,0x05,0xa4,0x01] v_fma_dx9_zero_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x09,0xd6,0x01,0xfe,0xff,0x01] v_fma_dx9_zero_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x09,0xd6,0x69,0xd2,0xf8,0x01] v_fma_dx9_zero_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_fma_dx9_zero_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x09,0xd6,0x6a,0xf6,0x0c,0x04] v_fma_dx9_zero_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_dx9_zero_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x09,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_fma_dx9_zero_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x09,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_fma_dx9_zero_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x09,0xd6,0x7b,0xfa,0xed,0xe1] v_fma_dx9_zero_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x09,0xd6,0x7d,0xe0,0xf5,0x01] v_fma_dx9_zero_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x09,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x09,0xd6,0x7e,0x82,0xad,0x01] v_fma_dx9_zero_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x09,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_fma_dx9_zero_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x09,0xd6,0x7f,0xf8,0xa8,0xa1] v_fma_dx9_zero_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x09,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_dx9_zero_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x09,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_fma_dx9_zero_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x09,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_fma_dx9_zero_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x09,0xd6,0xc1,0xfe,0xf4,0xc3] v_fma_dx9_zero_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_fma_dx9_zero_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x09,0xd6,0xf0,0xfa,0xc0,0x4b] v_fma_dx9_zero_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x09,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_fma_dx9_zero_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x09,0xd6,0xfd,0xd4,0x04,0x33] v_fma_dx9_zero_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x09,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_dx9_zero_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x09,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_fma_f16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x48,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_fma_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x48,0xd6,0x01,0x05,0x0e,0x00] v_fma_f16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x48,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_fma_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x48,0xd6,0xff,0x05,0xa4,0x01] v_fma_f16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x48,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_fma_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x48,0xd6,0x01,0xfe,0xff,0x01] v_fma_f16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x48,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_fma_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x48,0xd6,0x69,0xd2,0xf8,0x01] v_fma_f16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x48,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_fma_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x48,0xd6,0x6a,0xf6,0x0c,0x04] v_fma_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x48,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_fma_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x48,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_fma_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x48,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_fma_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x48,0xd6,0x7b,0xfa,0xed,0xe1] v_fma_f16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x48,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_fma_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x48,0xd6,0x7d,0xe0,0xf5,0x01] v_fma_f16 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x48,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_fma_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x48,0xd6,0x7e,0x82,0xad,0x01] v_fma_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x7d,0x48,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_fma_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x48,0xd6,0x7f,0xf8,0xa8,0xa1] v_fma_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x04,0x48,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX11: v_fma_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x48,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_fma_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x0e,0x48,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_fma_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x48,0xd6,0xc1,0xfe,0xf4,0xc3] v_fma_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x48,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX11: v_fma_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x48,0xd6,0xf0,0xfa,0xc0,0x43] v_fma_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x22,0x48,0xd6,0xfd,0xd4,0x04,0x23] +// GFX11: v_fma_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x48,0xd6,0xfd,0xd4,0x04,0x23] v_fma_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX11: encoding: [0xff,0xc3,0x48,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX11: v_fma_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x48,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_fma_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp div:2 -// GFX11: encoding: [0xff,0xc3,0x48,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] +// GFX11: v_fma_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp div:2 ; encoding: [0xff,0xc3,0x48,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] v_fma_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x13,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_fma_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x13,0xd6,0x01,0x05,0x0e,0x00] v_fma_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x13,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_fma_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x13,0xd6,0xff,0x05,0xa4,0x01] v_fma_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x13,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_fma_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x13,0xd6,0x01,0xfe,0xff,0x01] v_fma_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x13,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_fma_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x13,0xd6,0x69,0xd2,0xf8,0x01] v_fma_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x13,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_fma_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x13,0xd6,0x6a,0xf6,0x0c,0x04] v_fma_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x13,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x13,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_fma_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x13,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_fma_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x13,0xd6,0x7b,0xfa,0xed,0xe1] v_fma_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x13,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_fma_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x13,0xd6,0x7d,0xe0,0xf5,0x01] v_fma_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x13,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_fma_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x13,0xd6,0x7e,0x82,0xad,0x01] v_fma_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x13,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_fma_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x13,0xd6,0x7f,0xf8,0xa8,0xa1] v_fma_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x13,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x13,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_fma_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x13,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_fma_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x13,0xd6,0xc1,0xfe,0xf4,0xc3] v_fma_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x13,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_fma_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x13,0xd6,0xf0,0xfa,0xc0,0x4b] v_fma_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x13,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_fma_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x13,0xd6,0xfd,0xd4,0x04,0x33] v_fma_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x13,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x13,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_fma_f64 v[5:6], v[1:2], v[2:3], v[3:4] -// GFX11: encoding: [0x05,0x00,0x14,0xd6,0x01,0x05,0x0e,0x04] +// GFX11: v_fma_f64 v[5:6], v[1:2], v[2:3], v[3:4] ; encoding: [0x05,0x00,0x14,0xd6,0x01,0x05,0x0e,0x04] v_fma_f64 v[5:6], v[254:255], v[254:255], s[6:7] -// GFX11: encoding: [0x05,0x00,0x14,0xd6,0xfe,0xfd,0x1b,0x00] +// GFX11: v_fma_f64 v[5:6], v[254:255], v[254:255], s[6:7] ; encoding: [0x05,0x00,0x14,0xd6,0xfe,0xfd,0x1b,0x00] v_fma_f64 v[5:6], s[2:3], s[4:5], v[254:255] -// GFX11: encoding: [0x05,0x00,0x14,0xd6,0x02,0x08,0xf8,0x07] +// GFX11: v_fma_f64 v[5:6], s[2:3], s[4:5], v[254:255] ; encoding: [0x05,0x00,0x14,0xd6,0x02,0x08,0xf8,0x07] v_fma_f64 v[5:6], -|s[104:105]|, s[104:105], -|s[104:105]| -// GFX11: encoding: [0x05,0x05,0x14,0xd6,0x68,0xd0,0xa0,0xa1] +// GFX11: v_fma_f64 v[5:6], -|s[104:105]|, s[104:105], -|s[104:105]| ; encoding: [0x05,0x05,0x14,0xd6,0x68,0xd0,0xa0,0xa1] v_fma_f64 v[5:6], vcc, -|ttmp[14:15]|, -|ttmp[14:15]| -// GFX11: encoding: [0x05,0x06,0x14,0xd6,0x6a,0xf4,0xe8,0xc1] +// GFX11: v_fma_f64 v[5:6], vcc, -|ttmp[14:15]|, -|ttmp[14:15]| ; encoding: [0x05,0x06,0x14,0xd6,0x6a,0xf4,0xe8,0xc1] v_fma_f64 v[5:6], -|ttmp[14:15]|, 0xaf123456, null -// GFX11: encoding: [0x05,0x01,0x14,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_f64 v[5:6], -|ttmp[14:15]|, 0xaf123456, null ; encoding: [0x05,0x01,0x14,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] v_fma_f64 v[5:6], -|exec|, -|src_scc|, -|exec| -// GFX11: encoding: [0x05,0x07,0x14,0xd6,0x7e,0xfa,0xf9,0xe1] +// GFX11: v_fma_f64 v[5:6], -|exec|, -|src_scc|, -|exec| ; encoding: [0x05,0x07,0x14,0xd6,0x7e,0xfa,0xf9,0xe1] v_fma_f64 v[5:6], null, 0.5, vcc -// GFX11: encoding: [0x05,0x00,0x14,0xd6,0x7c,0xe0,0xa9,0x01] +// GFX11: v_fma_f64 v[5:6], null, 0.5, vcc ; encoding: [0x05,0x00,0x14,0xd6,0x7c,0xe0,0xa9,0x01] v_fma_f64 v[5:6], -1, -1, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x14,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_f64 v[5:6], -1, -1, 0xaf123456 ; encoding: [0x05,0x00,0x14,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] v_fma_f64 v[5:6], 0.5, null, -|src_scc| mul:2 -// GFX11: encoding: [0x05,0x04,0x14,0xd6,0xf0,0xf8,0xf4,0x8b] +// GFX11: v_fma_f64 v[5:6], 0.5, null, -|src_scc| mul:2 ; encoding: [0x05,0x04,0x14,0xd6,0xf0,0xf8,0xf4,0x8b] v_fma_f64 v[5:6], -|src_scc|, -|exec|, 0.5 mul:4 -// GFX11: encoding: [0x05,0x03,0x14,0xd6,0xfd,0xfc,0xc0,0x73] +// GFX11: v_fma_f64 v[5:6], -|src_scc|, -|exec|, 0.5 mul:4 ; encoding: [0x05,0x03,0x14,0xd6,0xfd,0xfc,0xc0,0x73] v_fma_f64 v[254:255], 0xaf123456, -|vcc|, -1 clamp div:2 -// GFX11: encoding: [0xfe,0x82,0x14,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_f64 v[254:255], 0xaf123456, -|vcc|, -1 clamp div:2 ; encoding: [0xfe,0x82,0x14,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] v_fma_legacy_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_fma_dx9_zero_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x09,0xd6,0x01,0x05,0x0e,0x00] v_fma_legacy_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x09,0xd6,0xff,0x05,0xa4,0x01] v_fma_legacy_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x09,0xd6,0x01,0xfe,0xff,0x01] v_fma_legacy_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x09,0xd6,0x69,0xd2,0xf8,0x01] v_fma_legacy_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_fma_dx9_zero_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x09,0xd6,0x6a,0xf6,0x0c,0x04] v_fma_legacy_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_dx9_zero_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x09,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_fma_legacy_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x09,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_fma_dx9_zero_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x09,0xd6,0x7b,0xfa,0xed,0xe1] v_fma_legacy_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x09,0xd6,0x7d,0xe0,0xf5,0x01] v_fma_legacy_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x09,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_fma_dx9_zero_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x09,0xd6,0x7e,0x82,0xad,0x01] v_fma_legacy_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x09,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_fma_dx9_zero_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x09,0xd6,0x7f,0xf8,0xa8,0xa1] v_fma_legacy_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x09,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_dx9_zero_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x09,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_fma_legacy_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x09,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_fma_dx9_zero_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x09,0xd6,0xc1,0xfe,0xf4,0xc3] v_fma_legacy_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x09,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_fma_dx9_zero_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x09,0xd6,0xf0,0xfa,0xc0,0x4b] v_fma_legacy_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x09,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_fma_dx9_zero_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x09,0xd6,0xfd,0xd4,0x04,0x33] v_fma_legacy_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x09,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_fma_dx9_zero_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x09,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_ldexp_f32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_ldexp_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x1c,0xd7,0x01,0x05,0x02,0x00] v_ldexp_f32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_ldexp_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x1c,0xd7,0xff,0xff,0x03,0x00] v_ldexp_f32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_ldexp_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x1c,0xd7,0x01,0x04,0x00,0x00] v_ldexp_f32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_ldexp_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x1c,0xd7,0x69,0xd2,0x00,0x00] v_ldexp_f32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_ldexp_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1c,0xd7,0x6a,0xf6,0x00,0x00] v_ldexp_f32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_ldexp_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1c,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_ldexp_f32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_ldexp_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1c,0xd7,0x7b,0xfa,0x01,0x00] v_ldexp_f32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_ldexp_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1c,0xd7,0x7d,0xe0,0x01,0x00] v_ldexp_f32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_ldexp_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1c,0xd7,0x7e,0x82,0x01,0x00] v_ldexp_f32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_ldexp_f32 v5, exec_hi, null ; encoding: [0x05,0x00,0x1c,0xd7,0x7f,0xf8,0x00,0x00] v_ldexp_f32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_ldexp_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x1c,0xd7,0x7c,0xfc,0x00,0x00] v_ldexp_f32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_ldexp_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1c,0xd7,0xc1,0xfe,0x00,0x00] v_ldexp_f32 v5, 0.5, m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0xf0,0xfa,0x00,0x08] +// GFX11: v_ldexp_f32 v5, 0.5, m0 mul:2 ; encoding: [0x05,0x00,0x1c,0xd7,0xf0,0xfa,0x00,0x08] v_ldexp_f32 v5, src_scc, vcc_lo mul:4 -// GFX11: encoding: [0x05,0x00,0x1c,0xd7,0xfd,0xd4,0x00,0x10] +// GFX11: v_ldexp_f32 v5, src_scc, vcc_lo mul:4 ; encoding: [0x05,0x00,0x1c,0xd7,0xfd,0xd4,0x00,0x10] v_ldexp_f32 v255, -|0xaf123456|, vcc_hi clamp div:2 -// GFX11: encoding: [0xff,0x81,0x1c,0xd7,0xff,0xd6,0x00,0x38,0x56,0x34,0x12,0xaf] +// GFX11: v_ldexp_f32 v255, -|0xaf123456|, vcc_hi clamp div:2 ; encoding: [0xff,0x81,0x1c,0xd7,0xff,0xd6,0x00,0x38,0x56,0x34,0x12,0xaf] v_ldexp_f64 v[5:6], v[1:2], v2 -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_ldexp_f64 v[5:6], v[1:2], v2 ; encoding: [0x05,0x00,0x2b,0xd7,0x01,0x05,0x02,0x00] v_ldexp_f64 v[5:6], v[1:2], v255 -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x01,0xff,0x03,0x00] +// GFX11: v_ldexp_f64 v[5:6], v[1:2], v255 ; encoding: [0x05,0x00,0x2b,0xd7,0x01,0xff,0x03,0x00] v_ldexp_f64 v[5:6], v[1:2], s2 -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x01,0x05,0x00,0x00] +// GFX11: v_ldexp_f64 v[5:6], v[1:2], s2 ; encoding: [0x05,0x00,0x2b,0xd7,0x01,0x05,0x00,0x00] v_ldexp_f64 v[5:6], v[1:2], s105 -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x01,0xd3,0x00,0x00] +// GFX11: v_ldexp_f64 v[5:6], v[1:2], s105 ; encoding: [0x05,0x00,0x2b,0xd7,0x01,0xd3,0x00,0x00] v_ldexp_f64 v[5:6], v[254:255], ttmp15 -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0xfe,0xf7,0x00,0x00] +// GFX11: v_ldexp_f64 v[5:6], v[254:255], ttmp15 ; encoding: [0x05,0x00,0x2b,0xd7,0xfe,0xf7,0x00,0x00] v_ldexp_f64 v[5:6], s[2:3], vcc_hi -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x02,0xd6,0x00,0x00] +// GFX11: v_ldexp_f64 v[5:6], s[2:3], vcc_hi ; encoding: [0x05,0x00,0x2b,0xd7,0x02,0xd6,0x00,0x00] v_ldexp_f64 v[5:6], s[104:105], vcc_lo -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x68,0xd4,0x00,0x00] +// GFX11: v_ldexp_f64 v[5:6], s[104:105], vcc_lo ; encoding: [0x05,0x00,0x2b,0xd7,0x68,0xd4,0x00,0x00] v_ldexp_f64 v[5:6], vcc, m0 -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x6a,0xfa,0x00,0x00] +// GFX11: v_ldexp_f64 v[5:6], vcc, m0 ; encoding: [0x05,0x00,0x2b,0xd7,0x6a,0xfa,0x00,0x00] v_ldexp_f64 v[5:6], ttmp[14:15], exec_hi -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x7a,0xfe,0x00,0x00] +// GFX11: v_ldexp_f64 v[5:6], ttmp[14:15], exec_hi ; encoding: [0x05,0x00,0x2b,0xd7,0x7a,0xfe,0x00,0x00] v_ldexp_f64 v[5:6], exec, exec_lo -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x7e,0xfc,0x00,0x00] +// GFX11: v_ldexp_f64 v[5:6], exec, exec_lo ; encoding: [0x05,0x00,0x2b,0xd7,0x7e,0xfc,0x00,0x00] v_ldexp_f64 v[5:6], null, null -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0x7c,0xf8,0x00,0x00] +// GFX11: v_ldexp_f64 v[5:6], null, null ; encoding: [0x05,0x00,0x2b,0xd7,0x7c,0xf8,0x00,0x00] v_ldexp_f64 v[5:6], -1, -1 -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0xc1,0x82,0x01,0x00] +// GFX11: v_ldexp_f64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x2b,0xd7,0xc1,0x82,0x01,0x00] v_ldexp_f64 v[5:6], 0.5, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x2b,0xd7,0xf0,0xe0,0x01,0x08] +// GFX11: v_ldexp_f64 v[5:6], 0.5, 0.5 mul:2 ; encoding: [0x05,0x00,0x2b,0xd7,0xf0,0xe0,0x01,0x08] v_ldexp_f64 v[5:6], -|src_scc|, src_scc mul:4 -// GFX11: encoding: [0x05,0x01,0x2b,0xd7,0xfd,0xfa,0x01,0x30] +// GFX11: v_ldexp_f64 v[5:6], -|src_scc|, src_scc mul:4 ; encoding: [0x05,0x01,0x2b,0xd7,0xfd,0xfa,0x01,0x30] v_ldexp_f64 v[254:255], 0xaf123456, 0xaf123456 clamp div:2 -// GFX11: encoding: [0xfe,0x80,0x2b,0xd7,0xff,0xfe,0x01,0x18,0x56,0x34,0x12,0xaf] +// GFX11: v_ldexp_f64 v[254:255], 0xaf123456, 0xaf123456 clamp div:2 ; encoding: [0xfe,0x80,0x2b,0xd7,0xff,0xfe,0x01,0x18,0x56,0x34,0x12,0xaf] v_lerp_u8 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_lerp_u8 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x15,0xd6,0x01,0x05,0x0e,0x00] v_lerp_u8 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_lerp_u8 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x15,0xd6,0xff,0x05,0xa4,0x01] v_lerp_u8 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_lerp_u8 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x15,0xd6,0x01,0xfe,0xff,0x01] v_lerp_u8 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_lerp_u8 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x15,0xd6,0x69,0xd2,0xf8,0x01] v_lerp_u8 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_lerp_u8 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x15,0xd6,0x6a,0xf6,0x0c,0x04] v_lerp_u8 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_lerp_u8 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x15,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_lerp_u8 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_lerp_u8 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x15,0xd6,0x7b,0xfa,0xed,0x01] v_lerp_u8 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_lerp_u8 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x15,0xd6,0x7d,0xe0,0xf5,0x01] v_lerp_u8 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_lerp_u8 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x15,0xd6,0x7e,0x82,0xad,0x01] v_lerp_u8 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_lerp_u8 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x15,0xd6,0x7f,0xf8,0xa8,0x01] v_lerp_u8 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_lerp_u8 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x15,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_lerp_u8 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_lerp_u8 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x15,0xd6,0xc1,0xfe,0xf4,0x03] v_lerp_u8 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_lerp_u8 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x15,0xd6,0xf0,0xfa,0xc0,0x03] v_lerp_u8 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x15,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_lerp_u8 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x15,0xd6,0xfd,0xd4,0x04,0x03] v_lerp_u8 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x15,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_lerp_u8 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x15,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_lshl_add_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_lshl_add_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x46,0xd6,0x01,0x05,0x0e,0x00] v_lshl_add_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_lshl_add_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x46,0xd6,0xff,0x05,0xa4,0x01] v_lshl_add_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_lshl_add_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x46,0xd6,0x01,0xfe,0xff,0x01] v_lshl_add_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_lshl_add_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x46,0xd6,0x69,0xd2,0xf8,0x01] v_lshl_add_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_lshl_add_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x46,0xd6,0x6a,0xf6,0x0c,0x04] v_lshl_add_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_lshl_add_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x46,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_lshl_add_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_lshl_add_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x46,0xd6,0x7b,0xfa,0xed,0x01] v_lshl_add_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_lshl_add_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x46,0xd6,0x7d,0xe0,0xf5,0x01] v_lshl_add_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_lshl_add_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x46,0xd6,0x7e,0x82,0xad,0x01] v_lshl_add_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_lshl_add_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x46,0xd6,0x7f,0xf8,0xa8,0x01] v_lshl_add_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_lshl_add_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x46,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_lshl_add_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_lshl_add_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x46,0xd6,0xc1,0xfe,0xf4,0x03] v_lshl_add_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_lshl_add_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x46,0xd6,0xf0,0xfa,0xc0,0x03] v_lshl_add_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x46,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_lshl_add_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x46,0xd6,0xfd,0xd4,0x04,0x03] v_lshl_add_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x46,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_lshl_add_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x46,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_lshl_or_b32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_lshl_or_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x56,0xd6,0x01,0x05,0x0e,0x00] v_lshl_or_b32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_lshl_or_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x56,0xd6,0xff,0x05,0xa4,0x01] v_lshl_or_b32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_lshl_or_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x56,0xd6,0x01,0xfe,0xff,0x01] v_lshl_or_b32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_lshl_or_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x56,0xd6,0x69,0xd2,0xf8,0x01] v_lshl_or_b32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_lshl_or_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x56,0xd6,0x6a,0xf6,0x0c,0x04] v_lshl_or_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_lshl_or_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x56,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_lshl_or_b32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_lshl_or_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x56,0xd6,0x7b,0xfa,0xed,0x01] v_lshl_or_b32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_lshl_or_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x56,0xd6,0x7d,0xe0,0xf5,0x01] v_lshl_or_b32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_lshl_or_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x56,0xd6,0x7e,0x82,0xad,0x01] v_lshl_or_b32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_lshl_or_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x56,0xd6,0x7f,0xf8,0xa8,0x01] v_lshl_or_b32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_lshl_or_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x56,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_lshl_or_b32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_lshl_or_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x56,0xd6,0xc1,0xfe,0xf4,0x03] v_lshl_or_b32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_lshl_or_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x56,0xd6,0xf0,0xfa,0xc0,0x03] v_lshl_or_b32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x56,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_lshl_or_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x56,0xd6,0xfd,0xd4,0x04,0x03] v_lshl_or_b32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x56,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_lshl_or_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x56,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_lshlrev_b16 v5.l, v1.l, v2.l -// GFX11: [0x05,0x00,0x38,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_lshlrev_b16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x38,0xd7,0x01,0x05,0x02,0x00] v_lshlrev_b16 v5.l, v255.l, v255.l -// GFX11: [0x05,0x00,0x38,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_lshlrev_b16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x38,0xd7,0xff,0xff,0x03,0x00] v_lshlrev_b16 v5.l, s1, s2 -// GFX11: [0x05,0x00,0x38,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_lshlrev_b16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x38,0xd7,0x01,0x04,0x00,0x00] v_lshlrev_b16 v5.l, s105, s105 -// GFX11: [0x05,0x00,0x38,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_lshlrev_b16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x38,0xd7,0x69,0xd2,0x00,0x00] v_lshlrev_b16 v5.l, vcc_lo, ttmp15 -// GFX11: [0x05,0x00,0x38,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_lshlrev_b16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x38,0xd7,0x6a,0xf6,0x00,0x00] v_lshlrev_b16 v5.l, vcc_hi, 0xfe0b -// GFX11: [0x05,0x00,0x38,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_lshlrev_b16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x38,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_lshlrev_b16 v5.l, ttmp15, src_scc -// GFX11: [0x05,0x00,0x38,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_lshlrev_b16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x38,0xd7,0x7b,0xfa,0x01,0x00] v_lshlrev_b16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x38,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_lshlrev_b16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x38,0xd7,0x7d,0xe0,0x01,0x00] v_lshlrev_b16 v5.l, exec_lo, -1 -// GFX11: [0x05,0x00,0x38,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_lshlrev_b16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x38,0xd7,0x7e,0x82,0x01,0x00] v_lshlrev_b16 v5.l, exec_hi, null -// GFX11: [0x05,0x00,0x38,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_lshlrev_b16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x38,0xd7,0x7f,0xf8,0x00,0x00] v_lshlrev_b16 v5.l, null, exec_lo -// GFX11: [0x05,0x00,0x38,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_lshlrev_b16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x38,0xd7,0x7c,0xfc,0x00,0x00] v_lshlrev_b16 v5.l, -1, exec_hi -// GFX11: [0x05,0x00,0x38,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_lshlrev_b16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x38,0xd7,0xc1,0xfe,0x00,0x00] v_lshlrev_b16 v5.l, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x38,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_lshlrev_b16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x38,0xd7,0xf0,0xfa,0x00,0x00] v_lshlrev_b16 v5.l, src_scc, vcc_lo -// GFX11: [0x05,0x00,0x38,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_lshlrev_b16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x38,0xd7,0xfd,0xd4,0x00,0x00] v_lshlrev_b16 v255.l, 0xfe0b, vcc_hi -// GFX11: [0xff,0x00,0x38,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_lshlrev_b16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x38,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_lshlrev_b16 v5.l, v1.h, v2.l -// GFX11: [0x05,0x08,0x38,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_lshlrev_b16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x38,0xd7,0x01,0x05,0x02,0x00] v_lshlrev_b16 v5.l, v255.l, v255.h -// GFX11: [0x05,0x10,0x38,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_lshlrev_b16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x38,0xd7,0xff,0xff,0x03,0x00] v_lshlrev_b16 v255.h, 0xfe0b, vcc_hi -// GFX11: [0xff,0x40,0x38,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_lshlrev_b16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x38,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_lshlrev_b64 v[5:6], v1, vcc -// GFX11: encoding: [0x05,0x00,0x3c,0xd7,0x01,0xd5,0x00,0x00] +// GFX11: v_lshlrev_b64 v[5:6], v1, vcc ; encoding: [0x05,0x00,0x3c,0xd7,0x01,0xd5,0x00,0x00] v_lshlrev_b64 v[5:6], v255, exec -// GFX11: encoding: [0x05,0x00,0x3c,0xd7,0xff,0xfd,0x00,0x00] +// GFX11: v_lshlrev_b64 v[5:6], v255, exec ; encoding: [0x05,0x00,0x3c,0xd7,0xff,0xfd,0x00,0x00] v_lshlrev_b64 v[5:6], exec_lo, v[2:3] -// GFX11: encoding: [0x05,0x00,0x3c,0xd7,0x7e,0x04,0x02,0x00] +// GFX11: v_lshlrev_b64 v[5:6], exec_lo, v[2:3] ; encoding: [0x05,0x00,0x3c,0xd7,0x7e,0x04,0x02,0x00] v_lshlrev_b64 v[5:6], exec_hi, v[254:255] -// GFX11: encoding: [0x05,0x00,0x3c,0xd7,0x7f,0xfc,0x03,0x00] +// GFX11: v_lshlrev_b64 v[5:6], exec_hi, v[254:255] ; encoding: [0x05,0x00,0x3c,0xd7,0x7f,0xfc,0x03,0x00] v_lshlrev_b64 v[5:6], null, null -// GFX11: encoding: [0x05,0x00,0x3c,0xd7,0x7c,0xf8,0x00,0x00] +// GFX11: v_lshlrev_b64 v[5:6], null, null ; encoding: [0x05,0x00,0x3c,0xd7,0x7c,0xf8,0x00,0x00] v_lshlrev_b64 v[5:6], -1, -1 -// GFX11: encoding: [0x05,0x00,0x3c,0xd7,0xc1,0x82,0x01,0x00] +// GFX11: v_lshlrev_b64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x3c,0xd7,0xc1,0x82,0x01,0x00] v_lshlrev_b64 v[5:6], 0.5, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x3c,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_lshlrev_b64 v[5:6], 0.5, 0xaf123456 ; encoding: [0x05,0x00,0x3c,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshlrev_b64 v[5:6], src_scc, src_scc -// GFX11: encoding: [0x05,0x00,0x3c,0xd7,0xfd,0xfa,0x01,0x00] +// GFX11: v_lshlrev_b64 v[5:6], src_scc, src_scc ; encoding: [0x05,0x00,0x3c,0xd7,0xfd,0xfa,0x01,0x00] v_lshlrev_b64 v[254:255], 0xaf123456, 0.5 -// GFX11: encoding: [0xfe,0x00,0x3c,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_lshlrev_b64 v[254:255], 0xaf123456, 0.5 ; encoding: [0xfe,0x00,0x3c,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshrrev_b16 v5.l, v1.l, v2.l -// GFX11: [0x05,0x00,0x39,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_lshrrev_b16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x39,0xd7,0x01,0x05,0x02,0x00] v_lshrrev_b16 v5.l, v255.l, v255.l -// GFX11: [0x05,0x00,0x39,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_lshrrev_b16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x39,0xd7,0xff,0xff,0x03,0x00] v_lshrrev_b16 v5.l, s1, s2 -// GFX11: [0x05,0x00,0x39,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_lshrrev_b16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x39,0xd7,0x01,0x04,0x00,0x00] v_lshrrev_b16 v5.l, s105, s105 -// GFX11: [0x05,0x00,0x39,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_lshrrev_b16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x39,0xd7,0x69,0xd2,0x00,0x00] v_lshrrev_b16 v5.l, vcc_lo, ttmp15 -// GFX11: [0x05,0x00,0x39,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_lshrrev_b16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x39,0xd7,0x6a,0xf6,0x00,0x00] v_lshrrev_b16 v5.l, vcc_hi, 0xfe0b -// GFX11: [0x05,0x00,0x39,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_lshrrev_b16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x39,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_lshrrev_b16 v5.l, ttmp15, src_scc -// GFX11: [0x05,0x00,0x39,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_lshrrev_b16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x39,0xd7,0x7b,0xfa,0x01,0x00] v_lshrrev_b16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x39,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_lshrrev_b16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x39,0xd7,0x7d,0xe0,0x01,0x00] v_lshrrev_b16 v5.l, exec_lo, -1 -// GFX11: [0x05,0x00,0x39,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_lshrrev_b16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x39,0xd7,0x7e,0x82,0x01,0x00] v_lshrrev_b16 v5.l, exec_hi, null -// GFX11: [0x05,0x00,0x39,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_lshrrev_b16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x39,0xd7,0x7f,0xf8,0x00,0x00] v_lshrrev_b16 v5.l, null, exec_lo -// GFX11: [0x05,0x00,0x39,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_lshrrev_b16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x39,0xd7,0x7c,0xfc,0x00,0x00] v_lshrrev_b16 v5.l, -1, exec_hi -// GFX11: [0x05,0x00,0x39,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_lshrrev_b16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x39,0xd7,0xc1,0xfe,0x00,0x00] v_lshrrev_b16 v5.l, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x39,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_lshrrev_b16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x39,0xd7,0xf0,0xfa,0x00,0x00] v_lshrrev_b16 v5.l, src_scc, vcc_lo -// GFX11: [0x05,0x00,0x39,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_lshrrev_b16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x39,0xd7,0xfd,0xd4,0x00,0x00] v_lshrrev_b16 v255.l, 0xfe0b, vcc_hi -// GFX11: [0xff,0x00,0x39,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_lshrrev_b16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x39,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_lshrrev_b16 v5.l, v1.h, v2.l -// GFX11: [0x05,0x08,0x39,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_lshrrev_b16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x39,0xd7,0x01,0x05,0x02,0x00] v_lshrrev_b16 v5.l, v255.l, v255.h -// GFX11: [0x05,0x10,0x39,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_lshrrev_b16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x39,0xd7,0xff,0xff,0x03,0x00] v_lshrrev_b16 v255.h, 0xfe0b, vcc_hi -// GFX11: [0xff,0x40,0x39,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_lshrrev_b16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x39,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_lshrrev_b64 v[5:6], v1, vcc -// GFX11: encoding: [0x05,0x00,0x3d,0xd7,0x01,0xd5,0x00,0x00] +// GFX11: v_lshrrev_b64 v[5:6], v1, vcc ; encoding: [0x05,0x00,0x3d,0xd7,0x01,0xd5,0x00,0x00] v_lshrrev_b64 v[5:6], v255, exec -// GFX11: encoding: [0x05,0x00,0x3d,0xd7,0xff,0xfd,0x00,0x00] +// GFX11: v_lshrrev_b64 v[5:6], v255, exec ; encoding: [0x05,0x00,0x3d,0xd7,0xff,0xfd,0x00,0x00] v_lshrrev_b64 v[5:6], exec_lo, v[2:3] -// GFX11: encoding: [0x05,0x00,0x3d,0xd7,0x7e,0x04,0x02,0x00] +// GFX11: v_lshrrev_b64 v[5:6], exec_lo, v[2:3] ; encoding: [0x05,0x00,0x3d,0xd7,0x7e,0x04,0x02,0x00] v_lshrrev_b64 v[5:6], exec_hi, v[254:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd7,0x7f,0xfc,0x03,0x00] +// GFX11: v_lshrrev_b64 v[5:6], exec_hi, v[254:255] ; encoding: [0x05,0x00,0x3d,0xd7,0x7f,0xfc,0x03,0x00] v_lshrrev_b64 v[5:6], null, null -// GFX11: encoding: [0x05,0x00,0x3d,0xd7,0x7c,0xf8,0x00,0x00] +// GFX11: v_lshrrev_b64 v[5:6], null, null ; encoding: [0x05,0x00,0x3d,0xd7,0x7c,0xf8,0x00,0x00] v_lshrrev_b64 v[5:6], -1, -1 -// GFX11: encoding: [0x05,0x00,0x3d,0xd7,0xc1,0x82,0x01,0x00] +// GFX11: v_lshrrev_b64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x3d,0xd7,0xc1,0x82,0x01,0x00] v_lshrrev_b64 v[5:6], 0.5, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x3d,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_lshrrev_b64 v[5:6], 0.5, 0xaf123456 ; encoding: [0x05,0x00,0x3d,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshrrev_b64 v[5:6], src_scc, src_scc -// GFX11: encoding: [0x05,0x00,0x3d,0xd7,0xfd,0xfa,0x01,0x00] +// GFX11: v_lshrrev_b64 v[5:6], src_scc, src_scc ; encoding: [0x05,0x00,0x3d,0xd7,0xfd,0xfa,0x01,0x00] v_lshrrev_b64 v[254:255], 0xaf123456, 0.5 -// GFX11: encoding: [0xfe,0x00,0x3d,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_lshrrev_b64 v[254:255], 0xaf123456, 0.5 ; encoding: [0xfe,0x00,0x3d,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] v_mad_i16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_mad_i16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x53,0xd6,0x01,0x05,0x0e,0x00] v_mad_i16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_mad_i16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x53,0xd6,0xff,0x05,0xa4,0x01] v_mad_i16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_mad_i16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x53,0xd6,0x01,0xfe,0xff,0x01] v_mad_i16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_mad_i16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x53,0xd6,0x69,0xd2,0xf8,0x01] v_mad_i16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_mad_i16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x53,0xd6,0x6a,0xf6,0x0c,0x04] v_mad_i16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_i16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x53,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_mad_i16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_mad_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x53,0xd6,0x7b,0xfa,0xed,0x01] v_mad_i16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_mad_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x53,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_i16 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_mad_i16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x53,0xd6,0x7e,0x82,0xad,0x01] v_mad_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x78,0x53,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_mad_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x53,0xd6,0x7f,0xf8,0xa8,0x01] v_mad_i16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x53,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_i16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x53,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_mad_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x53,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_mad_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x53,0xd6,0xc1,0xfe,0xf4,0x03] v_mad_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x53,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_mad_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x53,0xd6,0xf0,0xfa,0xc0,0x03] v_mad_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x20,0x53,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_mad_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x53,0xd6,0xfd,0xd4,0x04,0x03] v_mad_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] clamp -// GFX11: encoding: [0xff,0xc0,0x53,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc0,0x53,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_mad_i32_i16 v5, v1, v2, v3 -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x01,0x05,0x0e,0x04] +// GFX11: v_mad_i32_i16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x5a,0xd6,0x01,0x05,0x0e,0x04] v_mad_i32_i16 v5, v255, v255, s3 -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0xff,0xff,0x0f,0x00] +// GFX11: v_mad_i32_i16 v5, v255, v255, s3 ; encoding: [0x05,0x00,0x5a,0xd6,0xff,0xff,0x0f,0x00] v_mad_i32_i16 v5, s1, s2, v255 -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x01,0x04,0xfc,0x07] +// GFX11: v_mad_i32_i16 v5, s1, s2, v255 ; encoding: [0x05,0x00,0x5a,0xd6,0x01,0x04,0xfc,0x07] v_mad_i32_i16 v5, s105, s105, s105 -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x69,0xd2,0xa4,0x01] +// GFX11: v_mad_i32_i16 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x5a,0xd6,0x69,0xd2,0xa4,0x01] v_mad_i32_i16 v5, vcc_lo, ttmp15, vcc_lo -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x6a,0xf6,0xa8,0x01] +// GFX11: v_mad_i32_i16 v5, vcc_lo, ttmp15, vcc_lo ; encoding: [0x05,0x00,0x5a,0xd6,0x6a,0xf6,0xa8,0x01] v_mad_i32_i16 v5, vcc_hi, 0xfe0b, vcc_hi -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_i32_i16 v5, vcc_hi, 0xfe0b, vcc_hi ; encoding: [0x05,0x00,0x5a,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] v_mad_i32_i16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_mad_i32_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x5a,0xd6,0x7b,0xfa,0xed,0x01] v_mad_i32_i16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_mad_i32_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x5a,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_i32_i16 v5, exec_lo, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x7e,0x82,0xfd,0x01] +// GFX11: v_mad_i32_i16 v5, exec_lo, -1, exec_hi ; encoding: [0x05,0x00,0x5a,0xd6,0x7e,0x82,0xfd,0x01] v_mad_i32_i16 v5, exec_hi, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x7f,0xf8,0xf8,0x01] +// GFX11: v_mad_i32_i16 v5, exec_hi, null, exec_lo ; encoding: [0x05,0x00,0x5a,0xd6,0x7f,0xf8,0xf8,0x01] v_mad_i32_i16 v5, null, exec_lo, null -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0x7c,0xfc,0xf0,0x01] +// GFX11: v_mad_i32_i16 v5, null, exec_lo, null ; encoding: [0x05,0x00,0x5a,0xd6,0x7c,0xfc,0xf0,0x01] v_mad_i32_i16 v5, -1, exec_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0xc1,0xfe,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_i32_i16 v5, -1, exec_hi, 0xaf123456 ; encoding: [0x05,0x00,0x5a,0xd6,0xc1,0xfe,0xfc,0x03,0x56,0x34,0x12,0xaf] v_mad_i32_i16 v5, 0.5, m0, -1 op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x5a,0xd6,0xf0,0xfa,0x04,0x03] +// GFX11: v_mad_i32_i16 v5, 0.5, m0, -1 ; encoding: [0x05,0x00,0x5a,0xd6,0xf0,0xfa,0x04,0x03] v_mad_i32_i16 v5, src_scc, vcc_lo, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x5a,0xd6,0xfd,0xd4,0xf4,0x03] +// GFX11: v_mad_i32_i16 v5, src_scc, vcc_lo, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x5a,0xd6,0xfd,0xd4,0xf4,0x03] v_mad_i32_i16 v255, 0xfe0b, vcc_hi, 0.5 op_sel:[0,1,0,0] clamp -// GFX11: encoding: [0xff,0x90,0x5a,0xd6,0xff,0xd6,0xc0,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_i32_i16 v255, 0xfe0b, vcc_hi, 0.5 op_sel:[0,1,0,0] clamp ; encoding: [0xff,0x90,0x5a,0xd6,0xff,0xd6,0xc0,0x03,0x0b,0xfe,0x00,0x00] v_mad_i32_i24 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_mad_i32_i24 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0a,0xd6,0x01,0x05,0x0e,0x00] v_mad_i32_i24 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_mad_i32_i24 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0a,0xd6,0xff,0x05,0xa4,0x01] v_mad_i32_i24 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_mad_i32_i24 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0a,0xd6,0x01,0xfe,0xff,0x01] v_mad_i32_i24 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_mad_i32_i24 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0a,0xd6,0x69,0xd2,0xf8,0x01] v_mad_i32_i24 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_mad_i32_i24 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0a,0xd6,0x6a,0xf6,0x0c,0x04] v_mad_i32_i24 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_i32_i24 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_mad_i32_i24 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_mad_i32_i24 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x0a,0xd6,0x7b,0xfa,0xed,0x01] v_mad_i32_i24 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_mad_i32_i24 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0a,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_i32_i24 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_mad_i32_i24 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x0a,0xd6,0x7e,0x82,0xad,0x01] v_mad_i32_i24 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_mad_i32_i24 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x0a,0xd6,0x7f,0xf8,0xa8,0x01] v_mad_i32_i24 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_i32_i24 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x0a,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_mad_i32_i24 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_mad_i32_i24 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x0a,0xd6,0xc1,0xfe,0xf4,0x03] v_mad_i32_i24 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_mad_i32_i24 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x0a,0xd6,0xf0,0xfa,0xc0,0x03] v_mad_i32_i24 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x0a,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_mad_i32_i24 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x0a,0xd6,0xfd,0xd4,0x04,0x03] v_mad_i32_i24 v255, 0xaf123456, vcc_hi, null clamp -// GFX11: encoding: [0xff,0x80,0x0a,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_i32_i24 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x0a,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mad_i64_i32 v[5:6], s6, s105, s105, s[6:7] -// W32: encoding: [0x05,0x06,0xff,0xd6,0x69,0xd2,0x18,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_i64_i32 v[5:6], s6, s105, s105, s[6:7] ; encoding: [0x05,0x06,0xff,0xd6,0x69,0xd2,0x18,0x00] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s6, ttmp15, ttmp15, s[104:105] -// W32: encoding: [0x05,0x06,0xff,0xd6,0x7b,0xf6,0xa0,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_i64_i32 v[5:6], s6, ttmp15, ttmp15, s[104:105] ; encoding: [0x05,0x06,0xff,0xd6,0x7b,0xf6,0xa0,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s6, m0, 0.5, ttmp[14:15] -// W32: encoding: [0x05,0x06,0xff,0xd6,0x7d,0xe0,0xe9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_i64_i32 v[5:6], s6, m0, 0.5, ttmp[14:15] ; encoding: [0x05,0x06,0xff,0xd6,0x7d,0xe0,0xe9,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s6, exec_lo, -1, exec -// W32: encoding: [0x05,0x06,0xff,0xd6,0x7e,0x82,0xf9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_i64_i32 v[5:6], s6, exec_lo, -1, exec ; encoding: [0x05,0x06,0xff,0xd6,0x7e,0x82,0xf9,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s6, exec_hi, null, vcc -// W32: encoding: [0x05,0x06,0xff,0xd6,0x7f,0xf8,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_i64_i32 v[5:6], s6, exec_hi, null, vcc ; encoding: [0x05,0x06,0xff,0xd6,0x7f,0xf8,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s105, null, exec_lo, null -// W32: encoding: [0x05,0x69,0xff,0xd6,0x7c,0xfc,0xf0,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_i64_i32 v[5:6], s105, null, exec_lo, null ; encoding: [0x05,0x69,0xff,0xd6,0x7c,0xfc,0xf0,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], vcc_lo, -1, exec_hi, -1 -// W32: encoding: [0x05,0x6a,0xff,0xd6,0xc1,0xfe,0x04,0x03] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_i64_i32 v[5:6], vcc_lo, -1, exec_hi, -1 ; encoding: [0x05,0x6a,0xff,0xd6,0xc1,0xfe,0x04,0x03] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], vcc_hi, 0.5, m0, 0xaf123456 -// W32: encoding: [0x05,0x6b,0xff,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_i64_i32 v[5:6], vcc_hi, 0.5, m0, 0xaf123456 ; encoding: [0x05,0x6b,0xff,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], ttmp15, src_scc, vcc_lo, src_scc -// W32: encoding: [0x05,0x7b,0xff,0xd6,0xfd,0xd4,0xf4,0x03] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_i64_i32 v[5:6], ttmp15, src_scc, vcc_lo, src_scc ; encoding: [0x05,0x7b,0xff,0xd6,0xfd,0xd4,0xf4,0x03] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_i64_i32 v[5:6], s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0xff,0xd6,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7b,0xf6,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_i64_i32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] ; encoding: [0x05,0x0c,0xff,0xd6,0x7b,0xf6,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15] -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7d,0xe0,0xe9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_i64_i32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15] ; encoding: [0x05,0x0c,0xff,0xd6,0x7d,0xe0,0xe9,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s[12:13], exec_lo, -1, exec -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7e,0x82,0xf9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_i64_i32 v[5:6], s[12:13], exec_lo, -1, exec ; encoding: [0x05,0x0c,0xff,0xd6,0x7e,0x82,0xf9,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s[12:13], exec_hi, null, vcc -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7f,0xf8,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_i64_i32 v[5:6], s[12:13], exec_hi, null, vcc ; encoding: [0x05,0x0c,0xff,0xd6,0x7f,0xf8,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s[12:13], null, exec_lo, null -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7c,0xfc,0xf0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_i64_i32 v[5:6], s[12:13], null, exec_lo, null ; encoding: [0x05,0x0c,0xff,0xd6,0x7c,0xfc,0xf0,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s[104:105], -1, exec_hi, -1 -// W64: encoding: [0x05,0x68,0xff,0xd6,0xc1,0xfe,0x04,0x03] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_i64_i32 v[5:6], s[104:105], -1, exec_hi, -1 ; encoding: [0x05,0x68,0xff,0xd6,0xc1,0xfe,0x04,0x03] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], vcc, 0.5, m0, 0xaf123456 -// W64: encoding: [0x05,0x6a,0xff,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_i64_i32 v[5:6], vcc, 0.5, m0, 0xaf123456 ; encoding: [0x05,0x6a,0xff,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[5:6], ttmp[14:15], src_scc, vcc_lo, src_scc -// W64: encoding: [0x05,0x7a,0xff,0xd6,0xfd,0xd4,0xf4,0x03] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_i64_i32 v[5:6], ttmp[14:15], src_scc, vcc_lo, src_scc ; encoding: [0x05,0x7a,0xff,0xd6,0xfd,0xd4,0xf4,0x03] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_i64_i32 v[254:255], null, 0xaf123456, vcc_hi, 0.5 clamp -// GFX11: encoding: [0xfe,0xfc,0xff,0xd6,0xff,0xd6,0xc0,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_i64_i32 v[254:255], null, 0xaf123456, vcc_hi, 0.5 clamp ; encoding: [0xfe,0xfc,0xff,0xd6,0xff,0xd6,0xc0,0x03,0x56,0x34,0x12,0xaf] v_mad_u16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_mad_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x41,0xd6,0x01,0x05,0x0e,0x00] v_mad_u16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_mad_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x41,0xd6,0xff,0x05,0xa4,0x01] v_mad_u16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_mad_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x41,0xd6,0x01,0xfe,0xff,0x01] v_mad_u16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_mad_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x41,0xd6,0x69,0xd2,0xf8,0x01] v_mad_u16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_mad_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x41,0xd6,0x6a,0xf6,0x0c,0x04] v_mad_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x41,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_mad_u16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_mad_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x41,0xd6,0x7b,0xfa,0xed,0x01] v_mad_u16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_mad_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x41,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_u16 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_mad_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x41,0xd6,0x7e,0x82,0xad,0x01] v_mad_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x78,0x41,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_mad_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x41,0xd6,0x7f,0xf8,0xa8,0x01] v_mad_u16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x41,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_u16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x41,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_mad_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x41,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_mad_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x41,0xd6,0xc1,0xfe,0xf4,0x03] v_mad_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x41,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_mad_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x41,0xd6,0xf0,0xfa,0xc0,0x03] v_mad_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x20,0x41,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_mad_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x41,0xd6,0xfd,0xd4,0x04,0x03] v_mad_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] clamp -// GFX11: encoding: [0xff,0xc0,0x41,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc0,0x41,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_mad_u32_u16 v5, v1, v2, v3 -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x01,0x05,0x0e,0x04] +// GFX11: v_mad_u32_u16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x59,0xd6,0x01,0x05,0x0e,0x04] v_mad_u32_u16 v5, v255, v255, s3 -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0xff,0xff,0x0f,0x00] +// GFX11: v_mad_u32_u16 v5, v255, v255, s3 ; encoding: [0x05,0x00,0x59,0xd6,0xff,0xff,0x0f,0x00] v_mad_u32_u16 v5, s1, s2, v255 -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x01,0x04,0xfc,0x07] +// GFX11: v_mad_u32_u16 v5, s1, s2, v255 ; encoding: [0x05,0x00,0x59,0xd6,0x01,0x04,0xfc,0x07] v_mad_u32_u16 v5, s105, s105, s105 -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x69,0xd2,0xa4,0x01] +// GFX11: v_mad_u32_u16 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x59,0xd6,0x69,0xd2,0xa4,0x01] v_mad_u32_u16 v5, vcc_lo, ttmp15, vcc_lo -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x6a,0xf6,0xa8,0x01] +// GFX11: v_mad_u32_u16 v5, vcc_lo, ttmp15, vcc_lo ; encoding: [0x05,0x00,0x59,0xd6,0x6a,0xf6,0xa8,0x01] v_mad_u32_u16 v5, vcc_hi, 0xfe0b, vcc_hi -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_u32_u16 v5, vcc_hi, 0xfe0b, vcc_hi ; encoding: [0x05,0x00,0x59,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] v_mad_u32_u16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_mad_u32_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x59,0xd6,0x7b,0xfa,0xed,0x01] v_mad_u32_u16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_mad_u32_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x59,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_u32_u16 v5, exec_lo, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x7e,0x82,0xfd,0x01] +// GFX11: v_mad_u32_u16 v5, exec_lo, -1, exec_hi ; encoding: [0x05,0x00,0x59,0xd6,0x7e,0x82,0xfd,0x01] v_mad_u32_u16 v5, exec_hi, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x7f,0xf8,0xf8,0x01] +// GFX11: v_mad_u32_u16 v5, exec_hi, null, exec_lo ; encoding: [0x05,0x00,0x59,0xd6,0x7f,0xf8,0xf8,0x01] v_mad_u32_u16 v5, null, exec_lo, null -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0x7c,0xfc,0xf0,0x01] +// GFX11: v_mad_u32_u16 v5, null, exec_lo, null ; encoding: [0x05,0x00,0x59,0xd6,0x7c,0xfc,0xf0,0x01] v_mad_u32_u16 v5, -1, exec_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0xc1,0xfe,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_u32_u16 v5, -1, exec_hi, 0xaf123456 ; encoding: [0x05,0x00,0x59,0xd6,0xc1,0xfe,0xfc,0x03,0x56,0x34,0x12,0xaf] v_mad_u32_u16 v5, 0.5, m0, -1 op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x59,0xd6,0xf0,0xfa,0x04,0x03] +// GFX11: v_mad_u32_u16 v5, 0.5, m0, -1 ; encoding: [0x05,0x00,0x59,0xd6,0xf0,0xfa,0x04,0x03] v_mad_u32_u16 v5, src_scc, vcc_lo, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x59,0xd6,0xfd,0xd4,0xf4,0x03] +// GFX11: v_mad_u32_u16 v5, src_scc, vcc_lo, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x59,0xd6,0xfd,0xd4,0xf4,0x03] v_mad_u32_u16 v255, 0xfe0b, vcc_hi, 0.5 op_sel:[0,1,0,0] clamp -// GFX11: encoding: [0xff,0x90,0x59,0xd6,0xff,0xd6,0xc0,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_mad_u32_u16 v255, 0xfe0b, vcc_hi, 0.5 op_sel:[0,1,0,0] clamp ; encoding: [0xff,0x90,0x59,0xd6,0xff,0xd6,0xc0,0x03,0x0b,0xfe,0x00,0x00] v_mad_u32_u24 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_mad_u32_u24 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0b,0xd6,0x01,0x05,0x0e,0x00] v_mad_u32_u24 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_mad_u32_u24 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0b,0xd6,0xff,0x05,0xa4,0x01] v_mad_u32_u24 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_mad_u32_u24 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0b,0xd6,0x01,0xfe,0xff,0x01] v_mad_u32_u24 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_mad_u32_u24 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0b,0xd6,0x69,0xd2,0xf8,0x01] v_mad_u32_u24 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_mad_u32_u24 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0b,0xd6,0x6a,0xf6,0x0c,0x04] v_mad_u32_u24 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_u32_u24 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0b,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_mad_u32_u24 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_mad_u32_u24 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x0b,0xd6,0x7b,0xfa,0xed,0x01] v_mad_u32_u24 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_mad_u32_u24 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0b,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_u32_u24 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_mad_u32_u24 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x0b,0xd6,0x7e,0x82,0xad,0x01] v_mad_u32_u24 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_mad_u32_u24 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x0b,0xd6,0x7f,0xf8,0xa8,0x01] v_mad_u32_u24 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_u32_u24 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x0b,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_mad_u32_u24 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_mad_u32_u24 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x0b,0xd6,0xc1,0xfe,0xf4,0x03] v_mad_u32_u24 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_mad_u32_u24 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x0b,0xd6,0xf0,0xfa,0xc0,0x03] v_mad_u32_u24 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x0b,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_mad_u32_u24 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x0b,0xd6,0xfd,0xd4,0x04,0x03] v_mad_u32_u24 v255, 0xaf123456, vcc_hi, null clamp -// GFX11: encoding: [0xff,0x80,0x0b,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_u32_u24 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x0b,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mad_u64_u32 v[5:6], s6, s105, s105, s[6:7] -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x69,0xd2,0x18,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_u64_u32 v[5:6], s6, s105, s105, s[6:7] ; encoding: [0x05,0x06,0xfe,0xd6,0x69,0xd2,0x18,0x00] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s6, ttmp15, ttmp15, s[104:105] -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_u64_u32 v[5:6], s6, ttmp15, ttmp15, s[104:105] ; encoding: [0x05,0x06,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s6, m0, 0.5, ttmp[14:15] -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7d,0xe0,0xe9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_u64_u32 v[5:6], s6, m0, 0.5, ttmp[14:15] ; encoding: [0x05,0x06,0xfe,0xd6,0x7d,0xe0,0xe9,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s6, exec_lo, -1, exec -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7e,0x82,0xf9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_u64_u32 v[5:6], s6, exec_lo, -1, exec ; encoding: [0x05,0x06,0xfe,0xd6,0x7e,0x82,0xf9,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s6, exec_hi, null, vcc -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7f,0xf8,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_u64_u32 v[5:6], s6, exec_hi, null, vcc ; encoding: [0x05,0x06,0xfe,0xd6,0x7f,0xf8,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s105, null, exec_lo, null -// W32: encoding: [0x05,0x69,0xfe,0xd6,0x7c,0xfc,0xf0,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_u64_u32 v[5:6], s105, null, exec_lo, null ; encoding: [0x05,0x69,0xfe,0xd6,0x7c,0xfc,0xf0,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], vcc_lo, -1, exec_hi, -1 -// W32: encoding: [0x05,0x6a,0xfe,0xd6,0xc1,0xfe,0x04,0x03] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_u64_u32 v[5:6], vcc_lo, -1, exec_hi, -1 ; encoding: [0x05,0x6a,0xfe,0xd6,0xc1,0xfe,0x04,0x03] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], vcc_hi, 0.5, m0, 0xaf123456 -// W32: encoding: [0x05,0x6b,0xfe,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_u64_u32 v[5:6], vcc_hi, 0.5, m0, 0xaf123456 ; encoding: [0x05,0x6b,0xfe,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], ttmp15, src_scc, vcc_lo, src_scc -// W32: encoding: [0x05,0x7b,0xfe,0xd6,0xfd,0xd4,0xf4,0x03] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_u64_u32 v[5:6], ttmp15, src_scc, vcc_lo, src_scc ; encoding: [0x05,0x7b,0xfe,0xd6,0xfd,0xd4,0xf4,0x03] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_u64_u32 v[5:6], s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0xfe,0xd6,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_u64_u32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] ; encoding: [0x05,0x0c,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15] -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7d,0xe0,0xe9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_u64_u32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15] ; encoding: [0x05,0x0c,0xfe,0xd6,0x7d,0xe0,0xe9,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s[12:13], exec_lo, -1, exec -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7e,0x82,0xf9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_u64_u32 v[5:6], s[12:13], exec_lo, -1, exec ; encoding: [0x05,0x0c,0xfe,0xd6,0x7e,0x82,0xf9,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s[12:13], exec_hi, null, vcc -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7f,0xf8,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_u64_u32 v[5:6], s[12:13], exec_hi, null, vcc ; encoding: [0x05,0x0c,0xfe,0xd6,0x7f,0xf8,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s[12:13], null, exec_lo, null -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7c,0xfc,0xf0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_u64_u32 v[5:6], s[12:13], null, exec_lo, null ; encoding: [0x05,0x0c,0xfe,0xd6,0x7c,0xfc,0xf0,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s[104:105], -1, exec_hi, -1 -// W64: encoding: [0x05,0x68,0xfe,0xd6,0xc1,0xfe,0x04,0x03] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_u64_u32 v[5:6], s[104:105], -1, exec_hi, -1 ; encoding: [0x05,0x68,0xfe,0xd6,0xc1,0xfe,0x04,0x03] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], vcc, 0.5, m0, 0xaf123456 -// W64: encoding: [0x05,0x6a,0xfe,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_u64_u32 v[5:6], vcc, 0.5, m0, 0xaf123456 ; encoding: [0x05,0x6a,0xfe,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[5:6], ttmp[14:15], src_scc, vcc_lo, src_scc -// W64: encoding: [0x05,0x7a,0xfe,0xd6,0xfd,0xd4,0xf4,0x03] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_u64_u32 v[5:6], ttmp[14:15], src_scc, vcc_lo, src_scc ; encoding: [0x05,0x7a,0xfe,0xd6,0xfd,0xd4,0xf4,0x03] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_mad_u64_u32 v[254:255], null, 0xaf123456, vcc_hi, 0.5 clamp -// GFX11: encoding: [0xfe,0xfc,0xfe,0xd6,0xff,0xd6,0xc0,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_mad_u64_u32 v[254:255], null, 0xaf123456, vcc_hi, 0.5 clamp ; encoding: [0xfe,0xfc,0xfe,0xd6,0xff,0xd6,0xc0,0x03,0x56,0x34,0x12,0xaf] v_max3_f16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x4c,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_max3_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4c,0xd6,0x01,0x05,0x0e,0x00] v_max3_f16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x4c,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_max3_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4c,0xd6,0xff,0x05,0xa4,0x01] v_max3_f16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x4c,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_max3_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4c,0xd6,0x01,0xfe,0xff,0x01] v_max3_f16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x4c,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_max3_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4c,0xd6,0x69,0xd2,0xf8,0x01] v_max3_f16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x4c,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_max3_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4c,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x4c,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_max3_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4c,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_max3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x4c,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_max3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x4c,0xd6,0x7b,0xfa,0xed,0xe1] v_max3_f16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x4c,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_max3_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4c,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_f16 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x4c,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_max3_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x4c,0xd6,0x7e,0x82,0xad,0x01] v_max3_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x7d,0x4c,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_max3_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x4c,0xd6,0x7f,0xf8,0xa8,0xa1] v_max3_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x04,0x4c,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX11: v_max3_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x4c,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_max3_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x0e,0x4c,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_max3_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x4c,0xd6,0xc1,0xfe,0xf4,0xc3] v_max3_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x4c,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX11: v_max3_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4c,0xd6,0xf0,0xfa,0xc0,0x43] v_max3_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x22,0x4c,0xd6,0xfd,0xd4,0x04,0x23] +// GFX11: v_max3_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x4c,0xd6,0xfd,0xd4,0x04,0x23] v_max3_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX11: encoding: [0xff,0xc3,0x4c,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX11: v_max3_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x4c,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_max3_f16 v5, v255, s2, s105 mul:2 -// GFX11: encoding: [0x05,0x00,0x4c,0xd6,0xff,0x05,0xa4,0x09] +// GFX11: v_max3_f16 v5, v255, s2, s105 mul:2 ; encoding: [0x05,0x00,0x4c,0xd6,0xff,0x05,0xa4,0x09] v_max3_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x1c,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_max3_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1c,0xd6,0x01,0x05,0x0e,0x00] v_max3_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x1c,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_max3_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1c,0xd6,0xff,0x05,0xa4,0x01] v_max3_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x1c,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_max3_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1c,0xd6,0x01,0xfe,0xff,0x01] v_max3_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x1c,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_max3_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1c,0xd6,0x69,0xd2,0xf8,0x01] v_max3_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x1c,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_max3_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1c,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x1c,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_max3_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1c,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_max3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x1c,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_max3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x1c,0xd6,0x7b,0xfa,0xed,0xe1] v_max3_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1c,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_max3_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1c,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x1c,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_max3_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x1c,0xd6,0x7e,0x82,0xad,0x01] v_max3_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x1c,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_max3_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x1c,0xd6,0x7f,0xf8,0xa8,0xa1] v_max3_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x1c,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_max3_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x1c,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_max3_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x1c,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_max3_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x1c,0xd6,0xc1,0xfe,0xf4,0xc3] v_max3_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x1c,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_max3_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x1c,0xd6,0xf0,0xfa,0xc0,0x4b] v_max3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x1c,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_max3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x1c,0xd6,0xfd,0xd4,0x04,0x33] v_max3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x1c,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_max3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x1c,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_max3_i16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_max3_i16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4d,0xd6,0x01,0x05,0x0e,0x00] v_max3_i16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_max3_i16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4d,0xd6,0xff,0x05,0xa4,0x01] v_max3_i16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_max3_i16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4d,0xd6,0x01,0xfe,0xff,0x01] v_max3_i16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_max3_i16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4d,0xd6,0x69,0xd2,0xf8,0x01] v_max3_i16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_max3_i16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4d,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_i16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_max3_i16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4d,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_max3_i16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_max3_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x4d,0xd6,0x7b,0xfa,0xed,0x01] v_max3_i16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_max3_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4d,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_i16 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_max3_i16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x4d,0xd6,0x7e,0x82,0xad,0x01] v_max3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x78,0x4d,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_max3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x4d,0xd6,0x7f,0xf8,0xa8,0x01] v_max3_i16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x4d,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_max3_i16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x4d,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_max3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x4d,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_max3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x4d,0xd6,0xc1,0xfe,0xf4,0x03] v_max3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x4d,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_max3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4d,0xd6,0xf0,0xfa,0xc0,0x03] v_max3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x20,0x4d,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_max3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x4d,0xd6,0xfd,0xd4,0x04,0x03] v_max3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX11: encoding: [0xff,0x40,0x4d,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_max3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x4d,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_max3_i32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_max3_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1d,0xd6,0x01,0x05,0x0e,0x00] v_max3_i32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_max3_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1d,0xd6,0xff,0x05,0xa4,0x01] v_max3_i32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_max3_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1d,0xd6,0x01,0xfe,0xff,0x01] v_max3_i32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_max3_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1d,0xd6,0x69,0xd2,0xf8,0x01] v_max3_i32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_max3_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1d,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_max3_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_max3_i32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_max3_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x1d,0xd6,0x7b,0xfa,0xed,0x01] v_max3_i32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_max3_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1d,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_i32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_max3_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x1d,0xd6,0x7e,0x82,0xad,0x01] v_max3_i32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_max3_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x1d,0xd6,0x7f,0xf8,0xa8,0x01] v_max3_i32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_max3_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x1d,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_max3_i32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_max3_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x1d,0xd6,0xc1,0xfe,0xf4,0x03] v_max3_i32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_max3_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x1d,0xd6,0xf0,0xfa,0xc0,0x03] v_max3_i32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1d,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_max3_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x1d,0xd6,0xfd,0xd4,0x04,0x03] v_max3_i32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x1d,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_max3_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x1d,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_max3_u16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_max3_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4e,0xd6,0x01,0x05,0x0e,0x00] v_max3_u16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_max3_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4e,0xd6,0xff,0x05,0xa4,0x01] v_max3_u16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_max3_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4e,0xd6,0x01,0xfe,0xff,0x01] v_max3_u16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_max3_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4e,0xd6,0x69,0xd2,0xf8,0x01] v_max3_u16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_max3_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4e,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_max3_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4e,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_max3_u16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_max3_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x4e,0xd6,0x7b,0xfa,0xed,0x01] v_max3_u16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_max3_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4e,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_u16 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_max3_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x4e,0xd6,0x7e,0x82,0xad,0x01] v_max3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x78,0x4e,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_max3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x4e,0xd6,0x7f,0xf8,0xa8,0x01] v_max3_u16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x4e,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_max3_u16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x4e,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_max3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x4e,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_max3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x4e,0xd6,0xc1,0xfe,0xf4,0x03] v_max3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x4e,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_max3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4e,0xd6,0xf0,0xfa,0xc0,0x03] v_max3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x20,0x4e,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_max3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x4e,0xd6,0xfd,0xd4,0x04,0x03] v_max3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX11: encoding: [0xff,0x40,0x4e,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_max3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x4e,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_max3_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_max3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1e,0xd6,0x01,0x05,0x0e,0x00] v_max3_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_max3_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1e,0xd6,0xff,0x05,0xa4,0x01] v_max3_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_max3_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1e,0xd6,0x01,0xfe,0xff,0x01] v_max3_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_max3_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1e,0xd6,0x69,0xd2,0xf8,0x01] v_max3_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_max3_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1e,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_max3_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_max3_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_max3_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x1e,0xd6,0x7b,0xfa,0xed,0x01] v_max3_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_max3_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1e,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_max3_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x1e,0xd6,0x7e,0x82,0xad,0x01] v_max3_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_max3_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x1e,0xd6,0x7f,0xf8,0xa8,0x01] v_max3_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_max3_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x1e,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_max3_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_max3_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x1e,0xd6,0xc1,0xfe,0xf4,0x03] v_max3_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_max3_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x1e,0xd6,0xf0,0xfa,0xc0,0x03] v_max3_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1e,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_max3_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x1e,0xd6,0xfd,0xd4,0x04,0x03] v_max3_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x1e,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_max3_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x1e,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_max_f64 v[5:6], v[1:2], v[2:3] -// GFX11: encoding: [0x05,0x00,0x2a,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_max_f64 v[5:6], v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2a,0xd7,0x01,0x05,0x02,0x00] v_max_f64 v[5:6], v[254:255], v[254:255] -// GFX11: encoding: [0x05,0x00,0x2a,0xd7,0xfe,0xfd,0x03,0x00] +// GFX11: v_max_f64 v[5:6], v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2a,0xd7,0xfe,0xfd,0x03,0x00] v_max_f64 v[5:6], s[2:3], s[4:5] -// GFX11: encoding: [0x05,0x00,0x2a,0xd7,0x02,0x08,0x00,0x00] +// GFX11: v_max_f64 v[5:6], s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2a,0xd7,0x02,0x08,0x00,0x00] v_max_f64 v[5:6], s[104:105], s[104:105] -// GFX11: encoding: [0x05,0x00,0x2a,0xd7,0x68,0xd0,0x00,0x00] +// GFX11: v_max_f64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2a,0xd7,0x68,0xd0,0x00,0x00] v_max_f64 v[5:6], vcc, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x2a,0xd7,0x6a,0xf4,0x00,0x00] +// GFX11: v_max_f64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2a,0xd7,0x6a,0xf4,0x00,0x00] v_max_f64 v[5:6], ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x2a,0xd7,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_max_f64 v[5:6], ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2a,0xd7,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_max_f64 v[5:6], -|exec|, src_scc -// GFX11: encoding: [0x05,0x01,0x2a,0xd7,0x7e,0xfa,0x01,0x20] +// GFX11: v_max_f64 v[5:6], -|exec|, src_scc ; encoding: [0x05,0x01,0x2a,0xd7,0x7e,0xfa,0x01,0x20] v_max_f64 v[5:6], null, 0.5 -// GFX11: encoding: [0x05,0x00,0x2a,0xd7,0x7c,0xe0,0x01,0x00] +// GFX11: v_max_f64 v[5:6], null, 0.5 ; encoding: [0x05,0x00,0x2a,0xd7,0x7c,0xe0,0x01,0x00] v_max_f64 v[5:6], -1, -1 -// GFX11: encoding: [0x05,0x00,0x2a,0xd7,0xc1,0x82,0x01,0x00] +// GFX11: v_max_f64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x2a,0xd7,0xc1,0x82,0x01,0x00] v_max_f64 v[5:6], 0.5, null mul:2 -// GFX11: encoding: [0x05,0x00,0x2a,0xd7,0xf0,0xf8,0x00,0x08] +// GFX11: v_max_f64 v[5:6], 0.5, null mul:2 ; encoding: [0x05,0x00,0x2a,0xd7,0xf0,0xf8,0x00,0x08] v_max_f64 v[5:6], -|src_scc|, -|exec| mul:4 -// GFX11: encoding: [0x05,0x03,0x2a,0xd7,0xfd,0xfc,0x00,0x70] +// GFX11: v_max_f64 v[5:6], -|src_scc|, -|exec| mul:4 ; encoding: [0x05,0x03,0x2a,0xd7,0xfd,0xfc,0x00,0x70] v_max_f64 v[254:255], 0xaf123456, -|vcc| clamp div:2 -// GFX11: encoding: [0xfe,0x82,0x2a,0xd7,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_max_f64 v[254:255], 0xaf123456, -|vcc| clamp div:2 ; encoding: [0xfe,0x82,0x2a,0xd7,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] v_max_i16 v5.l, v1.l, v2.l -// GFX11: [0x05,0x00,0x0a,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_max_i16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x0a,0xd7,0x01,0x05,0x02,0x00] v_max_i16 v5.l, v255.l, v255.l -// GFX11: [0x05,0x00,0x0a,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_max_i16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x0a,0xd7,0xff,0xff,0x03,0x00] v_max_i16 v5.l, s1, s2 -// GFX11: [0x05,0x00,0x0a,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_max_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0a,0xd7,0x01,0x04,0x00,0x00] v_max_i16 v5.l, s105, s105 -// GFX11: [0x05,0x00,0x0a,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_max_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0a,0xd7,0x69,0xd2,0x00,0x00] v_max_i16 v5.l, vcc_lo, ttmp15 -// GFX11: [0x05,0x00,0x0a,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_max_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0a,0xd7,0x6a,0xf6,0x00,0x00] v_max_i16 v5.l, vcc_hi, 0xfe0b -// GFX11: [0x05,0x00,0x0a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_max_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_max_i16 v5.l, ttmp15, src_scc -// GFX11: [0x05,0x00,0x0a,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_max_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0a,0xd7,0x7b,0xfa,0x01,0x00] v_max_i16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0a,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_max_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0a,0xd7,0x7d,0xe0,0x01,0x00] v_max_i16 v5.l, exec_lo, -1 -// GFX11: [0x05,0x00,0x0a,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_max_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0a,0xd7,0x7e,0x82,0x01,0x00] v_max_i16 v5.l, exec_hi, null -// GFX11: [0x05,0x00,0x0a,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_max_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0a,0xd7,0x7f,0xf8,0x00,0x00] v_max_i16 v5.l, null, exec_lo -// GFX11: [0x05,0x00,0x0a,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_max_i16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x0a,0xd7,0x7c,0xfc,0x00,0x00] v_max_i16 v5.l, -1, exec_hi -// GFX11: [0x05,0x00,0x0a,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_max_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0a,0xd7,0xc1,0xfe,0x00,0x00] v_max_i16 v5.l, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0a,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_max_i16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x0a,0xd7,0xf0,0xfa,0x00,0x00] v_max_i16 v5.l, src_scc, vcc_lo -// GFX11: [0x05,0x00,0x0a,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_max_i16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0a,0xd7,0xfd,0xd4,0x00,0x00] v_max_i16 v255.l, 0xfe0b, vcc_hi -// GFX11: [0xff,0x00,0x0a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_max_i16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x0a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_max_i16 v5.l, v1.h, v2.l -// GFX11: [0x05,0x08,0x0a,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_max_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0a,0xd7,0x01,0x05,0x02,0x00] v_max_i16 v5.l, v255.l, v255.h -// GFX11: [0x05,0x10,0x0a,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_max_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0a,0xd7,0xff,0xff,0x03,0x00] v_max_i16 v255.h, 0xfe0b, vcc_hi -// GFX11: [0xff,0x40,0x0a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_max_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x0a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_max_u16 v5.l, v1.l, v2.l -// GFX11: [0x05,0x00,0x09,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_max_u16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x09,0xd7,0x01,0x05,0x02,0x00] v_max_u16 v5.l, v255.l, v255.l -// GFX11: [0x05,0x00,0x09,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_max_u16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x09,0xd7,0xff,0xff,0x03,0x00] v_max_u16 v5.l, s1, s2 -// GFX11: [0x05,0x00,0x09,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_max_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x09,0xd7,0x01,0x04,0x00,0x00] v_max_u16 v5.l, s105, s105 -// GFX11: [0x05,0x00,0x09,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_max_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x09,0xd7,0x69,0xd2,0x00,0x00] v_max_u16 v5.l, vcc_lo, ttmp15 -// GFX11: [0x05,0x00,0x09,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_max_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x09,0xd7,0x6a,0xf6,0x00,0x00] v_max_u16 v5.l, vcc_hi, 0xfe0b -// GFX11: [0x05,0x00,0x09,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_max_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x09,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_max_u16 v5.l, ttmp15, src_scc -// GFX11: [0x05,0x00,0x09,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_max_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x09,0xd7,0x7b,0xfa,0x01,0x00] v_max_u16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x09,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_max_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x09,0xd7,0x7d,0xe0,0x01,0x00] v_max_u16 v5.l, exec_lo, -1 -// GFX11: [0x05,0x00,0x09,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_max_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x09,0xd7,0x7e,0x82,0x01,0x00] v_max_u16 v5.l, exec_hi, null -// GFX11: [0x05,0x00,0x09,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_max_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x09,0xd7,0x7f,0xf8,0x00,0x00] v_max_u16 v5.l, null, exec_lo -// GFX11: [0x05,0x00,0x09,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_max_u16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x09,0xd7,0x7c,0xfc,0x00,0x00] v_max_u16 v5.l, -1, exec_hi -// GFX11: [0x05,0x00,0x09,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_max_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x09,0xd7,0xc1,0xfe,0x00,0x00] v_max_u16 v5.l, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x09,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_max_u16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x09,0xd7,0xf0,0xfa,0x00,0x00] v_max_u16 v5.l, src_scc, vcc_lo -// GFX11: [0x05,0x00,0x09,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_max_u16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x09,0xd7,0xfd,0xd4,0x00,0x00] v_max_u16 v255.l, 0xfe0b, vcc_hi -// GFX11: [0xff,0x00,0x09,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_max_u16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x09,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_max_u16 v5.l, v1.h, v2.l -// GFX11: [0x05,0x08,0x09,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_max_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x09,0xd7,0x01,0x05,0x02,0x00] v_max_u16 v5.l, v255.l, v255.h -// GFX11: [0x05,0x10,0x09,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_max_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x09,0xd7,0xff,0xff,0x03,0x00] v_max_u16 v255.h, 0xfe0b, vcc_hi -// GFX11: [0xff,0x40,0x09,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_max_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x09,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_maxmin_f16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x60,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_maxmin_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x60,0xd6,0x01,0x05,0x0e,0x00] v_maxmin_f16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x60,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_maxmin_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x60,0xd6,0xff,0x05,0xa4,0x01] v_maxmin_f16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x60,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_maxmin_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x60,0xd6,0x01,0xfe,0xff,0x01] v_maxmin_f16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x60,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_maxmin_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x60,0xd6,0x69,0xd2,0xf8,0x01] v_maxmin_f16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x60,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_maxmin_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x60,0xd6,0x6a,0xf6,0x0c,0x04] v_maxmin_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x60,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_maxmin_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x60,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_maxmin_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x60,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_maxmin_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x60,0xd6,0x7b,0xfa,0xed,0xe1] v_maxmin_f16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x60,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_maxmin_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x60,0xd6,0x7d,0xe0,0xf5,0x01] v_maxmin_f16 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x60,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_maxmin_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x60,0xd6,0x7e,0x82,0xad,0x01] v_maxmin_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x60,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_maxmin_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x60,0xd6,0x7f,0xf8,0xa8,0xa1] v_maxmin_f16 v5, null, exec_lo, -|0xfe0b| -// GFX11: encoding: [0x05,0x04,0x60,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX11: v_maxmin_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x60,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_maxmin_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x60,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_maxmin_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x60,0xd6,0xc1,0xfe,0xf4,0xc3] v_maxmin_f16 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x60,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_maxmin_f16 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x60,0xd6,0xf0,0xfa,0xc0,0x4b] v_maxmin_f16 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x60,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_maxmin_f16 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x60,0xd6,0xfd,0xd4,0x04,0x33] v_maxmin_f16 v255, -|0xfe0b|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x60,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] +// GFX11: v_maxmin_f16 v255, -|0xfe0b|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x60,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] v_maxmin_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x5e,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_maxmin_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x5e,0xd6,0x01,0x05,0x0e,0x00] v_maxmin_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x5e,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_maxmin_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x5e,0xd6,0xff,0x05,0xa4,0x01] v_maxmin_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x5e,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_maxmin_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x5e,0xd6,0x01,0xfe,0xff,0x01] v_maxmin_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x5e,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_maxmin_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x5e,0xd6,0x69,0xd2,0xf8,0x01] v_maxmin_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x5e,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_maxmin_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x5e,0xd6,0x6a,0xf6,0x0c,0x04] v_maxmin_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x5e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_maxmin_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x5e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_maxmin_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x5e,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_maxmin_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x5e,0xd6,0x7b,0xfa,0xed,0xe1] v_maxmin_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x5e,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_maxmin_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x5e,0xd6,0x7d,0xe0,0xf5,0x01] v_maxmin_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x5e,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_maxmin_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x5e,0xd6,0x7e,0x82,0xad,0x01] v_maxmin_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x5e,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_maxmin_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x5e,0xd6,0x7f,0xf8,0xa8,0xa1] v_maxmin_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x5e,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_maxmin_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x5e,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_maxmin_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x5e,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_maxmin_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x5e,0xd6,0xc1,0xfe,0xf4,0xc3] v_maxmin_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x5e,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_maxmin_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x5e,0xd6,0xf0,0xfa,0xc0,0x4b] v_maxmin_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x5e,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_maxmin_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x5e,0xd6,0xfd,0xd4,0x04,0x33] v_maxmin_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x5e,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_maxmin_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x5e,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_maxmin_i32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_maxmin_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x64,0xd6,0x01,0x05,0x0e,0x00] v_maxmin_i32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_maxmin_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x64,0xd6,0xff,0x05,0xa4,0x01] v_maxmin_i32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_maxmin_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x64,0xd6,0x01,0xfe,0xff,0x01] v_maxmin_i32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_maxmin_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x64,0xd6,0x69,0xd2,0xf8,0x01] v_maxmin_i32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_maxmin_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x64,0xd6,0x6a,0xf6,0x0c,0x04] v_maxmin_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_maxmin_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x64,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_maxmin_i32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_maxmin_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x64,0xd6,0x7b,0xfa,0xed,0x01] v_maxmin_i32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_maxmin_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x64,0xd6,0x7d,0xe0,0xf5,0x01] v_maxmin_i32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_maxmin_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x64,0xd6,0x7e,0x82,0xad,0x01] v_maxmin_i32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_maxmin_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x64,0xd6,0x7f,0xf8,0xa8,0x01] v_maxmin_i32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_maxmin_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x64,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_maxmin_i32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_maxmin_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x64,0xd6,0xc1,0xfe,0xf4,0x03] v_maxmin_i32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_maxmin_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x64,0xd6,0xf0,0xfa,0xc0,0x03] v_maxmin_i32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x64,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_maxmin_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x64,0xd6,0xfd,0xd4,0x04,0x03] v_maxmin_i32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x64,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_maxmin_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x64,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_maxmin_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_maxmin_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x62,0xd6,0x01,0x05,0x0e,0x00] v_maxmin_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_maxmin_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x62,0xd6,0xff,0x05,0xa4,0x01] v_maxmin_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_maxmin_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x62,0xd6,0x01,0xfe,0xff,0x01] v_maxmin_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_maxmin_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x62,0xd6,0x69,0xd2,0xf8,0x01] v_maxmin_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_maxmin_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x62,0xd6,0x6a,0xf6,0x0c,0x04] v_maxmin_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_maxmin_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x62,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_maxmin_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_maxmin_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x62,0xd6,0x7b,0xfa,0xed,0x01] v_maxmin_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_maxmin_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x62,0xd6,0x7d,0xe0,0xf5,0x01] v_maxmin_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_maxmin_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x62,0xd6,0x7e,0x82,0xad,0x01] v_maxmin_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_maxmin_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x62,0xd6,0x7f,0xf8,0xa8,0x01] v_maxmin_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_maxmin_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x62,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_maxmin_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_maxmin_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x62,0xd6,0xc1,0xfe,0xf4,0x03] v_maxmin_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_maxmin_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x62,0xd6,0xf0,0xfa,0xc0,0x03] v_maxmin_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x62,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_maxmin_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x62,0xd6,0xfd,0xd4,0x04,0x03] v_maxmin_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x62,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_maxmin_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x62,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mbcnt_hi_u32_b32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x20,0xd7,0x01,0x05,0x02,0x00] v_mbcnt_hi_u32_b32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, v255, v255 ; encoding: [0x05,0x00,0x20,0xd7,0xff,0xff,0x03,0x00] v_mbcnt_hi_u32_b32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x20,0xd7,0x01,0x04,0x00,0x00] v_mbcnt_hi_u32_b32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, s105, s105 ; encoding: [0x05,0x00,0x20,0xd7,0x69,0xd2,0x00,0x00] v_mbcnt_hi_u32_b32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x20,0xd7,0x6a,0xf6,0x00,0x00] v_mbcnt_hi_u32_b32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mbcnt_hi_u32_b32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x20,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mbcnt_hi_u32_b32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x20,0xd7,0x7b,0xfa,0x01,0x00] v_mbcnt_hi_u32_b32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x20,0xd7,0x7d,0xe0,0x01,0x00] v_mbcnt_hi_u32_b32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x20,0xd7,0x7e,0x82,0x01,0x00] v_mbcnt_hi_u32_b32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, exec_hi, null ; encoding: [0x05,0x00,0x20,0xd7,0x7f,0xf8,0x00,0x00] v_mbcnt_hi_u32_b32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, null, exec_lo ; encoding: [0x05,0x00,0x20,0xd7,0x7c,0xfc,0x00,0x00] v_mbcnt_hi_u32_b32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x20,0xd7,0xc1,0xfe,0x00,0x00] v_mbcnt_hi_u32_b32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x20,0xd7,0xf0,0xfa,0x00,0x00] v_mbcnt_hi_u32_b32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x20,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_mbcnt_hi_u32_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x20,0xd7,0xfd,0xd4,0x00,0x00] v_mbcnt_hi_u32_b32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x20,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mbcnt_hi_u32_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x20,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mbcnt_lo_u32_b32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x1f,0xd7,0x01,0x05,0x02,0x00] v_mbcnt_lo_u32_b32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, v255, v255 ; encoding: [0x05,0x00,0x1f,0xd7,0xff,0xff,0x03,0x00] v_mbcnt_lo_u32_b32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x1f,0xd7,0x01,0x04,0x00,0x00] v_mbcnt_lo_u32_b32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, s105, s105 ; encoding: [0x05,0x00,0x1f,0xd7,0x69,0xd2,0x00,0x00] v_mbcnt_lo_u32_b32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1f,0xd7,0x6a,0xf6,0x00,0x00] v_mbcnt_lo_u32_b32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mbcnt_lo_u32_b32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1f,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mbcnt_lo_u32_b32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1f,0xd7,0x7b,0xfa,0x01,0x00] v_mbcnt_lo_u32_b32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1f,0xd7,0x7d,0xe0,0x01,0x00] v_mbcnt_lo_u32_b32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1f,0xd7,0x7e,0x82,0x01,0x00] v_mbcnt_lo_u32_b32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, exec_hi, null ; encoding: [0x05,0x00,0x1f,0xd7,0x7f,0xf8,0x00,0x00] v_mbcnt_lo_u32_b32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, null, exec_lo ; encoding: [0x05,0x00,0x1f,0xd7,0x7c,0xfc,0x00,0x00] v_mbcnt_lo_u32_b32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1f,0xd7,0xc1,0xfe,0x00,0x00] v_mbcnt_lo_u32_b32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1f,0xd7,0xf0,0xfa,0x00,0x00] v_mbcnt_lo_u32_b32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1f,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_mbcnt_lo_u32_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1f,0xd7,0xfd,0xd4,0x00,0x00] v_mbcnt_lo_u32_b32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x1f,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mbcnt_lo_u32_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1f,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_med3_f16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x4f,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_med3_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4f,0xd6,0x01,0x05,0x0e,0x00] v_med3_f16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x4f,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_med3_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4f,0xd6,0xff,0x05,0xa4,0x01] v_med3_f16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x4f,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_med3_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4f,0xd6,0x01,0xfe,0xff,0x01] v_med3_f16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x4f,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_med3_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4f,0xd6,0x69,0xd2,0xf8,0x01] v_med3_f16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x4f,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_med3_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4f,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x4f,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_med3_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4f,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_med3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x4f,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_med3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x4f,0xd6,0x7b,0xfa,0xed,0xe1] v_med3_f16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x4f,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_med3_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4f,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_f16 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x4f,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_med3_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x4f,0xd6,0x7e,0x82,0xad,0x01] v_med3_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x7d,0x4f,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_med3_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x4f,0xd6,0x7f,0xf8,0xa8,0xa1] v_med3_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x04,0x4f,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX11: v_med3_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x4f,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_med3_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x0e,0x4f,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_med3_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x4f,0xd6,0xc1,0xfe,0xf4,0xc3] v_med3_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x4f,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX11: v_med3_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4f,0xd6,0xf0,0xfa,0xc0,0x43] v_med3_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x22,0x4f,0xd6,0xfd,0xd4,0x04,0x23] +// GFX11: v_med3_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x4f,0xd6,0xfd,0xd4,0x04,0x23] v_med3_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX11: encoding: [0xff,0xc3,0x4f,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX11: v_med3_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x4f,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_med3_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] div:2 -// GFX11: encoding: [0x05,0x10,0x4f,0xd6,0xf0,0xfa,0xc0,0x5b] +// GFX11: v_med3_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] div:2 ; encoding: [0x05,0x10,0x4f,0xd6,0xf0,0xfa,0xc0,0x5b] v_med3_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x1f,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_med3_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1f,0xd6,0x01,0x05,0x0e,0x00] v_med3_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x1f,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_med3_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1f,0xd6,0xff,0x05,0xa4,0x01] v_med3_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x1f,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_med3_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1f,0xd6,0x01,0xfe,0xff,0x01] v_med3_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x1f,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_med3_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1f,0xd6,0x69,0xd2,0xf8,0x01] v_med3_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x1f,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_med3_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1f,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x1f,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_med3_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1f,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_med3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x1f,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_med3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x1f,0xd6,0x7b,0xfa,0xed,0xe1] v_med3_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1f,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_med3_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1f,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x1f,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_med3_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x1f,0xd6,0x7e,0x82,0xad,0x01] v_med3_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x1f,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_med3_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x1f,0xd6,0x7f,0xf8,0xa8,0xa1] v_med3_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x1f,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_med3_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x1f,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_med3_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x1f,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_med3_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x1f,0xd6,0xc1,0xfe,0xf4,0xc3] v_med3_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x1f,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_med3_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x1f,0xd6,0xf0,0xfa,0xc0,0x4b] v_med3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x1f,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_med3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x1f,0xd6,0xfd,0xd4,0x04,0x33] v_med3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x1f,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_med3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x1f,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_med3_i16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_med3_i16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x50,0xd6,0x01,0x05,0x0e,0x00] v_med3_i16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_med3_i16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x50,0xd6,0xff,0x05,0xa4,0x01] v_med3_i16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_med3_i16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x50,0xd6,0x01,0xfe,0xff,0x01] v_med3_i16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_med3_i16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x50,0xd6,0x69,0xd2,0xf8,0x01] v_med3_i16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_med3_i16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x50,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_i16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_med3_i16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x50,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_med3_i16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_med3_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x50,0xd6,0x7b,0xfa,0xed,0x01] v_med3_i16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_med3_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x50,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_i16 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_med3_i16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x50,0xd6,0x7e,0x82,0xad,0x01] v_med3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x78,0x50,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_med3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x50,0xd6,0x7f,0xf8,0xa8,0x01] v_med3_i16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x50,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_med3_i16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x50,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_med3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x50,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_med3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x50,0xd6,0xc1,0xfe,0xf4,0x03] v_med3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x50,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_med3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x50,0xd6,0xf0,0xfa,0xc0,0x03] v_med3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x20,0x50,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_med3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x50,0xd6,0xfd,0xd4,0x04,0x03] v_med3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX11: encoding: [0xff,0x40,0x50,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_med3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x50,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_med3_i32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_med3_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x20,0xd6,0x01,0x05,0x0e,0x00] v_med3_i32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_med3_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x20,0xd6,0xff,0x05,0xa4,0x01] v_med3_i32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_med3_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x20,0xd6,0x01,0xfe,0xff,0x01] v_med3_i32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_med3_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x20,0xd6,0x69,0xd2,0xf8,0x01] v_med3_i32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_med3_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x20,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_med3_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x20,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_med3_i32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_med3_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x20,0xd6,0x7b,0xfa,0xed,0x01] v_med3_i32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_med3_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x20,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_i32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_med3_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x20,0xd6,0x7e,0x82,0xad,0x01] v_med3_i32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_med3_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x20,0xd6,0x7f,0xf8,0xa8,0x01] v_med3_i32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_med3_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x20,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_med3_i32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_med3_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x20,0xd6,0xc1,0xfe,0xf4,0x03] v_med3_i32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_med3_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x20,0xd6,0xf0,0xfa,0xc0,0x03] v_med3_i32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x20,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_med3_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x20,0xd6,0xfd,0xd4,0x04,0x03] v_med3_i32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x20,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_med3_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x20,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_med3_u16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_med3_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x51,0xd6,0x01,0x05,0x0e,0x00] v_med3_u16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_med3_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x51,0xd6,0xff,0x05,0xa4,0x01] v_med3_u16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_med3_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x51,0xd6,0x01,0xfe,0xff,0x01] v_med3_u16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_med3_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x51,0xd6,0x69,0xd2,0xf8,0x01] v_med3_u16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_med3_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x51,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_med3_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x51,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_med3_u16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_med3_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x51,0xd6,0x7b,0xfa,0xed,0x01] v_med3_u16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_med3_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x51,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_u16 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_med3_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x51,0xd6,0x7e,0x82,0xad,0x01] v_med3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x78,0x51,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_med3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x51,0xd6,0x7f,0xf8,0xa8,0x01] v_med3_u16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x51,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_med3_u16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x51,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_med3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x51,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_med3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x51,0xd6,0xc1,0xfe,0xf4,0x03] v_med3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x51,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_med3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x51,0xd6,0xf0,0xfa,0xc0,0x03] v_med3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x20,0x51,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_med3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x51,0xd6,0xfd,0xd4,0x04,0x03] v_med3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX11: encoding: [0xff,0x40,0x51,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_med3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x51,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_med3_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_med3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x21,0xd6,0x01,0x05,0x0e,0x00] v_med3_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_med3_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x21,0xd6,0xff,0x05,0xa4,0x01] v_med3_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_med3_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x21,0xd6,0x01,0xfe,0xff,0x01] v_med3_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_med3_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x21,0xd6,0x69,0xd2,0xf8,0x01] v_med3_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_med3_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x21,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_med3_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x21,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_med3_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_med3_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x21,0xd6,0x7b,0xfa,0xed,0x01] v_med3_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_med3_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x21,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_med3_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x21,0xd6,0x7e,0x82,0xad,0x01] v_med3_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_med3_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x21,0xd6,0x7f,0xf8,0xa8,0x01] v_med3_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_med3_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x21,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_med3_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_med3_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x21,0xd6,0xc1,0xfe,0xf4,0x03] v_med3_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_med3_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x21,0xd6,0xf0,0xfa,0xc0,0x03] v_med3_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x21,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_med3_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x21,0xd6,0xfd,0xd4,0x04,0x03] v_med3_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x21,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_med3_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x21,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_min3_f16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x49,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_min3_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x49,0xd6,0x01,0x05,0x0e,0x00] v_min3_f16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x49,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_min3_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x49,0xd6,0xff,0x05,0xa4,0x01] v_min3_f16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x49,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_min3_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x49,0xd6,0x01,0xfe,0xff,0x01] v_min3_f16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x49,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_min3_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x49,0xd6,0x69,0xd2,0xf8,0x01] v_min3_f16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x49,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_min3_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x49,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x49,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_min3_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x49,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_min3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x49,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_min3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x49,0xd6,0x7b,0xfa,0xed,0xe1] v_min3_f16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x49,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_min3_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x49,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_f16 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x49,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_min3_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x49,0xd6,0x7e,0x82,0xad,0x01] v_min3_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x7d,0x49,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_min3_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x49,0xd6,0x7f,0xf8,0xa8,0xa1] v_min3_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x04,0x49,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX11: v_min3_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x49,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_min3_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x0e,0x49,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_min3_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x49,0xd6,0xc1,0xfe,0xf4,0xc3] v_min3_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x49,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX11: v_min3_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x49,0xd6,0xf0,0xfa,0xc0,0x43] v_min3_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x22,0x49,0xd6,0xfd,0xd4,0x04,0x23] +// GFX11: v_min3_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x49,0xd6,0xfd,0xd4,0x04,0x23] v_min3_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX11: encoding: [0xff,0xc3,0x49,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX11: v_min3_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x49,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_min3_f16 v5, m0, 0.5, m0 clamp mul:4 -// GFX11: encoding: [0x05,0x80,0x49,0xd6,0x7d,0xe0,0xf5,0x11] +// GFX11: v_min3_f16 v5, m0, 0.5, m0 clamp mul:4 ; encoding: [0x05,0x80,0x49,0xd6,0x7d,0xe0,0xf5,0x11] v_min3_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x19,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_min3_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x19,0xd6,0x01,0x05,0x0e,0x00] v_min3_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x19,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_min3_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x19,0xd6,0xff,0x05,0xa4,0x01] v_min3_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x19,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_min3_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x19,0xd6,0x01,0xfe,0xff,0x01] v_min3_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x19,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_min3_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x19,0xd6,0x69,0xd2,0xf8,0x01] v_min3_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x19,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_min3_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x19,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x19,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_min3_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x19,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_min3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x19,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_min3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x19,0xd6,0x7b,0xfa,0xed,0xe1] v_min3_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x19,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_min3_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x19,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x19,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_min3_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x19,0xd6,0x7e,0x82,0xad,0x01] v_min3_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x19,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_min3_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x19,0xd6,0x7f,0xf8,0xa8,0xa1] v_min3_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x19,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_min3_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x19,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_min3_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x19,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_min3_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x19,0xd6,0xc1,0xfe,0xf4,0xc3] v_min3_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x19,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_min3_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x19,0xd6,0xf0,0xfa,0xc0,0x4b] v_min3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x19,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_min3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x19,0xd6,0xfd,0xd4,0x04,0x33] v_min3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x19,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_min3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x19,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_min3_i16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_min3_i16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4a,0xd6,0x01,0x05,0x0e,0x00] v_min3_i16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_min3_i16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4a,0xd6,0xff,0x05,0xa4,0x01] v_min3_i16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_min3_i16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4a,0xd6,0x01,0xfe,0xff,0x01] v_min3_i16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_min3_i16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4a,0xd6,0x69,0xd2,0xf8,0x01] v_min3_i16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_min3_i16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4a,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_i16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_min3_i16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4a,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_min3_i16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_min3_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x4a,0xd6,0x7b,0xfa,0xed,0x01] v_min3_i16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_min3_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4a,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_i16 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_min3_i16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x4a,0xd6,0x7e,0x82,0xad,0x01] v_min3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x78,0x4a,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_min3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x4a,0xd6,0x7f,0xf8,0xa8,0x01] v_min3_i16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x4a,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_min3_i16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x4a,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_min3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x4a,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_min3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x4a,0xd6,0xc1,0xfe,0xf4,0x03] v_min3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x4a,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_min3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4a,0xd6,0xf0,0xfa,0xc0,0x03] v_min3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x20,0x4a,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_min3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x4a,0xd6,0xfd,0xd4,0x04,0x03] v_min3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX11: encoding: [0xff,0x40,0x4a,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_min3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x4a,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_min3_i32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_min3_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1a,0xd6,0x01,0x05,0x0e,0x00] v_min3_i32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_min3_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1a,0xd6,0xff,0x05,0xa4,0x01] v_min3_i32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_min3_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1a,0xd6,0x01,0xfe,0xff,0x01] v_min3_i32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_min3_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1a,0xd6,0x69,0xd2,0xf8,0x01] v_min3_i32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_min3_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1a,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_min3_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_min3_i32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_min3_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x1a,0xd6,0x7b,0xfa,0xed,0x01] v_min3_i32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_min3_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1a,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_i32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_min3_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x1a,0xd6,0x7e,0x82,0xad,0x01] v_min3_i32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_min3_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x1a,0xd6,0x7f,0xf8,0xa8,0x01] v_min3_i32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_min3_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x1a,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_min3_i32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_min3_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x1a,0xd6,0xc1,0xfe,0xf4,0x03] v_min3_i32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_min3_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x1a,0xd6,0xf0,0xfa,0xc0,0x03] v_min3_i32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1a,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_min3_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x1a,0xd6,0xfd,0xd4,0x04,0x03] v_min3_i32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x1a,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_min3_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x1a,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_min3_u16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_min3_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4b,0xd6,0x01,0x05,0x0e,0x00] v_min3_u16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_min3_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4b,0xd6,0xff,0x05,0xa4,0x01] v_min3_u16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_min3_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4b,0xd6,0x01,0xfe,0xff,0x01] v_min3_u16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_min3_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4b,0xd6,0x69,0xd2,0xf8,0x01] v_min3_u16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_min3_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4b,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_min3_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4b,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_min3_u16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_min3_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x4b,0xd6,0x7b,0xfa,0xed,0x01] v_min3_u16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_min3_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4b,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_u16 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_min3_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x4b,0xd6,0x7e,0x82,0xad,0x01] v_min3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX11: encoding: [0x05,0x78,0x4b,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_min3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x4b,0xd6,0x7f,0xf8,0xa8,0x01] v_min3_u16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX11: encoding: [0x05,0x00,0x4b,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX11: v_min3_u16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x4b,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_min3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX11: encoding: [0x05,0x08,0x4b,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_min3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x4b,0xd6,0xc1,0xfe,0xf4,0x03] v_min3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX11: encoding: [0x05,0x10,0x4b,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_min3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4b,0xd6,0xf0,0xfa,0xc0,0x03] v_min3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX11: encoding: [0x05,0x20,0x4b,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_min3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x4b,0xd6,0xfd,0xd4,0x04,0x03] v_min3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX11: encoding: [0xff,0x40,0x4b,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_min3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x4b,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_min3_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_min3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1b,0xd6,0x01,0x05,0x0e,0x00] v_min3_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_min3_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1b,0xd6,0xff,0x05,0xa4,0x01] v_min3_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_min3_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1b,0xd6,0x01,0xfe,0xff,0x01] v_min3_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_min3_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1b,0xd6,0x69,0xd2,0xf8,0x01] v_min3_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_min3_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1b,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_min3_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1b,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_min3_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_min3_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x1b,0xd6,0x7b,0xfa,0xed,0x01] v_min3_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_min3_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1b,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_min3_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x1b,0xd6,0x7e,0x82,0xad,0x01] v_min3_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_min3_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x1b,0xd6,0x7f,0xf8,0xa8,0x01] v_min3_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_min3_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x1b,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_min3_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_min3_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x1b,0xd6,0xc1,0xfe,0xf4,0x03] v_min3_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_min3_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x1b,0xd6,0xf0,0xfa,0xc0,0x03] v_min3_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1b,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_min3_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x1b,0xd6,0xfd,0xd4,0x04,0x03] v_min3_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x1b,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_min3_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x1b,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_min_f64 v[5:6], v[1:2], v[2:3] -// GFX11: encoding: [0x05,0x00,0x29,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_min_f64 v[5:6], v[1:2], v[2:3] ; encoding: [0x05,0x00,0x29,0xd7,0x01,0x05,0x02,0x00] v_min_f64 v[5:6], v[254:255], v[254:255] -// GFX11: encoding: [0x05,0x00,0x29,0xd7,0xfe,0xfd,0x03,0x00] +// GFX11: v_min_f64 v[5:6], v[254:255], v[254:255] ; encoding: [0x05,0x00,0x29,0xd7,0xfe,0xfd,0x03,0x00] v_min_f64 v[5:6], s[2:3], s[4:5] -// GFX11: encoding: [0x05,0x00,0x29,0xd7,0x02,0x08,0x00,0x00] +// GFX11: v_min_f64 v[5:6], s[2:3], s[4:5] ; encoding: [0x05,0x00,0x29,0xd7,0x02,0x08,0x00,0x00] v_min_f64 v[5:6], s[104:105], s[104:105] -// GFX11: encoding: [0x05,0x00,0x29,0xd7,0x68,0xd0,0x00,0x00] +// GFX11: v_min_f64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x29,0xd7,0x68,0xd0,0x00,0x00] v_min_f64 v[5:6], vcc, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x29,0xd7,0x6a,0xf4,0x00,0x00] +// GFX11: v_min_f64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x29,0xd7,0x6a,0xf4,0x00,0x00] v_min_f64 v[5:6], ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x29,0xd7,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_min_f64 v[5:6], ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x29,0xd7,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_min_f64 v[5:6], -|exec|, src_scc -// GFX11: encoding: [0x05,0x01,0x29,0xd7,0x7e,0xfa,0x01,0x20] +// GFX11: v_min_f64 v[5:6], -|exec|, src_scc ; encoding: [0x05,0x01,0x29,0xd7,0x7e,0xfa,0x01,0x20] v_min_f64 v[5:6], null, 0.5 -// GFX11: encoding: [0x05,0x00,0x29,0xd7,0x7c,0xe0,0x01,0x00] +// GFX11: v_min_f64 v[5:6], null, 0.5 ; encoding: [0x05,0x00,0x29,0xd7,0x7c,0xe0,0x01,0x00] v_min_f64 v[5:6], -1, -1 -// GFX11: encoding: [0x05,0x00,0x29,0xd7,0xc1,0x82,0x01,0x00] +// GFX11: v_min_f64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x29,0xd7,0xc1,0x82,0x01,0x00] v_min_f64 v[5:6], 0.5, null mul:2 -// GFX11: encoding: [0x05,0x00,0x29,0xd7,0xf0,0xf8,0x00,0x08] +// GFX11: v_min_f64 v[5:6], 0.5, null mul:2 ; encoding: [0x05,0x00,0x29,0xd7,0xf0,0xf8,0x00,0x08] v_min_f64 v[5:6], -|src_scc|, -|exec| mul:4 -// GFX11: encoding: [0x05,0x03,0x29,0xd7,0xfd,0xfc,0x00,0x70] +// GFX11: v_min_f64 v[5:6], -|src_scc|, -|exec| mul:4 ; encoding: [0x05,0x03,0x29,0xd7,0xfd,0xfc,0x00,0x70] v_min_f64 v[254:255], 0xaf123456, -|vcc| clamp div:2 -// GFX11: encoding: [0xfe,0x82,0x29,0xd7,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_min_f64 v[254:255], 0xaf123456, -|vcc| clamp div:2 ; encoding: [0xfe,0x82,0x29,0xd7,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] v_min_i16 v5.l, v1.l, v2.l -// GFX11: [0x05,0x00,0x0c,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_min_i16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x0c,0xd7,0x01,0x05,0x02,0x00] v_min_i16 v5.l, v255.l, v255.l -// GFX11: [0x05,0x00,0x0c,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_min_i16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x0c,0xd7,0xff,0xff,0x03,0x00] v_min_i16 v5.l, s1, s2 -// GFX11: [0x05,0x00,0x0c,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_min_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0c,0xd7,0x01,0x04,0x00,0x00] v_min_i16 v5.l, s105, s105 -// GFX11: [0x05,0x00,0x0c,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_min_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0c,0xd7,0x69,0xd2,0x00,0x00] v_min_i16 v5.l, vcc_lo, ttmp15 -// GFX11: [0x05,0x00,0x0c,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_min_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0c,0xd7,0x6a,0xf6,0x00,0x00] v_min_i16 v5.l, vcc_hi, 0xfe0b -// GFX11: [0x05,0x00,0x0c,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_min_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0c,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_min_i16 v5.l, ttmp15, src_scc -// GFX11: [0x05,0x00,0x0c,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_min_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0c,0xd7,0x7b,0xfa,0x01,0x00] v_min_i16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0c,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_min_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0c,0xd7,0x7d,0xe0,0x01,0x00] v_min_i16 v5.l, exec_lo, -1 -// GFX11: [0x05,0x00,0x0c,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_min_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0c,0xd7,0x7e,0x82,0x01,0x00] v_min_i16 v5.l, exec_hi, null -// GFX11: [0x05,0x00,0x0c,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_min_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0c,0xd7,0x7f,0xf8,0x00,0x00] v_min_i16 v5.l, null, exec_lo -// GFX11: [0x05,0x00,0x0c,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_min_i16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x0c,0xd7,0x7c,0xfc,0x00,0x00] v_min_i16 v5.l, -1, exec_hi -// GFX11: [0x05,0x00,0x0c,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_min_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0c,0xd7,0xc1,0xfe,0x00,0x00] v_min_i16 v5.l, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0c,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_min_i16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x0c,0xd7,0xf0,0xfa,0x00,0x00] v_min_i16 v5.l, src_scc, vcc_lo -// GFX11: [0x05,0x00,0x0c,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_min_i16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0c,0xd7,0xfd,0xd4,0x00,0x00] v_min_i16 v255.l, 0xfe0b, vcc_hi -// GFX11: [0xff,0x00,0x0c,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_min_i16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x0c,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_min_i16 v5.l, v1.h, v2.l -// GFX11: [0x05,0x08,0x0c,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_min_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0c,0xd7,0x01,0x05,0x02,0x00] v_min_i16 v5.l, v255.l, v255.h -// GFX11: [0x05,0x10,0x0c,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_min_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0c,0xd7,0xff,0xff,0x03,0x00] v_min_i16 v255.h, 0xfe0b, vcc_hi -// GFX11: [0xff,0x40,0x0c,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_min_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x0c,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_min_u16 v5.l, v1.l, v2.l -// GFX11: [0x05,0x00,0x0b,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_min_u16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x0b,0xd7,0x01,0x05,0x02,0x00] v_min_u16 v5.l, v255.l, v255.l -// GFX11: [0x05,0x00,0x0b,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_min_u16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x0b,0xd7,0xff,0xff,0x03,0x00] v_min_u16 v5.l, s1, s2 -// GFX11: [0x05,0x00,0x0b,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_min_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0b,0xd7,0x01,0x04,0x00,0x00] v_min_u16 v5.l, s105, s105 -// GFX11: [0x05,0x00,0x0b,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_min_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0b,0xd7,0x69,0xd2,0x00,0x00] v_min_u16 v5.l, vcc_lo, ttmp15 -// GFX11: [0x05,0x00,0x0b,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_min_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0b,0xd7,0x6a,0xf6,0x00,0x00] v_min_u16 v5.l, vcc_hi, 0xfe0b -// GFX11: [0x05,0x00,0x0b,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_min_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0b,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_min_u16 v5.l, ttmp15, src_scc -// GFX11: [0x05,0x00,0x0b,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_min_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0b,0xd7,0x7b,0xfa,0x01,0x00] v_min_u16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0b,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_min_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0b,0xd7,0x7d,0xe0,0x01,0x00] v_min_u16 v5.l, exec_lo, -1 -// GFX11: [0x05,0x00,0x0b,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_min_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0b,0xd7,0x7e,0x82,0x01,0x00] v_min_u16 v5.l, exec_hi, null -// GFX11: [0x05,0x00,0x0b,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_min_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0b,0xd7,0x7f,0xf8,0x00,0x00] v_min_u16 v5.l, null, exec_lo -// GFX11: [0x05,0x00,0x0b,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_min_u16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x0b,0xd7,0x7c,0xfc,0x00,0x00] v_min_u16 v5.l, -1, exec_hi -// GFX11: [0x05,0x00,0x0b,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_min_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0b,0xd7,0xc1,0xfe,0x00,0x00] v_min_u16 v5.l, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0b,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_min_u16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x0b,0xd7,0xf0,0xfa,0x00,0x00] v_min_u16 v5.l, src_scc, vcc_lo -// GFX11: [0x05,0x00,0x0b,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_min_u16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0b,0xd7,0xfd,0xd4,0x00,0x00] v_min_u16 v255.l, 0xfe0b, vcc_hi -// GFX11: [0xff,0x00,0x0b,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_min_u16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x0b,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_min_u16 v5.l, v1.h, v2.l -// GFX11: [0x05,0x08,0x0b,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_min_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0b,0xd7,0x01,0x05,0x02,0x00] v_min_u16 v5.l, v255.l, v255.h -// GFX11: [0x05,0x10,0x0b,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_min_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0b,0xd7,0xff,0xff,0x03,0x00] v_min_u16 v255.h, 0xfe0b, vcc_hi -// GFX11: [0xff,0x40,0x0b,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_min_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x0b,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_minmax_f16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x61,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_minmax_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x61,0xd6,0x01,0x05,0x0e,0x00] v_minmax_f16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x61,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_minmax_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x61,0xd6,0xff,0x05,0xa4,0x01] v_minmax_f16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x61,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_minmax_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x61,0xd6,0x01,0xfe,0xff,0x01] v_minmax_f16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x61,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_minmax_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x61,0xd6,0x69,0xd2,0xf8,0x01] v_minmax_f16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x61,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_minmax_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x61,0xd6,0x6a,0xf6,0x0c,0x04] v_minmax_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x61,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_minmax_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x61,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_minmax_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x61,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_minmax_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x61,0xd6,0x7b,0xfa,0xed,0xe1] v_minmax_f16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x61,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_minmax_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x61,0xd6,0x7d,0xe0,0xf5,0x01] v_minmax_f16 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x61,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_minmax_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x61,0xd6,0x7e,0x82,0xad,0x01] v_minmax_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x61,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_minmax_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x61,0xd6,0x7f,0xf8,0xa8,0xa1] v_minmax_f16 v5, null, exec_lo, -|0xfe0b| -// GFX11: encoding: [0x05,0x04,0x61,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX11: v_minmax_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x61,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_minmax_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x61,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_minmax_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x61,0xd6,0xc1,0xfe,0xf4,0xc3] v_minmax_f16 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x61,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_minmax_f16 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x61,0xd6,0xf0,0xfa,0xc0,0x4b] v_minmax_f16 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x61,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_minmax_f16 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x61,0xd6,0xfd,0xd4,0x04,0x33] v_minmax_f16 v255, -|0xfe0b|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x61,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] +// GFX11: v_minmax_f16 v255, -|0xfe0b|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x61,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] v_minmax_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x5f,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_minmax_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x5f,0xd6,0x01,0x05,0x0e,0x00] v_minmax_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x5f,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_minmax_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x5f,0xd6,0xff,0x05,0xa4,0x01] v_minmax_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x5f,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_minmax_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x5f,0xd6,0x01,0xfe,0xff,0x01] v_minmax_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x5f,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_minmax_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x5f,0xd6,0x69,0xd2,0xf8,0x01] v_minmax_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x5f,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_minmax_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x5f,0xd6,0x6a,0xf6,0x0c,0x04] v_minmax_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x5f,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_minmax_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x5f,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_minmax_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x5f,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_minmax_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x5f,0xd6,0x7b,0xfa,0xed,0xe1] v_minmax_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x5f,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_minmax_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x5f,0xd6,0x7d,0xe0,0xf5,0x01] v_minmax_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x5f,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_minmax_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x5f,0xd6,0x7e,0x82,0xad,0x01] v_minmax_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x5f,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_minmax_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x5f,0xd6,0x7f,0xf8,0xa8,0xa1] v_minmax_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x5f,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_minmax_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x5f,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_minmax_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x5f,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_minmax_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x5f,0xd6,0xc1,0xfe,0xf4,0xc3] v_minmax_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x5f,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_minmax_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x5f,0xd6,0xf0,0xfa,0xc0,0x4b] v_minmax_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x5f,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_minmax_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x5f,0xd6,0xfd,0xd4,0x04,0x33] v_minmax_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x5f,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_minmax_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x5f,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_minmax_i32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_minmax_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x65,0xd6,0x01,0x05,0x0e,0x00] v_minmax_i32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_minmax_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x65,0xd6,0xff,0x05,0xa4,0x01] v_minmax_i32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_minmax_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x65,0xd6,0x01,0xfe,0xff,0x01] v_minmax_i32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_minmax_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x65,0xd6,0x69,0xd2,0xf8,0x01] v_minmax_i32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_minmax_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x65,0xd6,0x6a,0xf6,0x0c,0x04] v_minmax_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_minmax_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x65,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_minmax_i32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_minmax_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x65,0xd6,0x7b,0xfa,0xed,0x01] v_minmax_i32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_minmax_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x65,0xd6,0x7d,0xe0,0xf5,0x01] v_minmax_i32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_minmax_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x65,0xd6,0x7e,0x82,0xad,0x01] v_minmax_i32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_minmax_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x65,0xd6,0x7f,0xf8,0xa8,0x01] v_minmax_i32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_minmax_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x65,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_minmax_i32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_minmax_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x65,0xd6,0xc1,0xfe,0xf4,0x03] v_minmax_i32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_minmax_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x65,0xd6,0xf0,0xfa,0xc0,0x03] v_minmax_i32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x65,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_minmax_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x65,0xd6,0xfd,0xd4,0x04,0x03] v_minmax_i32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x65,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_minmax_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x65,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_minmax_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_minmax_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x63,0xd6,0x01,0x05,0x0e,0x00] v_minmax_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_minmax_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x63,0xd6,0xff,0x05,0xa4,0x01] v_minmax_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_minmax_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x63,0xd6,0x01,0xfe,0xff,0x01] v_minmax_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_minmax_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x63,0xd6,0x69,0xd2,0xf8,0x01] v_minmax_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_minmax_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x63,0xd6,0x6a,0xf6,0x0c,0x04] v_minmax_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_minmax_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x63,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_minmax_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_minmax_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x63,0xd6,0x7b,0xfa,0xed,0x01] v_minmax_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_minmax_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x63,0xd6,0x7d,0xe0,0xf5,0x01] v_minmax_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_minmax_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x63,0xd6,0x7e,0x82,0xad,0x01] v_minmax_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_minmax_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x63,0xd6,0x7f,0xf8,0xa8,0x01] v_minmax_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_minmax_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x63,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_minmax_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_minmax_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x63,0xd6,0xc1,0xfe,0xf4,0x03] v_minmax_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_minmax_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x63,0xd6,0xf0,0xfa,0xc0,0x03] v_minmax_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x63,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_minmax_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x63,0xd6,0xfd,0xd4,0x04,0x03] v_minmax_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x63,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_minmax_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x63,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mqsad_pk_u16_u8 v[5:6], v[1:2], v2, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x01,0x05,0xea,0x01] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], v[1:2], v2, ttmp[14:15] ; encoding: [0x05,0x00,0x3b,0xd6,0x01,0x05,0xea,0x01] v_mqsad_pk_u16_u8 v[5:6], v[1:2], v255, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x01,0xff,0xeb,0x01] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], v[1:2], v255, ttmp[14:15] ; encoding: [0x05,0x00,0x3b,0xd6,0x01,0xff,0xeb,0x01] v_mqsad_pk_u16_u8 v[5:6], v[1:2], s2, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x01,0x05,0xe8,0x01] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], v[1:2], s2, ttmp[14:15] ; encoding: [0x05,0x00,0x3b,0xd6,0x01,0x05,0xe8,0x01] v_mqsad_pk_u16_u8 v[5:6], v[1:2], s105, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x01,0xd3,0xe8,0x01] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], v[1:2], s105, ttmp[14:15] ; encoding: [0x05,0x00,0x3b,0xd6,0x01,0xd3,0xe8,0x01] v_mqsad_pk_u16_u8 v[5:6], v[254:255], ttmp15, s[6:7] -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0xfe,0xf7,0x18,0x00] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], v[254:255], ttmp15, s[6:7] ; encoding: [0x05,0x00,0x3b,0xd6,0xfe,0xf7,0x18,0x00] v_mqsad_pk_u16_u8 v[5:6], s[2:3], vcc_hi, v[3:4] -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x02,0xd6,0x0c,0x04] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], s[2:3], vcc_hi, v[3:4] ; encoding: [0x05,0x00,0x3b,0xd6,0x02,0xd6,0x0c,0x04] v_mqsad_pk_u16_u8 v[5:6], s[104:105], vcc_lo, s[104:105] -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x68,0xd4,0xa0,0x01] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], s[104:105], vcc_lo, s[104:105] ; encoding: [0x05,0x00,0x3b,0xd6,0x68,0xd4,0xa0,0x01] v_mqsad_pk_u16_u8 v[5:6], vcc, m0, v[254:255] -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x6a,0xfa,0xf8,0x07] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], vcc, m0, v[254:255] ; encoding: [0x05,0x00,0x3b,0xd6,0x6a,0xfa,0xf8,0x07] v_mqsad_pk_u16_u8 v[5:6], ttmp[14:15], exec_hi, null -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x7a,0xfe,0xf0,0x01] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], ttmp[14:15], exec_hi, null ; encoding: [0x05,0x00,0x3b,0xd6,0x7a,0xfe,0xf0,0x01] v_mqsad_pk_u16_u8 v[5:6], exec, exec_lo, exec -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x7e,0xfc,0xf8,0x01] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], exec, exec_lo, exec ; encoding: [0x05,0x00,0x3b,0xd6,0x7e,0xfc,0xf8,0x01] v_mqsad_pk_u16_u8 v[5:6], null, null, vcc -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0x7c,0xf8,0xa8,0x01] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], null, null, vcc ; encoding: [0x05,0x00,0x3b,0xd6,0x7c,0xf8,0xa8,0x01] v_mqsad_pk_u16_u8 v[5:6], -1, -1, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], -1, -1, 0xaf123456 ; encoding: [0x05,0x00,0x3b,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] v_mqsad_pk_u16_u8 v[5:6], 0.5, 0.5, src_scc -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0xf0,0xe0,0xf5,0x03] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], 0.5, 0.5, src_scc ; encoding: [0x05,0x00,0x3b,0xd6,0xf0,0xe0,0xf5,0x03] v_mqsad_pk_u16_u8 v[5:6], src_scc, src_scc, 0.5 -// GFX11: encoding: [0x05,0x00,0x3b,0xd6,0xfd,0xfa,0xc1,0x03] +// GFX11: v_mqsad_pk_u16_u8 v[5:6], src_scc, src_scc, 0.5 ; encoding: [0x05,0x00,0x3b,0xd6,0xfd,0xfa,0xc1,0x03] v_mqsad_pk_u16_u8 v[254:255], 0xaf123456, 0xaf123456, -1 clamp -// GFX11: encoding: [0xfe,0x80,0x3b,0xd6,0xff,0xfe,0x05,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_mqsad_pk_u16_u8 v[254:255], 0xaf123456, 0xaf123456, -1 clamp ; encoding: [0xfe,0x80,0x3b,0xd6,0xff,0xfe,0x05,0x03,0x56,0x34,0x12,0xaf] v_mqsad_u32_u8 v[5:8], v[1:2], v2, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x01,0x05,0xf2,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], v[1:2], v2, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x01,0x05,0xf2,0x07] v_mqsad_u32_u8 v[5:8], v[1:2], v255, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x01,0xff,0xf3,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], v[1:2], v255, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x01,0xff,0xf3,0x07] v_mqsad_u32_u8 v[5:8], v[1:2], s2, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x01,0x05,0xf0,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], v[1:2], s2, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x01,0x05,0xf0,0x07] v_mqsad_u32_u8 v[5:8], v[1:2], s105, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x01,0xd3,0xf0,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], v[1:2], s105, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x01,0xd3,0xf0,0x07] v_mqsad_u32_u8 v[5:8], v[254:255], ttmp15, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0xfe,0xf7,0xf0,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], v[254:255], ttmp15, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0xfe,0xf7,0xf0,0x07] v_mqsad_u32_u8 v[5:8], s[2:3], vcc_hi, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x02,0xd6,0xf0,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], s[2:3], vcc_hi, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x02,0xd6,0xf0,0x07] v_mqsad_u32_u8 v[5:8], s[104:105], vcc_lo, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x68,0xd4,0xf0,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], s[104:105], vcc_lo, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x68,0xd4,0xf0,0x07] v_mqsad_u32_u8 v[5:8], vcc, m0, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x6a,0xfa,0xf0,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], vcc, m0, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x6a,0xfa,0xf0,0x07] v_mqsad_u32_u8 v[5:8], ttmp[14:15], exec_hi, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x7a,0xfe,0xf0,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], ttmp[14:15], exec_hi, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x7a,0xfe,0xf0,0x07] v_mqsad_u32_u8 v[5:8], exec, exec_lo, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x7e,0xfc,0xf0,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], exec, exec_lo, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x7e,0xfc,0xf0,0x07] v_mqsad_u32_u8 v[5:8], null, null, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0x7c,0xf8,0xf0,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], null, null, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x7c,0xf8,0xf0,0x07] v_mqsad_u32_u8 v[5:8], -1, -1, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0xc1,0x82,0xf1,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], -1, -1, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0xc1,0x82,0xf1,0x07] v_mqsad_u32_u8 v[5:8], 0.5, 0.5, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0xf0,0xe0,0xf1,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], 0.5, 0.5, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0xf0,0xe0,0xf1,0x07] v_mqsad_u32_u8 v[5:8], src_scc, src_scc, v[252:255] -// GFX11: encoding: [0x05,0x00,0x3d,0xd6,0xfd,0xfa,0xf1,0x07] +// GFX11: v_mqsad_u32_u8 v[5:8], src_scc, src_scc, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0xfd,0xfa,0xf1,0x07] v_mqsad_u32_u8 v[252:255], 0xaf123456, 0xaf123456, v[3:6] clamp -// GFX11: encoding: [0xfc,0x80,0x3d,0xd6,0xff,0xfe,0x0d,0x04,0x56,0x34,0x12,0xaf] +// GFX11: v_mqsad_u32_u8 v[252:255], 0xaf123456, 0xaf123456, v[3:6] clamp ; encoding: [0xfc,0x80,0x3d,0xd6,0xff,0xfe,0x0d,0x04,0x56,0x34,0x12,0xaf] v_msad_u8 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_msad_u8 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x39,0xd6,0x01,0x05,0x0e,0x00] v_msad_u8 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_msad_u8 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x39,0xd6,0xff,0x05,0xa4,0x01] v_msad_u8 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_msad_u8 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x39,0xd6,0x01,0xfe,0xff,0x01] v_msad_u8 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_msad_u8 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x39,0xd6,0x69,0xd2,0xf8,0x01] v_msad_u8 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_msad_u8 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x39,0xd6,0x6a,0xf6,0x0c,0x04] v_msad_u8 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_msad_u8 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x39,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_msad_u8 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_msad_u8 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x39,0xd6,0x7b,0xfa,0xed,0x01] v_msad_u8 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_msad_u8 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x39,0xd6,0x7d,0xe0,0xf5,0x01] v_msad_u8 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_msad_u8 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x39,0xd6,0x7e,0x82,0xad,0x01] v_msad_u8 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_msad_u8 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x39,0xd6,0x7f,0xf8,0xa8,0x01] v_msad_u8 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_msad_u8 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x39,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_msad_u8 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_msad_u8 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x39,0xd6,0xc1,0xfe,0xf4,0x03] v_msad_u8 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_msad_u8 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x39,0xd6,0xf0,0xfa,0xc0,0x03] v_msad_u8 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x39,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_msad_u8 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x39,0xd6,0xfd,0xd4,0x04,0x03] v_msad_u8 v255, 0xaf123456, vcc_hi, null clamp -// GFX11: encoding: [0xff,0x80,0x39,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_msad_u8 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x39,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mul_f64 v[5:6], v[1:2], v[2:3] -// GFX11: encoding: [0x05,0x00,0x28,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_mul_f64 v[5:6], v[1:2], v[2:3] ; encoding: [0x05,0x00,0x28,0xd7,0x01,0x05,0x02,0x00] v_mul_f64 v[5:6], v[254:255], v[254:255] -// GFX11: encoding: [0x05,0x00,0x28,0xd7,0xfe,0xfd,0x03,0x00] +// GFX11: v_mul_f64 v[5:6], v[254:255], v[254:255] ; encoding: [0x05,0x00,0x28,0xd7,0xfe,0xfd,0x03,0x00] v_mul_f64 v[5:6], s[2:3], s[4:5] -// GFX11: encoding: [0x05,0x00,0x28,0xd7,0x02,0x08,0x00,0x00] +// GFX11: v_mul_f64 v[5:6], s[2:3], s[4:5] ; encoding: [0x05,0x00,0x28,0xd7,0x02,0x08,0x00,0x00] v_mul_f64 v[5:6], s[104:105], s[104:105] -// GFX11: encoding: [0x05,0x00,0x28,0xd7,0x68,0xd0,0x00,0x00] +// GFX11: v_mul_f64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x28,0xd7,0x68,0xd0,0x00,0x00] v_mul_f64 v[5:6], vcc, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x28,0xd7,0x6a,0xf4,0x00,0x00] +// GFX11: v_mul_f64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x28,0xd7,0x6a,0xf4,0x00,0x00] v_mul_f64 v[5:6], ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x28,0xd7,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_f64 v[5:6], ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x28,0xd7,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_f64 v[5:6], -|exec|, src_scc -// GFX11: encoding: [0x05,0x01,0x28,0xd7,0x7e,0xfa,0x01,0x20] +// GFX11: v_mul_f64 v[5:6], -|exec|, src_scc ; encoding: [0x05,0x01,0x28,0xd7,0x7e,0xfa,0x01,0x20] v_mul_f64 v[5:6], null, 0.5 -// GFX11: encoding: [0x05,0x00,0x28,0xd7,0x7c,0xe0,0x01,0x00] +// GFX11: v_mul_f64 v[5:6], null, 0.5 ; encoding: [0x05,0x00,0x28,0xd7,0x7c,0xe0,0x01,0x00] v_mul_f64 v[5:6], -1, -1 -// GFX11: encoding: [0x05,0x00,0x28,0xd7,0xc1,0x82,0x01,0x00] +// GFX11: v_mul_f64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x28,0xd7,0xc1,0x82,0x01,0x00] v_mul_f64 v[5:6], 0.5, null mul:2 -// GFX11: encoding: [0x05,0x00,0x28,0xd7,0xf0,0xf8,0x00,0x08] +// GFX11: v_mul_f64 v[5:6], 0.5, null mul:2 ; encoding: [0x05,0x00,0x28,0xd7,0xf0,0xf8,0x00,0x08] v_mul_f64 v[5:6], -|src_scc|, -|exec| mul:4 -// GFX11: encoding: [0x05,0x03,0x28,0xd7,0xfd,0xfc,0x00,0x70] +// GFX11: v_mul_f64 v[5:6], -|src_scc|, -|exec| mul:4 ; encoding: [0x05,0x03,0x28,0xd7,0xfd,0xfc,0x00,0x70] v_mul_f64 v[254:255], 0xaf123456, -|vcc| clamp div:2 -// GFX11: encoding: [0xfe,0x82,0x28,0xd7,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_f64 v[254:255], 0xaf123456, -|vcc| clamp div:2 ; encoding: [0xfe,0x82,0x28,0xd7,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] v_mul_hi_i32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_mul_hi_i32 v5, v1, v2 ; encoding: [0x05,0x00,0x2e,0xd7,0x01,0x05,0x02,0x00] v_mul_hi_i32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_mul_hi_i32 v5, v255, v255 ; encoding: [0x05,0x00,0x2e,0xd7,0xff,0xff,0x03,0x00] v_mul_hi_i32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_mul_hi_i32 v5, s1, s2 ; encoding: [0x05,0x00,0x2e,0xd7,0x01,0x04,0x00,0x00] v_mul_hi_i32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_hi_i32 v5, s105, s105 ; encoding: [0x05,0x00,0x2e,0xd7,0x69,0xd2,0x00,0x00] v_mul_hi_i32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_hi_i32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2e,0xd7,0x6a,0xf6,0x00,0x00] v_mul_hi_i32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_i32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2e,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_i32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_hi_i32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2e,0xd7,0x7b,0xfa,0x01,0x00] v_mul_hi_i32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_hi_i32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2e,0xd7,0x7d,0xe0,0x01,0x00] v_mul_hi_i32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_hi_i32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2e,0xd7,0x7e,0x82,0x01,0x00] v_mul_hi_i32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_hi_i32 v5, exec_hi, null ; encoding: [0x05,0x00,0x2e,0xd7,0x7f,0xf8,0x00,0x00] v_mul_hi_i32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_hi_i32 v5, null, exec_lo ; encoding: [0x05,0x00,0x2e,0xd7,0x7c,0xfc,0x00,0x00] v_mul_hi_i32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_hi_i32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2e,0xd7,0xc1,0xfe,0x00,0x00] v_mul_hi_i32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_mul_hi_i32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x2e,0xd7,0xf0,0xfa,0x00,0x00] v_mul_hi_i32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x2e,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_mul_hi_i32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x2e,0xd7,0xfd,0xd4,0x00,0x00] v_mul_hi_i32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x2e,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_i32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x2e,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_u32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_mul_hi_u32 v5, v1, v2 ; encoding: [0x05,0x00,0x2d,0xd7,0x01,0x05,0x02,0x00] v_mul_hi_u32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_mul_hi_u32 v5, v255, v255 ; encoding: [0x05,0x00,0x2d,0xd7,0xff,0xff,0x03,0x00] v_mul_hi_u32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_mul_hi_u32 v5, s1, s2 ; encoding: [0x05,0x00,0x2d,0xd7,0x01,0x04,0x00,0x00] v_mul_hi_u32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_hi_u32 v5, s105, s105 ; encoding: [0x05,0x00,0x2d,0xd7,0x69,0xd2,0x00,0x00] v_mul_hi_u32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_hi_u32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2d,0xd7,0x6a,0xf6,0x00,0x00] v_mul_hi_u32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_u32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2d,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_u32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_hi_u32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2d,0xd7,0x7b,0xfa,0x01,0x00] v_mul_hi_u32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_hi_u32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2d,0xd7,0x7d,0xe0,0x01,0x00] v_mul_hi_u32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_hi_u32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2d,0xd7,0x7e,0x82,0x01,0x00] v_mul_hi_u32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_hi_u32 v5, exec_hi, null ; encoding: [0x05,0x00,0x2d,0xd7,0x7f,0xf8,0x00,0x00] v_mul_hi_u32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_hi_u32 v5, null, exec_lo ; encoding: [0x05,0x00,0x2d,0xd7,0x7c,0xfc,0x00,0x00] v_mul_hi_u32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_hi_u32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2d,0xd7,0xc1,0xfe,0x00,0x00] v_mul_hi_u32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_mul_hi_u32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x2d,0xd7,0xf0,0xfa,0x00,0x00] v_mul_hi_u32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x2d,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_mul_hi_u32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x2d,0xd7,0xfd,0xd4,0x00,0x00] v_mul_hi_u32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x2d,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_u32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x2d,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_lo_u16 v5.l, v1.l, v2.l -// GFX11: [0x05,0x00,0x05,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_mul_lo_u16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x05,0xd7,0x01,0x05,0x02,0x00] v_mul_lo_u16 v5.l, v255.l, v255.l -// GFX11: [0x05,0x00,0x05,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_mul_lo_u16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x05,0xd7,0xff,0xff,0x03,0x00] v_mul_lo_u16 v5.l, s1, s2 -// GFX11: [0x05,0x00,0x05,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_mul_lo_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x05,0xd7,0x01,0x04,0x00,0x00] v_mul_lo_u16 v5.l, s105, s105 -// GFX11: [0x05,0x00,0x05,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_lo_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x05,0xd7,0x69,0xd2,0x00,0x00] v_mul_lo_u16 v5.l, vcc_lo, ttmp15 -// GFX11: [0x05,0x00,0x05,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_lo_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x05,0xd7,0x6a,0xf6,0x00,0x00] v_mul_lo_u16 v5.l, vcc_hi, 0xfe0b -// GFX11: [0x05,0x00,0x05,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_mul_lo_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x05,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_mul_lo_u16 v5.l, ttmp15, src_scc -// GFX11: [0x05,0x00,0x05,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_lo_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x05,0xd7,0x7b,0xfa,0x01,0x00] v_mul_lo_u16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x05,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_lo_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x05,0xd7,0x7d,0xe0,0x01,0x00] v_mul_lo_u16 v5.l, exec_lo, -1 -// GFX11: [0x05,0x00,0x05,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_lo_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x05,0xd7,0x7e,0x82,0x01,0x00] v_mul_lo_u16 v5.l, exec_hi, null -// GFX11: [0x05,0x00,0x05,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_lo_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x05,0xd7,0x7f,0xf8,0x00,0x00] v_mul_lo_u16 v5.l, null, exec_lo -// GFX11: [0x05,0x00,0x05,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_lo_u16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x05,0xd7,0x7c,0xfc,0x00,0x00] v_mul_lo_u16 v5.l, -1, exec_hi -// GFX11: [0x05,0x00,0x05,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_lo_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x05,0xd7,0xc1,0xfe,0x00,0x00] v_mul_lo_u16 v5.l, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x05,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_mul_lo_u16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x05,0xd7,0xf0,0xfa,0x00,0x00] v_mul_lo_u16 v5.l, src_scc, vcc_lo -// GFX11: [0x05,0x00,0x05,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_mul_lo_u16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x05,0xd7,0xfd,0xd4,0x00,0x00] v_mul_lo_u16 v255.l, 0xfe0b, vcc_hi -// GFX11: [0xff,0x00,0x05,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_mul_lo_u16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x05,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_mul_lo_u16 v5.l, v1.h, v2.l -// GFX11: [0x05,0x08,0x05,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_mul_lo_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x05,0xd7,0x01,0x05,0x02,0x00] v_mul_lo_u16 v5.l, v255.l, v255.h -// GFX11: [0x05,0x10,0x05,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_mul_lo_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x05,0xd7,0xff,0xff,0x03,0x00] v_mul_lo_u16 v255.h, 0xfe0b, vcc_hi -// GFX11: [0xff,0x40,0x05,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_mul_lo_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x05,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_mul_lo_u32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_mul_lo_u32 v5, v1, v2 ; encoding: [0x05,0x00,0x2c,0xd7,0x01,0x05,0x02,0x00] v_mul_lo_u32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_mul_lo_u32 v5, v255, v255 ; encoding: [0x05,0x00,0x2c,0xd7,0xff,0xff,0x03,0x00] v_mul_lo_u32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_mul_lo_u32 v5, s1, s2 ; encoding: [0x05,0x00,0x2c,0xd7,0x01,0x04,0x00,0x00] v_mul_lo_u32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_lo_u32 v5, s105, s105 ; encoding: [0x05,0x00,0x2c,0xd7,0x69,0xd2,0x00,0x00] v_mul_lo_u32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_lo_u32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2c,0xd7,0x6a,0xf6,0x00,0x00] v_mul_lo_u32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_lo_u32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2c,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_lo_u32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_lo_u32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2c,0xd7,0x7b,0xfa,0x01,0x00] v_mul_lo_u32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_lo_u32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2c,0xd7,0x7d,0xe0,0x01,0x00] v_mul_lo_u32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_lo_u32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2c,0xd7,0x7e,0x82,0x01,0x00] v_mul_lo_u32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_lo_u32 v5, exec_hi, null ; encoding: [0x05,0x00,0x2c,0xd7,0x7f,0xf8,0x00,0x00] v_mul_lo_u32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_lo_u32 v5, null, exec_lo ; encoding: [0x05,0x00,0x2c,0xd7,0x7c,0xfc,0x00,0x00] v_mul_lo_u32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_lo_u32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2c,0xd7,0xc1,0xfe,0x00,0x00] v_mul_lo_u32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_mul_lo_u32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x2c,0xd7,0xf0,0xfa,0x00,0x00] v_mul_lo_u32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x2c,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_mul_lo_u32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x2c,0xd7,0xfd,0xd4,0x00,0x00] v_mul_lo_u32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x2c,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_lo_u32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x2c,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mullit_f32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x18,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_mullit_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x18,0xd6,0x01,0x05,0x0e,0x00] v_mullit_f32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x18,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_mullit_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x18,0xd6,0xff,0x05,0xa4,0x01] v_mullit_f32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x18,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_mullit_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x18,0xd6,0x01,0xfe,0xff,0x01] v_mullit_f32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x18,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_mullit_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x18,0xd6,0x69,0xd2,0xf8,0x01] v_mullit_f32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x18,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_mullit_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x18,0xd6,0x6a,0xf6,0x0c,0x04] v_mullit_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x18,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_mullit_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x18,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_mullit_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX11: encoding: [0x05,0x07,0x18,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX11: v_mullit_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x18,0xd6,0x7b,0xfa,0xed,0xe1] v_mullit_f32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x18,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_mullit_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x18,0xd6,0x7d,0xe0,0xf5,0x01] v_mullit_f32 v5, |exec_lo|, -1, vcc_hi -// GFX11: encoding: [0x05,0x01,0x18,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_mullit_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x18,0xd6,0x7e,0x82,0xad,0x01] v_mullit_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX11: encoding: [0x05,0x05,0x18,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX11: v_mullit_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x18,0xd6,0x7f,0xf8,0xa8,0xa1] v_mullit_f32 v5, null, exec_lo, -|0xaf123456| -// GFX11: encoding: [0x05,0x04,0x18,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX11: v_mullit_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x18,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_mullit_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX11: encoding: [0x05,0x06,0x18,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX11: v_mullit_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x18,0xd6,0xc1,0xfe,0xf4,0xc3] v_mullit_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x18,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX11: v_mullit_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x18,0xd6,0xf0,0xfa,0xc0,0x4b] v_mullit_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX11: encoding: [0x05,0x02,0x18,0xd6,0xfd,0xd4,0x04,0x33] +// GFX11: v_mullit_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x18,0xd6,0xfd,0xd4,0x04,0x33] v_mullit_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX11: encoding: [0xff,0x83,0x18,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX11: v_mullit_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x18,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_or3_b32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_or3_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x58,0xd6,0x01,0x05,0x0e,0x00] v_or3_b32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_or3_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x58,0xd6,0xff,0x05,0xa4,0x01] v_or3_b32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_or3_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x58,0xd6,0x01,0xfe,0xff,0x01] v_or3_b32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_or3_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x58,0xd6,0x69,0xd2,0xf8,0x01] v_or3_b32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_or3_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x58,0xd6,0x6a,0xf6,0x0c,0x04] v_or3_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_or3_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x58,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_or3_b32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_or3_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x58,0xd6,0x7b,0xfa,0xed,0x01] v_or3_b32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_or3_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x58,0xd6,0x7d,0xe0,0xf5,0x01] v_or3_b32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_or3_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x58,0xd6,0x7e,0x82,0xad,0x01] v_or3_b32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_or3_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x58,0xd6,0x7f,0xf8,0xa8,0x01] v_or3_b32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_or3_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x58,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_or3_b32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_or3_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x58,0xd6,0xc1,0xfe,0xf4,0x03] v_or3_b32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_or3_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x58,0xd6,0xf0,0xfa,0xc0,0x03] v_or3_b32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x58,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_or3_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x58,0xd6,0xfd,0xd4,0x04,0x03] v_or3_b32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x58,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_or3_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x58,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_or_b16 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_or_b16 v5, v1, v2 ; encoding: [0x05,0x00,0x63,0xd7,0x01,0x05,0x02,0x00] v_or_b16 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_or_b16 v5, v255, v255 ; encoding: [0x05,0x00,0x63,0xd7,0xff,0xff,0x03,0x00] v_or_b16 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_or_b16 v5, s1, s2 ; encoding: [0x05,0x00,0x63,0xd7,0x01,0x04,0x00,0x00] v_or_b16 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_or_b16 v5, s105, s105 ; encoding: [0x05,0x00,0x63,0xd7,0x69,0xd2,0x00,0x00] v_or_b16 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_or_b16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x63,0xd7,0x6a,0xf6,0x00,0x00] v_or_b16 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_or_b16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x63,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_or_b16 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_or_b16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x63,0xd7,0x7b,0xfa,0x01,0x00] v_or_b16 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_or_b16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x63,0xd7,0x7d,0xe0,0x01,0x00] v_or_b16 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_or_b16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x63,0xd7,0x7e,0x82,0x01,0x00] v_or_b16 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_or_b16 v5, exec_hi, null ; encoding: [0x05,0x00,0x63,0xd7,0x7f,0xf8,0x00,0x00] v_or_b16 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_or_b16 v5, null, exec_lo ; encoding: [0x05,0x00,0x63,0xd7,0x7c,0xfc,0x00,0x00] v_or_b16 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_or_b16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x63,0xd7,0xc1,0xfe,0x00,0x00] v_or_b16 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_or_b16 v5, 0.5, m0 ; encoding: [0x05,0x00,0x63,0xd7,0xf0,0xfa,0x00,0x00] v_or_b16 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x63,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_or_b16 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x63,0xd7,0xfd,0xd4,0x00,0x00] v_or_b16 v255, 0xfe0b, vcc_hi -// GFX11: encoding: [0xff,0x00,0x63,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_or_b16 v255, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x63,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_pack_b32_f16 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_pack_b32_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x11,0xd7,0x01,0x05,0x02,0x00] v_pack_b32_f16 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_pack_b32_f16 v5, v255, v255 ; encoding: [0x05,0x00,0x11,0xd7,0xff,0xff,0x03,0x00] v_pack_b32_f16 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_pack_b32_f16 v5, s1, s2 ; encoding: [0x05,0x00,0x11,0xd7,0x01,0x04,0x00,0x00] v_pack_b32_f16 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_pack_b32_f16 v5, s105, s105 ; encoding: [0x05,0x00,0x11,0xd7,0x69,0xd2,0x00,0x00] v_pack_b32_f16 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_pack_b32_f16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x11,0xd7,0x6a,0xf6,0x00,0x00] v_pack_b32_f16 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_pack_b32_f16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x11,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_pack_b32_f16 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_pack_b32_f16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x11,0xd7,0x7b,0xfa,0x01,0x00] v_pack_b32_f16 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_pack_b32_f16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x11,0xd7,0x7d,0xe0,0x01,0x00] v_pack_b32_f16 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_pack_b32_f16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x11,0xd7,0x7e,0x82,0x01,0x00] v_pack_b32_f16 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x11,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_pack_b32_f16 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x11,0xd7,0x7f,0xf8,0x00,0x00] v_pack_b32_f16 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_pack_b32_f16 v5, null, exec_lo ; encoding: [0x05,0x00,0x11,0xd7,0x7c,0xfc,0x00,0x00] v_pack_b32_f16 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_pack_b32_f16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x11,0xd7,0xc1,0xfe,0x00,0x00] v_pack_b32_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX11: encoding: [0x05,0x00,0x11,0xd7,0xf0,0xfa,0x00,0x40] +// GFX11: v_pack_b32_f16 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x11,0xd7,0xf0,0xfa,0x00,0x40] v_pack_b32_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX11: encoding: [0x05,0x0a,0x11,0xd7,0xfd,0xd4,0x00,0x20] +// GFX11: v_pack_b32_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] ; encoding: [0x05,0x0a,0x11,0xd7,0xfd,0xd4,0x00,0x20] v_pack_b32_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX11: encoding: [0xff,0x13,0x11,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_pack_b32_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] ; encoding: [0xff,0x13,0x11,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_perm_b32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_perm_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x44,0xd6,0x01,0x05,0x0e,0x00] v_perm_b32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_perm_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x44,0xd6,0xff,0x05,0xa4,0x01] v_perm_b32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_perm_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x44,0xd6,0x01,0xfe,0xff,0x01] v_perm_b32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_perm_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x44,0xd6,0x69,0xd2,0xf8,0x01] v_perm_b32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_perm_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x44,0xd6,0x6a,0xf6,0x0c,0x04] v_perm_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_perm_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x44,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_perm_b32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_perm_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x44,0xd6,0x7b,0xfa,0xed,0x01] v_perm_b32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_perm_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x44,0xd6,0x7d,0xe0,0xf5,0x01] v_perm_b32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_perm_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x44,0xd6,0x7e,0x82,0xad,0x01] v_perm_b32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_perm_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x44,0xd6,0x7f,0xf8,0xa8,0x01] v_perm_b32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_perm_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x44,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_perm_b32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_perm_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x44,0xd6,0xc1,0xfe,0xf4,0x03] v_perm_b32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_perm_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x44,0xd6,0xf0,0xfa,0xc0,0x03] v_perm_b32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x44,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_perm_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x44,0xd6,0xfd,0xd4,0x04,0x03] v_perm_b32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x44,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_perm_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x44,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_permlane16_b32 v5, v1, s2, s3 -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0x05,0x0c,0x00] +// GFX11: v_permlane16_b32 v5, v1, s2, s3 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0x05,0x0c,0x00] v_permlane16_b32 v5, v1, s105, s105 -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd3,0xa4,0x01] +// GFX11: v_permlane16_b32 v5, v1, s105, s105 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd3,0xa4,0x01] v_permlane16_b32 v5, v1, ttmp15, ttmp15 -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xf7,0xec,0x01] +// GFX11: v_permlane16_b32 v5, v1, ttmp15, ttmp15 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xf7,0xec,0x01] v_permlane16_b32 v5, v1, vcc_hi, exec_lo -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd7,0xf8,0x01] +// GFX11: v_permlane16_b32 v5, v1, vcc_hi, exec_lo ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd7,0xf8,0x01] v_permlane16_b32 v5, v1, vcc_lo, m0 -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd5,0xf4,0x01] +// GFX11: v_permlane16_b32 v5, v1, vcc_lo, m0 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd5,0xf4,0x01] v_permlane16_b32 v5, v1, m0, vcc_hi -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xfb,0xac,0x01] +// GFX11: v_permlane16_b32 v5, v1, m0, vcc_hi ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xfb,0xac,0x01] v_permlane16_b32 v5, v1, exec_hi, vcc_lo -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xff,0xa8,0x01] +// GFX11: v_permlane16_b32 v5, v1, exec_hi, vcc_lo ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xff,0xa8,0x01] v_permlane16_b32 v5, v1, exec_lo, src_scc -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xfd,0xf4,0x03] +// GFX11: v_permlane16_b32 v5, v1, exec_lo, src_scc ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xfd,0xf4,0x03] v_permlane16_b32 v5, v1, null, 0.5 op_sel:[1,1] -// GFX11: encoding: [0x05,0x18,0x5b,0xd6,0x01,0xf9,0xc0,0x03] +// GFX11: v_permlane16_b32 v5, v1, null, 0.5 op_sel:[1,1] ; encoding: [0x05,0x18,0x5b,0xd6,0x01,0xf9,0xc0,0x03] v_permlane16_b32 v5, v1, -1, -1 op_sel:[0,0] -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0x83,0x05,0x03] +// GFX11: v_permlane16_b32 v5, v1, -1, -1 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0x83,0x05,0x03] v_permlane16_b32 v5, v1, 0.5, null op_sel:[1,0] -// GFX11: encoding: [0x05,0x08,0x5b,0xd6,0x01,0xe1,0xf1,0x01] +// GFX11: v_permlane16_b32 v5, v1, 0.5, null op_sel:[1,0] ; encoding: [0x05,0x08,0x5b,0xd6,0x01,0xe1,0xf1,0x01] v_permlane16_b32 v255, v255, src_scc, exec_hi op_sel:[0,1] -// GFX11: encoding: [0xff,0x10,0x5b,0xd6,0xff,0xfb,0xfd,0x01] +// GFX11: v_permlane16_b32 v255, v255, src_scc, exec_hi op_sel:[0,1] ; encoding: [0xff,0x10,0x5b,0xd6,0xff,0xfb,0xfd,0x01] v_permlane16_b32 v5, v1, 0xaf123456, s3 -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_permlane16_b32 v5, v1, 0xaf123456, s3 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] v_permlane16_b32 v5, v1, s2, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0x05,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_permlane16_b32 v5, v1, s2, 0xaf123456 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0x05,0xfc,0x03,0x56,0x34,0x12,0xaf] v_permlane16_b32 v5, v1, 0x12345678, 0x12345678 -// GFX11: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xff,0xfd,0x03,0x78,0x56,0x34,0x12] +// GFX11: v_permlane16_b32 v5, v1, 0x12345678, 0x12345678 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xff,0xfd,0x03,0x78,0x56,0x34,0x12] v_permlanex16_b32 v5, v1, s2, s3 -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0x05,0x0c,0x00] +// GFX11: v_permlanex16_b32 v5, v1, s2, s3 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0x05,0x0c,0x00] v_permlanex16_b32 v5, v1, s105, s105 -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd3,0xa4,0x01] +// GFX11: v_permlanex16_b32 v5, v1, s105, s105 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd3,0xa4,0x01] v_permlanex16_b32 v5, v1, ttmp15, ttmp15 -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xf7,0xec,0x01] +// GFX11: v_permlanex16_b32 v5, v1, ttmp15, ttmp15 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xf7,0xec,0x01] v_permlanex16_b32 v5, v1, vcc_hi, exec_lo -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd7,0xf8,0x01] +// GFX11: v_permlanex16_b32 v5, v1, vcc_hi, exec_lo ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd7,0xf8,0x01] v_permlanex16_b32 v5, v1, vcc_lo, m0 -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd5,0xf4,0x01] +// GFX11: v_permlanex16_b32 v5, v1, vcc_lo, m0 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd5,0xf4,0x01] v_permlanex16_b32 v5, v1, m0, vcc_hi -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xfb,0xac,0x01] +// GFX11: v_permlanex16_b32 v5, v1, m0, vcc_hi ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xfb,0xac,0x01] v_permlanex16_b32 v5, v1, exec_hi, vcc_lo -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xff,0xa8,0x01] +// GFX11: v_permlanex16_b32 v5, v1, exec_hi, vcc_lo ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xff,0xa8,0x01] v_permlanex16_b32 v5, v1, exec_lo, src_scc -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xfd,0xf4,0x03] +// GFX11: v_permlanex16_b32 v5, v1, exec_lo, src_scc ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xfd,0xf4,0x03] v_permlanex16_b32 v5, v1, null, 0.5 op_sel:[1,1] -// GFX11: encoding: [0x05,0x18,0x5c,0xd6,0x01,0xf9,0xc0,0x03] +// GFX11: v_permlanex16_b32 v5, v1, null, 0.5 op_sel:[1,1] ; encoding: [0x05,0x18,0x5c,0xd6,0x01,0xf9,0xc0,0x03] v_permlanex16_b32 v5, v1, -1, -1 op_sel:[0,0] -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0x83,0x05,0x03] +// GFX11: v_permlanex16_b32 v5, v1, -1, -1 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0x83,0x05,0x03] v_permlanex16_b32 v5, v1, 0.5, null op_sel:[1,0] -// GFX11: encoding: [0x05,0x08,0x5c,0xd6,0x01,0xe1,0xf1,0x01] +// GFX11: v_permlanex16_b32 v5, v1, 0.5, null op_sel:[1,0] ; encoding: [0x05,0x08,0x5c,0xd6,0x01,0xe1,0xf1,0x01] v_permlanex16_b32 v255, v255, src_scc, exec_hi op_sel:[0,1] -// GFX11: encoding: [0xff,0x10,0x5c,0xd6,0xff,0xfb,0xfd,0x01] +// GFX11: v_permlanex16_b32 v255, v255, src_scc, exec_hi op_sel:[0,1] ; encoding: [0xff,0x10,0x5c,0xd6,0xff,0xfb,0xfd,0x01] v_permlanex16_b32 v5, v1, 0xaf123456, s3 -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_permlanex16_b32 v5, v1, 0xaf123456, s3 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] v_permlanex16_b32 v5, v1, s2, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0x05,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_permlanex16_b32 v5, v1, s2, 0xaf123456 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0x05,0xfc,0x03,0x56,0x34,0x12,0xaf] v_permlanex16_b32 v5, v1, 0x12345678, 0x12345678 -// GFX11: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xff,0xfd,0x03,0x78,0x56,0x34,0x12] +// GFX11: v_permlanex16_b32 v5, v1, 0x12345678, 0x12345678 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xff,0xfd,0x03,0x78,0x56,0x34,0x12] v_qsad_pk_u16_u8 v[5:6], v[1:2], v2, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x01,0x05,0xea,0x01] +// GFX11: v_qsad_pk_u16_u8 v[5:6], v[1:2], v2, ttmp[14:15] ; encoding: [0x05,0x00,0x3a,0xd6,0x01,0x05,0xea,0x01] v_qsad_pk_u16_u8 v[5:6], v[1:2], v255, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x01,0xff,0xeb,0x01] +// GFX11: v_qsad_pk_u16_u8 v[5:6], v[1:2], v255, ttmp[14:15] ; encoding: [0x05,0x00,0x3a,0xd6,0x01,0xff,0xeb,0x01] v_qsad_pk_u16_u8 v[5:6], v[1:2], s2, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x01,0x05,0xe8,0x01] +// GFX11: v_qsad_pk_u16_u8 v[5:6], v[1:2], s2, ttmp[14:15] ; encoding: [0x05,0x00,0x3a,0xd6,0x01,0x05,0xe8,0x01] v_qsad_pk_u16_u8 v[5:6], v[1:2], s105, ttmp[14:15] -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x01,0xd3,0xe8,0x01] +// GFX11: v_qsad_pk_u16_u8 v[5:6], v[1:2], s105, ttmp[14:15] ; encoding: [0x05,0x00,0x3a,0xd6,0x01,0xd3,0xe8,0x01] v_qsad_pk_u16_u8 v[5:6], v[254:255], ttmp15, s[6:7] -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0xfe,0xf7,0x18,0x00] +// GFX11: v_qsad_pk_u16_u8 v[5:6], v[254:255], ttmp15, s[6:7] ; encoding: [0x05,0x00,0x3a,0xd6,0xfe,0xf7,0x18,0x00] v_qsad_pk_u16_u8 v[5:6], s[2:3], vcc_hi, v[3:4] -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x02,0xd6,0x0c,0x04] +// GFX11: v_qsad_pk_u16_u8 v[5:6], s[2:3], vcc_hi, v[3:4] ; encoding: [0x05,0x00,0x3a,0xd6,0x02,0xd6,0x0c,0x04] v_qsad_pk_u16_u8 v[5:6], s[104:105], vcc_lo, s[104:105] -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x68,0xd4,0xa0,0x01] +// GFX11: v_qsad_pk_u16_u8 v[5:6], s[104:105], vcc_lo, s[104:105] ; encoding: [0x05,0x00,0x3a,0xd6,0x68,0xd4,0xa0,0x01] v_qsad_pk_u16_u8 v[5:6], vcc, m0, v[254:255] -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x6a,0xfa,0xf8,0x07] +// GFX11: v_qsad_pk_u16_u8 v[5:6], vcc, m0, v[254:255] ; encoding: [0x05,0x00,0x3a,0xd6,0x6a,0xfa,0xf8,0x07] v_qsad_pk_u16_u8 v[5:6], ttmp[14:15], exec_hi, null -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x7a,0xfe,0xf0,0x01] +// GFX11: v_qsad_pk_u16_u8 v[5:6], ttmp[14:15], exec_hi, null ; encoding: [0x05,0x00,0x3a,0xd6,0x7a,0xfe,0xf0,0x01] v_qsad_pk_u16_u8 v[5:6], exec, exec_lo, exec -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x7e,0xfc,0xf8,0x01] +// GFX11: v_qsad_pk_u16_u8 v[5:6], exec, exec_lo, exec ; encoding: [0x05,0x00,0x3a,0xd6,0x7e,0xfc,0xf8,0x01] v_qsad_pk_u16_u8 v[5:6], null, null, vcc -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0x7c,0xf8,0xa8,0x01] +// GFX11: v_qsad_pk_u16_u8 v[5:6], null, null, vcc ; encoding: [0x05,0x00,0x3a,0xd6,0x7c,0xf8,0xa8,0x01] v_qsad_pk_u16_u8 v[5:6], -1, -1, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_qsad_pk_u16_u8 v[5:6], -1, -1, 0xaf123456 ; encoding: [0x05,0x00,0x3a,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] v_qsad_pk_u16_u8 v[5:6], 0.5, 0.5, src_scc -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0xf0,0xe0,0xf5,0x03] +// GFX11: v_qsad_pk_u16_u8 v[5:6], 0.5, 0.5, src_scc ; encoding: [0x05,0x00,0x3a,0xd6,0xf0,0xe0,0xf5,0x03] v_qsad_pk_u16_u8 v[5:6], src_scc, src_scc, 0.5 -// GFX11: encoding: [0x05,0x00,0x3a,0xd6,0xfd,0xfa,0xc1,0x03] +// GFX11: v_qsad_pk_u16_u8 v[5:6], src_scc, src_scc, 0.5 ; encoding: [0x05,0x00,0x3a,0xd6,0xfd,0xfa,0xc1,0x03] v_qsad_pk_u16_u8 v[254:255], 0xaf123456, 0xaf123456, -1 clamp -// GFX11: encoding: [0xfe,0x80,0x3a,0xd6,0xff,0xfe,0x05,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_qsad_pk_u16_u8 v[254:255], 0xaf123456, 0xaf123456, -1 clamp ; encoding: [0xfe,0x80,0x3a,0xd6,0xff,0xfe,0x05,0x03,0x56,0x34,0x12,0xaf] v_readlane_b32 s5, v1, s2 -// GFX11: encoding: [0x05,0x00,0x60,0xd7,0x01,0x05,0x00,0x00] +// GFX11: v_readlane_b32 s5, v1, s2 ; encoding: [0x05,0x00,0x60,0xd7,0x01,0x05,0x00,0x00] v_readlane_b32 s5, v1, s105 -// GFX11: encoding: [0x05,0x00,0x60,0xd7,0x01,0xd3,0x00,0x00] +// GFX11: v_readlane_b32 s5, v1, s105 ; encoding: [0x05,0x00,0x60,0xd7,0x01,0xd3,0x00,0x00] v_readlane_b32 s105, v1, ttmp15 -// GFX11: encoding: [0x69,0x00,0x60,0xd7,0x01,0xf7,0x00,0x00] +// GFX11: v_readlane_b32 s105, v1, ttmp15 ; encoding: [0x69,0x00,0x60,0xd7,0x01,0xf7,0x00,0x00] v_readlane_b32 vcc_lo, v1, vcc_hi -// GFX11: encoding: [0x6a,0x00,0x60,0xd7,0x01,0xd7,0x00,0x00] +// GFX11: v_readlane_b32 vcc_lo, v1, vcc_hi ; encoding: [0x6a,0x00,0x60,0xd7,0x01,0xd7,0x00,0x00] v_readlane_b32 vcc_hi, v1, vcc_lo -// GFX11: encoding: [0x6b,0x00,0x60,0xd7,0x01,0xd5,0x00,0x00] +// GFX11: v_readlane_b32 vcc_hi, v1, vcc_lo ; encoding: [0x6b,0x00,0x60,0xd7,0x01,0xd5,0x00,0x00] v_readlane_b32 ttmp15, v1, m0 -// GFX11: encoding: [0x7b,0x00,0x60,0xd7,0x01,0xfb,0x00,0x00] +// GFX11: v_readlane_b32 ttmp15, v1, m0 ; encoding: [0x7b,0x00,0x60,0xd7,0x01,0xfb,0x00,0x00] v_readlane_b32 null, v255, null -// GFX11: encoding: [0x7c,0x00,0x60,0xd7,0xff,0xf9,0x00,0x00] +// GFX11: v_readlane_b32 null, v255, null ; encoding: [0x7c,0x00,0x60,0xd7,0xff,0xf9,0x00,0x00] v_sad_hi_u8 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_sad_hi_u8 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x23,0xd6,0x01,0x05,0x0e,0x00] v_sad_hi_u8 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_sad_hi_u8 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x23,0xd6,0xff,0x05,0xa4,0x01] v_sad_hi_u8 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_sad_hi_u8 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x23,0xd6,0x01,0xfe,0xff,0x01] v_sad_hi_u8 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_sad_hi_u8 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x23,0xd6,0x69,0xd2,0xf8,0x01] v_sad_hi_u8 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_sad_hi_u8 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x23,0xd6,0x6a,0xf6,0x0c,0x04] v_sad_hi_u8 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_hi_u8 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x23,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_sad_hi_u8 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_sad_hi_u8 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x23,0xd6,0x7b,0xfa,0xed,0x01] v_sad_hi_u8 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_sad_hi_u8 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x23,0xd6,0x7d,0xe0,0xf5,0x01] v_sad_hi_u8 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_sad_hi_u8 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x23,0xd6,0x7e,0x82,0xad,0x01] v_sad_hi_u8 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_sad_hi_u8 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x23,0xd6,0x7f,0xf8,0xa8,0x01] v_sad_hi_u8 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_hi_u8 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x23,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_sad_hi_u8 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_sad_hi_u8 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x23,0xd6,0xc1,0xfe,0xf4,0x03] v_sad_hi_u8 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_sad_hi_u8 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x23,0xd6,0xf0,0xfa,0xc0,0x03] v_sad_hi_u8 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x23,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_sad_hi_u8 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x23,0xd6,0xfd,0xd4,0x04,0x03] v_sad_hi_u8 v255, 0xaf123456, vcc_hi, null clamp -// GFX11: encoding: [0xff,0x80,0x23,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_hi_u8 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x23,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_sad_u16 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_sad_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x24,0xd6,0x01,0x05,0x0e,0x00] v_sad_u16 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_sad_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x24,0xd6,0xff,0x05,0xa4,0x01] v_sad_u16 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_sad_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x24,0xd6,0x01,0xfe,0xff,0x01] v_sad_u16 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_sad_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x24,0xd6,0x69,0xd2,0xf8,0x01] v_sad_u16 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_sad_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x24,0xd6,0x6a,0xf6,0x0c,0x04] v_sad_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX11: v_sad_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x24,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_sad_u16 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_sad_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x24,0xd6,0x7b,0xfa,0xed,0x01] v_sad_u16 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_sad_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x24,0xd6,0x7d,0xe0,0xf5,0x01] v_sad_u16 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_sad_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x24,0xd6,0x7e,0x82,0xad,0x01] v_sad_u16 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_sad_u16 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x24,0xd6,0x7f,0xf8,0xa8,0x01] v_sad_u16 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_u16 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x24,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_sad_u16 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_sad_u16 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x24,0xd6,0xc1,0xfe,0xf4,0x03] v_sad_u16 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_sad_u16 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x24,0xd6,0xf0,0xfa,0xc0,0x03] v_sad_u16 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x24,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_sad_u16 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x24,0xd6,0xfd,0xd4,0x04,0x03] v_sad_u16 v255, 0xfe0b, vcc_hi, null clamp -// GFX11: encoding: [0xff,0x80,0x24,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX11: v_sad_u16 v255, 0xfe0b, vcc_hi, null clamp ; encoding: [0xff,0x80,0x24,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_sad_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_sad_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x25,0xd6,0x01,0x05,0x0e,0x00] v_sad_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_sad_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x25,0xd6,0xff,0x05,0xa4,0x01] v_sad_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_sad_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x25,0xd6,0x01,0xfe,0xff,0x01] v_sad_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_sad_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x25,0xd6,0x69,0xd2,0xf8,0x01] v_sad_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_sad_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x25,0xd6,0x6a,0xf6,0x0c,0x04] v_sad_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x25,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_sad_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_sad_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x25,0xd6,0x7b,0xfa,0xed,0x01] v_sad_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_sad_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x25,0xd6,0x7d,0xe0,0xf5,0x01] v_sad_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_sad_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x25,0xd6,0x7e,0x82,0xad,0x01] v_sad_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_sad_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x25,0xd6,0x7f,0xf8,0xa8,0x01] v_sad_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x25,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_sad_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_sad_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x25,0xd6,0xc1,0xfe,0xf4,0x03] v_sad_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_sad_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x25,0xd6,0xf0,0xfa,0xc0,0x03] v_sad_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x25,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_sad_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x25,0xd6,0xfd,0xd4,0x04,0x03] v_sad_u32 v255, 0xaf123456, vcc_hi, null clamp -// GFX11: encoding: [0xff,0x80,0x25,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_u32 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x25,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_sad_u8 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_sad_u8 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x22,0xd6,0x01,0x05,0x0e,0x00] v_sad_u8 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_sad_u8 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x22,0xd6,0xff,0x05,0xa4,0x01] v_sad_u8 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_sad_u8 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x22,0xd6,0x01,0xfe,0xff,0x01] v_sad_u8 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_sad_u8 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x22,0xd6,0x69,0xd2,0xf8,0x01] v_sad_u8 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_sad_u8 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x22,0xd6,0x6a,0xf6,0x0c,0x04] v_sad_u8 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_u8 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x22,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_sad_u8 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_sad_u8 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x22,0xd6,0x7b,0xfa,0xed,0x01] v_sad_u8 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_sad_u8 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x22,0xd6,0x7d,0xe0,0xf5,0x01] v_sad_u8 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_sad_u8 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x22,0xd6,0x7e,0x82,0xad,0x01] v_sad_u8 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_sad_u8 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x22,0xd6,0x7f,0xf8,0xa8,0x01] v_sad_u8 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_u8 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x22,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_sad_u8 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_sad_u8 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x22,0xd6,0xc1,0xfe,0xf4,0x03] v_sad_u8 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_sad_u8 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x22,0xd6,0xf0,0xfa,0xc0,0x03] v_sad_u8 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x22,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_sad_u8 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x22,0xd6,0xfd,0xd4,0x04,0x03] v_sad_u8 v255, 0xaf123456, vcc_hi, null clamp -// GFX11: encoding: [0xff,0x80,0x22,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_sad_u8 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x22,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_sub_co_u32 v5, s6, v1, v2 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, v1, v2 ; encoding: [0x05,0x06,0x01,0xd7,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, v255, v255 -// W32: encoding: [0x05,0x06,0x01,0xd7,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, v255, v255 ; encoding: [0x05,0x06,0x01,0xd7,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, s1, s2 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, s1, s2 ; encoding: [0x05,0x06,0x01,0xd7,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, s105, s105 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, s105, s105 ; encoding: [0x05,0x06,0x01,0xd7,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, vcc_lo, ttmp15 ; encoding: [0x05,0x06,0x01,0xd7,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, vcc_hi, 0xaf123456 ; encoding: [0x05,0x06,0x01,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, ttmp15, src_scc -// W32: encoding: [0x05,0x06,0x01,0xd7,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, ttmp15, src_scc ; encoding: [0x05,0x06,0x01,0xd7,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, m0, 0.5 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, m0, 0.5 ; encoding: [0x05,0x06,0x01,0xd7,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, exec_lo, -1 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, exec_lo, -1 ; encoding: [0x05,0x06,0x01,0xd7,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, exec_hi, null -// W32: encoding: [0x05,0x06,0x01,0xd7,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, exec_hi, null ; encoding: [0x05,0x06,0x01,0xd7,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s105, null, exec_lo -// W32: encoding: [0x05,0x69,0x01,0xd7,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s105, null, exec_lo ; encoding: [0x05,0x69,0x01,0xd7,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, vcc_lo, -1, exec_hi -// W32: encoding: [0x05,0x6a,0x01,0xd7,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, vcc_lo, -1, exec_hi ; encoding: [0x05,0x6a,0x01,0xd7,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, vcc_hi, 0.5, m0 -// W32: encoding: [0x05,0x6b,0x01,0xd7,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, vcc_hi, 0.5, m0 ; encoding: [0x05,0x6b,0x01,0xd7,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, ttmp15, src_scc, vcc_lo -// W32: encoding: [0x05,0x7b,0x01,0xd7,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, ttmp15, src_scc, vcc_lo ; encoding: [0x05,0x7b,0x01,0xd7,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], v1, v2 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], v1, v2 ; encoding: [0x05,0x0c,0x01,0xd7,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], v255, v255 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], v255, v255 ; encoding: [0x05,0x0c,0x01,0xd7,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], s1, s2 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], s1, s2 ; encoding: [0x05,0x0c,0x01,0xd7,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], s105, s105 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], s105, s105 ; encoding: [0x05,0x0c,0x01,0xd7,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], vcc_lo, ttmp15 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], vcc_lo, ttmp15 ; encoding: [0x05,0x0c,0x01,0xd7,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 ; encoding: [0x05,0x0c,0x01,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], ttmp15, src_scc -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], ttmp15, src_scc ; encoding: [0x05,0x0c,0x01,0xd7,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], m0, 0.5 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], m0, 0.5 ; encoding: [0x05,0x0c,0x01,0xd7,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], exec_lo, -1 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], exec_lo, -1 ; encoding: [0x05,0x0c,0x01,0xd7,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], exec_hi, null -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], exec_hi, null ; encoding: [0x05,0x0c,0x01,0xd7,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], null, exec_lo -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], null, exec_lo ; encoding: [0x05,0x0c,0x01,0xd7,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[104:105], -1, exec_hi -// W64: encoding: [0x05,0x68,0x01,0xd7,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[104:105], -1, exec_hi ; encoding: [0x05,0x68,0x01,0xd7,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, vcc, 0.5, m0 -// W64: encoding: [0x05,0x6a,0x01,0xd7,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_u32 v5, vcc, 0.5, m0 ; encoding: [0x05,0x6a,0x01,0xd7,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_u32 v5, ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x05,0x7a,0x01,0xd7,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, ttmp[14:15], src_scc, vcc_lo ; encoding: [0x05,0x7a,0x01,0xd7,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v255, null, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0xfc,0x01,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_co_u32 v255, null, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0xfc,0x01,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_sub_nc_i16 v5.l, v1.h, v2.l -// GFX11: encoding: [0x05,0x08,0x0e,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_sub_nc_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0e,0xd7,0x01,0x05,0x02,0x00] v_sub_nc_i16 v5.l, v255.l, v255.h -// GFX11: encoding: [0x05,0x10,0x0e,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_sub_nc_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0e,0xd7,0xff,0xff,0x03,0x00] v_sub_nc_i16 v5.l, s1, s2 -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0e,0xd7,0x01,0x04,0x00,0x00] v_sub_nc_i16 v5.l, s105, s105 -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0e,0xd7,0x69,0xd2,0x00,0x00] v_sub_nc_i16 v5.l, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0e,0xd7,0x6a,0xf6,0x00,0x00] v_sub_nc_i16 v5.l, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0e,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_i16 v5.l, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_sub_nc_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0e,0xd7,0x7b,0xfa,0x01,0x00] v_sub_nc_i16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_sub_nc_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0e,0xd7,0x7d,0xe0,0x01,0x00] v_sub_nc_i16 v5.l, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_sub_nc_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0e,0xd7,0x7e,0x82,0x01,0x00] v_sub_nc_i16 v5.l, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0e,0xd7,0x7f,0xf8,0x00,0x00] v_sub_nc_i16 v5.l, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x0e,0xd7,0x7c,0xfc,0x00,0x00] v_sub_nc_i16 v5.l, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0e,0xd7,0xc1,0xfe,0x00,0x00] v_sub_nc_i16 v5.h, null, exec_lo op_sel:[1,1,1] -// GFX11: encoding: [0x05,0x58,0x0e,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.h, null, exec_lo op_sel:[1,1,1] ; encoding: [0x05,0x58,0x0e,0xd7,0x7c,0xfc,0x00,0x00] v_sub_nc_i16 v5.l, -1, exec_hi op_sel:[0,0,0] -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0e,0xd7,0xc1,0xfe,0x00,0x00] v_sub_nc_i16 v5.l, 0.5, m0 op_sel:[1,0,0] -// GFX11: encoding: [0x05,0x08,0x0e,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, 0.5, m0 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0e,0xd7,0xf0,0xfa,0x00,0x00] v_sub_nc_i16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] -// GFX11: encoding: [0x05,0x10,0x0e,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_sub_nc_i16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0e,0xd7,0xfd,0xd4,0x00,0x00] v_sub_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp -// GFX11: encoding: [0xff,0xc0,0x0e,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_sub_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x0e,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_i16 v5.l, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x0e,0xd7,0xfd,0xd4,0x00,0x00] - -v_sub_nc_i16 v5.l, v1.h, v2.l -// GFX11: encoding: [0x05,0x08,0x0e,0xd7,0x01,0x05,0x02,0x00] - -v_sub_nc_i16 v5.l, v255.l, v255.h -// GFX11: encoding: [0x05,0x10,0x0e,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_sub_nc_i16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0e,0xd7,0xfd,0xd4,0x00,0x00] v_sub_nc_i16 v255.h, 0xfe0b, vcc_hi clamp -// GFX11: encoding: [0xff,0xc0,0x0e,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_sub_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x0e,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_i32 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_sub_nc_i32 v5, v1, v2 ; encoding: [0x05,0x00,0x25,0xd7,0x01,0x05,0x02,0x00] v_sub_nc_i32 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_sub_nc_i32 v5, v255, v255 ; encoding: [0x05,0x00,0x25,0xd7,0xff,0xff,0x03,0x00] v_sub_nc_i32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_sub_nc_i32 v5, s1, s2 ; encoding: [0x05,0x00,0x25,0xd7,0x01,0x04,0x00,0x00] v_sub_nc_i32 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_sub_nc_i32 v5, s105, s105 ; encoding: [0x05,0x00,0x25,0xd7,0x69,0xd2,0x00,0x00] v_sub_nc_i32 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_sub_nc_i32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x25,0xd7,0x6a,0xf6,0x00,0x00] v_sub_nc_i32 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_nc_i32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x25,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_sub_nc_i32 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_sub_nc_i32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x25,0xd7,0x7b,0xfa,0x01,0x00] v_sub_nc_i32 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_sub_nc_i32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x25,0xd7,0x7d,0xe0,0x01,0x00] v_sub_nc_i32 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_sub_nc_i32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x25,0xd7,0x7e,0x82,0x01,0x00] v_sub_nc_i32 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_sub_nc_i32 v5, exec_hi, null ; encoding: [0x05,0x00,0x25,0xd7,0x7f,0xf8,0x00,0x00] v_sub_nc_i32 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_sub_nc_i32 v5, null, exec_lo ; encoding: [0x05,0x00,0x25,0xd7,0x7c,0xfc,0x00,0x00] v_sub_nc_i32 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_sub_nc_i32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x25,0xd7,0xc1,0xfe,0x00,0x00] v_sub_nc_i32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_sub_nc_i32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x25,0xd7,0xf0,0xfa,0x00,0x00] v_sub_nc_i32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x25,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_sub_nc_i32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x25,0xd7,0xfd,0xd4,0x00,0x00] v_sub_nc_i32 v255, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0x80,0x25,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_nc_i32 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x25,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_sub_nc_u16 v5.l, v1.h, v2.l -// GFX11: encoding: [0x05,0x08,0x04,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_sub_nc_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x04,0xd7,0x01,0x05,0x02,0x00] v_sub_nc_u16 v5.l, v255.l, v255.h -// GFX11: encoding: [0x05,0x10,0x04,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_sub_nc_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x04,0xd7,0xff,0xff,0x03,0x00] v_sub_nc_u16 v5.l, s1, s2 -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x04,0xd7,0x01,0x04,0x00,0x00] v_sub_nc_u16 v5.l, s105, s105 -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x04,0xd7,0x69,0xd2,0x00,0x00] v_sub_nc_u16 v5.l, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x04,0xd7,0x6a,0xf6,0x00,0x00] v_sub_nc_u16 v5.l, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x04,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_u16 v5.l, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_sub_nc_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x04,0xd7,0x7b,0xfa,0x01,0x00] v_sub_nc_u16 v5.l, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_sub_nc_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x04,0xd7,0x7d,0xe0,0x01,0x00] v_sub_nc_u16 v5.l, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_sub_nc_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x04,0xd7,0x7e,0x82,0x01,0x00] v_sub_nc_u16 v5.l, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x04,0xd7,0x7f,0xf8,0x00,0x00] v_sub_nc_u16 v5.l, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x04,0xd7,0x7c,0xfc,0x00,0x00] v_sub_nc_u16 v5.l, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x04,0xd7,0xc1,0xfe,0x00,0x00] v_sub_nc_u16 v5.h, null, exec_lo op_sel:[1,1,1] -// GFX11: encoding: [0x05,0x58,0x04,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.h, null, exec_lo op_sel:[1,1,1] ; encoding: [0x05,0x58,0x04,0xd7,0x7c,0xfc,0x00,0x00] v_sub_nc_u16 v5.l, -1, exec_hi op_sel:[0,0,0] -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x04,0xd7,0xc1,0xfe,0x00,0x00] v_sub_nc_u16 v5.l, 0.5, m0 op_sel:[1,0,0] -// GFX11: encoding: [0x05,0x08,0x04,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, 0.5, m0 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x04,0xd7,0xf0,0xfa,0x00,0x00] v_sub_nc_u16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] -// GFX11: encoding: [0x05,0x10,0x04,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_sub_nc_u16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] ; encoding: [0x05,0x10,0x04,0xd7,0xfd,0xd4,0x00,0x00] v_sub_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp -// GFX11: encoding: [0xff,0xc0,0x04,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_sub_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x04,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_u16 v5.l, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x04,0xd7,0xfd,0xd4,0x00,0x00] - -v_sub_nc_u16 v5.l, v1.h, v2.l -// GFX11: encoding: [0x05,0x08,0x04,0xd7,0x01,0x05,0x02,0x00] - -v_sub_nc_u16 v5.l, v255.l, v255.h -// GFX11: encoding: [0x05,0x10,0x04,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_sub_nc_u16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x04,0xd7,0xfd,0xd4,0x00,0x00] v_sub_nc_u16 v255.h, 0xfe0b, vcc_hi clamp -// GFX11: encoding: [0xff,0xc0,0x04,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_sub_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x04,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_subrev_co_u32 v5, s6, v1, v2 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, v1, v2 ; encoding: [0x05,0x06,0x02,0xd7,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, v255, v255 -// W32: encoding: [0x05,0x06,0x02,0xd7,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, v255, v255 ; encoding: [0x05,0x06,0x02,0xd7,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, s1, s2 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, s1, s2 ; encoding: [0x05,0x06,0x02,0xd7,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, s105, s105 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, s105, s105 ; encoding: [0x05,0x06,0x02,0xd7,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, vcc_lo, ttmp15 ; encoding: [0x05,0x06,0x02,0xd7,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, vcc_hi, 0xaf123456 ; encoding: [0x05,0x06,0x02,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, ttmp15, src_scc -// W32: encoding: [0x05,0x06,0x02,0xd7,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, ttmp15, src_scc ; encoding: [0x05,0x06,0x02,0xd7,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, m0, 0.5 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, m0, 0.5 ; encoding: [0x05,0x06,0x02,0xd7,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, exec_lo, -1 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, exec_lo, -1 ; encoding: [0x05,0x06,0x02,0xd7,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, exec_hi, null -// W32: encoding: [0x05,0x06,0x02,0xd7,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, exec_hi, null ; encoding: [0x05,0x06,0x02,0xd7,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s105, null, exec_lo -// W32: encoding: [0x05,0x69,0x02,0xd7,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s105, null, exec_lo ; encoding: [0x05,0x69,0x02,0xd7,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, vcc_lo, -1, exec_hi -// W32: encoding: [0x05,0x6a,0x02,0xd7,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, vcc_lo, -1, exec_hi ; encoding: [0x05,0x6a,0x02,0xd7,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, vcc_hi, 0.5, m0 -// W32: encoding: [0x05,0x6b,0x02,0xd7,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, vcc_hi, 0.5, m0 ; encoding: [0x05,0x6b,0x02,0xd7,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, ttmp15, src_scc, vcc_lo -// W32: encoding: [0x05,0x7b,0x02,0xd7,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, ttmp15, src_scc, vcc_lo ; encoding: [0x05,0x7b,0x02,0xd7,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], v1, v2 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], v1, v2 ; encoding: [0x05,0x0c,0x02,0xd7,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], v255, v255 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], v255, v255 ; encoding: [0x05,0x0c,0x02,0xd7,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], s1, s2 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], s1, s2 ; encoding: [0x05,0x0c,0x02,0xd7,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], s105, s105 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], s105, s105 ; encoding: [0x05,0x0c,0x02,0xd7,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], vcc_lo, ttmp15 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], vcc_lo, ttmp15 ; encoding: [0x05,0x0c,0x02,0xd7,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 ; encoding: [0x05,0x0c,0x02,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], ttmp15, src_scc -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], ttmp15, src_scc ; encoding: [0x05,0x0c,0x02,0xd7,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], m0, 0.5 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], m0, 0.5 ; encoding: [0x05,0x0c,0x02,0xd7,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], exec_lo, -1 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], exec_lo, -1 ; encoding: [0x05,0x0c,0x02,0xd7,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], exec_hi, null -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], exec_hi, null ; encoding: [0x05,0x0c,0x02,0xd7,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], null, exec_lo -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], null, exec_lo ; encoding: [0x05,0x0c,0x02,0xd7,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[104:105], -1, exec_hi -// W64: encoding: [0x05,0x68,0x02,0xd7,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[104:105], -1, exec_hi ; encoding: [0x05,0x68,0x02,0xd7,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, vcc, 0.5, m0 -// W64: encoding: [0x05,0x6a,0x02,0xd7,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_u32 v5, vcc, 0.5, m0 ; encoding: [0x05,0x6a,0x02,0xd7,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_u32 v5, ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x05,0x7a,0x02,0xd7,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, ttmp[14:15], src_scc, vcc_lo ; encoding: [0x05,0x7a,0x02,0xd7,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v255, null, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0xfc,0x02,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_subrev_co_u32 v255, null, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0xfc,0x02,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_trig_preop_f64 v[5:6], v[1:2], v2 -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_trig_preop_f64 v[5:6], v[1:2], v2 ; encoding: [0x05,0x00,0x2f,0xd7,0x01,0x05,0x02,0x00] v_trig_preop_f64 v[5:6], v[1:2], v255 -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x01,0xff,0x03,0x00] +// GFX11: v_trig_preop_f64 v[5:6], v[1:2], v255 ; encoding: [0x05,0x00,0x2f,0xd7,0x01,0xff,0x03,0x00] v_trig_preop_f64 v[5:6], v[1:2], s2 -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x01,0x05,0x00,0x00] +// GFX11: v_trig_preop_f64 v[5:6], v[1:2], s2 ; encoding: [0x05,0x00,0x2f,0xd7,0x01,0x05,0x00,0x00] v_trig_preop_f64 v[5:6], v[1:2], s105 -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x01,0xd3,0x00,0x00] +// GFX11: v_trig_preop_f64 v[5:6], v[1:2], s105 ; encoding: [0x05,0x00,0x2f,0xd7,0x01,0xd3,0x00,0x00] v_trig_preop_f64 v[5:6], v[254:255], ttmp15 -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0xfe,0xf7,0x00,0x00] +// GFX11: v_trig_preop_f64 v[5:6], v[254:255], ttmp15 ; encoding: [0x05,0x00,0x2f,0xd7,0xfe,0xf7,0x00,0x00] v_trig_preop_f64 v[5:6], s[2:3], vcc_hi -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x02,0xd6,0x00,0x00] +// GFX11: v_trig_preop_f64 v[5:6], s[2:3], vcc_hi ; encoding: [0x05,0x00,0x2f,0xd7,0x02,0xd6,0x00,0x00] v_trig_preop_f64 v[5:6], s[104:105], vcc_lo -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x68,0xd4,0x00,0x00] +// GFX11: v_trig_preop_f64 v[5:6], s[104:105], vcc_lo ; encoding: [0x05,0x00,0x2f,0xd7,0x68,0xd4,0x00,0x00] v_trig_preop_f64 v[5:6], vcc, m0 -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x6a,0xfa,0x00,0x00] +// GFX11: v_trig_preop_f64 v[5:6], vcc, m0 ; encoding: [0x05,0x00,0x2f,0xd7,0x6a,0xfa,0x00,0x00] v_trig_preop_f64 v[5:6], ttmp[14:15], exec_hi -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x7a,0xfe,0x00,0x00] +// GFX11: v_trig_preop_f64 v[5:6], ttmp[14:15], exec_hi ; encoding: [0x05,0x00,0x2f,0xd7,0x7a,0xfe,0x00,0x00] v_trig_preop_f64 v[5:6], exec, exec_lo -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x7e,0xfc,0x00,0x00] +// GFX11: v_trig_preop_f64 v[5:6], exec, exec_lo ; encoding: [0x05,0x00,0x2f,0xd7,0x7e,0xfc,0x00,0x00] v_trig_preop_f64 v[5:6], null, null -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0x7c,0xf8,0x00,0x00] +// GFX11: v_trig_preop_f64 v[5:6], null, null ; encoding: [0x05,0x00,0x2f,0xd7,0x7c,0xf8,0x00,0x00] v_trig_preop_f64 v[5:6], -1, -1 -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0xc1,0x82,0x01,0x00] +// GFX11: v_trig_preop_f64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x2f,0xd7,0xc1,0x82,0x01,0x00] v_trig_preop_f64 v[5:6], 0.5, 0.5 mul:2 -// GFX11: encoding: [0x05,0x00,0x2f,0xd7,0xf0,0xe0,0x01,0x08] +// GFX11: v_trig_preop_f64 v[5:6], 0.5, 0.5 mul:2 ; encoding: [0x05,0x00,0x2f,0xd7,0xf0,0xe0,0x01,0x08] v_trig_preop_f64 v[5:6], -|src_scc|, src_scc mul:4 -// GFX11: encoding: [0x05,0x01,0x2f,0xd7,0xfd,0xfa,0x01,0x30] +// GFX11: v_trig_preop_f64 v[5:6], -|src_scc|, src_scc mul:4 ; encoding: [0x05,0x01,0x2f,0xd7,0xfd,0xfa,0x01,0x30] v_trig_preop_f64 v[254:255], 0xaf123456, 0xaf123456 clamp div:2 -// GFX11: encoding: [0xfe,0x80,0x2f,0xd7,0xff,0xfe,0x01,0x18,0x56,0x34,0x12,0xaf] +// GFX11: v_trig_preop_f64 v[254:255], 0xaf123456, 0xaf123456 clamp div:2 ; encoding: [0xfe,0x80,0x2f,0xd7,0xff,0xfe,0x01,0x18,0x56,0x34,0x12,0xaf] v_writelane_b32 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_writelane_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x01,0x04,0x00,0x00] v_writelane_b32 v5, s105, s2 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0x69,0x04,0x00,0x00] +// GFX11: v_writelane_b32 v5, s105, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x69,0x04,0x00,0x00] v_writelane_b32 v5, vcc_lo, s2 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0x6a,0x04,0x00,0x00] +// GFX11: v_writelane_b32 v5, vcc_lo, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x6a,0x04,0x00,0x00] v_writelane_b32 v5, vcc_hi, s2 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0x6b,0x04,0x00,0x00] +// GFX11: v_writelane_b32 v5, vcc_hi, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x6b,0x04,0x00,0x00] v_writelane_b32 v5, ttmp15, s2 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0x7b,0x04,0x00,0x00] +// GFX11: v_writelane_b32 v5, ttmp15, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x7b,0x04,0x00,0x00] v_writelane_b32 v5, m0, s2 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0x7d,0x04,0x00,0x00] +// GFX11: v_writelane_b32 v5, m0, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x7d,0x04,0x00,0x00] v_writelane_b32 v5, exec_lo, s2 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0x7e,0x04,0x00,0x00] +// GFX11: v_writelane_b32 v5, exec_lo, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x7e,0x04,0x00,0x00] v_writelane_b32 v5, exec_hi, s105 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0x7f,0xd2,0x00,0x00] +// GFX11: v_writelane_b32 v5, exec_hi, s105 ; encoding: [0x05,0x00,0x61,0xd7,0x7f,0xd2,0x00,0x00] v_writelane_b32 v5, null, ttmp15 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0x7c,0xf6,0x00,0x00] +// GFX11: v_writelane_b32 v5, null, ttmp15 ; encoding: [0x05,0x00,0x61,0xd7,0x7c,0xf6,0x00,0x00] v_writelane_b32 v5, -1, null -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0xc1,0xf8,0x00,0x00] +// GFX11: v_writelane_b32 v5, -1, null ; encoding: [0x05,0x00,0x61,0xd7,0xc1,0xf8,0x00,0x00] v_writelane_b32 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_writelane_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x61,0xd7,0xf0,0xfa,0x00,0x00] v_writelane_b32 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x61,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_writelane_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x61,0xd7,0xfd,0xd4,0x00,0x00] v_writelane_b32 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x61,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_writelane_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x61,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_xad_u32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_xad_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x45,0xd6,0x01,0x05,0x0e,0x00] v_xad_u32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_xad_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x45,0xd6,0xff,0x05,0xa4,0x01] v_xad_u32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_xad_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x45,0xd6,0x01,0xfe,0xff,0x01] v_xad_u32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_xad_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x45,0xd6,0x69,0xd2,0xf8,0x01] v_xad_u32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_xad_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x45,0xd6,0x6a,0xf6,0x0c,0x04] v_xad_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_xad_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x45,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_xad_u32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_xad_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x45,0xd6,0x7b,0xfa,0xed,0x01] v_xad_u32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_xad_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x45,0xd6,0x7d,0xe0,0xf5,0x01] v_xad_u32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_xad_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x45,0xd6,0x7e,0x82,0xad,0x01] v_xad_u32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_xad_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x45,0xd6,0x7f,0xf8,0xa8,0x01] v_xad_u32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_xad_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x45,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_xad_u32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_xad_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x45,0xd6,0xc1,0xfe,0xf4,0x03] v_xad_u32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_xad_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x45,0xd6,0xf0,0xfa,0xc0,0x03] v_xad_u32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x45,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_xad_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x45,0xd6,0xfd,0xd4,0x04,0x03] v_xad_u32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x45,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_xad_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x45,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_xor3_b32 v5, v1, v2, s3 -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x01,0x05,0x0e,0x00] +// GFX11: v_xor3_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x40,0xd6,0x01,0x05,0x0e,0x00] v_xor3_b32 v5, v255, s2, s105 -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0xff,0x05,0xa4,0x01] +// GFX11: v_xor3_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x40,0xd6,0xff,0x05,0xa4,0x01] v_xor3_b32 v5, s1, v255, exec_hi -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x01,0xfe,0xff,0x01] +// GFX11: v_xor3_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x40,0xd6,0x01,0xfe,0xff,0x01] v_xor3_b32 v5, s105, s105, exec_lo -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x69,0xd2,0xf8,0x01] +// GFX11: v_xor3_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x40,0xd6,0x69,0xd2,0xf8,0x01] v_xor3_b32 v5, vcc_lo, ttmp15, v3 -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX11: v_xor3_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x40,0xd6,0x6a,0xf6,0x0c,0x04] v_xor3_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX11: v_xor3_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x40,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_xor3_b32 v5, ttmp15, src_scc, ttmp15 -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x7b,0xfa,0xed,0x01] +// GFX11: v_xor3_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x40,0xd6,0x7b,0xfa,0xed,0x01] v_xor3_b32 v5, m0, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX11: v_xor3_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x40,0xd6,0x7d,0xe0,0xf5,0x01] v_xor3_b32 v5, exec_lo, -1, vcc_hi -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x7e,0x82,0xad,0x01] +// GFX11: v_xor3_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x40,0xd6,0x7e,0x82,0xad,0x01] v_xor3_b32 v5, exec_hi, null, vcc_lo -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX11: v_xor3_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x40,0xd6,0x7f,0xf8,0xa8,0x01] v_xor3_b32 v5, null, exec_lo, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX11: v_xor3_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x40,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_xor3_b32 v5, -1, exec_hi, src_scc -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX11: v_xor3_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x40,0xd6,0xc1,0xfe,0xf4,0x03] v_xor3_b32 v5, 0.5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX11: v_xor3_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x40,0xd6,0xf0,0xfa,0xc0,0x03] v_xor3_b32 v5, src_scc, vcc_lo, -1 -// GFX11: encoding: [0x05,0x00,0x40,0xd6,0xfd,0xd4,0x04,0x03] +// GFX11: v_xor3_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x40,0xd6,0xfd,0xd4,0x04,0x03] v_xor3_b32 v255, 0xaf123456, vcc_hi, null -// GFX11: encoding: [0xff,0x00,0x40,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_xor3_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x40,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_xor_b16 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x01,0x05,0x02,0x00] +// GFX11: v_xor_b16 v5, v1, v2 ; encoding: [0x05,0x00,0x64,0xd7,0x01,0x05,0x02,0x00] v_xor_b16 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0xff,0xff,0x03,0x00] +// GFX11: v_xor_b16 v5, v255, v255 ; encoding: [0x05,0x00,0x64,0xd7,0xff,0xff,0x03,0x00] v_xor_b16 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x01,0x04,0x00,0x00] +// GFX11: v_xor_b16 v5, s1, s2 ; encoding: [0x05,0x00,0x64,0xd7,0x01,0x04,0x00,0x00] v_xor_b16 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x69,0xd2,0x00,0x00] +// GFX11: v_xor_b16 v5, s105, s105 ; encoding: [0x05,0x00,0x64,0xd7,0x69,0xd2,0x00,0x00] v_xor_b16 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x6a,0xf6,0x00,0x00] +// GFX11: v_xor_b16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x64,0xd7,0x6a,0xf6,0x00,0x00] v_xor_b16 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_xor_b16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x64,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_xor_b16 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x7b,0xfa,0x01,0x00] +// GFX11: v_xor_b16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x64,0xd7,0x7b,0xfa,0x01,0x00] v_xor_b16 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x7d,0xe0,0x01,0x00] +// GFX11: v_xor_b16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x64,0xd7,0x7d,0xe0,0x01,0x00] v_xor_b16 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x7e,0x82,0x01,0x00] +// GFX11: v_xor_b16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x64,0xd7,0x7e,0x82,0x01,0x00] v_xor_b16 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x7f,0xf8,0x00,0x00] +// GFX11: v_xor_b16 v5, exec_hi, null ; encoding: [0x05,0x00,0x64,0xd7,0x7f,0xf8,0x00,0x00] v_xor_b16 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0x7c,0xfc,0x00,0x00] +// GFX11: v_xor_b16 v5, null, exec_lo ; encoding: [0x05,0x00,0x64,0xd7,0x7c,0xfc,0x00,0x00] v_xor_b16 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0xc1,0xfe,0x00,0x00] +// GFX11: v_xor_b16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x64,0xd7,0xc1,0xfe,0x00,0x00] v_xor_b16 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0xf0,0xfa,0x00,0x00] +// GFX11: v_xor_b16 v5, 0.5, m0 ; encoding: [0x05,0x00,0x64,0xd7,0xf0,0xfa,0x00,0x00] v_xor_b16 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x64,0xd7,0xfd,0xd4,0x00,0x00] +// GFX11: v_xor_b16 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x64,0xd7,0xfd,0xd4,0x00,0x00] v_xor_b16 v255, 0xfe0b, vcc_hi -// GFX11: encoding: [0xff,0x00,0x64,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_xor_b16 v255, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x64,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16.s index c82b61e21edf6..3f812625c9773 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16.s @@ -1,4743 +1,4660 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 %s 2>&1 | FileCheck --check-prefixes=GFX11-ERR,W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 %s 2>&1 | FileCheck --check-prefixes=GFX11-ERR,W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefixes=GFX11-ERR,W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefixes=GFX11-ERR,W64-ERR --implicit-check-not=error: %s v_add3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_add3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_add3_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_add3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_add3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x55,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_add3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x55,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_add_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_mirror -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 -// W32: [0x05,0x69,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xfc,0x00,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_add_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x00,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_add_lshl_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_add_lshl_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_add_lshl_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x47,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_add_lshl_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x47,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xc0,0x0d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xc0,0x0d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_add_nc_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_i32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x26,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_add_nc_i32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x26,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xc0,0x03,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xc0,0x03,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_alignbit_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_alignbit_b32_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_alignbit_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x16,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_alignbit_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x16,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_alignbyte_b32_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_alignbyte_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x17,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_alignbyte_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x17,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_and_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_and_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_and_b16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_and_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_and_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x62,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_and_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x62,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_and_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_and_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_and_or_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_and_or_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_and_or_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x57,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_and_or_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x57,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_ashrrev_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x3a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_ashrrev_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x3a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_ashrrev_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_ashrrev_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_ashrrev_i16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x40,0x3a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_ashrrev_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x3a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_bcnt_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_bcnt_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_bcnt_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_bfe_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_bfe_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_bfe_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_bfe_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_bfe_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x11,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_bfe_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x11,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_bfe_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_bfe_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_bfe_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_bfe_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_bfe_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x10,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_bfe_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x10,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_bfi_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_bfi_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_bfi_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_bfi_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_bfi_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x12,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_bfi_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x12,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_bfm_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_bfm_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_bfm_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_bfm_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_bfm_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cndmask_b16_e64_dpp v5, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_mirror -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_half_mirror -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shl:1 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shl:15 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shr:1 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shr:15 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_ror:1 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s105 row_ror:15 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x01,0x5d,0xd6,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x5d,0xd6,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x02,0x5d,0xd6,0xfa,0x04,0xee,0x21,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x5d,0xd6,0xfa,0x04,0xee,0x21,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_mirror -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x01,0x5d,0xd6,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x5d,0xd6,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x02,0x5d,0xd6,0xfa,0x04,0xea,0x21,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x5d,0xd6,0xfa,0x04,0xea,0x21,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v255, -|v255|, -|v255|, null row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x5d,0xd6,0xfa,0xfe,0xf3,0x61,0xff,0x6f,0x05,0x30] +// GFX11: v_cndmask_b16_e64_dpp v255, -|v255|, -|v255|, null row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x5d,0xd6,0xfa,0xfe,0xf3,0x61,0xff,0x6f,0x05,0x30] v_cubeid_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cubeid_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x0c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x0c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x0c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x0c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_cubeid_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x0c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x0c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_cubeid_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x0c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_cubeid_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x0c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_cubeid_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x0c,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_cubeid_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x0c,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_cubeid_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x0c,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x0c,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_cubeid_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x0c,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_cubeid_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x0c,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_cubema_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cubema_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cubema_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cubema_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x0f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x0f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x0f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x0f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_cubema_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x0f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x0f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_cubema_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x0f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_cubema_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x0f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_cubema_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x0f,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_cubema_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x0f,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_cubema_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x0f,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_cubema_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x0f,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_cubema_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x0f,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_cubema_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x0f,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_cubesc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cubesc_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x0d,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x0d,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x0d,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x0d,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_cubesc_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x0d,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x0d,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_cubesc_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x0d,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_cubesc_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x0d,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_cubesc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x0d,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_cubesc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x0d,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_cubesc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x0d,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x0d,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_cubesc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x0d,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_cubesc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x0d,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_cubetc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cubetc_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x0e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x0e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x0e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x0e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_cubetc_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x0e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x0e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_cubetc_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x0e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_cubetc_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x0e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_cubetc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x0e,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_cubetc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x0e,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_cubetc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x0e,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x0e,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_cubetc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x0e,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_cubetc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x0e,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x06,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x06,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_i16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x06,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x06,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_i16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x06,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x06,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cvt_pk_i16_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x24,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x24,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x12,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x12,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x13,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x13,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x07,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x07,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_u16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x07,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x07,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_u16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x07,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x07,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cvt_pk_u16_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x23,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x23,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_cvt_pk_u8_f32_e64_dpp v255, -|v255|, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x01,0x26,0xd6,0xfa,0xfe,0xf7,0x23,0xff,0x6f,0x05,0x30] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x12,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] - -v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v255, -|v255|, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x01,0x26,0xd6,0xfa,0xfe,0xf7,0x23,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x21,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x21,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_norm_i16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x21,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x21,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_norm_i16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x21,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x13,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] - -v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x21,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x22,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x22,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_norm_u16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x22,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x22,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_norm_u16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x22,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x22,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_div_fixup_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_div_fixup_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x54,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x54,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x54,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x54,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x54,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x54,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x54,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x54,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x54,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x54,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x54,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x54,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x54,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX11: v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x54,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_fma_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_fma_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_fma_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_fma_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_fma_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_fma_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_fma_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_fma_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x48,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x48,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_fma_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x48,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x48,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x48,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x48,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x48,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x48,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x48,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x48,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x48,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX11: v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x48,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x48,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX11: v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x48,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_fma_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_fma_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_fma_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_fma_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_fma_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_fma_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_fma_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_fma_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x13,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_fma_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x13,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_fma_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x13,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_fma_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x13,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_fma_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x13,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_fma_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x13,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_fma_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x13,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_fma_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x13,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_fma_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x13,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_fma_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x13,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_fma_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x13,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_fma_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x13,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_fma_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x13,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_fma_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x13,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_ldexp_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x08,0x01,0x5f,0x01,0x01] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x08,0x01,0x5f,0x01,0x01] v_ldexp_f32_e64_dpp v5, v1, v2 mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x10,0x01,0x60,0x09,0x13] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x10,0x01,0x60,0x09,0x13] v_ldexp_f32_e64_dpp v255, -|v255|, v255 clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x81,0x1c,0xd7,0xfa,0xfe,0x03,0x38,0xff,0x6f,0x05,0x30] +// GFX11: v_ldexp_f32_e64_dpp v255, -|v255|, v255 clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x81,0x1c,0xd7,0xfa,0xfe,0x03,0x38,0xff,0x6f,0x05,0x30] v_lerp_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_lerp_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_lerp_u8_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_lerp_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_lerp_u8_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x15,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_lerp_u8_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x15,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_lshl_add_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_lshl_add_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_lshl_add_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x46,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_lshl_add_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x46,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_lshl_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_lshl_or_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_lshl_or_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x56,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_lshl_or_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x56,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshlrev_b16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x38,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_lshlrev_b16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x38,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_lshlrev_b16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_lshlrev_b16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshlrev_b16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x40,0x38,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_lshlrev_b16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x38,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshrrev_b16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x39,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_lshrrev_b16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x39,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_lshrrev_b16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_lshrrev_b16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshrrev_b16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x40,0x39,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_lshrrev_b16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x39,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mad_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_mad_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_mad_i16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x53,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_mad_i16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x53,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_i32_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x5a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x5a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_i32_i24_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_mad_i32_i24_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_mad_i32_i24_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x0a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_mad_i32_i24_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x0a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_mad_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_mad_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x41,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_mad_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x41,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_u32_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x59,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x59,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_u32_u24_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_mad_u32_u24_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_mad_u32_u24_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x0b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_mad_u32_u24_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x0b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_max3_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_max3_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_max3_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_max3_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x4c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x4c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_max3_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x4c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x4c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_max3_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x4c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x4c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_max3_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x4c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x4c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_max3_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x4c,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_max3_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x4c,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_max3_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x4c,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX11: v_max3_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x4c,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_max3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x4c,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX11: v_max3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x4c,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_max3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_max3_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_max3_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_max3_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_max3_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x1c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_max3_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x1c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_max3_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x1c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_max3_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x1c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_max3_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x1c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_max3_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x1c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_max3_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x1c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_max3_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x1c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_max3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x1c,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_max3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x1c,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_max3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x1c,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_max3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x1c,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_max3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x1c,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_max3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x1c,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_max3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_max3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_max3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x4d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_max3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x4d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_max3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_max3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_max3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_max3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_max3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x4e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_max3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x4e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_max3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_max3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_max3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x0a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_max_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_max_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_max_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_i16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x40,0x0a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_max_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x0a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x09,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_max_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x09,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_max_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_max_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_u16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x40,0x09,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_max_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x09,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_maxmin_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x60,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x60,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maxmin_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x60,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x60,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maxmin_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x60,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x60,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maxmin_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x60,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x60,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maxmin_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x60,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x60,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maxmin_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x60,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x60,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maxmin_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x60,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x60,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maxmin_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x60,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x60,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_maxmin_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x60,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x60,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_maxmin_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x60,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x60,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_maxmin_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x60,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_maxmin_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x60,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_maxmin_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x60,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_maxmin_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x60,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_maxmin_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x60,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x60,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_maxmin_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x60,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_maxmin_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x60,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_maxmin_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maxmin_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maxmin_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maxmin_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maxmin_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maxmin_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maxmin_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maxmin_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x5e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x5e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_maxmin_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x5e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x5e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_maxmin_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x5e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x5e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_maxmin_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x5e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_maxmin_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x5e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_maxmin_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x5e,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_maxmin_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x5e,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_maxmin_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x5e,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x5e,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_maxmin_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x5e,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_maxmin_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x5e,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_maxmin_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_maxmin_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_maxmin_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x64,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_maxmin_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x64,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_maxmin_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_maxmin_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_maxmin_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x62,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_maxmin_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x62,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mbcnt_hi_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x20,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x20,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mbcnt_lo_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1f,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1f,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_med3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_med3_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_med3_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_med3_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_med3_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x4f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x4f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_med3_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x4f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x4f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_med3_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x4f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x4f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_med3_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x4f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x4f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_med3_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x4f,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_med3_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x4f,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_med3_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x4f,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX11: v_med3_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x4f,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_med3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x4f,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX11: v_med3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x4f,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_med3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_med3_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_med3_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_med3_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_med3_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x1f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_med3_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x1f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_med3_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x1f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_med3_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x1f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_med3_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x1f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_med3_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x1f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_med3_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x1f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_med3_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x1f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_med3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x1f,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_med3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x1f,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_med3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x1f,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_med3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x1f,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_med3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x1f,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_med3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x1f,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_med3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_med3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_med3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x50,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_med3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x50,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_med3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_med3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_med3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x20,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_med3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x20,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_med3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_med3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_med3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x51,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_med3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x51,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_med3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_med3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_med3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x21,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_med3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x21,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x49,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x49,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x49,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x49,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_min3_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x49,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_min3_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x49,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_min3_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x49,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_min3_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x49,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x49,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_min3_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x49,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x49,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_min3_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x49,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x49,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_min3_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x49,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x49,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_min3_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x49,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_min3_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x49,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_min3_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x49,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX11: v_min3_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x49,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_min3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x49,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX11: v_min3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x49,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_min3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x19,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x19,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x19,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x19,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_min3_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x19,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_min3_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x19,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_min3_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x19,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_min3_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x19,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_min3_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x19,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_min3_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x19,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_min3_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x19,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_min3_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x19,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_min3_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x19,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_min3_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x19,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_min3_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x19,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_min3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x19,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_min3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x19,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_min3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x19,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_min3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x19,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_min3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x19,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_min3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x19,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_min3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_min3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_min3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x4a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_min3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x4a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_min3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_min3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_min3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_min3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_min3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x4b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_min3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x4b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_min3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_min3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_min3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x0c,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_min_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0c,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_min_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_min_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_i16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x40,0x0c,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_min_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x0c,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x0b,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_min_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0b,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_min_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_min_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_u16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x40,0x0b,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_min_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x0b,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_minmax_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x61,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x61,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minmax_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x61,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x61,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minmax_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x61,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x61,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minmax_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x61,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x61,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minmax_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x61,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x61,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minmax_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x61,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x61,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minmax_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x61,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x61,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minmax_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x61,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x61,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_minmax_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x61,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x61,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_minmax_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x61,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x61,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_minmax_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x61,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_minmax_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x61,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_minmax_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x61,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_minmax_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x61,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_minmax_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x61,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_minmax_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x61,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_minmax_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x61,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_minmax_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x61,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_minmax_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minmax_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minmax_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minmax_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minmax_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minmax_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minmax_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minmax_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x5f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x5f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_minmax_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x5f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x5f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_minmax_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x5f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x5f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_minmax_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x5f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_minmax_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x5f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_minmax_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x5f,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_minmax_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x5f,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_minmax_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x5f,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_minmax_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x5f,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_minmax_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x5f,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_minmax_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x5f,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_minmax_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minmax_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minmax_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_minmax_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_minmax_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x65,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_minmax_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x65,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_minmax_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minmax_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minmax_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_minmax_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_minmax_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x63,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_minmax_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x63,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_msad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_msad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_msad_u8_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_msad_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_msad_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x39,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_msad_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x39,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_lo_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x05,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_lo_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x05,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_lo_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_lo_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_lo_u16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x40,0x05,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_lo_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x05,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mullit_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mullit_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mullit_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mullit_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX11: [0x05,0x01,0x18,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x18,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX11: [0x05,0x02,0x18,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x18,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_mullit_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX11: [0x05,0x04,0x18,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x18,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_mullit_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x03,0x18,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_mullit_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x18,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_mullit_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x05,0x18,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX11: v_mullit_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x18,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_mullit_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x06,0x18,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX11: v_mullit_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x18,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_mullit_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x87,0x18,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX11: v_mullit_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x18,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_or3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_or3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_or3_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_or3_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_or3_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x58,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_or3_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x58,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_or_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_or_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_or_b16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_or_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_or_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x63,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_or_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x63,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_pack_b32_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_pack_b32_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x11,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_pack_b32_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x11,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_pack_b32_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x11,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_pack_b32_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x11,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x11,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x11,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_perm_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_perm_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_perm_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_perm_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_perm_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x44,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_perm_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x44,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sad_hi_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_sad_hi_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_sad_hi_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x23,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_sad_hi_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x23,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_sad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_sad_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_sad_u16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_sad_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x24,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_sad_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x24,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_sad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_sad_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_sad_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_sad_u32_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x25,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_sad_u32_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x25,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_sad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_sad_u8_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_sad_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_sad_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x22,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_sad_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x22,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sub_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_mirror -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 -// W32: [0x05,0x69,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xfc,0x01,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_sub_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x01,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xc0,0x0e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xc0,0x0e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_nc_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_i32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x25,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_sub_nc_i32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x25,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX11: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x58,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x08,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x10,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xc0,0x04,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xc0,0x04,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_subrev_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_mirror -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 -// W32: [0x05,0x69,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xfc,0x02,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_subrev_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x02,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_xad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_xad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_xad_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_xad_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_xad_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x45,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_xad_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x45,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_xor3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_xor3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_xor3_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_xor3_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_xor3_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x40,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX11: v_xor3_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x40,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_xor_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_xor_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_xor_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_xor_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x64,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_xor_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x64,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x0a,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x0a,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x13,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x13,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x0a,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x0a,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x13,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x13,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x7c,0x54,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x54,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x0b,0x54,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x54,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x15,0x54,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x54,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x26,0x54,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x54,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0xc7,0x54,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX11: v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x54,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x7c,0x48,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x48,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x0b,0x48,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x48,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x15,0x48,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x48,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x26,0x48,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX11: v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x48,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0xc7,0x48,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX11: v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x48,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_mad_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x78,0x53,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x53,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x08,0x53,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x53,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x10,0x53,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x53,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_mad_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x20,0x53,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x53,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_mad_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0xc0,0x53,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_mad_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc0,0x53,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x08,0x5a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x08,0x5a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x01,0x13] v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x90,0x5a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x90,0x5a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_mad_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x78,0x41,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x41,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x08,0x41,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x41,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x10,0x41,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x41,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_mad_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x20,0x41,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x41,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_mad_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0xc0,0x41,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_mad_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc0,0x41,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x08,0x59,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x08,0x59,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x01,0x13] v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x90,0x59,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x90,0x59,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_max3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x7c,0x4c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x4c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_max3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x0b,0x4c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_max3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x4c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_max3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x15,0x4c,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_max3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x4c,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_max3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x26,0x4c,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX11: v_max3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x4c,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_max3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0xc7,0x4c,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX11: v_max3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x4c,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_max3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x78,0x4d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x4d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x08,0x4d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x4d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x10,0x4d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x4d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_max3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x20,0x4d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x4d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_max3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x40,0x4d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_max3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x4d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_max3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x78,0x4e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x4e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x08,0x4e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x4e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x10,0x4e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x4e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_max3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x20,0x4e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x4e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_max3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x40,0x4e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_max3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x4e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_med3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x7c,0x4f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x4f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_med3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x0b,0x4f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_med3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x4f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_med3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x15,0x4f,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_med3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x4f,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_med3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x26,0x4f,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX11: v_med3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x4f,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_med3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0xc7,0x4f,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX11: v_med3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x4f,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_med3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x78,0x50,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x50,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x08,0x50,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x50,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x10,0x50,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x50,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_med3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x20,0x50,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x50,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_med3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x40,0x50,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_med3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x50,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_med3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x78,0x51,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x51,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x08,0x51,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x51,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x10,0x51,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x51,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_med3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x20,0x51,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x51,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_med3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x40,0x51,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_med3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x51,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_min3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x7c,0x49,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x49,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_min3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x0b,0x49,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX11: v_min3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x49,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_min3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x15,0x49,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX11: v_min3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x49,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_min3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x26,0x49,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX11: v_min3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x49,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_min3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0xc7,0x49,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX11: v_min3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x49,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_min3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x78,0x4a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x4a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x08,0x4a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x4a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x10,0x4a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x4a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_min3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x20,0x4a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x4a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_min3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x40,0x4a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_min3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x4a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_min3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x78,0x4b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x4b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x08,0x4b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x4b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x10,0x4b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x4b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_min3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x20,0x4b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x4b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_min3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x40,0x4b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX11: v_min3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x4b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_pack_b32_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX11: [0x05,0x0a,0x11,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] +// GFX11: v_pack_b32_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x0a,0x11,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX11: [0xff,0x13,0x11,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] +// GFX11: v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x13,0x11,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11: encoding: [0x00,0x00,0x66,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] +// GFX11: v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x00,0x66,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[1,1,0,0] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel operand +// GFX11-ERR: :[[@LINE-1]]:39: error: invalid op_sel operand v_dot2_f16_f16_e64_dpp v0, s1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX11-ERR: :[[@LINE-1]]:28: error: invalid operand for instruction v_dot2_f16_f16_e64_dpp v0, v1, s2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX11-ERR: :[[@LINE-1]]:32: error: invalid operand for instruction v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11: encoding: [0x00,0x60,0x66,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] +// GFX11: v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x60,0x66,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] v_dot2_f16_f16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11: encoding: [0x00,0x65,0x66,0xd6,0xfa,0x04,0x0e,0xc0,0x01,0xe4,0x04,0x00] +// GFX11: v_dot2_f16_f16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x65,0x66,0xd6,0xfa,0x04,0x0e,0xc0,0x01,0xe4,0x04,0x00] v_dot2_f16_f16_e64_dpp v5, v1, v2, 0.5 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x1b,0x00,0xff] +// GFX11: v_dot2_f16_f16_e64_dpp v5, v1, v2, 0.5 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x1b,0x00,0xff] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11: encoding: [0x00,0x00,0x67,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] +// GFX11: v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x00,0x67,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[1,1,0,0] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel operand +// GFX11-ERR: :[[@LINE-1]]:41: error: invalid op_sel operand v_dot2_bf16_bf16_e64_dpp v0, s1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX11-ERR: :[[@LINE-1]]:30: error: invalid operand for instruction v_dot2_bf16_bf16_e64_dpp v0, v1, s2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX11-ERR: :[[@LINE-1]]:34: error: invalid operand for instruction v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11: encoding: [0x00,0x60,0x67,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] +// GFX11: v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x60,0x67,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] v_dot2_bf16_bf16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX11: encoding: [0x00,0x65,0x67,0xd6,0xfa,0x04,0x0e,0xc0,0x01,0xe4,0x04,0x00] +// GFX11: v_dot2_bf16_bf16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x65,0x67,0xd6,0xfa,0x04,0x0e,0xc0,0x01,0xe4,0x04,0x00] v_dot2_bf16_bf16_e64_dpp v5, v1, v2, 0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0x05,0x00,0x67,0xd6,0xfa,0x04,0x02,0x02,0x01,0x1b,0x00,0xff] +// GFX11: v_dot2_bf16_bf16_e64_dpp v5, v1, v2, 0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd6,0xfa,0x04,0x02,0x02,0x01,0x1b,0x00,0xff] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop2.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop2.s index f91faffe5655d..fccdf3cf579c2 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop2.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vop2.s @@ -1,1986 +1,1987 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefixes=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefixes=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefixes=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefixes=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 -// W32: [0x05,0x69,0x20,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x20,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x20,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x20,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x20,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x20,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x20,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x20,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x20,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x20,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x20,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x20,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x20,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x20,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xfc,0x20,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] +// GFX11: v_add_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x20,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] v_add_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x32,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_add_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x32,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_add_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x32,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_add_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x32,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_add_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x32,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_add_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x32,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_add_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x03,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_add_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x03,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_add_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x03,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_add_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x03,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_add_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x03,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_add_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x03,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_add_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x25,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_add_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x25,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_and_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_and_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_and_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_and_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_and_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1b,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_and_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1b,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_ashrrev_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_ashrrev_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_ashrrev_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1a,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_ashrrev_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1a,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cndmask_b32_e64_dpp v5, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_mirror -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_half_mirror -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shl:1 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shl:15 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shr:1 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shr:15 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_ror:1 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s105 row_ror:15 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x01,0x01,0xd5,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x01,0xd5,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x02,0x01,0xd5,0xfa,0x04,0xee,0x21,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x01,0xd5,0xfa,0x04,0xee,0x21,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_mirror -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x01,0x01,0xd5,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x01,0xd5,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x02,0x01,0xd5,0xfa,0x04,0xea,0x21,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x01,0xd5,0xfa,0x04,0xea,0x21,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v255, -|v255|, -|v255|, null row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x03,0x01,0xd5,0xfa,0xfe,0xf3,0x61,0xff,0x6f,0x05,0x30] +// GFX11: v_cndmask_b32_e64_dpp v255, -|v255|, -|v255|, null row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x01,0xd5,0xfa,0xfe,0xf3,0x61,0xff,0x6f,0x05,0x30] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x2f,0xd5,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x2f,0xd5,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x2f,0xd5,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x2f,0xd5,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x2f,0xd5,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x2f,0xd5,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x2f,0xd5,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x2f,0xd5,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pkrtz_f16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x2f,0xd5,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x2f,0xd5,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pkrtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x2f,0xd5,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x2f,0xd5,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_fmac_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_fmac_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_fmac_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_fmac_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_fmac_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_fmac_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_fmac_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_fmac_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_fmac_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_fmac_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_fmac_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_fmac_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x36,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_fmac_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x36,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_fmac_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x36,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_fmac_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x36,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_fmac_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x36,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_fmac_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x36,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_fmac_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_fmac_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_fmac_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_fmac_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_fmac_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_fmac_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_fmac_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_fmac_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_fmac_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_fmac_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_fmac_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_fmac_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x2b,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_fmac_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x2b,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_fmac_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x2b,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_fmac_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x2b,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_fmac_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x2b,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_fmac_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x2b,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_ldexp_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x08,0x01,0x5f,0x01,0x01] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x08,0x01,0x5f,0x01,0x01] v_ldexp_f16_e64_dpp v5, v1, v2 mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x10,0x01,0x60,0x09,0x13] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x10,0x01,0x60,0x09,0x13] v_ldexp_f16_e64_dpp v255, -|v255|, v255 clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x81,0x3b,0xd5,0xfa,0xfe,0x03,0x38,0xff,0x6f,0x05,0x30] +// GFX11: v_ldexp_f16_e64_dpp v255, -|v255|, v255 clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x81,0x3b,0xd5,0xfa,0xfe,0x03,0x38,0xff,0x6f,0x05,0x30] v_lshlrev_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshlrev_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshlrev_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x18,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_lshlrev_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x18,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_lshrrev_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshrrev_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshrrev_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x19,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_lshrrev_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x19,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x39,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_max_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x39,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_max_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x39,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_max_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x39,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_max_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x39,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_max_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x39,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_max_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x10,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_max_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x10,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_max_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x10,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_max_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x10,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_max_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x10,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_max_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x10,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_max_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_i32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x12,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_max_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x12,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_u32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x14,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_max_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x14,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x3a,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_min_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x3a,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_min_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x3a,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_min_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x3a,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_min_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x3a,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_min_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x3a,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_min_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x0f,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_min_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x0f,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_min_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x0f,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_min_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x0f,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_min_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x0f,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_min_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x0f,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_min_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_i32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x11,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_min_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x11,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_u32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x13,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_min_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x13,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x07,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x07,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x07,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x07,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x07,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x07,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_mul_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x35,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x35,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_mul_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x35,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_mul_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x35,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_mul_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x35,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x35,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_mul_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x08,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x08,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_mul_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x08,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_mul_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x08,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_mul_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x08,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x08,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_hi_i32_i24_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x0a,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_hi_i32_i24_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0a,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_hi_u32_u24_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x0c,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_hi_u32_u24_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0c,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_i32_i24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_i32_i24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_i32_i24_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x09,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_i32_i24_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x09,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_legacy_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x07,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x07,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_mul_legacy_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x07,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x07,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_mul_legacy_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x07,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x07,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_mul_u32_u24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_u32_u24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_u32_u24_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x0b,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_mul_u32_u24_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x0b,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_or_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_or_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_or_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_or_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_or_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1c,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_or_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1c,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 -// W32: [0x05,0x69,0x21,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x21,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x21,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x21,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x21,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x21,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x21,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x21,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x21,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x21,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x21,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x21,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x21,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x21,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xfc,0x21,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] +// GFX11: v_sub_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x21,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] v_sub_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x33,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_sub_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x33,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_sub_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x33,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_sub_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x33,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_sub_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x33,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_sub_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x33,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_sub_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x04,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_sub_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x04,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_sub_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x04,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_sub_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x04,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_sub_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x04,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_sub_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x04,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_sub_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x26,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_sub_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x26,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 -// W32: [0x05,0x69,0x22,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x22,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x22,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x22,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x22,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x22,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x22,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x22,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x22,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x22,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x22,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x22,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x22,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x22,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0xfc,0x22,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] +// GFX11: v_subrev_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x22,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] v_subrev_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_subrev_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_subrev_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x34,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_subrev_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x34,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_subrev_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x34,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_subrev_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x34,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_subrev_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x34,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_subrev_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x34,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_subrev_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_subrev_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_subrev_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x01,0x05,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX11: v_subrev_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x05,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_subrev_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x02,0x05,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX11: v_subrev_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x05,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_subrev_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x83,0x05,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX11: v_subrev_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x05,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_subrev_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_subrev_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x80,0x27,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_subrev_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x27,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_xnor_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_xnor_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_xnor_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_xnor_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1e,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_xnor_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1e,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_xor_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_xor_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_mirror -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_xor_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_xor_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0xff,0x00,0x1d,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_xor_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1d,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopc.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopc.s index 0473a86ffeb1f..996df6995913d 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopc.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopc.s @@ -1,6852 +1,6853 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp null, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x01,0x7d,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_class_f16_e64_dpp null, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x01,0x7d,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp null, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x01,0x7e,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_class_f32_e64_dpp null, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x01,0x7e,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] v_cmp_eq_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x02,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x02,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x02,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x02,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x02,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x02,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x02,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x02,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x02,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_eq_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x02,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_eq_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x12,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x12,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x12,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x12,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x12,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x12,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x12,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x12,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x12,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_eq_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x12,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_eq_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x32,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_eq_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x32,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_eq_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x42,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_eq_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x42,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_eq_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x3a,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_eq_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3a,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_eq_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x4a,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_eq_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4a,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_f_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x00,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x00,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x00,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x00,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x00,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x00,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x00,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x00,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x00,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x00,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_f_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x00,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_f_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x10,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x10,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x10,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x10,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x10,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x10,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x10,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x10,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x10,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x10,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_f_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x10,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_f_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x40,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x40,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_f_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x40,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_f_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x48,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x48,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_f_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x48,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ge_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x06,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x06,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x06,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x06,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x06,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x06,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x06,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x06,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x06,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ge_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x06,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_ge_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x16,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x16,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x16,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x16,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x16,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x16,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x16,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x16,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x16,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ge_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x16,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_ge_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x36,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ge_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x36,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ge_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x46,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ge_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x46,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ge_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x3e,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ge_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3e,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ge_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x4e,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ge_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4e,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_gt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x04,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x04,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x04,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x04,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x04,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x04,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x04,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x04,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x04,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_gt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x04,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_gt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x14,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x14,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x14,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x14,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x14,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x14,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x14,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x14,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x14,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_gt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x14,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_gt_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x34,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_gt_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x34,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_gt_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x44,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_gt_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x44,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_gt_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x3c,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_gt_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3c,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_gt_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x4c,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_gt_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4c,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_le_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x03,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x03,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x03,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x03,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x03,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x03,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x03,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x03,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x03,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_le_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x03,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_le_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x13,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x13,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x13,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x13,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x13,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x13,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x13,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x13,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x13,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_le_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x13,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_le_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x33,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_le_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x33,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_le_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x43,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_le_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x43,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_le_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x3b,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_le_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3b,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_le_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x4b,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_le_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4b,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_lg_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x05,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x05,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x05,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x05,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x05,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x05,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x05,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x05,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x05,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_lg_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x05,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_lg_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x15,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x15,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x15,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x15,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x15,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x15,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x15,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x15,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x15,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_lg_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x15,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_lt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x01,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x01,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x01,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x01,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x01,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x01,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x01,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x01,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x01,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_lt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x01,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_lt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x11,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x11,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x11,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x11,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x11,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x11,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x11,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x11,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x11,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_lt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x11,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_lt_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x31,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_lt_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x31,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_lt_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x41,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_lt_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x41,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_lt_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x39,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_lt_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x39,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_lt_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x49,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_lt_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x49,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ne_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x35,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ne_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x35,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ne_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x45,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ne_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x45,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ne_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x3d,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ne_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3d,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ne_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x4d,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ne_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4d,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_neq_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x0d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_neq_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_neq_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x1d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_neq_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nge_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x09,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x09,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x09,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x09,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x09,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x09,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x09,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x09,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x09,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_nge_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x09,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nge_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x19,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x19,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x19,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x19,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x19,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x19,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x19,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x19,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x19,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_nge_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x19,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_ngt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x0b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ngt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_ngt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x1b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_ngt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nle_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x0c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_nle_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nle_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x1c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_nle_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nlg_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x0a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_nlg_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nlg_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x1a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_nlg_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nlt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x0e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_nlt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nlt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x1e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_nlt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_o_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x07,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x07,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x07,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x07,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x07,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x07,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x07,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x07,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x07,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_o_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x07,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_o_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x17,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x17,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x17,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x17,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x17,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x17,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x17,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x17,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x17,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_o_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x17,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_t_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x0f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_t_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_t_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x1f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_t_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_t_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x47,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x47,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_t_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x47,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_t_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x00,0x4f,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_t_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4f,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_tru_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x0f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_t_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_tru_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x1f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_t_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_u_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x08,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x08,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x08,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x08,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x08,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x08,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x08,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x08,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x08,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_u_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x08,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_u_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x18,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x18,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x18,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x18,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x18,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x18,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x18,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x18,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7c,0x83,0x18,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmp_u_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x18,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopcx.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopcx.s index 718d22469c580..d97b7eb6bd155 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopcx.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp16_from_vopcx.s @@ -1,2691 +1,2692 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s v_cmpx_class_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_class_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_class_f16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_class_f16_e64_dpp -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x01,0xfd,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_class_f16_e64_dpp -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x01,0xfd,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_class_f32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_class_f32_e64_dpp -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x01,0xfe,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_class_f32_e64_dpp -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x01,0xfe,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] v_cmpx_eq_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x82,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x82,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_eq_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x82,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x82,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_eq_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x82,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x82,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_eq_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x92,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x92,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_eq_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x92,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x92,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_eq_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x92,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x92,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_eq_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_eq_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_eq_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_eq_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_eq_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_eq_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_eq_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_eq_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_eq_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xba,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_eq_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_eq_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_eq_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xca,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_f_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_f_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_f_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_f_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_f_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_f_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_f_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_f_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_f_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_f_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_f_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x80,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_f_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x80,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_f_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x80,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_f_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x80,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_f_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x80,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_f_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x80,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_f_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x80,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_f_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_f_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_f_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_f_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_f_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_f_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_f_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_f_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_f_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_f_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_f_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x90,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_f_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x90,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_f_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x90,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_f_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x90,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_f_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x90,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_f_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x90,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_f_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x90,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_f_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_f_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_f_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_f_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_f_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_f_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc0,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_f_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_f_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_f_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_f_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_f_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_f_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc8,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ge_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x86,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x86,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_ge_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x86,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x86,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_ge_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x86,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x86,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_ge_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x96,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x96,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_ge_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x96,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x96,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_ge_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x96,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x96,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_ge_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ge_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ge_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ge_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ge_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ge_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ge_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ge_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ge_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ge_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ge_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ge_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xce,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_gt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x84,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x84,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_gt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x84,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x84,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_gt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x84,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x84,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_gt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x94,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x94,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_gt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x94,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x94,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_gt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x94,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x94,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_gt_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_gt_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_gt_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_gt_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_gt_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_gt_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_gt_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_gt_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_gt_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_gt_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_gt_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_gt_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_le_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x83,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x83,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_le_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x83,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x83,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_le_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x83,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x83,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_le_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x93,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x93,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_le_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x93,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x93,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_le_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x93,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x93,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_le_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_le_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_le_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_le_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_le_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_le_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_le_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_le_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_le_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_le_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_le_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_le_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_lg_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lg_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x85,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lg_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x85,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_lg_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x85,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lg_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x85,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_lg_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x85,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lg_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x85,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_lg_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lg_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x95,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lg_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x95,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_lg_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x95,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lg_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x95,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_lg_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x95,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lg_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x95,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_lt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x81,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x81,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_lt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x81,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x81,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_lt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x81,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x81,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_lt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x91,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x91,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_lt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x91,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x91,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_lt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x91,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x91,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_lt_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_lt_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_lt_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_lt_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_lt_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_lt_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_lt_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_lt_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_lt_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_lt_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_lt_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_lt_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ne_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ne_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ne_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ne_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ne_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ne_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ne_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ne_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ne_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ne_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ne_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ne_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ne_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ne_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ne_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ne_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_neq_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_neq_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x8d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_neq_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_neq_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x8d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_neq_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_neq_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x8d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_neq_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_neq_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_neq_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x9d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_neq_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_neq_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x9d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_neq_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_neq_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x9d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_neq_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nge_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nge_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x89,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nge_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x89,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nge_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x89,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nge_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x89,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nge_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x89,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_nge_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x89,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nge_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nge_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x99,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nge_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x99,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nge_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x99,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nge_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x99,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nge_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x99,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_nge_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x99,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_ngt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ngt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x8b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ngt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_ngt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x8b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ngt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_ngt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x8b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ngt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_ngt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ngt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x9b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ngt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_ngt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x9b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ngt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_ngt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x9b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ngt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nle_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nle_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x8c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nle_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nle_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x8c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nle_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nle_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x8c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_nle_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nle_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nle_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x9c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nle_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nle_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x9c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nle_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nle_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x9c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_nle_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nlg_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nlg_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x8a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nlg_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nlg_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x8a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nlg_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nlg_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x8a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_nlg_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nlg_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nlg_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x9a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nlg_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nlg_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x9a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nlg_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nlg_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x9a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_nlg_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nlt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nlt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x8e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nlt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nlt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x8e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nlt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nlt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x8e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_nlt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nlt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nlt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x9e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nlt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nlt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x9e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nlt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nlt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x9e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_nlt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_o_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_o_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_o_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x87,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_o_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x87,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_o_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x87,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_o_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x87,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_o_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x87,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_o_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x87,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_o_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_o_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_o_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x97,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_o_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x97,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_o_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x97,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_o_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x97,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_o_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x97,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_o_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x97,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_t_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_t_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_t_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_t_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_t_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_t_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_t_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_t_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_t_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_t_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_t_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_t_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x8f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_t_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x8f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_t_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x8f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_t_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_t_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_t_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_t_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_t_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_t_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_t_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_t_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_t_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_t_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_t_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_t_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_t_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x9f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_t_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x9f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_t_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x9f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_t_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_t_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_t_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_t_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_t_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_t_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_t_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc7,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_t_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_t_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_t_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_t_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_t_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_t_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xcf,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_tru_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_tru_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_tru_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x8f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_tru_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x8f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_tru_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x8f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_t_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_tru_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_tru_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9f,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_tru_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x9f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9f,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_tru_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x9f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9f,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_tru_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x9f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_t_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9f,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_u_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_u_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_u_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x88,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_u_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x88,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_u_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x88,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_u_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x88,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_u_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x88,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_u_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x88,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_u_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_u_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_mirror -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_half_mirror -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_shl:1 -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_shl:15 -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_shr:1 -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_shr:15 -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_ror:1 -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_ror:15 -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_u_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: [0x7e,0x01,0x98,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_u_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x98,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_u_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: [0x7e,0x02,0x98,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_u_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x98,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_u_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: [0x7e,0x83,0x98,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_u_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x98,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s index 73369685a0e6d..ff7b114b128cf 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8.s @@ -1,3052 +1,3017 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 %s 2>&1 | FileCheck --check-prefixes=GFX11-ERR,W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 %s 2>&1 | FileCheck --check-prefixes=GFX11-ERR,W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefixes=GFX11-ERR,W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefixes=GFX11-ERR,W64-ERR --implicit-check-not=error: %s v_add3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x55,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_add3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x55,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x55,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_add3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x55,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_add_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x00,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x00,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x00,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x00,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xfc,0x00,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_add_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x00,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_lshl_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x47,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_add_lshl_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x47,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x47,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_add_lshl_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x47,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] - -v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x0d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xc0,0x0d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xc0,0x0d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x26,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x26,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x26,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] - -v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_i32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x26,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x03,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x03,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xc0,0x03,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xc0,0x03,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_alignbit_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x16,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_alignbit_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x16,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x16,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_alignbit_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x16,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x17,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_alignbyte_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x17,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x17,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_alignbyte_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x17,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_and_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_and_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x62,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_and_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x62,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_and_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x62,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_and_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x62,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_and_or_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x57,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_and_or_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x57,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x57,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_and_or_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x57,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x3a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x3a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x3a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_ashrrev_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x3a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_ashrrev_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_ashrrev_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x3a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x3a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x40,0x3a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_ashrrev_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x3a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_bcnt_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_bcnt_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_bcnt_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_bcnt_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_bcnt_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_bfe_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x11,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x11,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x11,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_bfe_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x11,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_bfe_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x10,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_bfe_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x10,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x10,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_bfe_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x10,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_bfi_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x12,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_bfi_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x12,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x12,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_bfi_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x12,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_bfm_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_bfm_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_bfm_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_bfm_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_bfm_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cndmask_b16_e64_dpp v5, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x01,0x5d,0xd6,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x5d,0xd6,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xee,0x21,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xee,0x21,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x01,0x5d,0xd6,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x5d,0xd6,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xea,0x21,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xea,0x21,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v255, -|v255|, -|v255|, null dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x5d,0xd6,0xe9,0xfe,0xf3,0x61,0xff,0x00,0x00,0x00] +// GFX11: v_cndmask_b16_e64_dpp v255, -|v255|, -|v255|, null dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x5d,0xd6,0xe9,0xfe,0xf3,0x61,0xff,0x00,0x00,0x00] v_cubeid_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x0c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x0c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x0c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x0c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x0c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x0c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x0c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x0c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x0c,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x0c,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x0c,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_cubeid_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x0c,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x0c,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_cubeid_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x0c,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_cubema_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x0f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x0f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x0f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x0f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x0f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x0f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x0f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x0f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x0f,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x0f,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x0f,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_cubema_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x0f,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x0f,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_cubema_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x0f,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_cubesc_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x0d,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x0d,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x0d,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x0d,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x0d,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x0d,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x0d,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x0d,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x0d,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x0d,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x0d,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_cubesc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x0d,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x0d,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_cubesc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x0d,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_cubetc_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x0e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x0e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x0e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x0e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x0e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x0e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x0e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x0e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x0e,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x0e,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x0e,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_cubetc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x0e,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x0e,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_cubetc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x0e,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x06,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x06,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_i16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x06,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x06,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_i16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x06,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x06,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_i16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x06,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_i16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x06,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x24,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x24,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_i16_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x24,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_i16_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x24,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x12,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x12,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x12,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x12,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x12,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x12,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x13,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x13,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x13,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x13,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x13,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x13,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x07,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_u16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x07,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x07,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_u16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x07,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x07,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_u16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x07,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_u16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x07,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x23,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x23,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_u16_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x23,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_u16_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x23,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x26,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x26,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v255, -|v255|, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x01,0x26,0xd6,0xe9,0xfe,0xf7,0x23,0xff,0x00,0x00,0x00] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x12,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x12,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x12,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_u8_f32_e64_dpp v255, -|v255|, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x01,0x26,0xd6,0xe9,0xfe,0xf7,0x23,0xff,0x00,0x00,0x00] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x21,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x21,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x21,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x21,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x21,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x13,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x13,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x13,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x21,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x22,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x22,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x22,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x22,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x22,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x22,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_div_fixup_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x54,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x54,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x54,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x54,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x54,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x54,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x54,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x54,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x54,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x54,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x54,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x54,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x54,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x54,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x54,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_fma_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x48,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x48,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x48,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x48,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x48,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x48,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x48,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x48,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x48,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x48,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x48,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x48,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x48,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x48,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x48,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_fma_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x13,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x13,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x13,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x13,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x13,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x13,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x13,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x13,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x13,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x13,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x13,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x13,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x13,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_fma_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x13,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_ldexp_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ldexp_f32_e64_dpp v5, v1, v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd7,0xe9,0x04,0x02,0x08,0x01,0x77,0x39,0x05] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd7,0xe9,0x04,0x02,0x08,0x01,0x77,0x39,0x05] v_ldexp_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1c,0xd7,0xea,0x04,0x02,0x10,0x01,0x77,0x39,0x05] +// GFX11: v_ldexp_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1c,0xd7,0xea,0x04,0x02,0x10,0x01,0x77,0x39,0x05] v_ldexp_f32_e64_dpp v255, -|v255|, v255 clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x81,0x1c,0xd7,0xe9,0xfe,0x03,0x38,0xff,0x00,0x00,0x00] +// GFX11: v_ldexp_f32_e64_dpp v255, -|v255|, v255 clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x81,0x1c,0xd7,0xe9,0xfe,0x03,0x38,0xff,0x00,0x00,0x00] v_lerp_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x15,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_lerp_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x15,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x15,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_lerp_u8_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x15,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_lshl_add_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x46,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_add_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x46,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x46,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_lshl_add_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x46,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_lshl_or_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x56,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_lshl_or_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x56,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x56,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_lshl_or_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x56,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x38,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x38,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x38,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_lshlrev_b16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x38,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_lshlrev_b16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshlrev_b16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x38,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x38,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x40,0x38,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_lshlrev_b16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x38,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x39,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x39,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x39,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_lshrrev_b16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x39,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_lshrrev_b16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshrrev_b16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x39,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x39,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x40,0x39,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_lshrrev_b16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x39,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mad_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x53,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x53,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x53,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_i16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x53,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_i32_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x5a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x5a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x5a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x5a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_i32_i24_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x0a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i24_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x0a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_i32_i24_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x0a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x41,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x41,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x41,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x41,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u32_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x59,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x59,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x59,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x59,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u32_u24_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x0b,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u24_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0b,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x0b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_u32_u24_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x0b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x4c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x4c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x4c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x4c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x4c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x4c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x4c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x4c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x4c,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x4c,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x4c,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x4c,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x4c,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_max3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x4c,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_max3_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x1c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x1c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x1c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x1c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x1c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x1c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x1c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x1c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x1c,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x1c,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x1c,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x1c,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_max3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x1c,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_max3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x1c,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_max3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x4d,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x4d,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x4d,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_max3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x4d,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1d,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1d,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1d,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_max3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1d,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x4e,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x4e,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x4e,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_max3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x4e,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1e,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1e,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1e,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_max3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1e,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x0a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x0a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_max_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x0a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x40,0x0a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_max_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x0a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x09,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x09,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x09,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_max_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x09,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x09,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x09,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x40,0x09,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_max_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x09,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_maxmin_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x60,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x60,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x60,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x60,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x60,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x60,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x60,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x60,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x60,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x60,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x60,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x60,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x60,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x60,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x60,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x60,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x60,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x60,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x60,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x60,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x60,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x60,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_maxmin_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x60,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_maxmin_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x60,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_maxmin_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x5e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x5e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x5e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x5e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x5e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x5e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x5e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x5e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x5e,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x5e,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x5e,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x5e,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_maxmin_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x5e,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_maxmin_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x5e,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_maxmin_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x64,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x64,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x64,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_maxmin_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x64,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_maxmin_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x62,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_maxmin_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x62,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x62,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_maxmin_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x62,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x20,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x20,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mbcnt_hi_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x20,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_mbcnt_hi_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x20,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1f,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1f,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1f,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1f,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mbcnt_lo_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1f,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_mbcnt_lo_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1f,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_med3_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x4f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x4f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x4f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x4f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x4f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x4f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x4f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x4f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x4f,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x4f,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x4f,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x4f,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x4f,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_med3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x4f,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_med3_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x1f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x1f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x1f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x1f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x1f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x1f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x1f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x1f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x1f,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x1f,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x1f,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x1f,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_med3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x1f,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_med3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x1f,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_med3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x50,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x50,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x50,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_med3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x50,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x20,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x20,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x20,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_med3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x20,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x51,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x51,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x51,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_med3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x51,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x21,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x21,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x21,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_med3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x21,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x49,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x49,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x49,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x49,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x49,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x49,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x49,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x49,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x49,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x49,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x49,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x49,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x49,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x49,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x49,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x49,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x49,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x49,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x49,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x49,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x49,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x49,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x49,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_min3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x49,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_min3_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x19,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x19,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x19,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x19,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x19,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x19,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x19,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x19,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x19,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x19,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x19,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x19,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x19,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x19,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x19,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x19,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x19,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_min3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x19,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_min3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x19,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_min3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x4a,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x4a,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x4a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_min3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x4a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_min3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x4b,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x4b,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x4b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_min3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x4b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1b,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1b,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_min3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x0c,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0c,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x0c,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_min_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0c,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x0c,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0c,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x40,0x0c,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_min_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x0c,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x0b,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0b,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x0b,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_min_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0b,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x0b,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0b,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x40,0x0b,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_min_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x0b,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_minmax_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x61,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x61,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x61,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x61,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x61,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x61,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x61,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x61,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x61,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x61,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x61,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x61,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x61,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x61,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x61,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x61,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x61,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x61,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x61,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x61,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x61,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x61,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_minmax_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x61,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_minmax_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x61,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_minmax_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x5f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x5f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x5f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x5f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x5f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x5f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x5f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x5f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x5f,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x5f,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x5f,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x5f,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_minmax_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x5f,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_minmax_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x5f,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_minmax_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x65,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x65,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x65,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_minmax_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x65,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_minmax_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x63,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_minmax_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x63,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x63,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_minmax_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x63,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_msad_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x39,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_msad_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x39,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x39,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_msad_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x39,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x05,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x05,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x05,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_mul_lo_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x05,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_lo_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_lo_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x05,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x05,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x40,0x05,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_mul_lo_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x05,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mullit_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x18,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x18,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x18,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x02,0x18,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x18,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x04,0x18,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x18,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x03,0x18,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x18,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x05,0x18,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x18,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x06,0x18,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX11: v_mullit_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x18,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x87,0x18,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX11: v_mullit_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x18,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_or3_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x58,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_or3_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x58,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x58,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_or3_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x58,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_or_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x63,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_or_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x63,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_or_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x63,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_or_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x63,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_or_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x63,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_pack_b32_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_pack_b32_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_pack_b32_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x11,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_pack_b32_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x11,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_pack_b32_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x11,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_pack_b32_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x11,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x11,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x11,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_perm_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x44,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_perm_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x44,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x44,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_perm_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x44,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sad_hi_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x23,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_sad_hi_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x23,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x23,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_sad_hi_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x23,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sad_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x24,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x24,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x24,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_sad_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x24,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sad_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x25,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x25,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x25,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_sad_u32_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x25,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sad_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x22,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_sad_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x22,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x22,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_sad_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x22,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sub_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x01,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x01,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x01,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x01,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xfc,0x01,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] - -v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x01,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x0e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xc0,0x0e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xc0,0x0e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x25,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x25,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x25,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] - -v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_i32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x25,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x58,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x10,0x04,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x04,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xc0,0x04,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xc0,0x04,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_subrev_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x02,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x02,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x02,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x02,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xfc,0x02,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_subrev_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x02,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_xad_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x45,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_xad_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x45,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x45,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_xad_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x45,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_xor3_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x40,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_xor3_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x40,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x40,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_xor3_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x40,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_xor_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x64,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xor_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x64,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_xor_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x64,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xor_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x64,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_xor_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x64,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x0a,0x12,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0a,0x12,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x13,0x12,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x13,0x12,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x0a,0x13,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0a,0x13,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x13,0x13,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x13,0x13,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x7c,0x54,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x54,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x0b,0x54,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x54,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x15,0x54,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x54,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x26,0x54,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x54,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0xc7,0x54,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x54,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x7c,0x48,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x48,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x0b,0x48,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x48,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x15,0x48,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x48,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x26,0x48,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x48,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0xc7,0x48,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x48,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_mad_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x78,0x53,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x53,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x53,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x53,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x10,0x53,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x53,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x20,0x53,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x53,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0xc0,0x53,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc0,0x53,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x5a,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x5a,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x90,0x5a,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x90,0x5a,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x78,0x41,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x41,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x41,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x41,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x10,0x41,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x41,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x20,0x41,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x41,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0xc0,0x41,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc0,0x41,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x59,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x59,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x90,0x59,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x90,0x59,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x7c,0x4c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x4c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x0b,0x4c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x4c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x15,0x4c,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x4c,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x26,0x4c,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_max3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x4c,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_max3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0xc7,0x4c,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_max3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x4c,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_max3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x78,0x4d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x4d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x4d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x4d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x10,0x4d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x4d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x20,0x4d,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_max3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x4d,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x40,0x4d,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_max3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x4d,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x78,0x4e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x4e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x4e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x4e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x10,0x4e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x4e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x20,0x4e,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_max3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x4e,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x40,0x4e,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_max3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x4e,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x7c,0x4f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x4f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x0b,0x4f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x4f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x15,0x4f,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x4f,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x26,0x4f,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_med3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x4f,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_med3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0xc7,0x4f,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_med3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x4f,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_med3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x78,0x50,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x50,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x50,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x50,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x10,0x50,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x50,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x20,0x50,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_med3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x50,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x40,0x50,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_med3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x50,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x78,0x51,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x51,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x51,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x51,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x10,0x51,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x51,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x20,0x51,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_med3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x51,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x40,0x51,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_med3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x51,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x7c,0x49,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x49,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x0b,0x49,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x49,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x15,0x49,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x49,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x26,0x49,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX11: v_min3_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x49,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_min3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0xc7,0x49,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX11: v_min3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x49,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_min3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x78,0x4a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x4a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x4a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x4a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x10,0x4a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x4a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x20,0x4a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_min3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x4a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x40,0x4a,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_min3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x4a,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x78,0x4b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x4b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x08,0x4b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x4b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x10,0x4b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x4b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x20,0x4b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_min3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x4b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x40,0x4b,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX11: v_min3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x4b,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_pack_b32_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x0a,0x11,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_pack_b32_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0a,0x11,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX11: [0xff,0x13,0x11,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x13,0x11,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX11: encoding: [0x00,0x00,0x66,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] +// GFX11: v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x00,0x66,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[1,1,0,0] dpp8:[0,1,2,3,4,4,4,4] -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel operand +// GFX11-ERR: :[[@LINE-1]]:39: error: invalid op_sel operand v_dot2_f16_f16_e64_dpp v0, s1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX11-ERR: :[[@LINE-1]]:28: error: invalid operand for instruction v_dot2_f16_f16_e64_dpp v0, v1, s2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX11-ERR: :[[@LINE-1]]:32: error: invalid operand for instruction v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] -// GFX11: encoding: [0x00,0x60,0x66,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] +// GFX11: v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x60,0x66,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] v_dot2_f16_f16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] -// GFX11: encoding: [0x00,0x65,0x66,0xd6,0xe9,0x04,0x0e,0xc0,0x01,0x88,0x46,0x92] +// GFX11: v_dot2_f16_f16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x65,0x66,0xd6,0xe9,0x04,0x0e,0xc0,0x01,0x88,0x46,0x92] v_dot2_f16_f16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0x05,0x00,0x66,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX11: v_dot2_f16_f16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x66,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX11: encoding: [0x00,0x00,0x67,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] +// GFX11: v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x00,0x67,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[1,1,0,0] dpp8:[0,1,2,3,4,4,4,4] -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel operand +// GFX11-ERR: :[[@LINE-1]]:41: error: invalid op_sel operand v_dot2_bf16_bf16_e64_dpp v0, s1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX11-ERR: :[[@LINE-1]]:30: error: invalid operand for instruction v_dot2_bf16_bf16_e64_dpp v0, v1, s2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX11-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX11-ERR: :[[@LINE-1]]:34: error: invalid operand for instruction v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] -// GFX11: encoding: [0x00,0x60,0x67,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] +// GFX11: v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x60,0x67,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] v_dot2_bf16_bf16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] -// GFX11: encoding: [0x00,0x65,0x67,0xd6,0xe9,0x04,0x0e,0xc0,0x01,0x88,0x46,0x92] +// GFX11: v_dot2_bf16_bf16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x65,0x67,0xd6,0xe9,0x04,0x0e,0xc0,0x01,0x88,0x46,0x92] v_dot2_bf16_bf16_e64_dpp v5, v1, v2, 0 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0x05,0x00,0x67,0xd6,0xe9,0x04,0x02,0x02,0x01,0x77,0x39,0x05] +// GFX11: v_dot2_bf16_bf16_e64_dpp v5, v1, v2, 0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x67,0xd6,0xe9,0x04,0x02,0x02,0x01,0x77,0x39,0x05] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop2.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop2.s index 69f6e795e1c38..29d65d816ae58 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop2.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vop2.s @@ -1,550 +1,551 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefixes=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefixes=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefixes=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefixes=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x20,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x20,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x20,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x20,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x20,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x20,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x20,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x20,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x20,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x20,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x20,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x20,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x20,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x20,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x20,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x20,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x20,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x20,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xfc,0x20,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] +// GFX11: v_add_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x20,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] v_add_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x32,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x32,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_add_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x32,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_add_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x32,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_add_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x32,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_add_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x32,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_add_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x32,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_add_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x03,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_add_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x03,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_add_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x03,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_add_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x03,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_add_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x03,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_add_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x03,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_add_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x25,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x25,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_add_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x25,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x25,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_add_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x25,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_and_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_and_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1b,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_and_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1b,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_and_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1b,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_and_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1b,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_ashrrev_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1a,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_ashrrev_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1a,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1a,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_ashrrev_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1a,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cndmask_b32_e64_dpp v5, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x01,0x01,0xd5,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x01,0xd5,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x02,0x01,0xd5,0xea,0x04,0xee,0x21,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x01,0xd5,0xea,0x04,0xee,0x21,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x01,0x01,0xd5,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x01,0xd5,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x02,0x01,0xd5,0xea,0x04,0xea,0x21,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x01,0xd5,0xea,0x04,0xea,0x21,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v255, -|v255|, -|v255|, null dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x03,0x01,0xd5,0xe9,0xfe,0xf3,0x61,0xff,0x00,0x00,0x00] +// GFX11: v_cndmask_b32_e64_dpp v255, -|v255|, -|v255|, null dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x01,0xd5,0xe9,0xfe,0xf3,0x61,0xff,0x00,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x2f,0xd5,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2f,0xd5,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x2f,0xd5,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x2f,0xd5,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x2f,0xd5,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x2f,0xd5,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x2f,0xd5,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2f,0xd5,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x2f,0xd5,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x2f,0xd5,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x2f,0xd5,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x2f,0xd5,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_fmac_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x36,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_fmac_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x36,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_fmac_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x36,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_fmac_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x36,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_fmac_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x36,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_fmac_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x36,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_fmac_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x36,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_fmac_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x36,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_fmac_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x2b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_fmac_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_fmac_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x2b,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_fmac_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2b,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_fmac_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x2b,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_fmac_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x2b,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_fmac_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x2b,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_fmac_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x2b,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_ldexp_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ldexp_f16_e64_dpp v5, v1, v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x02,0x08,0x01,0x77,0x39,0x05] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x02,0x08,0x01,0x77,0x39,0x05] v_ldexp_f16_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x3b,0xd5,0xea,0x04,0x02,0x10,0x01,0x77,0x39,0x05] +// GFX11: v_ldexp_f16_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x3b,0xd5,0xea,0x04,0x02,0x10,0x01,0x77,0x39,0x05] v_ldexp_f16_e64_dpp v255, -|v255|, v255 clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x81,0x3b,0xd5,0xe9,0xfe,0x03,0x38,0xff,0x00,0x00,0x00] +// GFX11: v_ldexp_f16_e64_dpp v255, -|v255|, v255 clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x81,0x3b,0xd5,0xe9,0xfe,0x03,0x38,0xff,0x00,0x00,0x00] v_lshlrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x18,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x18,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshlrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x18,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x18,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_lshlrev_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x18,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_lshrrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x19,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x19,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_lshrrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x19,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x19,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_lshrrev_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x19,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x39,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x39,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_max_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x39,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_max_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x39,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_max_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x39,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_max_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x39,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_max_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x39,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_max_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x10,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x10,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_max_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x10,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_max_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x10,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_max_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x10,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_max_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x10,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_max_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x10,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_max_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x12,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x12,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x12,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x12,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_max_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x12,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x14,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x14,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x14,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_max_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x14,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x14,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_max_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x14,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x3a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x3a,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_min_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x3a,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_min_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x3a,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_min_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x3a,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_min_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x3a,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_min_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x3a,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_min_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x0f,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_min_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x0f,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_min_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x0f,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_min_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x0f,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_min_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x0f,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_min_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x0f,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_min_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x11,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x11,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x11,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x11,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_min_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x11,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x13,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x13,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_min_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x13,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x13,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_min_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x13,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x07,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x07,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x07,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x07,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x07,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x07,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_mul_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x35,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x35,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x35,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x35,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_mul_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x35,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x35,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_mul_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x35,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_mul_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x35,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_mul_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x08,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x08,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x08,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x08,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_mul_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x08,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_mul_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x08,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_mul_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x08,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_mul_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x08,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x0a,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0a,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x0a,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0a,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0c,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x0c,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0c,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x0c,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0c,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x09,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x09,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x09,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_i32_i24_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x09,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_mul_i32_i24_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x09,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_legacy_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_legacy_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x07,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x07,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_mul_legacy_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x07,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x07,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_mul_legacy_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x07,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x07,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_mul_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x0b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x0b,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_mul_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0b,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_u32_u24_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x0b,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_mul_u32_u24_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x0b,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_or_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1c,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_or_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1c,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_or_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1c,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_or_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1c,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_or_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1c,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x21,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x21,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x21,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x21,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x21,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x21,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x21,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x21,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x21,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x21,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x21,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x21,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x21,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x21,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x21,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x21,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x21,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x21,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xfc,0x21,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] +// GFX11: v_sub_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x21,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] v_sub_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x33,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x33,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x33,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x33,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_sub_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x33,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x33,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_sub_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x33,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_sub_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x33,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_sub_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x04,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x04,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x04,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_sub_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x04,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_sub_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x04,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_sub_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x04,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_sub_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x04,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_sub_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x26,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x26,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_sub_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x26,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x26,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_sub_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x26,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x22,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x22,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x22,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x22,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x22,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x22,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x22,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x22,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x22,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x22,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x22,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x22,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x22,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x22,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x22,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x22,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x22,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x22,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0xfc,0x22,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] +// GFX11: v_subrev_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x22,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] v_subrev_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x34,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x34,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_subrev_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x34,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x34,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_subrev_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x34,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x34,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_subrev_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x34,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_subrev_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x34,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_subrev_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x05,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_subrev_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x01,0x05,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x05,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_subrev_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x02,0x05,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x05,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_subrev_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x83,0x05,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX11: v_subrev_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x05,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_subrev_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x27,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x27,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_subrev_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x27,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_subrev_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x27,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_subrev_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x80,0x27,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_subrev_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x27,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_xnor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1e,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xnor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1e,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_xnor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1e,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xnor_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1e,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_xnor_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1e,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_xor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x05,0x00,0x1d,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x05,0x00,0x1d,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_xor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1d,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xor_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0xff,0x00,0x1d,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_xor_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1d,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopc.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopc.s index c99936903a476..4d73ca321465c 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopc.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopc.s @@ -1,2500 +1,2501 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x7d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x7d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x7d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x7d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp null, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x01,0x7d,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_class_f16_e64_dpp null, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x01,0x7d,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x7e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x7e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x7e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x7e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp null, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x01,0x7e,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_class_f32_e64_dpp null, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x01,0x7e,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cmp_eq_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x02,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x02,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x02,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x02,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x02,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x02,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x02,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x02,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x02,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_eq_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x02,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_eq_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x12,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x12,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x12,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x12,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x12,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x12,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x12,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x12,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x12,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_eq_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x12,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_eq_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x32,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x32,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x32,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x32,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x32,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_eq_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x32,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_eq_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x42,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x42,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x42,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x42,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x42,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_eq_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x42,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_eq_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x3a,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_eq_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3a,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_eq_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x4a,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_eq_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4a,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_f_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x00,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x00,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x00,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x00,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x00,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x00,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x00,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x00,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x00,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x00,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_f_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x00,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_f_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x10,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x10,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x10,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x10,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x10,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x10,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x10,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x10,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x10,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x10,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_f_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x10,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_f_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x40,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x40,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x40,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x40,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x40,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x40,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_f_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x40,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_f_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x48,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x48,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x48,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x48,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x48,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_f_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x48,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_f_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x48,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ge_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x06,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x06,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x06,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x06,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x06,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x06,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x06,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x06,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x06,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ge_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x06,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_ge_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x16,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x16,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x16,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x16,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x16,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x16,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x16,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x16,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x16,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ge_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x16,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_ge_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x36,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x36,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x36,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x36,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x36,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ge_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x36,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ge_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x46,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x46,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x46,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x46,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x46,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ge_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x46,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ge_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x3e,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ge_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3e,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ge_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x4e,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ge_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4e,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_gt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x04,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x04,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x04,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x04,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x04,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x04,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x04,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x04,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x04,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_gt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x04,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_gt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x14,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x14,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x14,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x14,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x14,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x14,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x14,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x14,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x14,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_gt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x14,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_gt_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x34,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x34,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x34,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x34,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x34,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_gt_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x34,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_gt_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x44,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x44,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x44,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x44,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x44,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_gt_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x44,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_gt_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x3c,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_gt_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3c,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_gt_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x4c,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_gt_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4c,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_le_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x03,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x03,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x03,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x03,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x03,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x03,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x03,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x03,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x03,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_le_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x03,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_le_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x13,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x13,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x13,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x13,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x13,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x13,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x13,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x13,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x13,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_le_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x13,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_le_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x33,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x33,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x33,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x33,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x33,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_le_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x33,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_le_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x43,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x43,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x43,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x43,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x43,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_le_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x43,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_le_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x3b,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_le_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3b,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_le_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x4b,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_le_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4b,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_lg_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x05,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x05,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x05,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x05,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x05,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x05,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x05,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x05,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x05,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_lg_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x05,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_lg_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x15,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x15,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x15,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x15,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x15,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x15,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x15,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x15,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x15,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_lg_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x15,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_lt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x01,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x01,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x01,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x01,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x01,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x01,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x01,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x01,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x01,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_lt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x01,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_lt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x11,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x11,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x11,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x11,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x11,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x11,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x11,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x11,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x11,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_lt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x11,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_lt_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x31,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x31,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x31,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x31,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x31,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_lt_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x31,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_lt_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x41,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x41,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x41,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x41,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x41,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_lt_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x41,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_lt_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x39,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x39,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x39,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x39,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x39,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_lt_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x39,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_lt_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x49,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x49,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x49,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x49,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x49,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_lt_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x49,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ne_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x35,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x35,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x35,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x35,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x35,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ne_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x35,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ne_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x45,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x45,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x45,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x45,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x45,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ne_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x45,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ne_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x3d,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ne_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3d,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ne_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x4d,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ne_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4d,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_neq_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x0d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_neq_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_neq_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x1d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_neq_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nge_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x09,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x09,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x09,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x09,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x09,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x09,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x09,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x09,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x09,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_nge_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x09,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nge_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x19,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x19,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x19,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x19,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x19,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x19,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x19,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x19,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x19,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_nge_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x19,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_ngt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x0b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ngt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_ngt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x1b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_ngt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nle_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x0c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_nle_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nle_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x1c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_nle_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nlg_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x0a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_nlg_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nlg_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x1a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_nlg_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nlt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x0e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_nlt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nlt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x1e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_nlt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_o_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x07,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x07,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x07,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x07,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x07,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x07,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x07,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x07,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x07,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_o_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x07,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_o_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x17,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x17,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x17,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x17,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x17,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x17,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x17,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x17,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x17,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_o_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x17,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_t_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x0f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_t_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_t_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x1f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_t_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_t_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x47,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x47,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x47,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x47,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x47,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x47,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_t_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x47,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_t_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4f,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4f,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4f,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4f,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_t_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x00,0x4f,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_t_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4f,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_tru_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x0f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_t_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_tru_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_tru_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x1f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_t_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_u_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x08,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x08,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x08,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x08,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x08,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x08,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x08,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x08,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x08,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_u_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x08,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_u_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x18,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x18,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x18,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x18,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x18,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x18,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x18,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x18,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7c,0x83,0x18,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmp_u_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x18,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopcx.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopcx.s index 610261ad2a303..a950c75dbf85d 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopcx.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_dpp8_from_vopcx.s @@ -1,680 +1,681 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s v_cmpx_class_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xfd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xfd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_class_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xfd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f16_e64_dpp -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x01,0xfd,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64_dpp -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x01,0xfd,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xfe,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xfe,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f32_e64_dpp -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x01,0xfe,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_class_f32_e64_dpp -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x01,0xfe,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cmpx_eq_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x82,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x82,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x82,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x82,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_eq_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x82,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x82,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_eq_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x82,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x82,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_eq_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x92,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x92,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x92,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x92,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_eq_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x92,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x92,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_eq_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x92,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x92,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_eq_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xb2,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb2,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xb2,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb2,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_eq_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc2,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc2,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc2,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc2,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_eq_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xba,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xba,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xba,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xba,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xba,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xba,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_eq_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xca,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xca,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xca,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xca,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xca,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xca,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_f_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x80,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x80,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_f_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x80,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x80,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_f_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x80,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x80,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_f_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x80,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_f_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x80,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_f_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x90,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x90,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_f_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x90,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x90,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_f_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x90,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x90,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_f_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x90,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_f_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x90,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_f_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc0,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc0,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_f_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc0,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_f_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc0,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_f_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc0,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_f_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc8,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc8,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_f_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc8,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_f_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc8,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_f_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc8,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ge_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x86,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x86,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x86,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x86,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_ge_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x86,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x86,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_ge_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x86,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x86,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_ge_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x96,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x96,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x96,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x96,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_ge_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x96,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x96,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_ge_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x96,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x96,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_ge_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xb6,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb6,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xb6,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb6,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ge_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc6,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc6,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc6,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc6,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ge_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xbe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xbe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xbe,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xbe,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ge_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xce,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xce,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xce,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xce,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xce,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xce,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_gt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x84,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x84,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x84,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x84,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_gt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x84,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x84,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_gt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x84,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x84,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_gt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x94,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x94,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x94,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x94,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_gt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x94,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x94,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_gt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x94,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x94,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_gt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xb4,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb4,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xb4,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb4,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_gt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc4,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc4,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc4,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc4,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_gt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xbc,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xbc,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xbc,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xbc,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_gt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xcc,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xcc,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xcc,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xcc,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_le_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x83,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x83,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x83,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x83,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_le_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x83,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x83,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_le_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x83,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_le_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x83,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_le_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x93,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x93,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x93,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x93,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_le_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x93,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x93,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_le_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x93,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_le_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x93,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_le_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xb3,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb3,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xb3,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb3,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_le_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc3,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc3,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc3,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_le_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc3,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_le_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xbb,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xbb,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xbb,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xbb,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_le_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xcb,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xcb,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xcb,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_le_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xcb,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_lg_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x85,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x85,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lg_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x85,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x85,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_lg_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x85,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x85,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_lg_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x85,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x85,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_lg_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x95,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x95,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lg_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x95,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x95,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_lg_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x95,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x95,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_lg_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x95,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lg_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x95,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_lt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x81,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x81,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x81,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x81,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_lt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x81,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x81,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_lt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x81,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x81,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_lt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x91,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x91,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x91,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x91,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_lt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x91,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x91,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_lt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x91,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x91,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_lt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xb1,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb1,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xb1,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb1,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_lt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc1,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc1,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc1,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc1,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_lt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xb9,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb9,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xb9,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb9,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_lt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc9,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc9,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc9,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc9,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ne_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xb5,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb5,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xb5,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb5,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ne_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc5,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc5,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc5,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ne_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc5,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ne_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xbd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xbd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xbd,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xbd,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ne_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xcd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xcd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xcd,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ne_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xcd,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_neq_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x8d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_neq_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x8d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_neq_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x8d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_neq_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x8d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_neq_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x9d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_neq_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x9d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_neq_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x9d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_neq_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x9d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_neq_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nge_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x89,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x89,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nge_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x89,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x89,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nge_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x89,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x89,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nge_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x89,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x89,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nge_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x99,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x99,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nge_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x99,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x99,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nge_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x99,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x99,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nge_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x99,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nge_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x99,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_ngt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x8b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x8b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x8b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x8b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_ngt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x9b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x9b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x9b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x9b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ngt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nle_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x8c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nle_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x8c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nle_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x8c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nle_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x8c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nle_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x9c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nle_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x9c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nle_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x9c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nle_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x9c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nle_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nlg_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x8a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x8a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x8a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x8a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nlg_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x9a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x9a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x9a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x9a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nlg_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nlt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x8e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x8e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x8e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x8e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nlt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x9e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x9e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x9e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x9e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nlt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_o_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x87,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x87,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_o_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x87,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x87,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_o_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x87,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x87,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_o_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x87,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_o_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x87,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_o_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x97,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x97,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_o_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x97,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x97,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_o_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x97,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x97,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_o_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x97,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_o_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x97,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_t_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x8f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_t_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x8f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_t_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x8f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_t_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x8f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_t_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x9f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_t_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x9f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_t_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x9f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_t_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x9f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_t_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xc7,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc7,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_t_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc7,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_t_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xc7,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc7,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_t_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0xcf,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xcf,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_t_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcf,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_t_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x00,0xcf,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xcf,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_tru_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x8f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_tru_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x8f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_tru_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x8f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_tru_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x8f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_tru_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x9f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9f,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_tru_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x9f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9f,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_tru_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x9f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9f,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_tru_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x9f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9f,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_u_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x88,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x88,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_u_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x88,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x88,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_u_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x88,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x88,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_u_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x88,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_u_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x88,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_u_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x00,0x98,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x98,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_u_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: [0x7e,0x01,0x98,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x98,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_u_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: [0x7e,0x02,0x98,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x98,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_u_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: [0x7e,0x83,0x98,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_u_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x98,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop2.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop2.s index f6907520fbb03..c56a3514a833a 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop2.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vop2.s @@ -1,2187 +1,2188 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, v255, src_scc, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0xff,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, v255, src_scc, s3 ; encoding: [0x05,0x06,0x20,0xd5,0xff,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, s105, s105, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, s105, s105, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x6a,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x6a,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x6b,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x6b,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, m0, 0.5, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x7d,0xe0,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, m0, 0.5, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x7d,0xe0,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x7f,0x82,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x7f,0x82,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s105, null, exec_hi, s105 -// W32: encoding: [0x05,0x69,0x20,0xd5,0x7c,0xfe,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s105, null, exec_hi, s105 ; encoding: [0x05,0x69,0x20,0xd5,0x7c,0xfe,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo -// W32: encoding: [0x05,0x6a,0x20,0xd5,0xc1,0xfa,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo ; encoding: [0x05,0x6a,0x20,0xd5,0xc1,0xfa,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi -// W32: encoding: [0x05,0x6b,0x20,0xd5,0xf0,0xd4,0xac,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi ; encoding: [0x05,0x6b,0x20,0xd5,0xf0,0xd4,0xac,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 -// W32: encoding: [0x05,0x7b,0x20,0xd5,0xfd,0xf8,0xec,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 ; encoding: [0x05,0x7b,0x20,0xd5,0xfd,0xf8,0xec,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0xff,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0xff,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x6a,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x6a,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x6b,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x6b,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7d,0xe0,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7d,0xe0,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7f,0x82,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7f,0x82,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7c,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7c,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] -// W64: encoding: [0x05,0x68,0x20,0xd5,0xc1,0xfa,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] ; encoding: [0x05,0x68,0x20,0xd5,0xc1,0xfa,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc -// W64: encoding: [0x05,0x6a,0x20,0xd5,0xf0,0xd4,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc ; encoding: [0x05,0x6a,0x20,0xd5,0xf0,0xd4,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] -// W64: encoding: [0x05,0x7a,0x20,0xd5,0xfd,0xf8,0xe8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] ; encoding: [0x05,0x7a,0x20,0xd5,0xfd,0xf8,0xe8,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp -// GFX11: encoding: [0xff,0xfc,0x20,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_add_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0xfc,0x20,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_add_f16_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_add_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x32,0xd5,0x01,0x05,0x02,0x00] v_add_f16_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_add_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x32,0xd5,0xff,0xff,0x03,0x00] v_add_f16_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_add_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x32,0xd5,0x01,0x04,0x00,0x00] v_add_f16_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_add_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x32,0xd5,0x69,0xd2,0x00,0x00] v_add_f16_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_add_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x32,0xd5,0x6a,0xf6,0x00,0x00] v_add_f16_e64 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_add_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x32,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_add_f16_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_add_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x32,0xd5,0x7b,0xfa,0x01,0x00] v_add_f16_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_add_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x32,0xd5,0x7d,0xe0,0x01,0x00] v_add_f16_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_add_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x32,0xd5,0x7e,0x82,0x01,0x00] v_add_f16_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x32,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_add_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x32,0xd5,0x7f,0xf8,0x00,0x00] v_add_f16_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_add_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x32,0xd5,0x7c,0xfc,0x00,0x00] v_add_f16_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_add_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x32,0xd5,0xc1,0xfe,0x00,0x00] v_add_f16_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x32,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_add_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x32,0xd5,0xf0,0xfa,0x00,0x48] v_add_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x32,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_add_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x32,0xd5,0xfd,0xd4,0x00,0x30] v_add_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x32,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX11: v_add_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x32,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_add_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_add_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x00] v_add_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_add_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x03,0xd5,0xff,0xff,0x03,0x00] v_add_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_add_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x04,0x00,0x00] v_add_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_add_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x03,0xd5,0x69,0xd2,0x00,0x00] v_add_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_add_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x03,0xd5,0x6a,0xf6,0x00,0x00] v_add_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_add_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x03,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_add_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_add_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x03,0xd5,0x7b,0xfa,0x01,0x00] v_add_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_add_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x03,0xd5,0x7d,0xe0,0x01,0x00] v_add_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_add_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x03,0xd5,0x7e,0x82,0x01,0x00] v_add_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x03,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_add_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x03,0xd5,0x7f,0xf8,0x00,0x00] v_add_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_add_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x03,0xd5,0x7c,0xfc,0x00,0x00] v_add_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_add_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x03,0xd5,0xc1,0xfe,0x00,0x00] v_add_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x03,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_add_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x03,0xd5,0xf0,0xfa,0x00,0x48] v_add_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x03,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_add_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x03,0xd5,0xfd,0xd4,0x00,0x30] v_add_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x03,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_add_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x03,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_add_nc_u32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_add_nc_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x25,0xd5,0x01,0x05,0x02,0x00] v_add_nc_u32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_add_nc_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x25,0xd5,0xff,0xff,0x03,0x00] v_add_nc_u32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_add_nc_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x25,0xd5,0x01,0x04,0x00,0x00] v_add_nc_u32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_add_nc_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x25,0xd5,0x69,0xd2,0x00,0x00] v_add_nc_u32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_add_nc_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x25,0xd5,0x6a,0xf6,0x00,0x00] v_add_nc_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_add_nc_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x25,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_add_nc_u32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_add_nc_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x25,0xd5,0x7b,0xfa,0x01,0x00] v_add_nc_u32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_add_nc_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x25,0xd5,0x7d,0xe0,0x01,0x00] v_add_nc_u32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_add_nc_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x25,0xd5,0x7e,0x82,0x01,0x00] v_add_nc_u32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_add_nc_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x25,0xd5,0x7f,0xf8,0x00,0x00] v_add_nc_u32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_add_nc_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x25,0xd5,0x7c,0xfc,0x00,0x00] v_add_nc_u32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_add_nc_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x25,0xd5,0xc1,0xfe,0x00,0x00] v_add_nc_u32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_add_nc_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x25,0xd5,0xf0,0xfa,0x00,0x00] v_add_nc_u32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x25,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_add_nc_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x25,0xd5,0xfd,0xd4,0x00,0x00] v_add_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0x80,0x25,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_add_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x25,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_and_b32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_and_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1b,0xd5,0x01,0x05,0x02,0x00] v_and_b32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_and_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1b,0xd5,0xff,0xff,0x03,0x00] v_and_b32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_and_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1b,0xd5,0x01,0x04,0x00,0x00] v_and_b32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_and_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1b,0xd5,0x69,0xd2,0x00,0x00] v_and_b32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_and_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1b,0xd5,0x6a,0xf6,0x00,0x00] v_and_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_and_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_and_b32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_and_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1b,0xd5,0x7b,0xfa,0x01,0x00] v_and_b32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_and_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1b,0xd5,0x7d,0xe0,0x01,0x00] v_and_b32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_and_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1b,0xd5,0x7e,0x82,0x01,0x00] v_and_b32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_and_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1b,0xd5,0x7f,0xf8,0x00,0x00] v_and_b32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_and_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1b,0xd5,0x7c,0xfc,0x00,0x00] v_and_b32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_and_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1b,0xd5,0xc1,0xfe,0x00,0x00] v_and_b32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_and_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1b,0xd5,0xf0,0xfa,0x00,0x00] v_and_b32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1b,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_and_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1b,0xd5,0xfd,0xd4,0x00,0x00] v_and_b32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x1b,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_and_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1b,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_ashrrev_i32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_ashrrev_i32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1a,0xd5,0x01,0x05,0x02,0x00] v_ashrrev_i32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_ashrrev_i32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1a,0xd5,0xff,0xff,0x03,0x00] v_ashrrev_i32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_ashrrev_i32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1a,0xd5,0x01,0x04,0x00,0x00] v_ashrrev_i32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_ashrrev_i32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1a,0xd5,0x69,0xd2,0x00,0x00] v_ashrrev_i32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_ashrrev_i32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1a,0xd5,0x6a,0xf6,0x00,0x00] v_ashrrev_i32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_ashrrev_i32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1a,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_ashrrev_i32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_ashrrev_i32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1a,0xd5,0x7b,0xfa,0x01,0x00] v_ashrrev_i32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_ashrrev_i32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1a,0xd5,0x7d,0xe0,0x01,0x00] v_ashrrev_i32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_ashrrev_i32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1a,0xd5,0x7e,0x82,0x01,0x00] v_ashrrev_i32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_ashrrev_i32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1a,0xd5,0x7f,0xf8,0x00,0x00] v_ashrrev_i32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_ashrrev_i32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1a,0xd5,0x7c,0xfc,0x00,0x00] v_ashrrev_i32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_ashrrev_i32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1a,0xd5,0xc1,0xfe,0x00,0x00] v_ashrrev_i32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_ashrrev_i32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1a,0xd5,0xf0,0xfa,0x00,0x00] v_ashrrev_i32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1a,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_ashrrev_i32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1a,0xd5,0xfd,0xd4,0x00,0x00] v_ashrrev_i32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x1a,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_ashrrev_i32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1a,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cndmask_b32_e64 v5, v1, 0xaf123456, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, v1, 0xaf123456, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, v255, src_scc, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0xff,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, v255, src_scc, s3 ; encoding: [0x05,0x00,0x01,0xd5,0xff,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64 v5, s105, s105, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, s105, s105, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64 v5, vcc_lo, v2, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x6a,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, vcc_lo, v2, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x6a,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64 v5, vcc_hi, v255, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x6b,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, vcc_hi, v255, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x6b,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:37: error: invalid operand for instruction v_cndmask_b32_e64 v5, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, ttmp15, ttmp15, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, m0, 0.5, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7d,0xe0,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, m0, 0.5, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x7d,0xe0,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_cndmask_b32_e64 v5, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, exec_lo, exec_lo, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:41: error: invalid operand for instruction v_cndmask_b32_e64 v5, exec_hi, -1, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7f,0x82,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, exec_hi, -1, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x7f,0x82,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:36: error: invalid operand for instruction v_cndmask_b32_e64 v5, null, exec_hi, s105 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7c,0xfe,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, null, exec_hi, s105 ; encoding: [0x05,0x00,0x01,0xd5,0x7c,0xfe,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64 v5, -1, m0, vcc_lo -// W32: encoding: [0x05,0x00,0x01,0xd5,0xc1,0xfa,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, -1, m0, vcc_lo ; encoding: [0x05,0x00,0x01,0xd5,0xc1,0xfa,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:31: error: invalid operand for instruction v_cndmask_b32_e64 v5, 0.5, -|vcc_lo|, vcc_hi -// W32: encoding: [0x05,0x02,0x01,0xd5,0xf0,0xd4,0xac,0x41] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, 0.5, -|vcc_lo|, vcc_hi ; encoding: [0x05,0x02,0x01,0xd5,0xf0,0xd4,0xac,0x41] +// W64-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, -|src_scc|, null, ttmp15 -// W32: encoding: [0x05,0x01,0x01,0xd5,0xfd,0xf8,0xec,0x21] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, -|src_scc|, null, ttmp15 ; encoding: [0x05,0x01,0x01,0xd5,0xfd,0xf8,0xec,0x21] +// W64-ERR: :[[@LINE-2]]:41: error: invalid operand for instruction v_cndmask_b32_e64 v5, v1, 0xaf123456, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, v1, 0xaf123456, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, v255, src_scc, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0xff,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, v255, src_scc, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0xff,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64 v5, s105, s105, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, s105, s105, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64 v5, vcc_lo, v2, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x6a,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, vcc_lo, v2, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x6a,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64 v5, vcc_hi, v255, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x6b,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, vcc_hi, v255, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x6b,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:37: error: invalid operand for instruction v_cndmask_b32_e64 v5, ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, m0, 0.5, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7d,0xe0,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, m0, 0.5, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7d,0xe0,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_cndmask_b32_e64 v5, exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:41: error: invalid operand for instruction v_cndmask_b32_e64 v5, exec_hi, -1, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7f,0x82,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, exec_hi, -1, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7f,0x82,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:36: error: invalid operand for instruction v_cndmask_b32_e64 v5, null, exec_hi, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7c,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, null, exec_hi, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7c,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64 v5, -1, m0, s[104:105] -// W64: encoding: [0x05,0x00,0x01,0xd5,0xc1,0xfa,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, -1, m0, s[104:105] ; encoding: [0x05,0x00,0x01,0xd5,0xc1,0xfa,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:31: error: invalid operand for instruction v_cndmask_b32_e64 v5, 0.5, -|vcc_lo|, vcc -// W64: encoding: [0x05,0x02,0x01,0xd5,0xf0,0xd4,0xa8,0x41] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, 0.5, -|vcc_lo|, vcc ; encoding: [0x05,0x02,0x01,0xd5,0xf0,0xd4,0xa8,0x41] +// W32-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, -|src_scc|, null, ttmp[14:15] -// W64: encoding: [0x05,0x01,0x01,0xd5,0xfd,0xf8,0xe8,0x21] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, -|src_scc|, null, ttmp[14:15] ; encoding: [0x05,0x01,0x01,0xd5,0xfd,0xf8,0xe8,0x21] +// W32-ERR: :[[@LINE-2]]:41: error: invalid operand for instruction v_cndmask_b32_e64 v255, -|0xaf123456|, -|vcc_hi|, null -// GFX11: encoding: [0xff,0x03,0x01,0xd5,0xff,0xd6,0xf0,0x61,0x56,0x34,0x12,0xaf] +// GFX11: v_cndmask_b32_e64 v255, -|0xaf123456|, -|vcc_hi|, null ; encoding: [0xff,0x03,0x01,0xd5,0xff,0xd6,0xf0,0x61,0x56,0x34,0x12,0xaf] v_cvt_pk_rtz_f16_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x2f,0xd5,0x01,0x05,0x02,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x2f,0xd5,0xff,0xff,0x03,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x2f,0xd5,0x01,0x04,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x2f,0xd5,0x69,0xd2,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2f,0xd5,0x6a,0xf6,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_rtz_f16_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2f,0xd5,0x7b,0xfa,0x01,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2f,0xd5,0x7d,0xe0,0x01,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2f,0xd5,0x7e,0x82,0x01,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x2f,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x2f,0xd5,0x7f,0xf8,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x2f,0xd5,0x7c,0xfc,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2f,0xd5,0xc1,0xfe,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, 0.5, -m0 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0xf0,0xfa,0x00,0x40] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x2f,0xd5,0xf0,0xfa,0x00,0x40] v_cvt_pk_rtz_f16_f32_e64 v5, -src_scc, |vcc_lo| -// GFX11: encoding: [0x05,0x02,0x2f,0xd5,0xfd,0xd4,0x00,0x20] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x2f,0xd5,0xfd,0xd4,0x00,0x20] v_cvt_pk_rtz_f16_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0xff,0x83,0x2f,0xd5,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0xff,0x83,0x2f,0xd5,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cvt_pkrtz_f16_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x2f,0xd5,0x01,0x05,0x02,0x00] v_cvt_pkrtz_f16_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x2f,0xd5,0xff,0xff,0x03,0x00] v_cvt_pkrtz_f16_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x2f,0xd5,0x01,0x04,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x2f,0xd5,0x69,0xd2,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2f,0xd5,0x6a,0xf6,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pkrtz_f16_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2f,0xd5,0x7b,0xfa,0x01,0x00] v_cvt_pkrtz_f16_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2f,0xd5,0x7d,0xe0,0x01,0x00] v_cvt_pkrtz_f16_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2f,0xd5,0x7e,0x82,0x01,0x00] v_cvt_pkrtz_f16_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x2f,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x2f,0xd5,0x7f,0xf8,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x2f,0xd5,0x7c,0xfc,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2f,0xd5,0xc1,0xfe,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, 0.5, -m0 -// GFX11: encoding: [0x05,0x00,0x2f,0xd5,0xf0,0xfa,0x00,0x40] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x2f,0xd5,0xf0,0xfa,0x00,0x40] v_cvt_pkrtz_f16_f32_e64 v5, -src_scc, |vcc_lo| -// GFX11: encoding: [0x05,0x02,0x2f,0xd5,0xfd,0xd4,0x00,0x20] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x2f,0xd5,0xfd,0xd4,0x00,0x20] v_cvt_pkrtz_f16_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0xff,0x83,0x2f,0xd5,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cvt_pk_rtz_f16_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0xff,0x83,0x2f,0xd5,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_fmac_dx9_zero_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x06,0xd5,0x01,0x05,0x02,0x00] v_fmac_dx9_zero_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x06,0xd5,0xff,0xff,0x03,0x00] v_fmac_dx9_zero_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x06,0xd5,0x01,0x04,0x00,0x00] v_fmac_dx9_zero_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x06,0xd5,0x69,0xd2,0x00,0x00] v_fmac_dx9_zero_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x06,0xd5,0x6a,0xf6,0x00,0x00] v_fmac_dx9_zero_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x06,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_fmac_dx9_zero_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x06,0xd5,0x7b,0xfa,0x01,0x00] v_fmac_dx9_zero_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x06,0xd5,0x7d,0xe0,0x01,0x00] v_fmac_dx9_zero_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x06,0xd5,0x7e,0x82,0x01,0x00] v_fmac_dx9_zero_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x06,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x06,0xd5,0x7f,0xf8,0x00,0x00] v_fmac_dx9_zero_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x06,0xd5,0x7c,0xfc,0x00,0x00] v_fmac_dx9_zero_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x06,0xd5,0xc1,0xfe,0x00,0x00] v_fmac_dx9_zero_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x06,0xd5,0xf0,0xfa,0x00,0x48] v_fmac_dx9_zero_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x06,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x06,0xd5,0xfd,0xd4,0x00,0x30] v_fmac_dx9_zero_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x06,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_fmac_dx9_zero_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x06,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_fmac_f16_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_fmac_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x36,0xd5,0x01,0x05,0x02,0x00] v_fmac_f16_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_fmac_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x36,0xd5,0xff,0xff,0x03,0x00] v_fmac_f16_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_fmac_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x36,0xd5,0x01,0x04,0x00,0x00] v_fmac_f16_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_fmac_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x36,0xd5,0x69,0xd2,0x00,0x00] v_fmac_f16_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_fmac_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x36,0xd5,0x6a,0xf6,0x00,0x00] v_fmac_f16_e64 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_fmac_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x36,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_fmac_f16_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_fmac_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x36,0xd5,0x7b,0xfa,0x01,0x00] v_fmac_f16_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_fmac_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x36,0xd5,0x7d,0xe0,0x01,0x00] v_fmac_f16_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_fmac_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x36,0xd5,0x7e,0x82,0x01,0x00] v_fmac_f16_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x36,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_fmac_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x36,0xd5,0x7f,0xf8,0x00,0x00] v_fmac_f16_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_fmac_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x36,0xd5,0x7c,0xfc,0x00,0x00] v_fmac_f16_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_fmac_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x36,0xd5,0xc1,0xfe,0x00,0x00] v_fmac_f16_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x36,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_fmac_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x36,0xd5,0xf0,0xfa,0x00,0x48] v_fmac_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x36,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_fmac_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x36,0xd5,0xfd,0xd4,0x00,0x30] v_fmac_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x36,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX11: v_fmac_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x36,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_fmac_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_fmac_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x2b,0xd5,0x01,0x05,0x02,0x00] v_fmac_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_fmac_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x2b,0xd5,0xff,0xff,0x03,0x00] v_fmac_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_fmac_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x2b,0xd5,0x01,0x04,0x00,0x00] v_fmac_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_fmac_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x2b,0xd5,0x69,0xd2,0x00,0x00] v_fmac_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_fmac_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2b,0xd5,0x6a,0xf6,0x00,0x00] v_fmac_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_fmac_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_fmac_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_fmac_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2b,0xd5,0x7b,0xfa,0x01,0x00] v_fmac_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_fmac_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2b,0xd5,0x7d,0xe0,0x01,0x00] v_fmac_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_fmac_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2b,0xd5,0x7e,0x82,0x01,0x00] v_fmac_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x2b,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_fmac_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x2b,0xd5,0x7f,0xf8,0x00,0x00] v_fmac_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_fmac_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x2b,0xd5,0x7c,0xfc,0x00,0x00] v_fmac_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_fmac_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2b,0xd5,0xc1,0xfe,0x00,0x00] v_fmac_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x2b,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_fmac_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x2b,0xd5,0xf0,0xfa,0x00,0x48] v_fmac_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x2b,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_fmac_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x2b,0xd5,0xfd,0xd4,0x00,0x30] v_fmac_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x2b,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_fmac_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x2b,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_fmac_legacy_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x06,0xd5,0x01,0x05,0x02,0x00] v_fmac_legacy_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x06,0xd5,0xff,0xff,0x03,0x00] v_fmac_legacy_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x06,0xd5,0x01,0x04,0x00,0x00] v_fmac_legacy_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x06,0xd5,0x69,0xd2,0x00,0x00] v_fmac_legacy_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x06,0xd5,0x6a,0xf6,0x00,0x00] v_fmac_legacy_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x06,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_fmac_legacy_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x06,0xd5,0x7b,0xfa,0x01,0x00] v_fmac_legacy_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x06,0xd5,0x7d,0xe0,0x01,0x00] v_fmac_legacy_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x06,0xd5,0x7e,0x82,0x01,0x00] v_fmac_legacy_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x06,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x06,0xd5,0x7f,0xf8,0x00,0x00] v_fmac_legacy_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x06,0xd5,0x7c,0xfc,0x00,0x00] v_fmac_legacy_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x06,0xd5,0xc1,0xfe,0x00,0x00] v_fmac_legacy_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x06,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x06,0xd5,0xf0,0xfa,0x00,0x48] v_fmac_legacy_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x06,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_fmac_dx9_zero_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x06,0xd5,0xfd,0xd4,0x00,0x30] v_fmac_legacy_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x06,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_fmac_dx9_zero_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x06,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_ldexp_f16_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_ldexp_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x3b,0xd5,0x01,0x05,0x02,0x00] v_ldexp_f16_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_ldexp_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x3b,0xd5,0xff,0xff,0x03,0x00] v_ldexp_f16_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_ldexp_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x3b,0xd5,0x01,0x04,0x00,0x00] v_ldexp_f16_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_ldexp_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x3b,0xd5,0x69,0xd2,0x00,0x00] v_ldexp_f16_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_ldexp_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3b,0xd5,0x6a,0xf6,0x00,0x00] v_ldexp_f16_e64 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_ldexp_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3b,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_ldexp_f16_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_ldexp_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3b,0xd5,0x7b,0xfa,0x01,0x00] v_ldexp_f16_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_ldexp_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x3b,0xd5,0x7d,0xe0,0x01,0x00] v_ldexp_f16_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_ldexp_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x3b,0xd5,0x7e,0x82,0x01,0x00] v_ldexp_f16_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_ldexp_f16_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x3b,0xd5,0x7f,0xf8,0x00,0x00] v_ldexp_f16_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_ldexp_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x3b,0xd5,0x7c,0xfc,0x00,0x00] v_ldexp_f16_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_ldexp_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x3b,0xd5,0xc1,0xfe,0x00,0x00] v_ldexp_f16_e64 v5, 0.5, m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0xf0,0xfa,0x00,0x08] +// GFX11: v_ldexp_f16_e64 v5, 0.5, m0 mul:2 ; encoding: [0x05,0x00,0x3b,0xd5,0xf0,0xfa,0x00,0x08] v_ldexp_f16_e64 v5, src_scc, vcc_lo mul:4 -// GFX11: encoding: [0x05,0x00,0x3b,0xd5,0xfd,0xd4,0x00,0x10] +// GFX11: v_ldexp_f16_e64 v5, src_scc, vcc_lo mul:4 ; encoding: [0x05,0x00,0x3b,0xd5,0xfd,0xd4,0x00,0x10] v_ldexp_f16_e64 v255, -|0xfe0b|, vcc_hi clamp div:2 -// GFX11: encoding: [0xff,0x81,0x3b,0xd5,0xff,0xd6,0x00,0x38,0x0b,0xfe,0x00,0x00] +// GFX11: v_ldexp_f16_e64 v255, -|0xfe0b|, vcc_hi clamp div:2 ; encoding: [0xff,0x81,0x3b,0xd5,0xff,0xd6,0x00,0x38,0x0b,0xfe,0x00,0x00] v_lshlrev_b32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_lshlrev_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x18,0xd5,0x01,0x05,0x02,0x00] v_lshlrev_b32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_lshlrev_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x18,0xd5,0xff,0xff,0x03,0x00] v_lshlrev_b32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_lshlrev_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x18,0xd5,0x01,0x04,0x00,0x00] v_lshlrev_b32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_lshlrev_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x18,0xd5,0x69,0xd2,0x00,0x00] v_lshlrev_b32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_lshlrev_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x18,0xd5,0x6a,0xf6,0x00,0x00] v_lshlrev_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_lshlrev_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x18,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshlrev_b32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_lshlrev_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x18,0xd5,0x7b,0xfa,0x01,0x00] v_lshlrev_b32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_lshlrev_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x18,0xd5,0x7d,0xe0,0x01,0x00] v_lshlrev_b32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_lshlrev_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x18,0xd5,0x7e,0x82,0x01,0x00] v_lshlrev_b32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_lshlrev_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x18,0xd5,0x7f,0xf8,0x00,0x00] v_lshlrev_b32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_lshlrev_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x18,0xd5,0x7c,0xfc,0x00,0x00] v_lshlrev_b32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_lshlrev_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x18,0xd5,0xc1,0xfe,0x00,0x00] v_lshlrev_b32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_lshlrev_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x18,0xd5,0xf0,0xfa,0x00,0x00] v_lshlrev_b32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x18,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_lshlrev_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x18,0xd5,0xfd,0xd4,0x00,0x00] v_lshlrev_b32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x18,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_lshlrev_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x18,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_lshrrev_b32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_lshrrev_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x19,0xd5,0x01,0x05,0x02,0x00] v_lshrrev_b32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_lshrrev_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x19,0xd5,0xff,0xff,0x03,0x00] v_lshrrev_b32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_lshrrev_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x19,0xd5,0x01,0x04,0x00,0x00] v_lshrrev_b32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_lshrrev_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x19,0xd5,0x69,0xd2,0x00,0x00] v_lshrrev_b32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_lshrrev_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x19,0xd5,0x6a,0xf6,0x00,0x00] v_lshrrev_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_lshrrev_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x19,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshrrev_b32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_lshrrev_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x19,0xd5,0x7b,0xfa,0x01,0x00] v_lshrrev_b32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_lshrrev_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x19,0xd5,0x7d,0xe0,0x01,0x00] v_lshrrev_b32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_lshrrev_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x19,0xd5,0x7e,0x82,0x01,0x00] v_lshrrev_b32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_lshrrev_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x19,0xd5,0x7f,0xf8,0x00,0x00] v_lshrrev_b32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_lshrrev_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x19,0xd5,0x7c,0xfc,0x00,0x00] v_lshrrev_b32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_lshrrev_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x19,0xd5,0xc1,0xfe,0x00,0x00] v_lshrrev_b32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_lshrrev_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x19,0xd5,0xf0,0xfa,0x00,0x00] v_lshrrev_b32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x19,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_lshrrev_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x19,0xd5,0xfd,0xd4,0x00,0x00] v_lshrrev_b32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x19,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_lshrrev_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x19,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_max_f16_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_max_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x39,0xd5,0x01,0x05,0x02,0x00] v_max_f16_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_max_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x39,0xd5,0xff,0xff,0x03,0x00] v_max_f16_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_max_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x39,0xd5,0x01,0x04,0x00,0x00] v_max_f16_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_max_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x39,0xd5,0x69,0xd2,0x00,0x00] v_max_f16_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_max_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x39,0xd5,0x6a,0xf6,0x00,0x00] v_max_f16_e64 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_max_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x39,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_max_f16_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_max_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x39,0xd5,0x7b,0xfa,0x01,0x00] v_max_f16_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_max_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x39,0xd5,0x7d,0xe0,0x01,0x00] v_max_f16_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_max_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x39,0xd5,0x7e,0x82,0x01,0x00] v_max_f16_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x39,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_max_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x39,0xd5,0x7f,0xf8,0x00,0x00] v_max_f16_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_max_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x39,0xd5,0x7c,0xfc,0x00,0x00] v_max_f16_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_max_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x39,0xd5,0xc1,0xfe,0x00,0x00] v_max_f16_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x39,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_max_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x39,0xd5,0xf0,0xfa,0x00,0x48] v_max_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x39,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_max_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x39,0xd5,0xfd,0xd4,0x00,0x30] v_max_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x39,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX11: v_max_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x39,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_max_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_max_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x10,0xd5,0x01,0x05,0x02,0x00] v_max_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_max_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x10,0xd5,0xff,0xff,0x03,0x00] v_max_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_max_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x10,0xd5,0x01,0x04,0x00,0x00] v_max_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_max_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x10,0xd5,0x69,0xd2,0x00,0x00] v_max_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_max_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x10,0xd5,0x6a,0xf6,0x00,0x00] v_max_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_max_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x10,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_max_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_max_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x10,0xd5,0x7b,0xfa,0x01,0x00] v_max_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_max_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x10,0xd5,0x7d,0xe0,0x01,0x00] v_max_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_max_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x10,0xd5,0x7e,0x82,0x01,0x00] v_max_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x10,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_max_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x10,0xd5,0x7f,0xf8,0x00,0x00] v_max_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_max_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x10,0xd5,0x7c,0xfc,0x00,0x00] v_max_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_max_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x10,0xd5,0xc1,0xfe,0x00,0x00] v_max_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x10,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_max_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x10,0xd5,0xf0,0xfa,0x00,0x48] v_max_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x10,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_max_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x10,0xd5,0xfd,0xd4,0x00,0x30] v_max_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x10,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_max_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x10,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_max_i32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_max_i32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x12,0xd5,0x01,0x05,0x02,0x00] v_max_i32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_max_i32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x12,0xd5,0xff,0xff,0x03,0x00] v_max_i32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_max_i32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x12,0xd5,0x01,0x04,0x00,0x00] v_max_i32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_max_i32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x12,0xd5,0x69,0xd2,0x00,0x00] v_max_i32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_max_i32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x12,0xd5,0x6a,0xf6,0x00,0x00] v_max_i32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_max_i32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x12,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_max_i32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_max_i32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x12,0xd5,0x7b,0xfa,0x01,0x00] v_max_i32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_max_i32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x12,0xd5,0x7d,0xe0,0x01,0x00] v_max_i32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_max_i32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x12,0xd5,0x7e,0x82,0x01,0x00] v_max_i32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_max_i32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x12,0xd5,0x7f,0xf8,0x00,0x00] v_max_i32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_max_i32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x12,0xd5,0x7c,0xfc,0x00,0x00] v_max_i32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_max_i32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x12,0xd5,0xc1,0xfe,0x00,0x00] v_max_i32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_max_i32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x12,0xd5,0xf0,0xfa,0x00,0x00] v_max_i32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x12,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_max_i32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x12,0xd5,0xfd,0xd4,0x00,0x00] v_max_i32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x12,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_max_i32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x12,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_max_u32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_max_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x14,0xd5,0x01,0x05,0x02,0x00] v_max_u32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_max_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x14,0xd5,0xff,0xff,0x03,0x00] v_max_u32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_max_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x14,0xd5,0x01,0x04,0x00,0x00] v_max_u32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_max_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x14,0xd5,0x69,0xd2,0x00,0x00] v_max_u32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_max_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x14,0xd5,0x6a,0xf6,0x00,0x00] v_max_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_max_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x14,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_max_u32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_max_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x14,0xd5,0x7b,0xfa,0x01,0x00] v_max_u32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_max_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x14,0xd5,0x7d,0xe0,0x01,0x00] v_max_u32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_max_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x14,0xd5,0x7e,0x82,0x01,0x00] v_max_u32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_max_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x14,0xd5,0x7f,0xf8,0x00,0x00] v_max_u32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_max_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x14,0xd5,0x7c,0xfc,0x00,0x00] v_max_u32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_max_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x14,0xd5,0xc1,0xfe,0x00,0x00] v_max_u32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_max_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x14,0xd5,0xf0,0xfa,0x00,0x00] v_max_u32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x14,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_max_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x14,0xd5,0xfd,0xd4,0x00,0x00] v_max_u32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x14,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_max_u32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x14,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_min_f16_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_min_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x3a,0xd5,0x01,0x05,0x02,0x00] v_min_f16_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_min_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x3a,0xd5,0xff,0xff,0x03,0x00] v_min_f16_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_min_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x3a,0xd5,0x01,0x04,0x00,0x00] v_min_f16_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_min_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x3a,0xd5,0x69,0xd2,0x00,0x00] v_min_f16_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_min_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3a,0xd5,0x6a,0xf6,0x00,0x00] v_min_f16_e64 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_min_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3a,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_min_f16_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_min_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3a,0xd5,0x7b,0xfa,0x01,0x00] v_min_f16_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_min_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x3a,0xd5,0x7d,0xe0,0x01,0x00] v_min_f16_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_min_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x3a,0xd5,0x7e,0x82,0x01,0x00] v_min_f16_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x3a,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_min_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x3a,0xd5,0x7f,0xf8,0x00,0x00] v_min_f16_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_min_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x3a,0xd5,0x7c,0xfc,0x00,0x00] v_min_f16_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_min_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x3a,0xd5,0xc1,0xfe,0x00,0x00] v_min_f16_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x3a,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_min_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x3a,0xd5,0xf0,0xfa,0x00,0x48] v_min_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x3a,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_min_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x3a,0xd5,0xfd,0xd4,0x00,0x30] v_min_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x3a,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX11: v_min_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x3a,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_min_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_min_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x0f,0xd5,0x01,0x05,0x02,0x00] v_min_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_min_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x0f,0xd5,0xff,0xff,0x03,0x00] v_min_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_min_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x0f,0xd5,0x01,0x04,0x00,0x00] v_min_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_min_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x0f,0xd5,0x69,0xd2,0x00,0x00] v_min_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_min_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0f,0xd5,0x6a,0xf6,0x00,0x00] v_min_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_min_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x0f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_min_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_min_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0f,0xd5,0x7b,0xfa,0x01,0x00] v_min_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_min_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x0f,0xd5,0x7d,0xe0,0x01,0x00] v_min_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_min_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x0f,0xd5,0x7e,0x82,0x01,0x00] v_min_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x0f,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_min_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x0f,0xd5,0x7f,0xf8,0x00,0x00] v_min_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_min_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x0f,0xd5,0x7c,0xfc,0x00,0x00] v_min_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_min_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x0f,0xd5,0xc1,0xfe,0x00,0x00] v_min_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x0f,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_min_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x0f,0xd5,0xf0,0xfa,0x00,0x48] v_min_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x0f,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_min_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x0f,0xd5,0xfd,0xd4,0x00,0x30] v_min_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x0f,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_min_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x0f,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_min_i32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_min_i32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x11,0xd5,0x01,0x05,0x02,0x00] v_min_i32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_min_i32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x11,0xd5,0xff,0xff,0x03,0x00] v_min_i32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_min_i32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x11,0xd5,0x01,0x04,0x00,0x00] v_min_i32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_min_i32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x11,0xd5,0x69,0xd2,0x00,0x00] v_min_i32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_min_i32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x11,0xd5,0x6a,0xf6,0x00,0x00] v_min_i32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_min_i32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x11,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_min_i32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_min_i32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x11,0xd5,0x7b,0xfa,0x01,0x00] v_min_i32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_min_i32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x11,0xd5,0x7d,0xe0,0x01,0x00] v_min_i32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_min_i32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x11,0xd5,0x7e,0x82,0x01,0x00] v_min_i32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_min_i32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x11,0xd5,0x7f,0xf8,0x00,0x00] v_min_i32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_min_i32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x11,0xd5,0x7c,0xfc,0x00,0x00] v_min_i32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_min_i32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x11,0xd5,0xc1,0xfe,0x00,0x00] v_min_i32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_min_i32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x11,0xd5,0xf0,0xfa,0x00,0x00] v_min_i32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x11,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_min_i32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x11,0xd5,0xfd,0xd4,0x00,0x00] v_min_i32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x11,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_min_i32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x11,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_min_u32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_min_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x13,0xd5,0x01,0x05,0x02,0x00] v_min_u32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_min_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x13,0xd5,0xff,0xff,0x03,0x00] v_min_u32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_min_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x13,0xd5,0x01,0x04,0x00,0x00] v_min_u32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_min_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x13,0xd5,0x69,0xd2,0x00,0x00] v_min_u32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_min_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x13,0xd5,0x6a,0xf6,0x00,0x00] v_min_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_min_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x13,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_min_u32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_min_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x13,0xd5,0x7b,0xfa,0x01,0x00] v_min_u32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_min_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x13,0xd5,0x7d,0xe0,0x01,0x00] v_min_u32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_min_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x13,0xd5,0x7e,0x82,0x01,0x00] v_min_u32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_min_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x13,0xd5,0x7f,0xf8,0x00,0x00] v_min_u32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_min_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x13,0xd5,0x7c,0xfc,0x00,0x00] v_min_u32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_min_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x13,0xd5,0xc1,0xfe,0x00,0x00] v_min_u32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_min_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x13,0xd5,0xf0,0xfa,0x00,0x00] v_min_u32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x13,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_min_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x13,0xd5,0xfd,0xd4,0x00,0x00] v_min_u32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x13,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_min_u32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x13,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_dx9_zero_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x07,0xd5,0x01,0x05,0x02,0x00] v_mul_dx9_zero_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x07,0xd5,0xff,0xff,0x03,0x00] v_mul_dx9_zero_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x07,0xd5,0x01,0x04,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x07,0xd5,0x69,0xd2,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x07,0xd5,0x6a,0xf6,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_dx9_zero_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x07,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_dx9_zero_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x07,0xd5,0x7b,0xfa,0x01,0x00] v_mul_dx9_zero_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x07,0xd5,0x7d,0xe0,0x01,0x00] v_mul_dx9_zero_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x07,0xd5,0x7e,0x82,0x01,0x00] v_mul_dx9_zero_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x07,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x07,0xd5,0x7f,0xf8,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x07,0xd5,0x7c,0xfc,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x07,0xd5,0xc1,0xfe,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_mul_dx9_zero_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x07,0xd5,0xf0,0xfa,0x00,0x48] v_mul_dx9_zero_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x07,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_mul_dx9_zero_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x07,0xd5,0xfd,0xd4,0x00,0x30] v_mul_dx9_zero_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x07,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_dx9_zero_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x07,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_mul_f16_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_mul_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x35,0xd5,0x01,0x05,0x02,0x00] v_mul_f16_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_mul_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x35,0xd5,0xff,0xff,0x03,0x00] v_mul_f16_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_mul_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x35,0xd5,0x01,0x04,0x00,0x00] v_mul_f16_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x35,0xd5,0x69,0xd2,0x00,0x00] v_mul_f16_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x35,0xd5,0x6a,0xf6,0x00,0x00] v_mul_f16_e64 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_mul_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x35,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_mul_f16_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x35,0xd5,0x7b,0xfa,0x01,0x00] v_mul_f16_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x35,0xd5,0x7d,0xe0,0x01,0x00] v_mul_f16_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x35,0xd5,0x7e,0x82,0x01,0x00] v_mul_f16_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x35,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x35,0xd5,0x7f,0xf8,0x00,0x00] v_mul_f16_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x35,0xd5,0x7c,0xfc,0x00,0x00] v_mul_f16_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x35,0xd5,0xc1,0xfe,0x00,0x00] v_mul_f16_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x35,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_mul_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x35,0xd5,0xf0,0xfa,0x00,0x48] v_mul_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x35,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_mul_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x35,0xd5,0xfd,0xd4,0x00,0x30] v_mul_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x35,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX11: v_mul_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x35,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_mul_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_mul_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x08,0xd5,0x01,0x05,0x02,0x00] v_mul_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_mul_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x08,0xd5,0xff,0xff,0x03,0x00] v_mul_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_mul_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x08,0xd5,0x01,0x04,0x00,0x00] v_mul_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x08,0xd5,0x69,0xd2,0x00,0x00] v_mul_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x08,0xd5,0x6a,0xf6,0x00,0x00] v_mul_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x08,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x08,0xd5,0x7b,0xfa,0x01,0x00] v_mul_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x08,0xd5,0x7d,0xe0,0x01,0x00] v_mul_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x08,0xd5,0x7e,0x82,0x01,0x00] v_mul_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x08,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x08,0xd5,0x7f,0xf8,0x00,0x00] v_mul_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x08,0xd5,0x7c,0xfc,0x00,0x00] v_mul_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x08,0xd5,0xc1,0xfe,0x00,0x00] v_mul_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x08,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_mul_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x08,0xd5,0xf0,0xfa,0x00,0x48] v_mul_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x08,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_mul_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x08,0xd5,0xfd,0xd4,0x00,0x30] v_mul_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x08,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x08,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_mul_hi_i32_i24_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x0a,0xd5,0x01,0x05,0x02,0x00] v_mul_hi_i32_i24_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x0a,0xd5,0xff,0xff,0x03,0x00] v_mul_hi_i32_i24_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x0a,0xd5,0x01,0x04,0x00,0x00] v_mul_hi_i32_i24_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x0a,0xd5,0x69,0xd2,0x00,0x00] v_mul_hi_i32_i24_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0a,0xd5,0x6a,0xf6,0x00,0x00] v_mul_hi_i32_i24_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_i32_i24_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x0a,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_i32_i24_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0a,0xd5,0x7b,0xfa,0x01,0x00] v_mul_hi_i32_i24_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x0a,0xd5,0x7d,0xe0,0x01,0x00] v_mul_hi_i32_i24_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x0a,0xd5,0x7e,0x82,0x01,0x00] v_mul_hi_i32_i24_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x0a,0xd5,0x7f,0xf8,0x00,0x00] v_mul_hi_i32_i24_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x0a,0xd5,0x7c,0xfc,0x00,0x00] v_mul_hi_i32_i24_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x0a,0xd5,0xc1,0xfe,0x00,0x00] v_mul_hi_i32_i24_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x0a,0xd5,0xf0,0xfa,0x00,0x00] v_mul_hi_i32_i24_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x0a,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_mul_hi_i32_i24_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0a,0xd5,0xfd,0xd4,0x00,0x00] v_mul_hi_i32_i24_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x0a,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_i32_i24_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x0a,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_u32_u24_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x0c,0xd5,0x01,0x05,0x02,0x00] v_mul_hi_u32_u24_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x0c,0xd5,0xff,0xff,0x03,0x00] v_mul_hi_u32_u24_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x0c,0xd5,0x01,0x04,0x00,0x00] v_mul_hi_u32_u24_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x0c,0xd5,0x69,0xd2,0x00,0x00] v_mul_hi_u32_u24_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0c,0xd5,0x6a,0xf6,0x00,0x00] v_mul_hi_u32_u24_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_u32_u24_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x0c,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_u32_u24_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0c,0xd5,0x7b,0xfa,0x01,0x00] v_mul_hi_u32_u24_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x0c,0xd5,0x7d,0xe0,0x01,0x00] v_mul_hi_u32_u24_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x0c,0xd5,0x7e,0x82,0x01,0x00] v_mul_hi_u32_u24_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x0c,0xd5,0x7f,0xf8,0x00,0x00] v_mul_hi_u32_u24_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x0c,0xd5,0x7c,0xfc,0x00,0x00] v_mul_hi_u32_u24_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x0c,0xd5,0xc1,0xfe,0x00,0x00] v_mul_hi_u32_u24_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x0c,0xd5,0xf0,0xfa,0x00,0x00] v_mul_hi_u32_u24_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x0c,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_mul_hi_u32_u24_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0c,0xd5,0xfd,0xd4,0x00,0x00] v_mul_hi_u32_u24_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x0c,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_hi_u32_u24_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x0c,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_i32_i24_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_mul_i32_i24_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x09,0xd5,0x01,0x05,0x02,0x00] v_mul_i32_i24_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_mul_i32_i24_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x09,0xd5,0xff,0xff,0x03,0x00] v_mul_i32_i24_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_mul_i32_i24_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x09,0xd5,0x01,0x04,0x00,0x00] v_mul_i32_i24_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_i32_i24_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x09,0xd5,0x69,0xd2,0x00,0x00] v_mul_i32_i24_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_i32_i24_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x09,0xd5,0x6a,0xf6,0x00,0x00] v_mul_i32_i24_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_i32_i24_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x09,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_i32_i24_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_i32_i24_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x09,0xd5,0x7b,0xfa,0x01,0x00] v_mul_i32_i24_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_i32_i24_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x09,0xd5,0x7d,0xe0,0x01,0x00] v_mul_i32_i24_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_i32_i24_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x09,0xd5,0x7e,0x82,0x01,0x00] v_mul_i32_i24_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_i32_i24_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x09,0xd5,0x7f,0xf8,0x00,0x00] v_mul_i32_i24_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_i32_i24_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x09,0xd5,0x7c,0xfc,0x00,0x00] v_mul_i32_i24_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_i32_i24_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x09,0xd5,0xc1,0xfe,0x00,0x00] v_mul_i32_i24_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_mul_i32_i24_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x09,0xd5,0xf0,0xfa,0x00,0x00] v_mul_i32_i24_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x09,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_mul_i32_i24_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x09,0xd5,0xfd,0xd4,0x00,0x00] v_mul_i32_i24_e64 v255, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0x80,0x09,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_i32_i24_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x09,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_legacy_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x07,0xd5,0x01,0x05,0x02,0x00] v_mul_legacy_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x07,0xd5,0xff,0xff,0x03,0x00] v_mul_legacy_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x07,0xd5,0x01,0x04,0x00,0x00] v_mul_legacy_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x07,0xd5,0x69,0xd2,0x00,0x00] v_mul_legacy_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x07,0xd5,0x6a,0xf6,0x00,0x00] v_mul_legacy_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_dx9_zero_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x07,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_legacy_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x07,0xd5,0x7b,0xfa,0x01,0x00] v_mul_legacy_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x07,0xd5,0x7d,0xe0,0x01,0x00] v_mul_legacy_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x07,0xd5,0x7e,0x82,0x01,0x00] v_mul_legacy_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x07,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x07,0xd5,0x7f,0xf8,0x00,0x00] v_mul_legacy_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x07,0xd5,0x7c,0xfc,0x00,0x00] v_mul_legacy_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_dx9_zero_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x07,0xd5,0xc1,0xfe,0x00,0x00] v_mul_legacy_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x07,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_mul_dx9_zero_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x07,0xd5,0xf0,0xfa,0x00,0x48] v_mul_legacy_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x07,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_mul_dx9_zero_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x07,0xd5,0xfd,0xd4,0x00,0x30] v_mul_legacy_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x07,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_dx9_zero_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x07,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_mul_u32_u24_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_mul_u32_u24_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x0b,0xd5,0x01,0x05,0x02,0x00] v_mul_u32_u24_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_mul_u32_u24_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x0b,0xd5,0xff,0xff,0x03,0x00] v_mul_u32_u24_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_mul_u32_u24_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x0b,0xd5,0x01,0x04,0x00,0x00] v_mul_u32_u24_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_mul_u32_u24_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x0b,0xd5,0x69,0xd2,0x00,0x00] v_mul_u32_u24_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_mul_u32_u24_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0b,0xd5,0x6a,0xf6,0x00,0x00] v_mul_u32_u24_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_u32_u24_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x0b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_u32_u24_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_mul_u32_u24_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0b,0xd5,0x7b,0xfa,0x01,0x00] v_mul_u32_u24_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_mul_u32_u24_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x0b,0xd5,0x7d,0xe0,0x01,0x00] v_mul_u32_u24_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_mul_u32_u24_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x0b,0xd5,0x7e,0x82,0x01,0x00] v_mul_u32_u24_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_mul_u32_u24_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x0b,0xd5,0x7f,0xf8,0x00,0x00] v_mul_u32_u24_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_mul_u32_u24_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x0b,0xd5,0x7c,0xfc,0x00,0x00] v_mul_u32_u24_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_mul_u32_u24_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x0b,0xd5,0xc1,0xfe,0x00,0x00] v_mul_u32_u24_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_mul_u32_u24_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x0b,0xd5,0xf0,0xfa,0x00,0x00] v_mul_u32_u24_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x0b,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_mul_u32_u24_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0b,0xd5,0xfd,0xd4,0x00,0x00] v_mul_u32_u24_e64 v255, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0x80,0x0b,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_mul_u32_u24_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x0b,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_or_b32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_or_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1c,0xd5,0x01,0x05,0x02,0x00] v_or_b32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_or_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1c,0xd5,0xff,0xff,0x03,0x00] v_or_b32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_or_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1c,0xd5,0x01,0x04,0x00,0x00] v_or_b32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_or_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1c,0xd5,0x69,0xd2,0x00,0x00] v_or_b32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_or_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1c,0xd5,0x6a,0xf6,0x00,0x00] v_or_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_or_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1c,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_or_b32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_or_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1c,0xd5,0x7b,0xfa,0x01,0x00] v_or_b32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_or_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1c,0xd5,0x7d,0xe0,0x01,0x00] v_or_b32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_or_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1c,0xd5,0x7e,0x82,0x01,0x00] v_or_b32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_or_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1c,0xd5,0x7f,0xf8,0x00,0x00] v_or_b32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_or_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1c,0xd5,0x7c,0xfc,0x00,0x00] v_or_b32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_or_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1c,0xd5,0xc1,0xfe,0x00,0x00] v_or_b32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_or_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1c,0xd5,0xf0,0xfa,0x00,0x00] v_or_b32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1c,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_or_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1c,0xd5,0xfd,0xd4,0x00,0x00] v_or_b32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x1c,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_or_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1c,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_sub_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, v255, src_scc, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0xff,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, v255, src_scc, s3 ; encoding: [0x05,0x06,0x21,0xd5,0xff,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, s105, s105, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, s105, s105, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x6a,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x6a,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x6b,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x6b,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, m0, 0.5, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x7d,0xe0,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, m0, 0.5, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x7d,0xe0,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x7f,0x82,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x7f,0x82,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s105, null, exec_hi, s105 -// W32: encoding: [0x05,0x69,0x21,0xd5,0x7c,0xfe,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s105, null, exec_hi, s105 ; encoding: [0x05,0x69,0x21,0xd5,0x7c,0xfe,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo -// W32: encoding: [0x05,0x6a,0x21,0xd5,0xc1,0xfa,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo ; encoding: [0x05,0x6a,0x21,0xd5,0xc1,0xfa,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi -// W32: encoding: [0x05,0x6b,0x21,0xd5,0xf0,0xd4,0xac,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi ; encoding: [0x05,0x6b,0x21,0xd5,0xf0,0xd4,0xac,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 -// W32: encoding: [0x05,0x7b,0x21,0xd5,0xfd,0xf8,0xec,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 ; encoding: [0x05,0x7b,0x21,0xd5,0xfd,0xf8,0xec,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0xff,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0xff,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x6a,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x6a,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x6b,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x6b,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7d,0xe0,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7d,0xe0,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7f,0x82,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7f,0x82,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7c,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7c,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] -// W64: encoding: [0x05,0x68,0x21,0xd5,0xc1,0xfa,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] ; encoding: [0x05,0x68,0x21,0xd5,0xc1,0xfa,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc -// W64: encoding: [0x05,0x6a,0x21,0xd5,0xf0,0xd4,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc ; encoding: [0x05,0x6a,0x21,0xd5,0xf0,0xd4,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] -// W64: encoding: [0x05,0x7a,0x21,0xd5,0xfd,0xf8,0xe8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] ; encoding: [0x05,0x7a,0x21,0xd5,0xfd,0xf8,0xe8,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp -// GFX11: encoding: [0xff,0xfc,0x21,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0xfc,0x21,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_sub_f16_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_sub_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x33,0xd5,0x01,0x05,0x02,0x00] v_sub_f16_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_sub_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x33,0xd5,0xff,0xff,0x03,0x00] v_sub_f16_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_sub_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x33,0xd5,0x01,0x04,0x00,0x00] v_sub_f16_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_sub_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x33,0xd5,0x69,0xd2,0x00,0x00] v_sub_f16_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_sub_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x33,0xd5,0x6a,0xf6,0x00,0x00] v_sub_f16_e64 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_sub_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x33,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_sub_f16_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_sub_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x33,0xd5,0x7b,0xfa,0x01,0x00] v_sub_f16_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_sub_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x33,0xd5,0x7d,0xe0,0x01,0x00] v_sub_f16_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_sub_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x33,0xd5,0x7e,0x82,0x01,0x00] v_sub_f16_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x33,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_sub_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x33,0xd5,0x7f,0xf8,0x00,0x00] v_sub_f16_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_sub_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x33,0xd5,0x7c,0xfc,0x00,0x00] v_sub_f16_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_sub_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x33,0xd5,0xc1,0xfe,0x00,0x00] v_sub_f16_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x33,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_sub_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x33,0xd5,0xf0,0xfa,0x00,0x48] v_sub_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x33,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_sub_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x33,0xd5,0xfd,0xd4,0x00,0x30] v_sub_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x33,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX11: v_sub_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x33,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_sub_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_sub_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x04,0xd5,0x01,0x05,0x02,0x00] v_sub_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_sub_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x04,0xd5,0xff,0xff,0x03,0x00] v_sub_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_sub_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x04,0xd5,0x01,0x04,0x00,0x00] v_sub_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_sub_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x04,0xd5,0x69,0xd2,0x00,0x00] v_sub_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_sub_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x04,0xd5,0x6a,0xf6,0x00,0x00] v_sub_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x04,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_sub_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_sub_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x04,0xd5,0x7b,0xfa,0x01,0x00] v_sub_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_sub_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x04,0xd5,0x7d,0xe0,0x01,0x00] v_sub_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_sub_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x04,0xd5,0x7e,0x82,0x01,0x00] v_sub_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x04,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_sub_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x04,0xd5,0x7f,0xf8,0x00,0x00] v_sub_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_sub_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x04,0xd5,0x7c,0xfc,0x00,0x00] v_sub_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_sub_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x04,0xd5,0xc1,0xfe,0x00,0x00] v_sub_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x04,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_sub_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x04,0xd5,0xf0,0xfa,0x00,0x48] v_sub_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x04,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_sub_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x04,0xd5,0xfd,0xd4,0x00,0x30] v_sub_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x04,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x04,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_sub_nc_u32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_sub_nc_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x26,0xd5,0x01,0x05,0x02,0x00] v_sub_nc_u32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_sub_nc_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x26,0xd5,0xff,0xff,0x03,0x00] v_sub_nc_u32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_sub_nc_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x26,0xd5,0x01,0x04,0x00,0x00] v_sub_nc_u32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_sub_nc_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x26,0xd5,0x69,0xd2,0x00,0x00] v_sub_nc_u32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_sub_nc_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x26,0xd5,0x6a,0xf6,0x00,0x00] v_sub_nc_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_nc_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x26,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_sub_nc_u32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_sub_nc_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x26,0xd5,0x7b,0xfa,0x01,0x00] v_sub_nc_u32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_sub_nc_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x26,0xd5,0x7d,0xe0,0x01,0x00] v_sub_nc_u32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_sub_nc_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x26,0xd5,0x7e,0x82,0x01,0x00] v_sub_nc_u32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_sub_nc_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x26,0xd5,0x7f,0xf8,0x00,0x00] v_sub_nc_u32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_sub_nc_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x26,0xd5,0x7c,0xfc,0x00,0x00] v_sub_nc_u32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_sub_nc_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x26,0xd5,0xc1,0xfe,0x00,0x00] v_sub_nc_u32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_sub_nc_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x26,0xd5,0xf0,0xfa,0x00,0x00] v_sub_nc_u32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x26,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_sub_nc_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x26,0xd5,0xfd,0xd4,0x00,0x00] v_sub_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0x80,0x26,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_sub_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x26,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_subrev_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, v255, src_scc, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0xff,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, v255, src_scc, s3 ; encoding: [0x05,0x06,0x22,0xd5,0xff,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, s105, s105, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, s105, s105, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x6a,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x6a,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x6b,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x6b,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, m0, 0.5, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x7d,0xe0,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, m0, 0.5, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x7d,0xe0,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x7f,0x82,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x7f,0x82,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s105, null, exec_hi, s105 -// W32: encoding: [0x05,0x69,0x22,0xd5,0x7c,0xfe,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s105, null, exec_hi, s105 ; encoding: [0x05,0x69,0x22,0xd5,0x7c,0xfe,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo -// W32: encoding: [0x05,0x6a,0x22,0xd5,0xc1,0xfa,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo ; encoding: [0x05,0x6a,0x22,0xd5,0xc1,0xfa,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi -// W32: encoding: [0x05,0x6b,0x22,0xd5,0xf0,0xd4,0xac,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi ; encoding: [0x05,0x6b,0x22,0xd5,0xf0,0xd4,0xac,0x01] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 -// W32: encoding: [0x05,0x7b,0x22,0xd5,0xfd,0xf8,0xec,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 ; encoding: [0x05,0x7b,0x22,0xd5,0xfd,0xf8,0xec,0x01] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0xff,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0xff,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x6a,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x6a,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x6b,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x6b,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7d,0xe0,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7d,0xe0,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7f,0x82,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7f,0x82,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7c,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7c,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] -// W64: encoding: [0x05,0x68,0x22,0xd5,0xc1,0xfa,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] ; encoding: [0x05,0x68,0x22,0xd5,0xc1,0xfa,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc -// W64: encoding: [0x05,0x6a,0x22,0xd5,0xf0,0xd4,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc ; encoding: [0x05,0x6a,0x22,0xd5,0xf0,0xd4,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] -// W64: encoding: [0x05,0x7a,0x22,0xd5,0xfd,0xf8,0xe8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] ; encoding: [0x05,0x7a,0x22,0xd5,0xfd,0xf8,0xe8,0x01] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp -// GFX11: encoding: [0xff,0xfc,0x22,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX11: v_subrev_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0xfc,0x22,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_subrev_f16_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_subrev_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x34,0xd5,0x01,0x05,0x02,0x00] v_subrev_f16_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_subrev_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x34,0xd5,0xff,0xff,0x03,0x00] v_subrev_f16_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_subrev_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x34,0xd5,0x01,0x04,0x00,0x00] v_subrev_f16_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_subrev_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x34,0xd5,0x69,0xd2,0x00,0x00] v_subrev_f16_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_subrev_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x34,0xd5,0x6a,0xf6,0x00,0x00] v_subrev_f16_e64 v5, vcc_hi, 0xfe0b -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_subrev_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x34,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_subrev_f16_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_subrev_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x34,0xd5,0x7b,0xfa,0x01,0x00] v_subrev_f16_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_subrev_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x34,0xd5,0x7d,0xe0,0x01,0x00] v_subrev_f16_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_subrev_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x34,0xd5,0x7e,0x82,0x01,0x00] v_subrev_f16_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x34,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_subrev_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x34,0xd5,0x7f,0xf8,0x00,0x00] v_subrev_f16_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_subrev_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x34,0xd5,0x7c,0xfc,0x00,0x00] v_subrev_f16_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_subrev_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x34,0xd5,0xc1,0xfe,0x00,0x00] v_subrev_f16_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x34,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_subrev_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x34,0xd5,0xf0,0xfa,0x00,0x48] v_subrev_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x34,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_subrev_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x34,0xd5,0xfd,0xd4,0x00,0x30] v_subrev_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x34,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX11: v_subrev_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x34,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_subrev_f32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_subrev_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x05,0xd5,0x01,0x05,0x02,0x00] v_subrev_f32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_subrev_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x05,0xd5,0xff,0xff,0x03,0x00] v_subrev_f32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_subrev_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x05,0xd5,0x01,0x04,0x00,0x00] v_subrev_f32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_subrev_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x05,0xd5,0x69,0xd2,0x00,0x00] v_subrev_f32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_subrev_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x05,0xd5,0x6a,0xf6,0x00,0x00] v_subrev_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_subrev_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x05,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_subrev_f32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_subrev_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x05,0xd5,0x7b,0xfa,0x01,0x00] v_subrev_f32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_subrev_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x05,0xd5,0x7d,0xe0,0x01,0x00] v_subrev_f32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_subrev_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x05,0xd5,0x7e,0x82,0x01,0x00] v_subrev_f32_e64 v5, |exec_hi|, null -// GFX11: encoding: [0x05,0x01,0x05,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_subrev_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x05,0xd5,0x7f,0xf8,0x00,0x00] v_subrev_f32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_subrev_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x05,0xd5,0x7c,0xfc,0x00,0x00] v_subrev_f32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_subrev_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x05,0xd5,0xc1,0xfe,0x00,0x00] v_subrev_f32_e64 v5, 0.5, -m0 mul:2 -// GFX11: encoding: [0x05,0x00,0x05,0xd5,0xf0,0xfa,0x00,0x48] +// GFX11: v_subrev_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x05,0xd5,0xf0,0xfa,0x00,0x48] v_subrev_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX11: encoding: [0x05,0x02,0x05,0xd5,0xfd,0xd4,0x00,0x30] +// GFX11: v_subrev_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x05,0xd5,0xfd,0xd4,0x00,0x30] v_subrev_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX11: encoding: [0xff,0x83,0x05,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX11: v_subrev_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x05,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_subrev_nc_u32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x27,0xd5,0x01,0x05,0x02,0x00] v_subrev_nc_u32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x27,0xd5,0xff,0xff,0x03,0x00] v_subrev_nc_u32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x27,0xd5,0x01,0x04,0x00,0x00] v_subrev_nc_u32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x27,0xd5,0x69,0xd2,0x00,0x00] v_subrev_nc_u32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x27,0xd5,0x6a,0xf6,0x00,0x00] v_subrev_nc_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_subrev_nc_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x27,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_subrev_nc_u32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x27,0xd5,0x7b,0xfa,0x01,0x00] v_subrev_nc_u32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x27,0xd5,0x7d,0xe0,0x01,0x00] v_subrev_nc_u32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x27,0xd5,0x7e,0x82,0x01,0x00] v_subrev_nc_u32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x27,0xd5,0x7f,0xf8,0x00,0x00] v_subrev_nc_u32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x27,0xd5,0x7c,0xfc,0x00,0x00] v_subrev_nc_u32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x27,0xd5,0xc1,0xfe,0x00,0x00] v_subrev_nc_u32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x27,0xd5,0xf0,0xfa,0x00,0x00] v_subrev_nc_u32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x27,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_subrev_nc_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x27,0xd5,0xfd,0xd4,0x00,0x00] v_subrev_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp -// GFX11: encoding: [0xff,0x80,0x27,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_subrev_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x27,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_xnor_b32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_xnor_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1e,0xd5,0x01,0x05,0x02,0x00] v_xnor_b32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_xnor_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1e,0xd5,0xff,0xff,0x03,0x00] v_xnor_b32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_xnor_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1e,0xd5,0x01,0x04,0x00,0x00] v_xnor_b32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_xnor_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1e,0xd5,0x69,0xd2,0x00,0x00] v_xnor_b32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_xnor_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1e,0xd5,0x6a,0xf6,0x00,0x00] v_xnor_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_xnor_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1e,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_xnor_b32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_xnor_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1e,0xd5,0x7b,0xfa,0x01,0x00] v_xnor_b32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_xnor_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1e,0xd5,0x7d,0xe0,0x01,0x00] v_xnor_b32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_xnor_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1e,0xd5,0x7e,0x82,0x01,0x00] v_xnor_b32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_xnor_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1e,0xd5,0x7f,0xf8,0x00,0x00] v_xnor_b32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_xnor_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1e,0xd5,0x7c,0xfc,0x00,0x00] v_xnor_b32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_xnor_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1e,0xd5,0xc1,0xfe,0x00,0x00] v_xnor_b32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_xnor_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1e,0xd5,0xf0,0xfa,0x00,0x00] v_xnor_b32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1e,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_xnor_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1e,0xd5,0xfd,0xd4,0x00,0x00] v_xnor_b32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x1e,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_xnor_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1e,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_xor_b32_e64 v5, v1, v2 -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x01,0x05,0x02,0x00] +// GFX11: v_xor_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1d,0xd5,0x01,0x05,0x02,0x00] v_xor_b32_e64 v5, v255, v255 -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0xff,0xff,0x03,0x00] +// GFX11: v_xor_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1d,0xd5,0xff,0xff,0x03,0x00] v_xor_b32_e64 v5, s1, s2 -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x01,0x04,0x00,0x00] +// GFX11: v_xor_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1d,0xd5,0x01,0x04,0x00,0x00] v_xor_b32_e64 v5, s105, s105 -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x69,0xd2,0x00,0x00] +// GFX11: v_xor_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1d,0xd5,0x69,0xd2,0x00,0x00] v_xor_b32_e64 v5, vcc_lo, ttmp15 -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x6a,0xf6,0x00,0x00] +// GFX11: v_xor_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1d,0xd5,0x6a,0xf6,0x00,0x00] v_xor_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_xor_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1d,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_xor_b32_e64 v5, ttmp15, src_scc -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x7b,0xfa,0x01,0x00] +// GFX11: v_xor_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1d,0xd5,0x7b,0xfa,0x01,0x00] v_xor_b32_e64 v5, m0, 0.5 -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x7d,0xe0,0x01,0x00] +// GFX11: v_xor_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1d,0xd5,0x7d,0xe0,0x01,0x00] v_xor_b32_e64 v5, exec_lo, -1 -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x7e,0x82,0x01,0x00] +// GFX11: v_xor_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1d,0xd5,0x7e,0x82,0x01,0x00] v_xor_b32_e64 v5, exec_hi, null -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x7f,0xf8,0x00,0x00] +// GFX11: v_xor_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1d,0xd5,0x7f,0xf8,0x00,0x00] v_xor_b32_e64 v5, null, exec_lo -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0x7c,0xfc,0x00,0x00] +// GFX11: v_xor_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1d,0xd5,0x7c,0xfc,0x00,0x00] v_xor_b32_e64 v5, -1, exec_hi -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0xc1,0xfe,0x00,0x00] +// GFX11: v_xor_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1d,0xd5,0xc1,0xfe,0x00,0x00] v_xor_b32_e64 v5, 0.5, m0 -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0xf0,0xfa,0x00,0x00] +// GFX11: v_xor_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1d,0xd5,0xf0,0xfa,0x00,0x00] v_xor_b32_e64 v5, src_scc, vcc_lo -// GFX11: encoding: [0x05,0x00,0x1d,0xd5,0xfd,0xd4,0x00,0x00] +// GFX11: v_xor_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1d,0xd5,0xfd,0xd4,0x00,0x00] v_xor_b32_e64 v255, 0xaf123456, vcc_hi -// GFX11: encoding: [0xff,0x00,0x1d,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_xor_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1d,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s index faa2b1f976999..cd720e286b902 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopc.s @@ -1,10486 +1,10487 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11,W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x7d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, v255, v2 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0xff,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, v255, v2 ; encoding: [0x05,0x00,0x7d,0xd4,0xff,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, s1, v2 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x01,0x04,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, s1, v2 ; encoding: [0x05,0x00,0x7d,0xd4,0x01,0x04,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, s105, v255 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x69,0xfe,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, s105, v255 ; encoding: [0x05,0x00,0x7d,0xd4,0x69,0xfe,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, vcc_lo, s2 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x6a,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, vcc_lo, s2 ; encoding: [0x05,0x00,0x7d,0xd4,0x6a,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, vcc_hi, s105 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x6b,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, vcc_hi, s105 ; encoding: [0x05,0x00,0x7d,0xd4,0x6b,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, ttmp15, ttmp15 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x7b,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, ttmp15, ttmp15 ; encoding: [0x05,0x00,0x7d,0xd4,0x7b,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, m0, src_scc -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x7d,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, m0, src_scc ; encoding: [0x05,0x00,0x7d,0xd4,0x7d,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x7d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x7d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x7d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x7d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x7d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x7d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x7d,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x7d,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x7d,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x7d,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], v1, 0.5 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x01,0xe1,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], v1, 0.5 ; encoding: [0x0a,0x00,0x7d,0xd4,0x01,0xe1,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x7d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], v255, v2 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0xff,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], v255, v2 ; encoding: [0x0a,0x00,0x7d,0xd4,0xff,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], s1, v2 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x01,0x04,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], s1, v2 ; encoding: [0x0a,0x00,0x7d,0xd4,0x01,0x04,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], s105, v255 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x69,0xfe,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], s105, v255 ; encoding: [0x0a,0x00,0x7d,0xd4,0x69,0xfe,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], vcc_lo, s2 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x6a,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], vcc_lo, s2 ; encoding: [0x0a,0x00,0x7d,0xd4,0x6a,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], vcc_hi, s105 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x6b,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], vcc_hi, s105 ; encoding: [0x0a,0x00,0x7d,0xd4,0x6b,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], ttmp15, ttmp15 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7b,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], ttmp15, ttmp15 ; encoding: [0x0a,0x00,0x7d,0xd4,0x7b,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], m0, src_scc -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7d,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], m0, src_scc ; encoding: [0x0a,0x00,0x7d,0xd4,0x7d,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x7d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x7d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x7d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x7d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x7d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x7d,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x7d,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x7d,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x7d,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 null, -|0xfe0b|, vcc_hi -// GFX11: encoding: [0x7c,0x01,0x7d,0xd4,0xff,0xd6,0x00,0x20,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_class_f16_e64 null, -|0xfe0b|, vcc_hi ; encoding: [0x7c,0x01,0x7d,0xd4,0xff,0xd6,0x00,0x20,0x0b,0xfe,0x00,0x00] v_cmp_class_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x7e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x7e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x7e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x7e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x7e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x7e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x7e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x7e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x7e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x7e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x7e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x7e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x7e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x7e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x7e,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x7e,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x7e,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x7e,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x7e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x7e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x7e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x7e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x7e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x7e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x7e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x7e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x7e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x7e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x7e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x7e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x7e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x7e,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x7e,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x7e,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x7e,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 null, -|0xaf123456|, vcc_hi -// GFX11: encoding: [0x7c,0x01,0x7e,0xd4,0xff,0xd6,0x00,0x20,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_class_f32_e64 null, -|0xaf123456|, vcc_hi ; encoding: [0x7c,0x01,0x7e,0xd4,0xff,0xd6,0x00,0x20,0x56,0x34,0x12,0xaf] v_cmp_class_f64_e64 s5, v[1:2], v2 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[1:2], v2 ; encoding: [0x05,0x00,0x7f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, v[1:2], v255 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x01,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[1:2], v255 ; encoding: [0x05,0x00,0x7f,0xd4,0x01,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, v[1:2], s2 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x01,0x05,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[1:2], s2 ; encoding: [0x05,0x00,0x7f,0xd4,0x01,0x05,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, v[1:2], s105 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x01,0xd3,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[1:2], s105 ; encoding: [0x05,0x00,0x7f,0xd4,0x01,0xd3,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, v[254:255], ttmp15 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0xfe,0xf7,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[254:255], ttmp15 ; encoding: [0x05,0x00,0x7f,0xd4,0xfe,0xf7,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, s[2:3], vcc_hi -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x02,0xd6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, s[2:3], vcc_hi ; encoding: [0x05,0x00,0x7f,0xd4,0x02,0xd6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, s[104:105], vcc_lo -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x68,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, s[104:105], vcc_lo ; encoding: [0x05,0x00,0x7f,0xd4,0x68,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, vcc, m0 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x6a,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, vcc, m0 ; encoding: [0x05,0x00,0x7f,0xd4,0x6a,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, ttmp[14:15], exec_hi -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x7a,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, ttmp[14:15], exec_hi ; encoding: [0x05,0x00,0x7f,0xd4,0x7a,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, exec, exec_lo -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x7e,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, exec, exec_lo ; encoding: [0x05,0x00,0x7f,0xd4,0x7e,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s105, null, null -// W32: encoding: [0x69,0x00,0x7f,0xd4,0x7c,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s105, null, null ; encoding: [0x69,0x00,0x7f,0xd4,0x7c,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x7f,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x7f,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 vcc_hi, 0.5, 0.5 -// W32: encoding: [0x6b,0x00,0x7f,0xd4,0xf0,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 vcc_hi, 0.5, 0.5 ; encoding: [0x6b,0x00,0x7f,0xd4,0xf0,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 ttmp15, -|src_scc|, src_scc -// W32: encoding: [0x7b,0x01,0x7f,0xd4,0xfd,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 ttmp15, -|src_scc|, src_scc ; encoding: [0x7b,0x01,0x7f,0xd4,0xfd,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[1:2], v2 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[1:2], v2 ; encoding: [0x0a,0x00,0x7f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[1:2], v255 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x01,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[1:2], v255 ; encoding: [0x0a,0x00,0x7f,0xd4,0x01,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[1:2], s2 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x01,0x05,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[1:2], s2 ; encoding: [0x0a,0x00,0x7f,0xd4,0x01,0x05,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[1:2], s105 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x01,0xd3,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[1:2], s105 ; encoding: [0x0a,0x00,0x7f,0xd4,0x01,0xd3,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[254:255], ttmp15 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0xfe,0xf7,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[254:255], ttmp15 ; encoding: [0x0a,0x00,0x7f,0xd4,0xfe,0xf7,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], s[2:3], vcc_hi -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x02,0xd6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], s[2:3], vcc_hi ; encoding: [0x0a,0x00,0x7f,0xd4,0x02,0xd6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], s[104:105], vcc_lo -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x68,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], s[104:105], vcc_lo ; encoding: [0x0a,0x00,0x7f,0xd4,0x68,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], vcc, m0 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x6a,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], vcc, m0 ; encoding: [0x0a,0x00,0x7f,0xd4,0x6a,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], ttmp[14:15], exec_hi -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x7a,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], ttmp[14:15], exec_hi ; encoding: [0x0a,0x00,0x7f,0xd4,0x7a,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], exec, exec_lo -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x7e,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], exec, exec_lo ; encoding: [0x0a,0x00,0x7f,0xd4,0x7e,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], null, null -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x7c,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], null, null ; encoding: [0x0a,0x00,0x7f,0xd4,0x7c,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x7f,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x7f,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 vcc, 0.5, 0.5 -// W64: encoding: [0x6a,0x00,0x7f,0xd4,0xf0,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 vcc, 0.5, 0.5 ; encoding: [0x6a,0x00,0x7f,0xd4,0xf0,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 ttmp[14:15], -|src_scc|, src_scc -// W64: encoding: [0x7a,0x01,0x7f,0xd4,0xfd,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 ttmp[14:15], -|src_scc|, src_scc ; encoding: [0x7a,0x01,0x7f,0xd4,0xfd,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 null, 0xaf123456, 0xaf123456 -// GFX11: encoding: [0x7c,0x00,0x7f,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_class_f64_e64 null, 0xaf123456, 0xaf123456 ; encoding: [0x7c,0x00,0x7f,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmp_eq_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x02,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x02,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x02,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x02,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x02,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x02,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x02,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x02,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x02,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x02,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x02,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x02,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x02,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x02,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x02,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x02,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x02,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x02,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x02,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x02,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x02,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x02,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x02,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x02,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x02,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x02,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x02,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x02,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x02,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x02,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x02,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x02,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x02,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x02,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x02,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x02,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x02,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x02,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x02,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x02,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x02,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_eq_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x02,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_eq_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x12,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x12,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x12,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x12,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x12,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x12,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x12,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x12,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x12,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x12,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x12,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x12,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x12,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x12,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x12,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x12,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x12,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x12,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x12,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x12,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x12,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x12,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x12,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x12,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x12,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x12,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x12,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x12,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x12,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x12,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x12,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x12,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x12,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x12,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x12,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x12,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x12,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x12,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x12,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x12,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_eq_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x12,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_eq_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x22,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x22,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x22,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x22,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x22,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x22,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x22,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x22,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x22,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x22,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x22,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x22,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x22,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x22,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x22,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x22,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x22,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x22,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x22,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x22,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x22,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x22,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x22,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x22,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x22,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x22,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x22,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x22,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x22,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x22,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x22,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x22,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x22,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x22,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x22,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x22,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x22,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x22,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_eq_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x22,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_eq_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x32,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x32,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x32,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x32,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x32,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x32,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x32,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x32,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x32,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x32,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x32,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x32,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x32,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x32,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x32,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x32,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x32,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x32,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x32,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x32,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x32,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x32,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x32,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x32,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x32,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x32,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x32,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x32,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x32,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x32,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x32,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x32,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x32,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x32,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x32,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x32,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x32,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x32,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x32,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x32,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_eq_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x32,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_eq_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x42,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x42,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x42,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x42,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x42,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x42,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x42,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x42,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x42,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x42,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x42,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x42,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x42,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x42,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x42,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x42,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x42,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x42,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x42,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x42,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x42,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x42,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x42,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x42,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x42,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x42,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x42,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x42,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x42,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x42,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x42,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x42,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x42,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x42,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x42,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x42,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x42,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x42,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x42,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_eq_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x42,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_eq_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x52,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x52,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x52,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x52,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x52,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x52,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x52,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x52,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x52,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x52,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x52,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x52,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x52,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x52,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x52,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x52,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x52,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x52,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x52,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x52,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x52,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x52,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x52,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x52,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x52,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x52,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x52,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x52,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x52,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x52,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x52,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x52,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x52,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x52,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x52,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x52,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x52,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_eq_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x52,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_eq_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3a,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3a,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3a,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3a,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3a,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3a,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3a,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3a,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3a,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3a,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3a,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3a,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3a,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3a,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3a,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3a,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3a,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3a,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3a,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3a,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3a,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3a,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3a,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3a,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3a,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3a,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3a,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3a,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3a,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3a,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3a,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x3a,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_eq_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3a,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_eq_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4a,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4a,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4a,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4a,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4a,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4a,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4a,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4a,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4a,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4a,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4a,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4a,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4a,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4a,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4a,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4a,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4a,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4a,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4a,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4a,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4a,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4a,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4a,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4a,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4a,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4a,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4a,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4a,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4a,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4a,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4a,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x4a,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_eq_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4a,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_eq_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5a,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5a,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5a,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5a,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5a,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5a,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5a,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5a,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5a,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5a,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5a,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5a,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5a,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5a,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5a,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5a,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5a,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5a,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5a,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5a,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5a,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5a,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5a,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5a,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5a,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x5a,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_eq_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5a,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_f_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x00,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x00,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x00,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x00,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x00,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x00,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x00,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x00,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x00,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x00,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x00,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x00,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x00,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x00,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x00,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x00,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x00,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x00,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x00,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x00,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x00,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x00,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x00,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x00,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x00,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x00,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x00,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x00,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x00,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x00,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x00,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x00,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x00,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x00,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x00,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x00,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x00,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x00,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x00,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x00,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x00,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x00,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x00,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x00,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x00,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x00,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x00,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x00,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x00,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x00,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x00,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x00,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x00,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x00,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x00,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x00,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x00,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_f_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x00,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_f_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x10,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x10,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x10,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x10,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x10,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x10,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x10,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x10,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x10,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x10,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x10,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x10,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x10,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x10,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x10,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x10,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x10,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x10,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x10,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x10,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x10,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x10,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x10,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x10,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x10,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x10,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x10,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x10,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x10,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x10,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x10,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x10,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x10,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x10,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x10,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x10,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x10,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x10,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x10,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x10,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x10,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x10,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x10,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x10,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x10,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x10,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x10,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x10,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x10,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x10,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x10,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x10,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x10,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x10,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x10,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x10,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x10,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_f_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x10,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_f_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x20,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x20,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x20,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x20,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x20,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x20,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x20,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x20,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x20,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x20,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x20,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x20,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x20,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x20,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x20,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x20,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x20,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x20,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x20,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x20,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x20,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x20,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x20,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x20,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x20,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x20,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x20,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x20,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x20,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x20,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x20,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x20,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x20,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x20,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x20,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x20,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x20,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x20,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x20,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x20,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x20,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x20,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x20,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x20,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x20,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_f_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x20,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_f_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x40,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x40,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x40,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x40,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x40,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x40,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x40,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x40,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x40,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x40,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x40,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x40,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x40,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x40,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x40,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x40,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x40,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x40,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x40,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x40,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x40,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x40,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x40,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x40,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x40,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x40,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x40,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x40,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x40,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x40,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x40,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x40,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x40,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x40,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x40,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x40,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x40,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x40,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x40,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x40,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x40,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x40,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x40,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x40,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x40,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x40,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x40,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x40,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_f_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x40,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_f_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x50,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x50,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x50,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x50,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x50,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x50,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x50,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x50,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x50,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x50,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x50,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x50,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x50,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x50,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x50,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x50,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x50,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x50,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x50,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x50,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x50,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x50,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x50,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x50,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x50,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x50,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x50,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x50,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x50,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x50,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x50,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x50,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x50,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x50,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x50,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x50,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x50,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x50,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x50,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x50,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x50,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x50,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x50,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x50,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_i64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x50,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_f_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x50,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_f_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x48,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x48,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x48,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x48,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x48,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x48,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x48,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x48,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x48,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x48,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x48,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x48,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x48,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x48,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x48,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x48,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x48,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x48,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x48,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x48,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x48,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x48,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x48,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x48,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x48,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x48,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x48,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x48,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x48,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x48,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x48,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x48,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x48,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x48,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x48,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x48,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x48,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x48,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x48,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x48,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x48,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x48,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x48,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x48,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x48,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x48,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x48,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x48,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_f_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x48,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_f_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x58,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x58,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x58,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x58,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x58,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x58,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x58,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x58,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x58,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x58,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x58,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x58,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x58,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x58,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x58,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x58,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x58,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x58,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x58,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x58,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x58,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_f_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x58,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x58,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x58,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x58,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x58,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x58,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x58,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x58,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x58,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x58,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x58,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x58,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x58,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x58,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x58,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x58,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x58,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x58,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x58,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x58,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x58,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x58,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_f_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x58,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_f_u64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x58,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_f_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x58,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ge_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x06,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x06,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x06,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x06,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x06,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x06,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x06,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x06,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x06,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x06,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x06,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x06,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x06,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x06,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x06,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x06,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x06,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x06,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x06,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x06,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x06,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x06,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x06,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x06,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x06,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x06,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x06,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x06,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x06,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x06,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x06,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x06,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x06,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x06,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x06,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x06,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x06,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x06,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x06,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x06,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x06,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_ge_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x06,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_ge_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x16,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x16,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x16,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x16,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x16,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x16,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x16,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x16,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x16,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x16,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x16,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x16,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x16,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x16,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x16,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x16,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x16,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x16,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x16,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x16,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x16,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x16,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x16,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x16,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x16,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x16,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x16,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x16,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x16,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x16,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x16,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x16,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x16,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x16,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x16,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x16,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x16,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x16,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x16,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x16,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ge_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x16,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_ge_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x26,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x26,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x26,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x26,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x26,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x26,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x26,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x26,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x26,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x26,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x26,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x26,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x26,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x26,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x26,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x26,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x26,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x26,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x26,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x26,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x26,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x26,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x26,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x26,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x26,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x26,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x26,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x26,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x26,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x26,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x26,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x26,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x26,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x26,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x26,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x26,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x26,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x26,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ge_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x26,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_ge_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x36,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x36,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x36,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x36,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x36,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x36,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x36,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x36,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x36,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x36,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x36,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x36,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x36,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x36,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x36,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x36,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x36,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x36,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x36,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x36,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x36,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x36,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x36,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x36,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x36,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x36,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x36,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x36,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x36,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x36,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x36,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x36,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x36,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x36,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x36,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x36,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x36,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x36,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x36,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x36,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_ge_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x36,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_ge_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x46,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x46,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x46,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x46,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x46,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x46,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x46,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x46,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x46,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x46,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x46,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x46,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x46,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x46,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x46,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x46,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x46,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x46,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x46,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x46,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x46,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x46,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x46,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x46,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x46,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x46,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x46,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x46,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x46,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x46,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x46,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x46,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x46,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x46,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x46,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x46,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x46,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x46,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x46,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ge_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x46,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ge_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x56,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x56,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x56,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x56,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x56,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x56,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x56,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x56,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x56,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x56,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x56,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x56,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x56,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x56,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x56,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x56,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x56,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x56,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x56,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x56,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x56,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x56,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x56,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x56,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x56,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x56,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x56,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x56,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x56,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x56,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x56,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x56,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x56,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x56,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x56,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x56,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x56,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ge_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x56,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ge_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3e,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3e,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3e,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3e,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3e,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3e,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3e,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3e,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x3e,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_ge_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3e,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_ge_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4e,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4e,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4e,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4e,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4e,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4e,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4e,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4e,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x4e,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ge_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4e,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ge_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5e,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5e,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5e,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5e,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5e,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5e,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5e,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5e,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5e,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5e,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5e,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5e,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5e,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5e,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5e,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5e,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5e,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5e,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5e,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5e,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5e,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5e,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5e,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5e,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5e,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x5e,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ge_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5e,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_gt_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x04,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x04,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x04,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x04,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x04,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x04,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x04,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x04,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x04,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x04,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x04,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x04,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x04,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x04,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x04,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x04,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x04,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x04,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x04,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x04,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x04,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x04,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x04,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x04,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x04,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x04,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x04,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x04,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x04,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x04,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x04,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x04,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x04,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x04,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x04,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x04,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x04,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x04,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x04,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x04,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x04,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_gt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x04,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_gt_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x14,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x14,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x14,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x14,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x14,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x14,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x14,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x14,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x14,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x14,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x14,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x14,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x14,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x14,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x14,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x14,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x14,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x14,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x14,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x14,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x14,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x14,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x14,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x14,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x14,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x14,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x14,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x14,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x14,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x14,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x14,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x14,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x14,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x14,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x14,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x14,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x14,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x14,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x14,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x14,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_gt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x14,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_gt_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x24,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x24,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x24,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x24,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x24,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x24,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x24,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x24,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x24,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x24,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x24,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x24,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x24,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x24,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x24,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x24,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x24,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x24,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x24,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x24,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x24,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x24,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x24,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x24,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x24,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x24,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x24,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x24,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x24,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x24,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x24,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x24,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x24,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x24,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x24,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x24,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x24,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x24,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_gt_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x24,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_gt_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x34,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x34,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x34,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x34,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x34,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x34,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x34,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x34,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x34,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x34,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x34,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x34,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x34,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x34,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x34,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x34,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x34,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x34,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x34,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x34,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x34,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x34,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x34,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x34,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x34,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x34,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x34,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x34,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x34,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x34,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x34,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x34,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x34,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x34,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x34,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x34,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x34,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x34,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x34,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x34,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_gt_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x34,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_gt_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x44,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x44,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x44,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x44,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x44,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x44,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x44,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x44,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x44,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x44,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x44,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x44,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x44,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x44,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x44,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x44,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x44,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x44,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x44,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x44,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x44,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x44,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x44,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x44,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x44,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x44,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x44,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x44,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x44,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x44,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x44,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x44,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x44,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x44,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x44,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x44,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x44,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x44,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x44,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_gt_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x44,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_gt_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x54,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x54,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x54,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x54,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x54,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x54,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x54,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x54,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x54,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x54,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x54,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x54,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x54,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x54,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x54,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x54,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x54,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x54,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x54,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x54,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x54,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x54,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x54,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x54,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x54,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x54,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x54,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x54,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x54,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x54,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x54,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x54,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x54,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x54,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x54,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x54,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x54,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_gt_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x54,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_gt_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3c,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3c,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3c,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3c,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3c,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3c,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3c,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3c,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3c,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3c,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3c,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3c,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3c,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3c,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3c,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3c,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3c,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3c,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3c,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3c,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3c,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3c,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3c,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3c,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3c,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3c,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3c,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3c,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3c,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3c,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3c,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x3c,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_gt_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3c,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_gt_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4c,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4c,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4c,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4c,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4c,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4c,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4c,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4c,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4c,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4c,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4c,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4c,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4c,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4c,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4c,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4c,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4c,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4c,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4c,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4c,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4c,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4c,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4c,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4c,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4c,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4c,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4c,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4c,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4c,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4c,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4c,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x4c,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_gt_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4c,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_gt_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5c,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5c,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5c,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5c,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5c,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5c,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5c,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5c,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5c,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5c,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5c,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5c,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5c,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5c,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5c,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5c,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5c,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5c,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5c,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5c,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5c,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5c,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5c,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5c,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5c,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x5c,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_gt_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5c,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_le_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x03,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x03,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x03,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x03,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x03,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x03,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x03,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x03,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x03,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x03,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x03,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x03,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x03,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x03,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x03,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x03,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x03,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x03,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x03,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x03,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x03,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x03,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x03,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x03,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x03,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x03,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x03,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x03,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x03,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x03,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x03,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x03,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x03,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x03,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x03,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x03,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x03,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x03,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x03,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x03,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x03,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_le_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x03,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_le_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x13,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x13,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x13,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x13,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x13,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x13,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x13,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x13,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x13,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x13,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x13,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x13,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x13,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x13,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x13,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x13,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x13,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x13,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x13,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x13,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x13,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x13,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x13,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x13,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x13,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x13,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x13,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x13,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x13,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x13,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x13,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x13,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x13,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x13,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x13,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x13,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x13,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x13,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x13,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x13,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_le_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x13,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_le_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x23,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x23,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x23,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x23,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x23,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x23,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x23,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x23,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x23,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x23,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x23,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x23,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x23,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x23,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x23,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x23,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x23,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x23,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x23,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x23,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x23,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x23,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x23,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x23,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x23,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x23,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x23,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x23,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x23,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x23,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x23,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x23,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x23,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x23,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x23,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x23,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x23,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x23,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_le_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x23,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_le_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x33,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x33,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x33,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x33,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x33,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x33,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x33,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x33,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x33,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x33,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x33,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x33,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x33,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x33,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x33,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x33,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x33,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x33,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x33,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x33,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x33,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x33,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x33,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x33,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x33,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x33,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x33,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x33,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x33,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x33,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x33,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x33,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x33,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x33,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x33,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x33,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x33,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x33,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x33,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x33,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_le_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x33,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_le_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x43,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x43,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x43,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x43,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x43,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x43,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x43,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x43,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x43,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x43,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x43,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x43,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x43,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x43,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x43,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x43,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x43,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x43,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x43,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x43,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x43,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x43,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x43,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x43,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x43,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x43,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x43,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x43,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x43,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x43,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x43,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x43,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x43,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x43,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x43,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x43,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x43,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x43,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x43,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_le_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x43,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_le_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x53,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x53,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x53,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x53,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x53,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x53,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x53,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x53,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x53,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x53,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x53,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x53,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x53,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x53,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x53,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x53,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x53,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x53,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x53,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x53,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x53,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x53,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x53,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x53,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x53,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x53,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x53,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x53,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x53,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x53,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x53,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x53,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x53,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x53,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x53,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x53,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x53,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_le_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x53,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_le_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3b,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3b,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3b,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3b,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3b,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3b,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3b,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3b,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3b,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3b,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3b,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3b,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3b,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3b,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3b,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3b,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3b,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3b,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3b,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3b,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3b,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3b,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3b,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3b,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3b,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3b,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3b,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3b,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3b,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3b,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3b,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x3b,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_le_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3b,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_le_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4b,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4b,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4b,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4b,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4b,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4b,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4b,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4b,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4b,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4b,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4b,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4b,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4b,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4b,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4b,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4b,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4b,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4b,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4b,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4b,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4b,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4b,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4b,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4b,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4b,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4b,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4b,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4b,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4b,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4b,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4b,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x4b,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_le_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4b,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_le_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5b,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5b,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5b,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5b,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5b,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5b,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5b,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5b,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5b,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5b,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5b,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5b,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5b,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5b,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5b,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5b,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5b,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5b,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5b,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5b,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5b,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5b,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5b,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5b,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5b,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x5b,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_le_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5b,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_lg_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x05,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x05,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x05,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x05,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x05,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x05,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x05,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x05,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x05,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x05,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x05,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x05,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x05,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x05,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x05,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x05,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x05,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x05,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x05,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x05,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x05,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x05,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x05,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x05,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x05,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x05,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x05,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x05,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x05,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x05,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x05,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x05,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x05,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x05,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x05,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x05,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x05,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x05,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x05,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x05,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x05,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_lg_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x05,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_lg_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x15,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x15,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x15,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x15,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x15,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x15,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x15,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x15,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x15,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x15,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x15,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x15,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x15,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x15,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x15,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x15,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x15,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x15,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x15,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x15,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x15,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x15,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x15,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x15,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x15,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x15,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x15,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x15,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x15,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x15,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x15,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x15,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x15,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x15,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x15,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x15,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x15,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x15,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x15,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x15,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_lg_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x15,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_lg_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x25,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x25,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x25,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x25,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x25,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x25,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x25,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x25,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x25,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x25,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x25,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x25,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x25,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x25,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x25,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x25,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x25,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x25,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x25,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x25,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x25,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x25,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x25,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x25,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x25,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x25,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x25,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x25,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x25,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x25,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x25,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x25,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x25,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x25,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x25,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x25,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x25,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x25,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_lg_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x25,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_lt_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x01,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x01,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x01,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x01,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x01,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x01,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x01,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x01,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x01,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x01,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x01,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x01,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x01,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x01,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x01,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x01,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x01,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x01,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x01,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x01,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x01,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x01,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x01,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x01,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x01,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x01,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x01,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x01,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x01,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x01,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x01,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x01,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x01,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x01,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x01,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x01,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x01,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x01,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x01,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x01,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x01,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_lt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x01,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_lt_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x11,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x11,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x11,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x11,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x11,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x11,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x11,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x11,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x11,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x11,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x11,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x11,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x11,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x11,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x11,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x11,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x11,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x11,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x11,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x11,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x11,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x11,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x11,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x11,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x11,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x11,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x11,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x11,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x11,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x11,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x11,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x11,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x11,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x11,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x11,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x11,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x11,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x11,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x11,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x11,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_lt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x11,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_lt_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x21,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x21,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x21,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x21,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x21,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x21,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x21,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x21,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x21,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x21,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x21,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x21,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x21,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x21,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x21,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x21,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x21,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x21,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x21,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x21,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x21,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x21,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x21,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x21,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x21,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x21,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x21,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x21,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x21,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x21,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x21,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x21,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x21,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x21,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x21,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x21,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x21,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x21,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_lt_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x21,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_lt_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x31,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x31,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x31,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x31,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x31,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x31,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x31,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x31,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x31,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x31,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x31,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x31,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x31,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x31,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x31,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x31,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x31,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x31,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x31,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x31,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x31,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x31,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x31,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x31,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x31,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x31,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x31,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x31,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x31,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x31,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x31,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x31,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x31,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x31,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x31,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x31,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x31,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x31,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x31,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x31,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_lt_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x31,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_lt_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x41,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x41,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x41,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x41,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x41,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x41,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x41,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x41,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x41,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x41,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x41,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x41,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x41,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x41,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x41,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x41,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x41,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x41,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x41,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x41,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x41,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x41,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x41,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x41,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x41,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x41,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x41,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x41,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x41,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x41,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x41,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x41,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x41,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x41,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x41,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x41,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x41,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x41,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x41,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_lt_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x41,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_lt_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x51,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x51,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x51,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x51,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x51,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x51,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x51,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x51,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x51,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x51,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x51,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x51,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x51,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x51,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x51,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x51,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x51,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x51,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x51,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x51,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x51,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x51,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x51,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x51,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x51,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x51,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x51,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x51,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x51,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x51,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x51,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x51,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x51,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x51,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x51,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x51,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x51,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_lt_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x51,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_lt_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x39,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x39,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x39,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x39,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x39,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x39,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x39,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x39,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x39,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x39,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x39,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x39,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x39,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x39,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x39,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x39,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x39,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x39,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x39,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x39,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x39,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x39,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x39,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x39,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x39,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x39,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x39,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x39,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x39,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x39,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x39,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x39,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x39,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x39,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x39,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x39,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x39,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x39,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x39,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x39,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_lt_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x39,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_lt_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x49,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x49,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x49,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x49,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x49,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x49,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x49,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x49,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x49,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x49,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x49,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x49,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x49,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x49,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x49,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x49,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x49,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x49,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x49,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x49,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x49,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x49,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x49,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x49,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x49,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x49,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x49,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x49,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x49,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x49,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x49,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x49,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x49,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x49,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x49,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x49,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x49,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x49,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x49,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_lt_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x49,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_lt_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x59,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x59,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x59,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x59,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x59,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x59,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x59,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x59,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x59,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x59,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x59,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x59,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x59,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x59,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x59,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x59,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x59,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x59,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x59,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x59,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x59,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x59,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x59,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x59,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x59,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x59,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x59,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x59,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x59,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x59,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x59,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x59,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x59,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x59,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x59,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x59,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x59,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_lt_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x59,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ne_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x35,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x35,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x35,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x35,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x35,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x35,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x35,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x35,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x35,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x35,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x35,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x35,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x35,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x35,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x35,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x35,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x35,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x35,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x35,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x35,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x35,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x35,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x35,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x35,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x35,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x35,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x35,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x35,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x35,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x35,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x35,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x35,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x35,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x35,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x35,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x35,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x35,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x35,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x35,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x35,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_ne_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x35,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_ne_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x45,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x45,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x45,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x45,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x45,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x45,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x45,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x45,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x45,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x45,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x45,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x45,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x45,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x45,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x45,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x45,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x45,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x45,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x45,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x45,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x45,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x45,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x45,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x45,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x45,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x45,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x45,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x45,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x45,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x45,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x45,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x45,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x45,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x45,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x45,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x45,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x45,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x45,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x45,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ne_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x45,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ne_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x55,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x55,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x55,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x55,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x55,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x55,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x55,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x55,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x55,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x55,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x55,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x55,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x55,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x55,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x55,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x55,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x55,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x55,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x55,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x55,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x55,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x55,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x55,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x55,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x55,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x55,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x55,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x55,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x55,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x55,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x55,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x55,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x55,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x55,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x55,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x55,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x55,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ne_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x55,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ne_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3d,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3d,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3d,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3d,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3d,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3d,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3d,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3d,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3d,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3d,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3d,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3d,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3d,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3d,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3d,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3d,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3d,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3d,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3d,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3d,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 null, 0xfe0b, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x3d,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_ne_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3d,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_ne_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4d,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4d,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4d,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4d,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4d,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4d,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4d,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4d,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4d,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4d,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4d,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4d,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4d,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4d,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4d,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4d,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4d,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4d,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4d,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4d,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x4d,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ne_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4d,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ne_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5d,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5d,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5d,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5d,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5d,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5d,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5d,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5d,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5d,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5d,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5d,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5d,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5d,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5d,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5d,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5d,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5d,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5d,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5d,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5d,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5d,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5d,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5d,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5d,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5d,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x5d,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ne_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5d,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_neq_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0d,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0d,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0d,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0d,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0d,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0d,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0d,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0d,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0d,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0d,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0d,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0d,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0d,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0d,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0d,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0d,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0d,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0d,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0d,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0d,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x0d,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_neq_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0d,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_neq_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1d,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1d,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1d,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1d,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1d,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1d,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1d,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1d,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1d,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1d,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1d,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1d,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1d,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1d,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1d,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1d,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1d,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1d,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1d,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1d,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x1d,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_neq_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1d,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_neq_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2d,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2d,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2d,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2d,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2d,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2d,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2d,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2d,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2d,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2d,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2d,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2d,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2d,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2d,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2d,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2d,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2d,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2d,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2d,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2d,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2d,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2d,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2d,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2d,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2d,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2d,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2d,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x2d,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_neq_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2d,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_nge_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x09,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x09,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x09,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x09,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x09,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x09,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x09,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x09,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x09,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x09,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x09,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x09,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x09,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x09,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x09,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x09,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x09,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x09,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x09,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x09,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x09,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x09,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x09,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x09,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x09,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x09,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x09,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x09,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x09,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x09,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x09,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x09,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x09,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x09,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x09,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x09,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x09,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x09,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x09,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x09,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x09,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_nge_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x09,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_nge_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x19,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x19,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x19,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x19,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x19,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x19,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x19,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x19,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x19,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x19,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x19,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x19,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x19,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x19,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x19,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x19,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x19,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x19,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x19,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x19,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x19,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x19,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x19,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x19,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x19,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x19,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x19,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x19,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x19,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x19,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x19,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x19,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x19,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x19,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x19,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x19,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x19,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x19,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x19,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x19,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_nge_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x19,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_nge_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x29,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x29,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x29,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x29,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x29,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x29,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x29,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x29,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x29,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x29,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x29,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x29,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x29,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x29,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x29,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x29,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x29,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x29,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x29,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x29,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x29,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x29,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x29,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x29,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x29,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x29,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x29,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x29,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x29,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x29,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x29,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x29,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x29,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x29,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x29,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x29,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x29,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x29,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_nge_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x29,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_ngt_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0b,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0b,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0b,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0b,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0b,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0b,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0b,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0b,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0b,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0b,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0b,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0b,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0b,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0b,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0b,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0b,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0b,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0b,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0b,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0b,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0b,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0b,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0b,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0b,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0b,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0b,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0b,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0b,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0b,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0b,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0b,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0b,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0b,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x0b,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_ngt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0b,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_ngt_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1b,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1b,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1b,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1b,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1b,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1b,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1b,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1b,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1b,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1b,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1b,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1b,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1b,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1b,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1b,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1b,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1b,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1b,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1b,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1b,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1b,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1b,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1b,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1b,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1b,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1b,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1b,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1b,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1b,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1b,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1b,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1b,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1b,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x1b,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ngt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1b,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_ngt_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2b,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2b,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2b,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2b,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2b,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2b,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2b,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2b,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2b,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2b,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2b,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2b,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2b,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2b,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2b,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2b,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2b,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2b,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2b,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2b,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2b,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2b,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2b,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2b,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2b,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2b,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2b,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x2b,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_ngt_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2b,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_nle_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0c,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0c,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0c,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0c,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0c,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0c,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0c,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0c,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0c,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0c,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0c,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0c,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0c,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0c,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0c,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0c,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0c,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0c,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0c,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0c,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0c,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0c,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0c,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0c,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0c,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0c,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0c,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0c,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0c,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0c,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0c,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0c,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0c,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x0c,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_nle_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0c,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_nle_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1c,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1c,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1c,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1c,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1c,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1c,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1c,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1c,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1c,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1c,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1c,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1c,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1c,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1c,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1c,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1c,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1c,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1c,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1c,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1c,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1c,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1c,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1c,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1c,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1c,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1c,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1c,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1c,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1c,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1c,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1c,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1c,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1c,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x1c,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_nle_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1c,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_nle_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2c,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2c,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2c,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2c,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2c,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2c,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2c,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2c,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2c,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2c,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2c,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2c,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2c,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2c,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2c,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2c,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2c,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2c,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2c,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2c,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2c,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2c,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2c,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2c,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2c,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2c,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2c,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x2c,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_nle_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2c,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_nlg_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0a,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0a,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0a,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0a,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0a,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0a,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0a,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0a,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0a,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0a,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0a,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0a,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0a,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0a,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0a,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0a,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0a,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0a,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0a,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0a,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0a,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0a,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0a,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0a,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0a,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0a,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0a,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0a,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0a,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0a,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0a,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0a,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0a,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x0a,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_nlg_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0a,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_nlg_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1a,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1a,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1a,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1a,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1a,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1a,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1a,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1a,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1a,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1a,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1a,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1a,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1a,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1a,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1a,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1a,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1a,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1a,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1a,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1a,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1a,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1a,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1a,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1a,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1a,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1a,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1a,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1a,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1a,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1a,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1a,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1a,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1a,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x1a,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_nlg_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1a,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_nlg_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2a,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2a,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2a,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2a,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2a,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2a,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2a,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2a,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2a,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2a,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2a,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2a,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2a,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2a,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2a,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2a,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2a,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2a,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2a,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2a,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2a,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2a,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2a,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2a,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2a,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2a,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2a,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x2a,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_nlg_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2a,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_nlt_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0e,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0e,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0e,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0e,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0e,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0e,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0e,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0e,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x0e,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_nlt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0e,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_nlt_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1e,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1e,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1e,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1e,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1e,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1e,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1e,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1e,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x1e,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_nlt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1e,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_nlt_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2e,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2e,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2e,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2e,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2e,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2e,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2e,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2e,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2e,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2e,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2e,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2e,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2e,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2e,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2e,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2e,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2e,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2e,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2e,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2e,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2e,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2e,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2e,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2e,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2e,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2e,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2e,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x2e,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_nlt_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2e,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_o_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x07,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x07,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x07,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x07,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x07,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x07,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x07,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x07,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x07,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x07,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x07,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x07,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x07,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x07,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x07,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x07,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x07,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x07,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x07,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x07,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x07,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x07,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x07,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x07,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x07,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x07,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x07,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x07,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x07,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x07,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x07,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x07,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x07,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x07,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x07,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x07,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x07,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x07,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x07,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x07,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x07,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_o_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x07,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_o_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x17,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x17,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x17,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x17,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x17,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x17,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x17,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x17,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x17,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x17,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x17,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x17,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x17,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x17,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x17,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x17,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x17,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x17,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x17,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x17,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x17,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x17,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x17,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x17,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x17,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x17,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x17,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x17,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x17,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x17,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x17,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x17,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x17,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x17,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x17,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x17,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x17,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x17,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x17,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x17,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_o_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x17,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_o_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x27,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x27,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x27,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x27,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x27,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x27,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x27,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x27,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x27,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x27,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x27,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x27,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x27,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x27,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x27,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x27,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x27,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x27,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x27,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x27,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x27,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x27,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x27,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x27,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x27,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x27,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x27,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x27,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x27,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x27,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x27,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x27,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x27,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x27,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x27,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x27,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x27,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x27,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_o_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x27,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_t_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0f,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0f,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0f,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0f,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0f,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0f,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0f,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0f,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0f,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0f,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0f,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0f,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0f,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0f,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0f,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0f,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0f,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0f,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0f,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0f,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0f,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0f,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0f,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0f,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0f,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0f,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0f,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0f,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0f,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0f,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0f,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0f,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0f,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x0f,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_t_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0f,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_t_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1f,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1f,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1f,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1f,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1f,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1f,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1f,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1f,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1f,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1f,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1f,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1f,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1f,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1f,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1f,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1f,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1f,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1f,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1f,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1f,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1f,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1f,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1f,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1f,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1f,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1f,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1f,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1f,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1f,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1f,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1f,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1f,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1f,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x1f,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_t_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1f,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_t_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2f,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2f,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2f,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2f,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2f,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2f,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2f,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2f,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2f,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2f,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2f,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2f,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2f,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2f,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2f,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2f,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2f,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2f,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2f,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2f,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2f,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2f,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2f,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2f,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2f,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2f,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2f,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x2f,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_t_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2f,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_t_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x47,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x47,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x47,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x47,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x47,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x47,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x47,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x47,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x47,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x47,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x47,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x47,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x47,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x47,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x47,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x47,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x47,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x47,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x47,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x47,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x47,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x47,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x47,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x47,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x47,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x47,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x47,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x47,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x47,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x47,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x47,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x47,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x47,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x47,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x47,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x47,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x47,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x47,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x47,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x47,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x47,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x47,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x47,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x47,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x47,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x47,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x47,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x47,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_t_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x47,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_t_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x57,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x57,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x57,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x57,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x57,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x57,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x57,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x57,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x57,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x57,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x57,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x57,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x57,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x57,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x57,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x57,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x57,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x57,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x57,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x57,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x57,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x57,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x57,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x57,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x57,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x57,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x57,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x57,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x57,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x57,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x57,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x57,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x57,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x57,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x57,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x57,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x57,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x57,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x57,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x57,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x57,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x57,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x57,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x57,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_i64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x57,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_t_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x57,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_t_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4f,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4f,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4f,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4f,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4f,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4f,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4f,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4f,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4f,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4f,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4f,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4f,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4f,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4f,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4f,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4f,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4f,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4f,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4f,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4f,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4f,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4f,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4f,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4f,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4f,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4f,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4f,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4f,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4f,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4f,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4f,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4f,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4f,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4f,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4f,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4f,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4f,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4f,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4f,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4f,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u32_e64 null, 0xaf123456, vcc_hi -// GFX11: encoding: [0x7c,0x00,0x4f,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_t_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4f,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_t_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5f,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5f,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5f,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5f,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5f,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5f,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5f,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5f,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5f,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5f,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5f,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5f,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5f,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5f,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5f,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5f,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5f,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5f,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5f,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5f,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5f,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5f,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5f,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5f,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5f,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5f,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5f,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5f,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5f,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5f,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5f,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5f,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5f,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5f,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5f,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5f,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_t_u64_e64 null, 0xaf123456, vcc -// GFX11: encoding: [0x7c,0x00,0x5f,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_t_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5f,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_tru_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0f,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0f,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0f,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0f,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0f,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0f,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0f,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0f,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0f,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0f,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0f,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0f,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0f,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0f,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0f,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0f,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0f,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0f,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0f,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0f,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0f,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0f,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0f,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0f,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0f,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0f,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0f,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0f,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0f,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0f,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0f,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0f,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0f,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0f,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0f,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x0f,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_t_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0f,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_tru_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1f,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1f,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1f,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1f,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1f,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1f,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1f,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1f,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1f,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1f,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1f,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1f,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1f,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1f,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1f,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1f,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1f,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1f,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1f,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1f,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1f,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1f,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1f,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1f,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1f,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1f,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1f,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1f,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1f,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1f,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1f,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1f,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1f,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1f,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1f,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x1f,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_t_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1f,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_tru_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2f,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2f,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2f,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2f,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2f,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2f,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2f,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2f,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2f,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2f,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2f,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2f,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2f,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_t_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2f,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2f,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2f,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2f,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2f,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2f,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2f,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2f,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2f,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2f,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2f,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2f,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2f,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2f,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2f,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_t_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2f,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_tru_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x2f,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_t_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2f,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_u_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x08,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x08,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x08,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x08,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x08,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x08,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x08,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x08,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x08,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x08,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x08,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x08,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x08,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x08,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x08,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x08,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x08,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x08,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x08,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x08,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x08,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x08,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x08,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x08,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x08,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x08,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x08,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x08,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x08,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x08,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x08,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x08,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x08,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x08,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x08,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x08,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x08,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x08,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x08,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x08,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x08,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmp_u_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x08,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_u_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x18,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x18,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x18,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x18,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x18,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x18,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x18,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x18,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x18,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x18,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x18,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x18,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x18,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x18,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x18,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x18,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x18,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x18,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x18,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x18,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x18,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x18,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x18,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x18,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x18,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x18,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x18,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x18,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x18,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x18,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x18,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x18,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x18,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x18,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x18,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x18,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x18,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x18,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x18,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7c,0x83,0x18,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_u_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x18,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_u_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x28,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x28,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x28,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x28,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x28,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x28,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x28,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x28,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x28,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x28,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x28,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x28,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x28,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x28,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x28,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x28,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x28,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x28,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x28,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x28,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x28,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x28,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x28,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x28,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x28,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x28,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x28,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x28,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x28,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x28,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x28,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x28,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x28,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x28,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x28,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x28,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x28,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7c,0x82,0x28,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmp_u_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x28,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s index f8b65857a46f1..55a4fabb4e236 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vop3_from_vopcx.s @@ -1,4118 +1,4119 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s v_cmpx_class_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_class_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0xfd,0xd4,0x01,0x05,0x02,0x00] v_cmpx_class_f16_e64 v255, v2 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0xff,0x05,0x02,0x00] +// GFX11: v_cmpx_class_f16_e64 v255, v2 ; encoding: [0x7e,0x00,0xfd,0xd4,0xff,0x05,0x02,0x00] v_cmpx_class_f16_e64 s1, v2 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x01,0x04,0x02,0x00] +// GFX11: v_cmpx_class_f16_e64 s1, v2 ; encoding: [0x7e,0x00,0xfd,0xd4,0x01,0x04,0x02,0x00] v_cmpx_class_f16_e64 s105, v255 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x69,0xfe,0x03,0x00] +// GFX11: v_cmpx_class_f16_e64 s105, v255 ; encoding: [0x7e,0x00,0xfd,0xd4,0x69,0xfe,0x03,0x00] v_cmpx_class_f16_e64 vcc_lo, s2 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x6a,0x04,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64 vcc_lo, s2 ; encoding: [0x7e,0x00,0xfd,0xd4,0x6a,0x04,0x00,0x00] v_cmpx_class_f16_e64 vcc_hi, s105 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x6b,0xd2,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64 vcc_hi, s105 ; encoding: [0x7e,0x00,0xfd,0xd4,0x6b,0xd2,0x00,0x00] v_cmpx_class_f16_e64 ttmp15, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x7b,0xf6,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64 ttmp15, ttmp15 ; encoding: [0x7e,0x00,0xfd,0xd4,0x7b,0xf6,0x00,0x00] v_cmpx_class_f16_e64 m0, src_scc -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x7d,0xfa,0x01,0x00] +// GFX11: v_cmpx_class_f16_e64 m0, src_scc ; encoding: [0x7e,0x00,0xfd,0xd4,0x7d,0xfa,0x01,0x00] v_cmpx_class_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_class_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xfd,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_class_f16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xfd,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_class_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xfd,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_class_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xfd,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_class_f16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xfd,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_class_f16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xfd,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_class_f16_e64 -|0xfe0b|, vcc_hi -// GFX11: encoding: [0x7e,0x01,0xfd,0xd4,0xff,0xd6,0x00,0x20,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_class_f16_e64 -|0xfe0b|, vcc_hi ; encoding: [0x7e,0x01,0xfd,0xd4,0xff,0xd6,0x00,0x20,0x0b,0xfe,0x00,0x00] v_cmpx_class_f16_e64 v1, 0.5 -// GFX11: encoding: [0x7e,0x00,0xfd,0xd4,0x01,0xe1,0x01,0x00] +// GFX11: v_cmpx_class_f16_e64 v1, 0.5 ; encoding: [0x7e,0x00,0xfd,0xd4,0x01,0xe1,0x01,0x00] v_cmpx_class_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_class_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0xfe,0xd4,0x01,0x05,0x02,0x00] v_cmpx_class_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_class_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0xfe,0xd4,0xff,0xff,0x03,0x00] v_cmpx_class_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_class_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0xfe,0xd4,0x01,0x04,0x00,0x00] v_cmpx_class_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_class_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0xfe,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_class_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_class_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xfe,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_class_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_class_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xfe,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_class_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_class_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xfe,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_class_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_class_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xfe,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_class_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_class_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xfe,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_class_f32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_class_f32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xfe,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_class_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_class_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xfe,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_class_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_class_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xfe,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_class_f32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_class_f32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xfe,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_class_f32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xfe,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_class_f32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xfe,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_class_f32_e64 -|0xaf123456|, vcc_hi -// GFX11: encoding: [0x7e,0x01,0xfe,0xd4,0xff,0xd6,0x00,0x20,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_class_f32_e64 -|0xaf123456|, vcc_hi ; encoding: [0x7e,0x01,0xfe,0xd4,0xff,0xd6,0x00,0x20,0x56,0x34,0x12,0xaf] v_cmpx_class_f64_e64 v[1:2], v2 -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_class_f64_e64 v[1:2], v2 ; encoding: [0x7e,0x00,0xff,0xd4,0x01,0x05,0x02,0x00] v_cmpx_class_f64_e64 v[1:2], v255 -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x01,0xff,0x03,0x00] +// GFX11: v_cmpx_class_f64_e64 v[1:2], v255 ; encoding: [0x7e,0x00,0xff,0xd4,0x01,0xff,0x03,0x00] v_cmpx_class_f64_e64 v[1:2], s2 -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x01,0x05,0x00,0x00] +// GFX11: v_cmpx_class_f64_e64 v[1:2], s2 ; encoding: [0x7e,0x00,0xff,0xd4,0x01,0x05,0x00,0x00] v_cmpx_class_f64_e64 v[1:2], s105 -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x01,0xd3,0x00,0x00] +// GFX11: v_cmpx_class_f64_e64 v[1:2], s105 ; encoding: [0x7e,0x00,0xff,0xd4,0x01,0xd3,0x00,0x00] v_cmpx_class_f64_e64 v[254:255], ttmp15 -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0xfe,0xf7,0x00,0x00] +// GFX11: v_cmpx_class_f64_e64 v[254:255], ttmp15 ; encoding: [0x7e,0x00,0xff,0xd4,0xfe,0xf7,0x00,0x00] v_cmpx_class_f64_e64 s[2:3], vcc_hi -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x02,0xd6,0x00,0x00] +// GFX11: v_cmpx_class_f64_e64 s[2:3], vcc_hi ; encoding: [0x7e,0x00,0xff,0xd4,0x02,0xd6,0x00,0x00] v_cmpx_class_f64_e64 s[104:105], vcc_lo -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x68,0xd4,0x00,0x00] +// GFX11: v_cmpx_class_f64_e64 s[104:105], vcc_lo ; encoding: [0x7e,0x00,0xff,0xd4,0x68,0xd4,0x00,0x00] v_cmpx_class_f64_e64 vcc, m0 -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x6a,0xfa,0x00,0x00] +// GFX11: v_cmpx_class_f64_e64 vcc, m0 ; encoding: [0x7e,0x00,0xff,0xd4,0x6a,0xfa,0x00,0x00] v_cmpx_class_f64_e64 ttmp[14:15], exec_hi -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x7a,0xfe,0x00,0x00] +// GFX11: v_cmpx_class_f64_e64 ttmp[14:15], exec_hi ; encoding: [0x7e,0x00,0xff,0xd4,0x7a,0xfe,0x00,0x00] v_cmpx_class_f64_e64 exec, exec_lo -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x7e,0xfc,0x00,0x00] +// GFX11: v_cmpx_class_f64_e64 exec, exec_lo ; encoding: [0x7e,0x00,0xff,0xd4,0x7e,0xfc,0x00,0x00] v_cmpx_class_f64_e64 null, null -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0x7c,0xf8,0x00,0x00] +// GFX11: v_cmpx_class_f64_e64 null, null ; encoding: [0x7e,0x00,0xff,0xd4,0x7c,0xf8,0x00,0x00] v_cmpx_class_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_class_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xff,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_class_f64_e64 0.5, 0.5 -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0xf0,0xe0,0x01,0x00] +// GFX11: v_cmpx_class_f64_e64 0.5, 0.5 ; encoding: [0x7e,0x00,0xff,0xd4,0xf0,0xe0,0x01,0x00] v_cmpx_class_f64_e64 -|src_scc|, src_scc -// GFX11: encoding: [0x7e,0x01,0xff,0xd4,0xfd,0xfa,0x01,0x20] +// GFX11: v_cmpx_class_f64_e64 -|src_scc|, src_scc ; encoding: [0x7e,0x01,0xff,0xd4,0xfd,0xfa,0x01,0x20] v_cmpx_class_f64_e64 0xaf123456, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xff,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_class_f64_e64 0xaf123456, 0xaf123456 ; encoding: [0x7e,0x00,0xff,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_eq_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x82,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_eq_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x82,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x82,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x82,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x82,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x82,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_eq_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x82,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_eq_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x82,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_eq_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x82,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x82,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x82,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x82,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x82,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x82,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_eq_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x82,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_eq_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x82,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_eq_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x82,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_eq_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x82,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x82,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_eq_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_eq_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x92,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_eq_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x92,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_eq_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x92,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_eq_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x92,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_eq_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x92,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x92,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_eq_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x92,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_eq_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x92,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_eq_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x92,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x92,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_eq_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x92,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_eq_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x92,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x92,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x92,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_eq_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x92,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_eq_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x92,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_eq_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x92,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_eq_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x92,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x92,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_eq_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa2,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_eq_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa2,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa2,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_eq_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa2,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_eq_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa2,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_eq_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa2,0xd4,0x02,0x08,0x00,0x00] v_cmpx_eq_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa2,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_eq_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa2,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_eq_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa2,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_eq_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa2,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_eq_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa2,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa2,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa2,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_eq_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa2,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_eq_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa2,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_eq_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa2,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_eq_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa2,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_eq_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa2,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_eq_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa2,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_eq_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa2,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_eq_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa2,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_eq_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa2,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_eq_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa2,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa2,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_eq_i16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_eq_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb2,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_i16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_eq_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb2,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_i16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb2,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_i16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb2,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_i16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb2,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_i16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb2,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_i16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_eq_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb2,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_i16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_eq_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb2,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_i16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_eq_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb2,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_i16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb2,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_i16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb2,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_i16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb2,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_i16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb2,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_eq_i16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb2,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_eq_i16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xb2,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb2,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_i32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_eq_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc2,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_i32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_eq_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc2,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_i32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_eq_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc2,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_i32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_eq_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc2,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_i32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_eq_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc2,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_i32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc2,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_i32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_eq_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc2,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_i32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_eq_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc2,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_i32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_eq_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc2,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_i32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_eq_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc2,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_i32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_eq_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc2,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_i32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc2,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_i32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_eq_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc2,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_eq_i32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_eq_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc2,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_eq_i32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc2,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc2,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_i64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_eq_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd2,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_i64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_eq_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd2,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_eq_i64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_eq_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd2,0xd4,0x02,0x08,0x00,0x00] v_cmpx_eq_i64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_eq_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd2,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_eq_i64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_eq_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd2,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_eq_i64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd2,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_i64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_eq_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd2,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_eq_i64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_eq_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd2,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_eq_i64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_eq_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd2,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_eq_i64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_eq_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd2,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_eq_i64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_eq_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd2,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_eq_i64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd2,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd2,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_u16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_eq_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xba,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_u16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_eq_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xba,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_u16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xba,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_u16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xba,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_u16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xba,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_u16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xba,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_u16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_eq_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xba,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_u16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_eq_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xba,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_u16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_eq_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xba,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_u16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xba,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_u16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xba,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_u16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xba,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_u16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xba,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_eq_u16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xba,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_eq_u16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xba,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xba,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_u32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_eq_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xca,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_u32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_eq_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xca,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_u32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_eq_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xca,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_u32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_eq_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xca,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_u32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_eq_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xca,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_u32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xca,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_u32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_eq_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xca,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_u32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_eq_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xca,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_u32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_eq_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xca,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_u32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_eq_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xca,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_u32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_eq_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xca,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_u32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xca,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_u32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_eq_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xca,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_eq_u32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_eq_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xca,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_eq_u32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xca,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xca,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_u64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_eq_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xda,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_u64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_eq_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xda,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_eq_u64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_eq_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xda,0xd4,0x02,0x08,0x00,0x00] v_cmpx_eq_u64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_eq_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xda,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_eq_u64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_eq_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xda,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_eq_u64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xda,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_u64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_eq_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xda,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_eq_u64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_eq_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xda,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_eq_u64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_eq_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xda,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_eq_u64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_eq_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xda,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_eq_u64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_eq_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xda,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_eq_u64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xda,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xda,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_f_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x80,0xd4,0x01,0x05,0x02,0x00] v_cmpx_f_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_f_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x80,0xd4,0xff,0xff,0x03,0x00] v_cmpx_f_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_f_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x80,0xd4,0x01,0x04,0x00,0x00] v_cmpx_f_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_f_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x80,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_f_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_f_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x80,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_f_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_f_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x80,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_f_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_f_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x80,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_f_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_f_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x80,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_f_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_f_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x80,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_f_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x80,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_f_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x80,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_f_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_f_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x80,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_f_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_f_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x80,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_f_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x80,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_f_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x80,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_f_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x80,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_f_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x80,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_f_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x80,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_f_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x80,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_f_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_f_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x90,0xd4,0x01,0x05,0x02,0x00] v_cmpx_f_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_f_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x90,0xd4,0xff,0xff,0x03,0x00] v_cmpx_f_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_f_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x90,0xd4,0x01,0x04,0x00,0x00] v_cmpx_f_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_f_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x90,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_f_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_f_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x90,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_f_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x90,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_f_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x90,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_f_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_f_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x90,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_f_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_f_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x90,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_f_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x90,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_f_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x90,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_f_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_f_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x90,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_f_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_f_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x90,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_f_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x90,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_f_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x90,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_f_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x90,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_f_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x90,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_f_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x90,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x90,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_f_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa0,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_f_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa0,0xd4,0x01,0x05,0x02,0x00] v_cmpx_f_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa0,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_f_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa0,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_f_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa0,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_f_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa0,0xd4,0x02,0x08,0x00,0x00] v_cmpx_f_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa0,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_f_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa0,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_f_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa0,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_f_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa0,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_f_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa0,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa0,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa0,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_f_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa0,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_f_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa0,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_f_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa0,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_f_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa0,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_f_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa0,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_f_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa0,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_f_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa0,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_f_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa0,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_f_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa0,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_f_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa0,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa0,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_f_i32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_f_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc0,0xd4,0x01,0x05,0x02,0x00] v_cmpx_f_i32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_f_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc0,0xd4,0xff,0xff,0x03,0x00] v_cmpx_f_i32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_f_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc0,0xd4,0x01,0x04,0x00,0x00] v_cmpx_f_i32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_f_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc0,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_f_i32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_f_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc0,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_f_i32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc0,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_i32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_f_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc0,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_f_i32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_f_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc0,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_f_i32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_f_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc0,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_f_i32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_f_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc0,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_f_i32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_f_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc0,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_f_i32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_f_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc0,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_f_i32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_f_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc0,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_f_i32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_f_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc0,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_f_i32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc0,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc0,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_i64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_f_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd0,0xd4,0x01,0x05,0x02,0x00] v_cmpx_f_i64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_f_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd0,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_f_i64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_f_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd0,0xd4,0x02,0x08,0x00,0x00] v_cmpx_f_i64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_f_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd0,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_f_i64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_f_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd0,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_f_i64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd0,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_i64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_f_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd0,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_f_i64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_f_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd0,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_f_i64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_f_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd0,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_f_i64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_f_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd0,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_f_i64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_f_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd0,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_f_i64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd0,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd0,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_u32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_f_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc8,0xd4,0x01,0x05,0x02,0x00] v_cmpx_f_u32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_f_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc8,0xd4,0xff,0xff,0x03,0x00] v_cmpx_f_u32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_f_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc8,0xd4,0x01,0x04,0x00,0x00] v_cmpx_f_u32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_f_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc8,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_f_u32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_f_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc8,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_f_u32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc8,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_u32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_f_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc8,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_f_u32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_f_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc8,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_f_u32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_f_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc8,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_f_u32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_f_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc8,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_f_u32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_f_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc8,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_f_u32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_f_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc8,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_f_u32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_f_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc8,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_f_u32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_f_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc8,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_f_u32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc8,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc8,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_u64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_f_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd8,0xd4,0x01,0x05,0x02,0x00] v_cmpx_f_u64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_f_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd8,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_f_u64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_f_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd8,0xd4,0x02,0x08,0x00,0x00] v_cmpx_f_u64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_f_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd8,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_f_u64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_f_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd8,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_f_u64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd8,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_f_u64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_f_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd8,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_f_u64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_f_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd8,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_f_u64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_f_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd8,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_f_u64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_f_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xd8,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_f_u64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_f_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd8,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_f_u64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd8,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd8,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ge_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x86,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ge_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x86,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x86,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x86,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x86,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x86,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ge_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x86,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ge_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x86,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ge_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x86,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x86,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x86,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x86,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x86,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x86,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_ge_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x86,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_ge_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x86,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_ge_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x86,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_ge_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x86,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x86,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_ge_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ge_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x96,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ge_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x96,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ge_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x96,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ge_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x96,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ge_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x96,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x96,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ge_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x96,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ge_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x96,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ge_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x96,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x96,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ge_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x96,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ge_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x96,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x96,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x96,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_ge_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x96,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_ge_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x96,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_ge_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x96,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_ge_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x96,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x96,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_ge_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa6,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ge_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa6,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa6,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_ge_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa6,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ge_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa6,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_ge_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa6,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ge_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa6,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_ge_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa6,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ge_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa6,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_ge_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa6,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ge_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa6,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa6,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa6,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_ge_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa6,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_ge_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa6,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_ge_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa6,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ge_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa6,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_ge_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa6,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ge_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa6,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_ge_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa6,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ge_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa6,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_ge_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa6,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_ge_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa6,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa6,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_ge_i16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ge_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb6,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_i16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ge_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb6,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_i16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb6,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_i16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb6,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_i16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb6,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_i16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb6,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_i16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ge_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb6,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_i16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ge_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb6,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_i16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ge_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb6,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_i16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb6,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_i16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb6,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_i16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb6,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_i16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb6,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ge_i16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb6,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ge_i16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xb6,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb6,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_i32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ge_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc6,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_i32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ge_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc6,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_i32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ge_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc6,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_i32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ge_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc6,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_i32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ge_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc6,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_i32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc6,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_i32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ge_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc6,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_i32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ge_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc6,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_i32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ge_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc6,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_i32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ge_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc6,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_i32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ge_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc6,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_i32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc6,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_i32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_ge_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc6,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ge_i32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_ge_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc6,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ge_i32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc6,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc6,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_i64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ge_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd6,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_i64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_ge_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd6,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ge_i64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_ge_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd6,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ge_i64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_ge_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd6,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ge_i64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_ge_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd6,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ge_i64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd6,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_i64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_ge_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd6,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_ge_i64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_ge_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd6,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ge_i64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_ge_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd6,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ge_i64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_ge_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd6,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ge_i64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_ge_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd6,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_ge_i64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd6,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd6,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_u16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ge_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xbe,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_u16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ge_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xbe,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_u16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xbe,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_u16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xbe,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_u16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xbe,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_u16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xbe,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_u16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ge_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xbe,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_u16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ge_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xbe,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_u16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ge_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xbe,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_u16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xbe,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_u16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xbe,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_u16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xbe,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_u16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xbe,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ge_u16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xbe,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ge_u16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xbe,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xbe,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_u32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ge_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xce,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_u32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ge_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xce,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_u32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ge_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xce,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_u32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ge_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xce,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_u32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ge_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xce,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_u32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xce,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_u32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ge_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xce,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_u32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ge_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xce,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_u32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ge_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xce,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_u32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ge_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xce,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_u32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ge_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xce,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_u32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xce,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_u32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_ge_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xce,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ge_u32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_ge_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xce,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ge_u32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xce,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xce,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_u64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ge_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xde,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_u64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_ge_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xde,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ge_u64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_ge_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xde,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ge_u64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_ge_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xde,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ge_u64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_ge_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xde,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ge_u64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xde,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_u64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_ge_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xde,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_ge_u64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_ge_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xde,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ge_u64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_ge_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xde,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ge_u64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_ge_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xde,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ge_u64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_ge_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xde,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_ge_u64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xde,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xde,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_gt_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x84,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_gt_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x84,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x84,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x84,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x84,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x84,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_gt_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x84,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_gt_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x84,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_gt_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x84,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x84,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x84,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x84,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x84,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x84,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_gt_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x84,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_gt_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x84,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_gt_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x84,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_gt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x84,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x84,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_gt_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_gt_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x94,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_gt_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x94,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_gt_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x94,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_gt_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x94,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_gt_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x94,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x94,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_gt_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x94,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_gt_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x94,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_gt_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x94,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x94,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_gt_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x94,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_gt_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x94,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x94,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x94,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_gt_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x94,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_gt_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x94,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_gt_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x94,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_gt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x94,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x94,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_gt_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa4,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_gt_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa4,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa4,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_gt_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa4,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_gt_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa4,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_gt_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa4,0xd4,0x02,0x08,0x00,0x00] v_cmpx_gt_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa4,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_gt_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa4,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_gt_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa4,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_gt_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa4,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_gt_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa4,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa4,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa4,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_gt_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa4,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_gt_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa4,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_gt_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa4,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_gt_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa4,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_gt_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa4,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_gt_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa4,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_gt_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa4,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_gt_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa4,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_gt_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa4,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_gt_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa4,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa4,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_gt_i16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_gt_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb4,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_i16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_gt_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb4,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_i16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb4,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_i16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb4,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_i16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb4,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_i16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb4,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_i16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_gt_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb4,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_i16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_gt_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb4,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_i16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_gt_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb4,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_i16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb4,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_i16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb4,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_i16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb4,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_i16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb4,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_gt_i16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb4,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_gt_i16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xb4,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb4,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_i32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_gt_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc4,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_i32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_gt_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc4,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_i32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_gt_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc4,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_i32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_gt_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc4,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_i32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_gt_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc4,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_i32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc4,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_i32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_gt_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc4,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_i32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_gt_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc4,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_i32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_gt_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc4,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_i32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_gt_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc4,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_i32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_gt_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc4,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_i32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc4,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_i32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_gt_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc4,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_gt_i32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_gt_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc4,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_gt_i32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc4,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc4,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_i64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_gt_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd4,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_i64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_gt_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd4,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_gt_i64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_gt_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd4,0xd4,0x02,0x08,0x00,0x00] v_cmpx_gt_i64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_gt_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd4,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_gt_i64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_gt_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd4,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_gt_i64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd4,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_i64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_gt_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd4,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_gt_i64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_gt_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd4,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_gt_i64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_gt_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd4,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_gt_i64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_gt_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd4,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_gt_i64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_gt_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd4,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_gt_i64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd4,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd4,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_u16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_gt_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xbc,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_u16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_gt_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xbc,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_u16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xbc,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_u16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xbc,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_u16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xbc,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_u16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xbc,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_u16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_gt_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xbc,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_u16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_gt_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xbc,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_u16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_gt_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xbc,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_u16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xbc,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_u16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xbc,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_u16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xbc,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_u16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xbc,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_gt_u16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xbc,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_gt_u16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xbc,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xbc,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_u32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_gt_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xcc,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_u32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_gt_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xcc,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_u32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_gt_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xcc,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_u32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_gt_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xcc,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_u32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_gt_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xcc,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_u32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xcc,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_u32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_gt_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xcc,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_u32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_gt_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xcc,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_u32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_gt_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xcc,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_u32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_gt_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xcc,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_u32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_gt_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xcc,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_u32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xcc,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_u32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_gt_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xcc,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_gt_u32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_gt_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xcc,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_gt_u32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xcc,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xcc,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_u64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_gt_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xdc,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_u64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_gt_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xdc,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_gt_u64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_gt_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xdc,0xd4,0x02,0x08,0x00,0x00] v_cmpx_gt_u64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_gt_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xdc,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_gt_u64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_gt_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xdc,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_gt_u64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xdc,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_u64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_gt_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xdc,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_gt_u64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_gt_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xdc,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_gt_u64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_gt_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xdc,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_gt_u64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_gt_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xdc,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_gt_u64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_gt_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xdc,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_gt_u64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xdc,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xdc,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_le_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x83,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_le_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x83,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_le_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x83,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_le_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x83,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_le_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x83,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x83,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_le_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x83,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_le_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x83,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_le_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x83,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x83,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_le_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x83,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_le_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x83,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x83,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x83,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_le_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x83,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_le_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x83,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_le_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x83,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_le_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x83,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x83,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_le_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_le_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x93,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_le_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x93,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_le_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x93,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_le_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x93,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_le_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x93,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x93,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_le_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x93,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_le_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x93,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_le_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x93,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x93,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_le_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x93,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_le_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x93,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x93,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x93,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_le_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x93,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_le_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x93,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_le_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x93,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_le_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x93,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x93,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_le_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa3,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_le_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa3,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa3,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_le_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa3,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_le_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa3,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_le_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa3,0xd4,0x02,0x08,0x00,0x00] v_cmpx_le_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa3,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_le_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa3,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_le_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa3,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_le_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa3,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_le_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa3,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa3,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa3,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_le_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa3,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_le_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa3,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_le_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa3,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_le_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa3,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_le_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa3,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_le_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa3,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_le_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa3,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_le_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa3,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_le_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa3,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_le_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa3,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa3,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_le_i16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_le_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb3,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_i16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_le_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb3,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_i16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb3,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_i16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb3,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_i16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb3,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_i16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb3,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_i16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_le_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb3,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_i16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_le_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb3,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_i16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_le_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb3,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_i16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb3,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_i16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb3,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_i16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb3,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_i16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb3,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_le_i16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb3,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_le_i16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xb3,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb3,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_i32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_le_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc3,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_i32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_le_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc3,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_i32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_le_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc3,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_i32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_le_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc3,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_i32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_le_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc3,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_i32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc3,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_i32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_le_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc3,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_i32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_le_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc3,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_i32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_le_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc3,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_i32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_le_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc3,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_i32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_le_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc3,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_i32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc3,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_i32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_le_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc3,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_le_i32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_le_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc3,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_le_i32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc3,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc3,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_i64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_le_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd3,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_i64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_le_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd3,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_le_i64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_le_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd3,0xd4,0x02,0x08,0x00,0x00] v_cmpx_le_i64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_le_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd3,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_le_i64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_le_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd3,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_le_i64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd3,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_i64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_le_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd3,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_le_i64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_le_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd3,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_le_i64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_le_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd3,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_le_i64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_le_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd3,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_le_i64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_le_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd3,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_le_i64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd3,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd3,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_u16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_le_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xbb,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_u16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_le_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xbb,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_u16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xbb,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_u16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xbb,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_u16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xbb,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_u16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xbb,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_u16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_le_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xbb,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_u16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_le_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xbb,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_u16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_le_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xbb,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_u16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xbb,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_u16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xbb,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_u16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xbb,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_u16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xbb,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_le_u16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xbb,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_le_u16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xbb,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xbb,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_u32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_le_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xcb,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_u32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_le_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xcb,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_u32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_le_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xcb,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_u32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_le_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xcb,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_u32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_le_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xcb,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_u32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xcb,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_u32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_le_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xcb,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_u32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_le_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xcb,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_u32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_le_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xcb,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_u32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_le_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xcb,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_u32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_le_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xcb,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_u32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xcb,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_u32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_le_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xcb,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_le_u32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_le_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xcb,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_le_u32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xcb,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xcb,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_u64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_le_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xdb,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_u64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_le_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xdb,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_le_u64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_le_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xdb,0xd4,0x02,0x08,0x00,0x00] v_cmpx_le_u64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_le_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xdb,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_le_u64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_le_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xdb,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_le_u64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xdb,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_u64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_le_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xdb,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_le_u64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_le_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xdb,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_le_u64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_le_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xdb,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_le_u64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_le_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xdb,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_le_u64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_le_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xdb,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_le_u64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xdb,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xdb,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lg_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lg_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x85,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lg_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_lg_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x85,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lg_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x85,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lg_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x85,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lg_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x85,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lg_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x85,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lg_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_lg_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x85,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lg_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_lg_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x85,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lg_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_lg_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x85,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lg_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x85,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x85,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lg_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x85,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lg_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x85,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lg_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x85,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_lg_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x85,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_lg_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x85,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_lg_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x85,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_lg_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x85,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x85,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_lg_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lg_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x95,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lg_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_lg_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x95,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lg_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_lg_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x95,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lg_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_lg_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x95,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lg_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_lg_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x95,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lg_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lg_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x95,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lg_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_lg_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x95,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lg_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_lg_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x95,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lg_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_lg_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x95,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lg_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x95,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_lg_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x95,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lg_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_lg_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x95,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lg_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_lg_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x95,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lg_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x95,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_lg_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x95,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_lg_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x95,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_lg_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x95,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_lg_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x95,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lg_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x95,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_lg_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa5,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lg_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa5,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lg_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa5,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_lg_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa5,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_lg_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa5,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_lg_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa5,0xd4,0x02,0x08,0x00,0x00] v_cmpx_lg_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa5,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_lg_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa5,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_lg_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa5,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_lg_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa5,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_lg_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa5,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lg_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa5,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lg_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa5,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_lg_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa5,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_lg_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa5,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_lg_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa5,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_lg_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa5,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_lg_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa5,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_lg_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa5,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_lg_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa5,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_lg_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa5,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_lg_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa5,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_lg_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa5,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lg_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa5,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_lt_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lt_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x81,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_lt_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x81,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x81,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x81,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x81,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x81,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_lt_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x81,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_lt_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x81,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_lt_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x81,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x81,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x81,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x81,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x81,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x81,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_lt_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x81,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_lt_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x81,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_lt_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x81,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_lt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x81,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x81,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_lt_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lt_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x91,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_lt_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x91,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_lt_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x91,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_lt_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x91,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_lt_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x91,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x91,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_lt_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x91,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_lt_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x91,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_lt_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x91,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x91,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_lt_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x91,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_lt_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x91,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x91,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x91,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_lt_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x91,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_lt_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x91,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_lt_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x91,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_lt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x91,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x91,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_lt_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa1,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lt_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa1,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa1,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_lt_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa1,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_lt_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa1,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_lt_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa1,0xd4,0x02,0x08,0x00,0x00] v_cmpx_lt_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa1,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_lt_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa1,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_lt_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa1,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_lt_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa1,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_lt_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa1,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa1,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa1,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_lt_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa1,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_lt_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa1,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_lt_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa1,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_lt_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa1,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_lt_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa1,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_lt_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa1,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_lt_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa1,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_lt_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa1,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_lt_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa1,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_lt_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa1,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa1,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_lt_i16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lt_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb1,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_i16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_lt_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb1,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_i16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb1,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_i16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb1,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_i16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb1,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_i16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb1,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_i16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_lt_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb1,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_i16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_lt_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb1,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_i16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_lt_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb1,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_i16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb1,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_i16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb1,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_i16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb1,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_i16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb1,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_lt_i16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb1,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_lt_i16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xb1,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb1,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_i32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lt_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc1,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_i32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_lt_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc1,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_i32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_lt_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc1,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_i32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_lt_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc1,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_i32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_lt_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc1,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_i32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc1,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_i32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_lt_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc1,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_i32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_lt_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc1,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_i32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_lt_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc1,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_i32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_lt_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc1,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_i32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_lt_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc1,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_i32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc1,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_i32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_lt_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc1,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_lt_i32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_lt_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc1,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_lt_i32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc1,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc1,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_i64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lt_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd1,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_i64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_lt_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd1,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_lt_i64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_lt_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd1,0xd4,0x02,0x08,0x00,0x00] v_cmpx_lt_i64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_lt_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd1,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_lt_i64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_lt_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd1,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_lt_i64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd1,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_i64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_lt_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd1,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_lt_i64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_lt_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd1,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_lt_i64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_lt_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd1,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_lt_i64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_lt_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd1,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_lt_i64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_lt_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd1,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_lt_i64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd1,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd1,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_u16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lt_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb9,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_u16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_lt_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb9,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_u16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb9,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_u16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb9,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_u16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb9,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_u16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb9,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_u16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_lt_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb9,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_u16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_lt_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb9,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_u16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_lt_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb9,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_u16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb9,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_u16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb9,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_u16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb9,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_u16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb9,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_lt_u16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb9,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_lt_u16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xb9,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb9,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_u32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lt_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc9,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_u32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_lt_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc9,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_u32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_lt_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc9,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_u32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_lt_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc9,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_u32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_lt_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc9,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_u32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc9,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_u32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_lt_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc9,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_u32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_lt_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc9,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_u32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_lt_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc9,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_u32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_lt_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc9,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_u32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_lt_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc9,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_u32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc9,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_u32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_lt_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc9,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_lt_u32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_lt_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc9,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_lt_u32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc9,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc9,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_u64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_lt_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd9,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_u64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_lt_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd9,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_lt_u64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_lt_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd9,0xd4,0x02,0x08,0x00,0x00] v_cmpx_lt_u64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_lt_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd9,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_lt_u64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_lt_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd9,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_lt_u64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd9,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_u64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_lt_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd9,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_lt_u64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_lt_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd9,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_lt_u64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_lt_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd9,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_lt_u64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_lt_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xd9,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_lt_u64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_lt_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd9,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_lt_u64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd9,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd9,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_i16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ne_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb5,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_i16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ne_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb5,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ne_i16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb5,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ne_i16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb5,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ne_i16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb5,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ne_i16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb5,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ne_i16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ne_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb5,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ne_i16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ne_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb5,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ne_i16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ne_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb5,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ne_i16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb5,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ne_i16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb5,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ne_i16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb5,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ne_i16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb5,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ne_i16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb5,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ne_i16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xb5,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb5,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ne_i32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ne_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc5,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_i32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ne_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc5,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ne_i32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ne_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc5,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ne_i32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ne_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc5,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ne_i32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ne_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc5,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ne_i32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc5,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_i32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ne_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc5,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ne_i32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ne_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc5,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ne_i32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ne_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc5,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ne_i32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ne_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc5,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ne_i32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ne_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc5,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ne_i32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc5,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ne_i32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_ne_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc5,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ne_i32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_ne_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc5,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ne_i32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc5,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc5,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_i64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ne_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd5,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_i64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_ne_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd5,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ne_i64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_ne_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd5,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ne_i64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_ne_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd5,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ne_i64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_ne_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd5,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ne_i64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd5,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_i64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_ne_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd5,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_ne_i64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_ne_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd5,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ne_i64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_ne_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd5,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ne_i64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_ne_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd5,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ne_i64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_ne_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd5,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_ne_i64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd5,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd5,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_u16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ne_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xbd,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_u16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ne_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xbd,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ne_u16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xbd,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ne_u16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xbd,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ne_u16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xbd,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ne_u16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xbd,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ne_u16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ne_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xbd,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ne_u16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ne_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xbd,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ne_u16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ne_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xbd,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ne_u16_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xbd,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ne_u16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xbd,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ne_u16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xbd,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ne_u16_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xbd,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ne_u16_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xbd,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ne_u16_e64 0xfe0b, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xbd,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xbd,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ne_u32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ne_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xcd,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_u32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ne_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xcd,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ne_u32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ne_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xcd,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ne_u32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ne_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xcd,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ne_u32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ne_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xcd,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ne_u32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xcd,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_u32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ne_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xcd,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ne_u32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ne_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xcd,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ne_u32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ne_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xcd,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ne_u32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ne_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xcd,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ne_u32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ne_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xcd,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ne_u32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xcd,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ne_u32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_ne_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xcd,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ne_u32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_ne_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xcd,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ne_u32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xcd,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xcd,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_u64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ne_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xdd,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_u64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_ne_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xdd,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ne_u64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_ne_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xdd,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ne_u64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_ne_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xdd,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ne_u64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_ne_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xdd,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ne_u64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xdd,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_u64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_ne_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xdd,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_ne_u64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_ne_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xdd,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ne_u64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_ne_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xdd,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ne_u64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_ne_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xdd,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ne_u64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_ne_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xdd,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_ne_u64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xdd,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xdd,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_neq_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_neq_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8d,0xd4,0x01,0x05,0x02,0x00] v_cmpx_neq_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_neq_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8d,0xd4,0xff,0xff,0x03,0x00] v_cmpx_neq_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8d,0xd4,0x01,0x04,0x00,0x00] v_cmpx_neq_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8d,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_neq_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8d,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_neq_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_neq_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_neq_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8d,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_neq_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_neq_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8d,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_neq_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_neq_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8d,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_neq_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x8d,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8d,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_neq_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8d,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_neq_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8d,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_neq_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x8d,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_neq_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8d,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_neq_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x8d,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_neq_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8d,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_neq_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x8d,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8d,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_neq_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_neq_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9d,0xd4,0x01,0x05,0x02,0x00] v_cmpx_neq_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_neq_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9d,0xd4,0xff,0xff,0x03,0x00] v_cmpx_neq_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_neq_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9d,0xd4,0x01,0x04,0x00,0x00] v_cmpx_neq_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_neq_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9d,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_neq_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_neq_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9d,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_neq_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_neq_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_neq_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_neq_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9d,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_neq_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_neq_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9d,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_neq_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_neq_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9d,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_neq_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x9d,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_neq_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9d,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_neq_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_neq_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9d,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_neq_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_neq_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9d,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_neq_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x9d,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_neq_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9d,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_neq_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x9d,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_neq_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9d,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_neq_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x9d,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_neq_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9d,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_neq_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xad,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_neq_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xad,0xd4,0x01,0x05,0x02,0x00] v_cmpx_neq_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xad,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_neq_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xad,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_neq_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xad,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_neq_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xad,0xd4,0x02,0x08,0x00,0x00] v_cmpx_neq_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xad,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_neq_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xad,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_neq_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xad,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_neq_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xad,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_neq_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xad,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_neq_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xad,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_neq_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xad,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_neq_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xad,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_neq_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xad,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_neq_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xad,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_neq_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xad,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_neq_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xad,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_neq_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xad,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_neq_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xad,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_neq_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xad,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_neq_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xad,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_neq_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xad,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_neq_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xad,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_nge_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nge_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x89,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nge_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_nge_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x89,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nge_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x89,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nge_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x89,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nge_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x89,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nge_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x89,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_nge_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_nge_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x89,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nge_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_nge_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x89,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nge_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_nge_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x89,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nge_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x89,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x89,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nge_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x89,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nge_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x89,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nge_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x89,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_nge_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x89,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nge_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x89,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_nge_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x89,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nge_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x89,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x89,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_nge_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nge_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x99,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nge_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_nge_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x99,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nge_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_nge_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x99,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nge_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_nge_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x99,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nge_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_nge_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x99,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nge_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nge_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x99,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nge_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_nge_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x99,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nge_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_nge_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x99,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nge_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_nge_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x99,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nge_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x99,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_nge_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x99,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nge_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_nge_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x99,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nge_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_nge_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x99,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nge_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x99,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_nge_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x99,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nge_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x99,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_nge_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x99,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nge_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x99,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nge_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x99,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_nge_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa9,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nge_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa9,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nge_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa9,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_nge_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa9,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_nge_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa9,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_nge_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa9,0xd4,0x02,0x08,0x00,0x00] v_cmpx_nge_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa9,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_nge_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa9,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_nge_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa9,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_nge_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa9,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_nge_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa9,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nge_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa9,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nge_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa9,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_nge_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa9,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_nge_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa9,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_nge_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa9,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_nge_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa9,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_nge_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa9,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_nge_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa9,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_nge_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa9,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_nge_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa9,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_nge_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa9,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_nge_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa9,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nge_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa9,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ngt_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8b,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ngt_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ngt_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8b,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ngt_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8b,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ngt_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8b,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ngt_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8b,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ngt_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ngt_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ngt_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8b,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ngt_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ngt_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8b,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ngt_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ngt_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8b,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ngt_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x8b,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8b,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ngt_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8b,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ngt_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8b,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ngt_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x8b,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_ngt_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8b,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_ngt_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x8b,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_ngt_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8b,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_ngt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x8b,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8b,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_ngt_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ngt_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9b,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ngt_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_ngt_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9b,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ngt_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_ngt_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9b,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ngt_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_ngt_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9b,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ngt_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_ngt_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9b,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ngt_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ngt_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_ngt_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9b,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ngt_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_ngt_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9b,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ngt_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_ngt_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9b,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ngt_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x9b,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_ngt_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9b,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ngt_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_ngt_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9b,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ngt_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_ngt_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9b,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ngt_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x9b,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_ngt_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9b,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_ngt_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x9b,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_ngt_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9b,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_ngt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x9b,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ngt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9b,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xab,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_ngt_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xab,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ngt_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xab,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_ngt_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xab,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ngt_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xab,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_ngt_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xab,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ngt_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xab,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_ngt_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xab,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ngt_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xab,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_ngt_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xab,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ngt_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xab,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ngt_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xab,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xab,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_ngt_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xab,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_ngt_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xab,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_ngt_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xab,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ngt_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xab,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_ngt_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xab,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ngt_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xab,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_ngt_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xab,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ngt_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xab,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_ngt_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xab,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_ngt_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xab,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ngt_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xab,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_nle_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nle_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8c,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nle_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_nle_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8c,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nle_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8c,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nle_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8c,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nle_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8c,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nle_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_nle_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_nle_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8c,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nle_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_nle_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8c,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nle_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_nle_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8c,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nle_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x8c,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8c,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nle_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8c,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nle_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8c,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nle_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x8c,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_nle_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8c,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nle_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x8c,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_nle_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8c,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nle_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x8c,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8c,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_nle_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nle_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9c,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nle_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_nle_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9c,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nle_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_nle_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9c,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nle_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_nle_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9c,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nle_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_nle_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9c,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nle_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nle_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nle_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_nle_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9c,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nle_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_nle_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9c,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nle_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_nle_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9c,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nle_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x9c,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_nle_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9c,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nle_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_nle_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9c,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nle_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_nle_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9c,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nle_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x9c,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_nle_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9c,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nle_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x9c,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_nle_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9c,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nle_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x9c,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nle_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9c,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_nle_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xac,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nle_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xac,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nle_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xac,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_nle_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xac,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_nle_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xac,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_nle_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xac,0xd4,0x02,0x08,0x00,0x00] v_cmpx_nle_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xac,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_nle_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xac,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_nle_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xac,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_nle_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xac,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_nle_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xac,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nle_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xac,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nle_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xac,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_nle_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xac,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_nle_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xac,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_nle_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xac,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_nle_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xac,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_nle_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xac,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_nle_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xac,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_nle_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xac,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_nle_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xac,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_nle_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xac,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_nle_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xac,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nle_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xac,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nlg_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8a,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlg_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_nlg_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8a,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nlg_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8a,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nlg_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8a,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nlg_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8a,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nlg_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_nlg_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_nlg_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8a,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nlg_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_nlg_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8a,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nlg_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_nlg_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8a,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nlg_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x8a,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8a,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nlg_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8a,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nlg_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8a,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nlg_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x8a,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_nlg_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8a,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nlg_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x8a,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_nlg_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8a,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nlg_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x8a,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8a,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_nlg_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nlg_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9a,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlg_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_nlg_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9a,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nlg_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_nlg_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9a,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nlg_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_nlg_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9a,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nlg_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_nlg_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9a,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nlg_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlg_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_nlg_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9a,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nlg_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_nlg_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9a,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nlg_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_nlg_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9a,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nlg_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x9a,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_nlg_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9a,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nlg_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_nlg_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9a,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nlg_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlg_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9a,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nlg_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x9a,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_nlg_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9a,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nlg_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x9a,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_nlg_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9a,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nlg_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x9a,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlg_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9a,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xaa,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nlg_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xaa,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlg_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xaa,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_nlg_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xaa,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_nlg_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xaa,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_nlg_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xaa,0xd4,0x02,0x08,0x00,0x00] v_cmpx_nlg_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xaa,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_nlg_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xaa,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_nlg_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xaa,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_nlg_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xaa,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_nlg_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xaa,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlg_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xaa,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xaa,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_nlg_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xaa,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_nlg_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xaa,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_nlg_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xaa,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_nlg_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xaa,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_nlg_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xaa,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_nlg_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xaa,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_nlg_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xaa,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_nlg_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xaa,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_nlg_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xaa,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_nlg_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xaa,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlg_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xaa,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nlt_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8e,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlt_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_nlt_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8e,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nlt_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8e,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nlt_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8e,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nlt_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8e,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nlt_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_nlt_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_nlt_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8e,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nlt_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_nlt_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8e,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nlt_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_nlt_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8e,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nlt_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x8e,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8e,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nlt_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8e,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nlt_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8e,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nlt_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x8e,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_nlt_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8e,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nlt_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x8e,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_nlt_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8e,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nlt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x8e,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8e,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_nlt_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nlt_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9e,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlt_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_nlt_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9e,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nlt_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_nlt_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9e,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nlt_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_nlt_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9e,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nlt_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_nlt_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9e,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nlt_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlt_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_nlt_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9e,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nlt_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_nlt_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9e,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nlt_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_nlt_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9e,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nlt_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x9e,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_nlt_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9e,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nlt_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_nlt_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9e,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nlt_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlt_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9e,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nlt_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x9e,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_nlt_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9e,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nlt_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x9e,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_nlt_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9e,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nlt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x9e,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9e,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xae,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_nlt_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xae,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlt_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xae,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_nlt_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xae,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_nlt_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xae,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_nlt_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xae,0xd4,0x02,0x08,0x00,0x00] v_cmpx_nlt_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xae,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_nlt_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xae,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_nlt_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xae,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_nlt_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xae,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_nlt_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xae,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlt_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xae,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xae,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_nlt_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xae,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_nlt_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xae,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_nlt_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xae,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_nlt_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xae,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_nlt_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xae,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_nlt_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xae,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_nlt_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xae,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_nlt_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xae,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_nlt_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xae,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_nlt_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xae,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlt_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xae,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_o_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_o_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x87,0xd4,0x01,0x05,0x02,0x00] v_cmpx_o_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_o_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x87,0xd4,0xff,0xff,0x03,0x00] v_cmpx_o_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_o_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x87,0xd4,0x01,0x04,0x00,0x00] v_cmpx_o_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_o_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x87,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_o_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_o_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x87,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_o_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_o_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x87,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_o_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_o_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x87,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_o_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_o_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x87,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_o_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_o_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x87,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_o_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x87,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_o_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x87,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_o_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_o_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x87,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_o_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_o_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x87,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_o_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x87,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_o_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x87,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_o_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x87,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_o_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x87,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_o_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x87,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_o_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x87,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_o_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_o_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x97,0xd4,0x01,0x05,0x02,0x00] v_cmpx_o_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_o_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x97,0xd4,0xff,0xff,0x03,0x00] v_cmpx_o_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_o_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x97,0xd4,0x01,0x04,0x00,0x00] v_cmpx_o_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_o_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x97,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_o_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_o_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x97,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_o_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_o_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x97,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_o_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_o_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x97,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_o_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_o_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x97,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_o_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_o_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x97,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_o_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x97,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_o_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x97,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_o_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_o_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x97,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_o_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_o_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x97,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_o_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x97,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_o_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x97,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_o_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x97,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_o_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x97,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_o_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x97,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_o_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x97,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_o_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa7,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_o_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa7,0xd4,0x01,0x05,0x02,0x00] v_cmpx_o_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa7,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_o_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa7,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_o_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa7,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_o_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa7,0xd4,0x02,0x08,0x00,0x00] v_cmpx_o_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa7,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_o_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa7,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_o_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa7,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_o_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa7,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_o_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa7,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_o_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa7,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_o_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa7,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_o_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa7,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_o_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa7,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_o_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa7,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_o_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa7,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_o_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa7,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_o_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa7,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_o_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa7,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_o_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa7,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_o_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa7,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_o_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa7,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_o_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa7,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_t_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8f,0xd4,0x01,0x05,0x02,0x00] v_cmpx_t_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_t_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8f,0xd4,0xff,0xff,0x03,0x00] v_cmpx_t_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8f,0xd4,0x01,0x04,0x00,0x00] v_cmpx_t_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8f,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_t_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8f,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_t_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_t_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_t_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8f,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_t_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8f,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_t_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_t_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8f,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_t_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x8f,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8f,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_t_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8f,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_t_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8f,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_t_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_t_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8f,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_t_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x8f,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_t_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8f,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_t_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x8f,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8f,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_t_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9f,0xd4,0x01,0x05,0x02,0x00] v_cmpx_t_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_t_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9f,0xd4,0xff,0xff,0x03,0x00] v_cmpx_t_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9f,0xd4,0x01,0x04,0x00,0x00] v_cmpx_t_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9f,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_t_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9f,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_t_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_t_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_t_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9f,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_t_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9f,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_t_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_t_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9f,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_t_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x9f,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9f,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_t_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9f,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_t_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9f,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_t_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_t_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9f,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_t_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x9f,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_t_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9f,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_t_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x9f,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9f,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_t_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xaf,0xd4,0x01,0x05,0x02,0x00] v_cmpx_t_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_t_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xaf,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_t_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_t_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xaf,0xd4,0x02,0x08,0x00,0x00] v_cmpx_t_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_t_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xaf,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_t_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_t_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xaf,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_t_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xaf,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_t_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xaf,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_t_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xaf,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_t_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xaf,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_t_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_t_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xaf,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_t_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xaf,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_t_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xaf,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_t_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xaf,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_t_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xaf,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xaf,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_t_i32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc7,0xd4,0x01,0x05,0x02,0x00] v_cmpx_t_i32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_t_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc7,0xd4,0xff,0xff,0x03,0x00] v_cmpx_t_i32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_t_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc7,0xd4,0x01,0x04,0x00,0x00] v_cmpx_t_i32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_t_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc7,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_t_i32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_t_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc7,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_t_i32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc7,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_t_i32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_t_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc7,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_t_i32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc7,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_t_i32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_t_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc7,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_t_i32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc7,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_t_i32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_t_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc7,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_t_i32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc7,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_t_i32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_t_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc7,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_t_i32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_t_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc7,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_t_i32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xc7,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc7,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_t_i64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd7,0xd4,0x01,0x05,0x02,0x00] v_cmpx_t_i64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_t_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd7,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_t_i64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_t_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd7,0xd4,0x02,0x08,0x00,0x00] v_cmpx_t_i64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_t_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd7,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_t_i64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_t_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd7,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_t_i64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd7,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_t_i64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_t_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd7,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_t_i64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd7,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_t_i64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_t_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd7,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_t_i64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd7,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_t_i64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_t_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd7,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_t_i64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xd7,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd7,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_t_u32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xcf,0xd4,0x01,0x05,0x02,0x00] v_cmpx_t_u32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_t_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xcf,0xd4,0xff,0xff,0x03,0x00] v_cmpx_t_u32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_t_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xcf,0xd4,0x01,0x04,0x00,0x00] v_cmpx_t_u32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_t_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xcf,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_t_u32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_t_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xcf,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_t_u32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xcf,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_t_u32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_t_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xcf,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_t_u32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xcf,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_t_u32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_t_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xcf,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_t_u32_e64 exec_hi, null -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xcf,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_t_u32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_t_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xcf,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_t_u32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xcf,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_t_u32_e64 0.5, m0 -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0xf0,0xfa,0x00,0x00] +// GFX11: v_cmpx_t_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xcf,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_t_u32_e64 src_scc, vcc_lo -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0xfd,0xd4,0x00,0x00] +// GFX11: v_cmpx_t_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xcf,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_t_u32_e64 0xaf123456, vcc_hi -// GFX11: encoding: [0x7e,0x00,0xcf,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xcf,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_t_u64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xdf,0xd4,0x01,0x05,0x02,0x00] v_cmpx_t_u64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_t_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xdf,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_t_u64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_t_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xdf,0xd4,0x02,0x08,0x00,0x00] v_cmpx_t_u64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_t_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xdf,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_t_u64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_t_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xdf,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_t_u64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xdf,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_t_u64_e64 exec, src_scc -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0x7e,0xfa,0x01,0x00] +// GFX11: v_cmpx_t_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xdf,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_t_u64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xdf,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_t_u64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_t_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xdf,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_t_u64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xdf,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_t_u64_e64 src_scc, exec -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0xfd,0xfc,0x00,0x00] +// GFX11: v_cmpx_t_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xdf,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_t_u64_e64 0xaf123456, vcc -// GFX11: encoding: [0x7e,0x00,0xdf,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xdf,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_tru_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8f,0xd4,0x01,0x05,0x02,0x00] v_cmpx_tru_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_t_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8f,0xd4,0xff,0xff,0x03,0x00] v_cmpx_tru_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8f,0xd4,0x01,0x04,0x00,0x00] v_cmpx_tru_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8f,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_tru_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8f,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_tru_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8f,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_tru_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_t_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8f,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_tru_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8f,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_tru_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_t_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8f,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_tru_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x8f,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8f,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_tru_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8f,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_tru_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8f,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_tru_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x8f,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_t_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8f,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_tru_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x8f,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_t_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8f,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_tru_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x8f,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8f,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_tru_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9f,0xd4,0x01,0x05,0x02,0x00] v_cmpx_tru_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_t_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9f,0xd4,0xff,0xff,0x03,0x00] v_cmpx_tru_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9f,0xd4,0x01,0x04,0x00,0x00] v_cmpx_tru_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9f,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_tru_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9f,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_tru_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9f,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_tru_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_t_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9f,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_tru_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9f,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_tru_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_t_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9f,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_tru_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x9f,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9f,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_tru_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9f,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_tru_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9f,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_tru_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x9f,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_t_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9f,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_tru_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x9f,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_t_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9f,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_tru_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x9f,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9f,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_tru_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_t_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xaf,0xd4,0x01,0x05,0x02,0x00] v_cmpx_tru_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_t_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xaf,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_tru_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_t_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xaf,0xd4,0x02,0x08,0x00,0x00] v_cmpx_tru_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_t_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xaf,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_tru_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_t_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xaf,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_tru_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xaf,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_tru_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xaf,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_t_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xaf,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_tru_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_t_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xaf,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_tru_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_t_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xaf,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_tru_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xaf,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_t_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xaf,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_tru_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xaf,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_t_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xaf,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_tru_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xaf,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xaf,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_u_f16_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_u_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x88,0xd4,0x01,0x05,0x02,0x00] v_cmpx_u_f16_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_u_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x88,0xd4,0xff,0xff,0x03,0x00] v_cmpx_u_f16_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_u_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x88,0xd4,0x01,0x04,0x00,0x00] v_cmpx_u_f16_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_u_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x88,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_u_f16_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_u_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x88,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_u_f16_e64 vcc_hi, 0xfe0b -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_u_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x88,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_u_f16_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_u_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x88,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_u_f16_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_u_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x88,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_u_f16_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_u_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x88,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_u_f16_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x88,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_u_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x88,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_u_f16_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_u_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x88,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_u_f16_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_u_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x88,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_u_f16_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x88,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_u_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x88,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_u_f16_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x88,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_u_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x88,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_u_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x88,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_u_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x88,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_u_f32_e64 v1, v2 -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_u_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x98,0xd4,0x01,0x05,0x02,0x00] v_cmpx_u_f32_e64 v255, v255 -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0xff,0xff,0x03,0x00] +// GFX11: v_cmpx_u_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x98,0xd4,0xff,0xff,0x03,0x00] v_cmpx_u_f32_e64 s1, s2 -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0x01,0x04,0x00,0x00] +// GFX11: v_cmpx_u_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x98,0xd4,0x01,0x04,0x00,0x00] v_cmpx_u_f32_e64 s105, s105 -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0x69,0xd2,0x00,0x00] +// GFX11: v_cmpx_u_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x98,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_u_f32_e64 vcc_lo, ttmp15 -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0x6a,0xf6,0x00,0x00] +// GFX11: v_cmpx_u_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x98,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_u_f32_e64 vcc_hi, 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_u_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x98,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_u_f32_e64 ttmp15, src_scc -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0x7b,0xfa,0x01,0x00] +// GFX11: v_cmpx_u_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x98,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_u_f32_e64 m0, 0.5 -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0x7d,0xe0,0x01,0x00] +// GFX11: v_cmpx_u_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x98,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_u_f32_e64 exec_lo, -1 -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0x7e,0x82,0x01,0x00] +// GFX11: v_cmpx_u_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x98,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_u_f32_e64 |exec_hi|, null -// GFX11: encoding: [0x7e,0x01,0x98,0xd4,0x7f,0xf8,0x00,0x00] +// GFX11: v_cmpx_u_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x98,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_u_f32_e64 null, exec_lo -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0x7c,0xfc,0x00,0x00] +// GFX11: v_cmpx_u_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x98,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_u_f32_e64 -1, exec_hi -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0xc1,0xfe,0x00,0x00] +// GFX11: v_cmpx_u_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x98,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_u_f32_e64 0.5, -m0 -// GFX11: encoding: [0x7e,0x00,0x98,0xd4,0xf0,0xfa,0x00,0x40] +// GFX11: v_cmpx_u_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x98,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_u_f32_e64 -src_scc, |vcc_lo| -// GFX11: encoding: [0x7e,0x02,0x98,0xd4,0xfd,0xd4,0x00,0x20] +// GFX11: v_cmpx_u_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x98,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_u_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX11: encoding: [0x7e,0x83,0x98,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_u_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x98,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_u_f64_e64 v[1:2], v[2:3] -// GFX11: encoding: [0x7e,0x00,0xa8,0xd4,0x01,0x05,0x02,0x00] +// GFX11: v_cmpx_u_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa8,0xd4,0x01,0x05,0x02,0x00] v_cmpx_u_f64_e64 v[254:255], v[254:255] -// GFX11: encoding: [0x7e,0x00,0xa8,0xd4,0xfe,0xfd,0x03,0x00] +// GFX11: v_cmpx_u_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa8,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_u_f64_e64 s[2:3], s[4:5] -// GFX11: encoding: [0x7e,0x00,0xa8,0xd4,0x02,0x08,0x00,0x00] +// GFX11: v_cmpx_u_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa8,0xd4,0x02,0x08,0x00,0x00] v_cmpx_u_f64_e64 s[104:105], s[104:105] -// GFX11: encoding: [0x7e,0x00,0xa8,0xd4,0x68,0xd0,0x00,0x00] +// GFX11: v_cmpx_u_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa8,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_u_f64_e64 vcc, ttmp[14:15] -// GFX11: encoding: [0x7e,0x00,0xa8,0xd4,0x6a,0xf4,0x00,0x00] +// GFX11: v_cmpx_u_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa8,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_u_f64_e64 ttmp[14:15], 0xaf123456 -// GFX11: encoding: [0x7e,0x00,0xa8,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_u_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa8,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_u_f64_e64 -|exec|, src_scc -// GFX11: encoding: [0x7e,0x01,0xa8,0xd4,0x7e,0xfa,0x01,0x20] +// GFX11: v_cmpx_u_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa8,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_u_f64_e64 null, 0.5 -// GFX11: encoding: [0x7e,0x00,0xa8,0xd4,0x7c,0xe0,0x01,0x00] +// GFX11: v_cmpx_u_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa8,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_u_f64_e64 -1, -1 -// GFX11: encoding: [0x7e,0x00,0xa8,0xd4,0xc1,0x82,0x01,0x00] +// GFX11: v_cmpx_u_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa8,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_u_f64_e64 0.5, null -// GFX11: encoding: [0x7e,0x00,0xa8,0xd4,0xf0,0xf8,0x00,0x00] +// GFX11: v_cmpx_u_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa8,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_u_f64_e64 -|src_scc|, -|exec| -// GFX11: encoding: [0x7e,0x03,0xa8,0xd4,0xfd,0xfc,0x00,0x60] +// GFX11: v_cmpx_u_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa8,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_u_f64_e64 0xaf123456, -|vcc| clamp -// GFX11: encoding: [0x7e,0x82,0xa8,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_u_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa8,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vopc.s b/llvm/test/MC/AMDGPU/gfx11_asm_vopc.s index 05ed37c612ba3..a8d28b36c5acf 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vopc.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vopc.s @@ -1,10948 +1,10949 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefix=W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefix=W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_e32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0xfd,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xfd,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0xfd,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xfd,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, v[1:2], v2 -// W32: encoding: [0x01,0x05,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, v[1:2], v2 ; encoding: [0x01,0x05,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, v[254:255], v2 -// W32: encoding: [0xfe,0x05,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, v[254:255], v2 ; encoding: [0xfe,0x05,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, s[2:3], v2 -// W32: encoding: [0x02,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, s[2:3], v2 ; encoding: [0x02,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, s[104:105], v2 -// W32: encoding: [0x68,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, s[104:105], v2 ; encoding: [0x68,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, vcc, v2 -// W32: encoding: [0x6a,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, vcc, v2 ; encoding: [0x6a,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, ttmp[14:15], v2 -// W32: encoding: [0x7a,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, ttmp[14:15], v2 ; encoding: [0x7a,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, exec, v2 -// W32: encoding: [0x7e,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, exec, v2 ; encoding: [0x7e,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0xff,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, v[1:2], v2 -// W64: encoding: [0x01,0x05,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, v[1:2], v2 ; encoding: [0x01,0x05,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, v[254:255], v2 -// W64: encoding: [0xfe,0x05,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, v[254:255], v2 ; encoding: [0xfe,0x05,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, s[2:3], v2 -// W64: encoding: [0x02,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, s[2:3], v2 ; encoding: [0x02,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, s[104:105], v2 -// W64: encoding: [0x68,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, s[104:105], v2 ; encoding: [0x68,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, vcc, v2 -// W64: encoding: [0x6a,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, vcc, v2 ; encoding: [0x6a,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, ttmp[14:15], v2 -// W64: encoding: [0x7a,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, ttmp[14:15], v2 ; encoding: [0x7a,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, exec, v2 -// W64: encoding: [0x7e,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, exec, v2 ; encoding: [0x7e,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0xff,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x04,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x04,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x04,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x04,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x25,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x25,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x25,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x25,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x45,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x45,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x45,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x45,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x64,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x64,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x64,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x64,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x85,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x85,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x85,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x85,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xa5,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa5,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xa5,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa5,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x74,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x74,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x74,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x74,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x95,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x95,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x95,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x95,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xb5,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb5,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xb5,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb5,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x00,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x00,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x00,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x00,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x00,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x00,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x00,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x00,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x20,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x20,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x21,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x21,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x20,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x20,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x21,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x21,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x40,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x40,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x41,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x41,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x40,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x40,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x41,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x41,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x80,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x80,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x81,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x81,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x80,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x80,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x81,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x81,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xa0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xa1,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa1,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xa0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xa1,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa1,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x90,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x90,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x91,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x91,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x90,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x90,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x91,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x91,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xb0,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb0,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xb1,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb1,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xb0,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb0,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xb1,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb1,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x0c,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0c,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x0c,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0c,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x2d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x2d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x4d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x4d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x6c,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6c,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x6c,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6c,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x8d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x8d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xad,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xad,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xad,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xad,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x7c,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7c,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x7c,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7c,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x9d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x9d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xbd,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbd,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xbd,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbd,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x08,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x08,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x08,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x08,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x29,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x29,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x29,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x29,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x49,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x49,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x49,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x49,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x68,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x68,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x68,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x68,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x89,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x89,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x89,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x89,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xa9,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa9,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xa9,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa9,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x78,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x78,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x78,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x78,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x99,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x99,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x99,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x99,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xb9,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb9,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xb9,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb9,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x06,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x06,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x06,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x06,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x27,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x27,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x27,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x27,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x47,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x47,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x47,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x47,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x66,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x66,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x66,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x66,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x87,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x87,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x87,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x87,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xa7,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa7,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xa7,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa7,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x76,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x76,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x76,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x76,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x97,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x97,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x97,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x97,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xb7,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb7,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xb7,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb7,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x0a,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0a,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x0a,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0a,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x2b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x2b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x4b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x4b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x02,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x02,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x02,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x02,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x23,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x23,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x23,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x23,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x43,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x43,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x43,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x43,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x62,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x62,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x62,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x62,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x83,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x83,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x83,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x83,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xa3,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa3,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xa3,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa3,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x72,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x72,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x72,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x72,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x93,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x93,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x93,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x93,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xb3,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb3,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xb3,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb3,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x6a,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6a,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x6a,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6a,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x8b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x8b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xab,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xab,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xab,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xab,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x7a,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7a,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x7a,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7a,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x9b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x9b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xbb,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbb,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xbb,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbb,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x1a,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1a,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x1a,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1a,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x3b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x3b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x5b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x5b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x12,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x12,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x12,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x12,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x33,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x33,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x33,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x33,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x53,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x53,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x53,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x53,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x16,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x16,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x16,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x16,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x37,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x37,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x37,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x37,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x57,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x57,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x57,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x57,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x18,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x18,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x18,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x18,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x39,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x39,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x39,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x39,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x59,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x59,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x59,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x59,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x14,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x14,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x14,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x14,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x35,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x35,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x35,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x35,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x55,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x55,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x55,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x55,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x1c,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1c,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x1c,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1c,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x3d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x3d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x5d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x5d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x0e,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0e,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x0e,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0e,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x2f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x2f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x4f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x4f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x1e,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1e,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x1e,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1e,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x3f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x3f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x5f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x5f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x8e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x8e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x8f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x8e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x8e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x8f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xae,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xae,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xaf,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xaf,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xae,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xae,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xaf,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xaf,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x9e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x9e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x9f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x9e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x9e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x9f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xbe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xbe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xbf,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbf,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xbe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xbe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xbf,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbf,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x1e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x1e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x1e,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1e,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x1e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x1e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x1e,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1e,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x3e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x3e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x3f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x3e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x3e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x3f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x5e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x5f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x5e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x5f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x10,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x10,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x10,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x10,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x31,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x31,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x31,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x31,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x51,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x51,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x51,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x51,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp16.s b/llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp16.s index bc77f0c1967d0..ac94795ff95ae 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp16.s @@ -1,7172 +1,7173 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefix=W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefix=W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_dpp vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xfa,0x7c,0x7f,0x6f,0x35,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfa,0x7c,0x7f,0x6f,0x35,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xfa,0x7c,0x7f,0x6f,0x35,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfa,0x7c,0x7f,0x6f,0x35,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xfd,0x7c,0xff,0x6f,0x35,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfd,0x7c,0xff,0x6f,0x35,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xfd,0x7c,0xff,0x6f,0x35,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfd,0x7c,0xff,0x6f,0x35,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x04,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x04,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x04,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x04,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x25,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x25,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x25,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x25,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x64,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x64,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x64,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x64,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x85,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x85,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x85,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x85,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x74,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x74,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x74,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x74,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x95,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x95,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x95,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x95,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x00,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x00,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x00,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x00,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x00,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x00,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x21,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x21,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x20,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x20,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x21,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x21,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x81,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x81,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x80,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x80,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x81,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x81,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x91,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x91,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x90,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x90,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x91,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x91,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x0c,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0c,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x0c,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0c,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x2d,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2d,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x2d,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2d,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x6c,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6c,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x6c,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6c,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x8d,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8d,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x8d,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8d,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x7c,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7c,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x7c,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7c,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x9d,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9d,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x9d,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9d,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x08,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x08,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x08,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x08,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x29,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x29,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x29,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x29,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x68,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x68,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x68,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x68,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x89,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x89,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x89,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x89,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x78,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x78,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x78,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x78,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x99,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x99,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x99,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x99,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x06,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x06,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x06,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x06,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x27,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x27,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x27,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x27,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x66,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x66,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x66,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x66,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x87,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x87,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x87,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x87,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x76,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x76,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x76,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x76,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x97,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x97,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x97,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x97,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x0a,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0a,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x0a,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0a,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x2b,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2b,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x2b,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2b,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x02,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x02,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x02,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x02,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x23,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x23,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x23,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x23,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x62,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x62,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x62,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x62,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x83,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x83,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x83,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x83,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x72,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x72,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x72,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x72,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x93,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x93,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x93,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x93,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x6a,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6a,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x6a,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6a,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x8b,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8b,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x8b,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8b,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x7a,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7a,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x7a,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7a,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x9b,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9b,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x9b,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9b,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x1a,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1a,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x1a,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1a,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x3b,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3b,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x3b,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3b,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x12,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x12,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x12,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x12,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x33,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x33,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x33,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x33,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x16,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x16,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x16,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x16,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x37,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x37,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x37,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x37,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x18,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x18,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x18,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x18,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x39,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x39,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x39,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x39,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x14,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x14,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x14,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x14,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x35,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x35,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x35,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x35,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x1c,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1c,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x1c,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1c,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x3d,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3d,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x3d,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3d,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x0e,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0e,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x0e,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0e,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x2f,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2f,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x2f,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2f,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x1e,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1e,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x1e,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1e,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x3f,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3f,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x3f,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3f,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x8f,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8f,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x8f,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8f,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x9f,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9f,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x9f,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9f,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x1e,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1e,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x1e,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1e,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x3f,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3f,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x3f,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3f,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x10,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x10,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x10,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x10,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x31,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x31,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x31,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x31,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp8.s b/llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp8.s index 1c333a0c90917..4e97456258351 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vopc_dpp8.s @@ -1,1540 +1,1541 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefix=W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefix=W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xfa,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfa,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xfa,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfa,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xfd,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfd,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xfd,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfd,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x04,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x04,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x04,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x04,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x25,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x25,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x25,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x25,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x64,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x64,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x64,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x64,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x85,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x85,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x85,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x85,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x74,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x74,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x74,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x74,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x95,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x95,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x95,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x95,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x00,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x00,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x00,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x00,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x00,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x00,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x00,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x00,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x00,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x00,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x00,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x00,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x20,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x20,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x20,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x20,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x21,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x21,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x20,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x20,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x20,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x20,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x21,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x21,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x80,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x80,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x80,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x80,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x81,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x81,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x80,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x80,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x80,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x80,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x81,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x81,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x90,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x90,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x90,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x90,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x91,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_f_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x91,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x90,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x90,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x90,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x90,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_f_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x91,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_f_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x91,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x0c,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0c,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x0c,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0c,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x2d,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2d,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x2d,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2d,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x6c,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6c,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x6c,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6c,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x8d,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8d,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x8d,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8d,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x7c,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7c,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x7c,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7c,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x9d,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9d,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x9d,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9d,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x08,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x08,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x08,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x08,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x29,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x29,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x29,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x29,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x68,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x68,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x68,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x68,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x89,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x89,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x89,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x89,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x78,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x78,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x78,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x78,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x99,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x99,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x99,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x99,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x06,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x06,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x06,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x06,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x27,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x27,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x27,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x27,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x66,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x66,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x66,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x66,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x87,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x87,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x87,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x87,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x76,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x76,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x76,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x76,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x97,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x97,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x97,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x97,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x0a,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0a,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x0a,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0a,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x2b,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2b,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x2b,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2b,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x02,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x02,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x02,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x02,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x23,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x23,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x23,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x23,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x62,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x62,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x62,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x62,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x83,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x83,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x83,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x83,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x72,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x72,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x72,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x72,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x93,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x93,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x93,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x93,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x6a,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6a,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x6a,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6a,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x8b,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8b,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x8b,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8b,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x7a,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7a,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x7a,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7a,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x9b,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9b,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x9b,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9b,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x1a,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1a,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x1a,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1a,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x3b,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3b,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x3b,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3b,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x12,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x12,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x12,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x12,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x33,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x33,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x33,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x33,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x16,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x16,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x16,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x16,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x37,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x37,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x37,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x37,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x18,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x18,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x18,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x18,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x39,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x39,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x39,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x39,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x14,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x14,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x14,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x14,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x35,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x35,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x35,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x35,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x1c,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1c,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x1c,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1c,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x3d,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3d,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x3d,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3d,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x0e,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0e,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x0e,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0e,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x2f,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2f,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x2f,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2f,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x1e,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1e,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x1e,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1e,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x3f,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3f,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x3f,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3f,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x8e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x8e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x8f,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8f,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x8e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x8e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x8f,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8f,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x9e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x9e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x9f,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9f,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x9e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x9e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_t_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x9f,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9f,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x1e,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1e,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x1e,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1e,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x3f,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_t_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3f,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_tru_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x3f,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_t_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3f,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x10,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x10,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x10,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x10,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x31,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x31,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x31,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x31,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vopcx.s b/llvm/test/MC/AMDGPU/gfx11_asm_vopcx.s index 17e60c08f6a77..82c43e1a91b6a 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vopcx.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vopcx.s @@ -1,4106 +1,4107 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s v_cmpx_class_f16_e32 v1, v2 -// GFX11: encoding: [0x01,0x05,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 v1, v2 ; encoding: [0x01,0x05,0xfa,0x7d] v_cmpx_class_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0xfa,0x7d] v_cmpx_class_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 s1, v2 ; encoding: [0x01,0x04,0xfa,0x7d] v_cmpx_class_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 s105, v2 ; encoding: [0x69,0x04,0xfa,0x7d] v_cmpx_class_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0xfa,0x7d] v_cmpx_class_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0xfa,0x7d] v_cmpx_class_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0xfa,0x7d] v_cmpx_class_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0xfa,0x7d] v_cmpx_class_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0xfa,0x7d] v_cmpx_class_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0xfa,0x7d] v_cmpx_class_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 null, v2 ; encoding: [0x7c,0x04,0xfa,0x7d] v_cmpx_class_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0xfa,0x7d] v_cmpx_class_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0xfa,0x7d] v_cmpx_class_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0xfa,0x7d] +// GFX11: v_cmpx_class_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0xfa,0x7d] v_cmpx_class_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0xfa,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_class_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfa,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_class_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 v1, v2 ; encoding: [0x01,0x05,0xfc,0x7d] v_cmpx_class_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 v255, v2 ; encoding: [0xff,0x05,0xfc,0x7d] v_cmpx_class_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 s1, v2 ; encoding: [0x01,0x04,0xfc,0x7d] v_cmpx_class_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 s105, v2 ; encoding: [0x69,0x04,0xfc,0x7d] v_cmpx_class_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0xfc,0x7d] v_cmpx_class_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0xfc,0x7d] v_cmpx_class_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0xfc,0x7d] v_cmpx_class_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0xfc,0x7d] v_cmpx_class_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0xfc,0x7d] v_cmpx_class_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0xfc,0x7d] v_cmpx_class_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 null, v2 ; encoding: [0x7c,0x04,0xfc,0x7d] v_cmpx_class_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0xfc,0x7d] v_cmpx_class_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0xfc,0x7d] v_cmpx_class_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0xfc,0x7d] +// GFX11: v_cmpx_class_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0xfc,0x7d] v_cmpx_class_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xfd,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_class_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0xfd,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_class_f64 v[1:2], v2 -// GFX11: encoding: [0x01,0x05,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 v[1:2], v2 ; encoding: [0x01,0x05,0xfe,0x7d] v_cmpx_class_f64 v[254:255], v2 -// GFX11: encoding: [0xfe,0x05,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 v[254:255], v2 ; encoding: [0xfe,0x05,0xfe,0x7d] v_cmpx_class_f64 s[2:3], v2 -// GFX11: encoding: [0x02,0x04,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 s[2:3], v2 ; encoding: [0x02,0x04,0xfe,0x7d] v_cmpx_class_f64 s[104:105], v2 -// GFX11: encoding: [0x68,0x04,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 s[104:105], v2 ; encoding: [0x68,0x04,0xfe,0x7d] v_cmpx_class_f64 vcc, v2 -// GFX11: encoding: [0x6a,0x04,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 vcc, v2 ; encoding: [0x6a,0x04,0xfe,0x7d] v_cmpx_class_f64 ttmp[14:15], v2 -// GFX11: encoding: [0x7a,0x04,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 ttmp[14:15], v2 ; encoding: [0x7a,0x04,0xfe,0x7d] v_cmpx_class_f64 exec, v2 -// GFX11: encoding: [0x7e,0x04,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 exec, v2 ; encoding: [0x7e,0x04,0xfe,0x7d] v_cmpx_class_f64 null, v2 -// GFX11: encoding: [0x7c,0x04,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 null, v2 ; encoding: [0x7c,0x04,0xfe,0x7d] v_cmpx_class_f64 -1, v2 -// GFX11: encoding: [0xc1,0x04,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 -1, v2 ; encoding: [0xc1,0x04,0xfe,0x7d] v_cmpx_class_f64 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 0.5, v2 ; encoding: [0xf0,0x04,0xfe,0x7d] v_cmpx_class_f64 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0xfe,0x7d] +// GFX11: v_cmpx_class_f64_e32 src_scc, v2 ; encoding: [0xfd,0x04,0xfe,0x7d] v_cmpx_class_f64 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0xff,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_class_f64_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x04,0x7d] v_cmpx_eq_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x04,0x7d] v_cmpx_eq_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x04,0x7d] v_cmpx_eq_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x04,0x7d] v_cmpx_eq_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x04,0x7d] v_cmpx_eq_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x04,0x7d] v_cmpx_eq_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x04,0x7d] v_cmpx_eq_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x04,0x7d] v_cmpx_eq_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x04,0x7d] v_cmpx_eq_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x04,0x7d] v_cmpx_eq_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x04,0x7d] v_cmpx_eq_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x04,0x7d] v_cmpx_eq_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x04,0x7d] v_cmpx_eq_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x04,0x7d] +// GFX11: v_cmpx_eq_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x04,0x7d] v_cmpx_eq_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x04,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x04,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_eq_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x24,0x7d] v_cmpx_eq_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x24,0x7d] v_cmpx_eq_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x24,0x7d] v_cmpx_eq_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x24,0x7d] v_cmpx_eq_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x24,0x7d] v_cmpx_eq_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x24,0x7d] v_cmpx_eq_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x24,0x7d] v_cmpx_eq_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x24,0x7d] v_cmpx_eq_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x24,0x7d] v_cmpx_eq_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x24,0x7d] v_cmpx_eq_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x24,0x7d] v_cmpx_eq_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x24,0x7d] v_cmpx_eq_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x24,0x7d] v_cmpx_eq_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x24,0x7d] +// GFX11: v_cmpx_eq_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x24,0x7d] v_cmpx_eq_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x25,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x25,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x44,0x7d] v_cmpx_eq_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x44,0x7d] v_cmpx_eq_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x44,0x7d] v_cmpx_eq_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x44,0x7d] v_cmpx_eq_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x44,0x7d] v_cmpx_eq_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x44,0x7d] v_cmpx_eq_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x44,0x7d] v_cmpx_eq_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x44,0x7d] v_cmpx_eq_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x44,0x7d] v_cmpx_eq_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x44,0x7d] v_cmpx_eq_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x44,0x7d] +// GFX11: v_cmpx_eq_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x44,0x7d] v_cmpx_eq_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x45,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x45,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_i16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x64,0x7d] v_cmpx_eq_i16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x64,0x7d] v_cmpx_eq_i16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x64,0x7d] v_cmpx_eq_i16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x64,0x7d] v_cmpx_eq_i16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x64,0x7d] v_cmpx_eq_i16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x64,0x7d] v_cmpx_eq_i16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x64,0x7d] v_cmpx_eq_i16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x64,0x7d] v_cmpx_eq_i16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x64,0x7d] v_cmpx_eq_i16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x64,0x7d] v_cmpx_eq_i16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x64,0x7d] v_cmpx_eq_i16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x64,0x7d] v_cmpx_eq_i16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x64,0x7d] v_cmpx_eq_i16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x64,0x7d] +// GFX11: v_cmpx_eq_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x64,0x7d] v_cmpx_eq_i16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x64,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x64,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_eq_i32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x84,0x7d] v_cmpx_eq_i32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x84,0x7d] v_cmpx_eq_i32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x84,0x7d] v_cmpx_eq_i32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x84,0x7d] v_cmpx_eq_i32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x84,0x7d] v_cmpx_eq_i32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x84,0x7d] v_cmpx_eq_i32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x84,0x7d] v_cmpx_eq_i32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x84,0x7d] v_cmpx_eq_i32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x84,0x7d] v_cmpx_eq_i32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x84,0x7d] v_cmpx_eq_i32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x84,0x7d] v_cmpx_eq_i32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x84,0x7d] v_cmpx_eq_i32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x84,0x7d] v_cmpx_eq_i32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x84,0x7d] +// GFX11: v_cmpx_eq_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x84,0x7d] v_cmpx_eq_i32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x85,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x85,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_i64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa4,0x7d] v_cmpx_eq_i64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa4,0x7d] v_cmpx_eq_i64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa4,0x7d] v_cmpx_eq_i64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa4,0x7d] v_cmpx_eq_i64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xa4,0x7d] v_cmpx_eq_i64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa4,0x7d] v_cmpx_eq_i64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xa4,0x7d] v_cmpx_eq_i64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xa4,0x7d] v_cmpx_eq_i64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xa4,0x7d] v_cmpx_eq_i64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa4,0x7d] v_cmpx_eq_i64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xa4,0x7d] +// GFX11: v_cmpx_eq_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa4,0x7d] v_cmpx_eq_i64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xa5,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa5,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_u16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x74,0x7d] v_cmpx_eq_u16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x74,0x7d] v_cmpx_eq_u16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x74,0x7d] v_cmpx_eq_u16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x74,0x7d] v_cmpx_eq_u16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x74,0x7d] v_cmpx_eq_u16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x74,0x7d] v_cmpx_eq_u16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x74,0x7d] v_cmpx_eq_u16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x74,0x7d] v_cmpx_eq_u16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x74,0x7d] v_cmpx_eq_u16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x74,0x7d] v_cmpx_eq_u16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x74,0x7d] v_cmpx_eq_u16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x74,0x7d] v_cmpx_eq_u16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x74,0x7d] v_cmpx_eq_u16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x74,0x7d] +// GFX11: v_cmpx_eq_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x74,0x7d] v_cmpx_eq_u16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x74,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_eq_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x74,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_eq_u32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x94,0x7d] v_cmpx_eq_u32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x94,0x7d] v_cmpx_eq_u32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x94,0x7d] v_cmpx_eq_u32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x94,0x7d] v_cmpx_eq_u32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x94,0x7d] v_cmpx_eq_u32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x94,0x7d] v_cmpx_eq_u32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x94,0x7d] v_cmpx_eq_u32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x94,0x7d] v_cmpx_eq_u32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x94,0x7d] v_cmpx_eq_u32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x94,0x7d] v_cmpx_eq_u32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x94,0x7d] v_cmpx_eq_u32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x94,0x7d] v_cmpx_eq_u32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x94,0x7d] v_cmpx_eq_u32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x94,0x7d] +// GFX11: v_cmpx_eq_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x94,0x7d] v_cmpx_eq_u32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x95,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x95,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_u64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb4,0x7d] v_cmpx_eq_u64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb4,0x7d] v_cmpx_eq_u64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb4,0x7d] v_cmpx_eq_u64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb4,0x7d] v_cmpx_eq_u64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xb4,0x7d] v_cmpx_eq_u64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb4,0x7d] v_cmpx_eq_u64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xb4,0x7d] v_cmpx_eq_u64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xb4,0x7d] v_cmpx_eq_u64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xb4,0x7d] v_cmpx_eq_u64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb4,0x7d] v_cmpx_eq_u64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xb4,0x7d] +// GFX11: v_cmpx_eq_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb4,0x7d] v_cmpx_eq_u64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xb5,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_eq_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb5,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_f_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x00,0x7d] v_cmpx_f_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x00,0x7d] v_cmpx_f_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x00,0x7d] v_cmpx_f_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x00,0x7d] v_cmpx_f_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x00,0x7d] v_cmpx_f_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x00,0x7d] v_cmpx_f_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x00,0x7d] v_cmpx_f_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x00,0x7d] v_cmpx_f_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x00,0x7d] v_cmpx_f_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x00,0x7d] v_cmpx_f_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x00,0x7d] v_cmpx_f_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x00,0x7d] v_cmpx_f_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x00,0x7d] v_cmpx_f_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x00,0x7d] +// GFX11: v_cmpx_f_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x00,0x7d] v_cmpx_f_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x00,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_f_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x00,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_f_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x20,0x7d] v_cmpx_f_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x20,0x7d] v_cmpx_f_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x20,0x7d] v_cmpx_f_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x20,0x7d] v_cmpx_f_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x20,0x7d] v_cmpx_f_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x20,0x7d] v_cmpx_f_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x20,0x7d] v_cmpx_f_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x20,0x7d] v_cmpx_f_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x20,0x7d] v_cmpx_f_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x20,0x7d] v_cmpx_f_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x20,0x7d] v_cmpx_f_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x20,0x7d] v_cmpx_f_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x20,0x7d] v_cmpx_f_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x20,0x7d] +// GFX11: v_cmpx_f_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x20,0x7d] v_cmpx_f_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x21,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x21,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_f_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x40,0x7d] v_cmpx_f_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x40,0x7d] v_cmpx_f_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x40,0x7d] v_cmpx_f_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x40,0x7d] v_cmpx_f_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x40,0x7d] v_cmpx_f_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x40,0x7d] v_cmpx_f_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x40,0x7d] v_cmpx_f_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x40,0x7d] v_cmpx_f_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x40,0x7d] v_cmpx_f_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x40,0x7d] v_cmpx_f_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x40,0x7d] +// GFX11: v_cmpx_f_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x40,0x7d] v_cmpx_f_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x41,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x41,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_f_i32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x80,0x7d] v_cmpx_f_i32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x80,0x7d] v_cmpx_f_i32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x80,0x7d] v_cmpx_f_i32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x80,0x7d] v_cmpx_f_i32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x80,0x7d] v_cmpx_f_i32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x80,0x7d] v_cmpx_f_i32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x80,0x7d] v_cmpx_f_i32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x80,0x7d] v_cmpx_f_i32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x80,0x7d] v_cmpx_f_i32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x80,0x7d] v_cmpx_f_i32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x80,0x7d] v_cmpx_f_i32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x80,0x7d] v_cmpx_f_i32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x80,0x7d] v_cmpx_f_i32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x80,0x7d] +// GFX11: v_cmpx_f_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x80,0x7d] v_cmpx_f_i32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x81,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x81,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_f_i64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa0,0x7d] v_cmpx_f_i64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa0,0x7d] v_cmpx_f_i64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa0,0x7d] v_cmpx_f_i64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa0,0x7d] v_cmpx_f_i64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xa0,0x7d] v_cmpx_f_i64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa0,0x7d] v_cmpx_f_i64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xa0,0x7d] v_cmpx_f_i64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xa0,0x7d] v_cmpx_f_i64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xa0,0x7d] v_cmpx_f_i64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa0,0x7d] v_cmpx_f_i64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xa0,0x7d] +// GFX11: v_cmpx_f_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa0,0x7d] v_cmpx_f_i64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xa1,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa1,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_f_u32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x90,0x7d] v_cmpx_f_u32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x90,0x7d] v_cmpx_f_u32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x90,0x7d] v_cmpx_f_u32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x90,0x7d] v_cmpx_f_u32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x90,0x7d] v_cmpx_f_u32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x90,0x7d] v_cmpx_f_u32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x90,0x7d] v_cmpx_f_u32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x90,0x7d] v_cmpx_f_u32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x90,0x7d] v_cmpx_f_u32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x90,0x7d] v_cmpx_f_u32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x90,0x7d] v_cmpx_f_u32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x90,0x7d] v_cmpx_f_u32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x90,0x7d] v_cmpx_f_u32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x90,0x7d] +// GFX11: v_cmpx_f_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x90,0x7d] v_cmpx_f_u32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x91,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x91,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_f_u64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb0,0x7d] v_cmpx_f_u64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb0,0x7d] v_cmpx_f_u64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb0,0x7d] v_cmpx_f_u64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb0,0x7d] v_cmpx_f_u64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xb0,0x7d] v_cmpx_f_u64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb0,0x7d] v_cmpx_f_u64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xb0,0x7d] v_cmpx_f_u64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xb0,0x7d] v_cmpx_f_u64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xb0,0x7d] v_cmpx_f_u64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb0,0x7d] v_cmpx_f_u64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xb0,0x7d] +// GFX11: v_cmpx_f_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb0,0x7d] v_cmpx_f_u64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xb1,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_f_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb1,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x0c,0x7d] v_cmpx_ge_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x0c,0x7d] v_cmpx_ge_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x0c,0x7d] v_cmpx_ge_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x0c,0x7d] v_cmpx_ge_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x0c,0x7d] v_cmpx_ge_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x0c,0x7d] v_cmpx_ge_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x0c,0x7d] v_cmpx_ge_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x0c,0x7d] v_cmpx_ge_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x0c,0x7d] v_cmpx_ge_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x0c,0x7d] v_cmpx_ge_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x0c,0x7d] v_cmpx_ge_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x0c,0x7d] v_cmpx_ge_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x0c,0x7d] v_cmpx_ge_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0c,0x7d] +// GFX11: v_cmpx_ge_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x0c,0x7d] v_cmpx_ge_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x0c,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0c,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ge_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x2c,0x7d] v_cmpx_ge_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x2c,0x7d] v_cmpx_ge_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x2c,0x7d] v_cmpx_ge_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x2c,0x7d] v_cmpx_ge_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x2c,0x7d] v_cmpx_ge_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x2c,0x7d] v_cmpx_ge_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x2c,0x7d] v_cmpx_ge_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x2c,0x7d] v_cmpx_ge_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x2c,0x7d] v_cmpx_ge_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x2c,0x7d] v_cmpx_ge_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x2c,0x7d] v_cmpx_ge_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x2c,0x7d] v_cmpx_ge_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x2c,0x7d] v_cmpx_ge_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x2c,0x7d] +// GFX11: v_cmpx_ge_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x2c,0x7d] v_cmpx_ge_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x2d,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4c,0x7d] v_cmpx_ge_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4c,0x7d] v_cmpx_ge_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4c,0x7d] v_cmpx_ge_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4c,0x7d] v_cmpx_ge_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x4c,0x7d] v_cmpx_ge_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4c,0x7d] v_cmpx_ge_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x4c,0x7d] v_cmpx_ge_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x4c,0x7d] v_cmpx_ge_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x4c,0x7d] v_cmpx_ge_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4c,0x7d] v_cmpx_ge_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x4c,0x7d] +// GFX11: v_cmpx_ge_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4c,0x7d] v_cmpx_ge_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x4d,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_i16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x6c,0x7d] v_cmpx_ge_i16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x6c,0x7d] v_cmpx_ge_i16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x6c,0x7d] v_cmpx_ge_i16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x6c,0x7d] v_cmpx_ge_i16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x6c,0x7d] v_cmpx_ge_i16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x6c,0x7d] v_cmpx_ge_i16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x6c,0x7d] v_cmpx_ge_i16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x6c,0x7d] v_cmpx_ge_i16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x6c,0x7d] v_cmpx_ge_i16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x6c,0x7d] v_cmpx_ge_i16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x6c,0x7d] v_cmpx_ge_i16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x6c,0x7d] v_cmpx_ge_i16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x6c,0x7d] v_cmpx_ge_i16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x6c,0x7d] +// GFX11: v_cmpx_ge_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x6c,0x7d] v_cmpx_ge_i16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x6c,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6c,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ge_i32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x8c,0x7d] v_cmpx_ge_i32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x8c,0x7d] v_cmpx_ge_i32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x8c,0x7d] v_cmpx_ge_i32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x8c,0x7d] v_cmpx_ge_i32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x8c,0x7d] v_cmpx_ge_i32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x8c,0x7d] v_cmpx_ge_i32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x8c,0x7d] v_cmpx_ge_i32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x8c,0x7d] v_cmpx_ge_i32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x8c,0x7d] v_cmpx_ge_i32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x8c,0x7d] v_cmpx_ge_i32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x8c,0x7d] v_cmpx_ge_i32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x8c,0x7d] v_cmpx_ge_i32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x8c,0x7d] v_cmpx_ge_i32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x8c,0x7d] +// GFX11: v_cmpx_ge_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x8c,0x7d] v_cmpx_ge_i32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x8d,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_i64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xac,0x7d] v_cmpx_ge_i64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xac,0x7d] v_cmpx_ge_i64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xac,0x7d] v_cmpx_ge_i64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xac,0x7d] v_cmpx_ge_i64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xac,0x7d] v_cmpx_ge_i64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xac,0x7d] v_cmpx_ge_i64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xac,0x7d] v_cmpx_ge_i64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xac,0x7d] v_cmpx_ge_i64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xac,0x7d] v_cmpx_ge_i64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xac,0x7d] v_cmpx_ge_i64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xac,0x7d] +// GFX11: v_cmpx_ge_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xac,0x7d] v_cmpx_ge_i64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xad,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xad,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_u16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x7c,0x7d] v_cmpx_ge_u16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x7c,0x7d] v_cmpx_ge_u16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x7c,0x7d] v_cmpx_ge_u16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x7c,0x7d] v_cmpx_ge_u16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x7c,0x7d] v_cmpx_ge_u16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x7c,0x7d] v_cmpx_ge_u16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x7c,0x7d] v_cmpx_ge_u16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x7c,0x7d] v_cmpx_ge_u16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x7c,0x7d] v_cmpx_ge_u16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x7c,0x7d] v_cmpx_ge_u16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x7c,0x7d] v_cmpx_ge_u16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x7c,0x7d] v_cmpx_ge_u16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x7c,0x7d] v_cmpx_ge_u16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x7c,0x7d] +// GFX11: v_cmpx_ge_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x7c,0x7d] v_cmpx_ge_u16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x7c,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ge_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7c,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ge_u32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x9c,0x7d] v_cmpx_ge_u32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x9c,0x7d] v_cmpx_ge_u32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x9c,0x7d] v_cmpx_ge_u32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x9c,0x7d] v_cmpx_ge_u32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x9c,0x7d] v_cmpx_ge_u32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x9c,0x7d] v_cmpx_ge_u32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x9c,0x7d] v_cmpx_ge_u32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x9c,0x7d] v_cmpx_ge_u32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x9c,0x7d] v_cmpx_ge_u32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x9c,0x7d] v_cmpx_ge_u32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x9c,0x7d] v_cmpx_ge_u32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x9c,0x7d] v_cmpx_ge_u32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x9c,0x7d] v_cmpx_ge_u32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x9c,0x7d] +// GFX11: v_cmpx_ge_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x9c,0x7d] v_cmpx_ge_u32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x9d,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_u64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xbc,0x7d] v_cmpx_ge_u64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xbc,0x7d] v_cmpx_ge_u64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xbc,0x7d] v_cmpx_ge_u64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xbc,0x7d] v_cmpx_ge_u64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xbc,0x7d] v_cmpx_ge_u64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xbc,0x7d] v_cmpx_ge_u64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xbc,0x7d] v_cmpx_ge_u64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xbc,0x7d] v_cmpx_ge_u64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xbc,0x7d] v_cmpx_ge_u64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xbc,0x7d] v_cmpx_ge_u64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xbc,0x7d] +// GFX11: v_cmpx_ge_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xbc,0x7d] v_cmpx_ge_u64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xbd,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ge_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbd,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x08,0x7d] v_cmpx_gt_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x08,0x7d] v_cmpx_gt_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x08,0x7d] v_cmpx_gt_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x08,0x7d] v_cmpx_gt_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x08,0x7d] v_cmpx_gt_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x08,0x7d] v_cmpx_gt_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x08,0x7d] v_cmpx_gt_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x08,0x7d] v_cmpx_gt_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x08,0x7d] v_cmpx_gt_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x08,0x7d] v_cmpx_gt_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x08,0x7d] v_cmpx_gt_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x08,0x7d] v_cmpx_gt_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x08,0x7d] v_cmpx_gt_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x08,0x7d] +// GFX11: v_cmpx_gt_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x08,0x7d] v_cmpx_gt_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x08,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x08,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_gt_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x28,0x7d] v_cmpx_gt_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x28,0x7d] v_cmpx_gt_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x28,0x7d] v_cmpx_gt_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x28,0x7d] v_cmpx_gt_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x28,0x7d] v_cmpx_gt_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x28,0x7d] v_cmpx_gt_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x28,0x7d] v_cmpx_gt_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x28,0x7d] v_cmpx_gt_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x28,0x7d] v_cmpx_gt_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x28,0x7d] v_cmpx_gt_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x28,0x7d] v_cmpx_gt_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x28,0x7d] v_cmpx_gt_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x28,0x7d] v_cmpx_gt_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x28,0x7d] +// GFX11: v_cmpx_gt_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x28,0x7d] v_cmpx_gt_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x29,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x29,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x48,0x7d] v_cmpx_gt_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x48,0x7d] v_cmpx_gt_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x48,0x7d] v_cmpx_gt_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x48,0x7d] v_cmpx_gt_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x48,0x7d] v_cmpx_gt_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x48,0x7d] v_cmpx_gt_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x48,0x7d] v_cmpx_gt_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x48,0x7d] v_cmpx_gt_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x48,0x7d] v_cmpx_gt_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x48,0x7d] v_cmpx_gt_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x48,0x7d] +// GFX11: v_cmpx_gt_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x48,0x7d] v_cmpx_gt_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x49,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x49,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_i16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x68,0x7d] v_cmpx_gt_i16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x68,0x7d] v_cmpx_gt_i16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x68,0x7d] v_cmpx_gt_i16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x68,0x7d] v_cmpx_gt_i16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x68,0x7d] v_cmpx_gt_i16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x68,0x7d] v_cmpx_gt_i16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x68,0x7d] v_cmpx_gt_i16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x68,0x7d] v_cmpx_gt_i16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x68,0x7d] v_cmpx_gt_i16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x68,0x7d] v_cmpx_gt_i16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x68,0x7d] v_cmpx_gt_i16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x68,0x7d] v_cmpx_gt_i16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x68,0x7d] v_cmpx_gt_i16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x68,0x7d] +// GFX11: v_cmpx_gt_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x68,0x7d] v_cmpx_gt_i16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x68,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x68,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_gt_i32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x88,0x7d] v_cmpx_gt_i32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x88,0x7d] v_cmpx_gt_i32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x88,0x7d] v_cmpx_gt_i32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x88,0x7d] v_cmpx_gt_i32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x88,0x7d] v_cmpx_gt_i32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x88,0x7d] v_cmpx_gt_i32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x88,0x7d] v_cmpx_gt_i32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x88,0x7d] v_cmpx_gt_i32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x88,0x7d] v_cmpx_gt_i32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x88,0x7d] v_cmpx_gt_i32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x88,0x7d] v_cmpx_gt_i32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x88,0x7d] v_cmpx_gt_i32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x88,0x7d] v_cmpx_gt_i32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x88,0x7d] +// GFX11: v_cmpx_gt_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x88,0x7d] v_cmpx_gt_i32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x89,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x89,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_i64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa8,0x7d] v_cmpx_gt_i64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa8,0x7d] v_cmpx_gt_i64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa8,0x7d] v_cmpx_gt_i64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa8,0x7d] v_cmpx_gt_i64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xa8,0x7d] v_cmpx_gt_i64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa8,0x7d] v_cmpx_gt_i64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xa8,0x7d] v_cmpx_gt_i64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xa8,0x7d] v_cmpx_gt_i64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xa8,0x7d] v_cmpx_gt_i64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa8,0x7d] v_cmpx_gt_i64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xa8,0x7d] +// GFX11: v_cmpx_gt_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa8,0x7d] v_cmpx_gt_i64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xa9,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa9,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_u16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x78,0x7d] v_cmpx_gt_u16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x78,0x7d] v_cmpx_gt_u16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x78,0x7d] v_cmpx_gt_u16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x78,0x7d] v_cmpx_gt_u16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x78,0x7d] v_cmpx_gt_u16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x78,0x7d] v_cmpx_gt_u16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x78,0x7d] v_cmpx_gt_u16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x78,0x7d] v_cmpx_gt_u16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x78,0x7d] v_cmpx_gt_u16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x78,0x7d] v_cmpx_gt_u16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x78,0x7d] v_cmpx_gt_u16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x78,0x7d] v_cmpx_gt_u16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x78,0x7d] v_cmpx_gt_u16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x78,0x7d] +// GFX11: v_cmpx_gt_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x78,0x7d] v_cmpx_gt_u16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x78,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_gt_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x78,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_gt_u32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x98,0x7d] v_cmpx_gt_u32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x98,0x7d] v_cmpx_gt_u32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x98,0x7d] v_cmpx_gt_u32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x98,0x7d] v_cmpx_gt_u32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x98,0x7d] v_cmpx_gt_u32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x98,0x7d] v_cmpx_gt_u32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x98,0x7d] v_cmpx_gt_u32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x98,0x7d] v_cmpx_gt_u32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x98,0x7d] v_cmpx_gt_u32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x98,0x7d] v_cmpx_gt_u32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x98,0x7d] v_cmpx_gt_u32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x98,0x7d] v_cmpx_gt_u32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x98,0x7d] v_cmpx_gt_u32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x98,0x7d] +// GFX11: v_cmpx_gt_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x98,0x7d] v_cmpx_gt_u32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x99,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x99,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_u64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb8,0x7d] v_cmpx_gt_u64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb8,0x7d] v_cmpx_gt_u64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb8,0x7d] v_cmpx_gt_u64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb8,0x7d] v_cmpx_gt_u64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xb8,0x7d] v_cmpx_gt_u64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb8,0x7d] v_cmpx_gt_u64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xb8,0x7d] v_cmpx_gt_u64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xb8,0x7d] v_cmpx_gt_u64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xb8,0x7d] v_cmpx_gt_u64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb8,0x7d] v_cmpx_gt_u64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xb8,0x7d] +// GFX11: v_cmpx_gt_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb8,0x7d] v_cmpx_gt_u64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xb9,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_gt_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb9,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x06,0x7d] v_cmpx_le_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x06,0x7d] v_cmpx_le_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x06,0x7d] v_cmpx_le_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x06,0x7d] v_cmpx_le_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x06,0x7d] v_cmpx_le_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x06,0x7d] v_cmpx_le_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x06,0x7d] v_cmpx_le_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x06,0x7d] v_cmpx_le_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x06,0x7d] v_cmpx_le_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x06,0x7d] v_cmpx_le_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x06,0x7d] v_cmpx_le_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x06,0x7d] v_cmpx_le_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x06,0x7d] v_cmpx_le_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x06,0x7d] +// GFX11: v_cmpx_le_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x06,0x7d] v_cmpx_le_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x06,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x06,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_le_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x26,0x7d] v_cmpx_le_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x26,0x7d] v_cmpx_le_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x26,0x7d] v_cmpx_le_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x26,0x7d] v_cmpx_le_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x26,0x7d] v_cmpx_le_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x26,0x7d] v_cmpx_le_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x26,0x7d] v_cmpx_le_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x26,0x7d] v_cmpx_le_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x26,0x7d] v_cmpx_le_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x26,0x7d] v_cmpx_le_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x26,0x7d] v_cmpx_le_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x26,0x7d] v_cmpx_le_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x26,0x7d] v_cmpx_le_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x26,0x7d] +// GFX11: v_cmpx_le_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x26,0x7d] v_cmpx_le_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x27,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x27,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x46,0x7d] v_cmpx_le_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x46,0x7d] v_cmpx_le_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x46,0x7d] v_cmpx_le_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x46,0x7d] v_cmpx_le_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x46,0x7d] v_cmpx_le_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x46,0x7d] v_cmpx_le_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x46,0x7d] v_cmpx_le_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x46,0x7d] v_cmpx_le_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x46,0x7d] v_cmpx_le_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x46,0x7d] v_cmpx_le_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x46,0x7d] +// GFX11: v_cmpx_le_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x46,0x7d] v_cmpx_le_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x47,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x47,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_i16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x66,0x7d] v_cmpx_le_i16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x66,0x7d] v_cmpx_le_i16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x66,0x7d] v_cmpx_le_i16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x66,0x7d] v_cmpx_le_i16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x66,0x7d] v_cmpx_le_i16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x66,0x7d] v_cmpx_le_i16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x66,0x7d] v_cmpx_le_i16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x66,0x7d] v_cmpx_le_i16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x66,0x7d] v_cmpx_le_i16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x66,0x7d] v_cmpx_le_i16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x66,0x7d] v_cmpx_le_i16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x66,0x7d] v_cmpx_le_i16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x66,0x7d] v_cmpx_le_i16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x66,0x7d] +// GFX11: v_cmpx_le_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x66,0x7d] v_cmpx_le_i16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x66,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x66,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_le_i32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x86,0x7d] v_cmpx_le_i32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x86,0x7d] v_cmpx_le_i32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x86,0x7d] v_cmpx_le_i32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x86,0x7d] v_cmpx_le_i32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x86,0x7d] v_cmpx_le_i32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x86,0x7d] v_cmpx_le_i32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x86,0x7d] v_cmpx_le_i32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x86,0x7d] v_cmpx_le_i32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x86,0x7d] v_cmpx_le_i32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x86,0x7d] v_cmpx_le_i32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x86,0x7d] v_cmpx_le_i32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x86,0x7d] v_cmpx_le_i32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x86,0x7d] v_cmpx_le_i32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x86,0x7d] +// GFX11: v_cmpx_le_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x86,0x7d] v_cmpx_le_i32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x87,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x87,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_i64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa6,0x7d] v_cmpx_le_i64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa6,0x7d] v_cmpx_le_i64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa6,0x7d] v_cmpx_le_i64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa6,0x7d] v_cmpx_le_i64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xa6,0x7d] v_cmpx_le_i64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa6,0x7d] v_cmpx_le_i64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xa6,0x7d] v_cmpx_le_i64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xa6,0x7d] v_cmpx_le_i64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xa6,0x7d] v_cmpx_le_i64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa6,0x7d] v_cmpx_le_i64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xa6,0x7d] +// GFX11: v_cmpx_le_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa6,0x7d] v_cmpx_le_i64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xa7,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa7,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_u16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x76,0x7d] v_cmpx_le_u16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x76,0x7d] v_cmpx_le_u16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x76,0x7d] v_cmpx_le_u16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x76,0x7d] v_cmpx_le_u16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x76,0x7d] v_cmpx_le_u16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x76,0x7d] v_cmpx_le_u16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x76,0x7d] v_cmpx_le_u16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x76,0x7d] v_cmpx_le_u16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x76,0x7d] v_cmpx_le_u16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x76,0x7d] v_cmpx_le_u16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x76,0x7d] v_cmpx_le_u16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x76,0x7d] v_cmpx_le_u16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x76,0x7d] v_cmpx_le_u16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x76,0x7d] +// GFX11: v_cmpx_le_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x76,0x7d] v_cmpx_le_u16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x76,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_le_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x76,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_le_u32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x96,0x7d] v_cmpx_le_u32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x96,0x7d] v_cmpx_le_u32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x96,0x7d] v_cmpx_le_u32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x96,0x7d] v_cmpx_le_u32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x96,0x7d] v_cmpx_le_u32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x96,0x7d] v_cmpx_le_u32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x96,0x7d] v_cmpx_le_u32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x96,0x7d] v_cmpx_le_u32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x96,0x7d] v_cmpx_le_u32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x96,0x7d] v_cmpx_le_u32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x96,0x7d] v_cmpx_le_u32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x96,0x7d] v_cmpx_le_u32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x96,0x7d] v_cmpx_le_u32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x96,0x7d] +// GFX11: v_cmpx_le_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x96,0x7d] v_cmpx_le_u32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x97,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x97,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_u64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb6,0x7d] v_cmpx_le_u64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb6,0x7d] v_cmpx_le_u64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb6,0x7d] v_cmpx_le_u64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb6,0x7d] v_cmpx_le_u64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xb6,0x7d] v_cmpx_le_u64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb6,0x7d] v_cmpx_le_u64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xb6,0x7d] v_cmpx_le_u64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xb6,0x7d] v_cmpx_le_u64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xb6,0x7d] v_cmpx_le_u64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb6,0x7d] v_cmpx_le_u64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xb6,0x7d] +// GFX11: v_cmpx_le_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb6,0x7d] v_cmpx_le_u64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xb7,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_le_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb7,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lg_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x0a,0x7d] v_cmpx_lg_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x0a,0x7d] v_cmpx_lg_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x0a,0x7d] v_cmpx_lg_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x0a,0x7d] v_cmpx_lg_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x7d] v_cmpx_lg_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x7d] v_cmpx_lg_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x7d] v_cmpx_lg_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x0a,0x7d] v_cmpx_lg_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x7d] v_cmpx_lg_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x7d] v_cmpx_lg_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x0a,0x7d] v_cmpx_lg_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x0a,0x7d] v_cmpx_lg_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x7d] v_cmpx_lg_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0a,0x7d] +// GFX11: v_cmpx_lg_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x7d] v_cmpx_lg_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x0a,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lg_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0a,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_lg_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x2a,0x7d] v_cmpx_lg_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x2a,0x7d] v_cmpx_lg_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x2a,0x7d] v_cmpx_lg_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x2a,0x7d] v_cmpx_lg_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x2a,0x7d] v_cmpx_lg_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x2a,0x7d] v_cmpx_lg_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x2a,0x7d] v_cmpx_lg_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x2a,0x7d] v_cmpx_lg_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x2a,0x7d] v_cmpx_lg_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x2a,0x7d] v_cmpx_lg_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x2a,0x7d] v_cmpx_lg_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x2a,0x7d] v_cmpx_lg_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x2a,0x7d] v_cmpx_lg_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x2a,0x7d] +// GFX11: v_cmpx_lg_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x2a,0x7d] v_cmpx_lg_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x2b,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lg_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lg_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4a,0x7d] v_cmpx_lg_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4a,0x7d] v_cmpx_lg_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4a,0x7d] v_cmpx_lg_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4a,0x7d] v_cmpx_lg_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x4a,0x7d] v_cmpx_lg_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4a,0x7d] v_cmpx_lg_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x4a,0x7d] v_cmpx_lg_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x4a,0x7d] v_cmpx_lg_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x4a,0x7d] v_cmpx_lg_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4a,0x7d] v_cmpx_lg_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x4a,0x7d] +// GFX11: v_cmpx_lg_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4a,0x7d] v_cmpx_lg_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x4b,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lg_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x02,0x7d] v_cmpx_lt_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x02,0x7d] v_cmpx_lt_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x02,0x7d] v_cmpx_lt_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x02,0x7d] v_cmpx_lt_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x02,0x7d] v_cmpx_lt_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x02,0x7d] v_cmpx_lt_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x02,0x7d] v_cmpx_lt_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x02,0x7d] v_cmpx_lt_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x02,0x7d] v_cmpx_lt_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x02,0x7d] v_cmpx_lt_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x02,0x7d] v_cmpx_lt_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x02,0x7d] v_cmpx_lt_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x02,0x7d] v_cmpx_lt_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x02,0x7d] +// GFX11: v_cmpx_lt_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x02,0x7d] v_cmpx_lt_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x02,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x02,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_lt_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x22,0x7d] v_cmpx_lt_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x22,0x7d] v_cmpx_lt_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x22,0x7d] v_cmpx_lt_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x22,0x7d] v_cmpx_lt_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x22,0x7d] v_cmpx_lt_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x22,0x7d] v_cmpx_lt_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x22,0x7d] v_cmpx_lt_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x22,0x7d] v_cmpx_lt_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x22,0x7d] v_cmpx_lt_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x22,0x7d] v_cmpx_lt_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x22,0x7d] v_cmpx_lt_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x22,0x7d] v_cmpx_lt_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x22,0x7d] v_cmpx_lt_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x22,0x7d] +// GFX11: v_cmpx_lt_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x22,0x7d] v_cmpx_lt_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x23,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x23,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x42,0x7d] v_cmpx_lt_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x42,0x7d] v_cmpx_lt_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x42,0x7d] v_cmpx_lt_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x42,0x7d] v_cmpx_lt_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x42,0x7d] v_cmpx_lt_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x42,0x7d] v_cmpx_lt_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x42,0x7d] v_cmpx_lt_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x42,0x7d] v_cmpx_lt_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x42,0x7d] v_cmpx_lt_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x42,0x7d] v_cmpx_lt_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x42,0x7d] +// GFX11: v_cmpx_lt_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x42,0x7d] v_cmpx_lt_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x43,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x43,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_i16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x62,0x7d] v_cmpx_lt_i16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x62,0x7d] v_cmpx_lt_i16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x62,0x7d] v_cmpx_lt_i16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x62,0x7d] v_cmpx_lt_i16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x62,0x7d] v_cmpx_lt_i16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x62,0x7d] v_cmpx_lt_i16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x62,0x7d] v_cmpx_lt_i16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x62,0x7d] v_cmpx_lt_i16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x62,0x7d] v_cmpx_lt_i16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x62,0x7d] v_cmpx_lt_i16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x62,0x7d] v_cmpx_lt_i16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x62,0x7d] v_cmpx_lt_i16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x62,0x7d] v_cmpx_lt_i16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x62,0x7d] +// GFX11: v_cmpx_lt_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x62,0x7d] v_cmpx_lt_i16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x62,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x62,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_lt_i32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x82,0x7d] v_cmpx_lt_i32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x82,0x7d] v_cmpx_lt_i32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x82,0x7d] v_cmpx_lt_i32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x82,0x7d] v_cmpx_lt_i32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x82,0x7d] v_cmpx_lt_i32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x82,0x7d] v_cmpx_lt_i32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x82,0x7d] v_cmpx_lt_i32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x82,0x7d] v_cmpx_lt_i32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x82,0x7d] v_cmpx_lt_i32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x82,0x7d] v_cmpx_lt_i32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x82,0x7d] v_cmpx_lt_i32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x82,0x7d] v_cmpx_lt_i32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x82,0x7d] v_cmpx_lt_i32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x82,0x7d] +// GFX11: v_cmpx_lt_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x82,0x7d] v_cmpx_lt_i32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x83,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x83,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_i64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa2,0x7d] v_cmpx_lt_i64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa2,0x7d] v_cmpx_lt_i64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa2,0x7d] v_cmpx_lt_i64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa2,0x7d] v_cmpx_lt_i64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xa2,0x7d] v_cmpx_lt_i64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa2,0x7d] v_cmpx_lt_i64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xa2,0x7d] v_cmpx_lt_i64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xa2,0x7d] v_cmpx_lt_i64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xa2,0x7d] v_cmpx_lt_i64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa2,0x7d] v_cmpx_lt_i64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xa2,0x7d] +// GFX11: v_cmpx_lt_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa2,0x7d] v_cmpx_lt_i64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xa3,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa3,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_u16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x72,0x7d] v_cmpx_lt_u16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x72,0x7d] v_cmpx_lt_u16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x72,0x7d] v_cmpx_lt_u16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x72,0x7d] v_cmpx_lt_u16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x72,0x7d] v_cmpx_lt_u16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x72,0x7d] v_cmpx_lt_u16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x72,0x7d] v_cmpx_lt_u16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x72,0x7d] v_cmpx_lt_u16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x72,0x7d] v_cmpx_lt_u16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x72,0x7d] v_cmpx_lt_u16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x72,0x7d] v_cmpx_lt_u16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x72,0x7d] v_cmpx_lt_u16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x72,0x7d] v_cmpx_lt_u16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x72,0x7d] +// GFX11: v_cmpx_lt_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x72,0x7d] v_cmpx_lt_u16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x72,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_lt_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x72,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_lt_u32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x92,0x7d] v_cmpx_lt_u32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x92,0x7d] v_cmpx_lt_u32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x92,0x7d] v_cmpx_lt_u32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x92,0x7d] v_cmpx_lt_u32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x92,0x7d] v_cmpx_lt_u32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x92,0x7d] v_cmpx_lt_u32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x92,0x7d] v_cmpx_lt_u32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x92,0x7d] v_cmpx_lt_u32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x92,0x7d] v_cmpx_lt_u32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x92,0x7d] v_cmpx_lt_u32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x92,0x7d] v_cmpx_lt_u32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x92,0x7d] v_cmpx_lt_u32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x92,0x7d] v_cmpx_lt_u32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x92,0x7d] +// GFX11: v_cmpx_lt_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x92,0x7d] v_cmpx_lt_u32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x93,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x93,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_u64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb2,0x7d] v_cmpx_lt_u64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb2,0x7d] v_cmpx_lt_u64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb2,0x7d] v_cmpx_lt_u64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb2,0x7d] v_cmpx_lt_u64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xb2,0x7d] v_cmpx_lt_u64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb2,0x7d] v_cmpx_lt_u64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xb2,0x7d] v_cmpx_lt_u64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xb2,0x7d] v_cmpx_lt_u64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xb2,0x7d] v_cmpx_lt_u64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb2,0x7d] v_cmpx_lt_u64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xb2,0x7d] +// GFX11: v_cmpx_lt_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb2,0x7d] v_cmpx_lt_u64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xb3,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_lt_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb3,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ne_i16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x6a,0x7d] v_cmpx_ne_i16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x6a,0x7d] v_cmpx_ne_i16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x6a,0x7d] v_cmpx_ne_i16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x6a,0x7d] v_cmpx_ne_i16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x6a,0x7d] v_cmpx_ne_i16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x6a,0x7d] v_cmpx_ne_i16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x6a,0x7d] v_cmpx_ne_i16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x6a,0x7d] v_cmpx_ne_i16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x6a,0x7d] v_cmpx_ne_i16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x6a,0x7d] v_cmpx_ne_i16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x6a,0x7d] v_cmpx_ne_i16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x6a,0x7d] v_cmpx_ne_i16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x6a,0x7d] v_cmpx_ne_i16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x6a,0x7d] +// GFX11: v_cmpx_ne_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x6a,0x7d] v_cmpx_ne_i16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x6a,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6a,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ne_i32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x8a,0x7d] v_cmpx_ne_i32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x8a,0x7d] v_cmpx_ne_i32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x8a,0x7d] v_cmpx_ne_i32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x8a,0x7d] v_cmpx_ne_i32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x8a,0x7d] v_cmpx_ne_i32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x8a,0x7d] v_cmpx_ne_i32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x8a,0x7d] v_cmpx_ne_i32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x8a,0x7d] v_cmpx_ne_i32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x8a,0x7d] v_cmpx_ne_i32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x8a,0x7d] v_cmpx_ne_i32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x8a,0x7d] v_cmpx_ne_i32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x8a,0x7d] v_cmpx_ne_i32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x8a,0x7d] v_cmpx_ne_i32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x8a,0x7d] +// GFX11: v_cmpx_ne_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x8a,0x7d] v_cmpx_ne_i32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x8b,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ne_i64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xaa,0x7d] v_cmpx_ne_i64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xaa,0x7d] v_cmpx_ne_i64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xaa,0x7d] v_cmpx_ne_i64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xaa,0x7d] v_cmpx_ne_i64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xaa,0x7d] v_cmpx_ne_i64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xaa,0x7d] v_cmpx_ne_i64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xaa,0x7d] v_cmpx_ne_i64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xaa,0x7d] v_cmpx_ne_i64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xaa,0x7d] v_cmpx_ne_i64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xaa,0x7d] v_cmpx_ne_i64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xaa,0x7d] +// GFX11: v_cmpx_ne_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xaa,0x7d] v_cmpx_ne_i64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xab,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xab,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ne_u16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x7a,0x7d] v_cmpx_ne_u16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x7a,0x7d] v_cmpx_ne_u16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x7a,0x7d] v_cmpx_ne_u16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x7a,0x7d] v_cmpx_ne_u16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x7a,0x7d] v_cmpx_ne_u16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x7a,0x7d] v_cmpx_ne_u16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x7a,0x7d] v_cmpx_ne_u16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x7a,0x7d] v_cmpx_ne_u16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x7a,0x7d] v_cmpx_ne_u16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x7a,0x7d] v_cmpx_ne_u16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x7a,0x7d] v_cmpx_ne_u16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x7a,0x7d] v_cmpx_ne_u16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x7a,0x7d] v_cmpx_ne_u16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x7a,0x7d] +// GFX11: v_cmpx_ne_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x7a,0x7d] v_cmpx_ne_u16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x7a,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ne_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7a,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ne_u32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x9a,0x7d] v_cmpx_ne_u32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x9a,0x7d] v_cmpx_ne_u32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x9a,0x7d] v_cmpx_ne_u32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x9a,0x7d] v_cmpx_ne_u32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x9a,0x7d] v_cmpx_ne_u32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x9a,0x7d] v_cmpx_ne_u32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x9a,0x7d] v_cmpx_ne_u32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x9a,0x7d] v_cmpx_ne_u32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x9a,0x7d] v_cmpx_ne_u32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x9a,0x7d] v_cmpx_ne_u32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x9a,0x7d] v_cmpx_ne_u32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x9a,0x7d] v_cmpx_ne_u32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x9a,0x7d] v_cmpx_ne_u32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x9a,0x7d] +// GFX11: v_cmpx_ne_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x9a,0x7d] v_cmpx_ne_u32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x9b,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ne_u64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xba,0x7d] v_cmpx_ne_u64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xba,0x7d] v_cmpx_ne_u64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xba,0x7d] v_cmpx_ne_u64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xba,0x7d] v_cmpx_ne_u64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xba,0x7d] v_cmpx_ne_u64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xba,0x7d] v_cmpx_ne_u64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xba,0x7d] v_cmpx_ne_u64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xba,0x7d] v_cmpx_ne_u64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xba,0x7d] v_cmpx_ne_u64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xba,0x7d] v_cmpx_ne_u64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xba,0x7d] +// GFX11: v_cmpx_ne_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xba,0x7d] v_cmpx_ne_u64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xbb,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ne_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbb,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_neq_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x1a,0x7d] v_cmpx_neq_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x1a,0x7d] v_cmpx_neq_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x1a,0x7d] v_cmpx_neq_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x1a,0x7d] v_cmpx_neq_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x1a,0x7d] v_cmpx_neq_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x1a,0x7d] v_cmpx_neq_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x1a,0x7d] v_cmpx_neq_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x1a,0x7d] v_cmpx_neq_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x1a,0x7d] v_cmpx_neq_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x1a,0x7d] v_cmpx_neq_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x1a,0x7d] v_cmpx_neq_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x1a,0x7d] v_cmpx_neq_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x1a,0x7d] v_cmpx_neq_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x1a,0x7d] +// GFX11: v_cmpx_neq_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x1a,0x7d] v_cmpx_neq_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x1a,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_neq_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1a,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_neq_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x3a,0x7d] v_cmpx_neq_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x3a,0x7d] v_cmpx_neq_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x3a,0x7d] v_cmpx_neq_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x3a,0x7d] v_cmpx_neq_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x3a,0x7d] v_cmpx_neq_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x3a,0x7d] v_cmpx_neq_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x3a,0x7d] v_cmpx_neq_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x3a,0x7d] v_cmpx_neq_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x3a,0x7d] v_cmpx_neq_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x3a,0x7d] v_cmpx_neq_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x3a,0x7d] v_cmpx_neq_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x3a,0x7d] v_cmpx_neq_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x3a,0x7d] v_cmpx_neq_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x3a,0x7d] +// GFX11: v_cmpx_neq_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x3a,0x7d] v_cmpx_neq_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x3b,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_neq_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_neq_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5a,0x7d] v_cmpx_neq_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5a,0x7d] v_cmpx_neq_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5a,0x7d] v_cmpx_neq_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5a,0x7d] v_cmpx_neq_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x5a,0x7d] v_cmpx_neq_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5a,0x7d] v_cmpx_neq_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x5a,0x7d] v_cmpx_neq_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x5a,0x7d] v_cmpx_neq_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x5a,0x7d] v_cmpx_neq_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5a,0x7d] v_cmpx_neq_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x5a,0x7d] +// GFX11: v_cmpx_neq_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5a,0x7d] v_cmpx_neq_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x5b,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_neq_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nge_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x12,0x7d] v_cmpx_nge_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x12,0x7d] v_cmpx_nge_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x12,0x7d] v_cmpx_nge_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x12,0x7d] v_cmpx_nge_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x12,0x7d] v_cmpx_nge_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x12,0x7d] v_cmpx_nge_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x12,0x7d] v_cmpx_nge_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x12,0x7d] v_cmpx_nge_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x12,0x7d] v_cmpx_nge_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x12,0x7d] v_cmpx_nge_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x12,0x7d] v_cmpx_nge_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x12,0x7d] v_cmpx_nge_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x12,0x7d] v_cmpx_nge_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x12,0x7d] +// GFX11: v_cmpx_nge_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x12,0x7d] v_cmpx_nge_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x12,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nge_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x12,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_nge_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x32,0x7d] v_cmpx_nge_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x32,0x7d] v_cmpx_nge_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x32,0x7d] v_cmpx_nge_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x32,0x7d] v_cmpx_nge_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x32,0x7d] v_cmpx_nge_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x32,0x7d] v_cmpx_nge_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x32,0x7d] v_cmpx_nge_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x32,0x7d] v_cmpx_nge_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x32,0x7d] v_cmpx_nge_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x32,0x7d] v_cmpx_nge_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x32,0x7d] v_cmpx_nge_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x32,0x7d] v_cmpx_nge_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x32,0x7d] v_cmpx_nge_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x32,0x7d] +// GFX11: v_cmpx_nge_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x32,0x7d] v_cmpx_nge_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x33,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nge_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x33,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nge_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x52,0x7d] v_cmpx_nge_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x52,0x7d] v_cmpx_nge_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x52,0x7d] v_cmpx_nge_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x52,0x7d] v_cmpx_nge_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x52,0x7d] v_cmpx_nge_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x52,0x7d] v_cmpx_nge_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x52,0x7d] v_cmpx_nge_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x52,0x7d] v_cmpx_nge_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x52,0x7d] v_cmpx_nge_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x52,0x7d] v_cmpx_nge_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x52,0x7d] +// GFX11: v_cmpx_nge_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x52,0x7d] v_cmpx_nge_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x53,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nge_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x53,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x16,0x7d] v_cmpx_ngt_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x16,0x7d] v_cmpx_ngt_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x16,0x7d] v_cmpx_ngt_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x16,0x7d] v_cmpx_ngt_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x16,0x7d] v_cmpx_ngt_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x16,0x7d] v_cmpx_ngt_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x16,0x7d] v_cmpx_ngt_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x16,0x7d] v_cmpx_ngt_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x16,0x7d] v_cmpx_ngt_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x16,0x7d] v_cmpx_ngt_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x16,0x7d] v_cmpx_ngt_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x16,0x7d] v_cmpx_ngt_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x16,0x7d] v_cmpx_ngt_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x16,0x7d] +// GFX11: v_cmpx_ngt_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x16,0x7d] v_cmpx_ngt_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x16,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_ngt_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x16,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ngt_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x36,0x7d] v_cmpx_ngt_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x36,0x7d] v_cmpx_ngt_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x36,0x7d] v_cmpx_ngt_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x36,0x7d] v_cmpx_ngt_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x36,0x7d] v_cmpx_ngt_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x36,0x7d] v_cmpx_ngt_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x36,0x7d] v_cmpx_ngt_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x36,0x7d] v_cmpx_ngt_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x36,0x7d] v_cmpx_ngt_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x36,0x7d] v_cmpx_ngt_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x36,0x7d] v_cmpx_ngt_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x36,0x7d] v_cmpx_ngt_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x36,0x7d] v_cmpx_ngt_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x36,0x7d] +// GFX11: v_cmpx_ngt_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x36,0x7d] v_cmpx_ngt_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x37,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ngt_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x37,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x56,0x7d] v_cmpx_ngt_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x56,0x7d] v_cmpx_ngt_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x56,0x7d] v_cmpx_ngt_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x56,0x7d] v_cmpx_ngt_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x56,0x7d] v_cmpx_ngt_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x56,0x7d] v_cmpx_ngt_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x56,0x7d] v_cmpx_ngt_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x56,0x7d] v_cmpx_ngt_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x56,0x7d] v_cmpx_ngt_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x56,0x7d] v_cmpx_ngt_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x56,0x7d] +// GFX11: v_cmpx_ngt_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x56,0x7d] v_cmpx_ngt_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x57,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_ngt_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x57,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nle_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x18,0x7d] v_cmpx_nle_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x18,0x7d] v_cmpx_nle_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x18,0x7d] v_cmpx_nle_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x18,0x7d] v_cmpx_nle_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x18,0x7d] v_cmpx_nle_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x18,0x7d] v_cmpx_nle_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x18,0x7d] v_cmpx_nle_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x18,0x7d] v_cmpx_nle_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x18,0x7d] v_cmpx_nle_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x18,0x7d] v_cmpx_nle_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x18,0x7d] v_cmpx_nle_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x18,0x7d] v_cmpx_nle_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x18,0x7d] v_cmpx_nle_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x18,0x7d] +// GFX11: v_cmpx_nle_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x18,0x7d] v_cmpx_nle_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x18,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nle_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x18,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_nle_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x38,0x7d] v_cmpx_nle_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x38,0x7d] v_cmpx_nle_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x38,0x7d] v_cmpx_nle_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x38,0x7d] v_cmpx_nle_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x38,0x7d] v_cmpx_nle_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x38,0x7d] v_cmpx_nle_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x38,0x7d] v_cmpx_nle_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x38,0x7d] v_cmpx_nle_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x38,0x7d] v_cmpx_nle_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x38,0x7d] v_cmpx_nle_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x38,0x7d] v_cmpx_nle_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x38,0x7d] v_cmpx_nle_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x38,0x7d] v_cmpx_nle_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x38,0x7d] +// GFX11: v_cmpx_nle_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x38,0x7d] v_cmpx_nle_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x39,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nle_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x39,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nle_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x58,0x7d] v_cmpx_nle_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x58,0x7d] v_cmpx_nle_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x58,0x7d] v_cmpx_nle_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x58,0x7d] v_cmpx_nle_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x58,0x7d] v_cmpx_nle_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x58,0x7d] v_cmpx_nle_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x58,0x7d] v_cmpx_nle_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x58,0x7d] v_cmpx_nle_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x58,0x7d] v_cmpx_nle_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x58,0x7d] v_cmpx_nle_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x58,0x7d] +// GFX11: v_cmpx_nle_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x58,0x7d] v_cmpx_nle_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x59,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nle_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x59,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x14,0x7d] v_cmpx_nlg_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x14,0x7d] v_cmpx_nlg_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x14,0x7d] v_cmpx_nlg_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x14,0x7d] v_cmpx_nlg_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x14,0x7d] v_cmpx_nlg_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x14,0x7d] v_cmpx_nlg_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x14,0x7d] v_cmpx_nlg_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x14,0x7d] v_cmpx_nlg_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x14,0x7d] v_cmpx_nlg_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x14,0x7d] v_cmpx_nlg_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x14,0x7d] v_cmpx_nlg_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x14,0x7d] v_cmpx_nlg_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x14,0x7d] v_cmpx_nlg_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x14,0x7d] +// GFX11: v_cmpx_nlg_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x14,0x7d] v_cmpx_nlg_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x14,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlg_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x14,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_nlg_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x34,0x7d] v_cmpx_nlg_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x34,0x7d] v_cmpx_nlg_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x34,0x7d] v_cmpx_nlg_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x34,0x7d] v_cmpx_nlg_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x34,0x7d] v_cmpx_nlg_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x34,0x7d] v_cmpx_nlg_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x34,0x7d] v_cmpx_nlg_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x34,0x7d] v_cmpx_nlg_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x34,0x7d] v_cmpx_nlg_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x34,0x7d] v_cmpx_nlg_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x34,0x7d] v_cmpx_nlg_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x34,0x7d] v_cmpx_nlg_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x34,0x7d] v_cmpx_nlg_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x34,0x7d] +// GFX11: v_cmpx_nlg_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x34,0x7d] v_cmpx_nlg_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x35,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlg_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x35,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x54,0x7d] v_cmpx_nlg_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x54,0x7d] v_cmpx_nlg_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x54,0x7d] v_cmpx_nlg_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x54,0x7d] v_cmpx_nlg_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x54,0x7d] v_cmpx_nlg_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x54,0x7d] v_cmpx_nlg_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x54,0x7d] v_cmpx_nlg_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x54,0x7d] v_cmpx_nlg_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x54,0x7d] v_cmpx_nlg_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x54,0x7d] v_cmpx_nlg_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x54,0x7d] +// GFX11: v_cmpx_nlg_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x54,0x7d] v_cmpx_nlg_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x55,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlg_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x55,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x1c,0x7d] v_cmpx_nlt_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x1c,0x7d] v_cmpx_nlt_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x1c,0x7d] v_cmpx_nlt_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x1c,0x7d] v_cmpx_nlt_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x1c,0x7d] v_cmpx_nlt_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x1c,0x7d] v_cmpx_nlt_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x1c,0x7d] v_cmpx_nlt_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x1c,0x7d] v_cmpx_nlt_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x1c,0x7d] v_cmpx_nlt_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x1c,0x7d] v_cmpx_nlt_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x1c,0x7d] v_cmpx_nlt_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x1c,0x7d] v_cmpx_nlt_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x1c,0x7d] v_cmpx_nlt_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x1c,0x7d] +// GFX11: v_cmpx_nlt_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x1c,0x7d] v_cmpx_nlt_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x1c,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_nlt_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1c,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_nlt_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x3c,0x7d] v_cmpx_nlt_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x3c,0x7d] v_cmpx_nlt_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x3c,0x7d] v_cmpx_nlt_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x3c,0x7d] v_cmpx_nlt_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x3c,0x7d] v_cmpx_nlt_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x3c,0x7d] v_cmpx_nlt_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x3c,0x7d] v_cmpx_nlt_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x3c,0x7d] v_cmpx_nlt_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x3c,0x7d] v_cmpx_nlt_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x3c,0x7d] v_cmpx_nlt_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x3c,0x7d] v_cmpx_nlt_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x3c,0x7d] v_cmpx_nlt_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x3c,0x7d] v_cmpx_nlt_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x3c,0x7d] +// GFX11: v_cmpx_nlt_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x3c,0x7d] v_cmpx_nlt_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x3d,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlt_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5c,0x7d] v_cmpx_nlt_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5c,0x7d] v_cmpx_nlt_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5c,0x7d] v_cmpx_nlt_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5c,0x7d] v_cmpx_nlt_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x5c,0x7d] v_cmpx_nlt_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5c,0x7d] v_cmpx_nlt_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x5c,0x7d] v_cmpx_nlt_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x5c,0x7d] v_cmpx_nlt_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x5c,0x7d] v_cmpx_nlt_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5c,0x7d] v_cmpx_nlt_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x5c,0x7d] +// GFX11: v_cmpx_nlt_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5c,0x7d] v_cmpx_nlt_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x5d,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_nlt_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_o_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x0e,0x7d] v_cmpx_o_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x0e,0x7d] v_cmpx_o_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x0e,0x7d] v_cmpx_o_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x0e,0x7d] v_cmpx_o_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x0e,0x7d] v_cmpx_o_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x0e,0x7d] v_cmpx_o_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x0e,0x7d] v_cmpx_o_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x0e,0x7d] v_cmpx_o_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x0e,0x7d] v_cmpx_o_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x0e,0x7d] v_cmpx_o_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x0e,0x7d] v_cmpx_o_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x0e,0x7d] v_cmpx_o_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x0e,0x7d] v_cmpx_o_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x0e,0x7d] +// GFX11: v_cmpx_o_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x0e,0x7d] v_cmpx_o_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x0e,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_o_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0e,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_o_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x2e,0x7d] v_cmpx_o_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x2e,0x7d] v_cmpx_o_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x2e,0x7d] v_cmpx_o_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x2e,0x7d] v_cmpx_o_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x2e,0x7d] v_cmpx_o_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x2e,0x7d] v_cmpx_o_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x2e,0x7d] v_cmpx_o_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x2e,0x7d] v_cmpx_o_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x2e,0x7d] v_cmpx_o_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x2e,0x7d] v_cmpx_o_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x2e,0x7d] v_cmpx_o_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x2e,0x7d] v_cmpx_o_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x2e,0x7d] v_cmpx_o_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x2e,0x7d] +// GFX11: v_cmpx_o_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x2e,0x7d] v_cmpx_o_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x2f,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_o_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_o_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4e,0x7d] v_cmpx_o_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4e,0x7d] v_cmpx_o_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4e,0x7d] v_cmpx_o_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4e,0x7d] v_cmpx_o_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x4e,0x7d] v_cmpx_o_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4e,0x7d] v_cmpx_o_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x4e,0x7d] v_cmpx_o_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x4e,0x7d] v_cmpx_o_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x4e,0x7d] v_cmpx_o_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4e,0x7d] v_cmpx_o_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x4e,0x7d] +// GFX11: v_cmpx_o_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4e,0x7d] v_cmpx_o_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x4f,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_o_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_t_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x1e,0x7d] v_cmpx_t_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x1e,0x7d] v_cmpx_t_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x1e,0x7d] v_cmpx_t_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x1e,0x7d] v_cmpx_t_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x1e,0x7d] v_cmpx_t_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x1e,0x7d] v_cmpx_t_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x1e,0x7d] v_cmpx_t_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x1e,0x7d] v_cmpx_t_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x1e,0x7d] v_cmpx_t_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x1e,0x7d] v_cmpx_t_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x1e,0x7d] v_cmpx_t_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x1e,0x7d] v_cmpx_t_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x1e,0x7d] v_cmpx_t_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x1e,0x7d] v_cmpx_t_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x1e,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1e,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_t_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x3e,0x7d] v_cmpx_t_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x3e,0x7d] v_cmpx_t_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x3e,0x7d] v_cmpx_t_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x3e,0x7d] v_cmpx_t_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x3e,0x7d] v_cmpx_t_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x3e,0x7d] v_cmpx_t_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x3e,0x7d] v_cmpx_t_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x3e,0x7d] v_cmpx_t_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x3e,0x7d] v_cmpx_t_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x3e,0x7d] v_cmpx_t_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x3e,0x7d] v_cmpx_t_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x3e,0x7d] v_cmpx_t_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x3e,0x7d] v_cmpx_t_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x3e,0x7d] v_cmpx_t_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x3f,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_t_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5e,0x7d] v_cmpx_t_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5e,0x7d] v_cmpx_t_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5e,0x7d] v_cmpx_t_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5e,0x7d] v_cmpx_t_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x5e,0x7d] v_cmpx_t_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5e,0x7d] v_cmpx_t_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x5e,0x7d] v_cmpx_t_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x5e,0x7d] v_cmpx_t_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x5e,0x7d] v_cmpx_t_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5e,0x7d] v_cmpx_t_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5e,0x7d] v_cmpx_t_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x5f,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_t_i32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x8e,0x7d] v_cmpx_t_i32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x8e,0x7d] v_cmpx_t_i32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x8e,0x7d] v_cmpx_t_i32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x8e,0x7d] v_cmpx_t_i32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x8e,0x7d] v_cmpx_t_i32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x8e,0x7d] v_cmpx_t_i32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x8e,0x7d] v_cmpx_t_i32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x8e,0x7d] v_cmpx_t_i32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x8e,0x7d] v_cmpx_t_i32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x8e,0x7d] v_cmpx_t_i32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x8e,0x7d] v_cmpx_t_i32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x8e,0x7d] v_cmpx_t_i32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x8e,0x7d] v_cmpx_t_i32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x8e,0x7d] +// GFX11: v_cmpx_t_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x8e,0x7d] v_cmpx_t_i32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x8f,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_t_i64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xae,0x7d] v_cmpx_t_i64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xae,0x7d] v_cmpx_t_i64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xae,0x7d] v_cmpx_t_i64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xae,0x7d] v_cmpx_t_i64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xae,0x7d] v_cmpx_t_i64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xae,0x7d] v_cmpx_t_i64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xae,0x7d] v_cmpx_t_i64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xae,0x7d] v_cmpx_t_i64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xae,0x7d] v_cmpx_t_i64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xae,0x7d] v_cmpx_t_i64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xae,0x7d] +// GFX11: v_cmpx_t_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xae,0x7d] v_cmpx_t_i64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xaf,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xaf,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_t_u32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x9e,0x7d] v_cmpx_t_u32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x9e,0x7d] v_cmpx_t_u32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x9e,0x7d] v_cmpx_t_u32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x9e,0x7d] v_cmpx_t_u32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x9e,0x7d] v_cmpx_t_u32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x9e,0x7d] v_cmpx_t_u32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x9e,0x7d] v_cmpx_t_u32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x9e,0x7d] v_cmpx_t_u32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x9e,0x7d] v_cmpx_t_u32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x9e,0x7d] v_cmpx_t_u32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x9e,0x7d] v_cmpx_t_u32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x9e,0x7d] v_cmpx_t_u32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x9e,0x7d] v_cmpx_t_u32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x9e,0x7d] +// GFX11: v_cmpx_t_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x9e,0x7d] v_cmpx_t_u32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x9f,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_t_u64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xbe,0x7d] v_cmpx_t_u64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xbe,0x7d] v_cmpx_t_u64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xbe,0x7d] v_cmpx_t_u64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xbe,0x7d] v_cmpx_t_u64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xbe,0x7d] v_cmpx_t_u64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xbe,0x7d] v_cmpx_t_u64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xbe,0x7d] v_cmpx_t_u64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xbe,0x7d] v_cmpx_t_u64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xbe,0x7d] v_cmpx_t_u64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xbe,0x7d] v_cmpx_t_u64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0xbe,0x7d] +// GFX11: v_cmpx_t_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xbe,0x7d] v_cmpx_t_u64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0xbf,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbf,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_tru_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x1e,0x7d] v_cmpx_tru_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x1e,0x7d] v_cmpx_tru_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x1e,0x7d] v_cmpx_tru_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x1e,0x7d] v_cmpx_tru_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x1e,0x7d] v_cmpx_tru_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x1e,0x7d] v_cmpx_tru_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x1e,0x7d] v_cmpx_tru_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x1e,0x7d] v_cmpx_tru_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x1e,0x7d] v_cmpx_tru_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x1e,0x7d] v_cmpx_tru_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x1e,0x7d] v_cmpx_tru_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x1e,0x7d] v_cmpx_tru_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x1e,0x7d] v_cmpx_tru_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x1e,0x7d] +// GFX11: v_cmpx_t_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x1e,0x7d] v_cmpx_tru_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x1e,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_t_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1e,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_tru_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x3e,0x7d] v_cmpx_tru_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x3e,0x7d] v_cmpx_tru_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x3e,0x7d] v_cmpx_tru_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x3e,0x7d] v_cmpx_tru_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x3e,0x7d] v_cmpx_tru_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x3e,0x7d] v_cmpx_tru_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x3e,0x7d] v_cmpx_tru_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x3e,0x7d] v_cmpx_tru_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x3e,0x7d] v_cmpx_tru_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x3e,0x7d] v_cmpx_tru_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x3e,0x7d] v_cmpx_tru_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x3e,0x7d] v_cmpx_tru_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x3e,0x7d] v_cmpx_tru_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x3e,0x7d] +// GFX11: v_cmpx_t_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x3e,0x7d] v_cmpx_tru_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x3f,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_tru_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5e,0x7d] v_cmpx_tru_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5e,0x7d] v_cmpx_tru_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5e,0x7d] v_cmpx_tru_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5e,0x7d] v_cmpx_tru_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x5e,0x7d] v_cmpx_tru_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5e,0x7d] v_cmpx_tru_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x5e,0x7d] v_cmpx_tru_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x5e,0x7d] v_cmpx_tru_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x5e,0x7d] v_cmpx_tru_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5e,0x7d] v_cmpx_tru_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x5e,0x7d] +// GFX11: v_cmpx_t_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5e,0x7d] v_cmpx_tru_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x5f,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_t_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_u_f16 v1, v2 -// GFX11: encoding: [0x01,0x05,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x10,0x7d] v_cmpx_u_f16 v127, v2 -// GFX11: encoding: [0x7f,0x05,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x10,0x7d] v_cmpx_u_f16 s1, v2 -// GFX11: encoding: [0x01,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x10,0x7d] v_cmpx_u_f16 s105, v2 -// GFX11: encoding: [0x69,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x10,0x7d] v_cmpx_u_f16 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x10,0x7d] v_cmpx_u_f16 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x10,0x7d] v_cmpx_u_f16 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x10,0x7d] v_cmpx_u_f16 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x10,0x7d] v_cmpx_u_f16 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x10,0x7d] v_cmpx_u_f16 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x10,0x7d] v_cmpx_u_f16 null, v2 -// GFX11: encoding: [0x7c,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x10,0x7d] v_cmpx_u_f16 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x10,0x7d] v_cmpx_u_f16 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x10,0x7d] v_cmpx_u_f16 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x10,0x7d] +// GFX11: v_cmpx_u_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x10,0x7d] v_cmpx_u_f16 0xfe0b, v127 -// GFX11: encoding: [0xff,0xfe,0x10,0x7d,0x0b,0xfe,0x00,0x00] +// GFX11: v_cmpx_u_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x10,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_u_f32 v1, v2 -// GFX11: encoding: [0x01,0x05,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x30,0x7d] v_cmpx_u_f32 v255, v2 -// GFX11: encoding: [0xff,0x05,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x30,0x7d] v_cmpx_u_f32 s1, v2 -// GFX11: encoding: [0x01,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x30,0x7d] v_cmpx_u_f32 s105, v2 -// GFX11: encoding: [0x69,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x30,0x7d] v_cmpx_u_f32 vcc_lo, v2 -// GFX11: encoding: [0x6a,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x30,0x7d] v_cmpx_u_f32 vcc_hi, v2 -// GFX11: encoding: [0x6b,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x30,0x7d] v_cmpx_u_f32 ttmp15, v2 -// GFX11: encoding: [0x7b,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x30,0x7d] v_cmpx_u_f32 m0, v2 -// GFX11: encoding: [0x7d,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x30,0x7d] v_cmpx_u_f32 exec_lo, v2 -// GFX11: encoding: [0x7e,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x30,0x7d] v_cmpx_u_f32 exec_hi, v2 -// GFX11: encoding: [0x7f,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x30,0x7d] v_cmpx_u_f32 null, v2 -// GFX11: encoding: [0x7c,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x30,0x7d] v_cmpx_u_f32 -1, v2 -// GFX11: encoding: [0xc1,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x30,0x7d] v_cmpx_u_f32 0.5, v2 -// GFX11: encoding: [0xf0,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x30,0x7d] v_cmpx_u_f32 src_scc, v2 -// GFX11: encoding: [0xfd,0x04,0x30,0x7d] +// GFX11: v_cmpx_u_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x30,0x7d] v_cmpx_u_f32 0xaf123456, v255 -// GFX11: encoding: [0xff,0xfe,0x31,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_u_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x31,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_u_f64 v[1:2], v[2:3] -// GFX11: encoding: [0x01,0x05,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x50,0x7d] v_cmpx_u_f64 v[254:255], v[2:3] -// GFX11: encoding: [0xfe,0x05,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x50,0x7d] v_cmpx_u_f64 s[2:3], v[2:3] -// GFX11: encoding: [0x02,0x04,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x50,0x7d] v_cmpx_u_f64 s[104:105], v[2:3] -// GFX11: encoding: [0x68,0x04,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x50,0x7d] v_cmpx_u_f64 vcc, v[2:3] -// GFX11: encoding: [0x6a,0x04,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x50,0x7d] v_cmpx_u_f64 ttmp[14:15], v[2:3] -// GFX11: encoding: [0x7a,0x04,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x50,0x7d] v_cmpx_u_f64 exec, v[2:3] -// GFX11: encoding: [0x7e,0x04,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x50,0x7d] v_cmpx_u_f64 null, v[2:3] -// GFX11: encoding: [0x7c,0x04,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x50,0x7d] v_cmpx_u_f64 -1, v[2:3] -// GFX11: encoding: [0xc1,0x04,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x50,0x7d] v_cmpx_u_f64 0.5, v[2:3] -// GFX11: encoding: [0xf0,0x04,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x50,0x7d] v_cmpx_u_f64 src_scc, v[2:3] -// GFX11: encoding: [0xfd,0x04,0x50,0x7d] +// GFX11: v_cmpx_u_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x50,0x7d] v_cmpx_u_f64 0xaf123456, v[254:255] -// GFX11: encoding: [0xff,0xfc,0x51,0x7d,0x56,0x34,0x12,0xaf] +// GFX11: v_cmpx_u_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x51,0x7d,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp16.s b/llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp16.s index e46661df84a15..b2ea4348f33b8 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp16.s @@ -1,2690 +1,2691 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s v_cmpx_class_f16_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_class_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_class_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x40,0x01,0xff] v_cmpx_class_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x41,0x01,0xff] v_cmpx_class_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x01,0x01,0xff] v_cmpx_class_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_class_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x11,0x01,0xff] v_cmpx_class_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_class_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x21,0x01,0xff] v_cmpx_class_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_class_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_class_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x50,0x01,0xff] v_cmpx_class_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_class_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_class_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_class_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x60,0x09,0x13] v_cmpx_class_f16 -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xfa,0x7d,0x7f,0x6f,0x35,0x30] +// GFX11: v_cmpx_class_f16 -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfa,0x7d,0x7f,0x6f,0x35,0x30] v_cmpx_class_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_class_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_class_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x40,0x01,0xff] v_cmpx_class_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x41,0x01,0xff] v_cmpx_class_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x01,0x01,0xff] v_cmpx_class_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_class_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x11,0x01,0xff] v_cmpx_class_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_class_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x21,0x01,0xff] v_cmpx_class_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_class_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_class_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x50,0x01,0xff] v_cmpx_class_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_class_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_class_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_class_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x60,0x09,0x13] v_cmpx_class_f32 -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0xfd,0x7d,0xff,0x6f,0x35,0x30] +// GFX11: v_cmpx_class_f32 -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfd,0x7d,0xff,0x6f,0x35,0x30] v_cmpx_eq_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x04,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_eq_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x04,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_eq_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x25,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_eq_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x25,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_eq_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_i16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x64,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x64,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_eq_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_i32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x85,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x85,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_eq_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_u16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x74,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x74,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_eq_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_u32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_eq_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_eq_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_eq_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x95,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_eq_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x95,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_f_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_f_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_f_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x40,0x01,0xff] v_cmpx_f_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x41,0x01,0xff] v_cmpx_f_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x01,0x01,0xff] v_cmpx_f_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_f_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x11,0x01,0xff] v_cmpx_f_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_f_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x21,0x01,0xff] v_cmpx_f_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_f_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_f_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x50,0x01,0xff] v_cmpx_f_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_f_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_f_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x00,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_f_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x00,0x7d,0x01,0x60,0x09,0x13] v_cmpx_f_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x00,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_f_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x00,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_f_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_f_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_f_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x40,0x01,0xff] v_cmpx_f_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x41,0x01,0xff] v_cmpx_f_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x01,0x01,0xff] v_cmpx_f_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_f_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x11,0x01,0xff] v_cmpx_f_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_f_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x21,0x01,0xff] v_cmpx_f_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_f_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_f_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x50,0x01,0xff] v_cmpx_f_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_f_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_f_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x20,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_f_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x20,0x7d,0x01,0x60,0x09,0x13] v_cmpx_f_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x21,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_f_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x21,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_f_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_f_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_f_i32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x40,0x01,0xff] v_cmpx_f_i32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x41,0x01,0xff] v_cmpx_f_i32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x01,0x01,0xff] v_cmpx_f_i32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_f_i32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x11,0x01,0xff] v_cmpx_f_i32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_f_i32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x21,0x01,0xff] v_cmpx_f_i32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_f_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_f_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x50,0x01,0xff] v_cmpx_f_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_f_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_f_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x80,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_f_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x80,0x7d,0x01,0x60,0x09,0x13] v_cmpx_f_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x81,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_f_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x81,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_f_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_f_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_f_u32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x40,0x01,0xff] v_cmpx_f_u32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x41,0x01,0xff] v_cmpx_f_u32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x01,0x01,0xff] v_cmpx_f_u32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_f_u32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x11,0x01,0xff] v_cmpx_f_u32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_f_u32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x21,0x01,0xff] v_cmpx_f_u32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_f_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_f_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x50,0x01,0xff] v_cmpx_f_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_f_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_f_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x90,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_f_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x90,0x7d,0x01,0x60,0x09,0x13] v_cmpx_f_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x91,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_f_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x91,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_ge_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x0c,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_ge_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0c,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_ge_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x2d,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_ge_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2d,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_ge_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_i16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x6c,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6c,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_ge_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_i32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x8d,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8d,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_ge_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_u16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x7c,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7c,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_ge_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_u32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ge_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ge_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ge_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x9d,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ge_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9d,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_gt_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x08,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_gt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x08,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_gt_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x29,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_gt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x29,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_gt_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_i16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x68,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x68,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_gt_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_i32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x89,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x89,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_gt_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_u16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x78,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x78,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_gt_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_u32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_gt_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_gt_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_gt_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x99,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_gt_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x99,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_le_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x06,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_le_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x06,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_le_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x27,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_le_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x27,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_le_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_i16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_i16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_i16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_i16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_i16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_i16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_i16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_i16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x66,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x66,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_le_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_i32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_i32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_i32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_i32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_i32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_i32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_i32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_i32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x87,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x87,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_le_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_u16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_u16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_u16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_u16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_u16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_u16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_u16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_u16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x76,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x76,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_le_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_u32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_u32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_u32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_u32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_u32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_u32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_u32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_u32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_le_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_le_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_le_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x97,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_le_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x97,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_lg_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lg_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lg_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lg_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lg_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lg_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lg_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lg_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x0a,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_lg_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0a,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_lg_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lg_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lg_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lg_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lg_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lg_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lg_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lg_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x2b,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_lg_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2b,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_lt_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x02,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_lt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x02,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_lt_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x23,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_lt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x23,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_lt_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_i16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x62,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x62,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_lt_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_i32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x83,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x83,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_lt_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_u16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x72,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x72,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_lt_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_u32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_lt_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_lt_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_lt_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x93,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_lt_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x93,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_ne_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ne_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ne_i16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ne_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ne_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ne_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ne_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ne_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x6a,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_ne_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6a,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_ne_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ne_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ne_i32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ne_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ne_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ne_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ne_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ne_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x8b,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ne_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8b,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_ne_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ne_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ne_u16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ne_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ne_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ne_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ne_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ne_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x7a,0x7d,0x7f,0x6f,0x05,0x30] +// GFX11: v_cmpx_ne_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7a,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_ne_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ne_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ne_u32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ne_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ne_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ne_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ne_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ne_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x9b,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_ne_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9b,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_neq_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_neq_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_neq_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_neq_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_neq_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_neq_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_neq_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_neq_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x1a,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_neq_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1a,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_neq_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_neq_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_neq_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_neq_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_neq_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_neq_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_neq_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_neq_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x3b,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_neq_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3b,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_nge_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nge_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nge_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nge_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nge_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nge_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nge_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nge_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x12,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_nge_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x12,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_nge_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nge_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nge_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nge_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nge_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nge_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nge_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nge_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x33,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_nge_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x33,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_ngt_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ngt_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ngt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ngt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ngt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x16,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_ngt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x16,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_ngt_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ngt_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ngt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_ngt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ngt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x37,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_ngt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x37,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_nle_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nle_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nle_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nle_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nle_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nle_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nle_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nle_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x18,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_nle_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x18,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_nle_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nle_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nle_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nle_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nle_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nle_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nle_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nle_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x39,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_nle_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x39,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_nlg_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nlg_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nlg_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nlg_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nlg_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x14,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_nlg_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x14,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_nlg_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nlg_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nlg_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nlg_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nlg_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x35,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_nlg_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x35,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_nlt_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nlt_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nlt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nlt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nlt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x1c,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_nlt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1c,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_nlt_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nlt_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nlt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_nlt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nlt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x3d,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_nlt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3d,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_o_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_o_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_o_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_o_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_o_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_o_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_o_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_o_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_o_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_o_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_o_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_o_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_o_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_o_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_o_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_o_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_o_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x0e,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_o_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0e,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_o_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_o_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_o_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_o_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_o_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_o_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_o_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_o_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_o_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_o_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_o_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_o_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_o_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_o_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_o_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_o_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_o_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x2f,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_o_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2f,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_t_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_t_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_t_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_t_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_t_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_t_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_t_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_t_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_t_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_t_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_t_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_t_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_t_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_t_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x1e,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_t_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1e,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_t_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_t_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_t_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_t_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_t_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_t_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_t_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_t_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_t_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_t_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_t_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_t_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_t_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_t_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x3f,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_t_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3f,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_t_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_t_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_t_i32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_t_i32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_t_i32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_t_i32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_t_i32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_t_i32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_t_i32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_t_i32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_t_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_t_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_t_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_t_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x8f,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_t_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8f,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_t_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_t_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_t_u32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_t_u32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_t_u32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_t_u32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_t_u32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_t_u32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_t_u32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_t_u32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_t_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_t_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_t_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_t_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x9f,0x7d,0xff,0x6f,0x05,0x30] +// GFX11: v_cmpx_t_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9f,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_tru_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_tru_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_tru_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_tru_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_tru_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_tru_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_tru_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_tru_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_tru_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_tru_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_tru_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_tru_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_tru_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_tru_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x1e,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_t_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1e,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_tru_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_tru_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_tru_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_tru_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_tru_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_tru_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_tru_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_tru_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_tru_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_tru_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_tru_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_t_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_tru_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_t_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_tru_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_t_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_tru_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x3f,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_t_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3f,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_u_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_u_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_u_f16 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x40,0x01,0xff] v_cmpx_u_f16 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x41,0x01,0xff] v_cmpx_u_f16 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x01,0x01,0xff] v_cmpx_u_f16 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_u_f16 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x11,0x01,0xff] v_cmpx_u_f16 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_u_f16 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x21,0x01,0xff] v_cmpx_u_f16 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_u_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_u_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x50,0x01,0xff] v_cmpx_u_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_u_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_u_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_u_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x60,0x09,0x13] v_cmpx_u_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x10,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX11: v_cmpx_u_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x10,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_u_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x1b,0x00,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_u_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0xe4,0x00,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_u_f32 v1, v2 row_mirror -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x40,0x01,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x40,0x01,0xff] v_cmpx_u_f32 v1, v2 row_half_mirror -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x41,0x01,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x41,0x01,0xff] v_cmpx_u_f32 v1, v2 row_shl:1 -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x01,0x01,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x01,0x01,0xff] v_cmpx_u_f32 v1, v2 row_shl:15 -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x0f,0x01,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_u_f32 v1, v2 row_shr:1 -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x11,0x01,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x11,0x01,0xff] v_cmpx_u_f32 v1, v2 row_shr:15 -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x1f,0x01,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_u_f32 v1, v2 row_ror:1 -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x21,0x01,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x21,0x01,0xff] v_cmpx_u_f32 v1, v2 row_ror:15 -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x2f,0x01,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_u_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x50,0x01,0xff] +// GFX11: v_cmpx_u_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x50,0x01,0xff] v_cmpx_u_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x5f,0x01,0x01] +// GFX11: v_cmpx_u_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_u_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX11: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x60,0x09,0x13] +// GFX11: v_cmpx_u_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x60,0x09,0x13] v_cmpx_u_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX11: encoding: [0xfa,0xfe,0x31,0x7d,0xff,0x6f,0xf5,0x30] +// GFX11: v_cmpx_u_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x31,0x7d,0xff,0x6f,0xf5,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp8.s b/llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp8.s index 5062f901d2aa3..b4c556cf0328a 100644 --- a/llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_vopcx_dpp8.s @@ -1,578 +1,579 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1100 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX11 %s v_cmpx_class_f16_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] v_cmpx_class_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xfa,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_class_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfa,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05] v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05] v_cmpx_class_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0xfd,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_class_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfd,0x7d,0xff,0x00,0x00,0x00] v_cmpx_eq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x04,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x04,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x04,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x04,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x04,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x04,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_eq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x24,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x24,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x24,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x24,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x25,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x25,0x7d,0xff,0x00,0x00,0x00] v_cmpx_eq_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x64,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x64,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x64,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x64,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x64,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x64,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_eq_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x84,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x84,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x84,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x84,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x85,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x85,0x7d,0xff,0x00,0x00,0x00] v_cmpx_eq_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x74,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x74,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x74,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x74,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x74,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x74,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_eq_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x94,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x94,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x94,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_eq_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x94,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x95,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_eq_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x95,0x7d,0xff,0x00,0x00,0x00] v_cmpx_f_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x00,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x00,0x7d,0x01,0x77,0x39,0x05] v_cmpx_f_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x00,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x00,0x7d,0x01,0x77,0x39,0x05] v_cmpx_f_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x00,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_f_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x00,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_f_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x20,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x20,0x7d,0x01,0x77,0x39,0x05] v_cmpx_f_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x20,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x20,0x7d,0x01,0x77,0x39,0x05] v_cmpx_f_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x21,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_f_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x21,0x7d,0xff,0x00,0x00,0x00] v_cmpx_f_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x80,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x80,0x7d,0x01,0x77,0x39,0x05] v_cmpx_f_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x80,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x80,0x7d,0x01,0x77,0x39,0x05] v_cmpx_f_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x81,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_f_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x81,0x7d,0xff,0x00,0x00,0x00] v_cmpx_f_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x90,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x90,0x7d,0x01,0x77,0x39,0x05] v_cmpx_f_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x90,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_f_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x90,0x7d,0x01,0x77,0x39,0x05] v_cmpx_f_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x91,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_f_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x91,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x0c,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0c,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x2c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x2c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x2d,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2d,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ge_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x6c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x6c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x6c,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6c,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ge_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x8c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x8c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x8d,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8d,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ge_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x7c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x7c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x7c,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7c,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ge_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x9c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x9c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ge_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x9d,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ge_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9d,0x7d,0xff,0x00,0x00,0x00] v_cmpx_gt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x08,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x08,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x08,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x08,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x08,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x08,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_gt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x28,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x28,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x28,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x28,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x29,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x29,0x7d,0xff,0x00,0x00,0x00] v_cmpx_gt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x68,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x68,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x68,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x68,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x68,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x68,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_gt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x88,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x88,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x88,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x88,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x89,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x89,0x7d,0xff,0x00,0x00,0x00] v_cmpx_gt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x78,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x78,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x78,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x78,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x78,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x78,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_gt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x98,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x98,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x98,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_gt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x98,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x99,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_gt_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x99,0x7d,0xff,0x00,0x00,0x00] v_cmpx_le_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x06,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x06,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x06,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x06,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x06,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_le_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x06,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_le_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x26,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x26,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x26,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x26,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x27,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_le_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x27,0x7d,0xff,0x00,0x00,0x00] v_cmpx_le_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x66,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x66,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x66,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x66,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x66,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_le_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x66,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_le_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x86,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x86,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x86,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x86,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x87,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_le_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x87,0x7d,0xff,0x00,0x00,0x00] v_cmpx_le_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x76,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x76,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x76,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x76,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x76,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_le_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x76,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_le_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x96,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x96,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x96,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_le_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x96,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x97,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_le_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x97,0x7d,0xff,0x00,0x00,0x00] v_cmpx_lg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lg_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x0a,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_lg_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0a,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_lg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x2a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x2a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lg_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x2b,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lg_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2b,0x7d,0xff,0x00,0x00,0x00] v_cmpx_lt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x02,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x02,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x02,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x02,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x02,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x02,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_lt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x22,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x22,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x22,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x22,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x23,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x23,0x7d,0xff,0x00,0x00,0x00] v_cmpx_lt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x62,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x62,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x62,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x62,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x62,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x62,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_lt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x82,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x82,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x82,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x82,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x83,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x83,0x7d,0xff,0x00,0x00,0x00] v_cmpx_lt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x72,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x72,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x72,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x72,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x72,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x72,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_lt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x92,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x92,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x92,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_lt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x92,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x93,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_lt_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x93,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ne_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x6a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x6a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x6a,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_ne_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6a,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ne_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x8a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x8a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x8b,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ne_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8b,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ne_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x7a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x7a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x7a,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_ne_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7a,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ne_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x9a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x9a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ne_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x9b,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ne_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9b,0x7d,0xff,0x00,0x00,0x00] v_cmpx_neq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x1a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_neq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x1a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_neq_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x1a,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_neq_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1a,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_neq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x3a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_neq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x3a,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_neq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_neq_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x3b,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_neq_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3b,0x7d,0xff,0x00,0x00,0x00] v_cmpx_nge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x12,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x12,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x12,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x12,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nge_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x12,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_nge_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x12,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_nge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x32,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x32,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x32,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x32,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nge_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x33,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nge_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x33,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ngt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x16,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x16,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x16,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x16,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x16,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_ngt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x16,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ngt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x36,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x36,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x36,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_ngt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x36,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x37,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_ngt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x37,0x7d,0xff,0x00,0x00,0x00] v_cmpx_nle_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x18,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x18,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nle_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x18,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x18,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nle_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x18,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_nle_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x18,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_nle_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x38,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x38,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nle_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x38,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nle_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x38,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nle_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x39,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nle_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x39,0x7d,0xff,0x00,0x00,0x00] v_cmpx_nlg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x14,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x14,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x14,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x14,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x14,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_nlg_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x14,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_nlg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x34,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x34,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x34,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x34,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x35,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nlg_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x35,0x7d,0xff,0x00,0x00,0x00] v_cmpx_nlt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x1c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x1c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x1c,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_nlt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1c,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_nlt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x3c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x3c,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_nlt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x3d,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_nlt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3d,0x7d,0xff,0x00,0x00,0x00] v_cmpx_o_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x0e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_o_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x0e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_o_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x0e,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_o_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0e,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_o_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x2e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_o_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x2e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_o_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_o_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x2f,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_o_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2f,0x7d,0xff,0x00,0x00,0x00] v_cmpx_t_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x1e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_t_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x1e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_t_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x1e,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_t_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1e,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_t_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x3e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_t_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x3e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_t_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x3f,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3f,0x7d,0xff,0x00,0x00,0x00] v_cmpx_t_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x8e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_t_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x8e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_t_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x8f,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8f,0x7d,0xff,0x00,0x00,0x00] v_cmpx_t_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x9e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_t_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x9e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_t_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x9f,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9f,0x7d,0xff,0x00,0x00,0x00] v_cmpx_tru_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x1e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_tru_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x1e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_tru_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x1e,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_t_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1e,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_tru_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x3e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_tru_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x3e,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_t_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_tru_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x3f,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_t_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3f,0x7d,0xff,0x00,0x00,0x00] v_cmpx_u_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x10,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x10,0x7d,0x01,0x77,0x39,0x05] v_cmpx_u_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x10,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x10,0x7d,0x01,0x77,0x39,0x05] v_cmpx_u_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x10,0x7d,0x7f,0x00,0x00,0x00] +// GFX11: v_cmpx_u_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x10,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_u_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX11: encoding: [0xe9,0x04,0x30,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x30,0x7d,0x01,0x77,0x39,0x05] v_cmpx_u_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX11: encoding: [0xea,0x04,0x30,0x7d,0x01,0x77,0x39,0x05] +// GFX11: v_cmpx_u_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x30,0x7d,0x01,0x77,0x39,0x05] v_cmpx_u_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX11: encoding: [0xe9,0xfe,0x31,0x7d,0xff,0x00,0x00,0x00] +// GFX11: v_cmpx_u_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x31,0x7d,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vbuffer_mubuf.s b/llvm/test/MC/AMDGPU/gfx12_asm_vbuffer_mubuf.s index efeaf8339f692..40ea9bb3678d9 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vbuffer_mubuf.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vbuffer_mubuf.s @@ -2636,16 +2636,16 @@ buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:8388607 th:TH_ATOMIC_CASCA // GFX12: encoding: [0x03,0x80,0x16,0xc4,0x05,0x10,0xe8,0x00,0x00,0xff,0xff,0x7f] buffer_atomic_pk_add_bf16 v5, off, s[8:11], 0 offset:8388607 -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode buffer_atomic_pk_add_bf16 v5, off, s[8:11], -1 offset:8388607 -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode buffer_atomic_pk_add_bf16 v5, off, s[8:11], 0.5 offset:8388607 -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode buffer_atomic_pk_add_bf16 v5, off, s[8:11], -4.0 offset:8388607 -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:8388607 glc // GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop2.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop2.s index d777f6d29a613..0becad77b64dd 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop2.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop2.s @@ -1,2596 +1,2561 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo -// W32: encoding: [0x01,0x05,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo ; encoding: [0x01,0x05,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v255, v2, vcc_lo -// W32: encoding: [0xff,0x05,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, v255, v2, vcc_lo ; encoding: [0xff,0x05,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, s1, v2, vcc_lo -// W32: encoding: [0x01,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, s1, v2, vcc_lo ; encoding: [0x01,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, s105, v2, vcc_lo -// W32: encoding: [0x69,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, s105, v2, vcc_lo ; encoding: [0x69,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, vcc_lo, v2, vcc_lo -// W32: encoding: [0x6a,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, vcc_lo, v2, vcc_lo ; encoding: [0x6a,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, vcc_hi, v2, vcc_lo -// W32: encoding: [0x6b,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, vcc_hi, v2, vcc_lo ; encoding: [0x6b,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, ttmp15, v2, vcc_lo -// W32: encoding: [0x7b,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, ttmp15, v2, vcc_lo ; encoding: [0x7b,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, m0, v2, vcc_lo -// W32: encoding: [0x7d,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, m0, v2, vcc_lo ; encoding: [0x7d,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, exec_lo, v2, vcc_lo -// W32: encoding: [0x7e,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, exec_lo, v2, vcc_lo ; encoding: [0x7e,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, exec_hi, v2, vcc_lo -// W32: encoding: [0x7f,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, exec_hi, v2, vcc_lo ; encoding: [0x7f,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, null, v2, vcc_lo -// W32: encoding: [0x7c,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, null, v2, vcc_lo ; encoding: [0x7c,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, -1, v2, vcc_lo -// W32: encoding: [0xc1,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, -1, v2, vcc_lo ; encoding: [0xc1,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, 0.5, v2, vcc_lo -// W32: encoding: [0xf0,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, 0.5, v2, vcc_lo ; encoding: [0xf0,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, src_scc, v2, vcc_lo -// W32: encoding: [0xfd,0x04,0x0a,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v5, vcc_lo, src_scc, v2, vcc_lo ; encoding: [0xfd,0x04,0x0a,0x40] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc_lo, 0xaf123456, v255, vcc_lo -// W32: encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_e32 v255, vcc_lo, 0xaf123456, v255, vcc_lo ; encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc -// W64: encoding: [0x01,0x05,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, v1, v2, vcc ; encoding: [0x01,0x05,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v255, v2, vcc -// W64: encoding: [0xff,0x05,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, v255, v2, vcc ; encoding: [0xff,0x05,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, s1, v2, vcc -// W64: encoding: [0x01,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, s1, v2, vcc ; encoding: [0x01,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, s105, v2, vcc -// W64: encoding: [0x69,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, s105, v2, vcc ; encoding: [0x69,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, vcc_lo, v2, vcc -// W64: encoding: [0x6a,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, vcc_lo, v2, vcc ; encoding: [0x6a,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, vcc_hi, v2, vcc -// W64: encoding: [0x6b,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, vcc_hi, v2, vcc ; encoding: [0x6b,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, ttmp15, v2, vcc -// W64: encoding: [0x7b,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, ttmp15, v2, vcc ; encoding: [0x7b,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, m0, v2, vcc -// W64: encoding: [0x7d,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, m0, v2, vcc ; encoding: [0x7d,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, exec_lo, v2, vcc -// W64: encoding: [0x7e,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, exec_lo, v2, vcc ; encoding: [0x7e,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, exec_hi, v2, vcc -// W64: encoding: [0x7f,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, exec_hi, v2, vcc ; encoding: [0x7f,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, null, v2, vcc -// W64: encoding: [0x7c,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, null, v2, vcc ; encoding: [0x7c,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, -1, v2, vcc -// W64: encoding: [0xc1,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, -1, v2, vcc ; encoding: [0xc1,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, 0.5, v2, vcc -// W64: encoding: [0xf0,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, 0.5, v2, vcc ; encoding: [0xf0,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, src_scc, v2, vcc -// W64: encoding: [0xfd,0x04,0x0a,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v5, vcc, src_scc, v2, vcc ; encoding: [0xfd,0x04,0x0a,0x40] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc, 0xaf123456, v255, vcc -// W64: encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_e32 v255, vcc, 0xaf123456, v255, vcc ; encoding: [0xff,0xfe,0xff,0x41,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_f16 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x64] v_add_f16 v5, v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x64] v_add_f16 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x64] v_add_f16 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x64] v_add_f16 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x64] v_add_f16 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x64] v_add_f16 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x64] v_add_f16 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x64] v_add_f16 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x64] v_add_f16 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x64] v_add_f16 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x64] v_add_f16 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x64] v_add_f16 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x64] v_add_f16 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x64] +// GFX12: v_add_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x64] v_add_f16 v127, 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0xfe,0x64,0x0b,0xfe,0x00,0x00] +// GFX12: v_add_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x64,0x0b,0xfe,0x00,0x00] v_add_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x06] v_add_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x06] v_add_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x06] v_add_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x06] v_add_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x06] v_add_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x06] v_add_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x06] v_add_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x06] v_add_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x06] v_add_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x06] v_add_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x06] v_add_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x06] v_add_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x06] v_add_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x06] +// GFX12: v_add_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x06] v_add_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_add_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x07,0x56,0x34,0x12,0xaf] v_add_f64 v[5:6], v[1:2], v[3:4] -// GFX12: encoding: [0x01,0x07,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], v[1:2], v[3:4] ; encoding: [0x01,0x07,0x0a,0x04] v_add_f64 v[5:6], v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x0a,0x04] v_add_f64 v[5:6], s[0:1], v[2:3] -// GFX12: encoding: [0x00,0x04,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], s[0:1], v[2:3] ; encoding: [0x00,0x04,0x0a,0x04] v_add_f64 v[5:6], s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], s[104:105], v[2:3] ; encoding: [0x68,0x04,0x0a,0x04] v_add_f64 v[5:6], vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], vcc, v[2:3] ; encoding: [0x6a,0x04,0x0a,0x04] v_add_f64 v[5:6], ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x0a,0x04] v_add_f64 v[5:6], exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], exec, v[2:3] ; encoding: [0x7e,0x04,0x0a,0x04] v_add_f64 v[5:6], null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], null, v[2:3] ; encoding: [0x7c,0x04,0x0a,0x04] v_add_f64 v[5:6], -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], -1, v[2:3] ; encoding: [0xc1,0x04,0x0a,0x04] v_add_f64 v[5:6], 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], 0.5, v[2:3] ; encoding: [0xf0,0x04,0x0a,0x04] v_add_f64 v[5:6], src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x0a,0x04] +// GFX12: v_add_f64_e32 v[5:6], src_scc, v[2:3] ; encoding: [0xfd,0x04,0x0a,0x04] v_add_f64 v[254:255], 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xfd,0x05,0x56,0x34,0x12,0xaf] +// GFX12: v_add_f64_e32 v[254:255], 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xfd,0x05,0x56,0x34,0x12,0xaf] v_add_nc_u32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x4a] v_add_nc_u32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x4a] v_add_nc_u32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x4a] v_add_nc_u32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x4a] v_add_nc_u32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x4a] v_add_nc_u32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x4a] v_add_nc_u32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x4a] v_add_nc_u32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x4a] v_add_nc_u32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x4a] v_add_nc_u32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x4a] v_add_nc_u32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x4a] v_add_nc_u32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x4a] v_add_nc_u32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x4a] v_add_nc_u32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x4a] +// GFX12: v_add_nc_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x4a] v_add_nc_u32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x4b,0x56,0x34,0x12,0xaf] +// GFX12: v_add_nc_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x4b,0x56,0x34,0x12,0xaf] v_and_b32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x36] v_and_b32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x36] v_and_b32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x36] v_and_b32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x36] v_and_b32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x36] v_and_b32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x36] v_and_b32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x36] v_and_b32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x36] v_and_b32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x36] v_and_b32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x36] v_and_b32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x36] v_and_b32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x36] v_and_b32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x36] v_and_b32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x36] +// GFX12: v_and_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x36] v_and_b32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x37,0x56,0x34,0x12,0xaf] +// GFX12: v_and_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x37,0x56,0x34,0x12,0xaf] v_ashrrev_i32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x34] v_ashrrev_i32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x34] v_ashrrev_i32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x34] v_ashrrev_i32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x34] v_ashrrev_i32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x34] v_ashrrev_i32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x34] v_ashrrev_i32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x34] v_ashrrev_i32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x34] v_ashrrev_i32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x34] v_ashrrev_i32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x34] v_ashrrev_i32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x34] v_ashrrev_i32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x34] v_ashrrev_i32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x34] v_ashrrev_i32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x34] +// GFX12: v_ashrrev_i32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x34] v_ashrrev_i32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x35,0x56,0x34,0x12,0xaf] +// GFX12: v_ashrrev_i32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x35,0x56,0x34,0x12,0xaf] v_cndmask_b32 v5, v1, v2, vcc_lo -// W32: encoding: [0x01,0x05,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, v1, v2, vcc_lo ; encoding: [0x01,0x05,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v255, v2, vcc_lo -// W32: encoding: [0xff,0x05,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, v255, v2, vcc_lo ; encoding: [0xff,0x05,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, s1, v2, vcc_lo -// W32: encoding: [0x01,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, s1, v2, vcc_lo ; encoding: [0x01,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, s105, v2, vcc_lo -// W32: encoding: [0x69,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, s105, v2, vcc_lo ; encoding: [0x69,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, vcc_lo, v2, vcc_lo -// W32: encoding: [0x6a,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, vcc_lo, v2, vcc_lo ; encoding: [0x6a,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, vcc_hi, v2, vcc_lo -// W32: encoding: [0x6b,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, vcc_hi, v2, vcc_lo ; encoding: [0x6b,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, ttmp15, v2, vcc_lo -// W32: encoding: [0x7b,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, ttmp15, v2, vcc_lo ; encoding: [0x7b,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, m0, v2, vcc_lo -// W32: encoding: [0x7d,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, m0, v2, vcc_lo ; encoding: [0x7d,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, exec_lo, v2, vcc_lo -// W32: encoding: [0x7e,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, exec_lo, v2, vcc_lo ; encoding: [0x7e,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, exec_hi, v2, vcc_lo -// W32: encoding: [0x7f,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, exec_hi, v2, vcc_lo ; encoding: [0x7f,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, null, v2, vcc_lo -// W32: encoding: [0x7c,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, null, v2, vcc_lo ; encoding: [0x7c,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, -1, v2, vcc_lo -// W32: encoding: [0xc1,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, -1, v2, vcc_lo ; encoding: [0xc1,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, 0.5, v2, vcc_lo -// W32: encoding: [0xf0,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, 0.5, v2, vcc_lo ; encoding: [0xf0,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, src_scc, v2, vcc_lo -// W32: encoding: [0xfd,0x04,0x0a,0x02] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v5, src_scc, v2, vcc_lo ; encoding: [0xfd,0x04,0x0a,0x02] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, 0xaf123456, v255, vcc_lo -// W32: encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_e32 v255, 0xaf123456, v255, vcc_lo ; encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc -// W64: encoding: [0x01,0x05,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, v1, v2, vcc ; encoding: [0x01,0x05,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v255, v2, vcc -// W64: encoding: [0xff,0x05,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, v255, v2, vcc ; encoding: [0xff,0x05,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, s1, v2, vcc -// W64: encoding: [0x01,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, s1, v2, vcc ; encoding: [0x01,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, s105, v2, vcc -// W64: encoding: [0x69,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, s105, v2, vcc ; encoding: [0x69,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, vcc_lo, v2, vcc -// W64: encoding: [0x6a,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, vcc_lo, v2, vcc ; encoding: [0x6a,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, vcc_hi, v2, vcc -// W64: encoding: [0x6b,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, vcc_hi, v2, vcc ; encoding: [0x6b,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, ttmp15, v2, vcc -// W64: encoding: [0x7b,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, ttmp15, v2, vcc ; encoding: [0x7b,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, m0, v2, vcc -// W64: encoding: [0x7d,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, m0, v2, vcc ; encoding: [0x7d,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, exec_lo, v2, vcc -// W64: encoding: [0x7e,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, exec_lo, v2, vcc ; encoding: [0x7e,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, exec_hi, v2, vcc -// W64: encoding: [0x7f,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, exec_hi, v2, vcc ; encoding: [0x7f,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, null, v2, vcc -// W64: encoding: [0x7c,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, null, v2, vcc ; encoding: [0x7c,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, -1, v2, vcc -// W64: encoding: [0xc1,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, -1, v2, vcc ; encoding: [0xc1,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, 0.5, v2, vcc -// W64: encoding: [0xf0,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, 0.5, v2, vcc ; encoding: [0xf0,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, src_scc, v2, vcc -// W64: encoding: [0xfd,0x04,0x0a,0x02] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v5, src_scc, v2, vcc ; encoding: [0xfd,0x04,0x0a,0x02] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, 0xaf123456, v255, vcc -// W64: encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_e32 v255, 0xaf123456, v255, vcc ; encoding: [0xff,0xfe,0xff,0x03,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cvt_pk_rtz_f16_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x5e] v_cvt_pk_rtz_f16_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf] v_cvt_pkrtz_f16_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x5e] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x5e] v_cvt_pkrtz_f16_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_rtz_f16_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x5f,0x56,0x34,0x12,0xaf] -v_fmaak_f16 v5.l, v1.l, v2.l, 0xfe0b -// GFX12: encoding: [0x01,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, v1, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, v1, v2, 0xfe0b ; encoding: [0x01,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, v127.l, v2.l, 0xfe0b -// GFX12: encoding: [0x7f,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, v127, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, v127, v2, 0xfe0b ; encoding: [0x7f,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, s1, v2.l, 0xfe0b -// GFX12: encoding: [0x01,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, s1, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, s1, v2, 0xfe0b ; encoding: [0x01,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, s105, v2.l, 0xfe0b -// GFX12: encoding: [0x69,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, s105, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, s105, v2, 0xfe0b ; encoding: [0x69,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, vcc_lo, v2.l, 0xfe0b -// GFX12: encoding: [0x6a,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, vcc_lo, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, vcc_lo, v2, 0xfe0b ; encoding: [0x6a,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, vcc_hi, v2.l, 0xfe0b -// GFX12: encoding: [0x6b,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, vcc_hi, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, vcc_hi, v2, 0xfe0b ; encoding: [0x6b,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, ttmp15, v2.l, 0xfe0b -// GFX12: encoding: [0x7b,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, ttmp15, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, ttmp15, v2, 0xfe0b ; encoding: [0x7b,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, m0, v2.l, 0xfe0b -// GFX12: encoding: [0x7d,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, m0, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, m0, v2, 0xfe0b ; encoding: [0x7d,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, exec_lo, v2.l, 0xfe0b -// GFX12: encoding: [0x7e,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, exec_lo, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, exec_lo, v2, 0xfe0b ; encoding: [0x7e,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, exec_hi, v2.l, 0xfe0b -// GFX12: encoding: [0x7f,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, exec_hi, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, exec_hi, v2, 0xfe0b ; encoding: [0x7f,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, null, v2.l, 0xfe0b -// GFX12: encoding: [0x7c,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, null, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, null, v2, 0xfe0b ; encoding: [0x7c,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, -1, v2.l, 0xfe0b -// GFX12: encoding: [0xc1,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, -1, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, -1, v2, 0xfe0b ; encoding: [0xc1,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, 0.5, v2.l, 0xfe0b -// GFX12: encoding: [0xf0,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, 0.5, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, 0.5, v2, 0xfe0b ; encoding: [0xf0,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v5.l, src_scc, v2.l, 0xfe0b -// GFX12: encoding: [0xfd,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v5, src_scc, v2, 0xfe0b +// GFX12: v_fmaak_f16 v5, src_scc, v2, 0xfe0b ; encoding: [0xfd,0x04,0x0a,0x70,0x0b,0xfe,0x00,0x00] -v_fmaak_f16 v127.l, 0xfe0b, v127.l, 0xfe0b -// GFX12: encoding: [0xff,0xfe,0xfe,0x70,0x0b,0xfe,0x00,0x00] - -v_fmaak_f16 v5.l, v1.h, v2.l, 0xfe0b -// GFX12: encoding: [0x81,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] - -v_fmaak_f16 v5.l, v127.h, v2.l, 0xfe0b -// GFX12: encoding: [0xff,0x05,0x0a,0x70,0x0b,0xfe,0x00,0x00] - -v_fmaak_f16 v5.h, src_scc, v2.h, 0xfe0b -// GFX12: encoding: [0xfd,0x04,0x0b,0x71,0x0b,0xfe,0x00,0x00] - -v_fmaak_f16 v127.h, 0xfe0b, v127.h, 0xfe0b -// GFX12: encoding: [0xff,0xfe,0xff,0x71,0x0b,0xfe,0x00,0x00] +v_fmaak_f16 v127, 0xfe0b, v127, 0xfe0b +// GFX12: v_fmaak_f16 v127, 0xfe0b, v127, 0xfe0b ; encoding: [0xff,0xfe,0xfe,0x70,0x0b,0xfe,0x00,0x00] v_fmaak_f32 v5, v1, v2, 0xaf123456 -// GFX12: encoding: [0x01,0x05,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, v1, v2, 0xaf123456 ; encoding: [0x01,0x05,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, v255, v2, 0xaf123456 -// GFX12: encoding: [0xff,0x05,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, v255, v2, 0xaf123456 ; encoding: [0xff,0x05,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, s1, v2, 0xaf123456 -// GFX12: encoding: [0x01,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, s1, v2, 0xaf123456 ; encoding: [0x01,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, s105, v2, 0xaf123456 -// GFX12: encoding: [0x69,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, s105, v2, 0xaf123456 ; encoding: [0x69,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, vcc_lo, v2, 0xaf123456 -// GFX12: encoding: [0x6a,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, vcc_lo, v2, 0xaf123456 ; encoding: [0x6a,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, vcc_hi, v2, 0xaf123456 -// GFX12: encoding: [0x6b,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, vcc_hi, v2, 0xaf123456 ; encoding: [0x6b,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, ttmp15, v2, 0xaf123456 -// GFX12: encoding: [0x7b,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, ttmp15, v2, 0xaf123456 ; encoding: [0x7b,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, m0, v2, 0xaf123456 -// GFX12: encoding: [0x7d,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, m0, v2, 0xaf123456 ; encoding: [0x7d,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, exec_lo, v2, 0xaf123456 -// GFX12: encoding: [0x7e,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, exec_lo, v2, 0xaf123456 ; encoding: [0x7e,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, exec_hi, v2, 0xaf123456 -// GFX12: encoding: [0x7f,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, exec_hi, v2, 0xaf123456 ; encoding: [0x7f,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, null, v2, 0xaf123456 -// GFX12: encoding: [0x7c,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, null, v2, 0xaf123456 ; encoding: [0x7c,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, -1, v2, 0xaf123456 -// GFX12: encoding: [0xc1,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, -1, v2, 0xaf123456 ; encoding: [0xc1,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, 0.5, v2, 0xaf123456 -// GFX12: encoding: [0xf0,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, 0.5, v2, 0xaf123456 ; encoding: [0xf0,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v5, src_scc, v2, 0xaf123456 -// GFX12: encoding: [0xfd,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] +// GFX12: v_fmaak_f32 v5, src_scc, v2, 0xaf123456 ; encoding: [0xfd,0x04,0x0a,0x5a,0x56,0x34,0x12,0xaf] v_fmaak_f32 v255, 0xaf123456, v255, 0xaf123456 -// GFX12: encoding: [0xff,0xfe,0xff,0x5b,0x56,0x34,0x12,0xaf] - -v_fmac_f16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x01,0x05,0x0a,0x6c] - -v_fmac_f16 v5.l, v127.l, v2.l -// GFX12: encoding: [0x7f,0x05,0x0a,0x6c] +// GFX12: v_fmaak_f32 v255, 0xaf123456, v255, 0xaf123456 ; encoding: [0xff,0xfe,0xff,0x5b,0x56,0x34,0x12,0xaf] -v_fmac_f16 v5.l, s1, v2.l -// GFX12: encoding: [0x01,0x04,0x0a,0x6c] +v_fmac_f16 v5, v1, v2 +// GFX12: v_fmac_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x6c] -v_fmac_f16 v5.l, s105, v2.l -// GFX12: encoding: [0x69,0x04,0x0a,0x6c] +v_fmac_f16 v5, v127, v2 +// GFX12: v_fmac_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x6c] -v_fmac_f16 v5.l, vcc_lo, v2.l -// GFX12: encoding: [0x6a,0x04,0x0a,0x6c] +v_fmac_f16 v5, s1, v2 +// GFX12: v_fmac_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, vcc_hi, v2.l -// GFX12: encoding: [0x6b,0x04,0x0a,0x6c] +v_fmac_f16 v5, s105, v2 +// GFX12: v_fmac_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, ttmp15, v2.l -// GFX12: encoding: [0x7b,0x04,0x0a,0x6c] +v_fmac_f16 v5, vcc_lo, v2 +// GFX12: v_fmac_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, m0, v2.l -// GFX12: encoding: [0x7d,0x04,0x0a,0x6c] +v_fmac_f16 v5, vcc_hi, v2 +// GFX12: v_fmac_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, exec_lo, v2.l -// GFX12: encoding: [0x7e,0x04,0x0a,0x6c] +v_fmac_f16 v5, ttmp15, v2 +// GFX12: v_fmac_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, exec_hi, v2.l -// GFX12: encoding: [0x7f,0x04,0x0a,0x6c] +v_fmac_f16 v5, m0, v2 +// GFX12: v_fmac_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, null, v2.l -// GFX12: encoding: [0x7c,0x04,0x0a,0x6c] +v_fmac_f16 v5, exec_lo, v2 +// GFX12: v_fmac_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, -1, v2.l -// GFX12: encoding: [0xc1,0x04,0x0a,0x6c] +v_fmac_f16 v5, exec_hi, v2 +// GFX12: v_fmac_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, 0.5, v2.l -// GFX12: encoding: [0xf0,0x04,0x0a,0x6c] +v_fmac_f16 v5, null, v2 +// GFX12: v_fmac_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, src_scc, v2.l -// GFX12: encoding: [0xfd,0x04,0x0a,0x6c] +v_fmac_f16 v5, -1, v2 +// GFX12: v_fmac_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x6c] -v_fmac_f16 v127.l, 0xfe0b, v127.l -// GFX12: encoding: [0xff,0xfe,0xfe,0x6c,0x0b,0xfe,0x00,0x00] +v_fmac_f16 v5, 0.5, v2 +// GFX12: v_fmac_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x81,0x05,0x0a,0x6c] +v_fmac_f16 v5, src_scc, v2 +// GFX12: v_fmac_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x6c] -v_fmac_f16 v5.l, v127.h, v2.l -// GFX12: encoding: [0xff,0x05,0x0a,0x6c] - -v_fmac_f16 v5.h, src_scc, v2.h -// GFX12: encoding: [0xfd,0x04,0x0b,0x6d] - -v_fmac_f16 v127.h, 0xfe0b, v127.h -// GFX12: encoding: [0xff,0xfe,0xff,0x6d,0x0b,0xfe,0x00,0x00] +v_fmac_f16 v127, 0xfe0b, v127 +// GFX12: v_fmac_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x6c,0x0b,0xfe,0x00,0x00] v_fmac_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x56] v_fmac_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x56] v_fmac_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x56] v_fmac_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x56] v_fmac_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x56] v_fmac_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x56] v_fmac_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x56] v_fmac_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x56] v_fmac_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x56] v_fmac_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x56] v_fmac_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x56] v_fmac_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x56] v_fmac_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x56] v_fmac_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x56] +// GFX12: v_fmac_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x56] v_fmac_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x57,0x56,0x34,0x12,0xaf] - -v_fmamk_f16 v5.l, v1.l, 0xfe0b, v3.l -// GFX12: encoding: [0x01,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] - -v_fmamk_f16 v5.l, v127.l, 0xfe0b, v3.l -// GFX12: encoding: [0x7f,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] - -v_fmamk_f16 v5.l, s1, 0xfe0b, v3.l -// GFX12: encoding: [0x01,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] - -v_fmamk_f16 v5.l, s105, 0xfe0b, v3.l -// GFX12: encoding: [0x69,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +// GFX12: v_fmac_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x57,0x56,0x34,0x12,0xaf] -v_fmamk_f16 v5.l, vcc_lo, 0xfe0b, v3.l -// GFX12: encoding: [0x6a,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, v1, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, v1, 0xfe0b, v3 ; encoding: [0x01,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, vcc_hi, 0xfe0b, v3.l -// GFX12: encoding: [0x6b,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, v127, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, v127, 0xfe0b, v3 ; encoding: [0x7f,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, ttmp15, 0xfe0b, v3.l -// GFX12: encoding: [0x7b,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, s1, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, s1, 0xfe0b, v3 ; encoding: [0x01,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, m0, 0xfe0b, v3.l -// GFX12: encoding: [0x7d,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, s105, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, s105, 0xfe0b, v3 ; encoding: [0x69,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, exec_lo, 0xfe0b, v3.l -// GFX12: encoding: [0x7e,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, vcc_lo, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, vcc_lo, 0xfe0b, v3 ; encoding: [0x6a,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, exec_hi, 0xfe0b, v3.l -// GFX12: encoding: [0x7f,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, vcc_hi, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, vcc_hi, 0xfe0b, v3 ; encoding: [0x6b,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, null, 0xfe0b, v3.l -// GFX12: encoding: [0x7c,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, ttmp15, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, ttmp15, 0xfe0b, v3 ; encoding: [0x7b,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, -1, 0xfe0b, v3.l -// GFX12: encoding: [0xc1,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, m0, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, m0, 0xfe0b, v3 ; encoding: [0x7d,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, 0.5, 0xfe0b, v3.l -// GFX12: encoding: [0xf0,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, exec_lo, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, exec_lo, 0xfe0b, v3 ; encoding: [0x7e,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, src_scc, 0xfe0b, v3.l -// GFX12: encoding: [0xfd,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, exec_hi, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, exec_hi, 0xfe0b, v3 ; encoding: [0x7f,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v127.l, 0xfe0b, 0xfe0b, v127.l -// GFX12: encoding: [0xff,0xfe,0xfe,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, null, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, null, 0xfe0b, v3 ; encoding: [0x7c,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, v1.h, 0xfe0b, v3.l -// GFX12: encoding: [0x81,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, -1, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, -1, 0xfe0b, v3 ; encoding: [0xc1,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.l, v127.h, 0xfe0b, v3.l -// GFX12: encoding: [0xff,0x07,0x0a,0x6e,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, 0.5, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, 0.5, 0xfe0b, v3 ; encoding: [0xf0,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v5.h, src_scc, 0xfe0b, v3.h -// GFX12: encoding: [0xfd,0x06,0x0b,0x6f,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v5, src_scc, 0xfe0b, v3 +// GFX12: v_fmamk_f16 v5, src_scc, 0xfe0b, v3 ; encoding: [0xfd,0x06,0x0a,0x6e,0x0b,0xfe,0x00,0x00] -v_fmamk_f16 v127.h, 0xfe0b, 0xfe0b, v127.h -// GFX12: encoding: [0xff,0xfe,0xff,0x6f,0x0b,0xfe,0x00,0x00] +v_fmamk_f16 v127, 0xfe0b, 0xfe0b, v127 +// GFX12: v_fmamk_f16 v127, 0xfe0b, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x6e,0x0b,0xfe,0x00,0x00] v_fmamk_f32 v5, v1, 0xaf123456, v3 -// GFX12: encoding: [0x01,0x07,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, v1, 0xaf123456, v3 ; encoding: [0x01,0x07,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, v255, 0xaf123456, v3 -// GFX12: encoding: [0xff,0x07,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, v255, 0xaf123456, v3 ; encoding: [0xff,0x07,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, s1, 0xaf123456, v3 -// GFX12: encoding: [0x01,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, s1, 0xaf123456, v3 ; encoding: [0x01,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, s105, 0xaf123456, v3 -// GFX12: encoding: [0x69,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, s105, 0xaf123456, v3 ; encoding: [0x69,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, vcc_lo, 0xaf123456, v3 -// GFX12: encoding: [0x6a,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, vcc_lo, 0xaf123456, v3 ; encoding: [0x6a,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, vcc_hi, 0xaf123456, v3 -// GFX12: encoding: [0x6b,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, vcc_hi, 0xaf123456, v3 ; encoding: [0x6b,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, ttmp15, 0xaf123456, v3 -// GFX12: encoding: [0x7b,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, ttmp15, 0xaf123456, v3 ; encoding: [0x7b,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, m0, 0xaf123456, v3 -// GFX12: encoding: [0x7d,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, m0, 0xaf123456, v3 ; encoding: [0x7d,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, exec_lo, 0xaf123456, v3 -// GFX12: encoding: [0x7e,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, exec_lo, 0xaf123456, v3 ; encoding: [0x7e,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, exec_hi, 0xaf123456, v3 -// GFX12: encoding: [0x7f,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, exec_hi, 0xaf123456, v3 ; encoding: [0x7f,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, null, 0xaf123456, v3 -// GFX12: encoding: [0x7c,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, null, 0xaf123456, v3 ; encoding: [0x7c,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, -1, 0xaf123456, v3 -// GFX12: encoding: [0xc1,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, -1, 0xaf123456, v3 ; encoding: [0xc1,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, 0.5, 0xaf123456, v3 -// GFX12: encoding: [0xf0,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, 0.5, 0xaf123456, v3 ; encoding: [0xf0,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v5, src_scc, 0xaf123456, v3 -// GFX12: encoding: [0xfd,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v5, src_scc, 0xaf123456, v3 ; encoding: [0xfd,0x06,0x0a,0x58,0x56,0x34,0x12,0xaf] v_fmamk_f32 v255, 0xaf123456, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x59,0x56,0x34,0x12,0xaf] +// GFX12: v_fmamk_f32 v255, 0xaf123456, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x59,0x56,0x34,0x12,0xaf] v_ldexp_f16 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x76] v_ldexp_f16 v5, v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x76] v_ldexp_f16 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x76] v_ldexp_f16 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x76] v_ldexp_f16 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x76] v_ldexp_f16 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x76] v_ldexp_f16 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x76] v_ldexp_f16 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x76] v_ldexp_f16 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x76] v_ldexp_f16 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x76] v_ldexp_f16 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x76] v_ldexp_f16 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x76] v_ldexp_f16 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x76] v_ldexp_f16 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x76] +// GFX12: v_ldexp_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x76] v_ldexp_f16 v127, 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0xfe,0x76,0x0b,0xfe,0x00,0x00] +// GFX12: v_ldexp_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x76,0x0b,0xfe,0x00,0x00] v_lshlrev_b32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x30] v_lshlrev_b32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x30] v_lshlrev_b32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x30] v_lshlrev_b32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x30] v_lshlrev_b32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x30] v_lshlrev_b32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x30] v_lshlrev_b32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x30] v_lshlrev_b32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x30] v_lshlrev_b32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x30] v_lshlrev_b32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x30] v_lshlrev_b32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x30] v_lshlrev_b32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x30] v_lshlrev_b32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x30] v_lshlrev_b32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x30] +// GFX12: v_lshlrev_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x30] v_lshlrev_b32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x31,0x56,0x34,0x12,0xaf] +// GFX12: v_lshlrev_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x31,0x56,0x34,0x12,0xaf] v_lshlrev_b64 v[5:6], v1, v[3:4] -// GFX12: encoding: [0x01,0x07,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], v1, v[3:4] ; encoding: [0x01,0x07,0x0a,0x3e] v_lshlrev_b64 v[5:6], v255, v[2:3] -// GFX12: encoding: [0xff,0x05,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], v255, v[2:3] ; encoding: [0xff,0x05,0x0a,0x3e] v_lshlrev_b64 v[5:6], s1, v[2:3] -// GFX12: encoding: [0x01,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], s1, v[2:3] ; encoding: [0x01,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], s105, v[2:3] -// GFX12: encoding: [0x69,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], s105, v[2:3] ; encoding: [0x69,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], vcc_lo, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], vcc_lo, v[2:3] ; encoding: [0x6a,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], vcc_hi, v[2:3] -// GFX12: encoding: [0x6b,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], vcc_hi, v[2:3] ; encoding: [0x6b,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], ttmp15, v[2:3] -// GFX12: encoding: [0x7b,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], ttmp15, v[2:3] ; encoding: [0x7b,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], exec_lo, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], exec_lo, v[2:3] ; encoding: [0x7e,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], exec_hi, v[2:3] -// GFX12: encoding: [0x7f,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], exec_hi, v[2:3] ; encoding: [0x7f,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], null, v[2:3] ; encoding: [0x7c,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], -1, v[2:3] ; encoding: [0xc1,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], 0.5, v[2:3] ; encoding: [0xf0,0x04,0x0a,0x3e] v_lshlrev_b64 v[5:6], src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x0a,0x3e] +// GFX12: v_lshlrev_b64_e32 v[5:6], src_scc, v[2:3] ; encoding: [0xfd,0x04,0x0a,0x3e] v_lshlrev_b64 v[254:255], 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xfd,0x3f,0x56,0x34,0x12,0xaf] +// GFX12: v_lshlrev_b64_e32 v[254:255], 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xfd,0x3f,0x56,0x34,0x12,0xaf] v_lshrrev_b32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x32] v_lshrrev_b32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x32] v_lshrrev_b32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x32] v_lshrrev_b32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x32] v_lshrrev_b32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x32] v_lshrrev_b32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x32] v_lshrrev_b32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x32] v_lshrrev_b32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x32] v_lshrrev_b32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x32] v_lshrrev_b32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x32] v_lshrrev_b32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x32] v_lshrrev_b32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x32] v_lshrrev_b32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x32] v_lshrrev_b32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x32] +// GFX12: v_lshrrev_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x32] v_lshrrev_b32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x33,0x56,0x34,0x12,0xaf] +// GFX12: v_lshrrev_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x33,0x56,0x34,0x12,0xaf] v_max_num_f16 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x62] v_max_num_f16 v5, v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x62] v_max_num_f16 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x62] v_max_num_f16 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x62] v_max_num_f16 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x62] v_max_num_f16 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x62] v_max_num_f16 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x62] v_max_num_f16 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x62] v_max_num_f16 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x62] v_max_num_f16 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x62] v_max_num_f16 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x62] v_max_num_f16 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x62] v_max_num_f16 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x62] v_max_num_f16 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x62] +// GFX12: v_max_num_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x62] v_max_num_f16 v127, 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0xfe,0x62,0x0b,0xfe,0x00,0x00] +// GFX12: v_max_num_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x62,0x0b,0xfe,0x00,0x00] v_max_num_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x2c] v_max_num_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x2c] v_max_num_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x2c] v_max_num_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x2c] v_max_num_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x2c] v_max_num_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x2c] v_max_num_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x2c] v_max_num_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x2c] v_max_num_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x2c] v_max_num_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x2c] v_max_num_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x2c] v_max_num_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x2c] v_max_num_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x2c] v_max_num_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x2c] +// GFX12: v_max_num_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x2c] v_max_num_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x2d,0x56,0x34,0x12,0xaf] +// GFX12: v_max_num_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x2d,0x56,0x34,0x12,0xaf] v_max_num_f64 v[5:6], v[1:2], v[3:4] -// GFX12: encoding: [0x01,0x07,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], v[1:2], v[3:4] ; encoding: [0x01,0x07,0x0a,0x1c] v_max_num_f64 v[5:6], v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x0a,0x1c] v_max_num_f64 v[5:6], s[0:1], v[2:3] -// GFX12: encoding: [0x00,0x04,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], s[0:1], v[2:3] ; encoding: [0x00,0x04,0x0a,0x1c] v_max_num_f64 v[5:6], s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], s[104:105], v[2:3] ; encoding: [0x68,0x04,0x0a,0x1c] v_max_num_f64 v[5:6], vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], vcc, v[2:3] ; encoding: [0x6a,0x04,0x0a,0x1c] v_max_num_f64 v[5:6], ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x0a,0x1c] v_max_num_f64 v[5:6], exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], exec, v[2:3] ; encoding: [0x7e,0x04,0x0a,0x1c] v_max_num_f64 v[5:6], null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], null, v[2:3] ; encoding: [0x7c,0x04,0x0a,0x1c] v_max_num_f64 v[5:6], -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], -1, v[2:3] ; encoding: [0xc1,0x04,0x0a,0x1c] v_max_num_f64 v[5:6], 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], 0.5, v[2:3] ; encoding: [0xf0,0x04,0x0a,0x1c] v_max_num_f64 v[5:6], src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x0a,0x1c] +// GFX12: v_max_num_f64_e32 v[5:6], src_scc, v[2:3] ; encoding: [0xfd,0x04,0x0a,0x1c] v_max_num_f64 v[254:255], 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xfd,0x1d,0x56,0x34,0x12,0xaf] +// GFX12: v_max_num_f64_e32 v[254:255], 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xfd,0x1d,0x56,0x34,0x12,0xaf] v_max_i32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x24] v_max_i32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x24] v_max_i32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x24] v_max_i32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x24] v_max_i32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x24] v_max_i32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x24] v_max_i32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x24] v_max_i32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x24] v_max_i32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x24] v_max_i32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x24] v_max_i32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x24] v_max_i32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x24] v_max_i32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x24] v_max_i32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x24] +// GFX12: v_max_i32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x24] v_max_i32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x25,0x56,0x34,0x12,0xaf] +// GFX12: v_max_i32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x25,0x56,0x34,0x12,0xaf] v_max_u32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x28] v_max_u32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x28] v_max_u32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x28] v_max_u32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x28] v_max_u32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x28] v_max_u32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x28] v_max_u32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x28] v_max_u32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x28] v_max_u32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x28] v_max_u32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x28] v_max_u32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x28] v_max_u32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x28] v_max_u32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x28] v_max_u32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x28] +// GFX12: v_max_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x28] v_max_u32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x29,0x56,0x34,0x12,0xaf] +// GFX12: v_max_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x29,0x56,0x34,0x12,0xaf] v_min_num_f16 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x60] v_min_num_f16 v5, v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x60] v_min_num_f16 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x60] v_min_num_f16 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x60] v_min_num_f16 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x60] v_min_num_f16 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x60] v_min_num_f16 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x60] v_min_num_f16 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x60] v_min_num_f16 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x60] v_min_num_f16 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x60] v_min_num_f16 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x60] v_min_num_f16 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x60] v_min_num_f16 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x60] v_min_num_f16 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x60] +// GFX12: v_min_num_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x60] v_min_num_f16 v127, 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0xfe,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_min_num_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x60,0x0b,0xfe,0x00,0x00] v_min_num_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x2a] v_min_num_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x2a] v_min_num_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x2a] v_min_num_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x2a] v_min_num_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x2a] v_min_num_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x2a] v_min_num_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x2a] v_min_num_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x2a] v_min_num_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x2a] v_min_num_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x2a] v_min_num_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x2a] v_min_num_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x2a] v_min_num_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x2a] v_min_num_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x2a] +// GFX12: v_min_num_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x2a] v_min_num_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x2b,0x56,0x34,0x12,0xaf] +// GFX12: v_min_num_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x2b,0x56,0x34,0x12,0xaf] v_min_num_f64 v[5:6], v[1:2], v[3:4] -// GFX12: encoding: [0x01,0x07,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], v[1:2], v[3:4] ; encoding: [0x01,0x07,0x0a,0x1a] v_min_num_f64 v[5:6], v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x0a,0x1a] v_min_num_f64 v[5:6], s[0:1], v[2:3] -// GFX12: encoding: [0x00,0x04,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], s[0:1], v[2:3] ; encoding: [0x00,0x04,0x0a,0x1a] v_min_num_f64 v[5:6], s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], s[104:105], v[2:3] ; encoding: [0x68,0x04,0x0a,0x1a] v_min_num_f64 v[5:6], vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], vcc, v[2:3] ; encoding: [0x6a,0x04,0x0a,0x1a] v_min_num_f64 v[5:6], ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x0a,0x1a] v_min_num_f64 v[5:6], exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], exec, v[2:3] ; encoding: [0x7e,0x04,0x0a,0x1a] v_min_num_f64 v[5:6], null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], null, v[2:3] ; encoding: [0x7c,0x04,0x0a,0x1a] v_min_num_f64 v[5:6], -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], -1, v[2:3] ; encoding: [0xc1,0x04,0x0a,0x1a] v_min_num_f64 v[5:6], 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], 0.5, v[2:3] ; encoding: [0xf0,0x04,0x0a,0x1a] v_min_num_f64 v[5:6], src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x0a,0x1a] +// GFX12: v_min_num_f64_e32 v[5:6], src_scc, v[2:3] ; encoding: [0xfd,0x04,0x0a,0x1a] v_min_num_f64 v[254:255], 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xfd,0x1b,0x56,0x34,0x12,0xaf] +// GFX12: v_min_num_f64_e32 v[254:255], 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xfd,0x1b,0x56,0x34,0x12,0xaf] v_min_i32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x22] v_min_i32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x22] v_min_i32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x22] v_min_i32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x22] v_min_i32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x22] v_min_i32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x22] v_min_i32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x22] v_min_i32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x22] v_min_i32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x22] v_min_i32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x22] v_min_i32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x22] v_min_i32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x22] v_min_i32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x22] v_min_i32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x22] +// GFX12: v_min_i32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x22] v_min_i32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x23,0x56,0x34,0x12,0xaf] +// GFX12: v_min_i32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x23,0x56,0x34,0x12,0xaf] v_min_u32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x26] v_min_u32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x26] v_min_u32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x26] v_min_u32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x26] v_min_u32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x26] v_min_u32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x26] v_min_u32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x26] v_min_u32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x26] v_min_u32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x26] v_min_u32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x26] v_min_u32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x26] v_min_u32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x26] v_min_u32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x26] v_min_u32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x26] +// GFX12: v_min_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x26] v_min_u32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x27,0x56,0x34,0x12,0xaf] +// GFX12: v_min_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x27,0x56,0x34,0x12,0xaf] v_mul_dx9_zero_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x0e] v_mul_dx9_zero_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x0e] v_mul_dx9_zero_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x0e] v_mul_dx9_zero_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x0f,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_dx9_zero_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x0f,0x56,0x34,0x12,0xaf] v_mul_f16 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x6a] v_mul_f16 v5, v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x6a] v_mul_f16 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x6a] v_mul_f16 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x6a] v_mul_f16 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x6a] v_mul_f16 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x6a] v_mul_f16 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x6a] v_mul_f16 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x6a] v_mul_f16 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x6a] v_mul_f16 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x6a] v_mul_f16 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x6a] v_mul_f16 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x6a] v_mul_f16 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x6a] v_mul_f16 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x6a] +// GFX12: v_mul_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x6a] v_mul_f16 v127, 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0xfe,0x6a,0x0b,0xfe,0x00,0x00] +// GFX12: v_mul_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x6a,0x0b,0xfe,0x00,0x00] v_mul_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x10] v_mul_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x10] v_mul_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x10] v_mul_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x10] v_mul_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x10] v_mul_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x10] v_mul_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x10] v_mul_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x10] v_mul_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x10] v_mul_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x10] v_mul_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x10] v_mul_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x10] v_mul_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x10] v_mul_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x10] +// GFX12: v_mul_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x10] v_mul_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x11,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x11,0x56,0x34,0x12,0xaf] v_mul_f64 v[5:6], v[1:2], v[3:4] -// GFX12: encoding: [0x01,0x07,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], v[1:2], v[3:4] ; encoding: [0x01,0x07,0x0a,0x0c] v_mul_f64 v[5:6], v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x0a,0x0c] v_mul_f64 v[5:6], s[0:1], v[2:3] -// GFX12: encoding: [0x00,0x04,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], s[0:1], v[2:3] ; encoding: [0x00,0x04,0x0a,0x0c] v_mul_f64 v[5:6], s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], s[104:105], v[2:3] ; encoding: [0x68,0x04,0x0a,0x0c] v_mul_f64 v[5:6], vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], vcc, v[2:3] ; encoding: [0x6a,0x04,0x0a,0x0c] v_mul_f64 v[5:6], ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x0a,0x0c] v_mul_f64 v[5:6], exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], exec, v[2:3] ; encoding: [0x7e,0x04,0x0a,0x0c] v_mul_f64 v[5:6], null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], null, v[2:3] ; encoding: [0x7c,0x04,0x0a,0x0c] v_mul_f64 v[5:6], -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], -1, v[2:3] ; encoding: [0xc1,0x04,0x0a,0x0c] v_mul_f64 v[5:6], 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], 0.5, v[2:3] ; encoding: [0xf0,0x04,0x0a,0x0c] v_mul_f64 v[5:6], src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x0a,0x0c] +// GFX12: v_mul_f64_e32 v[5:6], src_scc, v[2:3] ; encoding: [0xfd,0x04,0x0a,0x0c] v_mul_f64 v[254:255], 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xfd,0x0d,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_f64_e32 v[254:255], 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xfd,0x0d,0x56,0x34,0x12,0xaf] v_mul_hi_i32_i24 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x14] v_mul_hi_i32_i24 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x14] v_mul_hi_i32_i24 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x14] v_mul_hi_i32_i24 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x14] +// GFX12: v_mul_hi_i32_i24_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x14] v_mul_hi_i32_i24 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x15,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_i32_i24_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x15,0x56,0x34,0x12,0xaf] v_mul_hi_u32_u24 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x18] v_mul_hi_u32_u24 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x18] v_mul_hi_u32_u24 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x18] v_mul_hi_u32_u24 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x18] +// GFX12: v_mul_hi_u32_u24_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x18] v_mul_hi_u32_u24 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x19,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_u32_u24_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x19,0x56,0x34,0x12,0xaf] v_mul_i32_i24 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x12] v_mul_i32_i24 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x12] v_mul_i32_i24 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x12] v_mul_i32_i24 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x12] v_mul_i32_i24 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x12] v_mul_i32_i24 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x12] v_mul_i32_i24 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x12] v_mul_i32_i24 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x12] v_mul_i32_i24 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x12] v_mul_i32_i24 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x12] v_mul_i32_i24 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x12] v_mul_i32_i24 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x12] v_mul_i32_i24 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x12] v_mul_i32_i24 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x12] +// GFX12: v_mul_i32_i24_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x12] v_mul_i32_i24 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x13,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_i32_i24_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x13,0x56,0x34,0x12,0xaf] v_mul_legacy_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x0e] v_mul_legacy_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x0e] v_mul_legacy_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x0e] v_mul_legacy_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x0e] +// GFX12: v_mul_dx9_zero_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x0e] v_mul_legacy_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x0f,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_dx9_zero_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x0f,0x56,0x34,0x12,0xaf] v_mul_u32_u24 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x16] v_mul_u32_u24 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x16] v_mul_u32_u24 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x16] v_mul_u32_u24 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x16] v_mul_u32_u24 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x16] v_mul_u32_u24 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x16] v_mul_u32_u24 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x16] v_mul_u32_u24 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x16] v_mul_u32_u24 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x16] v_mul_u32_u24 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x16] v_mul_u32_u24 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x16] v_mul_u32_u24 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x16] v_mul_u32_u24 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x16] v_mul_u32_u24 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x16] +// GFX12: v_mul_u32_u24_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x16] v_mul_u32_u24 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x17,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_u32_u24_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x17,0x56,0x34,0x12,0xaf] v_or_b32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x38] v_or_b32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x38] v_or_b32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x38] v_or_b32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x38] v_or_b32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x38] v_or_b32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x38] v_or_b32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x38] v_or_b32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x38] v_or_b32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x38] v_or_b32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x38] v_or_b32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x38] v_or_b32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x38] v_or_b32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x38] v_or_b32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x38] +// GFX12: v_or_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x38] v_or_b32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x39,0x56,0x34,0x12,0xaf] +// GFX12: v_or_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x39,0x56,0x34,0x12,0xaf] v_pk_fmac_f16 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x78] v_pk_fmac_f16 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x78] v_pk_fmac_f16 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x78] v_pk_fmac_f16 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x78] v_pk_fmac_f16 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x78] v_pk_fmac_f16 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x78] v_pk_fmac_f16 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x78] v_pk_fmac_f16 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x78] v_pk_fmac_f16 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x78] v_pk_fmac_f16 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x78] v_pk_fmac_f16 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x78] v_pk_fmac_f16 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x78] v_pk_fmac_f16 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x78] v_pk_fmac_f16 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x78] +// GFX12: v_pk_fmac_f16 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x78] v_pk_fmac_f16 v255, 0xfe0b, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x79,0x0b,0xfe,0x00,0x00] +// GFX12: v_pk_fmac_f16 v255, 0xfe0b, v255 ; encoding: [0xff,0xfe,0xff,0x79,0x0b,0xfe,0x00,0x00] v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo -// W32: encoding: [0x01,0x05,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo ; encoding: [0x01,0x05,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v255, v2, vcc_lo -// W32: encoding: [0xff,0x05,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, v255, v2, vcc_lo ; encoding: [0xff,0x05,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, s1, v2, vcc_lo -// W32: encoding: [0x01,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, s1, v2, vcc_lo ; encoding: [0x01,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, s105, v2, vcc_lo -// W32: encoding: [0x69,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, s105, v2, vcc_lo ; encoding: [0x69,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, vcc_lo, v2, vcc_lo -// W32: encoding: [0x6a,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, vcc_lo, v2, vcc_lo ; encoding: [0x6a,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, vcc_hi, v2, vcc_lo -// W32: encoding: [0x6b,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, vcc_hi, v2, vcc_lo ; encoding: [0x6b,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, ttmp15, v2, vcc_lo -// W32: encoding: [0x7b,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, ttmp15, v2, vcc_lo ; encoding: [0x7b,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, m0, v2, vcc_lo -// W32: encoding: [0x7d,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, m0, v2, vcc_lo ; encoding: [0x7d,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, exec_lo, v2, vcc_lo -// W32: encoding: [0x7e,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, exec_lo, v2, vcc_lo ; encoding: [0x7e,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, exec_hi, v2, vcc_lo -// W32: encoding: [0x7f,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, exec_hi, v2, vcc_lo ; encoding: [0x7f,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, null, v2, vcc_lo -// W32: encoding: [0x7c,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, null, v2, vcc_lo ; encoding: [0x7c,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, -1, v2, vcc_lo -// W32: encoding: [0xc1,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, -1, v2, vcc_lo ; encoding: [0xc1,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, 0.5, v2, vcc_lo -// W32: encoding: [0xf0,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, 0.5, v2, vcc_lo ; encoding: [0xf0,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, src_scc, v2, vcc_lo -// W32: encoding: [0xfd,0x04,0x0a,0x42] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v5, vcc_lo, src_scc, v2, vcc_lo ; encoding: [0xfd,0x04,0x0a,0x42] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc_lo, 0xaf123456, v255, vcc_lo -// W32: encoding: [0xff,0xfe,0xff,0x43,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_e32 v255, vcc_lo, 0xaf123456, v255, vcc_lo ; encoding: [0xff,0xfe,0xff,0x43,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc -// W64: encoding: [0x01,0x05,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, v1, v2, vcc ; encoding: [0x01,0x05,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v255, v2, vcc -// W64: encoding: [0xff,0x05,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, v255, v2, vcc ; encoding: [0xff,0x05,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, s1, v2, vcc -// W64: encoding: [0x01,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, s1, v2, vcc ; encoding: [0x01,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, s105, v2, vcc -// W64: encoding: [0x69,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, s105, v2, vcc ; encoding: [0x69,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, vcc_lo, v2, vcc -// W64: encoding: [0x6a,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, vcc_lo, v2, vcc ; encoding: [0x6a,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, vcc_hi, v2, vcc -// W64: encoding: [0x6b,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, vcc_hi, v2, vcc ; encoding: [0x6b,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, ttmp15, v2, vcc -// W64: encoding: [0x7b,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, ttmp15, v2, vcc ; encoding: [0x7b,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, m0, v2, vcc -// W64: encoding: [0x7d,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, m0, v2, vcc ; encoding: [0x7d,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, exec_lo, v2, vcc -// W64: encoding: [0x7e,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, exec_lo, v2, vcc ; encoding: [0x7e,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, exec_hi, v2, vcc -// W64: encoding: [0x7f,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, exec_hi, v2, vcc ; encoding: [0x7f,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, null, v2, vcc -// W64: encoding: [0x7c,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, null, v2, vcc ; encoding: [0x7c,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, -1, v2, vcc -// W64: encoding: [0xc1,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, -1, v2, vcc ; encoding: [0xc1,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, 0.5, v2, vcc -// W64: encoding: [0xf0,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, 0.5, v2, vcc ; encoding: [0xf0,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, src_scc, v2, vcc -// W64: encoding: [0xfd,0x04,0x0a,0x42] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v5, vcc, src_scc, v2, vcc ; encoding: [0xfd,0x04,0x0a,0x42] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc, 0xaf123456, v255, vcc -// W64: encoding: [0xff,0xfe,0xff,0x43,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_e32 v255, vcc, 0xaf123456, v255, vcc ; encoding: [0xff,0xfe,0xff,0x43,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_f16 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x66] v_sub_f16 v5, v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x66] v_sub_f16 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x66] v_sub_f16 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x66] v_sub_f16 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x66] v_sub_f16 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x66] v_sub_f16 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x66] v_sub_f16 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x66] v_sub_f16 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x66] v_sub_f16 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x66] v_sub_f16 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x66] v_sub_f16 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x66] v_sub_f16 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x66] v_sub_f16 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x66] +// GFX12: v_sub_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x66] v_sub_f16 v127, 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0xfe,0x66,0x0b,0xfe,0x00,0x00] +// GFX12: v_sub_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x66,0x0b,0xfe,0x00,0x00] v_sub_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x08] v_sub_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x08] v_sub_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x08] v_sub_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x08] v_sub_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x08] v_sub_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x08] v_sub_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x08] v_sub_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x08] v_sub_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x08] v_sub_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x08] v_sub_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x08] v_sub_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x08] v_sub_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x08] v_sub_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x08] +// GFX12: v_sub_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x08] v_sub_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x09,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x09,0x56,0x34,0x12,0xaf] v_sub_nc_u32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x4c] v_sub_nc_u32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x4c] v_sub_nc_u32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x4c] v_sub_nc_u32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x4c] v_sub_nc_u32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x4c] v_sub_nc_u32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x4c] v_sub_nc_u32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x4c] v_sub_nc_u32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x4c] v_sub_nc_u32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x4c] v_sub_nc_u32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x4c] v_sub_nc_u32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x4c] v_sub_nc_u32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x4c] v_sub_nc_u32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x4c] v_sub_nc_u32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x4c] +// GFX12: v_sub_nc_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x4c] v_sub_nc_u32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x4d,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_nc_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x4d,0x56,0x34,0x12,0xaf] v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo -// W32: encoding: [0x01,0x05,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, v1, v2, vcc_lo ; encoding: [0x01,0x05,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v255, v2, vcc_lo -// W32: encoding: [0xff,0x05,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, v255, v2, vcc_lo ; encoding: [0xff,0x05,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, s1, v2, vcc_lo -// W32: encoding: [0x01,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, s1, v2, vcc_lo ; encoding: [0x01,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, s105, v2, vcc_lo -// W32: encoding: [0x69,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, s105, v2, vcc_lo ; encoding: [0x69,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, vcc_lo, v2, vcc_lo -// W32: encoding: [0x6a,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, vcc_lo, v2, vcc_lo ; encoding: [0x6a,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, vcc_hi, v2, vcc_lo -// W32: encoding: [0x6b,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, vcc_hi, v2, vcc_lo ; encoding: [0x6b,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, ttmp15, v2, vcc_lo -// W32: encoding: [0x7b,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, ttmp15, v2, vcc_lo ; encoding: [0x7b,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, m0, v2, vcc_lo -// W32: encoding: [0x7d,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, m0, v2, vcc_lo ; encoding: [0x7d,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, exec_lo, v2, vcc_lo -// W32: encoding: [0x7e,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, exec_lo, v2, vcc_lo ; encoding: [0x7e,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, exec_hi, v2, vcc_lo -// W32: encoding: [0x7f,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, exec_hi, v2, vcc_lo ; encoding: [0x7f,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, null, v2, vcc_lo -// W32: encoding: [0x7c,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, null, v2, vcc_lo ; encoding: [0x7c,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, -1, v2, vcc_lo -// W32: encoding: [0xc1,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, -1, v2, vcc_lo ; encoding: [0xc1,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, 0.5, v2, vcc_lo -// W32: encoding: [0xf0,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, 0.5, v2, vcc_lo ; encoding: [0xf0,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, src_scc, v2, vcc_lo -// W32: encoding: [0xfd,0x04,0x0a,0x44] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v5, vcc_lo, src_scc, v2, vcc_lo ; encoding: [0xfd,0x04,0x0a,0x44] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc_lo, 0xaf123456, v255, vcc_lo -// W32: encoding: [0xff,0xfe,0xff,0x45,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_e32 v255, vcc_lo, 0xaf123456, v255, vcc_lo ; encoding: [0xff,0xfe,0xff,0x45,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc -// W64: encoding: [0x01,0x05,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, v1, v2, vcc ; encoding: [0x01,0x05,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v255, v2, vcc -// W64: encoding: [0xff,0x05,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, v255, v2, vcc ; encoding: [0xff,0x05,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, s1, v2, vcc -// W64: encoding: [0x01,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, s1, v2, vcc ; encoding: [0x01,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, s105, v2, vcc -// W64: encoding: [0x69,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, s105, v2, vcc ; encoding: [0x69,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, vcc_lo, v2, vcc -// W64: encoding: [0x6a,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, vcc_lo, v2, vcc ; encoding: [0x6a,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, vcc_hi, v2, vcc -// W64: encoding: [0x6b,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, vcc_hi, v2, vcc ; encoding: [0x6b,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, ttmp15, v2, vcc -// W64: encoding: [0x7b,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, ttmp15, v2, vcc ; encoding: [0x7b,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, m0, v2, vcc -// W64: encoding: [0x7d,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, m0, v2, vcc ; encoding: [0x7d,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, exec_lo, v2, vcc -// W64: encoding: [0x7e,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, exec_lo, v2, vcc ; encoding: [0x7e,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, exec_hi, v2, vcc -// W64: encoding: [0x7f,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, exec_hi, v2, vcc ; encoding: [0x7f,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, null, v2, vcc -// W64: encoding: [0x7c,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, null, v2, vcc ; encoding: [0x7c,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, -1, v2, vcc -// W64: encoding: [0xc1,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, -1, v2, vcc ; encoding: [0xc1,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, 0.5, v2, vcc -// W64: encoding: [0xf0,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, 0.5, v2, vcc ; encoding: [0xf0,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, src_scc, v2, vcc -// W64: encoding: [0xfd,0x04,0x0a,0x44] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v5, vcc, src_scc, v2, vcc ; encoding: [0xfd,0x04,0x0a,0x44] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc, 0xaf123456, v255, vcc -// W64: encoding: [0xff,0xfe,0xff,0x45,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_e32 v255, vcc, 0xaf123456, v255, vcc ; encoding: [0xff,0xfe,0xff,0x45,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_f16 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x68] v_subrev_f16 v5, v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x68] v_subrev_f16 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x68] v_subrev_f16 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x68] v_subrev_f16 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x68] v_subrev_f16 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x68] v_subrev_f16 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x68] v_subrev_f16 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x68] v_subrev_f16 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x68] v_subrev_f16 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x68] v_subrev_f16 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x68] v_subrev_f16 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x68] v_subrev_f16 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x68] v_subrev_f16 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x68] +// GFX12: v_subrev_f16_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x68] v_subrev_f16 v127, 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0xfe,0x68,0x0b,0xfe,0x00,0x00] +// GFX12: v_subrev_f16_e32 v127, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfe,0x68,0x0b,0xfe,0x00,0x00] v_subrev_f32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x0a] v_subrev_f32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x0a] v_subrev_f32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x0a] v_subrev_f32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x0a] v_subrev_f32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x0a] v_subrev_f32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x0a] v_subrev_f32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x0a] v_subrev_f32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x0a] v_subrev_f32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x0a] v_subrev_f32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x0a] v_subrev_f32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x0a] v_subrev_f32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x0a] v_subrev_f32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x0a] v_subrev_f32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x0a] +// GFX12: v_subrev_f32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x0a] v_subrev_f32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x0b,0x56,0x34,0x12,0xaf] +// GFX12: v_subrev_f32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x0b,0x56,0x34,0x12,0xaf] v_subrev_nc_u32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x4e] v_subrev_nc_u32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x4e] v_subrev_nc_u32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x4e] v_subrev_nc_u32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x4e] +// GFX12: v_subrev_nc_u32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x4e] v_subrev_nc_u32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x4f,0x56,0x34,0x12,0xaf] +// GFX12: v_subrev_nc_u32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x4f,0x56,0x34,0x12,0xaf] v_xnor_b32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x3c] v_xnor_b32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x3c] v_xnor_b32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x3c] v_xnor_b32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x3c] v_xnor_b32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x3c] v_xnor_b32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x3c] v_xnor_b32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x3c] v_xnor_b32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x3c] v_xnor_b32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x3c] v_xnor_b32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x3c] v_xnor_b32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x3c] v_xnor_b32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x3c] v_xnor_b32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x3c] v_xnor_b32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x3c] +// GFX12: v_xnor_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x3c] v_xnor_b32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x3d,0x56,0x34,0x12,0xaf] +// GFX12: v_xnor_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x3d,0x56,0x34,0x12,0xaf] v_xor_b32 v5, v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x3a] v_xor_b32 v5, v255, v2 -// GFX12: encoding: [0xff,0x05,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, v255, v2 ; encoding: [0xff,0x05,0x0a,0x3a] v_xor_b32 v5, s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, s1, v2 ; encoding: [0x01,0x04,0x0a,0x3a] v_xor_b32 v5, s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, s105, v2 ; encoding: [0x69,0x04,0x0a,0x3a] v_xor_b32 v5, vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x3a] v_xor_b32 v5, vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x3a] v_xor_b32 v5, ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x3a] v_xor_b32 v5, m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x3a] v_xor_b32 v5, exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x3a] v_xor_b32 v5, exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x3a] v_xor_b32 v5, null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, null, v2 ; encoding: [0x7c,0x04,0x0a,0x3a] v_xor_b32 v5, -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x3a] v_xor_b32 v5, 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x3a] v_xor_b32 v5, src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x3a] +// GFX12: v_xor_b32_e32 v5, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x3a] v_xor_b32 v255, 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x3b,0x56,0x34,0x12,0xaf] +// GFX12: v_xor_b32_e32 v255, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x3b,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16.s index 4424fced3e3ea..b1d97fbf599fc 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp16.s @@ -1,2012 +1,1965 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xff,0x41,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x41,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x40,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x40,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xff,0x41,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x41,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1b,0x00,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1b,0x00,0xff] v_add_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0xe4,0x00,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0xe4,0x00,0xff] v_add_f16 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x40,0x01,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x40,0x01,0xff] v_add_f16 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x41,0x01,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x41,0x01,0xff] v_add_f16 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x01,0x01,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x01,0x01,0xff] v_add_f16 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x0f,0x01,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x0f,0x01,0xff] v_add_f16 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x11,0x01,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x11,0x01,0xff] v_add_f16 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1f,0x01,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x1f,0x01,0xff] v_add_f16 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x21,0x01,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x21,0x01,0xff] v_add_f16 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x2f,0x01,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x2f,0x01,0xff] v_add_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x50,0x01,0xff] +// GFX12: v_add_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x50,0x01,0xff] v_add_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x5f,0x01,0x01] +// GFX12: v_add_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x5f,0x01,0x01] v_add_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x64,0x01,0x60,0x09,0x13] +// GFX12: v_add_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x64,0x01,0x60,0x09,0x13] v_add_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfe,0x64,0x7f,0x6f,0xf5,0x30] +// GFX12: v_add_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x64,0x7f,0x6f,0xf5,0x30] v_add_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1b,0x00,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1b,0x00,0xff] v_add_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0xe4,0x00,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0xe4,0x00,0xff] v_add_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x40,0x01,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x40,0x01,0xff] v_add_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x41,0x01,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x41,0x01,0xff] v_add_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x01,0x01,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x01,0x01,0xff] v_add_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x0f,0x01,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x0f,0x01,0xff] v_add_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x11,0x01,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x11,0x01,0xff] v_add_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1f,0x01,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x1f,0x01,0xff] v_add_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x21,0x01,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x21,0x01,0xff] v_add_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x2f,0x01,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x2f,0x01,0xff] v_add_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x50,0x01,0xff] +// GFX12: v_add_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x50,0x01,0xff] v_add_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x5f,0x01,0x01] +// GFX12: v_add_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x5f,0x01,0x01] v_add_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x06,0x01,0x60,0x09,0x13] +// GFX12: v_add_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x06,0x01,0x60,0x09,0x13] v_add_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x07,0xff,0x6f,0xf5,0x30] +// GFX12: v_add_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x07,0xff,0x6f,0xf5,0x30] v_add_nc_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x1b,0x00,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x1b,0x00,0xff] v_add_nc_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0xe4,0x00,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0xe4,0x00,0xff] v_add_nc_u32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x40,0x01,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x40,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x41,0x01,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x41,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x01,0x01,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x01,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x0f,0x01,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x0f,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x11,0x01,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x11,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x1f,0x01,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x1f,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x21,0x01,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x21,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x2f,0x01,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x2f,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x50,0x01,0xff] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x50,0x01,0xff] v_add_nc_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x5f,0x01,0x01] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x5f,0x01,0x01] v_add_nc_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x60,0x09,0x13] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x4a,0x01,0x60,0x09,0x13] v_add_nc_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x4b,0xff,0x6f,0x05,0x30] +// GFX12: v_add_nc_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x4b,0xff,0x6f,0x05,0x30] v_and_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x1b,0x00,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x1b,0x00,0xff] v_and_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0xe4,0x00,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0xe4,0x00,0xff] v_and_b32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x40,0x01,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x40,0x01,0xff] v_and_b32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x41,0x01,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x41,0x01,0xff] v_and_b32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x01,0x01,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x01,0x01,0xff] v_and_b32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x0f,0x01,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x0f,0x01,0xff] v_and_b32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x11,0x01,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x11,0x01,0xff] v_and_b32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x1f,0x01,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x1f,0x01,0xff] v_and_b32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x21,0x01,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x21,0x01,0xff] v_and_b32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x2f,0x01,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x2f,0x01,0xff] v_and_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x50,0x01,0xff] +// GFX12: v_and_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x50,0x01,0xff] v_and_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x5f,0x01,0x01] +// GFX12: v_and_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x5f,0x01,0x01] v_and_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x36,0x01,0x60,0x09,0x13] +// GFX12: v_and_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x36,0x01,0x60,0x09,0x13] v_and_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x37,0xff,0x6f,0x05,0x30] +// GFX12: v_and_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x37,0xff,0x6f,0x05,0x30] v_ashrrev_i32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x1b,0x00,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x1b,0x00,0xff] v_ashrrev_i32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0xe4,0x00,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0xe4,0x00,0xff] v_ashrrev_i32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x40,0x01,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x40,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x41,0x01,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x41,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x01,0x01,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x01,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x0f,0x01,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x0f,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x11,0x01,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x11,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x1f,0x01,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x1f,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x21,0x01,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x21,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x2f,0x01,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x2f,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x50,0x01,0xff] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x50,0x01,0xff] v_ashrrev_i32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x5f,0x01,0x01] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x5f,0x01,0x01] v_ashrrev_i32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x34,0x01,0x60,0x09,0x13] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x34,0x01,0x60,0x09,0x13] v_ashrrev_i32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x35,0xff,0x6f,0x05,0x30] +// GFX12: v_ashrrev_i32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x35,0xff,0x6f,0x05,0x30] v_cndmask_b32 v5, v1, v2, vcc_lo quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xff,0x03,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v255, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x03,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x02,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x02,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xff,0x03,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v255, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x03,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cvt_pk_rtz_f16_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1b,0x00,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0xe4,0x00,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x40,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x41,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x01,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x0f,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x11,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1f,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x21,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x2f,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x50,0x01,0xff] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x5f,0x01,0x01] v_cvt_pk_rtz_f16_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x60,0x09,0x13] v_cvt_pk_rtz_f16_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x5f,0xff,0x6f,0xf5,0x30] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x5f,0xff,0x6f,0xf5,0x30] v_cvt_pkrtz_f16_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1b,0x00,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0xe4,0x00,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x40,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x41,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x01,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x0f,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x11,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x1f,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x21,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x2f,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x50,0x01,0xff] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x5f,0x01,0x01] v_cvt_pkrtz_f16_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x5e,0x01,0x60,0x09,0x13] v_cvt_pkrtz_f16_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x5f,0xff,0x6f,0xf5,0x30] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x5f,0xff,0x6f,0xf5,0x30] -v_fmac_f16 v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x1b,0x00,0xff] +v_fmac_f16 v5, v1, v2 quad_perm:[3,2,1,0] +// GFX12: v_fmac_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x1b,0x00,0xff] -v_fmac_f16 v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0xe4,0x00,0xff] +v_fmac_f16 v5, v1, v2 quad_perm:[0,1,2,3] +// GFX12: v_fmac_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0xe4,0x00,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x40,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_mirror +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x40,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x41,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_half_mirror +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x41,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x01,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_shl:1 +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x01,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x0f,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_shl:15 +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x0f,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x11,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_shr:1 +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x11,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x1f,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_shr:15 +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x1f,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x21,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_ror:1 +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x21,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x2f,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_ror:15 +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x2f,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x50,0x01,0xff] +v_fmac_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x50,0x01,0xff] -v_fmac_f16 v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x5f,0x01,0x01] +v_fmac_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x5f,0x01,0x01] -v_fmac_f16 v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x60,0x09,0x13] +v_fmac_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 +// GFX12: v_fmac_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x6c,0x01,0x60,0x09,0x13] -v_fmac_f16 v127.l, -|v127.l|, -|v127.l| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfe,0x6c,0x7f,0x6f,0xf5,0x30] - -v_fmac_f16 v5.h, v1.h, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0b,0x6d,0x81,0x60,0x09,0x13] - -v_fmac_f16 v127.h, -|v127.h|, -|v127.h| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x6d,0xff,0x6f,0xf5,0x30] +v_fmac_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 +// GFX12: v_fmac_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x6c,0x7f,0x6f,0xf5,0x30] v_fmac_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x1b,0x00,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x1b,0x00,0xff] v_fmac_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0xe4,0x00,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0xe4,0x00,0xff] v_fmac_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x40,0x01,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x40,0x01,0xff] v_fmac_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x41,0x01,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x41,0x01,0xff] v_fmac_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x01,0x01,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x01,0x01,0xff] v_fmac_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x0f,0x01,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x0f,0x01,0xff] v_fmac_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x11,0x01,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x11,0x01,0xff] v_fmac_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x1f,0x01,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x1f,0x01,0xff] v_fmac_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x21,0x01,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x21,0x01,0xff] v_fmac_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x2f,0x01,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x2f,0x01,0xff] v_fmac_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x50,0x01,0xff] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x50,0x01,0xff] v_fmac_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x5f,0x01,0x01] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x5f,0x01,0x01] v_fmac_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x56,0x01,0x60,0x09,0x13] +// GFX12: v_fmac_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x56,0x01,0x60,0x09,0x13] v_fmac_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x57,0xff,0x6f,0xf5,0x30] +// GFX12: v_fmac_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x57,0xff,0x6f,0xf5,0x30] v_ldexp_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1b,0x00,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1b,0x00,0xff] v_ldexp_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0xe4,0x00,0xff] v_ldexp_f16 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x40,0x01,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x40,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x41,0x01,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x41,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x01,0x01,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x01,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x0f,0x01,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x0f,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x11,0x01,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x11,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1f,0x01,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x1f,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x21,0x01,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x21,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x2f,0x01,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x2f,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x50,0x01,0xff] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x50,0x01,0xff] v_ldexp_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x5f,0x01,0x01] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x5f,0x01,0x01] v_ldexp_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x76,0x01,0x60,0x09,0x13] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x76,0x01,0x60,0x09,0x13] v_ldexp_f16 v127, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfe,0x76,0x7f,0x6f,0x35,0x30] +// GFX12: v_ldexp_f16_dpp v127, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x76,0x7f,0x6f,0x35,0x30] v_lshlrev_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x1b,0x00,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x1b,0x00,0xff] v_lshlrev_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0xe4,0x00,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0xe4,0x00,0xff] v_lshlrev_b32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x40,0x01,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x40,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x41,0x01,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x41,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x01,0x01,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x01,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x0f,0x01,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x0f,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x11,0x01,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x11,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x1f,0x01,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x1f,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x21,0x01,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x21,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x2f,0x01,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x2f,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x50,0x01,0xff] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x50,0x01,0xff] v_lshlrev_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x5f,0x01,0x01] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x5f,0x01,0x01] v_lshlrev_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x30,0x01,0x60,0x09,0x13] v_lshlrev_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x31,0xff,0x6f,0x05,0x30] +// GFX12: v_lshlrev_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x31,0xff,0x6f,0x05,0x30] v_lshrrev_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x1b,0x00,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x1b,0x00,0xff] v_lshrrev_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0xe4,0x00,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0xe4,0x00,0xff] v_lshrrev_b32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x40,0x01,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x40,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x41,0x01,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x41,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x01,0x01,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x01,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x0f,0x01,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x0f,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x11,0x01,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x11,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x1f,0x01,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x1f,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x21,0x01,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x21,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x2f,0x01,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x2f,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x50,0x01,0xff] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x50,0x01,0xff] v_lshrrev_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x5f,0x01,0x01] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x5f,0x01,0x01] v_lshrrev_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x32,0x01,0x60,0x09,0x13] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x32,0x01,0x60,0x09,0x13] v_lshrrev_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x33,0xff,0x6f,0x05,0x30] +// GFX12: v_lshrrev_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x33,0xff,0x6f,0x05,0x30] v_max_num_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x1b,0x00,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x1b,0x00,0xff] v_max_num_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0xe4,0x00,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0xe4,0x00,0xff] v_max_num_f16 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x40,0x01,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x40,0x01,0xff] v_max_num_f16 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x41,0x01,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x41,0x01,0xff] v_max_num_f16 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x01,0x01,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x01,0x01,0xff] v_max_num_f16 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x0f,0x01,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x0f,0x01,0xff] v_max_num_f16 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x11,0x01,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x11,0x01,0xff] v_max_num_f16 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x1f,0x01,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x1f,0x01,0xff] v_max_num_f16 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x21,0x01,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x21,0x01,0xff] v_max_num_f16 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x2f,0x01,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x2f,0x01,0xff] v_max_num_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x50,0x01,0xff] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x50,0x01,0xff] v_max_num_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x5f,0x01,0x01] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x5f,0x01,0x01] v_max_num_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x62,0x01,0x60,0x09,0x13] +// GFX12: v_max_num_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x62,0x01,0x60,0x09,0x13] v_max_num_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfe,0x62,0x7f,0x6f,0xf5,0x30] +// GFX12: v_max_num_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x62,0x7f,0x6f,0xf5,0x30] v_max_num_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x1b,0x00,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x1b,0x00,0xff] v_max_num_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0xff] v_max_num_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x40,0x01,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x40,0x01,0xff] v_max_num_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x41,0x01,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x41,0x01,0xff] v_max_num_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x01,0x01,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x01,0x01,0xff] v_max_num_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x0f,0x01,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x0f,0x01,0xff] v_max_num_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x11,0x01,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x11,0x01,0xff] v_max_num_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x1f,0x01,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x1f,0x01,0xff] v_max_num_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x21,0x01,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x21,0x01,0xff] v_max_num_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x2f,0x01,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x2f,0x01,0xff] v_max_num_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x50,0x01,0xff] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x50,0x01,0xff] v_max_num_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x5f,0x01,0x01] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x5f,0x01,0x01] v_max_num_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x60,0x09,0x13] +// GFX12: v_max_num_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x60,0x09,0x13] v_max_num_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x2d,0xff,0x6f,0xf5,0x30] +// GFX12: v_max_num_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x2d,0xff,0x6f,0xf5,0x30] v_max_i32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x1b,0x00,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x1b,0x00,0xff] v_max_i32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0xe4,0x00,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0xe4,0x00,0xff] v_max_i32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x40,0x01,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x40,0x01,0xff] v_max_i32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x41,0x01,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x41,0x01,0xff] v_max_i32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x01,0x01,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x01,0x01,0xff] v_max_i32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x0f,0x01,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x0f,0x01,0xff] v_max_i32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x11,0x01,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x11,0x01,0xff] v_max_i32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x1f,0x01,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x1f,0x01,0xff] v_max_i32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x21,0x01,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x21,0x01,0xff] v_max_i32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x2f,0x01,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x2f,0x01,0xff] v_max_i32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x50,0x01,0xff] +// GFX12: v_max_i32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x50,0x01,0xff] v_max_i32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x5f,0x01,0x01] +// GFX12: v_max_i32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x5f,0x01,0x01] v_max_i32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x24,0x01,0x60,0x09,0x13] +// GFX12: v_max_i32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x24,0x01,0x60,0x09,0x13] v_max_i32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x25,0xff,0x6f,0x05,0x30] +// GFX12: v_max_i32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x25,0xff,0x6f,0x05,0x30] v_max_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x1b,0x00,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x1b,0x00,0xff] v_max_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0xe4,0x00,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0xe4,0x00,0xff] v_max_u32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x40,0x01,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x40,0x01,0xff] v_max_u32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x41,0x01,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x41,0x01,0xff] v_max_u32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x01,0x01,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x01,0x01,0xff] v_max_u32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x0f,0x01,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x0f,0x01,0xff] v_max_u32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x11,0x01,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x11,0x01,0xff] v_max_u32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x1f,0x01,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x1f,0x01,0xff] v_max_u32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x21,0x01,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x21,0x01,0xff] v_max_u32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x2f,0x01,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x2f,0x01,0xff] v_max_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x50,0x01,0xff] +// GFX12: v_max_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x50,0x01,0xff] v_max_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x5f,0x01,0x01] +// GFX12: v_max_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x5f,0x01,0x01] v_max_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x28,0x01,0x60,0x09,0x13] +// GFX12: v_max_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x28,0x01,0x60,0x09,0x13] v_max_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x29,0xff,0x6f,0x05,0x30] +// GFX12: v_max_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x29,0xff,0x6f,0x05,0x30] v_min_num_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x1b,0x00,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x1b,0x00,0xff] v_min_num_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0xe4,0x00,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0xe4,0x00,0xff] v_min_num_f16 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x40,0x01,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x40,0x01,0xff] v_min_num_f16 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x41,0x01,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x41,0x01,0xff] v_min_num_f16 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x01,0x01,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x01,0x01,0xff] v_min_num_f16 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x0f,0x01,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x0f,0x01,0xff] v_min_num_f16 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x11,0x01,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x11,0x01,0xff] v_min_num_f16 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x1f,0x01,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x1f,0x01,0xff] v_min_num_f16 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x21,0x01,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x21,0x01,0xff] v_min_num_f16 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x2f,0x01,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x2f,0x01,0xff] v_min_num_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x50,0x01,0xff] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x50,0x01,0xff] v_min_num_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x5f,0x01,0x01] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x5f,0x01,0x01] v_min_num_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x60,0x01,0x60,0x09,0x13] +// GFX12: v_min_num_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x60,0x01,0x60,0x09,0x13] v_min_num_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfe,0x60,0x7f,0x6f,0xf5,0x30] +// GFX12: v_min_num_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x60,0x7f,0x6f,0xf5,0x30] v_min_num_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x1b,0x00,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x1b,0x00,0xff] v_min_num_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0xe4,0x00,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0xe4,0x00,0xff] v_min_num_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x40,0x01,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x40,0x01,0xff] v_min_num_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x41,0x01,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x41,0x01,0xff] v_min_num_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x01,0x01,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x01,0x01,0xff] v_min_num_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x0f,0x01,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x0f,0x01,0xff] v_min_num_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x11,0x01,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x11,0x01,0xff] v_min_num_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x1f,0x01,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x1f,0x01,0xff] v_min_num_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x21,0x01,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x21,0x01,0xff] v_min_num_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x2f,0x01,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x2f,0x01,0xff] v_min_num_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x50,0x01,0xff] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x50,0x01,0xff] v_min_num_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x5f,0x01,0x01] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x5f,0x01,0x01] v_min_num_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x60,0x09,0x13] +// GFX12: v_min_num_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x2a,0x01,0x60,0x09,0x13] v_min_num_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x2b,0xff,0x6f,0xf5,0x30] +// GFX12: v_min_num_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x2b,0xff,0x6f,0xf5,0x30] v_min_i32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x1b,0x00,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x1b,0x00,0xff] v_min_i32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0xe4,0x00,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0xe4,0x00,0xff] v_min_i32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x40,0x01,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x40,0x01,0xff] v_min_i32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x41,0x01,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x41,0x01,0xff] v_min_i32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x01,0x01,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x01,0x01,0xff] v_min_i32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x0f,0x01,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x0f,0x01,0xff] v_min_i32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x11,0x01,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x11,0x01,0xff] v_min_i32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x1f,0x01,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x1f,0x01,0xff] v_min_i32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x21,0x01,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x21,0x01,0xff] v_min_i32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x2f,0x01,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x2f,0x01,0xff] v_min_i32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x50,0x01,0xff] +// GFX12: v_min_i32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x50,0x01,0xff] v_min_i32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x5f,0x01,0x01] +// GFX12: v_min_i32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x5f,0x01,0x01] v_min_i32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x22,0x01,0x60,0x09,0x13] +// GFX12: v_min_i32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x22,0x01,0x60,0x09,0x13] v_min_i32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x23,0xff,0x6f,0x05,0x30] +// GFX12: v_min_i32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x23,0xff,0x6f,0x05,0x30] v_min_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x1b,0x00,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x1b,0x00,0xff] v_min_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0xe4,0x00,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0xe4,0x00,0xff] v_min_u32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x40,0x01,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x40,0x01,0xff] v_min_u32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x41,0x01,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x41,0x01,0xff] v_min_u32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x01,0x01,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x01,0x01,0xff] v_min_u32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x0f,0x01,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x0f,0x01,0xff] v_min_u32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x11,0x01,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x11,0x01,0xff] v_min_u32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x1f,0x01,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x1f,0x01,0xff] v_min_u32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x21,0x01,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x21,0x01,0xff] v_min_u32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x2f,0x01,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x2f,0x01,0xff] v_min_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x50,0x01,0xff] +// GFX12: v_min_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x50,0x01,0xff] v_min_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x5f,0x01,0x01] +// GFX12: v_min_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x5f,0x01,0x01] v_min_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x26,0x01,0x60,0x09,0x13] +// GFX12: v_min_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x26,0x01,0x60,0x09,0x13] v_min_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x27,0xff,0x6f,0x05,0x30] +// GFX12: v_min_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x27,0xff,0x6f,0x05,0x30] v_mul_dx9_zero_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1b,0x00,0xff] v_mul_dx9_zero_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0xe4,0x00,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x40,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x40,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x41,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x41,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x01,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x01,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x0f,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x11,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x11,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1f,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x21,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x21,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x2f,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x50,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x50,0x01,0xff] v_mul_dx9_zero_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x5f,0x01,0x01] v_mul_dx9_zero_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x60,0x09,0x13] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x60,0x09,0x13] v_mul_dx9_zero_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x0f,0xff,0x6f,0xf5,0x30] +// GFX12: v_mul_dx9_zero_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x0f,0xff,0x6f,0xf5,0x30] v_mul_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x1b,0x00,0xff] v_mul_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0xe4,0x00,0xff] v_mul_f16 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x40,0x01,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x40,0x01,0xff] v_mul_f16 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x41,0x01,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x41,0x01,0xff] v_mul_f16 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x01,0x01,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x01,0x01,0xff] v_mul_f16 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x0f,0x01,0xff] v_mul_f16 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x11,0x01,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x11,0x01,0xff] v_mul_f16 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x1f,0x01,0xff] v_mul_f16 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x21,0x01,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x21,0x01,0xff] v_mul_f16 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x2f,0x01,0xff] v_mul_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x50,0x01,0xff] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x50,0x01,0xff] v_mul_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x5f,0x01,0x01] v_mul_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x60,0x09,0x13] +// GFX12: v_mul_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x6a,0x01,0x60,0x09,0x13] v_mul_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfe,0x6a,0x7f,0x6f,0xf5,0x30] +// GFX12: v_mul_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x6a,0x7f,0x6f,0xf5,0x30] v_mul_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x1b,0x00,0xff] v_mul_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0xe4,0x00,0xff] v_mul_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x40,0x01,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x40,0x01,0xff] v_mul_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x41,0x01,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x41,0x01,0xff] v_mul_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x01,0x01,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x01,0x01,0xff] v_mul_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x0f,0x01,0xff] v_mul_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x11,0x01,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x11,0x01,0xff] v_mul_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x1f,0x01,0xff] v_mul_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x21,0x01,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x21,0x01,0xff] v_mul_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x2f,0x01,0xff] v_mul_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x50,0x01,0xff] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x50,0x01,0xff] v_mul_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x5f,0x01,0x01] v_mul_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x10,0x01,0x60,0x09,0x13] +// GFX12: v_mul_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x10,0x01,0x60,0x09,0x13] v_mul_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x11,0xff,0x6f,0xf5,0x30] +// GFX12: v_mul_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x11,0xff,0x6f,0xf5,0x30] v_mul_hi_i32_i24 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x1b,0x00,0xff] v_mul_hi_i32_i24 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0xe4,0x00,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x40,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x40,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x41,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x41,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x01,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x01,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x0f,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x11,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x11,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x1f,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x21,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x21,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x2f,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x50,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x50,0x01,0xff] v_mul_hi_i32_i24 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x5f,0x01,0x01] v_mul_hi_i32_i24 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x14,0x01,0x60,0x09,0x13] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x14,0x01,0x60,0x09,0x13] v_mul_hi_i32_i24 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x15,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_hi_i32_i24_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x15,0xff,0x6f,0x05,0x30] v_mul_hi_u32_u24 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x1b,0x00,0xff] v_mul_hi_u32_u24 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0xe4,0x00,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x40,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x40,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x41,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x41,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x01,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x01,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x0f,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x11,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x11,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x1f,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x21,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x21,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x2f,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x50,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x50,0x01,0xff] v_mul_hi_u32_u24 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x5f,0x01,0x01] v_mul_hi_u32_u24 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x18,0x01,0x60,0x09,0x13] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x18,0x01,0x60,0x09,0x13] v_mul_hi_u32_u24 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x19,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_hi_u32_u24_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x19,0xff,0x6f,0x05,0x30] v_mul_i32_i24 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x1b,0x00,0xff] v_mul_i32_i24 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0xe4,0x00,0xff] v_mul_i32_i24 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x40,0x01,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x40,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x41,0x01,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x41,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x01,0x01,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x01,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x0f,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x11,0x01,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x11,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x1f,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x21,0x01,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x21,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x2f,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x50,0x01,0xff] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x50,0x01,0xff] v_mul_i32_i24 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x5f,0x01,0x01] v_mul_i32_i24 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x12,0x01,0x60,0x09,0x13] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x12,0x01,0x60,0x09,0x13] v_mul_i32_i24 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x13,0xff,0x6f,0x05,0x30] - -v_mul_dx9_zero_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1b,0x00,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0xe4,0x00,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x40,0x01,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x41,0x01,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x01,0x01,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x0f,0x01,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x11,0x01,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x1f,0x01,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x21,0x01,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x2f,0x01,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x50,0x01,0xff] - -v_mul_dx9_zero_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x5f,0x01,0x01] - -v_mul_dx9_zero_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0e,0x01,0x60,0x09,0x13] - -v_mul_dx9_zero_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x0f,0xff,0x6f,0xf5,0x30] +// GFX12: v_mul_i32_i24_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x13,0xff,0x6f,0x05,0x30] v_mul_u32_u24 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x1b,0x00,0xff] v_mul_u32_u24 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0xe4,0x00,0xff] v_mul_u32_u24 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x40,0x01,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x40,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x41,0x01,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x41,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x01,0x01,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x01,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x0f,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x11,0x01,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x11,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x1f,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x21,0x01,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x21,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x2f,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x50,0x01,0xff] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x50,0x01,0xff] v_mul_u32_u24 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x5f,0x01,0x01] v_mul_u32_u24 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x16,0x01,0x60,0x09,0x13] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x16,0x01,0x60,0x09,0x13] v_mul_u32_u24 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x17,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_u32_u24_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x17,0xff,0x6f,0x05,0x30] v_or_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x1b,0x00,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x1b,0x00,0xff] v_or_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0xe4,0x00,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0xe4,0x00,0xff] v_or_b32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x40,0x01,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x40,0x01,0xff] v_or_b32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x41,0x01,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x41,0x01,0xff] v_or_b32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x01,0x01,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x01,0x01,0xff] v_or_b32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x0f,0x01,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x0f,0x01,0xff] v_or_b32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x11,0x01,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x11,0x01,0xff] v_or_b32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x1f,0x01,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x1f,0x01,0xff] v_or_b32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x21,0x01,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x21,0x01,0xff] v_or_b32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x2f,0x01,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x2f,0x01,0xff] v_or_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x50,0x01,0xff] +// GFX12: v_or_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x50,0x01,0xff] v_or_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x5f,0x01,0x01] +// GFX12: v_or_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x5f,0x01,0x01] v_or_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x38,0x01,0x60,0x09,0x13] +// GFX12: v_or_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x38,0x01,0x60,0x09,0x13] v_or_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x39,0xff,0x6f,0x05,0x30] +// GFX12: v_or_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x39,0xff,0x6f,0x05,0x30] v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xff,0x43,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x43,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x42,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x42,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xff,0x43,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x43,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x1b,0x00,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x1b,0x00,0xff] v_sub_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0xe4,0x00,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0xe4,0x00,0xff] v_sub_f16 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x40,0x01,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x40,0x01,0xff] v_sub_f16 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x41,0x01,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x41,0x01,0xff] v_sub_f16 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x01,0x01,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x01,0x01,0xff] v_sub_f16 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x0f,0x01,0xff] v_sub_f16 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x11,0x01,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x11,0x01,0xff] v_sub_f16 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x1f,0x01,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x1f,0x01,0xff] v_sub_f16 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x21,0x01,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x21,0x01,0xff] v_sub_f16 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x2f,0x01,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x2f,0x01,0xff] v_sub_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x50,0x01,0xff] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x50,0x01,0xff] v_sub_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x5f,0x01,0x01] v_sub_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x66,0x01,0x60,0x09,0x13] +// GFX12: v_sub_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x66,0x01,0x60,0x09,0x13] v_sub_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfe,0x66,0x7f,0x6f,0xf5,0x30] +// GFX12: v_sub_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x66,0x7f,0x6f,0xf5,0x30] v_sub_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x1b,0x00,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x1b,0x00,0xff] v_sub_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0xe4,0x00,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0xe4,0x00,0xff] v_sub_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x40,0x01,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x40,0x01,0xff] v_sub_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x41,0x01,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x41,0x01,0xff] v_sub_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x01,0x01,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x01,0x01,0xff] v_sub_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x0f,0x01,0xff] v_sub_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x11,0x01,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x11,0x01,0xff] v_sub_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x1f,0x01,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x1f,0x01,0xff] v_sub_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x21,0x01,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x21,0x01,0xff] v_sub_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x2f,0x01,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x2f,0x01,0xff] v_sub_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x50,0x01,0xff] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x50,0x01,0xff] v_sub_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x5f,0x01,0x01] v_sub_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x08,0x01,0x60,0x09,0x13] +// GFX12: v_sub_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x08,0x01,0x60,0x09,0x13] v_sub_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x09,0xff,0x6f,0xf5,0x30] +// GFX12: v_sub_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x09,0xff,0x6f,0xf5,0x30] v_sub_nc_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x1b,0x00,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x1b,0x00,0xff] v_sub_nc_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0xe4,0x00,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0xe4,0x00,0xff] v_sub_nc_u32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x40,0x01,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x40,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x41,0x01,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x41,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x01,0x01,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x01,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x0f,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x11,0x01,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x11,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x1f,0x01,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x1f,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x21,0x01,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x21,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x2f,0x01,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x2f,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x50,0x01,0xff] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x50,0x01,0xff] v_sub_nc_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x5f,0x01,0x01] v_sub_nc_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x60,0x09,0x13] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x4c,0x01,0x60,0x09,0x13] v_sub_nc_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x4d,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_nc_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x4d,0xff,0x6f,0x05,0x30] v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xff,0x45,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x45,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x44,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x44,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xff,0x45,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v255, vcc, v255, v255, vcc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x45,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x1b,0x00,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x1b,0x00,0xff] v_subrev_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0xe4,0x00,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0xe4,0x00,0xff] v_subrev_f16 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x40,0x01,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x40,0x01,0xff] v_subrev_f16 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x41,0x01,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x41,0x01,0xff] v_subrev_f16 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x01,0x01,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x01,0x01,0xff] v_subrev_f16 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x0f,0x01,0xff] v_subrev_f16 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x11,0x01,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x11,0x01,0xff] v_subrev_f16 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x1f,0x01,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x1f,0x01,0xff] v_subrev_f16 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x21,0x01,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x21,0x01,0xff] v_subrev_f16 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x2f,0x01,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x2f,0x01,0xff] v_subrev_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x50,0x01,0xff] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x50,0x01,0xff] v_subrev_f16 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x5f,0x01,0x01] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x5f,0x01,0x01] v_subrev_f16 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x68,0x01,0x60,0x09,0x13] +// GFX12: v_subrev_f16_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x68,0x01,0x60,0x09,0x13] v_subrev_f16 v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfe,0x68,0x7f,0x6f,0xf5,0x30] +// GFX12: v_subrev_f16_dpp v127, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfe,0x68,0x7f,0x6f,0xf5,0x30] v_subrev_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x1b,0x00,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x1b,0x00,0xff] v_subrev_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0xe4,0x00,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0xe4,0x00,0xff] v_subrev_f32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x40,0x01,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x40,0x01,0xff] v_subrev_f32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x41,0x01,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x41,0x01,0xff] v_subrev_f32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x01,0x01,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x01,0x01,0xff] v_subrev_f32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x0f,0x01,0xff] v_subrev_f32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x11,0x01,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x11,0x01,0xff] v_subrev_f32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x1f,0x01,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x1f,0x01,0xff] v_subrev_f32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x21,0x01,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x21,0x01,0xff] v_subrev_f32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x2f,0x01,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x2f,0x01,0xff] v_subrev_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x50,0x01,0xff] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x50,0x01,0xff] v_subrev_f32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x5f,0x01,0x01] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x5f,0x01,0x01] v_subrev_f32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x60,0x09,0x13] +// GFX12: v_subrev_f32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x0a,0x01,0x60,0x09,0x13] v_subrev_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x0b,0xff,0x6f,0xf5,0x30] +// GFX12: v_subrev_f32_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x0b,0xff,0x6f,0xf5,0x30] v_subrev_nc_u32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x1b,0x00,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x1b,0x00,0xff] v_subrev_nc_u32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0xe4,0x00,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0xe4,0x00,0xff] v_subrev_nc_u32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x40,0x01,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x40,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x41,0x01,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x41,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x01,0x01,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x01,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x0f,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x11,0x01,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x11,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x1f,0x01,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x1f,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x21,0x01,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x21,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x2f,0x01,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x2f,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x50,0x01,0xff] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x50,0x01,0xff] v_subrev_nc_u32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x5f,0x01,0x01] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x5f,0x01,0x01] v_subrev_nc_u32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x60,0x09,0x13] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x4e,0x01,0x60,0x09,0x13] v_subrev_nc_u32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x4f,0xff,0x6f,0x05,0x30] +// GFX12: v_subrev_nc_u32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x4f,0xff,0x6f,0x05,0x30] v_xnor_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x1b,0x00,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x1b,0x00,0xff] v_xnor_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0xe4,0x00,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0xe4,0x00,0xff] v_xnor_b32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x40,0x01,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x40,0x01,0xff] v_xnor_b32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x41,0x01,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x41,0x01,0xff] v_xnor_b32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x01,0x01,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x01,0x01,0xff] v_xnor_b32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x0f,0x01,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x0f,0x01,0xff] v_xnor_b32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x11,0x01,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x11,0x01,0xff] v_xnor_b32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x1f,0x01,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x1f,0x01,0xff] v_xnor_b32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x21,0x01,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x21,0x01,0xff] v_xnor_b32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x2f,0x01,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x2f,0x01,0xff] v_xnor_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x50,0x01,0xff] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x50,0x01,0xff] v_xnor_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x5f,0x01,0x01] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x5f,0x01,0x01] v_xnor_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x60,0x09,0x13] +// GFX12: v_xnor_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x3c,0x01,0x60,0x09,0x13] v_xnor_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x3d,0xff,0x6f,0x05,0x30] +// GFX12: v_xnor_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x3d,0xff,0x6f,0x05,0x30] v_xor_b32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x1b,0x00,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x1b,0x00,0xff] v_xor_b32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0xe4,0x00,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0xe4,0x00,0xff] v_xor_b32 v5, v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x40,0x01,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x40,0x01,0xff] v_xor_b32 v5, v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x41,0x01,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x41,0x01,0xff] v_xor_b32 v5, v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x01,0x01,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x01,0x01,0xff] v_xor_b32 v5, v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x0f,0x01,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x0f,0x01,0xff] v_xor_b32 v5, v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x11,0x01,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x11,0x01,0xff] v_xor_b32 v5, v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x1f,0x01,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x1f,0x01,0xff] v_xor_b32 v5, v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x21,0x01,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x21,0x01,0xff] v_xor_b32 v5, v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x2f,0x01,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x2f,0x01,0xff] v_xor_b32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x50,0x01,0xff] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x50,0x01,0xff] v_xor_b32 v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x5f,0x01,0x01] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x5f,0x01,0x01] v_xor_b32 v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x60,0x09,0x13] +// GFX12: v_xor_b32_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x3a,0x01,0x60,0x09,0x13] v_xor_b32 v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xff,0x3b,0xff,0x6f,0x05,0x30] +// GFX12: v_xor_b32_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xff,0x3b,0xff,0x6f,0x05,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8.s index 05971722a7268..bea2eb334dab1 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop2_dpp8.s @@ -1,439 +1,425 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xff,0x41,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_add_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x41,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_ci_u32 v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xff,0x41,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_ci_u32_dpp v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x41,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] +// GFX12: v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] v_add_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] +// GFX12: v_add_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x64,0x01,0x77,0x39,0x05] v_add_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfe,0x64,0x7f,0x00,0x00,0x00] +// GFX12: v_add_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x64,0x7f,0x00,0x00,0x00] v_add_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x06,0x01,0x77,0x39,0x05] +// GFX12: v_add_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x06,0x01,0x77,0x39,0x05] v_add_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x06,0x01,0x77,0x39,0x05] +// GFX12: v_add_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x06,0x01,0x77,0x39,0x05] v_add_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x07,0xff,0x00,0x00,0x00] +// GFX12: v_add_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x07,0xff,0x00,0x00,0x00] v_add_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05] v_add_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05] v_add_nc_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x4b,0xff,0x00,0x00,0x00] +// GFX12: v_add_nc_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x4b,0xff,0x00,0x00,0x00] v_and_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x36,0x01,0x77,0x39,0x05] +// GFX12: v_and_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x36,0x01,0x77,0x39,0x05] v_and_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x36,0x01,0x77,0x39,0x05] +// GFX12: v_and_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x36,0x01,0x77,0x39,0x05] v_and_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x37,0xff,0x00,0x00,0x00] +// GFX12: v_and_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x37,0xff,0x00,0x00,0x00] v_ashrrev_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x34,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x34,0x01,0x77,0x39,0x05] v_ashrrev_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x34,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x34,0x01,0x77,0x39,0x05] v_ashrrev_i32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x35,0xff,0x00,0x00,0x00] +// GFX12: v_ashrrev_i32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x35,0xff,0x00,0x00,0x00] v_cndmask_b32 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xff,0x03,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cndmask_b32_dpp v255, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x03,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v5, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v5, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x02,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cndmask_b32 v255, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xff,0x03,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cndmask_b32_dpp v255, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x03,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cvt_pk_rtz_f16_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x5f,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x5f,0xff,0x00,0x00,0x00] v_cvt_pkrtz_f16_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x5e,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x5f,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x5f,0xff,0x00,0x00,0x00] -v_fmac_f16 v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x6c,0x01,0x77,0x39,0x05] +v_fmac_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] +// GFX12: v_fmac_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x6c,0x01,0x77,0x39,0x05] -v_fmac_f16 v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x6c,0x01,0x77,0x39,0x05] +v_fmac_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 +// GFX12: v_fmac_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x6c,0x01,0x77,0x39,0x05] -v_fmac_f16 v127.l, v127.l, v127.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfe,0x6c,0x7f,0x00,0x00,0x00] - -v_fmac_f16 v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0b,0x6d,0x81,0x77,0x39,0x05] - -v_fmac_f16 v127.h, v127.h, v127.h dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x6d,0xff,0x00,0x00,0x00] +v_fmac_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 +// GFX12: v_fmac_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x6c,0x7f,0x00,0x00,0x00] v_fmac_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x56,0x01,0x77,0x39,0x05] +// GFX12: v_fmac_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x56,0x01,0x77,0x39,0x05] v_fmac_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x56,0x01,0x77,0x39,0x05] +// GFX12: v_fmac_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x56,0x01,0x77,0x39,0x05] v_fmac_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x57,0xff,0x00,0x00,0x00] +// GFX12: v_fmac_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x57,0xff,0x00,0x00,0x00] v_ldexp_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x76,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x76,0x01,0x77,0x39,0x05] v_ldexp_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x76,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x76,0x01,0x77,0x39,0x05] v_ldexp_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfe,0x76,0x7f,0x00,0x00,0x00] +// GFX12: v_ldexp_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x76,0x7f,0x00,0x00,0x00] v_lshlrev_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x30,0x01,0x77,0x39,0x05] v_lshlrev_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x30,0x01,0x77,0x39,0x05] v_lshlrev_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x31,0xff,0x00,0x00,0x00] +// GFX12: v_lshlrev_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x31,0xff,0x00,0x00,0x00] v_lshrrev_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x32,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x32,0x01,0x77,0x39,0x05] v_lshrrev_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x32,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x32,0x01,0x77,0x39,0x05] v_lshrrev_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x33,0xff,0x00,0x00,0x00] +// GFX12: v_lshrrev_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x33,0xff,0x00,0x00,0x00] v_max_num_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x62,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x62,0x01,0x77,0x39,0x05] v_max_num_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x62,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x62,0x01,0x77,0x39,0x05] v_max_num_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfe,0x62,0x7f,0x00,0x00,0x00] +// GFX12: v_max_num_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x62,0x7f,0x00,0x00,0x00] v_max_num_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x2c,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x2c,0x01,0x77,0x39,0x05] v_max_num_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x2c,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x2c,0x01,0x77,0x39,0x05] v_max_num_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x2d,0xff,0x00,0x00,0x00] +// GFX12: v_max_num_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x2d,0xff,0x00,0x00,0x00] v_max_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x24,0x01,0x77,0x39,0x05] +// GFX12: v_max_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x24,0x01,0x77,0x39,0x05] v_max_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x24,0x01,0x77,0x39,0x05] +// GFX12: v_max_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x24,0x01,0x77,0x39,0x05] v_max_i32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x25,0xff,0x00,0x00,0x00] +// GFX12: v_max_i32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x25,0xff,0x00,0x00,0x00] v_max_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x28,0x01,0x77,0x39,0x05] +// GFX12: v_max_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x28,0x01,0x77,0x39,0x05] v_max_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x28,0x01,0x77,0x39,0x05] +// GFX12: v_max_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x28,0x01,0x77,0x39,0x05] v_max_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x29,0xff,0x00,0x00,0x00] +// GFX12: v_max_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x29,0xff,0x00,0x00,0x00] v_min_num_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x60,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x60,0x01,0x77,0x39,0x05] v_min_num_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x60,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x60,0x01,0x77,0x39,0x05] v_min_num_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfe,0x60,0x7f,0x00,0x00,0x00] +// GFX12: v_min_num_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x60,0x7f,0x00,0x00,0x00] v_min_num_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x2a,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x2a,0x01,0x77,0x39,0x05] v_min_num_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x2a,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x2a,0x01,0x77,0x39,0x05] v_min_num_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x2b,0xff,0x00,0x00,0x00] +// GFX12: v_min_num_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x2b,0xff,0x00,0x00,0x00] v_min_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x22,0x01,0x77,0x39,0x05] +// GFX12: v_min_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x22,0x01,0x77,0x39,0x05] v_min_i32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x22,0x01,0x77,0x39,0x05] +// GFX12: v_min_i32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x22,0x01,0x77,0x39,0x05] v_min_i32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x23,0xff,0x00,0x00,0x00] +// GFX12: v_min_i32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x23,0xff,0x00,0x00,0x00] v_min_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x26,0x01,0x77,0x39,0x05] +// GFX12: v_min_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x26,0x01,0x77,0x39,0x05] v_min_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x26,0x01,0x77,0x39,0x05] +// GFX12: v_min_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x26,0x01,0x77,0x39,0x05] v_min_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x27,0xff,0x00,0x00,0x00] +// GFX12: v_min_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x27,0xff,0x00,0x00,0x00] v_mul_dx9_zero_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x0f,0xff,0x00,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x0f,0xff,0x00,0x00,0x00] v_mul_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x6a,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x6a,0x01,0x77,0x39,0x05] v_mul_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x6a,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x6a,0x01,0x77,0x39,0x05] v_mul_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfe,0x6a,0x7f,0x00,0x00,0x00] +// GFX12: v_mul_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x6a,0x7f,0x00,0x00,0x00] v_mul_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x10,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x10,0x01,0x77,0x39,0x05] v_mul_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x10,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x10,0x01,0x77,0x39,0x05] v_mul_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x11,0xff,0x00,0x00,0x00] +// GFX12: v_mul_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x11,0xff,0x00,0x00,0x00] v_mul_hi_i32_i24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x14,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x14,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x14,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_i32_i24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x14,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x15,0xff,0x00,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x15,0xff,0x00,0x00,0x00] v_mul_hi_u32_u24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x18,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x18,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x18,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_u32_u24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x18,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x19,0xff,0x00,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x19,0xff,0x00,0x00,0x00] v_mul_i32_i24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x12,0x01,0x77,0x39,0x05] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x12,0x01,0x77,0x39,0x05] v_mul_i32_i24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x12,0x01,0x77,0x39,0x05] +// GFX12: v_mul_i32_i24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x12,0x01,0x77,0x39,0x05] v_mul_i32_i24 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x13,0xff,0x00,0x00,0x00] - -v_mul_dx9_zero_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] - -v_mul_dx9_zero_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x0e,0x01,0x77,0x39,0x05] - -v_mul_dx9_zero_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x0f,0xff,0x00,0x00,0x00] +// GFX12: v_mul_i32_i24_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x13,0xff,0x00,0x00,0x00] v_mul_u32_u24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x16,0x01,0x77,0x39,0x05] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x16,0x01,0x77,0x39,0x05] v_mul_u32_u24 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x16,0x01,0x77,0x39,0x05] +// GFX12: v_mul_u32_u24_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x16,0x01,0x77,0x39,0x05] v_mul_u32_u24 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x17,0xff,0x00,0x00,0x00] +// GFX12: v_mul_u32_u24_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x17,0xff,0x00,0x00,0x00] v_or_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x38,0x01,0x77,0x39,0x05] +// GFX12: v_or_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x38,0x01,0x77,0x39,0x05] v_or_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x38,0x01,0x77,0x39,0x05] +// GFX12: v_or_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x38,0x01,0x77,0x39,0x05] v_or_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x39,0xff,0x00,0x00,0x00] +// GFX12: v_or_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x39,0xff,0x00,0x00,0x00] v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xff,0x43,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_sub_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x43,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x42,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_ci_u32 v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xff,0x43,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_ci_u32_dpp v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x43,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x66,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x66,0x01,0x77,0x39,0x05] v_sub_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x66,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x66,0x01,0x77,0x39,0x05] v_sub_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfe,0x66,0x7f,0x00,0x00,0x00] +// GFX12: v_sub_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x66,0x7f,0x00,0x00,0x00] v_sub_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x08,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x08,0x01,0x77,0x39,0x05] v_sub_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x08,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x08,0x01,0x77,0x39,0x05] v_sub_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x09,0xff,0x00,0x00,0x00] +// GFX12: v_sub_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x09,0xff,0x00,0x00,0x00] v_sub_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05] v_sub_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05] v_sub_nc_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x4d,0xff,0x00,0x00,0x00] +// GFX12: v_sub_nc_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x4d,0xff,0x00,0x00,0x00] v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xff,0x45,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_subrev_co_ci_u32_dpp v255, vcc_lo, v255, v255, vcc_lo dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x45,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x44,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_ci_u32 v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xff,0x45,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_ci_u32_dpp v255, vcc, v255, v255, vcc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x45,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x68,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x68,0x01,0x77,0x39,0x05] v_subrev_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x68,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f16_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x68,0x01,0x77,0x39,0x05] v_subrev_f16 v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfe,0x68,0x7f,0x00,0x00,0x00] +// GFX12: v_subrev_f16_dpp v127, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfe,0x68,0x7f,0x00,0x00,0x00] v_subrev_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x0a,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x0a,0x01,0x77,0x39,0x05] v_subrev_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x0a,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x0a,0x01,0x77,0x39,0x05] v_subrev_f32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x0b,0xff,0x00,0x00,0x00] +// GFX12: v_subrev_f32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x0b,0xff,0x00,0x00,0x00] v_subrev_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05] v_subrev_nc_u32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05] v_subrev_nc_u32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x4f,0xff,0x00,0x00,0x00] +// GFX12: v_subrev_nc_u32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x4f,0xff,0x00,0x00,0x00] v_xnor_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x3c,0x01,0x77,0x39,0x05] +// GFX12: v_xnor_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x3c,0x01,0x77,0x39,0x05] v_xnor_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x3c,0x01,0x77,0x39,0x05] +// GFX12: v_xnor_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x3c,0x01,0x77,0x39,0x05] v_xnor_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x3d,0xff,0x00,0x00,0x00] +// GFX12: v_xnor_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x3d,0xff,0x00,0x00,0x00] v_xor_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x3a,0x01,0x77,0x39,0x05] +// GFX12: v_xor_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x3a,0x01,0x77,0x39,0x05] v_xor_b32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x3a,0x01,0x77,0x39,0x05] +// GFX12: v_xor_b32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x3a,0x01,0x77,0x39,0x05] v_xor_b32 v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xff,0x3b,0xff,0x00,0x00,0x00] +// GFX12: v_xor_b32_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xff,0x3b,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3.s index 1ae1eaf1ceead..69ed1af22b459 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3.s @@ -1,1157 +1,1158 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add3_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_add3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x55,0xd6,0x01,0x05,0x0e,0x00] v_add3_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_add3_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x55,0xd6,0xff,0x05,0xa4,0x01] v_add3_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_add3_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x55,0xd6,0x01,0xfe,0xff,0x01] v_add3_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_add3_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x55,0xd6,0x69,0xd2,0xf8,0x01] v_add3_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_add3_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x55,0xd6,0x6a,0xf6,0x0c,0x04] v_add3_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_add3_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x55,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_add3_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_add3_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x55,0xd6,0x7b,0xfa,0xed,0x01] v_add3_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_add3_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x55,0xd6,0x7d,0xe0,0xf5,0x01] v_add3_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_add3_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x55,0xd6,0x7e,0x82,0xad,0x01] v_add3_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_add3_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x55,0xd6,0x7f,0xf8,0xa8,0x01] v_add3_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_add3_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x55,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_add3_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_add3_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x55,0xd6,0xc1,0xfe,0xf4,0x03] v_add3_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_add3_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x55,0xd6,0xf0,0xfa,0xc0,0x03] v_add3_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x55,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_add3_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x55,0xd6,0xfd,0xd4,0x04,0x03] v_add3_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x55,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_add3_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x55,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_add_co_u32 v5, s6, v1, v2 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, v1, v2 ; encoding: [0x05,0x06,0x00,0xd7,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, v255, v255 -// W32: encoding: [0x05,0x06,0x00,0xd7,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, v255, v255 ; encoding: [0x05,0x06,0x00,0xd7,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, s1, s2 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, s1, s2 ; encoding: [0x05,0x06,0x00,0xd7,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, s105, s105 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, s105, s105 ; encoding: [0x05,0x06,0x00,0xd7,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, vcc_lo, ttmp15 ; encoding: [0x05,0x06,0x00,0xd7,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, vcc_hi, 0xaf123456 ; encoding: [0x05,0x06,0x00,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, ttmp15, src_scc -// W32: encoding: [0x05,0x06,0x00,0xd7,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, ttmp15, src_scc ; encoding: [0x05,0x06,0x00,0xd7,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, m0, 0.5 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, m0, 0.5 ; encoding: [0x05,0x06,0x00,0xd7,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, exec_lo, -1 -// W32: encoding: [0x05,0x06,0x00,0xd7,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, exec_lo, -1 ; encoding: [0x05,0x06,0x00,0xd7,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s6, exec_hi, null -// W32: encoding: [0x05,0x06,0x00,0xd7,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s6, exec_hi, null ; encoding: [0x05,0x06,0x00,0xd7,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s105, null, exec_lo -// W32: encoding: [0x05,0x69,0x00,0xd7,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, s105, null, exec_lo ; encoding: [0x05,0x69,0x00,0xd7,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, vcc_lo, -1, exec_hi -// W32: encoding: [0x05,0x6a,0x00,0xd7,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, vcc_lo, -1, exec_hi ; encoding: [0x05,0x6a,0x00,0xd7,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, vcc_hi, 0.5, m0 -// W32: encoding: [0x05,0x6b,0x00,0xd7,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, vcc_hi, 0.5, m0 ; encoding: [0x05,0x6b,0x00,0xd7,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, ttmp15, src_scc, vcc_lo -// W32: encoding: [0x05,0x7b,0x00,0xd7,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32 v5, ttmp15, src_scc, vcc_lo ; encoding: [0x05,0x7b,0x00,0xd7,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], v1, v2 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], v1, v2 ; encoding: [0x05,0x0c,0x00,0xd7,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], v255, v255 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], v255, v255 ; encoding: [0x05,0x0c,0x00,0xd7,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], s1, s2 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], s1, s2 ; encoding: [0x05,0x0c,0x00,0xd7,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], s105, s105 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], s105, s105 ; encoding: [0x05,0x0c,0x00,0xd7,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], vcc_lo, ttmp15 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], vcc_lo, ttmp15 ; encoding: [0x05,0x0c,0x00,0xd7,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 ; encoding: [0x05,0x0c,0x00,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], ttmp15, src_scc -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], ttmp15, src_scc ; encoding: [0x05,0x0c,0x00,0xd7,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], m0, 0.5 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], m0, 0.5 ; encoding: [0x05,0x0c,0x00,0xd7,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], exec_lo, -1 -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], exec_lo, -1 ; encoding: [0x05,0x0c,0x00,0xd7,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], exec_hi, null -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], exec_hi, null ; encoding: [0x05,0x0c,0x00,0xd7,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[12:13], null, exec_lo -// W64: encoding: [0x05,0x0c,0x00,0xd7,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[12:13], null, exec_lo ; encoding: [0x05,0x0c,0x00,0xd7,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, s[104:105], -1, exec_hi -// W64: encoding: [0x05,0x68,0x00,0xd7,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, s[104:105], -1, exec_hi ; encoding: [0x05,0x68,0x00,0xd7,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v5, vcc, 0.5, m0 -// W64: encoding: [0x05,0x6a,0x00,0xd7,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_add_co_u32 v5, vcc, 0.5, m0 ; encoding: [0x05,0x6a,0x00,0xd7,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_add_co_u32 v5, ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x05,0x7a,0x00,0xd7,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32 v5, ttmp[14:15], src_scc, vcc_lo ; encoding: [0x05,0x7a,0x00,0xd7,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_add_co_u32 v255, null, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0xfc,0x00,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_add_co_u32 v255, null, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0xfc,0x00,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_add_lshl_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_add_lshl_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x47,0xd6,0x01,0x05,0x0e,0x00] v_add_lshl_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_add_lshl_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x47,0xd6,0xff,0x05,0xa4,0x01] v_add_lshl_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_add_lshl_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x47,0xd6,0x01,0xfe,0xff,0x01] v_add_lshl_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_add_lshl_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x47,0xd6,0x69,0xd2,0xf8,0x01] v_add_lshl_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_add_lshl_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x47,0xd6,0x6a,0xf6,0x0c,0x04] v_add_lshl_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_add_lshl_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x47,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_add_lshl_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_add_lshl_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x47,0xd6,0x7b,0xfa,0xed,0x01] v_add_lshl_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_add_lshl_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x47,0xd6,0x7d,0xe0,0xf5,0x01] v_add_lshl_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_add_lshl_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x47,0xd6,0x7e,0x82,0xad,0x01] v_add_lshl_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_add_lshl_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x47,0xd6,0x7f,0xf8,0xa8,0x01] v_add_lshl_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_add_lshl_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x47,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_add_lshl_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_add_lshl_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x47,0xd6,0xc1,0xfe,0xf4,0x03] v_add_lshl_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_add_lshl_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x47,0xd6,0xf0,0xfa,0xc0,0x03] v_add_lshl_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x47,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_add_lshl_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x47,0xd6,0xfd,0xd4,0x04,0x03] v_add_lshl_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x47,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_add_lshl_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x47,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_add_nc_i16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_add_nc_i16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x0d,0xd7,0x01,0x05,0x02,0x00] v_add_nc_i16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x0d,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_add_nc_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0d,0xd7,0x01,0x05,0x02,0x00] v_add_nc_i16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_add_nc_i16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x0d,0xd7,0xff,0xff,0x03,0x00] v_add_nc_i16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x0d,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_add_nc_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0d,0xd7,0xff,0xff,0x03,0x00] v_add_nc_i16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_add_nc_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0d,0xd7,0x01,0x04,0x00,0x00] v_add_nc_i16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_add_nc_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0d,0xd7,0x69,0xd2,0x00,0x00] v_add_nc_i16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_add_nc_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0d,0xd7,0x6a,0xf6,0x00,0x00] v_add_nc_i16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_add_nc_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0d,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_i16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_add_nc_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0d,0xd7,0x7b,0xfa,0x01,0x00] v_add_nc_i16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_add_nc_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0d,0xd7,0x7d,0xe0,0x01,0x00] v_add_nc_i16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_add_nc_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0d,0xd7,0x7e,0x82,0x01,0x00] v_add_nc_i16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_add_nc_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0d,0xd7,0x7f,0xf8,0x00,0x00] v_add_nc_i16 v5.h, null, exec_lo op_sel:[1,1,1] -// GFX12: encoding: [0x05,0x58,0x0d,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_add_nc_i16 v5.h, null, exec_lo op_sel:[1,1,1] ; encoding: [0x05,0x58,0x0d,0xd7,0x7c,0xfc,0x00,0x00] v_add_nc_i16 v5.l, -1, exec_hi op_sel:[0,0,0] -// GFX12: encoding: [0x05,0x00,0x0d,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_add_nc_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0d,0xd7,0xc1,0xfe,0x00,0x00] v_add_nc_i16 v5.l, 0.5, m0 op_sel:[1,0,0] -// GFX12: encoding: [0x05,0x08,0x0d,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_add_nc_i16 v5.l, 0.5, m0 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0d,0xd7,0xf0,0xfa,0x00,0x00] v_add_nc_i16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] -// GFX12: encoding: [0x05,0x10,0x0d,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_add_nc_i16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0d,0xd7,0xfd,0xd4,0x00,0x00] v_add_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp -// GFX12: encoding: [0xff,0xc0,0x0d,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_add_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x0d,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_i16 v255.h, 0xfe0b, vcc_hi clamp -// GFX12: encoding: [0xff,0xc0,0x0d,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_add_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x0d,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_i32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_add_nc_i32 v5, v1, v2 ; encoding: [0x05,0x00,0x26,0xd7,0x01,0x05,0x02,0x00] v_add_nc_i32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_add_nc_i32 v5, v255, v255 ; encoding: [0x05,0x00,0x26,0xd7,0xff,0xff,0x03,0x00] v_add_nc_i32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_add_nc_i32 v5, s1, s2 ; encoding: [0x05,0x00,0x26,0xd7,0x01,0x04,0x00,0x00] v_add_nc_i32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_add_nc_i32 v5, s105, s105 ; encoding: [0x05,0x00,0x26,0xd7,0x69,0xd2,0x00,0x00] v_add_nc_i32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_add_nc_i32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x26,0xd7,0x6a,0xf6,0x00,0x00] v_add_nc_i32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_add_nc_i32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x26,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_add_nc_i32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_add_nc_i32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x26,0xd7,0x7b,0xfa,0x01,0x00] v_add_nc_i32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_add_nc_i32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x26,0xd7,0x7d,0xe0,0x01,0x00] v_add_nc_i32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_add_nc_i32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x26,0xd7,0x7e,0x82,0x01,0x00] v_add_nc_i32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_add_nc_i32 v5, exec_hi, null ; encoding: [0x05,0x00,0x26,0xd7,0x7f,0xf8,0x00,0x00] v_add_nc_i32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_add_nc_i32 v5, null, exec_lo ; encoding: [0x05,0x00,0x26,0xd7,0x7c,0xfc,0x00,0x00] v_add_nc_i32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_add_nc_i32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x26,0xd7,0xc1,0xfe,0x00,0x00] v_add_nc_i32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_add_nc_i32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x26,0xd7,0xf0,0xfa,0x00,0x00] v_add_nc_i32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x26,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_add_nc_i32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x26,0xd7,0xfd,0xd4,0x00,0x00] v_add_nc_i32 v255, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0x80,0x26,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_add_nc_i32 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x26,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_add_nc_u16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_add_nc_u16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x03,0xd7,0x01,0x05,0x02,0x00] v_add_nc_u16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x03,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_add_nc_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x03,0xd7,0x01,0x05,0x02,0x00] v_add_nc_u16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_add_nc_u16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x03,0xd7,0xff,0xff,0x03,0x00] v_add_nc_u16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x03,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_add_nc_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x03,0xd7,0xff,0xff,0x03,0x00] v_add_nc_u16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_add_nc_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x03,0xd7,0x01,0x04,0x00,0x00] v_add_nc_u16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_add_nc_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x03,0xd7,0x69,0xd2,0x00,0x00] v_add_nc_u16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_add_nc_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x03,0xd7,0x6a,0xf6,0x00,0x00] v_add_nc_u16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_add_nc_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x03,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_u16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_add_nc_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x03,0xd7,0x7b,0xfa,0x01,0x00] v_add_nc_u16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_add_nc_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x03,0xd7,0x7d,0xe0,0x01,0x00] v_add_nc_u16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_add_nc_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x03,0xd7,0x7e,0x82,0x01,0x00] v_add_nc_u16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_add_nc_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x03,0xd7,0x7f,0xf8,0x00,0x00] v_add_nc_u16 v5.h, null, exec_lo op_sel:[1,1,1] -// GFX12: encoding: [0x05,0x58,0x03,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_add_nc_u16 v5.h, null, exec_lo op_sel:[1,1,1] ; encoding: [0x05,0x58,0x03,0xd7,0x7c,0xfc,0x00,0x00] v_add_nc_u16 v5.l, -1, exec_hi op_sel:[0,0,0] -// GFX12: encoding: [0x05,0x00,0x03,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_add_nc_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x03,0xd7,0xc1,0xfe,0x00,0x00] v_add_nc_u16 v5.l, 0.5, m0 op_sel:[1,0,0] -// GFX12: encoding: [0x05,0x08,0x03,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_add_nc_u16 v5.l, 0.5, m0 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x03,0xd7,0xf0,0xfa,0x00,0x00] v_add_nc_u16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] -// GFX12: encoding: [0x05,0x10,0x03,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_add_nc_u16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] ; encoding: [0x05,0x10,0x03,0xd7,0xfd,0xd4,0x00,0x00] v_add_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp -// GFX12: encoding: [0xff,0xc0,0x03,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_add_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x03,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_add_nc_u16 v255.h, 0xfe0b, vcc_hi clamp -// GFX12: encoding: [0xff,0xc0,0x03,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_add_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x03,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_alignbit_b32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_alignbit_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x16,0xd6,0x01,0x05,0x0e,0x00] v_alignbit_b32 v5, v255, s2, s3 -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0xff,0x05,0x0c,0x00] +// GFX12: v_alignbit_b32 v5, v255, s2, s3 ; encoding: [0x05,0x00,0x16,0xd6,0xff,0x05,0x0c,0x00] v_alignbit_b32 v5, s1, v255, s3 -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x01,0xfe,0x0f,0x00] +// GFX12: v_alignbit_b32 v5, s1, v255, s3 ; encoding: [0x05,0x00,0x16,0xd6,0x01,0xfe,0x0f,0x00] v_alignbit_b32 v5, s105, s105, s105 -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x69,0xd2,0xa4,0x01] +// GFX12: v_alignbit_b32 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x16,0xd6,0x69,0xd2,0xa4,0x01] v_alignbit_b32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_alignbit_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x16,0xd6,0x6a,0xf6,0x0c,0x04] v_alignbit_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_alignbit_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x16,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_alignbit_b32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_alignbit_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x16,0xd6,0x7b,0xfa,0xed,0x01] v_alignbit_b32 v5, m0, 0.5, exec_lo -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x7d,0xe0,0xf9,0x01] +// GFX12: v_alignbit_b32 v5, m0, 0.5, exec_lo ; encoding: [0x05,0x00,0x16,0xd6,0x7d,0xe0,0xf9,0x01] v_alignbit_b32 v5, exec_lo, -1, m0 -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x7e,0x82,0xf5,0x01] +// GFX12: v_alignbit_b32 v5, exec_lo, -1, m0 ; encoding: [0x05,0x00,0x16,0xd6,0x7e,0x82,0xf5,0x01] v_alignbit_b32 v5, exec_hi, null, vcc_hi -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x7f,0xf8,0xac,0x01] +// GFX12: v_alignbit_b32 v5, exec_hi, null, vcc_hi ; encoding: [0x05,0x00,0x16,0xd6,0x7f,0xf8,0xac,0x01] v_alignbit_b32 v5, null, exec_lo, vcc_lo -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0x7c,0xfc,0xa8,0x01] +// GFX12: v_alignbit_b32 v5, null, exec_lo, vcc_lo ; encoding: [0x05,0x00,0x16,0xd6,0x7c,0xfc,0xa8,0x01] v_alignbit_b32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_alignbit_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x16,0xd6,0xc1,0xfe,0xf4,0x03] v_alignbit_b32 v5, 0.5, m0, exec_hi -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0xf0,0xfa,0xfc,0x01] +// GFX12: v_alignbit_b32 v5, 0.5, m0, exec_hi ; encoding: [0x05,0x00,0x16,0xd6,0xf0,0xfa,0xfc,0x01] v_alignbit_b32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x16,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_alignbit_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x16,0xd6,0xfd,0xd4,0x04,0x03] v_alignbit_b32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x16,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_alignbit_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x16,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_alignbyte_b32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_alignbyte_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x17,0xd6,0x01,0x05,0x0e,0x00] v_alignbyte_b32 v5, v255, s2, s3 -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0xff,0x05,0x0c,0x00] +// GFX12: v_alignbyte_b32 v5, v255, s2, s3 ; encoding: [0x05,0x00,0x17,0xd6,0xff,0x05,0x0c,0x00] v_alignbyte_b32 v5, s1, v255, s3 -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x01,0xfe,0x0f,0x00] +// GFX12: v_alignbyte_b32 v5, s1, v255, s3 ; encoding: [0x05,0x00,0x17,0xd6,0x01,0xfe,0x0f,0x00] v_alignbyte_b32 v5, s105, s105, s105 -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x69,0xd2,0xa4,0x01] +// GFX12: v_alignbyte_b32 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x17,0xd6,0x69,0xd2,0xa4,0x01] v_alignbyte_b32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_alignbyte_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x17,0xd6,0x6a,0xf6,0x0c,0x04] v_alignbyte_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_alignbyte_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x17,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_alignbyte_b32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_alignbyte_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x17,0xd6,0x7b,0xfa,0xed,0x01] v_alignbyte_b32 v5, m0, 0.5, exec_lo -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x7d,0xe0,0xf9,0x01] +// GFX12: v_alignbyte_b32 v5, m0, 0.5, exec_lo ; encoding: [0x05,0x00,0x17,0xd6,0x7d,0xe0,0xf9,0x01] v_alignbyte_b32 v5, exec_lo, -1, m0 -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x7e,0x82,0xf5,0x01] +// GFX12: v_alignbyte_b32 v5, exec_lo, -1, m0 ; encoding: [0x05,0x00,0x17,0xd6,0x7e,0x82,0xf5,0x01] v_alignbyte_b32 v5, exec_hi, null, vcc_hi -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x7f,0xf8,0xac,0x01] +// GFX12: v_alignbyte_b32 v5, exec_hi, null, vcc_hi ; encoding: [0x05,0x00,0x17,0xd6,0x7f,0xf8,0xac,0x01] v_alignbyte_b32 v5, null, exec_lo, vcc_lo -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0x7c,0xfc,0xa8,0x01] +// GFX12: v_alignbyte_b32 v5, null, exec_lo, vcc_lo ; encoding: [0x05,0x00,0x17,0xd6,0x7c,0xfc,0xa8,0x01] v_alignbyte_b32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_alignbyte_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x17,0xd6,0xc1,0xfe,0xf4,0x03] v_alignbyte_b32 v5, 0.5, m0, exec_hi -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0xf0,0xfa,0xfc,0x01] +// GFX12: v_alignbyte_b32 v5, 0.5, m0, exec_hi ; encoding: [0x05,0x00,0x17,0xd6,0xf0,0xfa,0xfc,0x01] v_alignbyte_b32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x17,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_alignbyte_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x17,0xd6,0xfd,0xd4,0x04,0x03] v_alignbyte_b32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x17,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_alignbyte_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x17,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_and_b16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_and_b16 v5, v1, v2 ; encoding: [0x05,0x00,0x62,0xd7,0x01,0x05,0x02,0x00] v_and_b16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_and_b16 v5, v255, v255 ; encoding: [0x05,0x00,0x62,0xd7,0xff,0xff,0x03,0x00] v_and_b16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_and_b16 v5, s1, s2 ; encoding: [0x05,0x00,0x62,0xd7,0x01,0x04,0x00,0x00] v_and_b16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_and_b16 v5, s105, s105 ; encoding: [0x05,0x00,0x62,0xd7,0x69,0xd2,0x00,0x00] v_and_b16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_and_b16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x62,0xd7,0x6a,0xf6,0x00,0x00] v_and_b16 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_and_b16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x62,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_and_b16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_and_b16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x62,0xd7,0x7b,0xfa,0x01,0x00] v_and_b16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_and_b16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x62,0xd7,0x7d,0xe0,0x01,0x00] v_and_b16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_and_b16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x62,0xd7,0x7e,0x82,0x01,0x00] v_and_b16 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_and_b16 v5, exec_hi, null ; encoding: [0x05,0x00,0x62,0xd7,0x7f,0xf8,0x00,0x00] v_and_b16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_and_b16 v5, null, exec_lo ; encoding: [0x05,0x00,0x62,0xd7,0x7c,0xfc,0x00,0x00] v_and_b16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_and_b16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x62,0xd7,0xc1,0xfe,0x00,0x00] v_and_b16 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_and_b16 v5, 0.5, m0 ; encoding: [0x05,0x00,0x62,0xd7,0xf0,0xfa,0x00,0x00] v_and_b16 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x62,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_and_b16 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x62,0xd7,0xfd,0xd4,0x00,0x00] v_and_b16 v255, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x62,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_and_b16 v255, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x62,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_and_or_b32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_and_or_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x57,0xd6,0x01,0x05,0x0e,0x00] v_and_or_b32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_and_or_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x57,0xd6,0xff,0x05,0xa4,0x01] v_and_or_b32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_and_or_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x57,0xd6,0x01,0xfe,0xff,0x01] v_and_or_b32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_and_or_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x57,0xd6,0x69,0xd2,0xf8,0x01] v_and_or_b32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_and_or_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x57,0xd6,0x6a,0xf6,0x0c,0x04] v_and_or_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_and_or_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x57,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_and_or_b32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_and_or_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x57,0xd6,0x7b,0xfa,0xed,0x01] v_and_or_b32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_and_or_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x57,0xd6,0x7d,0xe0,0xf5,0x01] v_and_or_b32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_and_or_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x57,0xd6,0x7e,0x82,0xad,0x01] v_and_or_b32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_and_or_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x57,0xd6,0x7f,0xf8,0xa8,0x01] v_and_or_b32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_and_or_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x57,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_and_or_b32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_and_or_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x57,0xd6,0xc1,0xfe,0xf4,0x03] v_and_or_b32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_and_or_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x57,0xd6,0xf0,0xfa,0xc0,0x03] v_and_or_b32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x57,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_and_or_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x57,0xd6,0xfd,0xd4,0x04,0x03] v_and_or_b32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x57,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_and_or_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x57,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_ashrrev_i16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_ashrrev_i16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x05,0x02,0x00] v_ashrrev_i16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x3a,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_ashrrev_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x3a,0xd7,0x01,0x05,0x02,0x00] v_ashrrev_i16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_ashrrev_i16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x3a,0xd7,0xff,0xff,0x03,0x00] v_ashrrev_i16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x3a,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_ashrrev_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x3a,0xd7,0xff,0xff,0x03,0x00] v_ashrrev_i16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_ashrrev_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x3a,0xd7,0x01,0x04,0x00,0x00] v_ashrrev_i16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_ashrrev_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x3a,0xd7,0x69,0xd2,0x00,0x00] v_ashrrev_i16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_ashrrev_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3a,0xd7,0x6a,0xf6,0x00,0x00] v_ashrrev_i16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_ashrrev_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_ashrrev_i16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_ashrrev_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x3a,0xd7,0x7b,0xfa,0x01,0x00] v_ashrrev_i16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_ashrrev_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x3a,0xd7,0x7d,0xe0,0x01,0x00] v_ashrrev_i16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_ashrrev_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x3a,0xd7,0x7e,0x82,0x01,0x00] v_ashrrev_i16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_ashrrev_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x3a,0xd7,0x7f,0xf8,0x00,0x00] v_ashrrev_i16 v5.l, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_ashrrev_i16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x3a,0xd7,0x7c,0xfc,0x00,0x00] v_ashrrev_i16 v5.l, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_ashrrev_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x3a,0xd7,0xc1,0xfe,0x00,0x00] v_ashrrev_i16 v5.l, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_ashrrev_i16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x3a,0xd7,0xf0,0xfa,0x00,0x00] v_ashrrev_i16 v5.l, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_ashrrev_i16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x3a,0xd7,0xfd,0xd4,0x00,0x00] v_ashrrev_i16 v255.l, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_ashrrev_i16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_ashrrev_i16 v255.h, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x40,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_ashrrev_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x3a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_ashrrev_i64 v[5:6], v1, vcc -// GFX12: encoding: [0x05,0x00,0x3e,0xd7,0x01,0xd5,0x00,0x00] +// GFX12: v_ashrrev_i64 v[5:6], v1, vcc ; encoding: [0x05,0x00,0x3e,0xd7,0x01,0xd5,0x00,0x00] v_ashrrev_i64 v[5:6], v255, exec -// GFX12: encoding: [0x05,0x00,0x3e,0xd7,0xff,0xfd,0x00,0x00] +// GFX12: v_ashrrev_i64 v[5:6], v255, exec ; encoding: [0x05,0x00,0x3e,0xd7,0xff,0xfd,0x00,0x00] v_ashrrev_i64 v[5:6], exec_lo, v[2:3] -// GFX12: encoding: [0x05,0x00,0x3e,0xd7,0x7e,0x04,0x02,0x00] +// GFX12: v_ashrrev_i64 v[5:6], exec_lo, v[2:3] ; encoding: [0x05,0x00,0x3e,0xd7,0x7e,0x04,0x02,0x00] v_ashrrev_i64 v[5:6], exec_hi, v[254:255] -// GFX12: encoding: [0x05,0x00,0x3e,0xd7,0x7f,0xfc,0x03,0x00] +// GFX12: v_ashrrev_i64 v[5:6], exec_hi, v[254:255] ; encoding: [0x05,0x00,0x3e,0xd7,0x7f,0xfc,0x03,0x00] v_ashrrev_i64 v[5:6], null, null -// GFX12: encoding: [0x05,0x00,0x3e,0xd7,0x7c,0xf8,0x00,0x00] +// GFX12: v_ashrrev_i64 v[5:6], null, null ; encoding: [0x05,0x00,0x3e,0xd7,0x7c,0xf8,0x00,0x00] v_ashrrev_i64 v[5:6], -1, -1 -// GFX12: encoding: [0x05,0x00,0x3e,0xd7,0xc1,0x82,0x01,0x00] +// GFX12: v_ashrrev_i64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x3e,0xd7,0xc1,0x82,0x01,0x00] v_ashrrev_i64 v[5:6], 0.5, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x3e,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_ashrrev_i64 v[5:6], 0.5, 0xaf123456 ; encoding: [0x05,0x00,0x3e,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_ashrrev_i64 v[5:6], src_scc, src_scc -// GFX12: encoding: [0x05,0x00,0x3e,0xd7,0xfd,0xfa,0x01,0x00] +// GFX12: v_ashrrev_i64 v[5:6], src_scc, src_scc ; encoding: [0x05,0x00,0x3e,0xd7,0xfd,0xfa,0x01,0x00] v_ashrrev_i64 v[254:255], 0xaf123456, 0.5 -// GFX12: encoding: [0xfe,0x00,0x3e,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_ashrrev_i64 v[254:255], 0xaf123456, 0.5 ; encoding: [0xfe,0x00,0x3e,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] v_bcnt_u32_b32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_bcnt_u32_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x1e,0xd7,0x01,0x05,0x02,0x00] v_bcnt_u32_b32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_bcnt_u32_b32 v5, v255, v255 ; encoding: [0x05,0x00,0x1e,0xd7,0xff,0xff,0x03,0x00] v_bcnt_u32_b32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_bcnt_u32_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x1e,0xd7,0x01,0x04,0x00,0x00] v_bcnt_u32_b32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_bcnt_u32_b32 v5, s105, s105 ; encoding: [0x05,0x00,0x1e,0xd7,0x69,0xd2,0x00,0x00] v_bcnt_u32_b32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_bcnt_u32_b32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1e,0xd7,0x6a,0xf6,0x00,0x00] v_bcnt_u32_b32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_bcnt_u32_b32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1e,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_bcnt_u32_b32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_bcnt_u32_b32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1e,0xd7,0x7b,0xfa,0x01,0x00] v_bcnt_u32_b32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_bcnt_u32_b32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1e,0xd7,0x7d,0xe0,0x01,0x00] v_bcnt_u32_b32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_bcnt_u32_b32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1e,0xd7,0x7e,0x82,0x01,0x00] v_bcnt_u32_b32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_bcnt_u32_b32 v5, exec_hi, null ; encoding: [0x05,0x00,0x1e,0xd7,0x7f,0xf8,0x00,0x00] v_bcnt_u32_b32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_bcnt_u32_b32 v5, null, exec_lo ; encoding: [0x05,0x00,0x1e,0xd7,0x7c,0xfc,0x00,0x00] v_bcnt_u32_b32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_bcnt_u32_b32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1e,0xd7,0xc1,0xfe,0x00,0x00] v_bcnt_u32_b32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_bcnt_u32_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1e,0xd7,0xf0,0xfa,0x00,0x00] v_bcnt_u32_b32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1e,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_bcnt_u32_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1e,0xd7,0xfd,0xd4,0x00,0x00] v_bcnt_u32_b32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x1e,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_bcnt_u32_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1e,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_bfe_i32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_bfe_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x11,0xd6,0x01,0x05,0x0e,0x00] v_bfe_i32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_bfe_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x11,0xd6,0xff,0x05,0xa4,0x01] v_bfe_i32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_bfe_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x11,0xd6,0x01,0xfe,0xff,0x01] v_bfe_i32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_bfe_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x11,0xd6,0x69,0xd2,0xf8,0x01] v_bfe_i32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_bfe_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x11,0xd6,0x6a,0xf6,0x0c,0x04] v_bfe_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_bfe_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x11,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_bfe_i32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_bfe_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x11,0xd6,0x7b,0xfa,0xed,0x01] v_bfe_i32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_bfe_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x11,0xd6,0x7d,0xe0,0xf5,0x01] v_bfe_i32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_bfe_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x11,0xd6,0x7e,0x82,0xad,0x01] v_bfe_i32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_bfe_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x11,0xd6,0x7f,0xf8,0xa8,0x01] v_bfe_i32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_bfe_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x11,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_bfe_i32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_bfe_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x11,0xd6,0xc1,0xfe,0xf4,0x03] v_bfe_i32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_bfe_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x11,0xd6,0xf0,0xfa,0xc0,0x03] v_bfe_i32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x11,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_bfe_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x11,0xd6,0xfd,0xd4,0x04,0x03] v_bfe_i32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x11,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_bfe_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x11,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_bfe_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_bfe_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x10,0xd6,0x01,0x05,0x0e,0x00] v_bfe_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_bfe_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x10,0xd6,0xff,0x05,0xa4,0x01] v_bfe_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_bfe_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x10,0xd6,0x01,0xfe,0xff,0x01] v_bfe_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_bfe_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x10,0xd6,0x69,0xd2,0xf8,0x01] v_bfe_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_bfe_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x10,0xd6,0x6a,0xf6,0x0c,0x04] v_bfe_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_bfe_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x10,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_bfe_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_bfe_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x10,0xd6,0x7b,0xfa,0xed,0x01] v_bfe_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_bfe_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x10,0xd6,0x7d,0xe0,0xf5,0x01] v_bfe_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_bfe_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x10,0xd6,0x7e,0x82,0xad,0x01] v_bfe_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_bfe_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x10,0xd6,0x7f,0xf8,0xa8,0x01] v_bfe_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_bfe_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x10,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_bfe_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_bfe_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x10,0xd6,0xc1,0xfe,0xf4,0x03] v_bfe_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_bfe_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x10,0xd6,0xf0,0xfa,0xc0,0x03] v_bfe_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x10,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_bfe_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x10,0xd6,0xfd,0xd4,0x04,0x03] v_bfe_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x10,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_bfe_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x10,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_bfi_b32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_bfi_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x12,0xd6,0x01,0x05,0x0e,0x00] v_bfi_b32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_bfi_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x12,0xd6,0xff,0x05,0xa4,0x01] v_bfi_b32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_bfi_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x12,0xd6,0x01,0xfe,0xff,0x01] v_bfi_b32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_bfi_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x12,0xd6,0x69,0xd2,0xf8,0x01] v_bfi_b32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_bfi_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x12,0xd6,0x6a,0xf6,0x0c,0x04] v_bfi_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_bfi_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x12,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_bfi_b32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_bfi_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x12,0xd6,0x7b,0xfa,0xed,0x01] v_bfi_b32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_bfi_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x12,0xd6,0x7d,0xe0,0xf5,0x01] v_bfi_b32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_bfi_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x12,0xd6,0x7e,0x82,0xad,0x01] v_bfi_b32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_bfi_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x12,0xd6,0x7f,0xf8,0xa8,0x01] v_bfi_b32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_bfi_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x12,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_bfi_b32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_bfi_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x12,0xd6,0xc1,0xfe,0xf4,0x03] v_bfi_b32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_bfi_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x12,0xd6,0xf0,0xfa,0xc0,0x03] v_bfi_b32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x12,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_bfi_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x12,0xd6,0xfd,0xd4,0x04,0x03] v_bfi_b32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x12,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_bfi_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x12,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_bfm_b32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_bfm_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x1d,0xd7,0x01,0x05,0x02,0x00] v_bfm_b32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_bfm_b32 v5, v255, v255 ; encoding: [0x05,0x00,0x1d,0xd7,0xff,0xff,0x03,0x00] v_bfm_b32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_bfm_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x1d,0xd7,0x01,0x04,0x00,0x00] v_bfm_b32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_bfm_b32 v5, s105, s105 ; encoding: [0x05,0x00,0x1d,0xd7,0x69,0xd2,0x00,0x00] v_bfm_b32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_bfm_b32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1d,0xd7,0x6a,0xf6,0x00,0x00] v_bfm_b32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_bfm_b32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1d,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_bfm_b32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_bfm_b32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1d,0xd7,0x7b,0xfa,0x01,0x00] v_bfm_b32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_bfm_b32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1d,0xd7,0x7d,0xe0,0x01,0x00] v_bfm_b32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_bfm_b32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1d,0xd7,0x7e,0x82,0x01,0x00] v_bfm_b32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_bfm_b32 v5, exec_hi, null ; encoding: [0x05,0x00,0x1d,0xd7,0x7f,0xf8,0x00,0x00] v_bfm_b32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_bfm_b32 v5, null, exec_lo ; encoding: [0x05,0x00,0x1d,0xd7,0x7c,0xfc,0x00,0x00] v_bfm_b32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_bfm_b32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1d,0xd7,0xc1,0xfe,0x00,0x00] v_bfm_b32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_bfm_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1d,0xd7,0xf0,0xfa,0x00,0x00] v_bfm_b32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1d,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_bfm_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1d,0xd7,0xfd,0xd4,0x00,0x00] v_bfm_b32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x1d,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_bfm_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1d,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cndmask_b16 v5, v1, src_scc, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x01,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, v1, src_scc, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x01,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_cndmask_b16 v5, v255, 0.5, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0xff,0xe1,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, v255, 0.5, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0xff,0xe1,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:30: error: invalid operand for instruction v_cndmask_b16 v5, s105, s105, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, s105, s105, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, vcc_hi, v2, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x6b,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, vcc_hi, v2, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x6b,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, ttmp15, ttmp15, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, m0, v255, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7d,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, m0, v255, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x7d,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, exec_lo, exec_lo, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, exec_hi, exec_hi, s3 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7f,0xfe,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, exec_hi, exec_hi, s3 ; encoding: [0x05,0x00,0x5d,0xd6,0x7f,0xfe,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, null, m0, s105 -// W32: encoding: [0x05,0x00,0x5d,0xd6,0x7c,0xfa,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, null, m0, s105 ; encoding: [0x05,0x00,0x5d,0xd6,0x7c,0xfa,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, -1, -|vcc_lo|, vcc_lo -// W32: encoding: [0x05,0x02,0x5d,0xd6,0xc1,0xd4,0xa8,0x41] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, -1, -|vcc_lo|, vcc_lo ; encoding: [0x05,0x02,0x5d,0xd6,0xc1,0xd4,0xa8,0x41] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, 0.5, -1, vcc_hi -// W32: encoding: [0x05,0x00,0x5d,0xd6,0xf0,0x82,0xad,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, 0.5, -1, vcc_hi ; encoding: [0x05,0x00,0x5d,0xd6,0xf0,0x82,0xad,0x01] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, -|src_scc|, null, ttmp15 -// W32: encoding: [0x05,0x01,0x5d,0xd6,0xfd,0xf8,0xec,0x21] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16 v5, -|src_scc|, null, ttmp15 ; encoding: [0x05,0x01,0x5d,0xd6,0xfd,0xf8,0xec,0x21] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cndmask_b16 v5, v1, src_scc, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x01,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, v1, src_scc, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x01,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_cndmask_b16 v5, v255, 0.5, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0xff,0xe1,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, v255, 0.5, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0xff,0xe1,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:30: error: invalid operand for instruction v_cndmask_b16 v5, s105, s105, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, s105, s105, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, vcc_hi, v2, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x6b,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, vcc_hi, v2, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x6b,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, m0, v255, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7d,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, m0, v255, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7d,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, exec_hi, exec_hi, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7f,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, exec_hi, exec_hi, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7f,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, null, m0, s[6:7] -// W64: encoding: [0x05,0x00,0x5d,0xd6,0x7c,0xfa,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, null, m0, s[6:7] ; encoding: [0x05,0x00,0x5d,0xd6,0x7c,0xfa,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, -1, -|vcc_lo|, s[104:105] -// W64: encoding: [0x05,0x02,0x5d,0xd6,0xc1,0xd4,0xa0,0x41] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, -1, -|vcc_lo|, s[104:105] ; encoding: [0x05,0x02,0x5d,0xd6,0xc1,0xd4,0xa0,0x41] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, 0.5, -1, vcc -// W64: encoding: [0x05,0x00,0x5d,0xd6,0xf0,0x82,0xa9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, 0.5, -1, vcc ; encoding: [0x05,0x00,0x5d,0xd6,0xf0,0x82,0xa9,0x01] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cndmask_b16 v5, -|src_scc|, null, ttmp[14:15] -// W64: encoding: [0x05,0x01,0x5d,0xd6,0xfd,0xf8,0xe8,0x21] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16 v5, -|src_scc|, null, ttmp[14:15] ; encoding: [0x05,0x01,0x5d,0xd6,0xfd,0xf8,0xe8,0x21] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cndmask_b16 v255, -|0xfe0b|, -|vcc_hi|, null -// GFX12: encoding: [0xff,0x03,0x5d,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX12: v_cndmask_b16 v255, -|0xfe0b|, -|vcc_hi|, null ; encoding: [0xff,0x03,0x5d,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_cubeid_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x0c,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_cubeid_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0c,0xd6,0x01,0x05,0x0e,0x00] v_cubeid_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x0c,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_cubeid_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0c,0xd6,0xff,0x05,0xa4,0x01] v_cubeid_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x0c,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_cubeid_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0c,0xd6,0x01,0xfe,0xff,0x01] v_cubeid_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x0c,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_cubeid_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0c,0xd6,0x69,0xd2,0xf8,0x01] v_cubeid_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x0c,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_cubeid_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0c,0xd6,0x6a,0xf6,0x0c,0x04] v_cubeid_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x0c,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_cubeid_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0c,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cubeid_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x0c,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_cubeid_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x0c,0xd6,0x7b,0xfa,0xed,0xe1] v_cubeid_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0c,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_cubeid_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0c,0xd6,0x7d,0xe0,0xf5,0x01] v_cubeid_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x0c,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_cubeid_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x0c,0xd6,0x7e,0x82,0xad,0x01] v_cubeid_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x0c,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_cubeid_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x0c,0xd6,0x7f,0xf8,0xa8,0xa1] v_cubeid_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x0c,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_cubeid_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x0c,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_cubeid_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x0c,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_cubeid_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x0c,0xd6,0xc1,0xfe,0xf4,0xc3] v_cubeid_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x0c,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_cubeid_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x0c,0xd6,0xf0,0xfa,0xc0,0x4b] v_cubeid_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x0c,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_cubeid_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x0c,0xd6,0xfd,0xd4,0x04,0x33] v_cubeid_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x0c,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_cubeid_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x0c,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_cubema_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x0f,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_cubema_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0f,0xd6,0x01,0x05,0x0e,0x00] v_cubema_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x0f,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_cubema_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0f,0xd6,0xff,0x05,0xa4,0x01] v_cubema_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x0f,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_cubema_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0f,0xd6,0x01,0xfe,0xff,0x01] v_cubema_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x0f,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_cubema_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0f,0xd6,0x69,0xd2,0xf8,0x01] v_cubema_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x0f,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_cubema_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0f,0xd6,0x6a,0xf6,0x0c,0x04] v_cubema_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x0f,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_cubema_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0f,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cubema_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x0f,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_cubema_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x0f,0xd6,0x7b,0xfa,0xed,0xe1] v_cubema_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0f,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_cubema_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0f,0xd6,0x7d,0xe0,0xf5,0x01] v_cubema_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x0f,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_cubema_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x0f,0xd6,0x7e,0x82,0xad,0x01] v_cubema_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x0f,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_cubema_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x0f,0xd6,0x7f,0xf8,0xa8,0xa1] v_cubema_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x0f,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_cubema_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x0f,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_cubema_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x0f,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_cubema_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x0f,0xd6,0xc1,0xfe,0xf4,0xc3] v_cubema_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x0f,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_cubema_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x0f,0xd6,0xf0,0xfa,0xc0,0x4b] v_cubema_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x0f,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_cubema_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x0f,0xd6,0xfd,0xd4,0x04,0x33] v_cubema_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x0f,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_cubema_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x0f,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_cubesc_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x0d,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_cubesc_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0d,0xd6,0x01,0x05,0x0e,0x00] v_cubesc_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x0d,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_cubesc_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0d,0xd6,0xff,0x05,0xa4,0x01] v_cubesc_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x0d,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_cubesc_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0d,0xd6,0x01,0xfe,0xff,0x01] v_cubesc_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x0d,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_cubesc_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0d,0xd6,0x69,0xd2,0xf8,0x01] v_cubesc_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x0d,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_cubesc_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0d,0xd6,0x6a,0xf6,0x0c,0x04] v_cubesc_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x0d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_cubesc_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cubesc_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x0d,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_cubesc_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x0d,0xd6,0x7b,0xfa,0xed,0xe1] v_cubesc_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0d,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_cubesc_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0d,0xd6,0x7d,0xe0,0xf5,0x01] v_cubesc_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x0d,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_cubesc_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x0d,0xd6,0x7e,0x82,0xad,0x01] v_cubesc_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x0d,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_cubesc_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x0d,0xd6,0x7f,0xf8,0xa8,0xa1] v_cubesc_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x0d,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_cubesc_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x0d,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_cubesc_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x0d,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_cubesc_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x0d,0xd6,0xc1,0xfe,0xf4,0xc3] v_cubesc_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x0d,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_cubesc_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x0d,0xd6,0xf0,0xfa,0xc0,0x4b] v_cubesc_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x0d,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_cubesc_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x0d,0xd6,0xfd,0xd4,0x04,0x33] v_cubesc_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x0d,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_cubesc_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x0d,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_cubetc_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x0e,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_cubetc_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0e,0xd6,0x01,0x05,0x0e,0x00] v_cubetc_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x0e,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_cubetc_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0e,0xd6,0xff,0x05,0xa4,0x01] v_cubetc_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x0e,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_cubetc_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0e,0xd6,0x01,0xfe,0xff,0x01] v_cubetc_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x0e,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_cubetc_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0e,0xd6,0x69,0xd2,0xf8,0x01] v_cubetc_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x0e,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_cubetc_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0e,0xd6,0x6a,0xf6,0x0c,0x04] v_cubetc_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x0e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_cubetc_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cubetc_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x0e,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_cubetc_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x0e,0xd6,0x7b,0xfa,0xed,0xe1] v_cubetc_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0e,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_cubetc_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0e,0xd6,0x7d,0xe0,0xf5,0x01] v_cubetc_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x0e,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_cubetc_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x0e,0xd6,0x7e,0x82,0xad,0x01] v_cubetc_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x0e,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_cubetc_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x0e,0xd6,0x7f,0xf8,0xa8,0xa1] v_cubetc_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x0e,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_cubetc_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x0e,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_cubetc_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x0e,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_cubetc_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x0e,0xd6,0xc1,0xfe,0xf4,0xc3] v_cubetc_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x0e,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_cubetc_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x0e,0xd6,0xf0,0xfa,0xc0,0x4b] v_cubetc_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x0e,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_cubetc_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x0e,0xd6,0xfd,0xd4,0x04,0x33] v_cubetc_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x0e,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_cubetc_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x0e,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_cvt_pk_fp8_f32 v1, v2, v3 -// GFX12: encoding: [0x01,0x00,0x69,0xd7,0x02,0x07,0x02,0x00] +// GFX12: v_cvt_pk_fp8_f32 v1, v2, v3 ; encoding: [0x01,0x00,0x69,0xd7,0x02,0x07,0x02,0x00] v_cvt_pk_fp8_f32 v1, -v2, |v3| -// GFX12: encoding: [0x01,0x02,0x69,0xd7,0x02,0x07,0x02,0x20] +// GFX12: v_cvt_pk_fp8_f32 v1, -v2, |v3| ; encoding: [0x01,0x02,0x69,0xd7,0x02,0x07,0x02,0x20] v_cvt_pk_fp8_f32 v1, s2, 3 -// GFX12: encoding: [0x01,0x00,0x69,0xd7,0x02,0x06,0x01,0x00] +// GFX12: v_cvt_pk_fp8_f32 v1, s2, 3 ; encoding: [0x01,0x00,0x69,0xd7,0x02,0x06,0x01,0x00] v_cvt_pk_bf8_f32 v1, v2, v3 -// GFX12: encoding: [0x01,0x00,0x6a,0xd7,0x02,0x07,0x02,0x00] +// GFX12: v_cvt_pk_bf8_f32 v1, v2, v3 ; encoding: [0x01,0x00,0x6a,0xd7,0x02,0x07,0x02,0x00] v_cvt_pk_bf8_f32 v1, -v2, |v3| -// GFX12: encoding: [0x01,0x02,0x6a,0xd7,0x02,0x07,0x02,0x20] +// GFX12: v_cvt_pk_bf8_f32 v1, -v2, |v3| ; encoding: [0x01,0x02,0x6a,0xd7,0x02,0x07,0x02,0x20] v_cvt_pk_bf8_f32 v1, s2, 3 -// GFX12: encoding: [0x01,0x00,0x6a,0xd7,0x02,0x06,0x01,0x00] +// GFX12: v_cvt_pk_bf8_f32 v1, s2, 3 ; encoding: [0x01,0x00,0x6a,0xd7,0x02,0x06,0x01,0x00] v_cvt_sr_fp8_f32 v1, v2, v3 -// GFX12: encoding: [0x01,0x00,0x6b,0xd7,0x02,0x07,0x02,0x00] +// GFX12: v_cvt_sr_fp8_f32 v1, v2, v3 ; encoding: [0x01,0x00,0x6b,0xd7,0x02,0x07,0x02,0x00] v_cvt_sr_fp8_f32 v10, s2, v5 -// GFX12: encoding: [0x0a,0x00,0x6b,0xd7,0x02,0x0a,0x02,0x00] +// GFX12: v_cvt_sr_fp8_f32 v10, s2, v5 ; encoding: [0x0a,0x00,0x6b,0xd7,0x02,0x0a,0x02,0x00] v_cvt_sr_fp8_f32 v5, -|v255|, v4 -// GFX12: encoding: [0x05,0x01,0x6b,0xd7,0xff,0x09,0x02,0x20] +// GFX12: v_cvt_sr_fp8_f32 v5, -|v255|, v4 ; encoding: [0x05,0x01,0x6b,0xd7,0xff,0x09,0x02,0x20] v_cvt_sr_fp8_f32 v1, v2, v3 byte_sel:0 // GFX12: v_cvt_sr_fp8_f32 v1, v2, v3 ; encoding: [0x01,0x00,0x6b,0xd7,0x02,0x07,0x02,0x00] @@ -1166,13 +1167,13 @@ v_cvt_sr_fp8_f32 v1, v2, v3 byte_sel:3 // GFX12: v_cvt_sr_fp8_f32 v1, v2, v3 byte_sel:3 ; encoding: [0x01,0x60,0x6b,0xd7,0x02,0x07,0x02,0x00] v_cvt_sr_bf8_f32 v1, v2, v3 -// GFX12: encoding: [0x01,0x00,0x6c,0xd7,0x02,0x07,0x02,0x00] +// GFX12: v_cvt_sr_bf8_f32 v1, v2, v3 ; encoding: [0x01,0x00,0x6c,0xd7,0x02,0x07,0x02,0x00] v_cvt_sr_bf8_f32 v10, s2, v5 -// GFX12: encoding: [0x0a,0x00,0x6c,0xd7,0x02,0x0a,0x02,0x00] +// GFX12: v_cvt_sr_bf8_f32 v10, s2, v5 ; encoding: [0x0a,0x00,0x6c,0xd7,0x02,0x0a,0x02,0x00] v_cvt_sr_bf8_f32 v5, -|v255|, v4 -// GFX12: encoding: [0x05,0x01,0x6c,0xd7,0xff,0x09,0x02,0x20] +// GFX12: v_cvt_sr_bf8_f32 v5, -|v255|, v4 ; encoding: [0x05,0x01,0x6c,0xd7,0xff,0x09,0x02,0x20] v_cvt_sr_bf8_f32 v1, v2, v3 byte_sel:0 // GFX12: v_cvt_sr_bf8_f32 v1, v2, v3 ; encoding: [0x01,0x00,0x6c,0xd7,0x02,0x07,0x02,0x00] @@ -1187,6216 +1188,6081 @@ v_cvt_sr_bf8_f32 v1, v2, v3 byte_sel:3 // GFX12: v_cvt_sr_bf8_f32 v1, v2, v3 byte_sel:3 ; encoding: [0x01,0x60,0x6c,0xd7,0x02,0x07,0x02,0x00] v_cvt_pk_i16_f32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x06,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_i16_f32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x06,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_i16_f32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x06,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_i16_f32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x06,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_i16_f32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x06,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_i16_f32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_i16_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x06,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_i16_f32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x06,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_i16_f32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x06,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_i16_f32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x06,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_i16_f32 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x06,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x06,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_i16_f32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x06,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_i16_f32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_i16_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x06,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_i16_f32 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x06,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_cvt_pk_i16_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x06,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_i16_f32 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x06,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_cvt_pk_i16_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x06,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_i16_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX12: encoding: [0xff,0x03,0x06,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_i16_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x06,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cvt_pk_i16_i32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, v1, v2 ; encoding: [0x05,0x00,0x24,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_i16_i32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, v255, v255 ; encoding: [0x05,0x00,0x24,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_i16_i32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, s1, s2 ; encoding: [0x05,0x00,0x24,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_i16_i32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, s105, s105 ; encoding: [0x05,0x00,0x24,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_i16_i32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x24,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_i16_i32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_i16_i32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x24,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_i16_i32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x24,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_i16_i32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x24,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_i16_i32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x24,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_i16_i32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, exec_hi, null ; encoding: [0x05,0x00,0x24,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_i16_i32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, null, exec_lo ; encoding: [0x05,0x00,0x24,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_i16_i32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x24,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_i16_i32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x24,0xd7,0xf0,0xfa,0x00,0x00] v_cvt_pk_i16_i32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x24,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_cvt_pk_i16_i32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x24,0xd7,0xfd,0xd4,0x00,0x00] v_cvt_pk_i16_i32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x24,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_i16_i32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x24,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_i16_f16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x12,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_norm_i16_f16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, v255, v255 ; encoding: [0x05,0x00,0x12,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_norm_i16_f16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, s1, s2 ; encoding: [0x05,0x00,0x12,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, s105, s105 ; encoding: [0x05,0x00,0x12,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x12,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x12,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x12,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_norm_i16_f16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x12,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_norm_i16_f16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x12,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_norm_i16_f16 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x12,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x12,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, null, exec_lo ; encoding: [0x05,0x00,0x12,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x12,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_norm_i16_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_cvt_pk_norm_i16_f16 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x12,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_norm_i16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX12: encoding: [0x05,0x0a,0x12,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_cvt_pk_norm_i16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] ; encoding: [0x05,0x0a,0x12,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_norm_i16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX12: encoding: [0xff,0x13,0x12,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] ; encoding: [0xff,0x13,0x12,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x13,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_norm_u16_f16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, v255, v255 ; encoding: [0x05,0x00,0x13,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_norm_u16_f16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, s1, s2 ; encoding: [0x05,0x00,0x13,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, s105, s105 ; encoding: [0x05,0x00,0x13,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x13,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x13,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x13,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_norm_u16_f16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x13,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_norm_u16_f16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x13,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_norm_u16_f16 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x13,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x13,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, null, exec_lo ; encoding: [0x05,0x00,0x13,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x13,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_norm_u16_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_cvt_pk_norm_u16_f16 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x13,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_norm_u16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX12: encoding: [0x05,0x0a,0x13,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_cvt_pk_norm_u16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] ; encoding: [0x05,0x0a,0x13,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_norm_u16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX12: encoding: [0xff,0x13,0x13,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] ; encoding: [0xff,0x13,0x13,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cvt_pk_u16_f32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x07,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_u16_f32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x07,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_u16_f32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x07,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_u16_f32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x07,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_u16_f32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x07,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_u16_f32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_u16_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x07,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_u16_f32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x07,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_u16_f32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x07,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_u16_f32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x07,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_u16_f32 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x07,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x07,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_u16_f32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x07,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_u16_f32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_u16_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x07,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_u16_f32 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x07,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_cvt_pk_u16_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x07,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_u16_f32 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x07,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_cvt_pk_u16_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x07,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_u16_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX12: encoding: [0xff,0x03,0x07,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_u16_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x07,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cvt_pk_u16_u32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, v1, v2 ; encoding: [0x05,0x00,0x23,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_u16_u32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, v255, v255 ; encoding: [0x05,0x00,0x23,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_u16_u32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, s1, s2 ; encoding: [0x05,0x00,0x23,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_u16_u32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, s105, s105 ; encoding: [0x05,0x00,0x23,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_u16_u32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x23,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_u16_u32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_u16_u32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x23,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_u16_u32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x23,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_u16_u32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x23,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_u16_u32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x23,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_u16_u32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, exec_hi, null ; encoding: [0x05,0x00,0x23,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_u16_u32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, null, exec_lo ; encoding: [0x05,0x00,0x23,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_u16_u32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x23,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_u16_u32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x23,0xd7,0xf0,0xfa,0x00,0x00] v_cvt_pk_u16_u32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x23,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_cvt_pk_u16_u32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x23,0xd7,0xfd,0xd4,0x00,0x00] v_cvt_pk_u16_u32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x23,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_u16_u32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x23,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_u8_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_cvt_pk_u8_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x26,0xd6,0x01,0x05,0x0e,0x00] v_cvt_pk_u8_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_cvt_pk_u8_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x26,0xd6,0xff,0x05,0xa4,0x01] v_cvt_pk_u8_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_cvt_pk_u8_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x26,0xd6,0x01,0xfe,0xff,0x01] v_cvt_pk_u8_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_cvt_pk_u8_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x26,0xd6,0x69,0xd2,0xf8,0x01] v_cvt_pk_u8_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_cvt_pk_u8_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x26,0xd6,0x6a,0xf6,0x0c,0x04] v_cvt_pk_u8_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_u8_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x26,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_cvt_pk_u8_f32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_cvt_pk_u8_f32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x26,0xd6,0x7b,0xfa,0xed,0x01] v_cvt_pk_u8_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_cvt_pk_u8_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x26,0xd6,0x7d,0xe0,0xf5,0x01] v_cvt_pk_u8_f32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_cvt_pk_u8_f32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x26,0xd6,0x7e,0x82,0xad,0x01] v_cvt_pk_u8_f32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_cvt_pk_u8_f32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x26,0xd6,0x7f,0xf8,0xa8,0x01] v_cvt_pk_u8_f32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_u8_f32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x26,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_cvt_pk_u8_f32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_cvt_pk_u8_f32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x26,0xd6,0xc1,0xfe,0xf4,0x03] v_cvt_pk_u8_f32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_cvt_pk_u8_f32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x26,0xd6,0xf0,0xfa,0xc0,0x03] v_cvt_pk_u8_f32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x26,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_cvt_pk_u8_f32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x26,0xd6,0xfd,0xd4,0x04,0x03] v_cvt_pk_u8_f32 v255, -|0xaf123456|, vcc_hi, null -// GFX12: encoding: [0xff,0x01,0x26,0xd6,0xff,0xd6,0xf0,0x21,0x56,0x34,0x12,0xaf] - -v_cvt_pk_norm_i16_f16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x01,0x05,0x02,0x00] - -v_cvt_pk_norm_i16_f16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0xff,0xff,0x03,0x00] - -v_cvt_pk_norm_i16_f16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x01,0x04,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x69,0xd2,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x6a,0xf6,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x7b,0xfa,0x01,0x00] - -v_cvt_pk_norm_i16_f16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x7d,0xe0,0x01,0x00] - -v_cvt_pk_norm_i16_f16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x7e,0x82,0x01,0x00] - -v_cvt_pk_norm_i16_f16 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x12,0xd7,0x7f,0xf8,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0x7c,0xfc,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0xc1,0xfe,0x00,0x00] - -v_cvt_pk_norm_i16_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX12: encoding: [0x05,0x00,0x12,0xd7,0xf0,0xfa,0x00,0x40] - -v_cvt_pk_norm_i16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX12: encoding: [0x05,0x0a,0x12,0xd7,0xfd,0xd4,0x00,0x20] - -v_cvt_pk_norm_i16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX12: encoding: [0xff,0x13,0x12,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_u8_f32 v255, -|0xaf123456|, vcc_hi, null ; encoding: [0xff,0x01,0x26,0xd6,0xff,0xd6,0xf0,0x21,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_i16_f32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x21,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_norm_i16_f32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x21,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_norm_i16_f32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x21,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x21,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x21,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_norm_i16_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x21,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_i16_f32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x21,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_norm_i16_f32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x21,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_norm_i16_f32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x21,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_norm_i16_f32 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x21,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x21,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x21,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x21,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_norm_i16_f32 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x21,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_cvt_pk_norm_i16_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x21,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_norm_i16_f32 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x21,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_cvt_pk_norm_i16_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x21,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_norm_i16_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX12: encoding: [0xff,0x03,0x21,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] - -v_cvt_pk_norm_u16_f16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x01,0x05,0x02,0x00] - -v_cvt_pk_norm_u16_f16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0xff,0xff,0x03,0x00] - -v_cvt_pk_norm_u16_f16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x01,0x04,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x69,0xd2,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x6a,0xf6,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x7b,0xfa,0x01,0x00] - -v_cvt_pk_norm_u16_f16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x7d,0xe0,0x01,0x00] - -v_cvt_pk_norm_u16_f16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x7e,0x82,0x01,0x00] - -v_cvt_pk_norm_u16_f16 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x13,0xd7,0x7f,0xf8,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0x7c,0xfc,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0xc1,0xfe,0x00,0x00] - -v_cvt_pk_norm_u16_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX12: encoding: [0x05,0x00,0x13,0xd7,0xf0,0xfa,0x00,0x40] - -v_cvt_pk_norm_u16_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX12: encoding: [0x05,0x0a,0x13,0xd7,0xfd,0xd4,0x00,0x20] - -v_cvt_pk_norm_u16_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX12: encoding: [0xff,0x13,0x13,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x21,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_u16_f32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x22,0xd7,0x01,0x05,0x02,0x00] v_cvt_pk_norm_u16_f32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x22,0xd7,0xff,0xff,0x03,0x00] v_cvt_pk_norm_u16_f32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x22,0xd7,0x01,0x04,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x22,0xd7,0x69,0xd2,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x22,0xd7,0x6a,0xf6,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_norm_u16_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x22,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_norm_u16_f32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x22,0xd7,0x7b,0xfa,0x01,0x00] v_cvt_pk_norm_u16_f32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x22,0xd7,0x7d,0xe0,0x01,0x00] v_cvt_pk_norm_u16_f32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x22,0xd7,0x7e,0x82,0x01,0x00] v_cvt_pk_norm_u16_f32 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x22,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x22,0xd7,0x7f,0xf8,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x22,0xd7,0x7c,0xfc,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x22,0xd7,0xc1,0xfe,0x00,0x00] v_cvt_pk_norm_u16_f32 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x22,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_cvt_pk_norm_u16_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x22,0xd7,0xf0,0xfa,0x00,0x40] v_cvt_pk_norm_u16_f32 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x22,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_cvt_pk_norm_u16_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x22,0xd7,0xfd,0xd4,0x00,0x20] v_cvt_pk_norm_u16_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX12: encoding: [0xff,0x03,0x22,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_norm_u16_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x22,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_div_fixup_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x54,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_div_fixup_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x54,0xd6,0x01,0x05,0x0e,0x00] v_div_fixup_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x54,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_div_fixup_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x54,0xd6,0xff,0x05,0xa4,0x01] v_div_fixup_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x54,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_div_fixup_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x54,0xd6,0x01,0xfe,0xff,0x01] v_div_fixup_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x54,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_div_fixup_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x54,0xd6,0x69,0xd2,0xf8,0x01] v_div_fixup_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x54,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_div_fixup_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x54,0xd6,0x6a,0xf6,0x0c,0x04] v_div_fixup_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x54,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_div_fixup_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x54,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_div_fixup_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x54,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_div_fixup_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x54,0xd6,0x7b,0xfa,0xed,0xe1] v_div_fixup_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x54,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_div_fixup_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x54,0xd6,0x7d,0xe0,0xf5,0x01] v_div_fixup_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x54,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_div_fixup_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x54,0xd6,0x7e,0x82,0xad,0x01] v_div_fixup_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x7d,0x54,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_div_fixup_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x54,0xd6,0x7f,0xf8,0xa8,0xa1] v_div_fixup_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x04,0x54,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX12: v_div_fixup_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x54,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_div_fixup_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x0e,0x54,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_div_fixup_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x54,0xd6,0xc1,0xfe,0xf4,0xc3] v_div_fixup_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x54,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_div_fixup_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x54,0xd6,0xf0,0xfa,0xc0,0x43] v_div_fixup_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x22,0x54,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_div_fixup_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x54,0xd6,0xfd,0xd4,0x04,0x23] v_div_fixup_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX12: encoding: [0xff,0xc3,0x54,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX12: v_div_fixup_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x54,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_div_fixup_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x27,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_div_fixup_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x27,0xd6,0x01,0x05,0x0e,0x00] v_div_fixup_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x27,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_div_fixup_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x27,0xd6,0xff,0x05,0xa4,0x01] v_div_fixup_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x27,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_div_fixup_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x27,0xd6,0x01,0xfe,0xff,0x01] v_div_fixup_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x27,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_div_fixup_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x27,0xd6,0x69,0xd2,0xf8,0x01] v_div_fixup_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x27,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_div_fixup_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x27,0xd6,0x6a,0xf6,0x0c,0x04] v_div_fixup_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x27,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fixup_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x27,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_div_fixup_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x27,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_div_fixup_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x27,0xd6,0x7b,0xfa,0xed,0xe1] v_div_fixup_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x27,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_div_fixup_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x27,0xd6,0x7d,0xe0,0xf5,0x01] v_div_fixup_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x27,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_div_fixup_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x27,0xd6,0x7e,0x82,0xad,0x01] v_div_fixup_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x27,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_div_fixup_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x27,0xd6,0x7f,0xf8,0xa8,0xa1] v_div_fixup_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x27,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fixup_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x27,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_div_fixup_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x27,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_div_fixup_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x27,0xd6,0xc1,0xfe,0xf4,0xc3] v_div_fixup_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x27,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_div_fixup_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x27,0xd6,0xf0,0xfa,0xc0,0x4b] v_div_fixup_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x27,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_div_fixup_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x27,0xd6,0xfd,0xd4,0x04,0x33] v_div_fixup_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x27,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fixup_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x27,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_div_fixup_f64 v[5:6], v[1:2], v[2:3], v[3:4] -// GFX12: encoding: [0x05,0x00,0x28,0xd6,0x01,0x05,0x0e,0x04] +// GFX12: v_div_fixup_f64 v[5:6], v[1:2], v[2:3], v[3:4] ; encoding: [0x05,0x00,0x28,0xd6,0x01,0x05,0x0e,0x04] v_div_fixup_f64 v[5:6], v[254:255], v[254:255], s[6:7] -// GFX12: encoding: [0x05,0x00,0x28,0xd6,0xfe,0xfd,0x1b,0x00] +// GFX12: v_div_fixup_f64 v[5:6], v[254:255], v[254:255], s[6:7] ; encoding: [0x05,0x00,0x28,0xd6,0xfe,0xfd,0x1b,0x00] v_div_fixup_f64 v[5:6], s[2:3], s[4:5], v[254:255] -// GFX12: encoding: [0x05,0x00,0x28,0xd6,0x02,0x08,0xf8,0x07] +// GFX12: v_div_fixup_f64 v[5:6], s[2:3], s[4:5], v[254:255] ; encoding: [0x05,0x00,0x28,0xd6,0x02,0x08,0xf8,0x07] v_div_fixup_f64 v[5:6], -|s[104:105]|, s[104:105], -|s[104:105]| -// GFX12: encoding: [0x05,0x05,0x28,0xd6,0x68,0xd0,0xa0,0xa1] +// GFX12: v_div_fixup_f64 v[5:6], -|s[104:105]|, s[104:105], -|s[104:105]| ; encoding: [0x05,0x05,0x28,0xd6,0x68,0xd0,0xa0,0xa1] v_div_fixup_f64 v[5:6], vcc, -|ttmp[14:15]|, -|ttmp[14:15]| -// GFX12: encoding: [0x05,0x06,0x28,0xd6,0x6a,0xf4,0xe8,0xc1] +// GFX12: v_div_fixup_f64 v[5:6], vcc, -|ttmp[14:15]|, -|ttmp[14:15]| ; encoding: [0x05,0x06,0x28,0xd6,0x6a,0xf4,0xe8,0xc1] v_div_fixup_f64 v[5:6], -|ttmp[14:15]|, 0xaf123456, null -// GFX12: encoding: [0x05,0x01,0x28,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fixup_f64 v[5:6], -|ttmp[14:15]|, 0xaf123456, null ; encoding: [0x05,0x01,0x28,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] v_div_fixup_f64 v[5:6], -|exec|, -|src_scc|, -|exec| -// GFX12: encoding: [0x05,0x07,0x28,0xd6,0x7e,0xfa,0xf9,0xe1] +// GFX12: v_div_fixup_f64 v[5:6], -|exec|, -|src_scc|, -|exec| ; encoding: [0x05,0x07,0x28,0xd6,0x7e,0xfa,0xf9,0xe1] v_div_fixup_f64 v[5:6], null, 0.5, vcc -// GFX12: encoding: [0x05,0x00,0x28,0xd6,0x7c,0xe0,0xa9,0x01] +// GFX12: v_div_fixup_f64 v[5:6], null, 0.5, vcc ; encoding: [0x05,0x00,0x28,0xd6,0x7c,0xe0,0xa9,0x01] v_div_fixup_f64 v[5:6], -1, -1, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x28,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fixup_f64 v[5:6], -1, -1, 0xaf123456 ; encoding: [0x05,0x00,0x28,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] v_div_fixup_f64 v[5:6], 0.5, null, -|src_scc| mul:2 -// GFX12: encoding: [0x05,0x04,0x28,0xd6,0xf0,0xf8,0xf4,0x8b] +// GFX12: v_div_fixup_f64 v[5:6], 0.5, null, -|src_scc| mul:2 ; encoding: [0x05,0x04,0x28,0xd6,0xf0,0xf8,0xf4,0x8b] v_div_fixup_f64 v[5:6], -|src_scc|, -|exec|, 0.5 mul:4 -// GFX12: encoding: [0x05,0x03,0x28,0xd6,0xfd,0xfc,0xc0,0x73] +// GFX12: v_div_fixup_f64 v[5:6], -|src_scc|, -|exec|, 0.5 mul:4 ; encoding: [0x05,0x03,0x28,0xd6,0xfd,0xfc,0xc0,0x73] v_div_fixup_f64 v[254:255], 0xaf123456, -|vcc|, -1 clamp div:2 -// GFX12: encoding: [0xfe,0x82,0x28,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fixup_f64 v[254:255], 0xaf123456, -|vcc|, -1 clamp div:2 ; encoding: [0xfe,0x82,0x28,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] v_div_fmas_f32 v5, vcc_lo, v2, vcc_lo -// W32: encoding: [0x05,0x00,0x37,0xd6,0x6a,0x04,0xaa,0x01] +// GFX12: v_div_fmas_f32 v5, vcc_lo, v2, vcc_lo ; encoding: [0x05,0x00,0x37,0xd6,0x6a,0x04,0xaa,0x01] v_div_fmas_f32 v5, ttmp15, ttmp15, ttmp15 -// W32: encoding: [0x05,0x00,0x37,0xd6,0x7b,0xf6,0xec,0x01] +// GFX12: v_div_fmas_f32 v5, ttmp15, ttmp15, ttmp15 ; encoding: [0x05,0x00,0x37,0xd6,0x7b,0xf6,0xec,0x01] v_div_fmas_f32 v5, -|m0|, -|v255|, v3 -// W32: encoding: [0x05,0x03,0x37,0xd6,0x7d,0xfe,0x0f,0x64] +// GFX12: v_div_fmas_f32 v5, -|m0|, -|v255|, v3 ; encoding: [0x05,0x03,0x37,0xd6,0x7d,0xfe,0x0f,0x64] v_div_fmas_f32 v5, -|exec_lo|, -|exec_lo|, -|exec_lo| -// W32: encoding: [0x05,0x07,0x37,0xd6,0x7e,0xfc,0xf8,0xe1] +// GFX12: v_div_fmas_f32 v5, -|exec_lo|, -|exec_lo|, -|exec_lo| ; encoding: [0x05,0x07,0x37,0xd6,0x7e,0xfc,0xf8,0xe1] v_div_fmas_f32 v5, -|exec_hi|, 0.5, -|v255| -// W32: encoding: [0x05,0x05,0x37,0xd6,0x7f,0xe0,0xfd,0xa7] +// GFX12: v_div_fmas_f32 v5, -|exec_hi|, 0.5, -|v255| ; encoding: [0x05,0x05,0x37,0xd6,0x7f,0xe0,0xfd,0xa7] v_div_fmas_f32 v5, null, exec_hi, -|exec_hi| -// W32: encoding: [0x05,0x04,0x37,0xd6,0x7c,0xfe,0xfc,0x81] +// GFX12: v_div_fmas_f32 v5, null, exec_hi, -|exec_hi| ; encoding: [0x05,0x04,0x37,0xd6,0x7c,0xfe,0xfc,0x81] v_div_fmas_f32 v5, -1, -|m0|, -|m0| -// W32: encoding: [0x05,0x06,0x37,0xd6,0xc1,0xfa,0xf4,0xc1] +// GFX12: v_div_fmas_f32 v5, -1, -|m0|, -|m0| ; encoding: [0x05,0x06,0x37,0xd6,0xc1,0xfa,0xf4,0xc1] v_div_fmas_f32 v5, 0.5, -|vcc_lo|, 0.5 mul:2 -// W32: encoding: [0x05,0x02,0x37,0xd6,0xf0,0xd4,0xc0,0x4b] +// GFX12: v_div_fmas_f32 v5, 0.5, -|vcc_lo|, 0.5 mul:2 ; encoding: [0x05,0x02,0x37,0xd6,0xf0,0xd4,0xc0,0x4b] v_div_fmas_f32 v5, vcc_lo, v2, v3 -// W64: encoding: [0x05,0x00,0x37,0xd6,0x6a,0x04,0x0e,0x04] +// GFX12: v_div_fmas_f32 v5, vcc_lo, v2, v3 ; encoding: [0x05,0x00,0x37,0xd6,0x6a,0x04,0x0e,0x04] v_div_fmas_f32 v5, vcc_hi, v255, vcc_hi -// W64: encoding: [0x05,0x00,0x37,0xd6,0x6b,0xfe,0xaf,0x01] +// GFX12: v_div_fmas_f32 v5, vcc_hi, v255, vcc_hi ; encoding: [0x05,0x00,0x37,0xd6,0x6b,0xfe,0xaf,0x01] v_div_fmas_f32 v5, -|ttmp15|, -|ttmp15|, ttmp15 -// W64: encoding: [0x05,0x03,0x37,0xd6,0x7b,0xf6,0xec,0x61] +// GFX12: v_div_fmas_f32 v5, -|ttmp15|, -|ttmp15|, ttmp15 ; encoding: [0x05,0x03,0x37,0xd6,0x7b,0xf6,0xec,0x61] v_div_fmas_f32 v5, m0, 0.5, v255 -// W64: encoding: [0x05,0x00,0x37,0xd6,0x7d,0xe0,0xfd,0x07] +// GFX12: v_div_fmas_f32 v5, m0, 0.5, v255 ; encoding: [0x05,0x00,0x37,0xd6,0x7d,0xe0,0xfd,0x07] v_div_fmas_f32 v5, -|exec_lo|, exec_lo, -|exec_lo| -// W64: encoding: [0x05,0x05,0x37,0xd6,0x7e,0xfc,0xf8,0xa1] +// GFX12: v_div_fmas_f32 v5, -|exec_lo|, exec_lo, -|exec_lo| ; encoding: [0x05,0x05,0x37,0xd6,0x7e,0xfc,0xf8,0xa1] v_div_fmas_f32 v5, -|exec_hi|, -|exec_hi|, -|exec_hi| -// W64: encoding: [0x05,0x07,0x37,0xd6,0x7f,0xfe,0xfc,0xe1] +// GFX12: v_div_fmas_f32 v5, -|exec_hi|, -|exec_hi|, -|exec_hi| ; encoding: [0x05,0x07,0x37,0xd6,0x7f,0xfe,0xfc,0xe1] v_div_fmas_f32 v5, null, m0, -|m0| -// W64: encoding: [0x05,0x04,0x37,0xd6,0x7c,0xfa,0xf4,0x81] +// GFX12: v_div_fmas_f32 v5, null, m0, -|m0| ; encoding: [0x05,0x04,0x37,0xd6,0x7c,0xfa,0xf4,0x81] v_div_fmas_f32 v5, -1, -|vcc_lo|, -|vcc_lo| -// W64: encoding: [0x05,0x06,0x37,0xd6,0xc1,0xd4,0xa8,0xc1] +// GFX12: v_div_fmas_f32 v5, -1, -|vcc_lo|, -|vcc_lo| ; encoding: [0x05,0x06,0x37,0xd6,0xc1,0xd4,0xa8,0xc1] v_div_fmas_f32 v5, 0.5, -|vcc_hi|, 0.5 mul:2 -// W64: encoding: [0x05,0x02,0x37,0xd6,0xf0,0xd6,0xc0,0x4b] +// GFX12: v_div_fmas_f32 v5, 0.5, -|vcc_hi|, 0.5 mul:2 ; encoding: [0x05,0x02,0x37,0xd6,0xf0,0xd6,0xc0,0x4b] v_div_fmas_f32 v5, v1, 0xaf123456, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x37,0xd6,0x01,0xff,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fmas_f32 v5, v1, 0xaf123456, 0xaf123456 ; encoding: [0x05,0x00,0x37,0xd6,0x01,0xff,0xfd,0x03,0x56,0x34,0x12,0xaf] v_div_fmas_f32 v5, v255, src_scc, src_scc -// GFX12: encoding: [0x05,0x00,0x37,0xd6,0xff,0xfb,0xf5,0x03] +// GFX12: v_div_fmas_f32 v5, v255, src_scc, src_scc ; encoding: [0x05,0x00,0x37,0xd6,0xff,0xfb,0xf5,0x03] v_div_fmas_f32 v5, s105, s105, s105 -// GFX12: encoding: [0x05,0x00,0x37,0xd6,0x69,0xd2,0xa4,0x01] +// GFX12: v_div_fmas_f32 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x37,0xd6,0x69,0xd2,0xa4,0x01] v_div_fmas_f32 v5, src_scc, -1, -1 mul:4 -// GFX12: encoding: [0x05,0x00,0x37,0xd6,0xfd,0x82,0x05,0x13] +// GFX12: v_div_fmas_f32 v5, src_scc, -1, -1 mul:4 ; encoding: [0x05,0x00,0x37,0xd6,0xfd,0x82,0x05,0x13] v_div_fmas_f32 v255, -|0xaf123456|, null, null clamp div:2 -// GFX12: encoding: [0xff,0x81,0x37,0xd6,0xff,0xf8,0xf0,0x39,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fmas_f32 v255, -|0xaf123456|, null, null clamp div:2 ; encoding: [0xff,0x81,0x37,0xd6,0xff,0xf8,0xf0,0x39,0x56,0x34,0x12,0xaf] v_div_fmas_f64 v[5:6], v[1:2], 0xaf123456, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x38,0xd6,0x01,0xff,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fmas_f64 v[5:6], v[1:2], 0xaf123456, 0xaf123456 ; encoding: [0x05,0x00,0x38,0xd6,0x01,0xff,0xfd,0x03,0x56,0x34,0x12,0xaf] v_div_fmas_f64 v[5:6], v[254:255], src_scc, v[3:4] -// GFX12: encoding: [0x05,0x00,0x38,0xd6,0xfe,0xfb,0x0d,0x04] +// GFX12: v_div_fmas_f64 v[5:6], v[254:255], src_scc, v[3:4] ; encoding: [0x05,0x00,0x38,0xd6,0xfe,0xfb,0x0d,0x04] v_div_fmas_f64 v[5:6], s[104:105], |s[104:105]|, s[104:105] -// GFX12: encoding: [0x05,0x02,0x38,0xd6,0x68,0xd0,0xa0,0x01] +// GFX12: v_div_fmas_f64 v[5:6], s[104:105], |s[104:105]|, s[104:105] ; encoding: [0x05,0x02,0x38,0xd6,0x68,0xd0,0xa0,0x01] v_div_fmas_f64 v[5:6], -|vcc|, v[2:3], -|v[254:255]| -// GFX12: encoding: [0x05,0x05,0x38,0xd6,0x6a,0x04,0xfa,0xa7] +// GFX12: v_div_fmas_f64 v[5:6], -|vcc|, v[2:3], -|v[254:255]| ; encoding: [0x05,0x05,0x38,0xd6,0x6a,0x04,0xfa,0xa7] v_div_fmas_f64 v[5:6], -|ttmp[14:15]|, -|ttmp[14:15]|, -|ttmp[14:15]| -// GFX12: encoding: [0x05,0x07,0x38,0xd6,0x7a,0xf4,0xe8,0xe1] +// GFX12: v_div_fmas_f64 v[5:6], -|ttmp[14:15]|, -|ttmp[14:15]|, -|ttmp[14:15]| ; encoding: [0x05,0x07,0x38,0xd6,0x7a,0xf4,0xe8,0xe1] v_div_fmas_f64 v[5:6], -|exec|, -|v[254:255]|, null -// GFX12: encoding: [0x05,0x03,0x38,0xd6,0x7e,0xfc,0xf3,0x61] +// GFX12: v_div_fmas_f64 v[5:6], -|exec|, -|v[254:255]|, null ; encoding: [0x05,0x03,0x38,0xd6,0x7e,0xfc,0xf3,0x61] v_div_fmas_f64 v[5:6], null, 0.5, -src_scc -// GFX12: encoding: [0x05,0x00,0x38,0xd6,0x7c,0xe0,0xf5,0x83] +// GFX12: v_div_fmas_f64 v[5:6], null, 0.5, -src_scc ; encoding: [0x05,0x00,0x38,0xd6,0x7c,0xe0,0xf5,0x83] v_div_fmas_f64 v[5:6], -1, -exec, |exec| -// GFX12: encoding: [0x05,0x04,0x38,0xd6,0xc1,0xfc,0xf8,0x41] +// GFX12: v_div_fmas_f64 v[5:6], -1, -exec, |exec| ; encoding: [0x05,0x04,0x38,0xd6,0xc1,0xfc,0xf8,0x41] v_div_fmas_f64 v[5:6], 0.5, -|vcc|, -|vcc| mul:2 -// GFX12: encoding: [0x05,0x06,0x38,0xd6,0xf0,0xd4,0xa8,0xc9] +// GFX12: v_div_fmas_f64 v[5:6], 0.5, -|vcc|, -|vcc| mul:2 ; encoding: [0x05,0x06,0x38,0xd6,0xf0,0xd4,0xa8,0xc9] v_div_fmas_f64 v[5:6], -|src_scc|, -1, 0.5 mul:4 -// GFX12: encoding: [0x05,0x01,0x38,0xd6,0xfd,0x82,0xc1,0x33] +// GFX12: v_div_fmas_f64 v[5:6], -|src_scc|, -1, 0.5 mul:4 ; encoding: [0x05,0x01,0x38,0xd6,0xfd,0x82,0xc1,0x33] v_div_fmas_f64 v[254:255], 0xaf123456, null, -1 clamp div:2 -// GFX12: encoding: [0xfe,0x80,0x38,0xd6,0xff,0xf8,0x04,0x1b,0x56,0x34,0x12,0xaf] +// GFX12: v_div_fmas_f64 v[254:255], 0xaf123456, null, -1 clamp div:2 ; encoding: [0xfe,0x80,0x38,0xd6,0xff,0xf8,0x04,0x1b,0x56,0x34,0x12,0xaf] v_div_scale_f32 v5, vcc_lo, v1, v2, s3 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x01,0x05,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, v1, v2, s3 ; encoding: [0x05,0x6a,0xfc,0xd6,0x01,0x05,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, v255, s2, s105 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0xff,0x05,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, v255, s2, s105 ; encoding: [0x05,0x6a,0xfc,0xd6,0xff,0x05,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, s1, v255, exec_hi -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x01,0xfe,0xff,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, s1, v255, exec_hi ; encoding: [0x05,0x6a,0xfc,0xd6,0x01,0xfe,0xff,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, s105, s105, exec_lo -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x69,0xd2,0xf8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, s105, s105, exec_lo ; encoding: [0x05,0x6a,0xfc,0xd6,0x69,0xd2,0xf8,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, vcc_lo, ttmp15, v3 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x6a,0xf6,0x0c,0x04] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x6a,0xfc,0xd6,0x6a,0xf6,0x0c,0x04] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, vcc_hi, 0xaf123456, v255 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x6a,0xfc,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, -ttmp15, -src_scc, -ttmp15 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7b,0xfa,0xed,0xe1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, -ttmp15, -src_scc, -ttmp15 ; encoding: [0x05,0x6a,0xfc,0xd6,0x7b,0xfa,0xed,0xe1] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, m0, 0.5, m0 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7d,0xe0,0xf5,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, m0, 0.5, m0 ; encoding: [0x05,0x6a,0xfc,0xd6,0x7d,0xe0,0xf5,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, exec_lo, -1, vcc_hi -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7e,0x82,0xad,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, exec_lo, -1, vcc_hi ; encoding: [0x05,0x6a,0xfc,0xd6,0x7e,0x82,0xad,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, -exec_hi, null, -vcc_lo -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7f,0xf8,0xa8,0xa1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, -exec_hi, null, -vcc_lo ; encoding: [0x05,0x6a,0xfc,0xd6,0x7f,0xf8,0xa8,0xa1] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, null, exec_lo, neg(0xaf123456) -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, null, exec_lo, neg(0xaf123456) ; encoding: [0x05,0x6a,0xfc,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, -1, -exec_hi, -src_scc -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0xc1,0xfe,0xf4,0xc3] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, -1, -exec_hi, -src_scc ; encoding: [0x05,0x6a,0xfc,0xd6,0xc1,0xfe,0xf4,0xc3] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, 0.5, -m0, 0.5 mul:2 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0xf0,0xfa,0xc0,0x4b] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x6a,0xfc,0xd6,0xf0,0xfa,0xc0,0x4b] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc_lo, -src_scc, vcc_lo, -1 mul:4 -// W32: encoding: [0x05,0x6a,0xfc,0xd6,0xfd,0xd4,0x04,0x33] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v5, vcc_lo, -src_scc, vcc_lo, -1 mul:4 ; encoding: [0x05,0x6a,0xfc,0xd6,0xfd,0xd4,0x04,0x33] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v255, vcc_lo, neg(0xaf123456), -vcc_hi, null clamp div:2 -// W32: encoding: [0xff,0xea,0xfc,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f32 v255, vcc_lo, neg(0xaf123456), -vcc_hi, null clamp div:2 ; encoding: [0xff,0xea,0xfc,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_div_scale_f32 v5, vcc, v1, v2, s3 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x01,0x05,0x0e,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, v1, v2, s3 ; encoding: [0x05,0x6a,0xfc,0xd6,0x01,0x05,0x0e,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, v255, s2, s105 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0xff,0x05,0xa4,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, v255, s2, s105 ; encoding: [0x05,0x6a,0xfc,0xd6,0xff,0x05,0xa4,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, s1, v255, exec_hi -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x01,0xfe,0xff,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, s1, v255, exec_hi ; encoding: [0x05,0x6a,0xfc,0xd6,0x01,0xfe,0xff,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, s105, s105, exec_lo -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x69,0xd2,0xf8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, s105, s105, exec_lo ; encoding: [0x05,0x6a,0xfc,0xd6,0x69,0xd2,0xf8,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, vcc_lo, ttmp15, v3 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x6a,0xf6,0x0c,0x04] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x6a,0xfc,0xd6,0x6a,0xf6,0x0c,0x04] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, vcc_hi, 0xaf123456, v255 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x6a,0xfc,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, -ttmp15, -src_scc, -ttmp15 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7b,0xfa,0xed,0xe1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, -ttmp15, -src_scc, -ttmp15 ; encoding: [0x05,0x6a,0xfc,0xd6,0x7b,0xfa,0xed,0xe1] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, m0, 0.5, m0 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7d,0xe0,0xf5,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, m0, 0.5, m0 ; encoding: [0x05,0x6a,0xfc,0xd6,0x7d,0xe0,0xf5,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, exec_lo, -1, vcc_hi -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7e,0x82,0xad,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, exec_lo, -1, vcc_hi ; encoding: [0x05,0x6a,0xfc,0xd6,0x7e,0x82,0xad,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, -exec_hi, null, -vcc_lo -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7f,0xf8,0xa8,0xa1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, -exec_hi, null, -vcc_lo ; encoding: [0x05,0x6a,0xfc,0xd6,0x7f,0xf8,0xa8,0xa1] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, null, exec_lo, neg(0xaf123456) -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, null, exec_lo, neg(0xaf123456) ; encoding: [0x05,0x6a,0xfc,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, -1, -exec_hi, -src_scc -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0xc1,0xfe,0xf4,0xc3] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, -1, -exec_hi, -src_scc ; encoding: [0x05,0x6a,0xfc,0xd6,0xc1,0xfe,0xf4,0xc3] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, 0.5, -m0, 0.5 mul:2 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0xf0,0xfa,0xc0,0x4b] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x6a,0xfc,0xd6,0xf0,0xfa,0xc0,0x4b] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v5, vcc, -src_scc, vcc_lo, -1 mul:4 -// W64: encoding: [0x05,0x6a,0xfc,0xd6,0xfd,0xd4,0x04,0x33] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v5, vcc, -src_scc, vcc_lo, -1 mul:4 ; encoding: [0x05,0x6a,0xfc,0xd6,0xfd,0xd4,0x04,0x33] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_div_scale_f32 v255, vcc, neg(0xaf123456), -vcc_hi, null clamp div:2 -// W64: encoding: [0xff,0xea,0xfc,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f32 v255, vcc, neg(0xaf123456), -vcc_hi, null clamp div:2 ; encoding: [0xff,0xea,0xfc,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, v[1:2], v[2:3], v[3:4] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x01,0x05,0x0e,0x04] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, v[1:2], v[2:3], v[3:4] ; encoding: [0x05,0x6a,0xfd,0xd6,0x01,0x05,0x0e,0x04] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, v[254:255], v[254:255], s[6:7] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0xfe,0xfd,0x1b,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, v[254:255], v[254:255], s[6:7] ; encoding: [0x05,0x6a,0xfd,0xd6,0xfe,0xfd,0x1b,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, s[2:3], s[4:5], v[254:255] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x02,0x08,0xf8,0x07] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, s[2:3], s[4:5], v[254:255] ; encoding: [0x05,0x6a,0xfd,0xd6,0x02,0x08,0xf8,0x07] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -s[104:105], s[104:105], -s[104:105] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x68,0xd0,0xa0,0xa1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -s[104:105], s[104:105], -s[104:105] ; encoding: [0x05,0x6a,0xfd,0xd6,0x68,0xd0,0xa0,0xa1] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, vcc, -ttmp[14:15], -ttmp[14:15] -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x6a,0xf4,0xe8,0xc1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, vcc, -ttmp[14:15], -ttmp[14:15] ; encoding: [0x05,0x6a,0xfd,0xd6,0x6a,0xf4,0xe8,0xc1] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -ttmp[14:15], 0xaf123456, null -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -ttmp[14:15], 0xaf123456, null ; encoding: [0x05,0x6a,0xfd,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -exec, -src_scc, -exec -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x7e,0xfa,0xf9,0xe1] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -exec, -src_scc, -exec ; encoding: [0x05,0x6a,0xfd,0xd6,0x7e,0xfa,0xf9,0xe1] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, null, 0.5, vcc -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0x7c,0xe0,0xa9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, null, 0.5, vcc ; encoding: [0x05,0x6a,0xfd,0xd6,0x7c,0xe0,0xa9,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -1, -1, 0xaf123456 -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -1, -1, 0xaf123456 ; encoding: [0x05,0x6a,0xfd,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, 0.5, null, -src_scc mul:2 -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0xf0,0xf8,0xf4,0x8b] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, 0.5, null, -src_scc mul:2 ; encoding: [0x05,0x6a,0xfd,0xd6,0xf0,0xf8,0xf4,0x8b] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc_lo, -src_scc, -exec, 0.5 mul:4 -// W32: encoding: [0x05,0x6a,0xfd,0xd6,0xfd,0xfc,0xc0,0x73] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[5:6], vcc_lo, -src_scc, -exec, 0.5 mul:4 ; encoding: [0x05,0x6a,0xfd,0xd6,0xfd,0xfc,0xc0,0x73] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[254:255], vcc_lo, 0xaf123456, -vcc, -1 clamp div:2 -// W32: encoding: [0xfe,0xea,0xfd,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_div_scale_f64 v[254:255], vcc_lo, 0xaf123456, -vcc, -1 clamp div:2 ; encoding: [0xfe,0xea,0xfd,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, v[1:2], v[2:3], v[3:4] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x01,0x05,0x0e,0x04] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, v[1:2], v[2:3], v[3:4] ; encoding: [0x05,0x6a,0xfd,0xd6,0x01,0x05,0x0e,0x04] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, v[254:255], v[254:255], s[6:7] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0xfe,0xfd,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, v[254:255], v[254:255], s[6:7] ; encoding: [0x05,0x6a,0xfd,0xd6,0xfe,0xfd,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, s[2:3], s[4:5], v[254:255] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x02,0x08,0xf8,0x07] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, s[2:3], s[4:5], v[254:255] ; encoding: [0x05,0x6a,0xfd,0xd6,0x02,0x08,0xf8,0x07] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -s[104:105], s[104:105], -s[104:105] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x68,0xd0,0xa0,0xa1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -s[104:105], s[104:105], -s[104:105] ; encoding: [0x05,0x6a,0xfd,0xd6,0x68,0xd0,0xa0,0xa1] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, vcc, -ttmp[14:15], -ttmp[14:15] -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x6a,0xf4,0xe8,0xc1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, vcc, -ttmp[14:15], -ttmp[14:15] ; encoding: [0x05,0x6a,0xfd,0xd6,0x6a,0xf4,0xe8,0xc1] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -ttmp[14:15], 0xaf123456, null -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -ttmp[14:15], 0xaf123456, null ; encoding: [0x05,0x6a,0xfd,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -exec, -src_scc, -exec -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x7e,0xfa,0xf9,0xe1] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -exec, -src_scc, -exec ; encoding: [0x05,0x6a,0xfd,0xd6,0x7e,0xfa,0xf9,0xe1] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, null, 0.5, vcc -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0x7c,0xe0,0xa9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, null, 0.5, vcc ; encoding: [0x05,0x6a,0xfd,0xd6,0x7c,0xe0,0xa9,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -1, -1, 0xaf123456 -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -1, -1, 0xaf123456 ; encoding: [0x05,0x6a,0xfd,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, 0.5, null, -src_scc mul:2 -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0xf0,0xf8,0xf4,0x8b] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, 0.5, null, -src_scc mul:2 ; encoding: [0x05,0x6a,0xfd,0xd6,0xf0,0xf8,0xf4,0x8b] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[5:6], vcc, -src_scc, -exec, 0.5 mul:4 -// W64: encoding: [0x05,0x6a,0xfd,0xd6,0xfd,0xfc,0xc0,0x73] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[5:6], vcc, -src_scc, -exec, 0.5 mul:4 ; encoding: [0x05,0x6a,0xfd,0xd6,0xfd,0xfc,0xc0,0x73] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_div_scale_f64 v[254:255], vcc, 0xaf123456, -vcc, -1 clamp div:2 -// W64: encoding: [0xfe,0xea,0xfd,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_div_scale_f64 v[254:255], vcc, 0xaf123456, -vcc, -1 clamp div:2 ; encoding: [0xfe,0xea,0xfd,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_dot2_bf16_bf16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x67,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_dot2_bf16_bf16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x67,0xd6,0x01,0x05,0x0e,0x00] v_dot2_bf16_bf16 v5, v255, v255, s105 -// GFX12: encoding: [0x05,0x00,0x67,0xd6,0xff,0xff,0xa7,0x01] +// GFX12: v_dot2_bf16_bf16 v5, v255, v255, s105 ; encoding: [0x05,0x00,0x67,0xd6,0xff,0xff,0xa7,0x01] v_dot2_bf16_bf16 v5, s1, s2, v3 -// GFX12: encoding: [0x05,0x00,0x67,0xd6,0x01,0x04,0x0c,0x04] +// GFX12: v_dot2_bf16_bf16 v5, s1, s2, v3 ; encoding: [0x05,0x00,0x67,0xd6,0x01,0x04,0x0c,0x04] v_dot2_bf16_bf16 v5, s105, s105, m0 -// GFX12: encoding: [0x05,0x00,0x67,0xd6,0x69,0xd2,0xf4,0x01] +// GFX12: v_dot2_bf16_bf16 v5, s105, s105, m0 ; encoding: [0x05,0x00,0x67,0xd6,0x69,0xd2,0xf4,0x01] v_dot2_bf16_bf16 v5, vcc_lo, ttmp15, v255 -// GFX12: encoding: [0x05,0x00,0x67,0xd6,0x6a,0xf6,0xfc,0x07] +// GFX12: v_dot2_bf16_bf16 v5, vcc_lo, ttmp15, v255 ; encoding: [0x05,0x00,0x67,0xd6,0x6a,0xf6,0xfc,0x07] v_dot2_bf16_bf16 v5, vcc_hi, 0xfe0b, vcc_hi -// GFX12: encoding: [0x05,0x00,0x67,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_dot2_bf16_bf16 v5, vcc_hi, 0xfe0b, vcc_hi ; encoding: [0x05,0x00,0x67,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] v_dot2_bf16_bf16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x67,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_dot2_bf16_bf16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x67,0xd6,0x7b,0xfa,0xed,0x01] v_dot2_bf16_bf16 v5, |m0|, -1, -vcc_lo -// GFX12: encoding: [0x05,0x01,0x67,0xd6,0x7d,0x82,0xa9,0x81] +// GFX12: v_dot2_bf16_bf16 v5, |m0|, -1, -vcc_lo ; encoding: [0x05,0x01,0x67,0xd6,0x7d,0x82,0xa9,0x81] v_dot2_bf16_bf16 v5, -|exec_lo|, null, -|0xfe0b| -// GFX12: encoding: [0x05,0x05,0x67,0xd6,0x7e,0xf8,0xfc,0xa3,0x0b,0xfe,0x00,0x00] +// GFX12: v_dot2_bf16_bf16 v5, -|exec_lo|, null, -|0xfe0b| ; encoding: [0x05,0x05,0x67,0xd6,0x7e,0xf8,0xfc,0xa3,0x0b,0xfe,0x00,0x00] v_dot2_bf16_bf16 v5, -|exec_hi|, -|exec_lo|, -|exec_lo| -// GFX12: encoding: [0x05,0x07,0x67,0xd6,0x7f,0xfc,0xf8,0xe1] +// GFX12: v_dot2_bf16_bf16 v5, -|exec_hi|, -|exec_lo|, -|exec_lo| ; encoding: [0x05,0x07,0x67,0xd6,0x7f,0xfc,0xf8,0xe1] v_dot2_bf16_bf16 v5, null, -exec_hi, |src_scc| -// GFX12: encoding: [0x05,0x04,0x67,0xd6,0x7c,0xfe,0xf4,0x43] +// GFX12: v_dot2_bf16_bf16 v5, null, -exec_hi, |src_scc| ; encoding: [0x05,0x04,0x67,0xd6,0x7c,0xfe,0xf4,0x43] v_dot2_bf16_bf16 v5, -1, -|m0|, -|exec_hi| op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x06,0x67,0xd6,0xc1,0xfa,0xfc,0xc1] +// GFX12: v_dot2_bf16_bf16 v5, -1, -|m0|, -|exec_hi| ; encoding: [0x05,0x06,0x67,0xd6,0xc1,0xfa,0xfc,0xc1] v_dot2_bf16_bf16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x22,0x67,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_dot2_bf16_bf16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x67,0xd6,0xfd,0xd4,0x04,0x23] v_dot2_bf16_bf16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] -// GFX12: encoding: [0xff,0x43,0x67,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX12: v_dot2_bf16_bf16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] ; encoding: [0xff,0x43,0x67,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_dot2_f16_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x66,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_dot2_f16_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x66,0xd6,0x01,0x05,0x0e,0x00] v_dot2_f16_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x66,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_dot2_f16_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x66,0xd6,0xff,0x05,0xa4,0x01] v_dot2_f16_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x66,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_dot2_f16_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x66,0xd6,0x01,0xfe,0xff,0x01] v_dot2_f16_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x66,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_dot2_f16_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x66,0xd6,0x69,0xd2,0xf8,0x01] v_dot2_f16_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x66,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_dot2_f16_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x66,0xd6,0x6a,0xf6,0x0c,0x04] v_dot2_f16_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x66,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_dot2_f16_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x66,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_dot2_f16_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x66,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_dot2_f16_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x66,0xd6,0x7b,0xfa,0xed,0xe1] v_dot2_f16_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x66,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_dot2_f16_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x66,0xd6,0x7d,0xe0,0xf5,0x01] v_dot2_f16_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x66,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_dot2_f16_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x66,0xd6,0x7e,0x82,0xad,0x01] v_dot2_f16_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x66,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_dot2_f16_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x66,0xd6,0x7f,0xf8,0xa8,0xa1] v_dot2_f16_f16 v5, null, exec_lo, -|0xfe0b| -// GFX12: encoding: [0x05,0x04,0x66,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX12: v_dot2_f16_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x66,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_dot2_f16_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x66,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_dot2_f16_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x66,0xd6,0xc1,0xfe,0xf4,0xc3] v_dot2_f16_f16 v5, 0.5, -m0, 0.5 op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x66,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_dot2_f16_f16 v5, 0.5, -m0, 0.5 ; encoding: [0x05,0x00,0x66,0xd6,0xf0,0xfa,0xc0,0x43] v_dot2_f16_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x22,0x66,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_dot2_f16_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x66,0xd6,0xfd,0xd4,0x04,0x23] v_dot2_f16_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] -// GFX12: encoding: [0xff,0x43,0x66,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX12: v_dot2_f16_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] ; encoding: [0xff,0x43,0x66,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_fma_dx9_zero_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_fma_dx9_zero_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x09,0xd6,0x01,0x05,0x0e,0x00] v_fma_dx9_zero_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_fma_dx9_zero_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x09,0xd6,0xff,0x05,0xa4,0x01] v_fma_dx9_zero_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_fma_dx9_zero_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x09,0xd6,0x01,0xfe,0xff,0x01] v_fma_dx9_zero_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_fma_dx9_zero_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x09,0xd6,0x69,0xd2,0xf8,0x01] v_fma_dx9_zero_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_fma_dx9_zero_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x09,0xd6,0x6a,0xf6,0x0c,0x04] v_fma_dx9_zero_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_fma_dx9_zero_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x09,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_fma_dx9_zero_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x09,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_fma_dx9_zero_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x09,0xd6,0x7b,0xfa,0xed,0xe1] v_fma_dx9_zero_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_fma_dx9_zero_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x09,0xd6,0x7d,0xe0,0xf5,0x01] v_fma_dx9_zero_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x09,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_fma_dx9_zero_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x09,0xd6,0x7e,0x82,0xad,0x01] v_fma_dx9_zero_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x09,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_fma_dx9_zero_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x09,0xd6,0x7f,0xf8,0xa8,0xa1] v_fma_dx9_zero_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x09,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_fma_dx9_zero_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x09,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_fma_dx9_zero_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x09,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_fma_dx9_zero_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x09,0xd6,0xc1,0xfe,0xf4,0xc3] v_fma_dx9_zero_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_fma_dx9_zero_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x09,0xd6,0xf0,0xfa,0xc0,0x4b] v_fma_dx9_zero_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x09,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_fma_dx9_zero_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x09,0xd6,0xfd,0xd4,0x04,0x33] v_fma_dx9_zero_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x09,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_fma_dx9_zero_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x09,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_fma_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x48,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_fma_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x48,0xd6,0x01,0x05,0x0e,0x00] v_fma_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x48,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_fma_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x48,0xd6,0xff,0x05,0xa4,0x01] v_fma_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x48,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_fma_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x48,0xd6,0x01,0xfe,0xff,0x01] v_fma_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x48,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_fma_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x48,0xd6,0x69,0xd2,0xf8,0x01] v_fma_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x48,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_fma_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x48,0xd6,0x6a,0xf6,0x0c,0x04] v_fma_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x48,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_fma_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x48,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_fma_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x48,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_fma_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x48,0xd6,0x7b,0xfa,0xed,0xe1] v_fma_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x48,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_fma_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x48,0xd6,0x7d,0xe0,0xf5,0x01] v_fma_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x48,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_fma_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x48,0xd6,0x7e,0x82,0xad,0x01] v_fma_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x7d,0x48,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_fma_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x48,0xd6,0x7f,0xf8,0xa8,0xa1] v_fma_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x04,0x48,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX12: v_fma_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x48,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_fma_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x0e,0x48,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_fma_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x48,0xd6,0xc1,0xfe,0xf4,0xc3] v_fma_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x48,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_fma_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x48,0xd6,0xf0,0xfa,0xc0,0x43] v_fma_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x22,0x48,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_fma_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x48,0xd6,0xfd,0xd4,0x04,0x23] v_fma_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX12: encoding: [0xff,0xc3,0x48,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX12: v_fma_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x48,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_fma_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x13,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_fma_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x13,0xd6,0x01,0x05,0x0e,0x00] v_fma_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x13,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_fma_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x13,0xd6,0xff,0x05,0xa4,0x01] v_fma_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x13,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_fma_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x13,0xd6,0x01,0xfe,0xff,0x01] v_fma_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x13,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_fma_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x13,0xd6,0x69,0xd2,0xf8,0x01] v_fma_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x13,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_fma_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x13,0xd6,0x6a,0xf6,0x0c,0x04] v_fma_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x13,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_fma_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x13,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_fma_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x13,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_fma_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x13,0xd6,0x7b,0xfa,0xed,0xe1] v_fma_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x13,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_fma_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x13,0xd6,0x7d,0xe0,0xf5,0x01] v_fma_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x13,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_fma_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x13,0xd6,0x7e,0x82,0xad,0x01] v_fma_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x13,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_fma_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x13,0xd6,0x7f,0xf8,0xa8,0xa1] v_fma_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x13,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_fma_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x13,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_fma_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x13,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_fma_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x13,0xd6,0xc1,0xfe,0xf4,0xc3] v_fma_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x13,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_fma_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x13,0xd6,0xf0,0xfa,0xc0,0x4b] v_fma_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x13,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_fma_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x13,0xd6,0xfd,0xd4,0x04,0x33] v_fma_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x13,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_fma_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x13,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_fma_f64 v[5:6], v[1:2], v[2:3], v[3:4] -// GFX12: encoding: [0x05,0x00,0x14,0xd6,0x01,0x05,0x0e,0x04] +// GFX12: v_fma_f64 v[5:6], v[1:2], v[2:3], v[3:4] ; encoding: [0x05,0x00,0x14,0xd6,0x01,0x05,0x0e,0x04] v_fma_f64 v[5:6], v[254:255], v[254:255], s[6:7] -// GFX12: encoding: [0x05,0x00,0x14,0xd6,0xfe,0xfd,0x1b,0x00] +// GFX12: v_fma_f64 v[5:6], v[254:255], v[254:255], s[6:7] ; encoding: [0x05,0x00,0x14,0xd6,0xfe,0xfd,0x1b,0x00] v_fma_f64 v[5:6], s[2:3], s[4:5], v[254:255] -// GFX12: encoding: [0x05,0x00,0x14,0xd6,0x02,0x08,0xf8,0x07] +// GFX12: v_fma_f64 v[5:6], s[2:3], s[4:5], v[254:255] ; encoding: [0x05,0x00,0x14,0xd6,0x02,0x08,0xf8,0x07] v_fma_f64 v[5:6], -|s[104:105]|, s[104:105], -|s[104:105]| -// GFX12: encoding: [0x05,0x05,0x14,0xd6,0x68,0xd0,0xa0,0xa1] +// GFX12: v_fma_f64 v[5:6], -|s[104:105]|, s[104:105], -|s[104:105]| ; encoding: [0x05,0x05,0x14,0xd6,0x68,0xd0,0xa0,0xa1] v_fma_f64 v[5:6], vcc, -|ttmp[14:15]|, -|ttmp[14:15]| -// GFX12: encoding: [0x05,0x06,0x14,0xd6,0x6a,0xf4,0xe8,0xc1] +// GFX12: v_fma_f64 v[5:6], vcc, -|ttmp[14:15]|, -|ttmp[14:15]| ; encoding: [0x05,0x06,0x14,0xd6,0x6a,0xf4,0xe8,0xc1] v_fma_f64 v[5:6], -|ttmp[14:15]|, 0xaf123456, null -// GFX12: encoding: [0x05,0x01,0x14,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] +// GFX12: v_fma_f64 v[5:6], -|ttmp[14:15]|, 0xaf123456, null ; encoding: [0x05,0x01,0x14,0xd6,0x7a,0xfe,0xf1,0x21,0x56,0x34,0x12,0xaf] v_fma_f64 v[5:6], -|exec|, -|src_scc|, -|exec| -// GFX12: encoding: [0x05,0x07,0x14,0xd6,0x7e,0xfa,0xf9,0xe1] +// GFX12: v_fma_f64 v[5:6], -|exec|, -|src_scc|, -|exec| ; encoding: [0x05,0x07,0x14,0xd6,0x7e,0xfa,0xf9,0xe1] v_fma_f64 v[5:6], null, 0.5, vcc -// GFX12: encoding: [0x05,0x00,0x14,0xd6,0x7c,0xe0,0xa9,0x01] +// GFX12: v_fma_f64 v[5:6], null, 0.5, vcc ; encoding: [0x05,0x00,0x14,0xd6,0x7c,0xe0,0xa9,0x01] v_fma_f64 v[5:6], -1, -1, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x14,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_fma_f64 v[5:6], -1, -1, 0xaf123456 ; encoding: [0x05,0x00,0x14,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] v_fma_f64 v[5:6], 0.5, null, -|src_scc| mul:2 -// GFX12: encoding: [0x05,0x04,0x14,0xd6,0xf0,0xf8,0xf4,0x8b] +// GFX12: v_fma_f64 v[5:6], 0.5, null, -|src_scc| mul:2 ; encoding: [0x05,0x04,0x14,0xd6,0xf0,0xf8,0xf4,0x8b] v_fma_f64 v[5:6], -|src_scc|, -|exec|, 0.5 mul:4 -// GFX12: encoding: [0x05,0x03,0x14,0xd6,0xfd,0xfc,0xc0,0x73] +// GFX12: v_fma_f64 v[5:6], -|src_scc|, -|exec|, 0.5 mul:4 ; encoding: [0x05,0x03,0x14,0xd6,0xfd,0xfc,0xc0,0x73] v_fma_f64 v[254:255], 0xaf123456, -|vcc|, -1 clamp div:2 -// GFX12: encoding: [0xfe,0x82,0x14,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] - -v_fma_dx9_zero_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x01,0x05,0x0e,0x00] - -v_fma_dx9_zero_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0xff,0x05,0xa4,0x01] - -v_fma_dx9_zero_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x01,0xfe,0xff,0x01] - -v_fma_dx9_zero_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x69,0xd2,0xf8,0x01] - -v_fma_dx9_zero_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x6a,0xf6,0x0c,0x04] - -v_fma_dx9_zero_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] - -v_fma_dx9_zero_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x09,0xd6,0x7b,0xfa,0xed,0xe1] - -v_fma_dx9_zero_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0x7d,0xe0,0xf5,0x01] - -v_fma_dx9_zero_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x09,0xd6,0x7e,0x82,0xad,0x01] - -v_fma_dx9_zero_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x09,0xd6,0x7f,0xf8,0xa8,0xa1] - -v_fma_dx9_zero_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x09,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] - -v_fma_dx9_zero_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x09,0xd6,0xc1,0xfe,0xf4,0xc3] - -v_fma_dx9_zero_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x09,0xd6,0xf0,0xfa,0xc0,0x4b] - -v_fma_dx9_zero_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x09,0xd6,0xfd,0xd4,0x04,0x33] - -v_fma_dx9_zero_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x09,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_fma_f64 v[254:255], 0xaf123456, -|vcc|, -1 clamp div:2 ; encoding: [0xfe,0x82,0x14,0xd6,0xff,0xd4,0x04,0x5b,0x56,0x34,0x12,0xaf] v_ldexp_f32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_ldexp_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x1c,0xd7,0x01,0x05,0x02,0x00] v_ldexp_f32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_ldexp_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x1c,0xd7,0xff,0xff,0x03,0x00] v_ldexp_f32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_ldexp_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x1c,0xd7,0x01,0x04,0x00,0x00] v_ldexp_f32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_ldexp_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x1c,0xd7,0x69,0xd2,0x00,0x00] v_ldexp_f32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_ldexp_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1c,0xd7,0x6a,0xf6,0x00,0x00] v_ldexp_f32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_ldexp_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1c,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_ldexp_f32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_ldexp_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1c,0xd7,0x7b,0xfa,0x01,0x00] v_ldexp_f32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_ldexp_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1c,0xd7,0x7d,0xe0,0x01,0x00] v_ldexp_f32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_ldexp_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1c,0xd7,0x7e,0x82,0x01,0x00] v_ldexp_f32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_ldexp_f32 v5, exec_hi, null ; encoding: [0x05,0x00,0x1c,0xd7,0x7f,0xf8,0x00,0x00] v_ldexp_f32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_ldexp_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x1c,0xd7,0x7c,0xfc,0x00,0x00] v_ldexp_f32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_ldexp_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1c,0xd7,0xc1,0xfe,0x00,0x00] v_ldexp_f32 v5, 0.5, m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0xf0,0xfa,0x00,0x08] +// GFX12: v_ldexp_f32 v5, 0.5, m0 mul:2 ; encoding: [0x05,0x00,0x1c,0xd7,0xf0,0xfa,0x00,0x08] v_ldexp_f32 v5, src_scc, vcc_lo mul:4 -// GFX12: encoding: [0x05,0x00,0x1c,0xd7,0xfd,0xd4,0x00,0x10] +// GFX12: v_ldexp_f32 v5, src_scc, vcc_lo mul:4 ; encoding: [0x05,0x00,0x1c,0xd7,0xfd,0xd4,0x00,0x10] v_ldexp_f32 v255, -|0xaf123456|, vcc_hi clamp div:2 -// GFX12: encoding: [0xff,0x81,0x1c,0xd7,0xff,0xd6,0x00,0x38,0x56,0x34,0x12,0xaf] +// GFX12: v_ldexp_f32 v255, -|0xaf123456|, vcc_hi clamp div:2 ; encoding: [0xff,0x81,0x1c,0xd7,0xff,0xd6,0x00,0x38,0x56,0x34,0x12,0xaf] v_ldexp_f64 v[5:6], v[1:2], v2 -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_ldexp_f64 v[5:6], v[1:2], v2 ; encoding: [0x05,0x00,0x2b,0xd7,0x01,0x05,0x02,0x00] v_ldexp_f64 v[5:6], v[1:2], v255 -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x01,0xff,0x03,0x00] +// GFX12: v_ldexp_f64 v[5:6], v[1:2], v255 ; encoding: [0x05,0x00,0x2b,0xd7,0x01,0xff,0x03,0x00] v_ldexp_f64 v[5:6], v[1:2], s2 -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x01,0x05,0x00,0x00] +// GFX12: v_ldexp_f64 v[5:6], v[1:2], s2 ; encoding: [0x05,0x00,0x2b,0xd7,0x01,0x05,0x00,0x00] v_ldexp_f64 v[5:6], v[1:2], s105 -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x01,0xd3,0x00,0x00] +// GFX12: v_ldexp_f64 v[5:6], v[1:2], s105 ; encoding: [0x05,0x00,0x2b,0xd7,0x01,0xd3,0x00,0x00] v_ldexp_f64 v[5:6], v[254:255], ttmp15 -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0xfe,0xf7,0x00,0x00] +// GFX12: v_ldexp_f64 v[5:6], v[254:255], ttmp15 ; encoding: [0x05,0x00,0x2b,0xd7,0xfe,0xf7,0x00,0x00] v_ldexp_f64 v[5:6], s[2:3], vcc_hi -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x02,0xd6,0x00,0x00] +// GFX12: v_ldexp_f64 v[5:6], s[2:3], vcc_hi ; encoding: [0x05,0x00,0x2b,0xd7,0x02,0xd6,0x00,0x00] v_ldexp_f64 v[5:6], s[104:105], vcc_lo -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x68,0xd4,0x00,0x00] +// GFX12: v_ldexp_f64 v[5:6], s[104:105], vcc_lo ; encoding: [0x05,0x00,0x2b,0xd7,0x68,0xd4,0x00,0x00] v_ldexp_f64 v[5:6], vcc, m0 -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x6a,0xfa,0x00,0x00] +// GFX12: v_ldexp_f64 v[5:6], vcc, m0 ; encoding: [0x05,0x00,0x2b,0xd7,0x6a,0xfa,0x00,0x00] v_ldexp_f64 v[5:6], ttmp[14:15], exec_hi -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x7a,0xfe,0x00,0x00] +// GFX12: v_ldexp_f64 v[5:6], ttmp[14:15], exec_hi ; encoding: [0x05,0x00,0x2b,0xd7,0x7a,0xfe,0x00,0x00] v_ldexp_f64 v[5:6], exec, exec_lo -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x7e,0xfc,0x00,0x00] +// GFX12: v_ldexp_f64 v[5:6], exec, exec_lo ; encoding: [0x05,0x00,0x2b,0xd7,0x7e,0xfc,0x00,0x00] v_ldexp_f64 v[5:6], null, null -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0x7c,0xf8,0x00,0x00] +// GFX12: v_ldexp_f64 v[5:6], null, null ; encoding: [0x05,0x00,0x2b,0xd7,0x7c,0xf8,0x00,0x00] v_ldexp_f64 v[5:6], -1, -1 -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0xc1,0x82,0x01,0x00] +// GFX12: v_ldexp_f64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x2b,0xd7,0xc1,0x82,0x01,0x00] v_ldexp_f64 v[5:6], 0.5, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x2b,0xd7,0xf0,0xe0,0x01,0x08] +// GFX12: v_ldexp_f64 v[5:6], 0.5, 0.5 mul:2 ; encoding: [0x05,0x00,0x2b,0xd7,0xf0,0xe0,0x01,0x08] v_ldexp_f64 v[5:6], -|src_scc|, src_scc mul:4 -// GFX12: encoding: [0x05,0x01,0x2b,0xd7,0xfd,0xfa,0x01,0x30] +// GFX12: v_ldexp_f64 v[5:6], -|src_scc|, src_scc mul:4 ; encoding: [0x05,0x01,0x2b,0xd7,0xfd,0xfa,0x01,0x30] v_ldexp_f64 v[254:255], 0xaf123456, 0xaf123456 clamp div:2 -// GFX12: encoding: [0xfe,0x80,0x2b,0xd7,0xff,0xfe,0x01,0x18,0x56,0x34,0x12,0xaf] +// GFX12: v_ldexp_f64 v[254:255], 0xaf123456, 0xaf123456 clamp div:2 ; encoding: [0xfe,0x80,0x2b,0xd7,0xff,0xfe,0x01,0x18,0x56,0x34,0x12,0xaf] v_lerp_u8 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_lerp_u8 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x15,0xd6,0x01,0x05,0x0e,0x00] v_lerp_u8 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_lerp_u8 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x15,0xd6,0xff,0x05,0xa4,0x01] v_lerp_u8 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_lerp_u8 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x15,0xd6,0x01,0xfe,0xff,0x01] v_lerp_u8 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_lerp_u8 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x15,0xd6,0x69,0xd2,0xf8,0x01] v_lerp_u8 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_lerp_u8 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x15,0xd6,0x6a,0xf6,0x0c,0x04] v_lerp_u8 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_lerp_u8 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x15,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_lerp_u8 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_lerp_u8 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x15,0xd6,0x7b,0xfa,0xed,0x01] v_lerp_u8 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_lerp_u8 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x15,0xd6,0x7d,0xe0,0xf5,0x01] v_lerp_u8 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_lerp_u8 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x15,0xd6,0x7e,0x82,0xad,0x01] v_lerp_u8 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_lerp_u8 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x15,0xd6,0x7f,0xf8,0xa8,0x01] v_lerp_u8 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_lerp_u8 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x15,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_lerp_u8 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_lerp_u8 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x15,0xd6,0xc1,0xfe,0xf4,0x03] v_lerp_u8 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_lerp_u8 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x15,0xd6,0xf0,0xfa,0xc0,0x03] v_lerp_u8 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x15,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_lerp_u8 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x15,0xd6,0xfd,0xd4,0x04,0x03] v_lerp_u8 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x15,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_lerp_u8 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x15,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_lshl_add_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_lshl_add_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x46,0xd6,0x01,0x05,0x0e,0x00] v_lshl_add_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_lshl_add_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x46,0xd6,0xff,0x05,0xa4,0x01] v_lshl_add_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_lshl_add_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x46,0xd6,0x01,0xfe,0xff,0x01] v_lshl_add_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_lshl_add_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x46,0xd6,0x69,0xd2,0xf8,0x01] v_lshl_add_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_lshl_add_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x46,0xd6,0x6a,0xf6,0x0c,0x04] v_lshl_add_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_lshl_add_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x46,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_lshl_add_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_lshl_add_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x46,0xd6,0x7b,0xfa,0xed,0x01] v_lshl_add_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_lshl_add_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x46,0xd6,0x7d,0xe0,0xf5,0x01] v_lshl_add_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_lshl_add_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x46,0xd6,0x7e,0x82,0xad,0x01] v_lshl_add_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_lshl_add_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x46,0xd6,0x7f,0xf8,0xa8,0x01] v_lshl_add_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_lshl_add_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x46,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_lshl_add_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_lshl_add_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x46,0xd6,0xc1,0xfe,0xf4,0x03] v_lshl_add_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_lshl_add_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x46,0xd6,0xf0,0xfa,0xc0,0x03] v_lshl_add_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x46,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_lshl_add_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x46,0xd6,0xfd,0xd4,0x04,0x03] v_lshl_add_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x46,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_lshl_add_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x46,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_lshl_or_b32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_lshl_or_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x56,0xd6,0x01,0x05,0x0e,0x00] v_lshl_or_b32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_lshl_or_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x56,0xd6,0xff,0x05,0xa4,0x01] v_lshl_or_b32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_lshl_or_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x56,0xd6,0x01,0xfe,0xff,0x01] v_lshl_or_b32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_lshl_or_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x56,0xd6,0x69,0xd2,0xf8,0x01] v_lshl_or_b32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_lshl_or_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x56,0xd6,0x6a,0xf6,0x0c,0x04] v_lshl_or_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_lshl_or_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x56,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_lshl_or_b32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_lshl_or_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x56,0xd6,0x7b,0xfa,0xed,0x01] v_lshl_or_b32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_lshl_or_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x56,0xd6,0x7d,0xe0,0xf5,0x01] v_lshl_or_b32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_lshl_or_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x56,0xd6,0x7e,0x82,0xad,0x01] v_lshl_or_b32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_lshl_or_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x56,0xd6,0x7f,0xf8,0xa8,0x01] v_lshl_or_b32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_lshl_or_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x56,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_lshl_or_b32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_lshl_or_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x56,0xd6,0xc1,0xfe,0xf4,0x03] v_lshl_or_b32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_lshl_or_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x56,0xd6,0xf0,0xfa,0xc0,0x03] v_lshl_or_b32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x56,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_lshl_or_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x56,0xd6,0xfd,0xd4,0x04,0x03] v_lshl_or_b32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x56,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_lshl_or_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x56,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_lshlrev_b16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_lshlrev_b16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x38,0xd7,0x01,0x05,0x02,0x00] v_lshlrev_b16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x38,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_lshlrev_b16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x38,0xd7,0x01,0x05,0x02,0x00] v_lshlrev_b16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_lshlrev_b16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x38,0xd7,0xff,0xff,0x03,0x00] v_lshlrev_b16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x38,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_lshlrev_b16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x38,0xd7,0xff,0xff,0x03,0x00] v_lshlrev_b16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_lshlrev_b16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x38,0xd7,0x01,0x04,0x00,0x00] v_lshlrev_b16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_lshlrev_b16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x38,0xd7,0x69,0xd2,0x00,0x00] v_lshlrev_b16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_lshlrev_b16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x38,0xd7,0x6a,0xf6,0x00,0x00] v_lshlrev_b16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_lshlrev_b16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x38,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_lshlrev_b16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_lshlrev_b16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x38,0xd7,0x7b,0xfa,0x01,0x00] v_lshlrev_b16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_lshlrev_b16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x38,0xd7,0x7d,0xe0,0x01,0x00] v_lshlrev_b16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_lshlrev_b16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x38,0xd7,0x7e,0x82,0x01,0x00] v_lshlrev_b16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_lshlrev_b16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x38,0xd7,0x7f,0xf8,0x00,0x00] v_lshlrev_b16 v5.l, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_lshlrev_b16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x38,0xd7,0x7c,0xfc,0x00,0x00] v_lshlrev_b16 v5.l, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_lshlrev_b16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x38,0xd7,0xc1,0xfe,0x00,0x00] v_lshlrev_b16 v5.l, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_lshlrev_b16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x38,0xd7,0xf0,0xfa,0x00,0x00] v_lshlrev_b16 v5.l, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x38,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_lshlrev_b16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x38,0xd7,0xfd,0xd4,0x00,0x00] v_lshlrev_b16 v255.l, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x38,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_lshlrev_b16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x38,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_lshlrev_b16 v255.h, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x40,0x38,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_lshlrev_b16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x38,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_lshrrev_b16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_lshrrev_b16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x39,0xd7,0x01,0x05,0x02,0x00] v_lshrrev_b16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_lshrrev_b16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x39,0xd7,0xff,0xff,0x03,0x00] v_lshrrev_b16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_lshrrev_b16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x39,0xd7,0x01,0x04,0x00,0x00] v_lshrrev_b16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x39,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_lshrrev_b16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x39,0xd7,0x01,0x05,0x02,0x00] v_lshrrev_b16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_lshrrev_b16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x39,0xd7,0x69,0xd2,0x00,0x00] v_lshrrev_b16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x39,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_lshrrev_b16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x39,0xd7,0xff,0xff,0x03,0x00] v_lshrrev_b16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_lshrrev_b16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x39,0xd7,0x6a,0xf6,0x00,0x00] v_lshrrev_b16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_lshrrev_b16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x39,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_lshrrev_b16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_lshrrev_b16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x39,0xd7,0x7b,0xfa,0x01,0x00] v_lshrrev_b16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_lshrrev_b16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x39,0xd7,0x7d,0xe0,0x01,0x00] v_lshrrev_b16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_lshrrev_b16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x39,0xd7,0x7e,0x82,0x01,0x00] v_lshrrev_b16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_lshrrev_b16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x39,0xd7,0x7f,0xf8,0x00,0x00] v_lshrrev_b16 v5.l, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_lshrrev_b16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x39,0xd7,0x7c,0xfc,0x00,0x00] v_lshrrev_b16 v5.l, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_lshrrev_b16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x39,0xd7,0xc1,0xfe,0x00,0x00] v_lshrrev_b16 v5.l, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_lshrrev_b16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x39,0xd7,0xf0,0xfa,0x00,0x00] v_lshrrev_b16 v5.l, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x39,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_lshrrev_b16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x39,0xd7,0xfd,0xd4,0x00,0x00] v_lshrrev_b16 v255.l, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x39,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_lshrrev_b16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x39,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_lshrrev_b16 v255.h, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x40,0x39,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_lshrrev_b16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x39,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_lshrrev_b64 v[5:6], v1, vcc -// GFX12: encoding: [0x05,0x00,0x3d,0xd7,0x01,0xd5,0x00,0x00] +// GFX12: v_lshrrev_b64 v[5:6], v1, vcc ; encoding: [0x05,0x00,0x3d,0xd7,0x01,0xd5,0x00,0x00] v_lshrrev_b64 v[5:6], v255, exec -// GFX12: encoding: [0x05,0x00,0x3d,0xd7,0xff,0xfd,0x00,0x00] +// GFX12: v_lshrrev_b64 v[5:6], v255, exec ; encoding: [0x05,0x00,0x3d,0xd7,0xff,0xfd,0x00,0x00] v_lshrrev_b64 v[5:6], exec_lo, v[2:3] -// GFX12: encoding: [0x05,0x00,0x3d,0xd7,0x7e,0x04,0x02,0x00] +// GFX12: v_lshrrev_b64 v[5:6], exec_lo, v[2:3] ; encoding: [0x05,0x00,0x3d,0xd7,0x7e,0x04,0x02,0x00] v_lshrrev_b64 v[5:6], exec_hi, v[254:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd7,0x7f,0xfc,0x03,0x00] +// GFX12: v_lshrrev_b64 v[5:6], exec_hi, v[254:255] ; encoding: [0x05,0x00,0x3d,0xd7,0x7f,0xfc,0x03,0x00] v_lshrrev_b64 v[5:6], null, null -// GFX12: encoding: [0x05,0x00,0x3d,0xd7,0x7c,0xf8,0x00,0x00] +// GFX12: v_lshrrev_b64 v[5:6], null, null ; encoding: [0x05,0x00,0x3d,0xd7,0x7c,0xf8,0x00,0x00] v_lshrrev_b64 v[5:6], -1, -1 -// GFX12: encoding: [0x05,0x00,0x3d,0xd7,0xc1,0x82,0x01,0x00] +// GFX12: v_lshrrev_b64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x3d,0xd7,0xc1,0x82,0x01,0x00] v_lshrrev_b64 v[5:6], 0.5, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x3d,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_lshrrev_b64 v[5:6], 0.5, 0xaf123456 ; encoding: [0x05,0x00,0x3d,0xd7,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshrrev_b64 v[5:6], src_scc, src_scc -// GFX12: encoding: [0x05,0x00,0x3d,0xd7,0xfd,0xfa,0x01,0x00] +// GFX12: v_lshrrev_b64 v[5:6], src_scc, src_scc ; encoding: [0x05,0x00,0x3d,0xd7,0xfd,0xfa,0x01,0x00] v_lshrrev_b64 v[254:255], 0xaf123456, 0.5 -// GFX12: encoding: [0xfe,0x00,0x3d,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_lshrrev_b64 v[254:255], 0xaf123456, 0.5 ; encoding: [0xfe,0x00,0x3d,0xd7,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] v_mad_i16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_mad_i16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x53,0xd6,0x01,0x05,0x0e,0x00] v_mad_i16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_mad_i16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x53,0xd6,0xff,0x05,0xa4,0x01] v_mad_i16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_mad_i16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x53,0xd6,0x01,0xfe,0xff,0x01] v_mad_i16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_mad_i16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x53,0xd6,0x69,0xd2,0xf8,0x01] v_mad_i16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_mad_i16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x53,0xd6,0x6a,0xf6,0x0c,0x04] v_mad_i16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_i16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x53,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_mad_i16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_mad_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x53,0xd6,0x7b,0xfa,0xed,0x01] v_mad_i16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_mad_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x53,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_i16 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_mad_i16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x53,0xd6,0x7e,0x82,0xad,0x01] v_mad_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x78,0x53,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_mad_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x53,0xd6,0x7f,0xf8,0xa8,0x01] v_mad_i16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x53,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_i16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x53,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_mad_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x53,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_mad_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x53,0xd6,0xc1,0xfe,0xf4,0x03] v_mad_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x53,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_mad_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x53,0xd6,0xf0,0xfa,0xc0,0x03] v_mad_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x20,0x53,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_mad_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x53,0xd6,0xfd,0xd4,0x04,0x03] v_mad_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] clamp -// GFX12: encoding: [0xff,0xc0,0x53,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc0,0x53,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_mad_i32_i16 v5, v1, v2, v3 -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x01,0x05,0x0e,0x04] +// GFX12: v_mad_i32_i16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x5a,0xd6,0x01,0x05,0x0e,0x04] v_mad_i32_i16 v5, v255, v255, s3 -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0xff,0xff,0x0f,0x00] +// GFX12: v_mad_i32_i16 v5, v255, v255, s3 ; encoding: [0x05,0x00,0x5a,0xd6,0xff,0xff,0x0f,0x00] v_mad_i32_i16 v5, s1, s2, v255 -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x01,0x04,0xfc,0x07] +// GFX12: v_mad_i32_i16 v5, s1, s2, v255 ; encoding: [0x05,0x00,0x5a,0xd6,0x01,0x04,0xfc,0x07] v_mad_i32_i16 v5, s105, s105, s105 -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x69,0xd2,0xa4,0x01] +// GFX12: v_mad_i32_i16 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x5a,0xd6,0x69,0xd2,0xa4,0x01] v_mad_i32_i16 v5, vcc_lo, ttmp15, vcc_lo -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x6a,0xf6,0xa8,0x01] +// GFX12: v_mad_i32_i16 v5, vcc_lo, ttmp15, vcc_lo ; encoding: [0x05,0x00,0x5a,0xd6,0x6a,0xf6,0xa8,0x01] v_mad_i32_i16 v5, vcc_hi, 0xfe0b, vcc_hi -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_i32_i16 v5, vcc_hi, 0xfe0b, vcc_hi ; encoding: [0x05,0x00,0x5a,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] v_mad_i32_i16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_mad_i32_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x5a,0xd6,0x7b,0xfa,0xed,0x01] v_mad_i32_i16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_mad_i32_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x5a,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_i32_i16 v5, exec_lo, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x7e,0x82,0xfd,0x01] +// GFX12: v_mad_i32_i16 v5, exec_lo, -1, exec_hi ; encoding: [0x05,0x00,0x5a,0xd6,0x7e,0x82,0xfd,0x01] v_mad_i32_i16 v5, exec_hi, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x7f,0xf8,0xf8,0x01] +// GFX12: v_mad_i32_i16 v5, exec_hi, null, exec_lo ; encoding: [0x05,0x00,0x5a,0xd6,0x7f,0xf8,0xf8,0x01] v_mad_i32_i16 v5, null, exec_lo, null -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0x7c,0xfc,0xf0,0x01] +// GFX12: v_mad_i32_i16 v5, null, exec_lo, null ; encoding: [0x05,0x00,0x5a,0xd6,0x7c,0xfc,0xf0,0x01] v_mad_i32_i16 v5, -1, exec_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0xc1,0xfe,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_i32_i16 v5, -1, exec_hi, 0xaf123456 ; encoding: [0x05,0x00,0x5a,0xd6,0xc1,0xfe,0xfc,0x03,0x56,0x34,0x12,0xaf] v_mad_i32_i16 v5, 0.5, m0, -1 op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x5a,0xd6,0xf0,0xfa,0x04,0x03] +// GFX12: v_mad_i32_i16 v5, 0.5, m0, -1 ; encoding: [0x05,0x00,0x5a,0xd6,0xf0,0xfa,0x04,0x03] v_mad_i32_i16 v5, src_scc, vcc_lo, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x5a,0xd6,0xfd,0xd4,0xf4,0x03] +// GFX12: v_mad_i32_i16 v5, src_scc, vcc_lo, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x5a,0xd6,0xfd,0xd4,0xf4,0x03] v_mad_i32_i16 v255, 0xfe0b, vcc_hi, 0.5 op_sel:[0,1,0,0] clamp -// GFX12: encoding: [0xff,0x90,0x5a,0xd6,0xff,0xd6,0xc0,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_i32_i16 v255, 0xfe0b, vcc_hi, 0.5 op_sel:[0,1,0,0] clamp ; encoding: [0xff,0x90,0x5a,0xd6,0xff,0xd6,0xc0,0x03,0x0b,0xfe,0x00,0x00] v_mad_i32_i24 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_mad_i32_i24 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0a,0xd6,0x01,0x05,0x0e,0x00] v_mad_i32_i24 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_mad_i32_i24 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0a,0xd6,0xff,0x05,0xa4,0x01] v_mad_i32_i24 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_mad_i32_i24 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0a,0xd6,0x01,0xfe,0xff,0x01] v_mad_i32_i24 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_mad_i32_i24 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0a,0xd6,0x69,0xd2,0xf8,0x01] v_mad_i32_i24 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_mad_i32_i24 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0a,0xd6,0x6a,0xf6,0x0c,0x04] v_mad_i32_i24 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_i32_i24 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_mad_i32_i24 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_mad_i32_i24 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x0a,0xd6,0x7b,0xfa,0xed,0x01] v_mad_i32_i24 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_mad_i32_i24 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0a,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_i32_i24 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_mad_i32_i24 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x0a,0xd6,0x7e,0x82,0xad,0x01] v_mad_i32_i24 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_mad_i32_i24 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x0a,0xd6,0x7f,0xf8,0xa8,0x01] v_mad_i32_i24 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_i32_i24 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x0a,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_mad_i32_i24 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_mad_i32_i24 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x0a,0xd6,0xc1,0xfe,0xf4,0x03] v_mad_i32_i24 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_mad_i32_i24 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x0a,0xd6,0xf0,0xfa,0xc0,0x03] v_mad_i32_i24 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0a,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_mad_i32_i24 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x0a,0xd6,0xfd,0xd4,0x04,0x03] v_mad_i32_i24 v255, 0xaf123456, vcc_hi, null clamp -// GFX12: encoding: [0xff,0x80,0x0a,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_i32_i24 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x0a,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mad_co_i64_i32 v[5:6], s6, s105, s105, s[6:7] -// W32: encoding: [0x05,0x06,0xff,0xd6,0x69,0xd2,0x18,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_i64_i32 v[5:6], s6, s105, s105, s[6:7] ; encoding: [0x05,0x06,0xff,0xd6,0x69,0xd2,0x18,0x00] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s6, ttmp15, ttmp15, s[104:105] -// W32: encoding: [0x05,0x06,0xff,0xd6,0x7b,0xf6,0xa0,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_i64_i32 v[5:6], s6, ttmp15, ttmp15, s[104:105] ; encoding: [0x05,0x06,0xff,0xd6,0x7b,0xf6,0xa0,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s6, m0, 0.5, ttmp[14:15] -// W32: encoding: [0x05,0x06,0xff,0xd6,0x7d,0xe0,0xe9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_i64_i32 v[5:6], s6, m0, 0.5, ttmp[14:15] ; encoding: [0x05,0x06,0xff,0xd6,0x7d,0xe0,0xe9,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s6, exec_lo, -1, exec -// W32: encoding: [0x05,0x06,0xff,0xd6,0x7e,0x82,0xf9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_i64_i32 v[5:6], s6, exec_lo, -1, exec ; encoding: [0x05,0x06,0xff,0xd6,0x7e,0x82,0xf9,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s6, exec_hi, null, vcc -// W32: encoding: [0x05,0x06,0xff,0xd6,0x7f,0xf8,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_i64_i32 v[5:6], s6, exec_hi, null, vcc ; encoding: [0x05,0x06,0xff,0xd6,0x7f,0xf8,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s105, null, exec_lo, null -// W32: encoding: [0x05,0x69,0xff,0xd6,0x7c,0xfc,0xf0,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_i64_i32 v[5:6], s105, null, exec_lo, null ; encoding: [0x05,0x69,0xff,0xd6,0x7c,0xfc,0xf0,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], vcc_lo, -1, exec_hi, -1 -// W32: encoding: [0x05,0x6a,0xff,0xd6,0xc1,0xfe,0x04,0x03] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_i64_i32 v[5:6], vcc_lo, -1, exec_hi, -1 ; encoding: [0x05,0x6a,0xff,0xd6,0xc1,0xfe,0x04,0x03] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], vcc_hi, 0.5, m0, 0xaf123456 -// W32: encoding: [0x05,0x6b,0xff,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_i64_i32 v[5:6], vcc_hi, 0.5, m0, 0xaf123456 ; encoding: [0x05,0x6b,0xff,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], ttmp15, src_scc, vcc_lo, src_scc -// W32: encoding: [0x05,0x7b,0xff,0xd6,0xfd,0xd4,0xf4,0x03] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_i64_i32 v[5:6], ttmp15, src_scc, vcc_lo, src_scc ; encoding: [0x05,0x7b,0xff,0xd6,0xfd,0xd4,0xf4,0x03] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_i64_i32 v[5:6], s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0xff,0xd6,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7b,0xf6,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_i64_i32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] ; encoding: [0x05,0x0c,0xff,0xd6,0x7b,0xf6,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15] -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7d,0xe0,0xe9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_i64_i32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15] ; encoding: [0x05,0x0c,0xff,0xd6,0x7d,0xe0,0xe9,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s[12:13], exec_lo, -1, exec -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7e,0x82,0xf9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_i64_i32 v[5:6], s[12:13], exec_lo, -1, exec ; encoding: [0x05,0x0c,0xff,0xd6,0x7e,0x82,0xf9,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s[12:13], exec_hi, null, vcc -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7f,0xf8,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_i64_i32 v[5:6], s[12:13], exec_hi, null, vcc ; encoding: [0x05,0x0c,0xff,0xd6,0x7f,0xf8,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s[12:13], null, exec_lo, null -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7c,0xfc,0xf0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_i64_i32 v[5:6], s[12:13], null, exec_lo, null ; encoding: [0x05,0x0c,0xff,0xd6,0x7c,0xfc,0xf0,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], s[104:105], -1, exec_hi, -1 -// W64: encoding: [0x05,0x68,0xff,0xd6,0xc1,0xfe,0x04,0x03] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_i64_i32 v[5:6], s[104:105], -1, exec_hi, -1 ; encoding: [0x05,0x68,0xff,0xd6,0xc1,0xfe,0x04,0x03] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], vcc, 0.5, m0, 0xaf123456 -// W64: encoding: [0x05,0x6a,0xff,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_i64_i32 v[5:6], vcc, 0.5, m0, 0xaf123456 ; encoding: [0x05,0x6a,0xff,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[5:6], ttmp[14:15], src_scc, vcc_lo, src_scc -// W64: encoding: [0x05,0x7a,0xff,0xd6,0xfd,0xd4,0xf4,0x03] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_i64_i32 v[5:6], ttmp[14:15], src_scc, vcc_lo, src_scc ; encoding: [0x05,0x7a,0xff,0xd6,0xfd,0xd4,0xf4,0x03] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_i64_i32 v[254:255], null, 0xaf123456, vcc_hi, 0.5 clamp -// GFX12: encoding: [0xfe,0xfc,0xff,0xd6,0xff,0xd6,0xc0,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_co_i64_i32 v[254:255], null, 0xaf123456, vcc_hi, 0.5 clamp ; encoding: [0xfe,0xfc,0xff,0xd6,0xff,0xd6,0xc0,0x03,0x56,0x34,0x12,0xaf] v_mad_u16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_mad_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x41,0xd6,0x01,0x05,0x0e,0x00] v_mad_u16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_mad_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x41,0xd6,0xff,0x05,0xa4,0x01] v_mad_u16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_mad_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x41,0xd6,0x01,0xfe,0xff,0x01] v_mad_u16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_mad_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x41,0xd6,0x69,0xd2,0xf8,0x01] v_mad_u16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_mad_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x41,0xd6,0x6a,0xf6,0x0c,0x04] v_mad_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x41,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_mad_u16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_mad_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x41,0xd6,0x7b,0xfa,0xed,0x01] v_mad_u16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_mad_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x41,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_u16 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_mad_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x41,0xd6,0x7e,0x82,0xad,0x01] v_mad_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x78,0x41,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_mad_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x41,0xd6,0x7f,0xf8,0xa8,0x01] v_mad_u16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x41,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_u16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x41,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_mad_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x41,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_mad_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x41,0xd6,0xc1,0xfe,0xf4,0x03] v_mad_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x41,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_mad_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x41,0xd6,0xf0,0xfa,0xc0,0x03] v_mad_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x20,0x41,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_mad_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x41,0xd6,0xfd,0xd4,0x04,0x03] v_mad_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] clamp -// GFX12: encoding: [0xff,0xc0,0x41,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc0,0x41,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_mad_u32_u16 v5, v1, v2, v3 -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x01,0x05,0x0e,0x04] +// GFX12: v_mad_u32_u16 v5, v1, v2, v3 ; encoding: [0x05,0x00,0x59,0xd6,0x01,0x05,0x0e,0x04] v_mad_u32_u16 v5, v255, v255, s3 -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0xff,0xff,0x0f,0x00] +// GFX12: v_mad_u32_u16 v5, v255, v255, s3 ; encoding: [0x05,0x00,0x59,0xd6,0xff,0xff,0x0f,0x00] v_mad_u32_u16 v5, s1, s2, v255 -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x01,0x04,0xfc,0x07] +// GFX12: v_mad_u32_u16 v5, s1, s2, v255 ; encoding: [0x05,0x00,0x59,0xd6,0x01,0x04,0xfc,0x07] v_mad_u32_u16 v5, s105, s105, s105 -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x69,0xd2,0xa4,0x01] +// GFX12: v_mad_u32_u16 v5, s105, s105, s105 ; encoding: [0x05,0x00,0x59,0xd6,0x69,0xd2,0xa4,0x01] v_mad_u32_u16 v5, vcc_lo, ttmp15, vcc_lo -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x6a,0xf6,0xa8,0x01] +// GFX12: v_mad_u32_u16 v5, vcc_lo, ttmp15, vcc_lo ; encoding: [0x05,0x00,0x59,0xd6,0x6a,0xf6,0xa8,0x01] v_mad_u32_u16 v5, vcc_hi, 0xfe0b, vcc_hi -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_u32_u16 v5, vcc_hi, 0xfe0b, vcc_hi ; encoding: [0x05,0x00,0x59,0xd6,0x6b,0xfe,0xad,0x01,0x0b,0xfe,0x00,0x00] v_mad_u32_u16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_mad_u32_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x59,0xd6,0x7b,0xfa,0xed,0x01] v_mad_u32_u16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_mad_u32_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x59,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_u32_u16 v5, exec_lo, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x7e,0x82,0xfd,0x01] +// GFX12: v_mad_u32_u16 v5, exec_lo, -1, exec_hi ; encoding: [0x05,0x00,0x59,0xd6,0x7e,0x82,0xfd,0x01] v_mad_u32_u16 v5, exec_hi, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x7f,0xf8,0xf8,0x01] +// GFX12: v_mad_u32_u16 v5, exec_hi, null, exec_lo ; encoding: [0x05,0x00,0x59,0xd6,0x7f,0xf8,0xf8,0x01] v_mad_u32_u16 v5, null, exec_lo, null -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0x7c,0xfc,0xf0,0x01] +// GFX12: v_mad_u32_u16 v5, null, exec_lo, null ; encoding: [0x05,0x00,0x59,0xd6,0x7c,0xfc,0xf0,0x01] v_mad_u32_u16 v5, -1, exec_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0xc1,0xfe,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_u32_u16 v5, -1, exec_hi, 0xaf123456 ; encoding: [0x05,0x00,0x59,0xd6,0xc1,0xfe,0xfc,0x03,0x56,0x34,0x12,0xaf] v_mad_u32_u16 v5, 0.5, m0, -1 op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x59,0xd6,0xf0,0xfa,0x04,0x03] +// GFX12: v_mad_u32_u16 v5, 0.5, m0, -1 ; encoding: [0x05,0x00,0x59,0xd6,0xf0,0xfa,0x04,0x03] v_mad_u32_u16 v5, src_scc, vcc_lo, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x59,0xd6,0xfd,0xd4,0xf4,0x03] +// GFX12: v_mad_u32_u16 v5, src_scc, vcc_lo, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x59,0xd6,0xfd,0xd4,0xf4,0x03] v_mad_u32_u16 v255, 0xfe0b, vcc_hi, 0.5 op_sel:[0,1,0,0] clamp -// GFX12: encoding: [0xff,0x90,0x59,0xd6,0xff,0xd6,0xc0,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_mad_u32_u16 v255, 0xfe0b, vcc_hi, 0.5 op_sel:[0,1,0,0] clamp ; encoding: [0xff,0x90,0x59,0xd6,0xff,0xd6,0xc0,0x03,0x0b,0xfe,0x00,0x00] v_mad_u32_u24 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_mad_u32_u24 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x0b,0xd6,0x01,0x05,0x0e,0x00] v_mad_u32_u24 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_mad_u32_u24 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x0b,0xd6,0xff,0x05,0xa4,0x01] v_mad_u32_u24 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_mad_u32_u24 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x0b,0xd6,0x01,0xfe,0xff,0x01] v_mad_u32_u24 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_mad_u32_u24 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x0b,0xd6,0x69,0xd2,0xf8,0x01] v_mad_u32_u24 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_mad_u32_u24 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x0b,0xd6,0x6a,0xf6,0x0c,0x04] v_mad_u32_u24 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_u32_u24 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x0b,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_mad_u32_u24 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_mad_u32_u24 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x0b,0xd6,0x7b,0xfa,0xed,0x01] v_mad_u32_u24 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_mad_u32_u24 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x0b,0xd6,0x7d,0xe0,0xf5,0x01] v_mad_u32_u24 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_mad_u32_u24 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x0b,0xd6,0x7e,0x82,0xad,0x01] v_mad_u32_u24 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_mad_u32_u24 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x0b,0xd6,0x7f,0xf8,0xa8,0x01] v_mad_u32_u24 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_u32_u24 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x0b,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_mad_u32_u24 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_mad_u32_u24 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x0b,0xd6,0xc1,0xfe,0xf4,0x03] v_mad_u32_u24 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_mad_u32_u24 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x0b,0xd6,0xf0,0xfa,0xc0,0x03] v_mad_u32_u24 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0b,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_mad_u32_u24 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x0b,0xd6,0xfd,0xd4,0x04,0x03] v_mad_u32_u24 v255, 0xaf123456, vcc_hi, null clamp -// GFX12: encoding: [0xff,0x80,0x0b,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_u32_u24 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x0b,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mad_co_u64_u32 v[5:6], s6, s105, s105, s[6:7] -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x69,0xd2,0x18,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_u64_u32 v[5:6], s6, s105, s105, s[6:7] ; encoding: [0x05,0x06,0xfe,0xd6,0x69,0xd2,0x18,0x00] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s6, ttmp15, ttmp15, s[104:105] -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_u64_u32 v[5:6], s6, ttmp15, ttmp15, s[104:105] ; encoding: [0x05,0x06,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s6, m0, 0.5, ttmp[14:15] -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7d,0xe0,0xe9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_u64_u32 v[5:6], s6, m0, 0.5, ttmp[14:15] ; encoding: [0x05,0x06,0xfe,0xd6,0x7d,0xe0,0xe9,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s6, exec_lo, -1, exec -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7e,0x82,0xf9,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_u64_u32 v[5:6], s6, exec_lo, -1, exec ; encoding: [0x05,0x06,0xfe,0xd6,0x7e,0x82,0xf9,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s6, exec_hi, null, vcc -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7f,0xf8,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_u64_u32 v[5:6], s6, exec_hi, null, vcc ; encoding: [0x05,0x06,0xfe,0xd6,0x7f,0xf8,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s105, null, exec_lo, null -// W32: encoding: [0x05,0x69,0xfe,0xd6,0x7c,0xfc,0xf0,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_u64_u32 v[5:6], s105, null, exec_lo, null ; encoding: [0x05,0x69,0xfe,0xd6,0x7c,0xfc,0xf0,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], vcc_lo, -1, exec_hi, -1 -// W32: encoding: [0x05,0x6a,0xfe,0xd6,0xc1,0xfe,0x04,0x03] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_u64_u32 v[5:6], vcc_lo, -1, exec_hi, -1 ; encoding: [0x05,0x6a,0xfe,0xd6,0xc1,0xfe,0x04,0x03] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], vcc_hi, 0.5, m0, 0xaf123456 -// W32: encoding: [0x05,0x6b,0xfe,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_u64_u32 v[5:6], vcc_hi, 0.5, m0, 0xaf123456 ; encoding: [0x05,0x6b,0xfe,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], ttmp15, src_scc, vcc_lo, src_scc -// W32: encoding: [0x05,0x7b,0xfe,0xd6,0xfd,0xd4,0xf4,0x03] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_mad_co_u64_u32 v[5:6], ttmp15, src_scc, vcc_lo, src_scc ; encoding: [0x05,0x7b,0xfe,0xd6,0xfd,0xd4,0xf4,0x03] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_u64_u32 v[5:6], s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0xfe,0xd6,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_u64_u32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] ; encoding: [0x05,0x0c,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15] -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7d,0xe0,0xe9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_u64_u32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15] ; encoding: [0x05,0x0c,0xfe,0xd6,0x7d,0xe0,0xe9,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s[12:13], exec_lo, -1, exec -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7e,0x82,0xf9,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_u64_u32 v[5:6], s[12:13], exec_lo, -1, exec ; encoding: [0x05,0x0c,0xfe,0xd6,0x7e,0x82,0xf9,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s[12:13], exec_hi, null, vcc -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7f,0xf8,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_u64_u32 v[5:6], s[12:13], exec_hi, null, vcc ; encoding: [0x05,0x0c,0xfe,0xd6,0x7f,0xf8,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s[12:13], null, exec_lo, null -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7c,0xfc,0xf0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_u64_u32 v[5:6], s[12:13], null, exec_lo, null ; encoding: [0x05,0x0c,0xfe,0xd6,0x7c,0xfc,0xf0,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], s[104:105], -1, exec_hi, -1 -// W64: encoding: [0x05,0x68,0xfe,0xd6,0xc1,0xfe,0x04,0x03] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_u64_u32 v[5:6], s[104:105], -1, exec_hi, -1 ; encoding: [0x05,0x68,0xfe,0xd6,0xc1,0xfe,0x04,0x03] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], vcc, 0.5, m0, 0xaf123456 -// W64: encoding: [0x05,0x6a,0xfe,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_u64_u32 v[5:6], vcc, 0.5, m0, 0xaf123456 ; encoding: [0x05,0x6a,0xfe,0xd6,0xf0,0xfa,0xfc,0x03,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[5:6], ttmp[14:15], src_scc, vcc_lo, src_scc -// W64: encoding: [0x05,0x7a,0xfe,0xd6,0xfd,0xd4,0xf4,0x03] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_mad_co_u64_u32 v[5:6], ttmp[14:15], src_scc, vcc_lo, src_scc ; encoding: [0x05,0x7a,0xfe,0xd6,0xfd,0xd4,0xf4,0x03] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_mad_co_u64_u32 v[254:255], null, 0xaf123456, vcc_hi, 0.5 clamp -// GFX12: encoding: [0xfe,0xfc,0xfe,0xd6,0xff,0xd6,0xc0,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_mad_co_u64_u32 v[254:255], null, 0xaf123456, vcc_hi, 0.5 clamp ; encoding: [0xfe,0xfc,0xfe,0xd6,0xff,0xd6,0xc0,0x03,0x56,0x34,0x12,0xaf] v_max3_num_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x2c,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_max3_num_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x2c,0xd6,0x01,0x05,0x0e,0x00] v_max3_num_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x2c,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_max3_num_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x2c,0xd6,0xff,0x05,0xa4,0x01] v_max3_num_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x2c,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_max3_num_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x2c,0xd6,0x01,0xfe,0xff,0x01] v_max3_num_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x2c,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_max3_num_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x2c,0xd6,0x69,0xd2,0xf8,0x01] v_max3_num_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x2c,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_max3_num_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x2c,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_num_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x2c,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_max3_num_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x2c,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_max3_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x2c,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_max3_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x2c,0xd6,0x7b,0xfa,0xed,0xe1] v_max3_num_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x2c,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_max3_num_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x2c,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_num_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x2c,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_max3_num_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x2c,0xd6,0x7e,0x82,0xad,0x01] v_max3_num_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x7d,0x2c,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_max3_num_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x2c,0xd6,0x7f,0xf8,0xa8,0xa1] v_max3_num_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x04,0x2c,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX12: v_max3_num_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x2c,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_max3_num_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x0e,0x2c,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_max3_num_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x2c,0xd6,0xc1,0xfe,0xf4,0xc3] v_max3_num_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x2c,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_max3_num_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x2c,0xd6,0xf0,0xfa,0xc0,0x43] v_max3_num_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x22,0x2c,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_max3_num_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x2c,0xd6,0xfd,0xd4,0x04,0x23] v_max3_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX12: encoding: [0xff,0xc3,0x2c,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX12: v_max3_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x2c,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_max3_num_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x2a,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_max3_num_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x2a,0xd6,0x01,0x05,0x0e,0x00] v_max3_num_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x2a,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_max3_num_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x2a,0xd6,0xff,0x05,0xa4,0x01] v_max3_num_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x2a,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_max3_num_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x2a,0xd6,0x01,0xfe,0xff,0x01] v_max3_num_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x2a,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_max3_num_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x2a,0xd6,0x69,0xd2,0xf8,0x01] v_max3_num_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x2a,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_max3_num_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x2a,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_num_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x2a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_max3_num_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x2a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_max3_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x2a,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_max3_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x2a,0xd6,0x7b,0xfa,0xed,0xe1] v_max3_num_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x2a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_max3_num_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x2a,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_num_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x2a,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_max3_num_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x2a,0xd6,0x7e,0x82,0xad,0x01] v_max3_num_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x2a,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_max3_num_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x2a,0xd6,0x7f,0xf8,0xa8,0xa1] v_max3_num_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x2a,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_max3_num_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x2a,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_max3_num_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x2a,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_max3_num_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x2a,0xd6,0xc1,0xfe,0xf4,0xc3] v_max3_num_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x2a,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_max3_num_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x2a,0xd6,0xf0,0xfa,0xc0,0x4b] v_max3_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x2a,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_max3_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x2a,0xd6,0xfd,0xd4,0x04,0x33] v_max3_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x2a,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_max3_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x2a,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_max3_i16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_max3_i16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4d,0xd6,0x01,0x05,0x0e,0x00] v_max3_i16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_max3_i16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4d,0xd6,0xff,0x05,0xa4,0x01] v_max3_i16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_max3_i16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4d,0xd6,0x01,0xfe,0xff,0x01] v_max3_i16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_max3_i16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4d,0xd6,0x69,0xd2,0xf8,0x01] v_max3_i16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_max3_i16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4d,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_i16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_max3_i16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4d,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_max3_i16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_max3_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x4d,0xd6,0x7b,0xfa,0xed,0x01] v_max3_i16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_max3_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4d,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_i16 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_max3_i16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x4d,0xd6,0x7e,0x82,0xad,0x01] v_max3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x78,0x4d,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_max3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x4d,0xd6,0x7f,0xf8,0xa8,0x01] v_max3_i16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x4d,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_max3_i16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x4d,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_max3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x4d,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_max3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x4d,0xd6,0xc1,0xfe,0xf4,0x03] v_max3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x4d,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_max3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4d,0xd6,0xf0,0xfa,0xc0,0x03] v_max3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x20,0x4d,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_max3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x4d,0xd6,0xfd,0xd4,0x04,0x03] v_max3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX12: encoding: [0xff,0x40,0x4d,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_max3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x4d,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_max3_i32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_max3_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1d,0xd6,0x01,0x05,0x0e,0x00] v_max3_i32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_max3_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1d,0xd6,0xff,0x05,0xa4,0x01] v_max3_i32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_max3_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1d,0xd6,0x01,0xfe,0xff,0x01] v_max3_i32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_max3_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1d,0xd6,0x69,0xd2,0xf8,0x01] v_max3_i32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_max3_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1d,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_max3_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_max3_i32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_max3_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x1d,0xd6,0x7b,0xfa,0xed,0x01] v_max3_i32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_max3_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1d,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_i32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_max3_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x1d,0xd6,0x7e,0x82,0xad,0x01] v_max3_i32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_max3_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x1d,0xd6,0x7f,0xf8,0xa8,0x01] v_max3_i32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_max3_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x1d,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_max3_i32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_max3_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x1d,0xd6,0xc1,0xfe,0xf4,0x03] v_max3_i32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_max3_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x1d,0xd6,0xf0,0xfa,0xc0,0x03] v_max3_i32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1d,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_max3_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x1d,0xd6,0xfd,0xd4,0x04,0x03] v_max3_i32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x1d,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_max3_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x1d,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_max3_u16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_max3_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4e,0xd6,0x01,0x05,0x0e,0x00] v_max3_u16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_max3_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4e,0xd6,0xff,0x05,0xa4,0x01] v_max3_u16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_max3_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4e,0xd6,0x01,0xfe,0xff,0x01] v_max3_u16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_max3_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4e,0xd6,0x69,0xd2,0xf8,0x01] v_max3_u16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_max3_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4e,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_max3_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4e,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_max3_u16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_max3_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x4e,0xd6,0x7b,0xfa,0xed,0x01] v_max3_u16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_max3_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4e,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_u16 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_max3_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x4e,0xd6,0x7e,0x82,0xad,0x01] v_max3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x78,0x4e,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_max3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x4e,0xd6,0x7f,0xf8,0xa8,0x01] v_max3_u16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x4e,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_max3_u16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x4e,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_max3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x4e,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_max3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x4e,0xd6,0xc1,0xfe,0xf4,0x03] v_max3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x4e,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_max3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4e,0xd6,0xf0,0xfa,0xc0,0x03] v_max3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x20,0x4e,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_max3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x4e,0xd6,0xfd,0xd4,0x04,0x03] v_max3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX12: encoding: [0xff,0x40,0x4e,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_max3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x4e,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_max3_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_max3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1e,0xd6,0x01,0x05,0x0e,0x00] v_max3_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_max3_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1e,0xd6,0xff,0x05,0xa4,0x01] v_max3_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_max3_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1e,0xd6,0x01,0xfe,0xff,0x01] v_max3_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_max3_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1e,0xd6,0x69,0xd2,0xf8,0x01] v_max3_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_max3_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1e,0xd6,0x6a,0xf6,0x0c,0x04] v_max3_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_max3_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_max3_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_max3_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x1e,0xd6,0x7b,0xfa,0xed,0x01] v_max3_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_max3_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1e,0xd6,0x7d,0xe0,0xf5,0x01] v_max3_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_max3_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x1e,0xd6,0x7e,0x82,0xad,0x01] v_max3_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_max3_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x1e,0xd6,0x7f,0xf8,0xa8,0x01] v_max3_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_max3_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x1e,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_max3_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_max3_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x1e,0xd6,0xc1,0xfe,0xf4,0x03] v_max3_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_max3_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x1e,0xd6,0xf0,0xfa,0xc0,0x03] v_max3_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1e,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_max3_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x1e,0xd6,0xfd,0xd4,0x04,0x03] v_max3_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x1e,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_max3_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x1e,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_max_i16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_max_i16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x0a,0xd7,0x01,0x05,0x02,0x00] v_max_i16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_max_i16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x0a,0xd7,0xff,0xff,0x03,0x00] v_max_i16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x0a,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_max_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0a,0xd7,0x01,0x05,0x02,0x00] v_max_i16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_max_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0a,0xd7,0x01,0x04,0x00,0x00] v_max_i16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x0a,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_max_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0a,0xd7,0xff,0xff,0x03,0x00] v_max_i16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_max_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0a,0xd7,0x69,0xd2,0x00,0x00] v_max_i16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_max_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0a,0xd7,0x6a,0xf6,0x00,0x00] v_max_i16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_max_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0a,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_max_i16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_max_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0a,0xd7,0x7b,0xfa,0x01,0x00] v_max_i16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_max_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0a,0xd7,0x7d,0xe0,0x01,0x00] v_max_i16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_max_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0a,0xd7,0x7e,0x82,0x01,0x00] v_max_i16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_max_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0a,0xd7,0x7f,0xf8,0x00,0x00] v_max_i16 v5.l, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_max_i16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x0a,0xd7,0x7c,0xfc,0x00,0x00] v_max_i16 v5.l, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_max_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0a,0xd7,0xc1,0xfe,0x00,0x00] v_max_i16 v5.l, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_max_i16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x0a,0xd7,0xf0,0xfa,0x00,0x00] v_max_i16 v5.l, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x0a,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_max_i16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0a,0xd7,0xfd,0xd4,0x00,0x00] v_max_i16 v255.l, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x0a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_max_i16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x0a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_max_i16 v255.h, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x40,0x0a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_max_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x0a,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_max_u16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_max_u16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x09,0xd7,0x01,0x05,0x02,0x00] v_max_u16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x09,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_max_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x09,0xd7,0x01,0x05,0x02,0x00] v_max_u16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_max_u16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x09,0xd7,0xff,0xff,0x03,0x00] v_max_u16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x09,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_max_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x09,0xd7,0xff,0xff,0x03,0x00] v_max_u16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_max_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x09,0xd7,0x01,0x04,0x00,0x00] v_max_u16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_max_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x09,0xd7,0x69,0xd2,0x00,0x00] v_max_u16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_max_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x09,0xd7,0x6a,0xf6,0x00,0x00] v_max_u16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_max_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x09,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_max_u16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_max_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x09,0xd7,0x7b,0xfa,0x01,0x00] v_max_u16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_max_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x09,0xd7,0x7d,0xe0,0x01,0x00] v_max_u16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_max_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x09,0xd7,0x7e,0x82,0x01,0x00] v_max_u16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_max_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x09,0xd7,0x7f,0xf8,0x00,0x00] v_max_u16 v5.l, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_max_u16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x09,0xd7,0x7c,0xfc,0x00,0x00] v_max_u16 v5.l, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_max_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x09,0xd7,0xc1,0xfe,0x00,0x00] v_max_u16 v5.l, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_max_u16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x09,0xd7,0xf0,0xfa,0x00,0x00] v_max_u16 v5.l, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x09,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_max_u16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x09,0xd7,0xfd,0xd4,0x00,0x00] v_max_u16 v255.l, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x09,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_max_u16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x09,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_max_u16 v255.h, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x40,0x09,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_max_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x09,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_maxmin_num_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x6b,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_maxmin_num_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x6b,0xd6,0x01,0x05,0x0e,0x00] v_maxmin_num_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x6b,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_maxmin_num_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x6b,0xd6,0xff,0x05,0xa4,0x01] v_maxmin_num_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x6b,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_maxmin_num_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x6b,0xd6,0x01,0xfe,0xff,0x01] v_maxmin_num_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x6b,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_maxmin_num_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x6b,0xd6,0x69,0xd2,0xf8,0x01] v_maxmin_num_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x6b,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_maxmin_num_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x6b,0xd6,0x6a,0xf6,0x0c,0x04] v_maxmin_num_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x6b,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_maxmin_num_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x6b,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_maxmin_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x6b,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_maxmin_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x6b,0xd6,0x7b,0xfa,0xed,0xe1] v_maxmin_num_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x6b,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_maxmin_num_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x6b,0xd6,0x7d,0xe0,0xf5,0x01] v_maxmin_num_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x6b,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_maxmin_num_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x6b,0xd6,0x7e,0x82,0xad,0x01] v_maxmin_num_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x6b,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_maxmin_num_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x6b,0xd6,0x7f,0xf8,0xa8,0xa1] v_maxmin_num_f16 v5, null, exec_lo, -|0xfe0b| -// GFX12: encoding: [0x05,0x04,0x6b,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX12: v_maxmin_num_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x6b,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_maxmin_num_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x6b,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_maxmin_num_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x6b,0xd6,0xc1,0xfe,0xf4,0xc3] v_maxmin_num_f16 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x6b,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_maxmin_num_f16 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x6b,0xd6,0xf0,0xfa,0xc0,0x4b] v_maxmin_num_f16 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x6b,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_maxmin_num_f16 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x6b,0xd6,0xfd,0xd4,0x04,0x33] v_maxmin_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x6b,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] +// GFX12: v_maxmin_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x6b,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] v_maxmin_num_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x69,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_maxmin_num_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x69,0xd6,0x01,0x05,0x0e,0x00] v_maxmin_num_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x69,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_maxmin_num_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x69,0xd6,0xff,0x05,0xa4,0x01] v_maxmin_num_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x69,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_maxmin_num_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x69,0xd6,0x01,0xfe,0xff,0x01] v_maxmin_num_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x69,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_maxmin_num_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x69,0xd6,0x69,0xd2,0xf8,0x01] v_maxmin_num_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x69,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_maxmin_num_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x69,0xd6,0x6a,0xf6,0x0c,0x04] v_maxmin_num_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x69,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_maxmin_num_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x69,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_maxmin_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x69,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_maxmin_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x69,0xd6,0x7b,0xfa,0xed,0xe1] v_maxmin_num_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x69,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_maxmin_num_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x69,0xd6,0x7d,0xe0,0xf5,0x01] v_maxmin_num_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x69,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_maxmin_num_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x69,0xd6,0x7e,0x82,0xad,0x01] v_maxmin_num_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x69,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_maxmin_num_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x69,0xd6,0x7f,0xf8,0xa8,0xa1] v_maxmin_num_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x69,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_maxmin_num_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x69,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_maxmin_num_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x69,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_maxmin_num_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x69,0xd6,0xc1,0xfe,0xf4,0xc3] v_maxmin_num_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x69,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_maxmin_num_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x69,0xd6,0xf0,0xfa,0xc0,0x4b] v_maxmin_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x69,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_maxmin_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x69,0xd6,0xfd,0xd4,0x04,0x33] v_maxmin_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x69,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_maxmin_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x69,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_maxmin_i32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_maxmin_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x64,0xd6,0x01,0x05,0x0e,0x00] v_maxmin_i32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_maxmin_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x64,0xd6,0xff,0x05,0xa4,0x01] v_maxmin_i32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_maxmin_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x64,0xd6,0x01,0xfe,0xff,0x01] v_maxmin_i32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_maxmin_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x64,0xd6,0x69,0xd2,0xf8,0x01] v_maxmin_i32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_maxmin_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x64,0xd6,0x6a,0xf6,0x0c,0x04] v_maxmin_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_maxmin_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x64,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_maxmin_i32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_maxmin_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x64,0xd6,0x7b,0xfa,0xed,0x01] v_maxmin_i32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_maxmin_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x64,0xd6,0x7d,0xe0,0xf5,0x01] v_maxmin_i32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_maxmin_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x64,0xd6,0x7e,0x82,0xad,0x01] v_maxmin_i32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_maxmin_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x64,0xd6,0x7f,0xf8,0xa8,0x01] v_maxmin_i32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_maxmin_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x64,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_maxmin_i32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_maxmin_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x64,0xd6,0xc1,0xfe,0xf4,0x03] v_maxmin_i32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_maxmin_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x64,0xd6,0xf0,0xfa,0xc0,0x03] v_maxmin_i32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x64,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_maxmin_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x64,0xd6,0xfd,0xd4,0x04,0x03] v_maxmin_i32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x64,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_maxmin_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x64,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_maxmin_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_maxmin_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x62,0xd6,0x01,0x05,0x0e,0x00] v_maxmin_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_maxmin_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x62,0xd6,0xff,0x05,0xa4,0x01] v_maxmin_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_maxmin_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x62,0xd6,0x01,0xfe,0xff,0x01] v_maxmin_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_maxmin_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x62,0xd6,0x69,0xd2,0xf8,0x01] v_maxmin_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_maxmin_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x62,0xd6,0x6a,0xf6,0x0c,0x04] v_maxmin_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_maxmin_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x62,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_maxmin_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_maxmin_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x62,0xd6,0x7b,0xfa,0xed,0x01] v_maxmin_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_maxmin_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x62,0xd6,0x7d,0xe0,0xf5,0x01] v_maxmin_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_maxmin_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x62,0xd6,0x7e,0x82,0xad,0x01] v_maxmin_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_maxmin_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x62,0xd6,0x7f,0xf8,0xa8,0x01] v_maxmin_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_maxmin_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x62,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_maxmin_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_maxmin_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x62,0xd6,0xc1,0xfe,0xf4,0x03] v_maxmin_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_maxmin_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x62,0xd6,0xf0,0xfa,0xc0,0x03] v_maxmin_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x62,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_maxmin_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x62,0xd6,0xfd,0xd4,0x04,0x03] v_maxmin_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x62,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_maxmin_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x62,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mbcnt_hi_u32_b32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x20,0xd7,0x01,0x05,0x02,0x00] v_mbcnt_hi_u32_b32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, v255, v255 ; encoding: [0x05,0x00,0x20,0xd7,0xff,0xff,0x03,0x00] v_mbcnt_hi_u32_b32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x20,0xd7,0x01,0x04,0x00,0x00] v_mbcnt_hi_u32_b32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, s105, s105 ; encoding: [0x05,0x00,0x20,0xd7,0x69,0xd2,0x00,0x00] v_mbcnt_hi_u32_b32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x20,0xd7,0x6a,0xf6,0x00,0x00] v_mbcnt_hi_u32_b32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mbcnt_hi_u32_b32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x20,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mbcnt_hi_u32_b32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x20,0xd7,0x7b,0xfa,0x01,0x00] v_mbcnt_hi_u32_b32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x20,0xd7,0x7d,0xe0,0x01,0x00] v_mbcnt_hi_u32_b32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x20,0xd7,0x7e,0x82,0x01,0x00] v_mbcnt_hi_u32_b32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, exec_hi, null ; encoding: [0x05,0x00,0x20,0xd7,0x7f,0xf8,0x00,0x00] v_mbcnt_hi_u32_b32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, null, exec_lo ; encoding: [0x05,0x00,0x20,0xd7,0x7c,0xfc,0x00,0x00] v_mbcnt_hi_u32_b32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x20,0xd7,0xc1,0xfe,0x00,0x00] v_mbcnt_hi_u32_b32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x20,0xd7,0xf0,0xfa,0x00,0x00] v_mbcnt_hi_u32_b32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x20,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_mbcnt_hi_u32_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x20,0xd7,0xfd,0xd4,0x00,0x00] v_mbcnt_hi_u32_b32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x20,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mbcnt_hi_u32_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x20,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mbcnt_lo_u32_b32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x1f,0xd7,0x01,0x05,0x02,0x00] v_mbcnt_lo_u32_b32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, v255, v255 ; encoding: [0x05,0x00,0x1f,0xd7,0xff,0xff,0x03,0x00] v_mbcnt_lo_u32_b32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x1f,0xd7,0x01,0x04,0x00,0x00] v_mbcnt_lo_u32_b32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, s105, s105 ; encoding: [0x05,0x00,0x1f,0xd7,0x69,0xd2,0x00,0x00] v_mbcnt_lo_u32_b32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1f,0xd7,0x6a,0xf6,0x00,0x00] v_mbcnt_lo_u32_b32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mbcnt_lo_u32_b32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1f,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mbcnt_lo_u32_b32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1f,0xd7,0x7b,0xfa,0x01,0x00] v_mbcnt_lo_u32_b32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1f,0xd7,0x7d,0xe0,0x01,0x00] v_mbcnt_lo_u32_b32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1f,0xd7,0x7e,0x82,0x01,0x00] v_mbcnt_lo_u32_b32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, exec_hi, null ; encoding: [0x05,0x00,0x1f,0xd7,0x7f,0xf8,0x00,0x00] v_mbcnt_lo_u32_b32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, null, exec_lo ; encoding: [0x05,0x00,0x1f,0xd7,0x7c,0xfc,0x00,0x00] v_mbcnt_lo_u32_b32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1f,0xd7,0xc1,0xfe,0x00,0x00] v_mbcnt_lo_u32_b32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1f,0xd7,0xf0,0xfa,0x00,0x00] v_mbcnt_lo_u32_b32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1f,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_mbcnt_lo_u32_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1f,0xd7,0xfd,0xd4,0x00,0x00] v_mbcnt_lo_u32_b32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x1f,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mbcnt_lo_u32_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1f,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_med3_num_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x32,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_med3_num_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x32,0xd6,0x01,0x05,0x0e,0x00] v_med3_num_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x32,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_med3_num_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x32,0xd6,0xff,0x05,0xa4,0x01] v_med3_num_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x32,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_med3_num_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x32,0xd6,0x01,0xfe,0xff,0x01] v_med3_num_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x32,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_med3_num_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x32,0xd6,0x69,0xd2,0xf8,0x01] v_med3_num_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x32,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_med3_num_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x32,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_num_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x32,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_med3_num_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x32,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_med3_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x32,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_med3_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x32,0xd6,0x7b,0xfa,0xed,0xe1] v_med3_num_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x32,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_med3_num_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x32,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_num_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x32,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_med3_num_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x32,0xd6,0x7e,0x82,0xad,0x01] v_med3_num_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x7d,0x32,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_med3_num_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x32,0xd6,0x7f,0xf8,0xa8,0xa1] v_med3_num_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x04,0x32,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX12: v_med3_num_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x32,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_med3_num_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x0e,0x32,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_med3_num_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x32,0xd6,0xc1,0xfe,0xf4,0xc3] v_med3_num_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x32,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_med3_num_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x32,0xd6,0xf0,0xfa,0xc0,0x43] v_med3_num_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x22,0x32,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_med3_num_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x32,0xd6,0xfd,0xd4,0x04,0x23] v_med3_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX12: encoding: [0xff,0xc3,0x32,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX12: v_med3_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x32,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_med3_num_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x31,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_med3_num_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x31,0xd6,0x01,0x05,0x0e,0x00] v_med3_num_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x31,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_med3_num_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x31,0xd6,0xff,0x05,0xa4,0x01] v_med3_num_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x31,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_med3_num_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x31,0xd6,0x01,0xfe,0xff,0x01] v_med3_num_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x31,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_med3_num_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x31,0xd6,0x69,0xd2,0xf8,0x01] v_med3_num_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x31,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_med3_num_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x31,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_num_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x31,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_med3_num_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x31,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_med3_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x31,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_med3_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x31,0xd6,0x7b,0xfa,0xed,0xe1] v_med3_num_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x31,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_med3_num_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x31,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_num_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x31,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_med3_num_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x31,0xd6,0x7e,0x82,0xad,0x01] v_med3_num_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x31,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_med3_num_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x31,0xd6,0x7f,0xf8,0xa8,0xa1] v_med3_num_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x31,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_med3_num_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x31,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_med3_num_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x31,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_med3_num_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x31,0xd6,0xc1,0xfe,0xf4,0xc3] v_med3_num_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x31,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_med3_num_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x31,0xd6,0xf0,0xfa,0xc0,0x4b] v_med3_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x31,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_med3_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x31,0xd6,0xfd,0xd4,0x04,0x33] v_med3_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x31,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_med3_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x31,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_med3_i16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_med3_i16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x50,0xd6,0x01,0x05,0x0e,0x00] v_med3_i16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_med3_i16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x50,0xd6,0xff,0x05,0xa4,0x01] v_med3_i16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_med3_i16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x50,0xd6,0x01,0xfe,0xff,0x01] v_med3_i16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_med3_i16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x50,0xd6,0x69,0xd2,0xf8,0x01] v_med3_i16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_med3_i16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x50,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_i16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_med3_i16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x50,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_med3_i16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_med3_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x50,0xd6,0x7b,0xfa,0xed,0x01] v_med3_i16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_med3_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x50,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_i16 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_med3_i16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x50,0xd6,0x7e,0x82,0xad,0x01] v_med3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x78,0x50,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_med3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x50,0xd6,0x7f,0xf8,0xa8,0x01] v_med3_i16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x50,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_med3_i16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x50,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_med3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x50,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_med3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x50,0xd6,0xc1,0xfe,0xf4,0x03] v_med3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x50,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_med3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x50,0xd6,0xf0,0xfa,0xc0,0x03] v_med3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x20,0x50,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_med3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x50,0xd6,0xfd,0xd4,0x04,0x03] v_med3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX12: encoding: [0xff,0x40,0x50,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_med3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x50,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_med3_i32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_med3_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x20,0xd6,0x01,0x05,0x0e,0x00] v_med3_i32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_med3_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x20,0xd6,0xff,0x05,0xa4,0x01] v_med3_i32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_med3_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x20,0xd6,0x01,0xfe,0xff,0x01] v_med3_i32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_med3_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x20,0xd6,0x69,0xd2,0xf8,0x01] v_med3_i32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_med3_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x20,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_med3_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x20,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_med3_i32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_med3_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x20,0xd6,0x7b,0xfa,0xed,0x01] v_med3_i32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_med3_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x20,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_i32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_med3_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x20,0xd6,0x7e,0x82,0xad,0x01] v_med3_i32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_med3_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x20,0xd6,0x7f,0xf8,0xa8,0x01] v_med3_i32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_med3_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x20,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_med3_i32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_med3_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x20,0xd6,0xc1,0xfe,0xf4,0x03] v_med3_i32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_med3_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x20,0xd6,0xf0,0xfa,0xc0,0x03] v_med3_i32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x20,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_med3_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x20,0xd6,0xfd,0xd4,0x04,0x03] v_med3_i32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x20,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_med3_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x20,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_med3_u16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_med3_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x51,0xd6,0x01,0x05,0x0e,0x00] v_med3_u16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_med3_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x51,0xd6,0xff,0x05,0xa4,0x01] v_med3_u16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_med3_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x51,0xd6,0x01,0xfe,0xff,0x01] v_med3_u16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_med3_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x51,0xd6,0x69,0xd2,0xf8,0x01] v_med3_u16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_med3_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x51,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_med3_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x51,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_med3_u16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_med3_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x51,0xd6,0x7b,0xfa,0xed,0x01] v_med3_u16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_med3_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x51,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_u16 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_med3_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x51,0xd6,0x7e,0x82,0xad,0x01] v_med3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x78,0x51,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_med3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x51,0xd6,0x7f,0xf8,0xa8,0x01] v_med3_u16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x51,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_med3_u16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x51,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_med3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x51,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_med3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x51,0xd6,0xc1,0xfe,0xf4,0x03] v_med3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x51,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_med3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x51,0xd6,0xf0,0xfa,0xc0,0x03] v_med3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x20,0x51,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_med3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x51,0xd6,0xfd,0xd4,0x04,0x03] v_med3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX12: encoding: [0xff,0x40,0x51,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_med3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x51,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_med3_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_med3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x21,0xd6,0x01,0x05,0x0e,0x00] v_med3_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_med3_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x21,0xd6,0xff,0x05,0xa4,0x01] v_med3_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_med3_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x21,0xd6,0x01,0xfe,0xff,0x01] v_med3_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_med3_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x21,0xd6,0x69,0xd2,0xf8,0x01] v_med3_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_med3_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x21,0xd6,0x6a,0xf6,0x0c,0x04] v_med3_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_med3_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x21,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_med3_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_med3_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x21,0xd6,0x7b,0xfa,0xed,0x01] v_med3_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_med3_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x21,0xd6,0x7d,0xe0,0xf5,0x01] v_med3_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_med3_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x21,0xd6,0x7e,0x82,0xad,0x01] v_med3_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_med3_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x21,0xd6,0x7f,0xf8,0xa8,0x01] v_med3_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_med3_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x21,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_med3_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_med3_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x21,0xd6,0xc1,0xfe,0xf4,0x03] v_med3_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_med3_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x21,0xd6,0xf0,0xfa,0xc0,0x03] v_med3_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x21,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_med3_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x21,0xd6,0xfd,0xd4,0x04,0x03] v_med3_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x21,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_med3_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x21,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_min3_num_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x2b,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_min3_num_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x2b,0xd6,0x01,0x05,0x0e,0x00] v_min3_num_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x2b,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_min3_num_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x2b,0xd6,0xff,0x05,0xa4,0x01] v_min3_num_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x2b,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_min3_num_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x2b,0xd6,0x01,0xfe,0xff,0x01] v_min3_num_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x2b,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_min3_num_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x2b,0xd6,0x69,0xd2,0xf8,0x01] v_min3_num_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x2b,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_min3_num_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x2b,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_num_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x2b,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_min3_num_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x2b,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_min3_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x2b,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_min3_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x2b,0xd6,0x7b,0xfa,0xed,0xe1] v_min3_num_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x2b,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_min3_num_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x2b,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_num_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x2b,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_min3_num_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x2b,0xd6,0x7e,0x82,0xad,0x01] v_min3_num_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x7d,0x2b,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_min3_num_f16 v5, -|exec_hi|, null, -|vcc_lo| op_sel:[1,1,1,1] ; encoding: [0x05,0x7d,0x2b,0xd6,0x7f,0xf8,0xa8,0xa1] v_min3_num_f16 v5, null, exec_lo, -|0xfe0b| op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x04,0x2b,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX12: v_min3_num_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x2b,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_min3_num_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x0e,0x2b,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_min3_num_f16 v5, -1, -|exec_hi|, -|src_scc| op_sel:[1,0,0,0] ; encoding: [0x05,0x0e,0x2b,0xd6,0xc1,0xfe,0xf4,0xc3] v_min3_num_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x2b,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_min3_num_f16 v5, 0.5, -m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x2b,0xd6,0xf0,0xfa,0xc0,0x43] v_min3_num_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x22,0x2b,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_min3_num_f16 v5, -src_scc, |vcc_lo|, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x22,0x2b,0xd6,0xfd,0xd4,0x04,0x23] v_min3_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp -// GFX12: encoding: [0xff,0xc3,0x2b,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] +// GFX12: v_min3_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null op_sel:[0,0,0,1] clamp ; encoding: [0xff,0xc3,0x2b,0xd6,0xff,0xd6,0xf0,0x61,0x0b,0xfe,0x00,0x00] v_min3_num_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x29,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_min3_num_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x29,0xd6,0x01,0x05,0x0e,0x00] v_min3_num_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x29,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_min3_num_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x29,0xd6,0xff,0x05,0xa4,0x01] v_min3_num_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x29,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_min3_num_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x29,0xd6,0x01,0xfe,0xff,0x01] v_min3_num_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x29,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_min3_num_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x29,0xd6,0x69,0xd2,0xf8,0x01] v_min3_num_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x29,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_min3_num_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x29,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_num_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x29,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_min3_num_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x29,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_min3_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x29,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_min3_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x29,0xd6,0x7b,0xfa,0xed,0xe1] v_min3_num_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x29,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_min3_num_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x29,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_num_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x29,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_min3_num_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x29,0xd6,0x7e,0x82,0xad,0x01] v_min3_num_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x29,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_min3_num_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x29,0xd6,0x7f,0xf8,0xa8,0xa1] v_min3_num_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x29,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_min3_num_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x29,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_min3_num_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x29,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_min3_num_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x29,0xd6,0xc1,0xfe,0xf4,0xc3] v_min3_num_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x29,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_min3_num_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x29,0xd6,0xf0,0xfa,0xc0,0x4b] v_min3_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x29,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_min3_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x29,0xd6,0xfd,0xd4,0x04,0x33] v_min3_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x29,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_min3_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x29,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_min3_i16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_min3_i16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4a,0xd6,0x01,0x05,0x0e,0x00] v_min3_i16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_min3_i16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4a,0xd6,0xff,0x05,0xa4,0x01] v_min3_i16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_min3_i16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4a,0xd6,0x01,0xfe,0xff,0x01] v_min3_i16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_min3_i16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4a,0xd6,0x69,0xd2,0xf8,0x01] v_min3_i16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_min3_i16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4a,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_i16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_min3_i16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4a,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_min3_i16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_min3_i16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x4a,0xd6,0x7b,0xfa,0xed,0x01] v_min3_i16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_min3_i16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4a,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_i16 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_min3_i16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x4a,0xd6,0x7e,0x82,0xad,0x01] v_min3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x78,0x4a,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_min3_i16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x4a,0xd6,0x7f,0xf8,0xa8,0x01] v_min3_i16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x4a,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_min3_i16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x4a,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_min3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x4a,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_min3_i16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x4a,0xd6,0xc1,0xfe,0xf4,0x03] v_min3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x4a,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_min3_i16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4a,0xd6,0xf0,0xfa,0xc0,0x03] v_min3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x20,0x4a,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_min3_i16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x4a,0xd6,0xfd,0xd4,0x04,0x03] v_min3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX12: encoding: [0xff,0x40,0x4a,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_min3_i16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x4a,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_min3_i32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_min3_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1a,0xd6,0x01,0x05,0x0e,0x00] v_min3_i32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_min3_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1a,0xd6,0xff,0x05,0xa4,0x01] v_min3_i32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_min3_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1a,0xd6,0x01,0xfe,0xff,0x01] v_min3_i32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_min3_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1a,0xd6,0x69,0xd2,0xf8,0x01] v_min3_i32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_min3_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1a,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_min3_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1a,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_min3_i32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_min3_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x1a,0xd6,0x7b,0xfa,0xed,0x01] v_min3_i32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_min3_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1a,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_i32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_min3_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x1a,0xd6,0x7e,0x82,0xad,0x01] v_min3_i32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_min3_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x1a,0xd6,0x7f,0xf8,0xa8,0x01] v_min3_i32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_min3_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x1a,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_min3_i32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_min3_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x1a,0xd6,0xc1,0xfe,0xf4,0x03] v_min3_i32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_min3_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x1a,0xd6,0xf0,0xfa,0xc0,0x03] v_min3_i32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1a,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_min3_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x1a,0xd6,0xfd,0xd4,0x04,0x03] v_min3_i32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x1a,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_min3_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x1a,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_min3_u16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_min3_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x4b,0xd6,0x01,0x05,0x0e,0x00] v_min3_u16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_min3_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x4b,0xd6,0xff,0x05,0xa4,0x01] v_min3_u16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_min3_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x4b,0xd6,0x01,0xfe,0xff,0x01] v_min3_u16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_min3_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x4b,0xd6,0x69,0xd2,0xf8,0x01] v_min3_u16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_min3_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x4b,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_min3_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x4b,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_min3_u16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_min3_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x4b,0xd6,0x7b,0xfa,0xed,0x01] v_min3_u16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_min3_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x4b,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_u16 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_min3_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x4b,0xd6,0x7e,0x82,0xad,0x01] v_min3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] -// GFX12: encoding: [0x05,0x78,0x4b,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_min3_u16 v5, exec_hi, null, vcc_lo op_sel:[1,1,1,1] ; encoding: [0x05,0x78,0x4b,0xd6,0x7f,0xf8,0xa8,0x01] v_min3_u16 v5, null, exec_lo, 0xfe0b op_sel:[0,0,0,0] -// GFX12: encoding: [0x05,0x00,0x4b,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] +// GFX12: v_min3_u16 v5, null, exec_lo, 0xfe0b ; encoding: [0x05,0x00,0x4b,0xd6,0x7c,0xfc,0xfc,0x03,0x0b,0xfe,0x00,0x00] v_min3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] -// GFX12: encoding: [0x05,0x08,0x4b,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_min3_u16 v5, -1, exec_hi, src_scc op_sel:[1,0,0,0] ; encoding: [0x05,0x08,0x4b,0xd6,0xc1,0xfe,0xf4,0x03] v_min3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] -// GFX12: encoding: [0x05,0x10,0x4b,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_min3_u16 v5, 0.5, m0, 0.5 op_sel:[0,1,0,0] ; encoding: [0x05,0x10,0x4b,0xd6,0xf0,0xfa,0xc0,0x03] v_min3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] -// GFX12: encoding: [0x05,0x20,0x4b,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_min3_u16 v5, src_scc, vcc_lo, -1 op_sel:[0,0,1,0] ; encoding: [0x05,0x20,0x4b,0xd6,0xfd,0xd4,0x04,0x03] v_min3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] -// GFX12: encoding: [0xff,0x40,0x4b,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_min3_u16 v255, 0xfe0b, vcc_hi, null op_sel:[0,0,0,1] ; encoding: [0xff,0x40,0x4b,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_min3_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_min3_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x1b,0xd6,0x01,0x05,0x0e,0x00] v_min3_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_min3_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x1b,0xd6,0xff,0x05,0xa4,0x01] v_min3_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_min3_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x1b,0xd6,0x01,0xfe,0xff,0x01] v_min3_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_min3_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x1b,0xd6,0x69,0xd2,0xf8,0x01] v_min3_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_min3_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x1b,0xd6,0x6a,0xf6,0x0c,0x04] v_min3_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_min3_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x1b,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_min3_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_min3_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x1b,0xd6,0x7b,0xfa,0xed,0x01] v_min3_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_min3_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x1b,0xd6,0x7d,0xe0,0xf5,0x01] v_min3_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_min3_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x1b,0xd6,0x7e,0x82,0xad,0x01] v_min3_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_min3_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x1b,0xd6,0x7f,0xf8,0xa8,0x01] v_min3_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_min3_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x1b,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_min3_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_min3_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x1b,0xd6,0xc1,0xfe,0xf4,0x03] v_min3_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_min3_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x1b,0xd6,0xf0,0xfa,0xc0,0x03] v_min3_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1b,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_min3_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x1b,0xd6,0xfd,0xd4,0x04,0x03] v_min3_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x1b,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_min3_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x1b,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_min_i16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_min_i16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x0c,0xd7,0x01,0x05,0x02,0x00] v_min_i16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_min_i16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x0c,0xd7,0xff,0xff,0x03,0x00] v_min_i16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x0c,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_min_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0c,0xd7,0x01,0x05,0x02,0x00] v_min_i16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_min_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0c,0xd7,0x01,0x04,0x00,0x00] v_min_i16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x0c,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_min_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0c,0xd7,0xff,0xff,0x03,0x00] v_min_i16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_min_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0c,0xd7,0x69,0xd2,0x00,0x00] v_min_i16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_min_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0c,0xd7,0x6a,0xf6,0x00,0x00] v_min_i16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_min_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0c,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_min_i16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_min_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0c,0xd7,0x7b,0xfa,0x01,0x00] v_min_i16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_min_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0c,0xd7,0x7d,0xe0,0x01,0x00] v_min_i16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_min_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0c,0xd7,0x7e,0x82,0x01,0x00] v_min_i16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_min_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0c,0xd7,0x7f,0xf8,0x00,0x00] v_min_i16 v5.l, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_min_i16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x0c,0xd7,0x7c,0xfc,0x00,0x00] v_min_i16 v5.l, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_min_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0c,0xd7,0xc1,0xfe,0x00,0x00] v_min_i16 v5.l, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_min_i16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x0c,0xd7,0xf0,0xfa,0x00,0x00] v_min_i16 v5.l, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x0c,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_min_i16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0c,0xd7,0xfd,0xd4,0x00,0x00] v_min_i16 v255.l, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x0c,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_min_i16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x0c,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_min_i16 v255.h, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x40,0x0c,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_min_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x0c,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_min_u16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_min_u16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x0b,0xd7,0x01,0x05,0x02,0x00] v_min_u16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x0b,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_min_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0b,0xd7,0x01,0x05,0x02,0x00] v_min_u16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_min_u16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x0b,0xd7,0xff,0xff,0x03,0x00] v_min_u16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x0b,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_min_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0b,0xd7,0xff,0xff,0x03,0x00] v_min_u16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_min_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0b,0xd7,0x01,0x04,0x00,0x00] v_min_u16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_min_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0b,0xd7,0x69,0xd2,0x00,0x00] v_min_u16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_min_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0b,0xd7,0x6a,0xf6,0x00,0x00] v_min_u16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_min_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0b,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_min_u16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_min_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0b,0xd7,0x7b,0xfa,0x01,0x00] v_min_u16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_min_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0b,0xd7,0x7d,0xe0,0x01,0x00] v_min_u16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_min_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0b,0xd7,0x7e,0x82,0x01,0x00] v_min_u16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_min_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0b,0xd7,0x7f,0xf8,0x00,0x00] v_min_u16 v5.l, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_min_u16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x0b,0xd7,0x7c,0xfc,0x00,0x00] v_min_u16 v5.l, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_min_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0b,0xd7,0xc1,0xfe,0x00,0x00] v_min_u16 v5.l, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_min_u16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x0b,0xd7,0xf0,0xfa,0x00,0x00] v_min_u16 v5.l, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x0b,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_min_u16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0b,0xd7,0xfd,0xd4,0x00,0x00] v_min_u16 v255.l, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x0b,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_min_u16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x0b,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_min_u16 v255.h, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x40,0x0b,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_min_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x0b,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_minmax_num_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x6a,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_minmax_num_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x6a,0xd6,0x01,0x05,0x0e,0x00] v_minmax_num_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x6a,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_minmax_num_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x6a,0xd6,0xff,0x05,0xa4,0x01] v_minmax_num_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x6a,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_minmax_num_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x6a,0xd6,0x01,0xfe,0xff,0x01] v_minmax_num_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x6a,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_minmax_num_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x6a,0xd6,0x69,0xd2,0xf8,0x01] v_minmax_num_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x6a,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_minmax_num_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x6a,0xd6,0x6a,0xf6,0x0c,0x04] v_minmax_num_f16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x6a,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_minmax_num_f16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x6a,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_minmax_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x6a,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_minmax_num_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x6a,0xd6,0x7b,0xfa,0xed,0xe1] v_minmax_num_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x6a,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_minmax_num_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x6a,0xd6,0x7d,0xe0,0xf5,0x01] v_minmax_num_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x6a,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_minmax_num_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x6a,0xd6,0x7e,0x82,0xad,0x01] v_minmax_num_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x6a,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_minmax_num_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x6a,0xd6,0x7f,0xf8,0xa8,0xa1] v_minmax_num_f16 v5, null, exec_lo, -|0xfe0b| -// GFX12: encoding: [0x05,0x04,0x6a,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] +// GFX12: v_minmax_num_f16 v5, null, exec_lo, -|0xfe0b| ; encoding: [0x05,0x04,0x6a,0xd6,0x7c,0xfc,0xfc,0x83,0x0b,0xfe,0x00,0x00] v_minmax_num_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x6a,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_minmax_num_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x6a,0xd6,0xc1,0xfe,0xf4,0xc3] v_minmax_num_f16 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x6a,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_minmax_num_f16 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x6a,0xd6,0xf0,0xfa,0xc0,0x4b] v_minmax_num_f16 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x6a,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_minmax_num_f16 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x6a,0xd6,0xfd,0xd4,0x04,0x33] v_minmax_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x6a,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] +// GFX12: v_minmax_num_f16 v255, -|0xfe0b|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x6a,0xd6,0xff,0xd6,0xf0,0x79,0x0b,0xfe,0x00,0x00] v_minmax_num_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x68,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_minmax_num_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x68,0xd6,0x01,0x05,0x0e,0x00] v_minmax_num_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x68,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_minmax_num_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x68,0xd6,0xff,0x05,0xa4,0x01] v_minmax_num_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x68,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_minmax_num_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x68,0xd6,0x01,0xfe,0xff,0x01] v_minmax_num_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x68,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_minmax_num_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x68,0xd6,0x69,0xd2,0xf8,0x01] v_minmax_num_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x68,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_minmax_num_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x68,0xd6,0x6a,0xf6,0x0c,0x04] v_minmax_num_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x68,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_minmax_num_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x68,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_minmax_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x68,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_minmax_num_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x68,0xd6,0x7b,0xfa,0xed,0xe1] v_minmax_num_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x68,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_minmax_num_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x68,0xd6,0x7d,0xe0,0xf5,0x01] v_minmax_num_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x68,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_minmax_num_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x68,0xd6,0x7e,0x82,0xad,0x01] v_minmax_num_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x68,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_minmax_num_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x68,0xd6,0x7f,0xf8,0xa8,0xa1] v_minmax_num_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x68,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_minmax_num_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x68,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_minmax_num_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x68,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_minmax_num_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x68,0xd6,0xc1,0xfe,0xf4,0xc3] v_minmax_num_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x68,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_minmax_num_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x68,0xd6,0xf0,0xfa,0xc0,0x4b] v_minmax_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x68,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_minmax_num_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x68,0xd6,0xfd,0xd4,0x04,0x33] v_minmax_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x68,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_minmax_num_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x68,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_minmax_i32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_minmax_i32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x65,0xd6,0x01,0x05,0x0e,0x00] v_minmax_i32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_minmax_i32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x65,0xd6,0xff,0x05,0xa4,0x01] v_minmax_i32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_minmax_i32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x65,0xd6,0x01,0xfe,0xff,0x01] v_minmax_i32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_minmax_i32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x65,0xd6,0x69,0xd2,0xf8,0x01] v_minmax_i32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_minmax_i32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x65,0xd6,0x6a,0xf6,0x0c,0x04] v_minmax_i32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_minmax_i32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x65,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_minmax_i32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_minmax_i32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x65,0xd6,0x7b,0xfa,0xed,0x01] v_minmax_i32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_minmax_i32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x65,0xd6,0x7d,0xe0,0xf5,0x01] v_minmax_i32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_minmax_i32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x65,0xd6,0x7e,0x82,0xad,0x01] v_minmax_i32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_minmax_i32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x65,0xd6,0x7f,0xf8,0xa8,0x01] v_minmax_i32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_minmax_i32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x65,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_minmax_i32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_minmax_i32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x65,0xd6,0xc1,0xfe,0xf4,0x03] v_minmax_i32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_minmax_i32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x65,0xd6,0xf0,0xfa,0xc0,0x03] v_minmax_i32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x65,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_minmax_i32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x65,0xd6,0xfd,0xd4,0x04,0x03] v_minmax_i32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x65,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_minmax_i32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x65,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_minmax_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_minmax_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x63,0xd6,0x01,0x05,0x0e,0x00] v_minmax_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_minmax_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x63,0xd6,0xff,0x05,0xa4,0x01] v_minmax_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_minmax_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x63,0xd6,0x01,0xfe,0xff,0x01] v_minmax_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_minmax_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x63,0xd6,0x69,0xd2,0xf8,0x01] v_minmax_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_minmax_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x63,0xd6,0x6a,0xf6,0x0c,0x04] v_minmax_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_minmax_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x63,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_minmax_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_minmax_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x63,0xd6,0x7b,0xfa,0xed,0x01] v_minmax_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_minmax_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x63,0xd6,0x7d,0xe0,0xf5,0x01] v_minmax_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_minmax_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x63,0xd6,0x7e,0x82,0xad,0x01] v_minmax_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_minmax_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x63,0xd6,0x7f,0xf8,0xa8,0x01] v_minmax_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_minmax_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x63,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_minmax_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_minmax_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x63,0xd6,0xc1,0xfe,0xf4,0x03] v_minmax_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_minmax_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x63,0xd6,0xf0,0xfa,0xc0,0x03] v_minmax_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x63,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_minmax_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x63,0xd6,0xfd,0xd4,0x04,0x03] v_minmax_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x63,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_minmax_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x63,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mqsad_pk_u16_u8 v[5:6], v[1:2], v2, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x01,0x05,0xea,0x01] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], v[1:2], v2, ttmp[14:15] ; encoding: [0x05,0x00,0x3b,0xd6,0x01,0x05,0xea,0x01] v_mqsad_pk_u16_u8 v[5:6], v[1:2], v255, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x01,0xff,0xeb,0x01] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], v[1:2], v255, ttmp[14:15] ; encoding: [0x05,0x00,0x3b,0xd6,0x01,0xff,0xeb,0x01] v_mqsad_pk_u16_u8 v[5:6], v[1:2], s2, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x01,0x05,0xe8,0x01] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], v[1:2], s2, ttmp[14:15] ; encoding: [0x05,0x00,0x3b,0xd6,0x01,0x05,0xe8,0x01] v_mqsad_pk_u16_u8 v[5:6], v[1:2], s105, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x01,0xd3,0xe8,0x01] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], v[1:2], s105, ttmp[14:15] ; encoding: [0x05,0x00,0x3b,0xd6,0x01,0xd3,0xe8,0x01] v_mqsad_pk_u16_u8 v[5:6], v[254:255], ttmp15, s[6:7] -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0xfe,0xf7,0x18,0x00] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], v[254:255], ttmp15, s[6:7] ; encoding: [0x05,0x00,0x3b,0xd6,0xfe,0xf7,0x18,0x00] v_mqsad_pk_u16_u8 v[5:6], s[2:3], vcc_hi, v[3:4] -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x02,0xd6,0x0c,0x04] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], s[2:3], vcc_hi, v[3:4] ; encoding: [0x05,0x00,0x3b,0xd6,0x02,0xd6,0x0c,0x04] v_mqsad_pk_u16_u8 v[5:6], s[104:105], vcc_lo, s[104:105] -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x68,0xd4,0xa0,0x01] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], s[104:105], vcc_lo, s[104:105] ; encoding: [0x05,0x00,0x3b,0xd6,0x68,0xd4,0xa0,0x01] v_mqsad_pk_u16_u8 v[5:6], vcc, m0, v[254:255] -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x6a,0xfa,0xf8,0x07] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], vcc, m0, v[254:255] ; encoding: [0x05,0x00,0x3b,0xd6,0x6a,0xfa,0xf8,0x07] v_mqsad_pk_u16_u8 v[5:6], ttmp[14:15], exec_hi, null -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x7a,0xfe,0xf0,0x01] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], ttmp[14:15], exec_hi, null ; encoding: [0x05,0x00,0x3b,0xd6,0x7a,0xfe,0xf0,0x01] v_mqsad_pk_u16_u8 v[5:6], exec, exec_lo, exec -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x7e,0xfc,0xf8,0x01] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], exec, exec_lo, exec ; encoding: [0x05,0x00,0x3b,0xd6,0x7e,0xfc,0xf8,0x01] v_mqsad_pk_u16_u8 v[5:6], null, null, vcc -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0x7c,0xf8,0xa8,0x01] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], null, null, vcc ; encoding: [0x05,0x00,0x3b,0xd6,0x7c,0xf8,0xa8,0x01] v_mqsad_pk_u16_u8 v[5:6], -1, -1, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], -1, -1, 0xaf123456 ; encoding: [0x05,0x00,0x3b,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] v_mqsad_pk_u16_u8 v[5:6], 0.5, 0.5, src_scc -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0xf0,0xe0,0xf5,0x03] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], 0.5, 0.5, src_scc ; encoding: [0x05,0x00,0x3b,0xd6,0xf0,0xe0,0xf5,0x03] v_mqsad_pk_u16_u8 v[5:6], src_scc, src_scc, 0.5 -// GFX12: encoding: [0x05,0x00,0x3b,0xd6,0xfd,0xfa,0xc1,0x03] +// GFX12: v_mqsad_pk_u16_u8 v[5:6], src_scc, src_scc, 0.5 ; encoding: [0x05,0x00,0x3b,0xd6,0xfd,0xfa,0xc1,0x03] v_mqsad_pk_u16_u8 v[254:255], 0xaf123456, 0xaf123456, -1 clamp -// GFX12: encoding: [0xfe,0x80,0x3b,0xd6,0xff,0xfe,0x05,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_mqsad_pk_u16_u8 v[254:255], 0xaf123456, 0xaf123456, -1 clamp ; encoding: [0xfe,0x80,0x3b,0xd6,0xff,0xfe,0x05,0x03,0x56,0x34,0x12,0xaf] v_mqsad_u32_u8 v[5:8], v[1:2], v2, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x01,0x05,0xf2,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], v[1:2], v2, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x01,0x05,0xf2,0x07] v_mqsad_u32_u8 v[5:8], v[1:2], v255, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x01,0xff,0xf3,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], v[1:2], v255, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x01,0xff,0xf3,0x07] v_mqsad_u32_u8 v[5:8], v[1:2], s2, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x01,0x05,0xf0,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], v[1:2], s2, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x01,0x05,0xf0,0x07] v_mqsad_u32_u8 v[5:8], v[1:2], s105, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x01,0xd3,0xf0,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], v[1:2], s105, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x01,0xd3,0xf0,0x07] v_mqsad_u32_u8 v[5:8], v[254:255], ttmp15, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0xfe,0xf7,0xf0,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], v[254:255], ttmp15, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0xfe,0xf7,0xf0,0x07] v_mqsad_u32_u8 v[5:8], s[2:3], vcc_hi, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x02,0xd6,0xf0,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], s[2:3], vcc_hi, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x02,0xd6,0xf0,0x07] v_mqsad_u32_u8 v[5:8], s[104:105], vcc_lo, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x68,0xd4,0xf0,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], s[104:105], vcc_lo, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x68,0xd4,0xf0,0x07] v_mqsad_u32_u8 v[5:8], vcc, m0, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x6a,0xfa,0xf0,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], vcc, m0, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x6a,0xfa,0xf0,0x07] v_mqsad_u32_u8 v[5:8], ttmp[14:15], exec_hi, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x7a,0xfe,0xf0,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], ttmp[14:15], exec_hi, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x7a,0xfe,0xf0,0x07] v_mqsad_u32_u8 v[5:8], exec, exec_lo, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x7e,0xfc,0xf0,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], exec, exec_lo, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x7e,0xfc,0xf0,0x07] v_mqsad_u32_u8 v[5:8], null, null, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0x7c,0xf8,0xf0,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], null, null, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0x7c,0xf8,0xf0,0x07] v_mqsad_u32_u8 v[5:8], -1, -1, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0xc1,0x82,0xf1,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], -1, -1, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0xc1,0x82,0xf1,0x07] v_mqsad_u32_u8 v[5:8], 0.5, 0.5, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0xf0,0xe0,0xf1,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], 0.5, 0.5, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0xf0,0xe0,0xf1,0x07] v_mqsad_u32_u8 v[5:8], src_scc, src_scc, v[252:255] -// GFX12: encoding: [0x05,0x00,0x3d,0xd6,0xfd,0xfa,0xf1,0x07] +// GFX12: v_mqsad_u32_u8 v[5:8], src_scc, src_scc, v[252:255] ; encoding: [0x05,0x00,0x3d,0xd6,0xfd,0xfa,0xf1,0x07] v_mqsad_u32_u8 v[252:255], 0xaf123456, 0xaf123456, v[3:6] clamp -// GFX12: encoding: [0xfc,0x80,0x3d,0xd6,0xff,0xfe,0x0d,0x04,0x56,0x34,0x12,0xaf] +// GFX12: v_mqsad_u32_u8 v[252:255], 0xaf123456, 0xaf123456, v[3:6] clamp ; encoding: [0xfc,0x80,0x3d,0xd6,0xff,0xfe,0x0d,0x04,0x56,0x34,0x12,0xaf] v_msad_u8 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_msad_u8 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x39,0xd6,0x01,0x05,0x0e,0x00] v_msad_u8 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_msad_u8 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x39,0xd6,0xff,0x05,0xa4,0x01] v_msad_u8 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_msad_u8 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x39,0xd6,0x01,0xfe,0xff,0x01] v_msad_u8 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_msad_u8 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x39,0xd6,0x69,0xd2,0xf8,0x01] v_msad_u8 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_msad_u8 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x39,0xd6,0x6a,0xf6,0x0c,0x04] v_msad_u8 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_msad_u8 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x39,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_msad_u8 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_msad_u8 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x39,0xd6,0x7b,0xfa,0xed,0x01] v_msad_u8 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_msad_u8 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x39,0xd6,0x7d,0xe0,0xf5,0x01] v_msad_u8 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_msad_u8 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x39,0xd6,0x7e,0x82,0xad,0x01] v_msad_u8 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_msad_u8 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x39,0xd6,0x7f,0xf8,0xa8,0x01] v_msad_u8 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_msad_u8 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x39,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_msad_u8 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_msad_u8 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x39,0xd6,0xc1,0xfe,0xf4,0x03] v_msad_u8 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_msad_u8 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x39,0xd6,0xf0,0xfa,0xc0,0x03] v_msad_u8 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x39,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_msad_u8 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x39,0xd6,0xfd,0xd4,0x04,0x03] v_msad_u8 v255, 0xaf123456, vcc_hi, null clamp -// GFX12: encoding: [0xff,0x80,0x39,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_msad_u8 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x39,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_mul_hi_i32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_mul_hi_i32 v5, v1, v2 ; encoding: [0x05,0x00,0x2e,0xd7,0x01,0x05,0x02,0x00] v_mul_hi_i32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_mul_hi_i32 v5, v255, v255 ; encoding: [0x05,0x00,0x2e,0xd7,0xff,0xff,0x03,0x00] v_mul_hi_i32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_mul_hi_i32 v5, s1, s2 ; encoding: [0x05,0x00,0x2e,0xd7,0x01,0x04,0x00,0x00] v_mul_hi_i32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_hi_i32 v5, s105, s105 ; encoding: [0x05,0x00,0x2e,0xd7,0x69,0xd2,0x00,0x00] v_mul_hi_i32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_hi_i32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2e,0xd7,0x6a,0xf6,0x00,0x00] v_mul_hi_i32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_i32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2e,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_i32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_hi_i32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2e,0xd7,0x7b,0xfa,0x01,0x00] v_mul_hi_i32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_hi_i32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2e,0xd7,0x7d,0xe0,0x01,0x00] v_mul_hi_i32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_hi_i32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2e,0xd7,0x7e,0x82,0x01,0x00] v_mul_hi_i32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_hi_i32 v5, exec_hi, null ; encoding: [0x05,0x00,0x2e,0xd7,0x7f,0xf8,0x00,0x00] v_mul_hi_i32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_hi_i32 v5, null, exec_lo ; encoding: [0x05,0x00,0x2e,0xd7,0x7c,0xfc,0x00,0x00] v_mul_hi_i32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_hi_i32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2e,0xd7,0xc1,0xfe,0x00,0x00] v_mul_hi_i32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_mul_hi_i32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x2e,0xd7,0xf0,0xfa,0x00,0x00] v_mul_hi_i32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x2e,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_mul_hi_i32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x2e,0xd7,0xfd,0xd4,0x00,0x00] v_mul_hi_i32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x2e,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_i32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x2e,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_u32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_mul_hi_u32 v5, v1, v2 ; encoding: [0x05,0x00,0x2d,0xd7,0x01,0x05,0x02,0x00] v_mul_hi_u32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_mul_hi_u32 v5, v255, v255 ; encoding: [0x05,0x00,0x2d,0xd7,0xff,0xff,0x03,0x00] v_mul_hi_u32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_mul_hi_u32 v5, s1, s2 ; encoding: [0x05,0x00,0x2d,0xd7,0x01,0x04,0x00,0x00] v_mul_hi_u32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_hi_u32 v5, s105, s105 ; encoding: [0x05,0x00,0x2d,0xd7,0x69,0xd2,0x00,0x00] v_mul_hi_u32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_hi_u32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2d,0xd7,0x6a,0xf6,0x00,0x00] v_mul_hi_u32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_u32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2d,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_u32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_hi_u32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2d,0xd7,0x7b,0xfa,0x01,0x00] v_mul_hi_u32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_hi_u32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2d,0xd7,0x7d,0xe0,0x01,0x00] v_mul_hi_u32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_hi_u32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2d,0xd7,0x7e,0x82,0x01,0x00] v_mul_hi_u32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_hi_u32 v5, exec_hi, null ; encoding: [0x05,0x00,0x2d,0xd7,0x7f,0xf8,0x00,0x00] v_mul_hi_u32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_hi_u32 v5, null, exec_lo ; encoding: [0x05,0x00,0x2d,0xd7,0x7c,0xfc,0x00,0x00] v_mul_hi_u32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_hi_u32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2d,0xd7,0xc1,0xfe,0x00,0x00] v_mul_hi_u32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_mul_hi_u32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x2d,0xd7,0xf0,0xfa,0x00,0x00] v_mul_hi_u32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x2d,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_mul_hi_u32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x2d,0xd7,0xfd,0xd4,0x00,0x00] v_mul_hi_u32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x2d,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_u32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x2d,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_lo_u16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_mul_lo_u16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x05,0xd7,0x01,0x05,0x02,0x00] v_mul_lo_u16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x05,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_mul_lo_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x05,0xd7,0x01,0x05,0x02,0x00] v_mul_lo_u16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_mul_lo_u16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x05,0xd7,0xff,0xff,0x03,0x00] v_mul_lo_u16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x05,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_mul_lo_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x05,0xd7,0xff,0xff,0x03,0x00] v_mul_lo_u16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_mul_lo_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x05,0xd7,0x01,0x04,0x00,0x00] v_mul_lo_u16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_lo_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x05,0xd7,0x69,0xd2,0x00,0x00] v_mul_lo_u16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_lo_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x05,0xd7,0x6a,0xf6,0x00,0x00] v_mul_lo_u16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_mul_lo_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x05,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_mul_lo_u16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_lo_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x05,0xd7,0x7b,0xfa,0x01,0x00] v_mul_lo_u16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_lo_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x05,0xd7,0x7d,0xe0,0x01,0x00] v_mul_lo_u16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_lo_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x05,0xd7,0x7e,0x82,0x01,0x00] v_mul_lo_u16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_lo_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x05,0xd7,0x7f,0xf8,0x00,0x00] v_mul_lo_u16 v5.l, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_lo_u16 v5.l, null, exec_lo ; encoding: [0x05,0x00,0x05,0xd7,0x7c,0xfc,0x00,0x00] v_mul_lo_u16 v5.l, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_lo_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x05,0xd7,0xc1,0xfe,0x00,0x00] v_mul_lo_u16 v5.l, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_mul_lo_u16 v5.l, 0.5, m0 ; encoding: [0x05,0x00,0x05,0xd7,0xf0,0xfa,0x00,0x00] v_mul_lo_u16 v5.l, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x05,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_mul_lo_u16 v5.l, src_scc, vcc_lo ; encoding: [0x05,0x00,0x05,0xd7,0xfd,0xd4,0x00,0x00] v_mul_lo_u16 v255.l, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x05,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_mul_lo_u16 v255.l, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x05,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_mul_lo_u16 v255.h, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x40,0x05,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_mul_lo_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] ; encoding: [0xff,0x40,0x05,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_mul_lo_u32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_mul_lo_u32 v5, v1, v2 ; encoding: [0x05,0x00,0x2c,0xd7,0x01,0x05,0x02,0x00] v_mul_lo_u32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_mul_lo_u32 v5, v255, v255 ; encoding: [0x05,0x00,0x2c,0xd7,0xff,0xff,0x03,0x00] v_mul_lo_u32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_mul_lo_u32 v5, s1, s2 ; encoding: [0x05,0x00,0x2c,0xd7,0x01,0x04,0x00,0x00] v_mul_lo_u32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_lo_u32 v5, s105, s105 ; encoding: [0x05,0x00,0x2c,0xd7,0x69,0xd2,0x00,0x00] v_mul_lo_u32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_lo_u32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2c,0xd7,0x6a,0xf6,0x00,0x00] v_mul_lo_u32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_lo_u32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2c,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_lo_u32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_lo_u32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2c,0xd7,0x7b,0xfa,0x01,0x00] v_mul_lo_u32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_lo_u32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2c,0xd7,0x7d,0xe0,0x01,0x00] v_mul_lo_u32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_lo_u32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2c,0xd7,0x7e,0x82,0x01,0x00] v_mul_lo_u32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_lo_u32 v5, exec_hi, null ; encoding: [0x05,0x00,0x2c,0xd7,0x7f,0xf8,0x00,0x00] v_mul_lo_u32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_lo_u32 v5, null, exec_lo ; encoding: [0x05,0x00,0x2c,0xd7,0x7c,0xfc,0x00,0x00] v_mul_lo_u32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_lo_u32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2c,0xd7,0xc1,0xfe,0x00,0x00] v_mul_lo_u32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_mul_lo_u32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x2c,0xd7,0xf0,0xfa,0x00,0x00] v_mul_lo_u32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x2c,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_mul_lo_u32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x2c,0xd7,0xfd,0xd4,0x00,0x00] v_mul_lo_u32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x2c,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_lo_u32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x2c,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mullit_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x18,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_mullit_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x18,0xd6,0x01,0x05,0x0e,0x00] v_mullit_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x18,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_mullit_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x18,0xd6,0xff,0x05,0xa4,0x01] v_mullit_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x18,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_mullit_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x18,0xd6,0x01,0xfe,0xff,0x01] v_mullit_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x18,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_mullit_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x18,0xd6,0x69,0xd2,0xf8,0x01] v_mullit_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x18,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_mullit_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x18,0xd6,0x6a,0xf6,0x0c,0x04] v_mullit_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x18,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_mullit_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x18,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_mullit_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x18,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_mullit_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x18,0xd6,0x7b,0xfa,0xed,0xe1] v_mullit_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x18,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_mullit_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x18,0xd6,0x7d,0xe0,0xf5,0x01] v_mullit_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x18,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_mullit_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x18,0xd6,0x7e,0x82,0xad,0x01] v_mullit_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x18,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_mullit_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x18,0xd6,0x7f,0xf8,0xa8,0xa1] v_mullit_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x18,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_mullit_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x18,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_mullit_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x18,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_mullit_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x18,0xd6,0xc1,0xfe,0xf4,0xc3] v_mullit_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x18,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_mullit_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x18,0xd6,0xf0,0xfa,0xc0,0x4b] v_mullit_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x18,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_mullit_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x18,0xd6,0xfd,0xd4,0x04,0x33] v_mullit_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x18,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_mullit_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x18,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_or3_b32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_or3_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x58,0xd6,0x01,0x05,0x0e,0x00] v_or3_b32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_or3_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x58,0xd6,0xff,0x05,0xa4,0x01] v_or3_b32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_or3_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x58,0xd6,0x01,0xfe,0xff,0x01] v_or3_b32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_or3_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x58,0xd6,0x69,0xd2,0xf8,0x01] v_or3_b32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_or3_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x58,0xd6,0x6a,0xf6,0x0c,0x04] v_or3_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_or3_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x58,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_or3_b32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_or3_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x58,0xd6,0x7b,0xfa,0xed,0x01] v_or3_b32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_or3_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x58,0xd6,0x7d,0xe0,0xf5,0x01] v_or3_b32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_or3_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x58,0xd6,0x7e,0x82,0xad,0x01] v_or3_b32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_or3_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x58,0xd6,0x7f,0xf8,0xa8,0x01] v_or3_b32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_or3_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x58,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_or3_b32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_or3_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x58,0xd6,0xc1,0xfe,0xf4,0x03] v_or3_b32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_or3_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x58,0xd6,0xf0,0xfa,0xc0,0x03] v_or3_b32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x58,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_or3_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x58,0xd6,0xfd,0xd4,0x04,0x03] v_or3_b32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x58,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_or3_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x58,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_or_b16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_or_b16 v5, v1, v2 ; encoding: [0x05,0x00,0x63,0xd7,0x01,0x05,0x02,0x00] v_or_b16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_or_b16 v5, v255, v255 ; encoding: [0x05,0x00,0x63,0xd7,0xff,0xff,0x03,0x00] v_or_b16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_or_b16 v5, s1, s2 ; encoding: [0x05,0x00,0x63,0xd7,0x01,0x04,0x00,0x00] v_or_b16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_or_b16 v5, s105, s105 ; encoding: [0x05,0x00,0x63,0xd7,0x69,0xd2,0x00,0x00] v_or_b16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_or_b16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x63,0xd7,0x6a,0xf6,0x00,0x00] v_or_b16 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_or_b16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x63,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_or_b16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_or_b16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x63,0xd7,0x7b,0xfa,0x01,0x00] v_or_b16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_or_b16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x63,0xd7,0x7d,0xe0,0x01,0x00] v_or_b16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_or_b16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x63,0xd7,0x7e,0x82,0x01,0x00] v_or_b16 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_or_b16 v5, exec_hi, null ; encoding: [0x05,0x00,0x63,0xd7,0x7f,0xf8,0x00,0x00] v_or_b16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_or_b16 v5, null, exec_lo ; encoding: [0x05,0x00,0x63,0xd7,0x7c,0xfc,0x00,0x00] v_or_b16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_or_b16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x63,0xd7,0xc1,0xfe,0x00,0x00] v_or_b16 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_or_b16 v5, 0.5, m0 ; encoding: [0x05,0x00,0x63,0xd7,0xf0,0xfa,0x00,0x00] v_or_b16 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x63,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_or_b16 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x63,0xd7,0xfd,0xd4,0x00,0x00] v_or_b16 v255, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x63,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_or_b16 v255, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x63,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_pack_b32_f16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_pack_b32_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x11,0xd7,0x01,0x05,0x02,0x00] v_pack_b32_f16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_pack_b32_f16 v5, v255, v255 ; encoding: [0x05,0x00,0x11,0xd7,0xff,0xff,0x03,0x00] v_pack_b32_f16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_pack_b32_f16 v5, s1, s2 ; encoding: [0x05,0x00,0x11,0xd7,0x01,0x04,0x00,0x00] v_pack_b32_f16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_pack_b32_f16 v5, s105, s105 ; encoding: [0x05,0x00,0x11,0xd7,0x69,0xd2,0x00,0x00] v_pack_b32_f16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_pack_b32_f16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x11,0xd7,0x6a,0xf6,0x00,0x00] v_pack_b32_f16 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_pack_b32_f16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x11,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_pack_b32_f16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_pack_b32_f16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x11,0xd7,0x7b,0xfa,0x01,0x00] v_pack_b32_f16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_pack_b32_f16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x11,0xd7,0x7d,0xe0,0x01,0x00] v_pack_b32_f16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_pack_b32_f16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x11,0xd7,0x7e,0x82,0x01,0x00] v_pack_b32_f16 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x11,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_pack_b32_f16 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x11,0xd7,0x7f,0xf8,0x00,0x00] v_pack_b32_f16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_pack_b32_f16 v5, null, exec_lo ; encoding: [0x05,0x00,0x11,0xd7,0x7c,0xfc,0x00,0x00] v_pack_b32_f16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_pack_b32_f16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x11,0xd7,0xc1,0xfe,0x00,0x00] v_pack_b32_f16 v5, 0.5, -m0 op_sel:[0,0,0] -// GFX12: encoding: [0x05,0x00,0x11,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_pack_b32_f16 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x11,0xd7,0xf0,0xfa,0x00,0x40] v_pack_b32_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] -// GFX12: encoding: [0x05,0x0a,0x11,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_pack_b32_f16 v5, -src_scc, |vcc_lo| op_sel:[1,0,0] ; encoding: [0x05,0x0a,0x11,0xd7,0xfd,0xd4,0x00,0x20] v_pack_b32_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] -// GFX12: encoding: [0xff,0x13,0x11,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_pack_b32_f16 v255, -|0xfe0b|, -|vcc_hi| op_sel:[0,1,0] ; encoding: [0xff,0x13,0x11,0xd7,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_perm_b32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_perm_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x44,0xd6,0x01,0x05,0x0e,0x00] v_perm_b32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_perm_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x44,0xd6,0xff,0x05,0xa4,0x01] v_perm_b32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_perm_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x44,0xd6,0x01,0xfe,0xff,0x01] v_perm_b32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_perm_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x44,0xd6,0x69,0xd2,0xf8,0x01] v_perm_b32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_perm_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x44,0xd6,0x6a,0xf6,0x0c,0x04] v_perm_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_perm_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x44,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_perm_b32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_perm_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x44,0xd6,0x7b,0xfa,0xed,0x01] v_perm_b32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_perm_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x44,0xd6,0x7d,0xe0,0xf5,0x01] v_perm_b32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_perm_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x44,0xd6,0x7e,0x82,0xad,0x01] v_perm_b32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_perm_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x44,0xd6,0x7f,0xf8,0xa8,0x01] v_perm_b32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_perm_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x44,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_perm_b32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_perm_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x44,0xd6,0xc1,0xfe,0xf4,0x03] v_perm_b32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_perm_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x44,0xd6,0xf0,0xfa,0xc0,0x03] v_perm_b32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x44,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_perm_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x44,0xd6,0xfd,0xd4,0x04,0x03] v_perm_b32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x44,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_perm_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x44,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_permlane16_b32 v5, v1, s2, s3 -// GFX12: encoding: [0x05,0x00,0x5b,0xd6,0x01,0x05,0x0c,0x00] +// GFX12: v_permlane16_b32 v5, v1, s2, s3 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0x05,0x0c,0x00] v_permlane16_b32 v5, v1, s105, s105 -// GFX12: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd3,0xa4,0x01] +// GFX12: v_permlane16_b32 v5, v1, s105, s105 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd3,0xa4,0x01] v_permlane16_b32 v5, v1, ttmp15, ttmp15 -// GFX12: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xf7,0xec,0x01] +// GFX12: v_permlane16_b32 v5, v1, ttmp15, ttmp15 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xf7,0xec,0x01] v_permlane16_b32 v5, v1, vcc_hi, exec_lo -// GFX12: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd7,0xf8,0x01] +// GFX12: v_permlane16_b32 v5, v1, vcc_hi, exec_lo ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd7,0xf8,0x01] v_permlane16_b32 v5, v1, vcc_lo, m0 -// GFX12: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd5,0xf4,0x01] +// GFX12: v_permlane16_b32 v5, v1, vcc_lo, m0 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xd5,0xf4,0x01] v_permlane16_b32 v5, v1, m0, vcc_hi -// GFX12: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xfb,0xac,0x01] +// GFX12: v_permlane16_b32 v5, v1, m0, vcc_hi ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xfb,0xac,0x01] v_permlane16_b32 v5, v1, exec_hi, vcc_lo -// GFX12: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xff,0xa8,0x01] +// GFX12: v_permlane16_b32 v5, v1, exec_hi, vcc_lo ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xff,0xa8,0x01] v_permlane16_b32 v5, v1, exec_lo, src_scc -// GFX12: encoding: [0x05,0x00,0x5b,0xd6,0x01,0xfd,0xf4,0x03] +// GFX12: v_permlane16_b32 v5, v1, exec_lo, src_scc ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0xfd,0xf4,0x03] v_permlane16_b32 v5, v1, null, 0.5 op_sel:[1,1] -// GFX12: encoding: [0x05,0x18,0x5b,0xd6,0x01,0xf9,0xc0,0x03] +// GFX12: v_permlane16_b32 v5, v1, null, 0.5 op_sel:[1,1] ; encoding: [0x05,0x18,0x5b,0xd6,0x01,0xf9,0xc0,0x03] v_permlane16_b32 v5, v1, -1, -1 op_sel:[0,0] -// GFX12: encoding: [0x05,0x00,0x5b,0xd6,0x01,0x83,0x05,0x03] +// GFX12: v_permlane16_b32 v5, v1, -1, -1 ; encoding: [0x05,0x00,0x5b,0xd6,0x01,0x83,0x05,0x03] v_permlane16_b32 v5, v1, 0.5, null op_sel:[1,0] -// GFX12: encoding: [0x05,0x08,0x5b,0xd6,0x01,0xe1,0xf1,0x01] +// GFX12: v_permlane16_b32 v5, v1, 0.5, null op_sel:[1,0] ; encoding: [0x05,0x08,0x5b,0xd6,0x01,0xe1,0xf1,0x01] v_permlane16_b32 v255, v255, src_scc, exec_hi op_sel:[0,1] -// GFX12: encoding: [0xff,0x10,0x5b,0xd6,0xff,0xfb,0xfd,0x01] +// GFX12: v_permlane16_b32 v255, v255, src_scc, exec_hi op_sel:[0,1] ; encoding: [0xff,0x10,0x5b,0xd6,0xff,0xfb,0xfd,0x01] v_permlanex16_b32 v5, v1, s2, s3 -// GFX12: encoding: [0x05,0x00,0x5c,0xd6,0x01,0x05,0x0c,0x00] +// GFX12: v_permlanex16_b32 v5, v1, s2, s3 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0x05,0x0c,0x00] v_permlanex16_b32 v5, v1, s105, s105 -// GFX12: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd3,0xa4,0x01] +// GFX12: v_permlanex16_b32 v5, v1, s105, s105 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd3,0xa4,0x01] v_permlanex16_b32 v5, v1, ttmp15, ttmp15 -// GFX12: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xf7,0xec,0x01] +// GFX12: v_permlanex16_b32 v5, v1, ttmp15, ttmp15 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xf7,0xec,0x01] v_permlanex16_b32 v5, v1, vcc_hi, exec_lo -// GFX12: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd7,0xf8,0x01] +// GFX12: v_permlanex16_b32 v5, v1, vcc_hi, exec_lo ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd7,0xf8,0x01] v_permlanex16_b32 v5, v1, vcc_lo, m0 -// GFX12: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd5,0xf4,0x01] +// GFX12: v_permlanex16_b32 v5, v1, vcc_lo, m0 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xd5,0xf4,0x01] v_permlanex16_b32 v5, v1, m0, vcc_hi -// GFX12: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xfb,0xac,0x01] +// GFX12: v_permlanex16_b32 v5, v1, m0, vcc_hi ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xfb,0xac,0x01] v_permlanex16_b32 v5, v1, exec_hi, vcc_lo -// GFX12: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xff,0xa8,0x01] +// GFX12: v_permlanex16_b32 v5, v1, exec_hi, vcc_lo ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xff,0xa8,0x01] v_permlanex16_b32 v5, v1, exec_lo, src_scc -// GFX12: encoding: [0x05,0x00,0x5c,0xd6,0x01,0xfd,0xf4,0x03] +// GFX12: v_permlanex16_b32 v5, v1, exec_lo, src_scc ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0xfd,0xf4,0x03] v_permlanex16_b32 v5, v1, null, 0.5 op_sel:[1,1] -// GFX12: encoding: [0x05,0x18,0x5c,0xd6,0x01,0xf9,0xc0,0x03] +// GFX12: v_permlanex16_b32 v5, v1, null, 0.5 op_sel:[1,1] ; encoding: [0x05,0x18,0x5c,0xd6,0x01,0xf9,0xc0,0x03] v_permlanex16_b32 v5, v1, -1, -1 op_sel:[0,0] -// GFX12: encoding: [0x05,0x00,0x5c,0xd6,0x01,0x83,0x05,0x03] +// GFX12: v_permlanex16_b32 v5, v1, -1, -1 ; encoding: [0x05,0x00,0x5c,0xd6,0x01,0x83,0x05,0x03] v_permlanex16_b32 v5, v1, 0.5, null op_sel:[1,0] -// GFX12: encoding: [0x05,0x08,0x5c,0xd6,0x01,0xe1,0xf1,0x01] +// GFX12: v_permlanex16_b32 v5, v1, 0.5, null op_sel:[1,0] ; encoding: [0x05,0x08,0x5c,0xd6,0x01,0xe1,0xf1,0x01] v_permlanex16_b32 v255, v255, src_scc, exec_hi op_sel:[0,1] -// GFX12: encoding: [0xff,0x10,0x5c,0xd6,0xff,0xfb,0xfd,0x01] +// GFX12: v_permlanex16_b32 v255, v255, src_scc, exec_hi op_sel:[0,1] ; encoding: [0xff,0x10,0x5c,0xd6,0xff,0xfb,0xfd,0x01] v_permlane16_var_b32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x0f,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_permlane16_var_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x0f,0xd7,0x01,0x05,0x02,0x00] v_permlane16_var_b32 v5, v1, v255 -// GFX12: encoding: [0x05,0x00,0x0f,0xd7,0x01,0xff,0x03,0x00] +// GFX12: v_permlane16_var_b32 v5, v1, v255 ; encoding: [0x05,0x00,0x0f,0xd7,0x01,0xff,0x03,0x00] v_permlane16_var_b32 v5, v255, v0 -// GFX12: encoding: [0x05,0x00,0x0f,0xd7,0xff,0x01,0x02,0x00] +// GFX12: v_permlane16_var_b32 v5, v255, v0 ; encoding: [0x05,0x00,0x0f,0xd7,0xff,0x01,0x02,0x00] v_permlane16_var_b32 v255, v1, v2 -// GFX12: encoding: [0xff,0x00,0x0f,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_permlane16_var_b32 v255, v1, v2 ; encoding: [0xff,0x00,0x0f,0xd7,0x01,0x05,0x02,0x00] v_permlane16_var_b32 v5, v1, v50, op_sel:[1,1] -// GFX12: encoding: [0x05,0x18,0x0f,0xd7,0x01,0x65,0x02,0x00] +// GFX12: v_permlane16_var_b32 v5, v1, v50 op_sel:[1,1] ; encoding: [0x05,0x18,0x0f,0xd7,0x01,0x65,0x02,0x00] v_permlane16_var_b32 v5, v1, v50, op_sel:[0,0] -// GFX12: encoding: [0x05,0x00,0x0f,0xd7,0x01,0x65,0x02,0x00] +// GFX12: v_permlane16_var_b32 v5, v1, v50 ; encoding: [0x05,0x00,0x0f,0xd7,0x01,0x65,0x02,0x00] v_permlane16_var_b32 v5, v1, v50, op_sel:[1,0] -// GFX12: encoding: [0x05,0x08,0x0f,0xd7,0x01,0x65,0x02,0x00] +// GFX12: v_permlane16_var_b32 v5, v1, v50 op_sel:[1,0] ; encoding: [0x05,0x08,0x0f,0xd7,0x01,0x65,0x02,0x00] v_permlane16_var_b32 v255, v255, v0, op_sel:[0,1] -// GFX12: encoding: [0xff,0x10,0x0f,0xd7,0xff,0x01,0x02,0x00] +// GFX12: v_permlane16_var_b32 v255, v255, v0 op_sel:[0,1] ; encoding: [0xff,0x10,0x0f,0xd7,0xff,0x01,0x02,0x00] v_permlanex16_var_b32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x10,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_permlanex16_var_b32 v5, v1, v2 ; encoding: [0x05,0x00,0x10,0xd7,0x01,0x05,0x02,0x00] v_permlanex16_var_b32 v5, v1, v105 -// GFX12: encoding: [0x05,0x00,0x10,0xd7,0x01,0xd3,0x02,0x00] +// GFX12: v_permlanex16_var_b32 v5, v1, v105 ; encoding: [0x05,0x00,0x10,0xd7,0x01,0xd3,0x02,0x00] v_permlanex16_var_b32 v5, v1, v255 -// GFX12: encoding: [0x05,0x00,0x10,0xd7,0x01,0xff,0x03,0x00] +// GFX12: v_permlanex16_var_b32 v5, v1, v255 ; encoding: [0x05,0x00,0x10,0xd7,0x01,0xff,0x03,0x00] v_permlanex16_var_b32 v255, v1, v2 -// GFX12: encoding: [0xff,0x00,0x10,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_permlanex16_var_b32 v255, v1, v2 ; encoding: [0xff,0x00,0x10,0xd7,0x01,0x05,0x02,0x00] v_permlanex16_var_b32 v1, v255, v2 -// GFX12: encoding: [0x01,0x00,0x10,0xd7,0xff,0x05,0x02,0x00] +// GFX12: v_permlanex16_var_b32 v1, v255, v2 ; encoding: [0x01,0x00,0x10,0xd7,0xff,0x05,0x02,0x00] v_permlanex16_var_b32 v5, v1, v100, op_sel:[1,1] -// GFX12: encoding: [0x05,0x18,0x10,0xd7,0x01,0xc9,0x02,0x00] +// GFX12: v_permlanex16_var_b32 v5, v1, v100 op_sel:[1,1] ; encoding: [0x05,0x18,0x10,0xd7,0x01,0xc9,0x02,0x00] v_permlanex16_var_b32 v5, v1, v100, op_sel:[0,0] -// GFX12: encoding: [0x05,0x00,0x10,0xd7,0x01,0xc9,0x02,0x00] +// GFX12: v_permlanex16_var_b32 v5, v1, v100 ; encoding: [0x05,0x00,0x10,0xd7,0x01,0xc9,0x02,0x00] v_permlanex16_var_b32 v5, v1, v100, op_sel:[1,0] -// GFX12: encoding: [0x05,0x08,0x10,0xd7,0x01,0xc9,0x02,0x00] +// GFX12: v_permlanex16_var_b32 v5, v1, v100 op_sel:[1,0] ; encoding: [0x05,0x08,0x10,0xd7,0x01,0xc9,0x02,0x00] v_permlanex16_var_b32 v255, v255, v100, op_sel:[0,1] -// GFX12: encoding: [0xff,0x10,0x10,0xd7,0xff,0xc9,0x02,0x00] +// GFX12: v_permlanex16_var_b32 v255, v255, v100 op_sel:[0,1] ; encoding: [0xff,0x10,0x10,0xd7,0xff,0xc9,0x02,0x00] v_qsad_pk_u16_u8 v[5:6], v[1:2], v2, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x01,0x05,0xea,0x01] +// GFX12: v_qsad_pk_u16_u8 v[5:6], v[1:2], v2, ttmp[14:15] ; encoding: [0x05,0x00,0x3a,0xd6,0x01,0x05,0xea,0x01] v_qsad_pk_u16_u8 v[5:6], v[1:2], v255, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x01,0xff,0xeb,0x01] +// GFX12: v_qsad_pk_u16_u8 v[5:6], v[1:2], v255, ttmp[14:15] ; encoding: [0x05,0x00,0x3a,0xd6,0x01,0xff,0xeb,0x01] v_qsad_pk_u16_u8 v[5:6], v[1:2], s2, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x01,0x05,0xe8,0x01] +// GFX12: v_qsad_pk_u16_u8 v[5:6], v[1:2], s2, ttmp[14:15] ; encoding: [0x05,0x00,0x3a,0xd6,0x01,0x05,0xe8,0x01] v_qsad_pk_u16_u8 v[5:6], v[1:2], s105, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x01,0xd3,0xe8,0x01] +// GFX12: v_qsad_pk_u16_u8 v[5:6], v[1:2], s105, ttmp[14:15] ; encoding: [0x05,0x00,0x3a,0xd6,0x01,0xd3,0xe8,0x01] v_qsad_pk_u16_u8 v[5:6], v[254:255], ttmp15, s[6:7] -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0xfe,0xf7,0x18,0x00] +// GFX12: v_qsad_pk_u16_u8 v[5:6], v[254:255], ttmp15, s[6:7] ; encoding: [0x05,0x00,0x3a,0xd6,0xfe,0xf7,0x18,0x00] v_qsad_pk_u16_u8 v[5:6], s[2:3], vcc_hi, v[3:4] -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x02,0xd6,0x0c,0x04] +// GFX12: v_qsad_pk_u16_u8 v[5:6], s[2:3], vcc_hi, v[3:4] ; encoding: [0x05,0x00,0x3a,0xd6,0x02,0xd6,0x0c,0x04] v_qsad_pk_u16_u8 v[5:6], s[104:105], vcc_lo, s[104:105] -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x68,0xd4,0xa0,0x01] +// GFX12: v_qsad_pk_u16_u8 v[5:6], s[104:105], vcc_lo, s[104:105] ; encoding: [0x05,0x00,0x3a,0xd6,0x68,0xd4,0xa0,0x01] v_qsad_pk_u16_u8 v[5:6], vcc, m0, v[254:255] -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x6a,0xfa,0xf8,0x07] +// GFX12: v_qsad_pk_u16_u8 v[5:6], vcc, m0, v[254:255] ; encoding: [0x05,0x00,0x3a,0xd6,0x6a,0xfa,0xf8,0x07] v_qsad_pk_u16_u8 v[5:6], ttmp[14:15], exec_hi, null -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x7a,0xfe,0xf0,0x01] +// GFX12: v_qsad_pk_u16_u8 v[5:6], ttmp[14:15], exec_hi, null ; encoding: [0x05,0x00,0x3a,0xd6,0x7a,0xfe,0xf0,0x01] v_qsad_pk_u16_u8 v[5:6], exec, exec_lo, exec -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x7e,0xfc,0xf8,0x01] +// GFX12: v_qsad_pk_u16_u8 v[5:6], exec, exec_lo, exec ; encoding: [0x05,0x00,0x3a,0xd6,0x7e,0xfc,0xf8,0x01] v_qsad_pk_u16_u8 v[5:6], null, null, vcc -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0x7c,0xf8,0xa8,0x01] +// GFX12: v_qsad_pk_u16_u8 v[5:6], null, null, vcc ; encoding: [0x05,0x00,0x3a,0xd6,0x7c,0xf8,0xa8,0x01] v_qsad_pk_u16_u8 v[5:6], -1, -1, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_qsad_pk_u16_u8 v[5:6], -1, -1, 0xaf123456 ; encoding: [0x05,0x00,0x3a,0xd6,0xc1,0x82,0xfd,0x03,0x56,0x34,0x12,0xaf] v_qsad_pk_u16_u8 v[5:6], 0.5, 0.5, src_scc -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0xf0,0xe0,0xf5,0x03] +// GFX12: v_qsad_pk_u16_u8 v[5:6], 0.5, 0.5, src_scc ; encoding: [0x05,0x00,0x3a,0xd6,0xf0,0xe0,0xf5,0x03] v_qsad_pk_u16_u8 v[5:6], src_scc, src_scc, 0.5 -// GFX12: encoding: [0x05,0x00,0x3a,0xd6,0xfd,0xfa,0xc1,0x03] +// GFX12: v_qsad_pk_u16_u8 v[5:6], src_scc, src_scc, 0.5 ; encoding: [0x05,0x00,0x3a,0xd6,0xfd,0xfa,0xc1,0x03] v_qsad_pk_u16_u8 v[254:255], 0xaf123456, 0xaf123456, -1 clamp -// GFX12: encoding: [0xfe,0x80,0x3a,0xd6,0xff,0xfe,0x05,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_qsad_pk_u16_u8 v[254:255], 0xaf123456, 0xaf123456, -1 clamp ; encoding: [0xfe,0x80,0x3a,0xd6,0xff,0xfe,0x05,0x03,0x56,0x34,0x12,0xaf] v_readlane_b32 s5, v1, s2 -// GFX12: encoding: [0x05,0x00,0x60,0xd7,0x01,0x05,0x00,0x00] +// GFX12: v_readlane_b32 s5, v1, s2 ; encoding: [0x05,0x00,0x60,0xd7,0x01,0x05,0x00,0x00] v_readlane_b32 s5, v1, s105 -// GFX12: encoding: [0x05,0x00,0x60,0xd7,0x01,0xd3,0x00,0x00] +// GFX12: v_readlane_b32 s5, v1, s105 ; encoding: [0x05,0x00,0x60,0xd7,0x01,0xd3,0x00,0x00] v_readlane_b32 s105, v1, ttmp15 -// GFX12: encoding: [0x69,0x00,0x60,0xd7,0x01,0xf7,0x00,0x00] +// GFX12: v_readlane_b32 s105, v1, ttmp15 ; encoding: [0x69,0x00,0x60,0xd7,0x01,0xf7,0x00,0x00] v_readlane_b32 vcc_lo, v1, vcc_hi -// GFX12: encoding: [0x6a,0x00,0x60,0xd7,0x01,0xd7,0x00,0x00] +// GFX12: v_readlane_b32 vcc_lo, v1, vcc_hi ; encoding: [0x6a,0x00,0x60,0xd7,0x01,0xd7,0x00,0x00] v_readlane_b32 vcc_hi, v1, vcc_lo -// GFX12: encoding: [0x6b,0x00,0x60,0xd7,0x01,0xd5,0x00,0x00] +// GFX12: v_readlane_b32 vcc_hi, v1, vcc_lo ; encoding: [0x6b,0x00,0x60,0xd7,0x01,0xd5,0x00,0x00] v_readlane_b32 ttmp15, v1, m0 -// GFX12: encoding: [0x7b,0x00,0x60,0xd7,0x01,0xfb,0x00,0x00] +// GFX12: v_readlane_b32 ttmp15, v1, m0 ; encoding: [0x7b,0x00,0x60,0xd7,0x01,0xfb,0x00,0x00] v_readlane_b32 null, v255, null -// GFX12: encoding: [0x7c,0x00,0x60,0xd7,0xff,0xf9,0x00,0x00] +// GFX12: v_readlane_b32 null, v255, null ; encoding: [0x7c,0x00,0x60,0xd7,0xff,0xf9,0x00,0x00] v_sad_hi_u8 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_sad_hi_u8 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x23,0xd6,0x01,0x05,0x0e,0x00] v_sad_hi_u8 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_sad_hi_u8 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x23,0xd6,0xff,0x05,0xa4,0x01] v_sad_hi_u8 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_sad_hi_u8 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x23,0xd6,0x01,0xfe,0xff,0x01] v_sad_hi_u8 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_sad_hi_u8 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x23,0xd6,0x69,0xd2,0xf8,0x01] v_sad_hi_u8 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_sad_hi_u8 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x23,0xd6,0x6a,0xf6,0x0c,0x04] v_sad_hi_u8 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_hi_u8 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x23,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_sad_hi_u8 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_sad_hi_u8 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x23,0xd6,0x7b,0xfa,0xed,0x01] v_sad_hi_u8 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_sad_hi_u8 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x23,0xd6,0x7d,0xe0,0xf5,0x01] v_sad_hi_u8 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_sad_hi_u8 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x23,0xd6,0x7e,0x82,0xad,0x01] v_sad_hi_u8 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_sad_hi_u8 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x23,0xd6,0x7f,0xf8,0xa8,0x01] v_sad_hi_u8 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_hi_u8 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x23,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_sad_hi_u8 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_sad_hi_u8 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x23,0xd6,0xc1,0xfe,0xf4,0x03] v_sad_hi_u8 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_sad_hi_u8 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x23,0xd6,0xf0,0xfa,0xc0,0x03] v_sad_hi_u8 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x23,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_sad_hi_u8 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x23,0xd6,0xfd,0xd4,0x04,0x03] v_sad_hi_u8 v255, 0xaf123456, vcc_hi, null clamp -// GFX12: encoding: [0xff,0x80,0x23,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_hi_u8 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x23,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_sad_u16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_sad_u16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x24,0xd6,0x01,0x05,0x0e,0x00] v_sad_u16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_sad_u16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x24,0xd6,0xff,0x05,0xa4,0x01] v_sad_u16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_sad_u16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x24,0xd6,0x01,0xfe,0xff,0x01] v_sad_u16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_sad_u16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x24,0xd6,0x69,0xd2,0xf8,0x01] v_sad_u16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_sad_u16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x24,0xd6,0x6a,0xf6,0x0c,0x04] v_sad_u16 v5, vcc_hi, 0xfe0b, v255 -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] +// GFX12: v_sad_u16 v5, vcc_hi, 0xfe0b, v255 ; encoding: [0x05,0x00,0x24,0xd6,0x6b,0xfe,0xfd,0x07,0x0b,0xfe,0x00,0x00] v_sad_u16 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_sad_u16 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x24,0xd6,0x7b,0xfa,0xed,0x01] v_sad_u16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_sad_u16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x24,0xd6,0x7d,0xe0,0xf5,0x01] v_sad_u16 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_sad_u16 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x24,0xd6,0x7e,0x82,0xad,0x01] v_sad_u16 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_sad_u16 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x24,0xd6,0x7f,0xf8,0xa8,0x01] v_sad_u16 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_u16 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x24,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_sad_u16 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_sad_u16 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x24,0xd6,0xc1,0xfe,0xf4,0x03] v_sad_u16 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_sad_u16 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x24,0xd6,0xf0,0xfa,0xc0,0x03] v_sad_u16 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x24,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_sad_u16 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x24,0xd6,0xfd,0xd4,0x04,0x03] v_sad_u16 v255, 0xfe0b, vcc_hi, null clamp -// GFX12: encoding: [0xff,0x80,0x24,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] +// GFX12: v_sad_u16 v255, 0xfe0b, vcc_hi, null clamp ; encoding: [0xff,0x80,0x24,0xd6,0xff,0xd6,0xf0,0x01,0x0b,0xfe,0x00,0x00] v_sad_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_sad_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x25,0xd6,0x01,0x05,0x0e,0x00] v_sad_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_sad_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x25,0xd6,0xff,0x05,0xa4,0x01] v_sad_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_sad_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x25,0xd6,0x01,0xfe,0xff,0x01] v_sad_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_sad_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x25,0xd6,0x69,0xd2,0xf8,0x01] v_sad_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_sad_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x25,0xd6,0x6a,0xf6,0x0c,0x04] v_sad_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x25,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_sad_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_sad_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x25,0xd6,0x7b,0xfa,0xed,0x01] v_sad_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_sad_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x25,0xd6,0x7d,0xe0,0xf5,0x01] v_sad_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_sad_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x25,0xd6,0x7e,0x82,0xad,0x01] v_sad_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_sad_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x25,0xd6,0x7f,0xf8,0xa8,0x01] v_sad_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x25,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_sad_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_sad_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x25,0xd6,0xc1,0xfe,0xf4,0x03] v_sad_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_sad_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x25,0xd6,0xf0,0xfa,0xc0,0x03] v_sad_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x25,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_sad_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x25,0xd6,0xfd,0xd4,0x04,0x03] v_sad_u32 v255, 0xaf123456, vcc_hi, null clamp -// GFX12: encoding: [0xff,0x80,0x25,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_u32 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x25,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_sad_u8 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_sad_u8 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x22,0xd6,0x01,0x05,0x0e,0x00] v_sad_u8 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_sad_u8 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x22,0xd6,0xff,0x05,0xa4,0x01] v_sad_u8 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_sad_u8 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x22,0xd6,0x01,0xfe,0xff,0x01] v_sad_u8 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_sad_u8 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x22,0xd6,0x69,0xd2,0xf8,0x01] v_sad_u8 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_sad_u8 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x22,0xd6,0x6a,0xf6,0x0c,0x04] v_sad_u8 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_u8 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x22,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_sad_u8 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_sad_u8 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x22,0xd6,0x7b,0xfa,0xed,0x01] v_sad_u8 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_sad_u8 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x22,0xd6,0x7d,0xe0,0xf5,0x01] v_sad_u8 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_sad_u8 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x22,0xd6,0x7e,0x82,0xad,0x01] v_sad_u8 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_sad_u8 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x22,0xd6,0x7f,0xf8,0xa8,0x01] v_sad_u8 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_u8 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x22,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_sad_u8 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_sad_u8 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x22,0xd6,0xc1,0xfe,0xf4,0x03] v_sad_u8 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_sad_u8 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x22,0xd6,0xf0,0xfa,0xc0,0x03] v_sad_u8 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x22,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_sad_u8 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x22,0xd6,0xfd,0xd4,0x04,0x03] v_sad_u8 v255, 0xaf123456, vcc_hi, null clamp -// GFX12: encoding: [0xff,0x80,0x22,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_sad_u8 v255, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0x80,0x22,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_sub_co_u32 v5, s6, v1, v2 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, v1, v2 ; encoding: [0x05,0x06,0x01,0xd7,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, v255, v255 -// W32: encoding: [0x05,0x06,0x01,0xd7,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, v255, v255 ; encoding: [0x05,0x06,0x01,0xd7,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, s1, s2 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, s1, s2 ; encoding: [0x05,0x06,0x01,0xd7,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, s105, s105 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, s105, s105 ; encoding: [0x05,0x06,0x01,0xd7,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, vcc_lo, ttmp15 ; encoding: [0x05,0x06,0x01,0xd7,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, vcc_hi, 0xaf123456 ; encoding: [0x05,0x06,0x01,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, ttmp15, src_scc -// W32: encoding: [0x05,0x06,0x01,0xd7,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, ttmp15, src_scc ; encoding: [0x05,0x06,0x01,0xd7,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, m0, 0.5 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, m0, 0.5 ; encoding: [0x05,0x06,0x01,0xd7,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, exec_lo, -1 -// W32: encoding: [0x05,0x06,0x01,0xd7,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, exec_lo, -1 ; encoding: [0x05,0x06,0x01,0xd7,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s6, exec_hi, null -// W32: encoding: [0x05,0x06,0x01,0xd7,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s6, exec_hi, null ; encoding: [0x05,0x06,0x01,0xd7,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s105, null, exec_lo -// W32: encoding: [0x05,0x69,0x01,0xd7,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, s105, null, exec_lo ; encoding: [0x05,0x69,0x01,0xd7,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, vcc_lo, -1, exec_hi -// W32: encoding: [0x05,0x6a,0x01,0xd7,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, vcc_lo, -1, exec_hi ; encoding: [0x05,0x6a,0x01,0xd7,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, vcc_hi, 0.5, m0 -// W32: encoding: [0x05,0x6b,0x01,0xd7,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, vcc_hi, 0.5, m0 ; encoding: [0x05,0x6b,0x01,0xd7,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, ttmp15, src_scc, vcc_lo -// W32: encoding: [0x05,0x7b,0x01,0xd7,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32 v5, ttmp15, src_scc, vcc_lo ; encoding: [0x05,0x7b,0x01,0xd7,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], v1, v2 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], v1, v2 ; encoding: [0x05,0x0c,0x01,0xd7,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], v255, v255 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], v255, v255 ; encoding: [0x05,0x0c,0x01,0xd7,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], s1, s2 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], s1, s2 ; encoding: [0x05,0x0c,0x01,0xd7,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], s105, s105 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], s105, s105 ; encoding: [0x05,0x0c,0x01,0xd7,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], vcc_lo, ttmp15 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], vcc_lo, ttmp15 ; encoding: [0x05,0x0c,0x01,0xd7,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 ; encoding: [0x05,0x0c,0x01,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], ttmp15, src_scc -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], ttmp15, src_scc ; encoding: [0x05,0x0c,0x01,0xd7,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], m0, 0.5 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], m0, 0.5 ; encoding: [0x05,0x0c,0x01,0xd7,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], exec_lo, -1 -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], exec_lo, -1 ; encoding: [0x05,0x0c,0x01,0xd7,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], exec_hi, null -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], exec_hi, null ; encoding: [0x05,0x0c,0x01,0xd7,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[12:13], null, exec_lo -// W64: encoding: [0x05,0x0c,0x01,0xd7,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[12:13], null, exec_lo ; encoding: [0x05,0x0c,0x01,0xd7,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, s[104:105], -1, exec_hi -// W64: encoding: [0x05,0x68,0x01,0xd7,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, s[104:105], -1, exec_hi ; encoding: [0x05,0x68,0x01,0xd7,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v5, vcc, 0.5, m0 -// W64: encoding: [0x05,0x6a,0x01,0xd7,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_sub_co_u32 v5, vcc, 0.5, m0 ; encoding: [0x05,0x6a,0x01,0xd7,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_sub_co_u32 v5, ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x05,0x7a,0x01,0xd7,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32 v5, ttmp[14:15], src_scc, vcc_lo ; encoding: [0x05,0x7a,0x01,0xd7,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_sub_co_u32 v255, null, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0xfc,0x01,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_co_u32 v255, null, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0xfc,0x01,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_sub_nc_i16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_sub_nc_i16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x0e,0xd7,0x01,0x05,0x02,0x00] v_sub_nc_i16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x0e,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_sub_nc_i16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0e,0xd7,0x01,0x05,0x02,0x00] v_sub_nc_i16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_sub_nc_i16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x0e,0xd7,0xff,0xff,0x03,0x00] v_sub_nc_i16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x0e,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_sub_nc_i16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0e,0xd7,0xff,0xff,0x03,0x00] v_sub_nc_i16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_sub_nc_i16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x0e,0xd7,0x01,0x04,0x00,0x00] v_sub_nc_i16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_sub_nc_i16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x0e,0xd7,0x69,0xd2,0x00,0x00] v_sub_nc_i16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_sub_nc_i16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0e,0xd7,0x6a,0xf6,0x00,0x00] v_sub_nc_i16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_sub_nc_i16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0e,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_i16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_sub_nc_i16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x0e,0xd7,0x7b,0xfa,0x01,0x00] v_sub_nc_i16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_sub_nc_i16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x0e,0xd7,0x7d,0xe0,0x01,0x00] v_sub_nc_i16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_sub_nc_i16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x0e,0xd7,0x7e,0x82,0x01,0x00] v_sub_nc_i16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_sub_nc_i16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x0e,0xd7,0x7f,0xf8,0x00,0x00] v_sub_nc_i16 v5.h, null, exec_lo op_sel:[1,1,1] -// GFX12: encoding: [0x05,0x58,0x0e,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_sub_nc_i16 v5.h, null, exec_lo op_sel:[1,1,1] ; encoding: [0x05,0x58,0x0e,0xd7,0x7c,0xfc,0x00,0x00] v_sub_nc_i16 v5.l, -1, exec_hi op_sel:[0,0,0] -// GFX12: encoding: [0x05,0x00,0x0e,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_sub_nc_i16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x0e,0xd7,0xc1,0xfe,0x00,0x00] v_sub_nc_i16 v5.l, 0.5, m0 op_sel:[1,0,0] -// GFX12: encoding: [0x05,0x08,0x0e,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_sub_nc_i16 v5.l, 0.5, m0 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x0e,0xd7,0xf0,0xfa,0x00,0x00] v_sub_nc_i16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] -// GFX12: encoding: [0x05,0x10,0x0e,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_sub_nc_i16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] ; encoding: [0x05,0x10,0x0e,0xd7,0xfd,0xd4,0x00,0x00] v_sub_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp -// GFX12: encoding: [0xff,0xc0,0x0e,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_sub_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x0e,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_i16 v255.h, 0xfe0b, vcc_hi clamp -// GFX12: encoding: [0xff,0xc0,0x0e,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_sub_nc_i16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x0e,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_i32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_sub_nc_i32 v5, v1, v2 ; encoding: [0x05,0x00,0x25,0xd7,0x01,0x05,0x02,0x00] v_sub_nc_i32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_sub_nc_i32 v5, v255, v255 ; encoding: [0x05,0x00,0x25,0xd7,0xff,0xff,0x03,0x00] v_sub_nc_i32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_sub_nc_i32 v5, s1, s2 ; encoding: [0x05,0x00,0x25,0xd7,0x01,0x04,0x00,0x00] v_sub_nc_i32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_sub_nc_i32 v5, s105, s105 ; encoding: [0x05,0x00,0x25,0xd7,0x69,0xd2,0x00,0x00] v_sub_nc_i32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_sub_nc_i32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x25,0xd7,0x6a,0xf6,0x00,0x00] v_sub_nc_i32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_nc_i32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x25,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_sub_nc_i32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_sub_nc_i32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x25,0xd7,0x7b,0xfa,0x01,0x00] v_sub_nc_i32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_sub_nc_i32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x25,0xd7,0x7d,0xe0,0x01,0x00] v_sub_nc_i32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_sub_nc_i32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x25,0xd7,0x7e,0x82,0x01,0x00] v_sub_nc_i32 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_sub_nc_i32 v5, exec_hi, null ; encoding: [0x05,0x00,0x25,0xd7,0x7f,0xf8,0x00,0x00] v_sub_nc_i32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_sub_nc_i32 v5, null, exec_lo ; encoding: [0x05,0x00,0x25,0xd7,0x7c,0xfc,0x00,0x00] v_sub_nc_i32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_sub_nc_i32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x25,0xd7,0xc1,0xfe,0x00,0x00] v_sub_nc_i32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_sub_nc_i32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x25,0xd7,0xf0,0xfa,0x00,0x00] v_sub_nc_i32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x25,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_sub_nc_i32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x25,0xd7,0xfd,0xd4,0x00,0x00] v_sub_nc_i32 v255, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0x80,0x25,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_nc_i32 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x25,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_sub_nc_u16 v5.l, v1.l, v2.l -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_sub_nc_u16 v5.l, v1.l, v2.l ; encoding: [0x05,0x00,0x04,0xd7,0x01,0x05,0x02,0x00] v_sub_nc_u16 v5.l, v1.h, v2.l -// GFX12: encoding: [0x05,0x08,0x04,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_sub_nc_u16 v5.l, v1.h, v2.l op_sel:[1,0,0] ; encoding: [0x05,0x08,0x04,0xd7,0x01,0x05,0x02,0x00] v_sub_nc_u16 v5.l, v255.l, v255.l -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_sub_nc_u16 v5.l, v255.l, v255.l ; encoding: [0x05,0x00,0x04,0xd7,0xff,0xff,0x03,0x00] v_sub_nc_u16 v5.l, v255.l, v255.h -// GFX12: encoding: [0x05,0x10,0x04,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_sub_nc_u16 v5.l, v255.l, v255.h op_sel:[0,1,0] ; encoding: [0x05,0x10,0x04,0xd7,0xff,0xff,0x03,0x00] v_sub_nc_u16 v5.l, s1, s2 -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_sub_nc_u16 v5.l, s1, s2 ; encoding: [0x05,0x00,0x04,0xd7,0x01,0x04,0x00,0x00] v_sub_nc_u16 v5.l, s105, s105 -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_sub_nc_u16 v5.l, s105, s105 ; encoding: [0x05,0x00,0x04,0xd7,0x69,0xd2,0x00,0x00] v_sub_nc_u16 v5.l, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_sub_nc_u16 v5.l, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x04,0xd7,0x6a,0xf6,0x00,0x00] v_sub_nc_u16 v5.l, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_sub_nc_u16 v5.l, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x04,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_u16 v5.l, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_sub_nc_u16 v5.l, ttmp15, src_scc ; encoding: [0x05,0x00,0x04,0xd7,0x7b,0xfa,0x01,0x00] v_sub_nc_u16 v5.l, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_sub_nc_u16 v5.l, m0, 0.5 ; encoding: [0x05,0x00,0x04,0xd7,0x7d,0xe0,0x01,0x00] v_sub_nc_u16 v5.l, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_sub_nc_u16 v5.l, exec_lo, -1 ; encoding: [0x05,0x00,0x04,0xd7,0x7e,0x82,0x01,0x00] v_sub_nc_u16 v5.l, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_sub_nc_u16 v5.l, exec_hi, null ; encoding: [0x05,0x00,0x04,0xd7,0x7f,0xf8,0x00,0x00] v_sub_nc_u16 v5.h, null, exec_lo op_sel:[1,1,1] -// GFX12: encoding: [0x05,0x58,0x04,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_sub_nc_u16 v5.h, null, exec_lo op_sel:[1,1,1] ; encoding: [0x05,0x58,0x04,0xd7,0x7c,0xfc,0x00,0x00] v_sub_nc_u16 v5.l, -1, exec_hi op_sel:[0,0,0] -// GFX12: encoding: [0x05,0x00,0x04,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_sub_nc_u16 v5.l, -1, exec_hi ; encoding: [0x05,0x00,0x04,0xd7,0xc1,0xfe,0x00,0x00] v_sub_nc_u16 v5.l, 0.5, m0 op_sel:[1,0,0] -// GFX12: encoding: [0x05,0x08,0x04,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_sub_nc_u16 v5.l, 0.5, m0 op_sel:[1,0,0] ; encoding: [0x05,0x08,0x04,0xd7,0xf0,0xfa,0x00,0x00] v_sub_nc_u16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] -// GFX12: encoding: [0x05,0x10,0x04,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_sub_nc_u16 v5.l, src_scc, vcc_lo op_sel:[0,1,0] ; encoding: [0x05,0x10,0x04,0xd7,0xfd,0xd4,0x00,0x00] v_sub_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp -// GFX12: encoding: [0xff,0xc0,0x04,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_sub_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x04,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_sub_nc_u16 v255.h, 0xfe0b, vcc_hi clamp -// GFX12: encoding: [0xff,0xc0,0x04,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_sub_nc_u16 v255.h, 0xfe0b, vcc_hi op_sel:[0,0,1] clamp ; encoding: [0xff,0xc0,0x04,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_subrev_co_u32 v5, s6, v1, v2 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, v1, v2 ; encoding: [0x05,0x06,0x02,0xd7,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, v255, v255 -// W32: encoding: [0x05,0x06,0x02,0xd7,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, v255, v255 ; encoding: [0x05,0x06,0x02,0xd7,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, s1, s2 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, s1, s2 ; encoding: [0x05,0x06,0x02,0xd7,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, s105, s105 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, s105, s105 ; encoding: [0x05,0x06,0x02,0xd7,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, vcc_lo, ttmp15 ; encoding: [0x05,0x06,0x02,0xd7,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, vcc_hi, 0xaf123456 ; encoding: [0x05,0x06,0x02,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, ttmp15, src_scc -// W32: encoding: [0x05,0x06,0x02,0xd7,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, ttmp15, src_scc ; encoding: [0x05,0x06,0x02,0xd7,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, m0, 0.5 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, m0, 0.5 ; encoding: [0x05,0x06,0x02,0xd7,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, exec_lo, -1 -// W32: encoding: [0x05,0x06,0x02,0xd7,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, exec_lo, -1 ; encoding: [0x05,0x06,0x02,0xd7,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s6, exec_hi, null -// W32: encoding: [0x05,0x06,0x02,0xd7,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s6, exec_hi, null ; encoding: [0x05,0x06,0x02,0xd7,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s105, null, exec_lo -// W32: encoding: [0x05,0x69,0x02,0xd7,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, s105, null, exec_lo ; encoding: [0x05,0x69,0x02,0xd7,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, vcc_lo, -1, exec_hi -// W32: encoding: [0x05,0x6a,0x02,0xd7,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, vcc_lo, -1, exec_hi ; encoding: [0x05,0x6a,0x02,0xd7,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, vcc_hi, 0.5, m0 -// W32: encoding: [0x05,0x6b,0x02,0xd7,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, vcc_hi, 0.5, m0 ; encoding: [0x05,0x6b,0x02,0xd7,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, ttmp15, src_scc, vcc_lo -// W32: encoding: [0x05,0x7b,0x02,0xd7,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32 v5, ttmp15, src_scc, vcc_lo ; encoding: [0x05,0x7b,0x02,0xd7,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], v1, v2 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], v1, v2 ; encoding: [0x05,0x0c,0x02,0xd7,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], v255, v255 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], v255, v255 ; encoding: [0x05,0x0c,0x02,0xd7,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], s1, s2 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], s1, s2 ; encoding: [0x05,0x0c,0x02,0xd7,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], s105, s105 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], s105, s105 ; encoding: [0x05,0x0c,0x02,0xd7,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], vcc_lo, ttmp15 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], vcc_lo, ttmp15 ; encoding: [0x05,0x0c,0x02,0xd7,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], vcc_hi, 0xaf123456 ; encoding: [0x05,0x0c,0x02,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], ttmp15, src_scc -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], ttmp15, src_scc ; encoding: [0x05,0x0c,0x02,0xd7,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], m0, 0.5 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], m0, 0.5 ; encoding: [0x05,0x0c,0x02,0xd7,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], exec_lo, -1 -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], exec_lo, -1 ; encoding: [0x05,0x0c,0x02,0xd7,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], exec_hi, null -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], exec_hi, null ; encoding: [0x05,0x0c,0x02,0xd7,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[12:13], null, exec_lo -// W64: encoding: [0x05,0x0c,0x02,0xd7,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[12:13], null, exec_lo ; encoding: [0x05,0x0c,0x02,0xd7,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, s[104:105], -1, exec_hi -// W64: encoding: [0x05,0x68,0x02,0xd7,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, s[104:105], -1, exec_hi ; encoding: [0x05,0x68,0x02,0xd7,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v5, vcc, 0.5, m0 -// W64: encoding: [0x05,0x6a,0x02,0xd7,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_subrev_co_u32 v5, vcc, 0.5, m0 ; encoding: [0x05,0x6a,0x02,0xd7,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_subrev_co_u32 v5, ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x05,0x7a,0x02,0xd7,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32 v5, ttmp[14:15], src_scc, vcc_lo ; encoding: [0x05,0x7a,0x02,0xd7,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_subrev_co_u32 v255, null, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0xfc,0x02,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_subrev_co_u32 v255, null, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0xfc,0x02,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_trig_preop_f64 v[5:6], v[1:2], v2 -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_trig_preop_f64 v[5:6], v[1:2], v2 ; encoding: [0x05,0x00,0x2f,0xd7,0x01,0x05,0x02,0x00] v_trig_preop_f64 v[5:6], v[1:2], v255 -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x01,0xff,0x03,0x00] +// GFX12: v_trig_preop_f64 v[5:6], v[1:2], v255 ; encoding: [0x05,0x00,0x2f,0xd7,0x01,0xff,0x03,0x00] v_trig_preop_f64 v[5:6], v[1:2], s2 -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x01,0x05,0x00,0x00] +// GFX12: v_trig_preop_f64 v[5:6], v[1:2], s2 ; encoding: [0x05,0x00,0x2f,0xd7,0x01,0x05,0x00,0x00] v_trig_preop_f64 v[5:6], v[1:2], s105 -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x01,0xd3,0x00,0x00] +// GFX12: v_trig_preop_f64 v[5:6], v[1:2], s105 ; encoding: [0x05,0x00,0x2f,0xd7,0x01,0xd3,0x00,0x00] v_trig_preop_f64 v[5:6], v[254:255], ttmp15 -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0xfe,0xf7,0x00,0x00] +// GFX12: v_trig_preop_f64 v[5:6], v[254:255], ttmp15 ; encoding: [0x05,0x00,0x2f,0xd7,0xfe,0xf7,0x00,0x00] v_trig_preop_f64 v[5:6], s[2:3], vcc_hi -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x02,0xd6,0x00,0x00] +// GFX12: v_trig_preop_f64 v[5:6], s[2:3], vcc_hi ; encoding: [0x05,0x00,0x2f,0xd7,0x02,0xd6,0x00,0x00] v_trig_preop_f64 v[5:6], s[104:105], vcc_lo -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x68,0xd4,0x00,0x00] +// GFX12: v_trig_preop_f64 v[5:6], s[104:105], vcc_lo ; encoding: [0x05,0x00,0x2f,0xd7,0x68,0xd4,0x00,0x00] v_trig_preop_f64 v[5:6], vcc, m0 -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x6a,0xfa,0x00,0x00] +// GFX12: v_trig_preop_f64 v[5:6], vcc, m0 ; encoding: [0x05,0x00,0x2f,0xd7,0x6a,0xfa,0x00,0x00] v_trig_preop_f64 v[5:6], ttmp[14:15], exec_hi -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x7a,0xfe,0x00,0x00] +// GFX12: v_trig_preop_f64 v[5:6], ttmp[14:15], exec_hi ; encoding: [0x05,0x00,0x2f,0xd7,0x7a,0xfe,0x00,0x00] v_trig_preop_f64 v[5:6], exec, exec_lo -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x7e,0xfc,0x00,0x00] +// GFX12: v_trig_preop_f64 v[5:6], exec, exec_lo ; encoding: [0x05,0x00,0x2f,0xd7,0x7e,0xfc,0x00,0x00] v_trig_preop_f64 v[5:6], null, null -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0x7c,0xf8,0x00,0x00] +// GFX12: v_trig_preop_f64 v[5:6], null, null ; encoding: [0x05,0x00,0x2f,0xd7,0x7c,0xf8,0x00,0x00] v_trig_preop_f64 v[5:6], -1, -1 -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0xc1,0x82,0x01,0x00] +// GFX12: v_trig_preop_f64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x2f,0xd7,0xc1,0x82,0x01,0x00] v_trig_preop_f64 v[5:6], 0.5, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x2f,0xd7,0xf0,0xe0,0x01,0x08] +// GFX12: v_trig_preop_f64 v[5:6], 0.5, 0.5 mul:2 ; encoding: [0x05,0x00,0x2f,0xd7,0xf0,0xe0,0x01,0x08] v_trig_preop_f64 v[5:6], -|src_scc|, src_scc mul:4 -// GFX12: encoding: [0x05,0x01,0x2f,0xd7,0xfd,0xfa,0x01,0x30] +// GFX12: v_trig_preop_f64 v[5:6], -|src_scc|, src_scc mul:4 ; encoding: [0x05,0x01,0x2f,0xd7,0xfd,0xfa,0x01,0x30] v_trig_preop_f64 v[254:255], 0xaf123456, 0xaf123456 clamp div:2 -// GFX12: encoding: [0xfe,0x80,0x2f,0xd7,0xff,0xfe,0x01,0x18,0x56,0x34,0x12,0xaf] +// GFX12: v_trig_preop_f64 v[254:255], 0xaf123456, 0xaf123456 clamp div:2 ; encoding: [0xfe,0x80,0x2f,0xd7,0xff,0xfe,0x01,0x18,0x56,0x34,0x12,0xaf] v_writelane_b32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_writelane_b32 v5, s1, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x01,0x04,0x00,0x00] v_writelane_b32 v5, s105, s2 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0x69,0x04,0x00,0x00] +// GFX12: v_writelane_b32 v5, s105, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x69,0x04,0x00,0x00] v_writelane_b32 v5, vcc_lo, s2 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0x6a,0x04,0x00,0x00] +// GFX12: v_writelane_b32 v5, vcc_lo, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x6a,0x04,0x00,0x00] v_writelane_b32 v5, vcc_hi, s2 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0x6b,0x04,0x00,0x00] +// GFX12: v_writelane_b32 v5, vcc_hi, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x6b,0x04,0x00,0x00] v_writelane_b32 v5, ttmp15, s2 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0x7b,0x04,0x00,0x00] +// GFX12: v_writelane_b32 v5, ttmp15, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x7b,0x04,0x00,0x00] v_writelane_b32 v5, m0, s2 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0x7d,0x04,0x00,0x00] +// GFX12: v_writelane_b32 v5, m0, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x7d,0x04,0x00,0x00] v_writelane_b32 v5, exec_lo, s2 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0x7e,0x04,0x00,0x00] +// GFX12: v_writelane_b32 v5, exec_lo, s2 ; encoding: [0x05,0x00,0x61,0xd7,0x7e,0x04,0x00,0x00] v_writelane_b32 v5, exec_hi, s105 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0x7f,0xd2,0x00,0x00] +// GFX12: v_writelane_b32 v5, exec_hi, s105 ; encoding: [0x05,0x00,0x61,0xd7,0x7f,0xd2,0x00,0x00] v_writelane_b32 v5, null, ttmp15 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0x7c,0xf6,0x00,0x00] +// GFX12: v_writelane_b32 v5, null, ttmp15 ; encoding: [0x05,0x00,0x61,0xd7,0x7c,0xf6,0x00,0x00] v_writelane_b32 v5, -1, null -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0xc1,0xf8,0x00,0x00] +// GFX12: v_writelane_b32 v5, -1, null ; encoding: [0x05,0x00,0x61,0xd7,0xc1,0xf8,0x00,0x00] v_writelane_b32 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_writelane_b32 v5, 0.5, m0 ; encoding: [0x05,0x00,0x61,0xd7,0xf0,0xfa,0x00,0x00] v_writelane_b32 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x61,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_writelane_b32 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x61,0xd7,0xfd,0xd4,0x00,0x00] v_writelane_b32 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x61,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_writelane_b32 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x61,0xd7,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_xad_u32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_xad_u32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x45,0xd6,0x01,0x05,0x0e,0x00] v_xad_u32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_xad_u32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x45,0xd6,0xff,0x05,0xa4,0x01] v_xad_u32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_xad_u32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x45,0xd6,0x01,0xfe,0xff,0x01] v_xad_u32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_xad_u32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x45,0xd6,0x69,0xd2,0xf8,0x01] v_xad_u32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_xad_u32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x45,0xd6,0x6a,0xf6,0x0c,0x04] v_xad_u32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_xad_u32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x45,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_xad_u32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_xad_u32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x45,0xd6,0x7b,0xfa,0xed,0x01] v_xad_u32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_xad_u32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x45,0xd6,0x7d,0xe0,0xf5,0x01] v_xad_u32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_xad_u32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x45,0xd6,0x7e,0x82,0xad,0x01] v_xad_u32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_xad_u32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x45,0xd6,0x7f,0xf8,0xa8,0x01] v_xad_u32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_xad_u32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x45,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_xad_u32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_xad_u32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x45,0xd6,0xc1,0xfe,0xf4,0x03] v_xad_u32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_xad_u32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x45,0xd6,0xf0,0xfa,0xc0,0x03] v_xad_u32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x45,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_xad_u32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x45,0xd6,0xfd,0xd4,0x04,0x03] v_xad_u32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x45,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_xad_u32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x45,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_xor3_b32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_xor3_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x40,0xd6,0x01,0x05,0x0e,0x00] v_xor3_b32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_xor3_b32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x40,0xd6,0xff,0x05,0xa4,0x01] v_xor3_b32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_xor3_b32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x40,0xd6,0x01,0xfe,0xff,0x01] v_xor3_b32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_xor3_b32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x40,0xd6,0x69,0xd2,0xf8,0x01] v_xor3_b32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_xor3_b32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x40,0xd6,0x6a,0xf6,0x0c,0x04] v_xor3_b32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_xor3_b32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x40,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_xor3_b32 v5, ttmp15, src_scc, ttmp15 -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x7b,0xfa,0xed,0x01] +// GFX12: v_xor3_b32 v5, ttmp15, src_scc, ttmp15 ; encoding: [0x05,0x00,0x40,0xd6,0x7b,0xfa,0xed,0x01] v_xor3_b32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_xor3_b32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x40,0xd6,0x7d,0xe0,0xf5,0x01] v_xor3_b32 v5, exec_lo, -1, vcc_hi -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_xor3_b32 v5, exec_lo, -1, vcc_hi ; encoding: [0x05,0x00,0x40,0xd6,0x7e,0x82,0xad,0x01] v_xor3_b32 v5, exec_hi, null, vcc_lo -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x7f,0xf8,0xa8,0x01] +// GFX12: v_xor3_b32 v5, exec_hi, null, vcc_lo ; encoding: [0x05,0x00,0x40,0xd6,0x7f,0xf8,0xa8,0x01] v_xor3_b32 v5, null, exec_lo, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] +// GFX12: v_xor3_b32 v5, null, exec_lo, 0xaf123456 ; encoding: [0x05,0x00,0x40,0xd6,0x7c,0xfc,0xfc,0x03,0x56,0x34,0x12,0xaf] v_xor3_b32 v5, -1, exec_hi, src_scc -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0xc1,0xfe,0xf4,0x03] +// GFX12: v_xor3_b32 v5, -1, exec_hi, src_scc ; encoding: [0x05,0x00,0x40,0xd6,0xc1,0xfe,0xf4,0x03] v_xor3_b32 v5, 0.5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0xf0,0xfa,0xc0,0x03] +// GFX12: v_xor3_b32 v5, 0.5, m0, 0.5 ; encoding: [0x05,0x00,0x40,0xd6,0xf0,0xfa,0xc0,0x03] v_xor3_b32 v5, src_scc, vcc_lo, -1 -// GFX12: encoding: [0x05,0x00,0x40,0xd6,0xfd,0xd4,0x04,0x03] +// GFX12: v_xor3_b32 v5, src_scc, vcc_lo, -1 ; encoding: [0x05,0x00,0x40,0xd6,0xfd,0xd4,0x04,0x03] v_xor3_b32 v255, 0xaf123456, vcc_hi, null -// GFX12: encoding: [0xff,0x00,0x40,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_xor3_b32 v255, 0xaf123456, vcc_hi, null ; encoding: [0xff,0x00,0x40,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_xor_b16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_xor_b16 v5, v1, v2 ; encoding: [0x05,0x00,0x64,0xd7,0x01,0x05,0x02,0x00] v_xor_b16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_xor_b16 v5, v255, v255 ; encoding: [0x05,0x00,0x64,0xd7,0xff,0xff,0x03,0x00] v_xor_b16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_xor_b16 v5, s1, s2 ; encoding: [0x05,0x00,0x64,0xd7,0x01,0x04,0x00,0x00] v_xor_b16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_xor_b16 v5, s105, s105 ; encoding: [0x05,0x00,0x64,0xd7,0x69,0xd2,0x00,0x00] v_xor_b16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_xor_b16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x64,0xd7,0x6a,0xf6,0x00,0x00] v_xor_b16 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_xor_b16 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x64,0xd7,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_xor_b16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_xor_b16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x64,0xd7,0x7b,0xfa,0x01,0x00] v_xor_b16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_xor_b16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x64,0xd7,0x7d,0xe0,0x01,0x00] v_xor_b16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_xor_b16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x64,0xd7,0x7e,0x82,0x01,0x00] v_xor_b16 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_xor_b16 v5, exec_hi, null ; encoding: [0x05,0x00,0x64,0xd7,0x7f,0xf8,0x00,0x00] v_xor_b16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_xor_b16 v5, null, exec_lo ; encoding: [0x05,0x00,0x64,0xd7,0x7c,0xfc,0x00,0x00] v_xor_b16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_xor_b16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x64,0xd7,0xc1,0xfe,0x00,0x00] v_xor_b16 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0xf0,0xfa,0x00,0x00] +// GFX12: v_xor_b16 v5, 0.5, m0 ; encoding: [0x05,0x00,0x64,0xd7,0xf0,0xfa,0x00,0x00] v_xor_b16 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x64,0xd7,0xfd,0xd4,0x00,0x00] +// GFX12: v_xor_b16 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x64,0xd7,0xfd,0xd4,0x00,0x00] v_xor_b16 v255, 0xfe0b, vcc_hi -// GFX12: encoding: [0xff,0x00,0x64,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_xor_b16 v255, 0xfe0b, vcc_hi ; encoding: [0xff,0x00,0x64,0xd7,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_minimum_f32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_minimum_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x65,0xd7,0x01,0x05,0x02,0x00] v_minimum_f32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_minimum_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x65,0xd7,0xff,0xff,0x03,0x00] v_minimum_f32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_minimum_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x65,0xd7,0x01,0x04,0x00,0x00] v_minimum_f32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_minimum_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x65,0xd7,0x69,0xd2,0x00,0x00] v_minimum_f32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_minimum_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x65,0xd7,0x6a,0xf6,0x00,0x00] v_minimum_f32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_minimum_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x65,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_minimum_f32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_minimum_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x65,0xd7,0x7b,0xfa,0x01,0x00] v_minimum_f32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_minimum_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x65,0xd7,0x7d,0xe0,0x01,0x00] v_minimum_f32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_minimum_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x65,0xd7,0x7e,0x82,0x01,0x00] v_minimum_f32 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x65,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_minimum_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x65,0xd7,0x7f,0xf8,0x00,0x00] v_minimum_f32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_minimum_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x65,0xd7,0x7c,0xfc,0x00,0x00] v_minimum_f32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_minimum_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x65,0xd7,0xc1,0xfe,0x00,0x00] v_minimum_f32 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x65,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_minimum_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x65,0xd7,0xf0,0xfa,0x00,0x40] v_minimum_f32 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x65,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_minimum_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x65,0xd7,0xfd,0xd4,0x00,0x20] v_minimum_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX12: encoding: [0xff,0x03,0x65,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_minimum_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x65,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_maximum_f32 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_maximum_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x66,0xd7,0x01,0x05,0x02,0x00] v_maximum_f32 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_maximum_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x66,0xd7,0xff,0xff,0x03,0x00] v_maximum_f32 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_maximum_f32 v5, s1, s2 ; encoding: [0x05,0x00,0x66,0xd7,0x01,0x04,0x00,0x00] v_maximum_f32 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_maximum_f32 v5, s105, s105 ; encoding: [0x05,0x00,0x66,0xd7,0x69,0xd2,0x00,0x00] v_maximum_f32 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_maximum_f32 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x66,0xd7,0x6a,0xf6,0x00,0x00] v_maximum_f32 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_maximum_f32 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x66,0xd7,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_maximum_f32 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_maximum_f32 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x66,0xd7,0x7b,0xfa,0x01,0x00] v_maximum_f32 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_maximum_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x66,0xd7,0x7d,0xe0,0x01,0x00] v_maximum_f32 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_maximum_f32 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x66,0xd7,0x7e,0x82,0x01,0x00] v_maximum_f32 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x66,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_maximum_f32 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x66,0xd7,0x7f,0xf8,0x00,0x00] v_maximum_f32 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_maximum_f32 v5, null, exec_lo ; encoding: [0x05,0x00,0x66,0xd7,0x7c,0xfc,0x00,0x00] v_maximum_f32 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_maximum_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x66,0xd7,0xc1,0xfe,0x00,0x00] v_maximum_f32 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x66,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_maximum_f32 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x66,0xd7,0xf0,0xfa,0x00,0x40] v_maximum_f32 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x66,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_maximum_f32 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x66,0xd7,0xfd,0xd4,0x00,0x20] v_maximum_f32 v255, -|0xaf123456|, -|vcc_hi| -// GFX12: encoding: [0xff,0x03,0x66,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_maximum_f32 v255, -|0xaf123456|, -|vcc_hi| ; encoding: [0xff,0x03,0x66,0xd7,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_minimum_f16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_minimum_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x67,0xd7,0x01,0x05,0x02,0x00] v_minimum_f16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_minimum_f16 v5, v255, v255 ; encoding: [0x05,0x00,0x67,0xd7,0xff,0xff,0x03,0x00] v_minimum_f16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_minimum_f16 v5, s1, s2 ; encoding: [0x05,0x00,0x67,0xd7,0x01,0x04,0x00,0x00] v_minimum_f16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_minimum_f16 v5, s105, s105 ; encoding: [0x05,0x00,0x67,0xd7,0x69,0xd2,0x00,0x00] v_minimum_f16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_minimum_f16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x67,0xd7,0x6a,0xf6,0x00,0x00] v_minimum_f16 v5, vcc_hi, 0xaf12 -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0x6b,0xfe,0x01,0x00,0x12,0xaf,0x00,0x00] +// GFX12: v_minimum_f16 v5, vcc_hi, 0xaf12 ; encoding: [0x05,0x00,0x67,0xd7,0x6b,0xfe,0x01,0x00,0x12,0xaf,0x00,0x00] v_minimum_f16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_minimum_f16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x67,0xd7,0x7b,0xfa,0x01,0x00] v_minimum_f16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_minimum_f16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x67,0xd7,0x7d,0xe0,0x01,0x00] v_minimum_f16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_minimum_f16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x67,0xd7,0x7e,0x82,0x01,0x00] v_minimum_f16 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x67,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_minimum_f16 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x67,0xd7,0x7f,0xf8,0x00,0x00] v_minimum_f16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_minimum_f16 v5, null, exec_lo ; encoding: [0x05,0x00,0x67,0xd7,0x7c,0xfc,0x00,0x00] v_minimum_f16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_minimum_f16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x67,0xd7,0xc1,0xfe,0x00,0x00] v_minimum_f16 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x67,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_minimum_f16 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x67,0xd7,0xf0,0xfa,0x00,0x40] v_minimum_f16 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x67,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_minimum_f16 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x67,0xd7,0xfd,0xd4,0x00,0x20] v_minimum_f16 v255, -|0xaf12|, -|vcc_hi| -// GFX12: encoding: [0xff,0x03,0x67,0xd7,0xff,0xd6,0x00,0x60,0x12,0xaf,0x00,0x00] +// GFX12: v_minimum_f16 v255, -|0xaf12|, -|vcc_hi| ; encoding: [0xff,0x03,0x67,0xd7,0xff,0xd6,0x00,0x60,0x12,0xaf,0x00,0x00] v_minimum_f16 v205, v201, v200 -// GFX12: encoding: [0xcd,0x00,0x67,0xd7,0xc9,0x91,0x03,0x00] +// GFX12: v_minimum_f16 v205, v201, v200 ; encoding: [0xcd,0x00,0x67,0xd7,0xc9,0x91,0x03,0x00] v_maximum_f16 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0x01,0x05,0x02,0x00] +// GFX12: v_maximum_f16 v5, v1, v2 ; encoding: [0x05,0x00,0x68,0xd7,0x01,0x05,0x02,0x00] v_maximum_f16 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0xff,0xff,0x03,0x00] +// GFX12: v_maximum_f16 v5, v255, v255 ; encoding: [0x05,0x00,0x68,0xd7,0xff,0xff,0x03,0x00] v_maximum_f16 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0x01,0x04,0x00,0x00] +// GFX12: v_maximum_f16 v5, s1, s2 ; encoding: [0x05,0x00,0x68,0xd7,0x01,0x04,0x00,0x00] v_maximum_f16 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0x69,0xd2,0x00,0x00] +// GFX12: v_maximum_f16 v5, s105, s105 ; encoding: [0x05,0x00,0x68,0xd7,0x69,0xd2,0x00,0x00] v_maximum_f16 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0x6a,0xf6,0x00,0x00] +// GFX12: v_maximum_f16 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x68,0xd7,0x6a,0xf6,0x00,0x00] v_maximum_f16 v5, vcc_hi, 0xaf12 -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0x6b,0xfe,0x01,0x00,0x12,0xaf,0x00,0x00] +// GFX12: v_maximum_f16 v5, vcc_hi, 0xaf12 ; encoding: [0x05,0x00,0x68,0xd7,0x6b,0xfe,0x01,0x00,0x12,0xaf,0x00,0x00] v_maximum_f16 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0x7b,0xfa,0x01,0x00] +// GFX12: v_maximum_f16 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x68,0xd7,0x7b,0xfa,0x01,0x00] v_maximum_f16 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0x7d,0xe0,0x01,0x00] +// GFX12: v_maximum_f16 v5, m0, 0.5 ; encoding: [0x05,0x00,0x68,0xd7,0x7d,0xe0,0x01,0x00] v_maximum_f16 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_maximum_f16 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x68,0xd7,0x7e,0x82,0x01,0x00] v_maximum_f16 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x68,0xd7,0x7f,0xf8,0x00,0x00] +// GFX12: v_maximum_f16 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x68,0xd7,0x7f,0xf8,0x00,0x00] v_maximum_f16 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_maximum_f16 v5, null, exec_lo ; encoding: [0x05,0x00,0x68,0xd7,0x7c,0xfc,0x00,0x00] v_maximum_f16 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0xc1,0xfe,0x00,0x00] +// GFX12: v_maximum_f16 v5, -1, exec_hi ; encoding: [0x05,0x00,0x68,0xd7,0xc1,0xfe,0x00,0x00] v_maximum_f16 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x68,0xd7,0xf0,0xfa,0x00,0x40] +// GFX12: v_maximum_f16 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x68,0xd7,0xf0,0xfa,0x00,0x40] v_maximum_f16 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x68,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_maximum_f16 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x68,0xd7,0xfd,0xd4,0x00,0x20] v_maximum_f16 v255, -|0xaf12|, -|vcc_hi| -// GFX12: encoding: [0xff,0x03,0x68,0xd7,0xff,0xd6,0x00,0x60,0x12,0xaf,0x00,0x00] +// GFX12: v_maximum_f16 v255, -|0xaf12|, -|vcc_hi| ; encoding: [0xff,0x03,0x68,0xd7,0xff,0xd6,0x00,0x60,0x12,0xaf,0x00,0x00] v_maximum_f16 v205, v201, v200 -// GFX12: encoding: [0xcd,0x00,0x68,0xd7,0xc9,0x91,0x03,0x00] +// GFX12: v_maximum_f16 v205, v201, v200 ; encoding: [0xcd,0x00,0x68,0xd7,0xc9,0x91,0x03,0x00] v_minimum_f64 v[5:6], v[1:2], v[3:4] -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0x01,0x07,0x02,0x00] +// GFX12: v_minimum_f64 v[5:6], v[1:2], v[3:4] ; encoding: [0x05,0x00,0x41,0xd7,0x01,0x07,0x02,0x00] v_minimum_f64 v[5:6], v[254:255], v[254:255] -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0xfe,0xfd,0x03,0x00] +// GFX12: v_minimum_f64 v[5:6], v[254:255], v[254:255] ; encoding: [0x05,0x00,0x41,0xd7,0xfe,0xfd,0x03,0x00] v_minimum_f64 v[5:6], s[6:7], s[4:5] -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0x06,0x08,0x00,0x00] +// GFX12: v_minimum_f64 v[5:6], s[6:7], s[4:5] ; encoding: [0x05,0x00,0x41,0xd7,0x06,0x08,0x00,0x00] v_minimum_f64 v[5:6], s[104:105], s[104:105] -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0x68,0xd0,0x00,0x00] +// GFX12: v_minimum_f64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x41,0xd7,0x68,0xd0,0x00,0x00] v_minimum_f64 v[5:6], vcc, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0x6a,0xf4,0x00,0x00] +// GFX12: v_minimum_f64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x41,0xd7,0x6a,0xf4,0x00,0x00] v_minimum_f64 v[5:6], vcc, 0xaf121234 -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0x6a,0xfe,0x01,0x00,0x34,0x12,0x12,0xaf] +// GFX12: v_minimum_f64 v[5:6], vcc, 0xaf121234 ; encoding: [0x05,0x00,0x41,0xd7,0x6a,0xfe,0x01,0x00,0x34,0x12,0x12,0xaf] v_minimum_f64 v[5:6], ttmp[14:15], src_scc -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0x7a,0xfa,0x01,0x00] +// GFX12: v_minimum_f64 v[5:6], ttmp[14:15], src_scc ; encoding: [0x05,0x00,0x41,0xd7,0x7a,0xfa,0x01,0x00] v_minimum_f64 v[5:6], vcc, 0.5 -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0x6a,0xe0,0x01,0x00] +// GFX12: v_minimum_f64 v[5:6], vcc, 0.5 ; encoding: [0x05,0x00,0x41,0xd7,0x6a,0xe0,0x01,0x00] v_minimum_f64 v[5:6], exec, -1 -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_minimum_f64 v[5:6], exec, -1 ; encoding: [0x05,0x00,0x41,0xd7,0x7e,0x82,0x01,0x00] v_minimum_f64 v[5:6], |exec|, null -// GFX12: encoding: [0x05,0x01,0x41,0xd7,0x7e,0xf8,0x00,0x00] +// GFX12: v_minimum_f64 v[5:6], |exec|, null ; encoding: [0x05,0x01,0x41,0xd7,0x7e,0xf8,0x00,0x00] v_minimum_f64 v[5:6], null, exec -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_minimum_f64 v[5:6], null, exec ; encoding: [0x05,0x00,0x41,0xd7,0x7c,0xfc,0x00,0x00] v_minimum_f64 v[5:6], -1, exec -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0xc1,0xfc,0x00,0x00] +// GFX12: v_minimum_f64 v[5:6], -1, exec ; encoding: [0x05,0x00,0x41,0xd7,0xc1,0xfc,0x00,0x00] v_minimum_f64 v[5:6], 0.5, -vcc -// GFX12: encoding: [0x05,0x00,0x41,0xd7,0xf0,0xd4,0x00,0x40] +// GFX12: v_minimum_f64 v[5:6], 0.5, -vcc ; encoding: [0x05,0x00,0x41,0xd7,0xf0,0xd4,0x00,0x40] v_minimum_f64 v[5:6], -src_scc, |vcc| -// GFX12: encoding: [0x05,0x02,0x41,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_minimum_f64 v[5:6], -src_scc, |vcc| ; encoding: [0x05,0x02,0x41,0xd7,0xfd,0xd4,0x00,0x20] v_minimum_f64 v[254:255], -|2|, -|vcc| -// GFX12: encoding: [0xfe,0x03,0x41,0xd7,0x82,0xd4,0x00,0x60] +// GFX12: v_minimum_f64 v[254:255], -|2|, -|vcc| ; encoding: [0xfe,0x03,0x41,0xd7,0x82,0xd4,0x00,0x60] v_maximum_f64 v[5:6], v[1:2], v[3:4] -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0x01,0x07,0x02,0x00] +// GFX12: v_maximum_f64 v[5:6], v[1:2], v[3:4] ; encoding: [0x05,0x00,0x42,0xd7,0x01,0x07,0x02,0x00] v_maximum_f64 v[5:6], v[254:255], v[254:255] -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0xfe,0xfd,0x03,0x00] +// GFX12: v_maximum_f64 v[5:6], v[254:255], v[254:255] ; encoding: [0x05,0x00,0x42,0xd7,0xfe,0xfd,0x03,0x00] v_maximum_f64 v[5:6], s[6:7], s[4:5] -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0x06,0x08,0x00,0x00] +// GFX12: v_maximum_f64 v[5:6], s[6:7], s[4:5] ; encoding: [0x05,0x00,0x42,0xd7,0x06,0x08,0x00,0x00] v_maximum_f64 v[5:6], s[104:105], s[104:105] -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0x68,0xd0,0x00,0x00] +// GFX12: v_maximum_f64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x42,0xd7,0x68,0xd0,0x00,0x00] v_maximum_f64 v[5:6], vcc, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0x6a,0xf4,0x00,0x00] +// GFX12: v_maximum_f64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x42,0xd7,0x6a,0xf4,0x00,0x00] v_maximum_f64 v[5:6], vcc, 0xaf121234 -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0x6a,0xfe,0x01,0x00,0x34,0x12,0x12,0xaf] +// GFX12: v_maximum_f64 v[5:6], vcc, 0xaf121234 ; encoding: [0x05,0x00,0x42,0xd7,0x6a,0xfe,0x01,0x00,0x34,0x12,0x12,0xaf] v_maximum_f64 v[5:6], ttmp[14:15], src_scc -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0x7a,0xfa,0x01,0x00] +// GFX12: v_maximum_f64 v[5:6], ttmp[14:15], src_scc ; encoding: [0x05,0x00,0x42,0xd7,0x7a,0xfa,0x01,0x00] v_maximum_f64 v[5:6], vcc, 0.5 -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0x6a,0xe0,0x01,0x00] +// GFX12: v_maximum_f64 v[5:6], vcc, 0.5 ; encoding: [0x05,0x00,0x42,0xd7,0x6a,0xe0,0x01,0x00] v_maximum_f64 v[5:6], exec, -1 -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0x7e,0x82,0x01,0x00] +// GFX12: v_maximum_f64 v[5:6], exec, -1 ; encoding: [0x05,0x00,0x42,0xd7,0x7e,0x82,0x01,0x00] v_maximum_f64 v[5:6], |exec|, null -// GFX12: encoding: [0x05,0x01,0x42,0xd7,0x7e,0xf8,0x00,0x00] +// GFX12: v_maximum_f64 v[5:6], |exec|, null ; encoding: [0x05,0x01,0x42,0xd7,0x7e,0xf8,0x00,0x00] v_maximum_f64 v[5:6], null, exec -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0x7c,0xfc,0x00,0x00] +// GFX12: v_maximum_f64 v[5:6], null, exec ; encoding: [0x05,0x00,0x42,0xd7,0x7c,0xfc,0x00,0x00] v_maximum_f64 v[5:6], -1, exec -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0xc1,0xfc,0x00,0x00] +// GFX12: v_maximum_f64 v[5:6], -1, exec ; encoding: [0x05,0x00,0x42,0xd7,0xc1,0xfc,0x00,0x00] v_maximum_f64 v[5:6], 0.5, -vcc -// GFX12: encoding: [0x05,0x00,0x42,0xd7,0xf0,0xd4,0x00,0x40] +// GFX12: v_maximum_f64 v[5:6], 0.5, -vcc ; encoding: [0x05,0x00,0x42,0xd7,0xf0,0xd4,0x00,0x40] v_maximum_f64 v[5:6], -src_scc, |vcc| -// GFX12: encoding: [0x05,0x02,0x42,0xd7,0xfd,0xd4,0x00,0x20] +// GFX12: v_maximum_f64 v[5:6], -src_scc, |vcc| ; encoding: [0x05,0x02,0x42,0xd7,0xfd,0xd4,0x00,0x20] v_maximum_f64 v[254:255], -|2|, -|vcc| -// GFX12: encoding: [0xfe,0x03,0x42,0xd7,0x82,0xd4,0x00,0x60] +// GFX12: v_maximum_f64 v[254:255], -|2|, -|vcc| ; encoding: [0xfe,0x03,0x42,0xd7,0x82,0xd4,0x00,0x60] v_minimum3_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x2d,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_minimum3_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x2d,0xd6,0x01,0x05,0x0e,0x00] v_minimum3_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x2d,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_minimum3_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x2d,0xd6,0xff,0x05,0xa4,0x01] v_minimum3_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x2d,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_minimum3_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x2d,0xd6,0x01,0xfe,0xff,0x01] v_minimum3_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x2d,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_minimum3_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x2d,0xd6,0x69,0xd2,0xf8,0x01] v_minimum3_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x2d,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_minimum3_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x2d,0xd6,0x6a,0xf6,0x0c,0x04] v_minimum3_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x2d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_minimum3_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x2d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_minimum3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x2d,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_minimum3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x2d,0xd6,0x7b,0xfa,0xed,0xe1] v_minimum3_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x2d,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_minimum3_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x2d,0xd6,0x7d,0xe0,0xf5,0x01] v_minimum3_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x2d,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_minimum3_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x2d,0xd6,0x7e,0x82,0xad,0x01] v_minimum3_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x2d,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_minimum3_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x2d,0xd6,0x7f,0xf8,0xa8,0xa1] v_minimum3_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x2d,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_minimum3_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x2d,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_minimum3_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x2d,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_minimum3_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x2d,0xd6,0xc1,0xfe,0xf4,0xc3] v_minimum3_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x2d,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_minimum3_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x2d,0xd6,0xf0,0xfa,0xc0,0x4b] v_minimum3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x2d,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_minimum3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x2d,0xd6,0xfd,0xd4,0x04,0x33] v_minimum3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x2d,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_minimum3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x2d,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_maximum3_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x2e,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_maximum3_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x2e,0xd6,0x01,0x05,0x0e,0x00] v_maximum3_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x2e,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_maximum3_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x2e,0xd6,0xff,0x05,0xa4,0x01] v_maximum3_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x2e,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_maximum3_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x2e,0xd6,0x01,0xfe,0xff,0x01] v_maximum3_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x2e,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_maximum3_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x2e,0xd6,0x69,0xd2,0xf8,0x01] v_maximum3_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x2e,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_maximum3_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x2e,0xd6,0x6a,0xf6,0x0c,0x04] v_maximum3_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x2e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_maximum3_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x2e,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_maximum3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x2e,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_maximum3_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x2e,0xd6,0x7b,0xfa,0xed,0xe1] v_maximum3_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x2e,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_maximum3_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x2e,0xd6,0x7d,0xe0,0xf5,0x01] v_maximum3_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x2e,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_maximum3_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x2e,0xd6,0x7e,0x82,0xad,0x01] v_maximum3_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x2e,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_maximum3_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x2e,0xd6,0x7f,0xf8,0xa8,0xa1] v_maximum3_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x2e,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_maximum3_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x2e,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_maximum3_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x2e,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_maximum3_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x2e,0xd6,0xc1,0xfe,0xf4,0xc3] v_maximum3_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x2e,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_maximum3_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x2e,0xd6,0xf0,0xfa,0xc0,0x4b] v_maximum3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x2e,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_maximum3_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x2e,0xd6,0xfd,0xd4,0x04,0x33] v_maximum3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x2e,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_maximum3_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x2e,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_minimum3_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x2f,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_minimum3_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x2f,0xd6,0x01,0x05,0x0e,0x00] v_minimum3_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x2f,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_minimum3_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x2f,0xd6,0xff,0x05,0xa4,0x01] v_minimum3_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x2f,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_minimum3_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x2f,0xd6,0x01,0xfe,0xff,0x01] v_minimum3_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x2f,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_minimum3_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x2f,0xd6,0x69,0xd2,0xf8,0x01] v_minimum3_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x2f,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_minimum3_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x2f,0xd6,0x6a,0xf6,0x0c,0x04] v_minimum3_f16 v5, vcc_hi, 0xaf12, v255 -// GFX12: encoding: [0x05,0x00,0x2f,0xd6,0x6b,0xfe,0xfd,0x07,0x12,0xaf,0x00,0x00] +// GFX12: v_minimum3_f16 v5, vcc_hi, 0xaf12, v255 ; encoding: [0x05,0x00,0x2f,0xd6,0x6b,0xfe,0xfd,0x07,0x12,0xaf,0x00,0x00] v_minimum3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x2f,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_minimum3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x2f,0xd6,0x7b,0xfa,0xed,0xe1] v_minimum3_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x2f,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_minimum3_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x2f,0xd6,0x7d,0xe0,0xf5,0x01] v_minimum3_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x2f,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_minimum3_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x2f,0xd6,0x7e,0x82,0xad,0x01] v_minimum3_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x2f,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_minimum3_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x2f,0xd6,0x7f,0xf8,0xa8,0xa1] v_minimum3_f16 v5, null, exec_lo, -|0xaf12| -// GFX12: encoding: [0x05,0x04,0x2f,0xd6,0x7c,0xfc,0xfc,0x83,0x12,0xaf,0x00,0x00] +// GFX12: v_minimum3_f16 v5, null, exec_lo, -|0xaf12| ; encoding: [0x05,0x04,0x2f,0xd6,0x7c,0xfc,0xfc,0x83,0x12,0xaf,0x00,0x00] v_minimum3_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x2f,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_minimum3_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x2f,0xd6,0xc1,0xfe,0xf4,0xc3] v_minimum3_f16 v5, 0.5, -m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x2f,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_minimum3_f16 v5, 0.5, -m0, 0.5 ; encoding: [0x05,0x00,0x2f,0xd6,0xf0,0xfa,0xc0,0x43] v_minimum3_f16 v5, -src_scc, |vcc_lo|, -1 -// GFX12: encoding: [0x05,0x02,0x2f,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_minimum3_f16 v5, -src_scc, |vcc_lo|, -1 ; encoding: [0x05,0x02,0x2f,0xd6,0xfd,0xd4,0x04,0x23] v_minimum3_f16 v255, -|0xaf12|, -|vcc_hi|, null clamp -// GFX12: encoding: [0xff,0x83,0x2f,0xd6,0xff,0xd6,0xf0,0x61,0x12,0xaf,0x00,0x00] +// GFX12: v_minimum3_f16 v255, -|0xaf12|, -|vcc_hi|, null clamp ; encoding: [0xff,0x83,0x2f,0xd6,0xff,0xd6,0xf0,0x61,0x12,0xaf,0x00,0x00] v_maximum3_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x30,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_maximum3_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x30,0xd6,0x01,0x05,0x0e,0x00] v_maximum3_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x30,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_maximum3_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x30,0xd6,0xff,0x05,0xa4,0x01] v_maximum3_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x30,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_maximum3_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x30,0xd6,0x01,0xfe,0xff,0x01] v_maximum3_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x30,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_maximum3_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x30,0xd6,0x69,0xd2,0xf8,0x01] v_maximum3_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x30,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_maximum3_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x30,0xd6,0x6a,0xf6,0x0c,0x04] v_maximum3_f16 v5, vcc_hi, 0xaf12, v255 -// GFX12: encoding: [0x05,0x00,0x30,0xd6,0x6b,0xfe,0xfd,0x07,0x12,0xaf,0x00,0x00] +// GFX12: v_maximum3_f16 v5, vcc_hi, 0xaf12, v255 ; encoding: [0x05,0x00,0x30,0xd6,0x6b,0xfe,0xfd,0x07,0x12,0xaf,0x00,0x00] v_maximum3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x30,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_maximum3_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x30,0xd6,0x7b,0xfa,0xed,0xe1] v_maximum3_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x30,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_maximum3_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x30,0xd6,0x7d,0xe0,0xf5,0x01] v_maximum3_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x30,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_maximum3_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x30,0xd6,0x7e,0x82,0xad,0x01] v_maximum3_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x30,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_maximum3_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x30,0xd6,0x7f,0xf8,0xa8,0xa1] v_maximum3_f16 v5, null, exec_lo, -|0xaf12| -// GFX12: encoding: [0x05,0x04,0x30,0xd6,0x7c,0xfc,0xfc,0x83,0x12,0xaf,0x00,0x00] +// GFX12: v_maximum3_f16 v5, null, exec_lo, -|0xaf12| ; encoding: [0x05,0x04,0x30,0xd6,0x7c,0xfc,0xfc,0x83,0x12,0xaf,0x00,0x00] v_maximum3_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x30,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_maximum3_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x30,0xd6,0xc1,0xfe,0xf4,0xc3] v_maximum3_f16 v5, 0.5, -m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x30,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_maximum3_f16 v5, 0.5, -m0, 0.5 ; encoding: [0x05,0x00,0x30,0xd6,0xf0,0xfa,0xc0,0x43] v_maximum3_f16 v5, -src_scc, |vcc_lo|, -1 -// GFX12: encoding: [0x05,0x02,0x30,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_maximum3_f16 v5, -src_scc, |vcc_lo|, -1 ; encoding: [0x05,0x02,0x30,0xd6,0xfd,0xd4,0x04,0x23] v_maximumminimum_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x6d,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_maximumminimum_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x6d,0xd6,0x01,0x05,0x0e,0x00] v_maximumminimum_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x6d,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_maximumminimum_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x6d,0xd6,0xff,0x05,0xa4,0x01] v_maximumminimum_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x6d,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_maximumminimum_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x6d,0xd6,0x01,0xfe,0xff,0x01] v_maximumminimum_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x6d,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_maximumminimum_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x6d,0xd6,0x69,0xd2,0xf8,0x01] v_maximumminimum_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x6d,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_maximumminimum_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x6d,0xd6,0x6a,0xf6,0x0c,0x04] v_maximumminimum_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x6d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_maximumminimum_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x6d,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_maximumminimum_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x6d,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_maximumminimum_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x6d,0xd6,0x7b,0xfa,0xed,0xe1] v_maximumminimum_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x6d,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_maximumminimum_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x6d,0xd6,0x7d,0xe0,0xf5,0x01] v_maximumminimum_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x6d,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_maximumminimum_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x6d,0xd6,0x7e,0x82,0xad,0x01] v_maximumminimum_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x6d,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_maximumminimum_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x6d,0xd6,0x7f,0xf8,0xa8,0xa1] v_maximumminimum_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x6d,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_maximumminimum_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x6d,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_maximumminimum_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x6d,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_maximumminimum_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x6d,0xd6,0xc1,0xfe,0xf4,0xc3] v_maximumminimum_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x6d,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_maximumminimum_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x6d,0xd6,0xf0,0xfa,0xc0,0x4b] v_maximumminimum_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x6d,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_maximumminimum_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x6d,0xd6,0xfd,0xd4,0x04,0x33] v_maximumminimum_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x6d,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_maximumminimum_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x6d,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_minimummaximum_f32 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x6c,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_minimummaximum_f32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x6c,0xd6,0x01,0x05,0x0e,0x00] v_minimummaximum_f32 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x6c,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_minimummaximum_f32 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x6c,0xd6,0xff,0x05,0xa4,0x01] v_minimummaximum_f32 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x6c,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_minimummaximum_f32 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x6c,0xd6,0x01,0xfe,0xff,0x01] v_minimummaximum_f32 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x6c,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_minimummaximum_f32 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x6c,0xd6,0x69,0xd2,0xf8,0x01] v_minimummaximum_f32 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x6c,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_minimummaximum_f32 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x6c,0xd6,0x6a,0xf6,0x0c,0x04] v_minimummaximum_f32 v5, vcc_hi, 0xaf123456, v255 -// GFX12: encoding: [0x05,0x00,0x6c,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] +// GFX12: v_minimummaximum_f32 v5, vcc_hi, 0xaf123456, v255 ; encoding: [0x05,0x00,0x6c,0xd6,0x6b,0xfe,0xfd,0x07,0x56,0x34,0x12,0xaf] v_minimummaximum_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x6c,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_minimummaximum_f32 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x6c,0xd6,0x7b,0xfa,0xed,0xe1] v_minimummaximum_f32 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x6c,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_minimummaximum_f32 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x6c,0xd6,0x7d,0xe0,0xf5,0x01] v_minimummaximum_f32 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x6c,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_minimummaximum_f32 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x6c,0xd6,0x7e,0x82,0xad,0x01] v_minimummaximum_f32 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x6c,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_minimummaximum_f32 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x6c,0xd6,0x7f,0xf8,0xa8,0xa1] v_minimummaximum_f32 v5, null, exec_lo, -|0xaf123456| -// GFX12: encoding: [0x05,0x04,0x6c,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] +// GFX12: v_minimummaximum_f32 v5, null, exec_lo, -|0xaf123456| ; encoding: [0x05,0x04,0x6c,0xd6,0x7c,0xfc,0xfc,0x83,0x56,0x34,0x12,0xaf] v_minimummaximum_f32 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x6c,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_minimummaximum_f32 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x6c,0xd6,0xc1,0xfe,0xf4,0xc3] v_minimummaximum_f32 v5, 0.5, -m0, 0.5 mul:2 -// GFX12: encoding: [0x05,0x00,0x6c,0xd6,0xf0,0xfa,0xc0,0x4b] +// GFX12: v_minimummaximum_f32 v5, 0.5, -m0, 0.5 mul:2 ; encoding: [0x05,0x00,0x6c,0xd6,0xf0,0xfa,0xc0,0x4b] v_minimummaximum_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 -// GFX12: encoding: [0x05,0x02,0x6c,0xd6,0xfd,0xd4,0x04,0x33] +// GFX12: v_minimummaximum_f32 v5, -src_scc, |vcc_lo|, -1 mul:4 ; encoding: [0x05,0x02,0x6c,0xd6,0xfd,0xd4,0x04,0x33] v_minimummaximum_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 -// GFX12: encoding: [0xff,0x83,0x6c,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] +// GFX12: v_minimummaximum_f32 v255, -|0xaf123456|, -|vcc_hi|, null clamp div:2 ; encoding: [0xff,0x83,0x6c,0xd6,0xff,0xd6,0xf0,0x79,0x56,0x34,0x12,0xaf] v_maximumminimum_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x6f,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_maximumminimum_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x6f,0xd6,0x01,0x05,0x0e,0x00] v_maximumminimum_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x6f,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_maximumminimum_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x6f,0xd6,0xff,0x05,0xa4,0x01] v_maximumminimum_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x6f,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_maximumminimum_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x6f,0xd6,0x01,0xfe,0xff,0x01] v_maximumminimum_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x6f,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_maximumminimum_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x6f,0xd6,0x69,0xd2,0xf8,0x01] v_maximumminimum_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x6f,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_maximumminimum_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x6f,0xd6,0x6a,0xf6,0x0c,0x04] v_maximumminimum_f16 v5, vcc_hi, 0xaf12, v255 -// GFX12: encoding: [0x05,0x00,0x6f,0xd6,0x6b,0xfe,0xfd,0x07,0x12,0xaf,0x00,0x00] +// GFX12: v_maximumminimum_f16 v5, vcc_hi, 0xaf12, v255 ; encoding: [0x05,0x00,0x6f,0xd6,0x6b,0xfe,0xfd,0x07,0x12,0xaf,0x00,0x00] v_maximumminimum_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x6f,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_maximumminimum_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x6f,0xd6,0x7b,0xfa,0xed,0xe1] v_maximumminimum_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x6f,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_maximumminimum_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x6f,0xd6,0x7d,0xe0,0xf5,0x01] v_maximumminimum_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x6f,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_maximumminimum_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x6f,0xd6,0x7e,0x82,0xad,0x01] v_maximumminimum_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x6f,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_maximumminimum_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x6f,0xd6,0x7f,0xf8,0xa8,0xa1] v_maximumminimum_f16 v5, null, exec_lo, -|0xaf12| -// GFX12: encoding: [0x05,0x04,0x6f,0xd6,0x7c,0xfc,0xfc,0x83,0x12,0xaf,0x00,0x00] +// GFX12: v_maximumminimum_f16 v5, null, exec_lo, -|0xaf12| ; encoding: [0x05,0x04,0x6f,0xd6,0x7c,0xfc,0xfc,0x83,0x12,0xaf,0x00,0x00] v_maximumminimum_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x6f,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_maximumminimum_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x6f,0xd6,0xc1,0xfe,0xf4,0xc3] v_maximumminimum_f16 v5, 0.5, -m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x6f,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_maximumminimum_f16 v5, 0.5, -m0, 0.5 ; encoding: [0x05,0x00,0x6f,0xd6,0xf0,0xfa,0xc0,0x43] v_maximumminimum_f16 v5, -src_scc, |vcc_lo|, -1 -// GFX12: encoding: [0x05,0x02,0x6f,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_maximumminimum_f16 v5, -src_scc, |vcc_lo|, -1 ; encoding: [0x05,0x02,0x6f,0xd6,0xfd,0xd4,0x04,0x23] v_maximumminimum_f16 v255, -|0xaf12|, -|vcc_hi|, null clamp -// GFX12: encoding: [0xff,0x83,0x6f,0xd6,0xff,0xd6,0xf0,0x61,0x12,0xaf,0x00,0x00] +// GFX12: v_maximumminimum_f16 v255, -|0xaf12|, -|vcc_hi|, null clamp ; encoding: [0xff,0x83,0x6f,0xd6,0xff,0xd6,0xf0,0x61,0x12,0xaf,0x00,0x00] v_minimummaximum_f16 v5, v1, v2, s3 -// GFX12: encoding: [0x05,0x00,0x6e,0xd6,0x01,0x05,0x0e,0x00] +// GFX12: v_minimummaximum_f16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x6e,0xd6,0x01,0x05,0x0e,0x00] v_minimummaximum_f16 v5, v255, s2, s105 -// GFX12: encoding: [0x05,0x00,0x6e,0xd6,0xff,0x05,0xa4,0x01] +// GFX12: v_minimummaximum_f16 v5, v255, s2, s105 ; encoding: [0x05,0x00,0x6e,0xd6,0xff,0x05,0xa4,0x01] v_minimummaximum_f16 v5, s1, v255, exec_hi -// GFX12: encoding: [0x05,0x00,0x6e,0xd6,0x01,0xfe,0xff,0x01] +// GFX12: v_minimummaximum_f16 v5, s1, v255, exec_hi ; encoding: [0x05,0x00,0x6e,0xd6,0x01,0xfe,0xff,0x01] v_minimummaximum_f16 v5, s105, s105, exec_lo -// GFX12: encoding: [0x05,0x00,0x6e,0xd6,0x69,0xd2,0xf8,0x01] +// GFX12: v_minimummaximum_f16 v5, s105, s105, exec_lo ; encoding: [0x05,0x00,0x6e,0xd6,0x69,0xd2,0xf8,0x01] v_minimummaximum_f16 v5, vcc_lo, ttmp15, v3 -// GFX12: encoding: [0x05,0x00,0x6e,0xd6,0x6a,0xf6,0x0c,0x04] +// GFX12: v_minimummaximum_f16 v5, vcc_lo, ttmp15, v3 ; encoding: [0x05,0x00,0x6e,0xd6,0x6a,0xf6,0x0c,0x04] v_minimummaximum_f16 v5, vcc_hi, 0xaf12, v255 -// GFX12: encoding: [0x05,0x00,0x6e,0xd6,0x6b,0xfe,0xfd,0x07,0x12,0xaf,0x00,0x00] +// GFX12: v_minimummaximum_f16 v5, vcc_hi, 0xaf12, v255 ; encoding: [0x05,0x00,0x6e,0xd6,0x6b,0xfe,0xfd,0x07,0x12,0xaf,0x00,0x00] v_minimummaximum_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| -// GFX12: encoding: [0x05,0x07,0x6e,0xd6,0x7b,0xfa,0xed,0xe1] +// GFX12: v_minimummaximum_f16 v5, -|ttmp15|, -|src_scc|, -|ttmp15| ; encoding: [0x05,0x07,0x6e,0xd6,0x7b,0xfa,0xed,0xe1] v_minimummaximum_f16 v5, m0, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x6e,0xd6,0x7d,0xe0,0xf5,0x01] +// GFX12: v_minimummaximum_f16 v5, m0, 0.5, m0 ; encoding: [0x05,0x00,0x6e,0xd6,0x7d,0xe0,0xf5,0x01] v_minimummaximum_f16 v5, |exec_lo|, -1, vcc_hi -// GFX12: encoding: [0x05,0x01,0x6e,0xd6,0x7e,0x82,0xad,0x01] +// GFX12: v_minimummaximum_f16 v5, |exec_lo|, -1, vcc_hi ; encoding: [0x05,0x01,0x6e,0xd6,0x7e,0x82,0xad,0x01] v_minimummaximum_f16 v5, -|exec_hi|, null, -|vcc_lo| -// GFX12: encoding: [0x05,0x05,0x6e,0xd6,0x7f,0xf8,0xa8,0xa1] +// GFX12: v_minimummaximum_f16 v5, -|exec_hi|, null, -|vcc_lo| ; encoding: [0x05,0x05,0x6e,0xd6,0x7f,0xf8,0xa8,0xa1] v_minimummaximum_f16 v5, null, exec_lo, -|0xaf12| -// GFX12: encoding: [0x05,0x04,0x6e,0xd6,0x7c,0xfc,0xfc,0x83,0x12,0xaf,0x00,0x00] +// GFX12: v_minimummaximum_f16 v5, null, exec_lo, -|0xaf12| ; encoding: [0x05,0x04,0x6e,0xd6,0x7c,0xfc,0xfc,0x83,0x12,0xaf,0x00,0x00] v_minimummaximum_f16 v5, -1, -|exec_hi|, -|src_scc| -// GFX12: encoding: [0x05,0x06,0x6e,0xd6,0xc1,0xfe,0xf4,0xc3] +// GFX12: v_minimummaximum_f16 v5, -1, -|exec_hi|, -|src_scc| ; encoding: [0x05,0x06,0x6e,0xd6,0xc1,0xfe,0xf4,0xc3] v_minimummaximum_f16 v5, 0.5, -m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x6e,0xd6,0xf0,0xfa,0xc0,0x43] +// GFX12: v_minimummaximum_f16 v5, 0.5, -m0, 0.5 ; encoding: [0x05,0x00,0x6e,0xd6,0xf0,0xfa,0xc0,0x43] v_minimummaximum_f16 v5, -src_scc, |vcc_lo|, -1 -// GFX12: encoding: [0x05,0x02,0x6e,0xd6,0xfd,0xd4,0x04,0x23] +// GFX12: v_minimummaximum_f16 v5, -src_scc, |vcc_lo|, -1 ; encoding: [0x05,0x02,0x6e,0xd6,0xfd,0xd4,0x04,0x23] v_s_exp_f32 s5, s1 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, s1 ; encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x00] v_s_exp_f32 s5, s105 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, s105 ; encoding: [0x05,0x00,0x80,0xd6,0x69,0x00,0x00,0x00] v_s_exp_f32 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, vcc_lo ; encoding: [0x05,0x00,0x80,0xd6,0x6a,0x00,0x00,0x00] v_s_exp_f32 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, vcc_hi ; encoding: [0x05,0x00,0x80,0xd6,0x6b,0x00,0x00,0x00] v_s_exp_f32 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, ttmp15 ; encoding: [0x05,0x00,0x80,0xd6,0x7b,0x00,0x00,0x00] v_s_exp_f32 s5, m0 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, m0 ; encoding: [0x05,0x00,0x80,0xd6,0x7d,0x00,0x00,0x00] v_s_exp_f32 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, exec_lo ; encoding: [0x05,0x00,0x80,0xd6,0x7e,0x00,0x00,0x00] v_s_exp_f32 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, exec_hi ; encoding: [0x05,0x00,0x80,0xd6,0x7f,0x00,0x00,0x00] v_s_exp_f32 s5, null -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, null ; encoding: [0x05,0x00,0x80,0xd6,0x7c,0x00,0x00,0x00] v_s_exp_f32 s5, -1 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, -1 ; encoding: [0x05,0x00,0x80,0xd6,0xc1,0x00,0x00,0x00] v_s_exp_f32 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, 0.5 ; encoding: [0x05,0x00,0x80,0xd6,0xf0,0x00,0x00,0x00] v_s_exp_f32 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, src_scc ; encoding: [0x05,0x00,0x80,0xd6,0xfd,0x00,0x00,0x00] v_s_exp_f32 s105, 0xaf123456 -// GFX12: encoding: [0x69,0x00,0x80,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_s_exp_f32 s105, 0xaf123456 ; encoding: [0x69,0x00,0x80,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] v_s_exp_f32 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_exp_f32 s5, -s1 ; encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x20] v_s_exp_f32 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x80,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, |s1| ; encoding: [0x05,0x01,0x80,0xd6,0x01,0x00,0x00,0x00] v_s_exp_f32 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x80,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_exp_f32 s5, s1 clamp ; encoding: [0x05,0x80,0x80,0xd6,0x01,0x00,0x00,0x00] v_s_exp_f32 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_exp_f32 s5, s1 mul:2 ; encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x08] v_s_exp_f32 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_exp_f32 s5, s1 mul:4 ; encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x10] v_s_exp_f32 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_exp_f32 s5, s1 div:2 ; encoding: [0x05,0x00,0x80,0xd6,0x01,0x00,0x00,0x18] v_s_exp_f16 s5, s1 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, s1 ; encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x00] v_s_exp_f16 s5, s105 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, s105 ; encoding: [0x05,0x00,0x81,0xd6,0x69,0x00,0x00,0x00] v_s_exp_f16 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, vcc_lo ; encoding: [0x05,0x00,0x81,0xd6,0x6a,0x00,0x00,0x00] v_s_exp_f16 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, vcc_hi ; encoding: [0x05,0x00,0x81,0xd6,0x6b,0x00,0x00,0x00] v_s_exp_f16 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, ttmp15 ; encoding: [0x05,0x00,0x81,0xd6,0x7b,0x00,0x00,0x00] v_s_exp_f16 s5, m0 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, m0 ; encoding: [0x05,0x00,0x81,0xd6,0x7d,0x00,0x00,0x00] v_s_exp_f16 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, exec_lo ; encoding: [0x05,0x00,0x81,0xd6,0x7e,0x00,0x00,0x00] v_s_exp_f16 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, exec_hi ; encoding: [0x05,0x00,0x81,0xd6,0x7f,0x00,0x00,0x00] v_s_exp_f16 s5, null -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, null ; encoding: [0x05,0x00,0x81,0xd6,0x7c,0x00,0x00,0x00] v_s_exp_f16 s5, -1 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, -1 ; encoding: [0x05,0x00,0x81,0xd6,0xc1,0x00,0x00,0x00] v_s_exp_f16 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, 0.5 ; encoding: [0x05,0x00,0x81,0xd6,0xf0,0x00,0x00,0x00] v_s_exp_f16 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, src_scc ; encoding: [0x05,0x00,0x81,0xd6,0xfd,0x00,0x00,0x00] v_s_exp_f16 s105, 0xaf12 -// GFX12: encoding: [0x69,0x00,0x81,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] +// GFX12: v_s_exp_f16 s105, 0xaf12 ; encoding: [0x69,0x00,0x81,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] v_s_exp_f16 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_exp_f16 s5, -s1 ; encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x20] v_s_exp_f16 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x81,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, |s1| ; encoding: [0x05,0x01,0x81,0xd6,0x01,0x00,0x00,0x00] v_s_exp_f16 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x81,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_exp_f16 s5, s1 clamp ; encoding: [0x05,0x80,0x81,0xd6,0x01,0x00,0x00,0x00] v_s_exp_f16 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_exp_f16 s5, s1 mul:2 ; encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x08] v_s_exp_f16 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_exp_f16 s5, s1 mul:4 ; encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x10] v_s_exp_f16 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_exp_f16 s5, s1 div:2 ; encoding: [0x05,0x00,0x81,0xd6,0x01,0x00,0x00,0x18] v_s_log_f32 s5, s1 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, s1 ; encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x00] v_s_log_f32 s5, s105 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, s105 ; encoding: [0x05,0x00,0x82,0xd6,0x69,0x00,0x00,0x00] v_s_log_f32 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, vcc_lo ; encoding: [0x05,0x00,0x82,0xd6,0x6a,0x00,0x00,0x00] v_s_log_f32 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, vcc_hi ; encoding: [0x05,0x00,0x82,0xd6,0x6b,0x00,0x00,0x00] v_s_log_f32 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, ttmp15 ; encoding: [0x05,0x00,0x82,0xd6,0x7b,0x00,0x00,0x00] v_s_log_f32 s5, m0 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, m0 ; encoding: [0x05,0x00,0x82,0xd6,0x7d,0x00,0x00,0x00] v_s_log_f32 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, exec_lo ; encoding: [0x05,0x00,0x82,0xd6,0x7e,0x00,0x00,0x00] v_s_log_f32 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, exec_hi ; encoding: [0x05,0x00,0x82,0xd6,0x7f,0x00,0x00,0x00] v_s_log_f32 s5, null -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, null ; encoding: [0x05,0x00,0x82,0xd6,0x7c,0x00,0x00,0x00] v_s_log_f32 s5, -1 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, -1 ; encoding: [0x05,0x00,0x82,0xd6,0xc1,0x00,0x00,0x00] v_s_log_f32 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, 0.5 ; encoding: [0x05,0x00,0x82,0xd6,0xf0,0x00,0x00,0x00] v_s_log_f32 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, src_scc ; encoding: [0x05,0x00,0x82,0xd6,0xfd,0x00,0x00,0x00] v_s_log_f32 s105, 0xaf123456 -// GFX12: encoding: [0x69,0x00,0x82,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_s_log_f32 s105, 0xaf123456 ; encoding: [0x69,0x00,0x82,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] v_s_log_f32 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_log_f32 s5, -s1 ; encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x20] v_s_log_f32 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x82,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, |s1| ; encoding: [0x05,0x01,0x82,0xd6,0x01,0x00,0x00,0x00] v_s_log_f32 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x82,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_log_f32 s5, s1 clamp ; encoding: [0x05,0x80,0x82,0xd6,0x01,0x00,0x00,0x00] v_s_log_f32 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_log_f32 s5, s1 mul:2 ; encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x08] v_s_log_f32 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_log_f32 s5, s1 mul:4 ; encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x10] v_s_log_f32 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_log_f32 s5, s1 div:2 ; encoding: [0x05,0x00,0x82,0xd6,0x01,0x00,0x00,0x18] v_s_log_f16 s5, s1 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, s1 ; encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x00] v_s_log_f16 s5, s105 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, s105 ; encoding: [0x05,0x00,0x83,0xd6,0x69,0x00,0x00,0x00] v_s_log_f16 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, vcc_lo ; encoding: [0x05,0x00,0x83,0xd6,0x6a,0x00,0x00,0x00] v_s_log_f16 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, vcc_hi ; encoding: [0x05,0x00,0x83,0xd6,0x6b,0x00,0x00,0x00] v_s_log_f16 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, ttmp15 ; encoding: [0x05,0x00,0x83,0xd6,0x7b,0x00,0x00,0x00] v_s_log_f16 s5, m0 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, m0 ; encoding: [0x05,0x00,0x83,0xd6,0x7d,0x00,0x00,0x00] v_s_log_f16 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, exec_lo ; encoding: [0x05,0x00,0x83,0xd6,0x7e,0x00,0x00,0x00] v_s_log_f16 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, exec_hi ; encoding: [0x05,0x00,0x83,0xd6,0x7f,0x00,0x00,0x00] v_s_log_f16 s5, null -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, null ; encoding: [0x05,0x00,0x83,0xd6,0x7c,0x00,0x00,0x00] v_s_log_f16 s5, -1 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, -1 ; encoding: [0x05,0x00,0x83,0xd6,0xc1,0x00,0x00,0x00] v_s_log_f16 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, 0.5 ; encoding: [0x05,0x00,0x83,0xd6,0xf0,0x00,0x00,0x00] v_s_log_f16 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, src_scc ; encoding: [0x05,0x00,0x83,0xd6,0xfd,0x00,0x00,0x00] v_s_log_f16 s105, 0xaf12 -// GFX12: encoding: [0x69,0x00,0x83,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] +// GFX12: v_s_log_f16 s105, 0xaf12 ; encoding: [0x69,0x00,0x83,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] v_s_log_f16 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_log_f16 s5, -s1 ; encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x20] v_s_log_f16 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x83,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, |s1| ; encoding: [0x05,0x01,0x83,0xd6,0x01,0x00,0x00,0x00] v_s_log_f16 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x83,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_log_f16 s5, s1 clamp ; encoding: [0x05,0x80,0x83,0xd6,0x01,0x00,0x00,0x00] v_s_log_f16 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_log_f16 s5, s1 mul:2 ; encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x08] v_s_log_f16 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_log_f16 s5, s1 mul:4 ; encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x10] v_s_log_f16 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_log_f16 s5, s1 div:2 ; encoding: [0x05,0x00,0x83,0xd6,0x01,0x00,0x00,0x18] v_s_rcp_f32 s5, s1 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, s1 ; encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x00] v_s_rcp_f32 s5, s105 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, s105 ; encoding: [0x05,0x00,0x84,0xd6,0x69,0x00,0x00,0x00] v_s_rcp_f32 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, vcc_lo ; encoding: [0x05,0x00,0x84,0xd6,0x6a,0x00,0x00,0x00] v_s_rcp_f32 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, vcc_hi ; encoding: [0x05,0x00,0x84,0xd6,0x6b,0x00,0x00,0x00] v_s_rcp_f32 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, ttmp15 ; encoding: [0x05,0x00,0x84,0xd6,0x7b,0x00,0x00,0x00] v_s_rcp_f32 s5, m0 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, m0 ; encoding: [0x05,0x00,0x84,0xd6,0x7d,0x00,0x00,0x00] v_s_rcp_f32 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, exec_lo ; encoding: [0x05,0x00,0x84,0xd6,0x7e,0x00,0x00,0x00] v_s_rcp_f32 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, exec_hi ; encoding: [0x05,0x00,0x84,0xd6,0x7f,0x00,0x00,0x00] v_s_rcp_f32 s5, null -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, null ; encoding: [0x05,0x00,0x84,0xd6,0x7c,0x00,0x00,0x00] v_s_rcp_f32 s5, -1 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, -1 ; encoding: [0x05,0x00,0x84,0xd6,0xc1,0x00,0x00,0x00] v_s_rcp_f32 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, 0.5 ; encoding: [0x05,0x00,0x84,0xd6,0xf0,0x00,0x00,0x00] v_s_rcp_f32 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, src_scc ; encoding: [0x05,0x00,0x84,0xd6,0xfd,0x00,0x00,0x00] v_s_rcp_f32 s105, 0xaf123456 -// GFX12: encoding: [0x69,0x00,0x84,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_s_rcp_f32 s105, 0xaf123456 ; encoding: [0x69,0x00,0x84,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] v_s_rcp_f32 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_rcp_f32 s5, -s1 ; encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x20] v_s_rcp_f32 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x84,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, |s1| ; encoding: [0x05,0x01,0x84,0xd6,0x01,0x00,0x00,0x00] v_s_rcp_f32 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x84,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rcp_f32 s5, s1 clamp ; encoding: [0x05,0x80,0x84,0xd6,0x01,0x00,0x00,0x00] v_s_rcp_f32 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_rcp_f32 s5, s1 mul:2 ; encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x08] v_s_rcp_f32 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_rcp_f32 s5, s1 mul:4 ; encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x10] v_s_rcp_f32 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_rcp_f32 s5, s1 div:2 ; encoding: [0x05,0x00,0x84,0xd6,0x01,0x00,0x00,0x18] v_s_rcp_f16 s5, s1 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, s1 ; encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x00] v_s_rcp_f16 s5, s105 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, s105 ; encoding: [0x05,0x00,0x85,0xd6,0x69,0x00,0x00,0x00] v_s_rcp_f16 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, vcc_lo ; encoding: [0x05,0x00,0x85,0xd6,0x6a,0x00,0x00,0x00] v_s_rcp_f16 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, vcc_hi ; encoding: [0x05,0x00,0x85,0xd6,0x6b,0x00,0x00,0x00] v_s_rcp_f16 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, ttmp15 ; encoding: [0x05,0x00,0x85,0xd6,0x7b,0x00,0x00,0x00] v_s_rcp_f16 s5, m0 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, m0 ; encoding: [0x05,0x00,0x85,0xd6,0x7d,0x00,0x00,0x00] v_s_rcp_f16 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, exec_lo ; encoding: [0x05,0x00,0x85,0xd6,0x7e,0x00,0x00,0x00] v_s_rcp_f16 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, exec_hi ; encoding: [0x05,0x00,0x85,0xd6,0x7f,0x00,0x00,0x00] v_s_rcp_f16 s5, null -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, null ; encoding: [0x05,0x00,0x85,0xd6,0x7c,0x00,0x00,0x00] v_s_rcp_f16 s5, -1 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, -1 ; encoding: [0x05,0x00,0x85,0xd6,0xc1,0x00,0x00,0x00] v_s_rcp_f16 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, 0.5 ; encoding: [0x05,0x00,0x85,0xd6,0xf0,0x00,0x00,0x00] v_s_rcp_f16 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, src_scc ; encoding: [0x05,0x00,0x85,0xd6,0xfd,0x00,0x00,0x00] v_s_rcp_f16 s105, 0xaf12 -// GFX12: encoding: [0x69,0x00,0x85,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] +// GFX12: v_s_rcp_f16 s105, 0xaf12 ; encoding: [0x69,0x00,0x85,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] v_s_rcp_f16 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_rcp_f16 s5, -s1 ; encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x20] v_s_rcp_f16 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x85,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, |s1| ; encoding: [0x05,0x01,0x85,0xd6,0x01,0x00,0x00,0x00] v_s_rcp_f16 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x85,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rcp_f16 s5, s1 clamp ; encoding: [0x05,0x80,0x85,0xd6,0x01,0x00,0x00,0x00] v_s_rcp_f16 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_rcp_f16 s5, s1 mul:2 ; encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x08] v_s_rcp_f16 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_rcp_f16 s5, s1 mul:4 ; encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x10] v_s_rcp_f16 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_rcp_f16 s5, s1 div:2 ; encoding: [0x05,0x00,0x85,0xd6,0x01,0x00,0x00,0x18] v_s_rsq_f32 s5, s1 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, s1 ; encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x00] v_s_rsq_f32 s5, s105 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, s105 ; encoding: [0x05,0x00,0x86,0xd6,0x69,0x00,0x00,0x00] v_s_rsq_f32 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, vcc_lo ; encoding: [0x05,0x00,0x86,0xd6,0x6a,0x00,0x00,0x00] v_s_rsq_f32 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, vcc_hi ; encoding: [0x05,0x00,0x86,0xd6,0x6b,0x00,0x00,0x00] v_s_rsq_f32 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, ttmp15 ; encoding: [0x05,0x00,0x86,0xd6,0x7b,0x00,0x00,0x00] v_s_rsq_f32 s5, m0 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, m0 ; encoding: [0x05,0x00,0x86,0xd6,0x7d,0x00,0x00,0x00] v_s_rsq_f32 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, exec_lo ; encoding: [0x05,0x00,0x86,0xd6,0x7e,0x00,0x00,0x00] v_s_rsq_f32 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, exec_hi ; encoding: [0x05,0x00,0x86,0xd6,0x7f,0x00,0x00,0x00] v_s_rsq_f32 s5, null -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, null ; encoding: [0x05,0x00,0x86,0xd6,0x7c,0x00,0x00,0x00] v_s_rsq_f32 s5, -1 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, -1 ; encoding: [0x05,0x00,0x86,0xd6,0xc1,0x00,0x00,0x00] v_s_rsq_f32 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, 0.5 ; encoding: [0x05,0x00,0x86,0xd6,0xf0,0x00,0x00,0x00] v_s_rsq_f32 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, src_scc ; encoding: [0x05,0x00,0x86,0xd6,0xfd,0x00,0x00,0x00] v_s_rsq_f32 s105, 0xaf123456 -// GFX12: encoding: [0x69,0x00,0x86,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_s_rsq_f32 s105, 0xaf123456 ; encoding: [0x69,0x00,0x86,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] v_s_rsq_f32 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_rsq_f32 s5, -s1 ; encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x20] v_s_rsq_f32 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x86,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, |s1| ; encoding: [0x05,0x01,0x86,0xd6,0x01,0x00,0x00,0x00] v_s_rsq_f32 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x86,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rsq_f32 s5, s1 clamp ; encoding: [0x05,0x80,0x86,0xd6,0x01,0x00,0x00,0x00] v_s_rsq_f32 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_rsq_f32 s5, s1 mul:2 ; encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x08] v_s_rsq_f32 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_rsq_f32 s5, s1 mul:4 ; encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x10] v_s_rsq_f32 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_rsq_f32 s5, s1 div:2 ; encoding: [0x05,0x00,0x86,0xd6,0x01,0x00,0x00,0x18] v_s_rsq_f16 s5, s1 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, s1 ; encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x00] v_s_rsq_f16 s5, s105 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, s105 ; encoding: [0x05,0x00,0x87,0xd6,0x69,0x00,0x00,0x00] v_s_rsq_f16 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, vcc_lo ; encoding: [0x05,0x00,0x87,0xd6,0x6a,0x00,0x00,0x00] v_s_rsq_f16 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, vcc_hi ; encoding: [0x05,0x00,0x87,0xd6,0x6b,0x00,0x00,0x00] v_s_rsq_f16 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, ttmp15 ; encoding: [0x05,0x00,0x87,0xd6,0x7b,0x00,0x00,0x00] v_s_rsq_f16 s5, m0 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, m0 ; encoding: [0x05,0x00,0x87,0xd6,0x7d,0x00,0x00,0x00] v_s_rsq_f16 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, exec_lo ; encoding: [0x05,0x00,0x87,0xd6,0x7e,0x00,0x00,0x00] v_s_rsq_f16 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, exec_hi ; encoding: [0x05,0x00,0x87,0xd6,0x7f,0x00,0x00,0x00] v_s_rsq_f16 s5, null -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, null ; encoding: [0x05,0x00,0x87,0xd6,0x7c,0x00,0x00,0x00] v_s_rsq_f16 s5, -1 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, -1 ; encoding: [0x05,0x00,0x87,0xd6,0xc1,0x00,0x00,0x00] v_s_rsq_f16 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, 0.5 ; encoding: [0x05,0x00,0x87,0xd6,0xf0,0x00,0x00,0x00] v_s_rsq_f16 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, src_scc ; encoding: [0x05,0x00,0x87,0xd6,0xfd,0x00,0x00,0x00] v_s_rsq_f16 s105, 0xaf12 -// GFX12: encoding: [0x69,0x00,0x87,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] +// GFX12: v_s_rsq_f16 s105, 0xaf12 ; encoding: [0x69,0x00,0x87,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] v_s_rsq_f16 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_rsq_f16 s5, -s1 ; encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x20] v_s_rsq_f16 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x87,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, |s1| ; encoding: [0x05,0x01,0x87,0xd6,0x01,0x00,0x00,0x00] v_s_rsq_f16 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x87,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_rsq_f16 s5, s1 clamp ; encoding: [0x05,0x80,0x87,0xd6,0x01,0x00,0x00,0x00] v_s_rsq_f16 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_rsq_f16 s5, s1 mul:2 ; encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x08] v_s_rsq_f16 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_rsq_f16 s5, s1 mul:4 ; encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x10] v_s_rsq_f16 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_rsq_f16 s5, s1 div:2 ; encoding: [0x05,0x00,0x87,0xd6,0x01,0x00,0x00,0x18] v_s_sqrt_f32 s5, s1 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, s1 ; encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x00] v_s_sqrt_f32 s5, s105 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, s105 ; encoding: [0x05,0x00,0x88,0xd6,0x69,0x00,0x00,0x00] v_s_sqrt_f32 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, vcc_lo ; encoding: [0x05,0x00,0x88,0xd6,0x6a,0x00,0x00,0x00] v_s_sqrt_f32 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, vcc_hi ; encoding: [0x05,0x00,0x88,0xd6,0x6b,0x00,0x00,0x00] v_s_sqrt_f32 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, ttmp15 ; encoding: [0x05,0x00,0x88,0xd6,0x7b,0x00,0x00,0x00] v_s_sqrt_f32 s5, m0 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, m0 ; encoding: [0x05,0x00,0x88,0xd6,0x7d,0x00,0x00,0x00] v_s_sqrt_f32 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, exec_lo ; encoding: [0x05,0x00,0x88,0xd6,0x7e,0x00,0x00,0x00] v_s_sqrt_f32 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, exec_hi ; encoding: [0x05,0x00,0x88,0xd6,0x7f,0x00,0x00,0x00] v_s_sqrt_f32 s5, null -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, null ; encoding: [0x05,0x00,0x88,0xd6,0x7c,0x00,0x00,0x00] v_s_sqrt_f32 s5, -1 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, -1 ; encoding: [0x05,0x00,0x88,0xd6,0xc1,0x00,0x00,0x00] v_s_sqrt_f32 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, 0.5 ; encoding: [0x05,0x00,0x88,0xd6,0xf0,0x00,0x00,0x00] v_s_sqrt_f32 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, src_scc ; encoding: [0x05,0x00,0x88,0xd6,0xfd,0x00,0x00,0x00] v_s_sqrt_f32 s105, 0xaf123456 -// GFX12: encoding: [0x69,0x00,0x88,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_s_sqrt_f32 s105, 0xaf123456 ; encoding: [0x69,0x00,0x88,0xd6,0xff,0x00,0x00,0x00,0x56,0x34,0x12,0xaf] v_s_sqrt_f32 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_sqrt_f32 s5, -s1 ; encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x20] v_s_sqrt_f32 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x88,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, |s1| ; encoding: [0x05,0x01,0x88,0xd6,0x01,0x00,0x00,0x00] v_s_sqrt_f32 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x88,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f32 s5, s1 clamp ; encoding: [0x05,0x80,0x88,0xd6,0x01,0x00,0x00,0x00] v_s_sqrt_f32 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_sqrt_f32 s5, s1 mul:2 ; encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x08] v_s_sqrt_f32 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_sqrt_f32 s5, s1 mul:4 ; encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x10] v_s_sqrt_f32 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_sqrt_f32 s5, s1 div:2 ; encoding: [0x05,0x00,0x88,0xd6,0x01,0x00,0x00,0x18] v_s_sqrt_f16 s5, s1 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, s1 ; encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x00] v_s_sqrt_f16 s5, s105 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x69,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, s105 ; encoding: [0x05,0x00,0x89,0xd6,0x69,0x00,0x00,0x00] v_s_sqrt_f16 s5, vcc_lo -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x6a,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, vcc_lo ; encoding: [0x05,0x00,0x89,0xd6,0x6a,0x00,0x00,0x00] v_s_sqrt_f16 s5, vcc_hi -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x6b,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, vcc_hi ; encoding: [0x05,0x00,0x89,0xd6,0x6b,0x00,0x00,0x00] v_s_sqrt_f16 s5, ttmp15 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x7b,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, ttmp15 ; encoding: [0x05,0x00,0x89,0xd6,0x7b,0x00,0x00,0x00] v_s_sqrt_f16 s5, m0 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x7d,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, m0 ; encoding: [0x05,0x00,0x89,0xd6,0x7d,0x00,0x00,0x00] v_s_sqrt_f16 s5, exec_lo -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x7e,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, exec_lo ; encoding: [0x05,0x00,0x89,0xd6,0x7e,0x00,0x00,0x00] v_s_sqrt_f16 s5, exec_hi -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x7f,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, exec_hi ; encoding: [0x05,0x00,0x89,0xd6,0x7f,0x00,0x00,0x00] v_s_sqrt_f16 s5, null -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x7c,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, null ; encoding: [0x05,0x00,0x89,0xd6,0x7c,0x00,0x00,0x00] v_s_sqrt_f16 s5, -1 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0xc1,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, -1 ; encoding: [0x05,0x00,0x89,0xd6,0xc1,0x00,0x00,0x00] v_s_sqrt_f16 s5, 0.5 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0xf0,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, 0.5 ; encoding: [0x05,0x00,0x89,0xd6,0xf0,0x00,0x00,0x00] v_s_sqrt_f16 s5, src_scc -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0xfd,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, src_scc ; encoding: [0x05,0x00,0x89,0xd6,0xfd,0x00,0x00,0x00] v_s_sqrt_f16 s105, 0xaf12 -// GFX12: encoding: [0x69,0x00,0x89,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] +// GFX12: v_s_sqrt_f16 s105, 0xaf12 ; encoding: [0x69,0x00,0x89,0xd6,0xff,0x00,0x00,0x00,0x12,0xaf,0x00,0x00] v_s_sqrt_f16 s5, -s1 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x20] +// GFX12: v_s_sqrt_f16 s5, -s1 ; encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x20] v_s_sqrt_f16 s5, |s1| -// GFX12: encoding: [0x05,0x01,0x89,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, |s1| ; encoding: [0x05,0x01,0x89,0xd6,0x01,0x00,0x00,0x00] v_s_sqrt_f16 s5, s1 clamp -// GFX12: encoding: [0x05,0x80,0x89,0xd6,0x01,0x00,0x00,0x00] +// GFX12: v_s_sqrt_f16 s5, s1 clamp ; encoding: [0x05,0x80,0x89,0xd6,0x01,0x00,0x00,0x00] v_s_sqrt_f16 s5, s1 mul:2 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x08] +// GFX12: v_s_sqrt_f16 s5, s1 mul:2 ; encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x08] v_s_sqrt_f16 s5, s1 mul:4 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x10] +// GFX12: v_s_sqrt_f16 s5, s1 mul:4 ; encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x10] v_s_sqrt_f16 s5, s1 div:2 -// GFX12: encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x18] +// GFX12: v_s_sqrt_f16 s5, s1 div:2 ; encoding: [0x05,0x00,0x89,0xd6,0x01,0x00,0x00,0x18] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s index 56bd0ee4b4746..6b7b2ac4d3cc5 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp16.s @@ -1,1256 +1,1257 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 %s 2>&1 | FileCheck --check-prefixes=GFX12-ERR,W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 %s 2>&1 | FileCheck --check-prefixes=GFX12-ERR,W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefixes=GFX12-ERR,W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefixes=GFX12-ERR,W64-ERR --implicit-check-not=error: %s v_add3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_add3_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_add3_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_add3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_add3_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_add3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_add3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x55,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_add3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x55,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_add3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x55,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_add_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_mirror -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, s2 row_mirror -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x00,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, s2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x00,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 -// W32: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 -// W32: [0x05,0x69,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, s2 row_half_mirror -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x00,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, s2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x00,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 -// W64: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x00,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xfc,0x00,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_add_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x00,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_add_lshl_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_add_lshl_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_add_lshl_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_add_lshl_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_add_lshl_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x47,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_add_lshl_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x47,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_add_lshl_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x47,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc0,0x0d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x0d,0x30] +// GFX12: v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc0,0x0d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x0d,0x30] v_add_nc_i16_e64_dpp v255.l, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x0d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_add_nc_i16_e64_dpp v255.l, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x0d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x10,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x01,0x13] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x10,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x01,0x13] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xc0,0x0d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xc0,0x0d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_add_nc_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x26,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_i32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x26,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_add_nc_i32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x26,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc0,0x03,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x0d,0x30] +// GFX12: v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc0,0x03,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x0d,0x30] v_add_nc_u16_e64_dpp v255.l, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x03,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_add_nc_u16_e64_dpp v255.l, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x03,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x10,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x01,0x13] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x10,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x01,0x13] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x03,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xc0,0x03,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xc0,0x03,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_alignbit_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_alignbit_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_alignbit_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_alignbit_b32_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_alignbit_b32_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x16,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_alignbit_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x16,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_alignbit_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x16,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_alignbyte_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_alignbyte_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_alignbyte_b32_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_alignbyte_b32_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x17,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_alignbyte_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x17,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_alignbyte_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x17,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_and_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_and_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_and_b16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_and_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_and_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x62,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_and_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x62,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_and_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x62,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_and_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_and_or_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_and_or_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_and_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_and_or_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_and_or_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_and_or_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x57,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_and_or_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x57,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_and_or_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x57,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_ashrrev_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x3a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_ashrrev_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x3a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_ashrrev_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_ashrrev_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ashrrev_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x3a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_ashrrev_i16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x40,0x3a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_ashrrev_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x3a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_bcnt_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_bcnt_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_bcnt_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_bfe_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_bfe_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_bfe_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_bfe_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_bfe_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_bfe_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_bfe_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x11,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_bfe_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x11,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_bfe_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x11,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_bfe_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_bfe_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_bfe_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_bfe_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_bfe_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_bfe_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_bfe_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x10,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_bfe_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x10,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_bfe_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x10,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_bfi_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_bfi_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_bfi_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_bfi_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_bfi_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_bfi_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_bfi_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x12,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_bfi_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x12,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_bfi_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x12,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_bfm_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_bfm_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_bfm_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_bfm_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1d,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_bfm_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_bfm_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1d,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cndmask_b16_e64_dpp v5, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_mirror -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, s2, s3 row_mirror -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0c,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, s2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0c,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, 10, s3 row_mirror -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x14,0x0d,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, 10, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x14,0x0d,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_half_mirror -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shl:1 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shl:15 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shr:1 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shr:15 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_ror:1 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s105 row_ror:15 -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x01,0x5d,0xd6,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x5d,0xd6,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x02,0x5d,0xd6,0xfa,0x04,0xee,0x21,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x5d,0xd6,0xfa,0x04,0xee,0x21,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_mirror -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, s2, s[6:7] row_half_mirror -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x18,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, s2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x18,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, 10, s[6:7] row_half_mirror -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x14,0x19,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, 10, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x14,0x19,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5d,0xd6,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x01,0x5d,0xd6,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x5d,0xd6,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x02,0x5d,0xd6,0xfa,0x04,0xea,0x21,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x5d,0xd6,0xfa,0x04,0xea,0x21,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v255, -|v255|, -|v255|, null row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x5d,0xd6,0xfa,0xfe,0xf3,0x61,0xff,0x6f,0x05,0x30] +// GFX12: v_cndmask_b16_e64_dpp v255, -|v255|, -|v255|, null row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x5d,0xd6,0xfa,0xfe,0xf3,0x61,0xff,0x6f,0x05,0x30] v_cubeid_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cubeid_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_cubeid_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cubeid_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x0c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x0c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_cubeid_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x0c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x0c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_cubeid_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x0c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x0c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_cubeid_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x0c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_cubeid_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x0c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_cubeid_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x0c,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_cubeid_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x0c,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_cubeid_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x0c,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x0c,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_cubeid_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x0c,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_cubeid_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x0c,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_cubema_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cubema_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_cubema_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_cubema_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cubema_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cubema_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x0f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x0f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_cubema_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x0f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x0f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_cubema_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x0f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x0f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_cubema_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x0f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_cubema_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x0f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_cubema_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x0f,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_cubema_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x0f,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_cubema_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x0f,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_cubema_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x0f,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_cubema_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x0f,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_cubema_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x0f,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_cubesc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cubesc_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_cubesc_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cubesc_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x0d,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x0d,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_cubesc_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x0d,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x0d,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_cubesc_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x0d,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x0d,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_cubesc_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x0d,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_cubesc_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x0d,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_cubesc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x0d,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_cubesc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x0d,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_cubesc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x0d,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x0d,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_cubesc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x0d,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_cubesc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x0d,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_cubetc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cubetc_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_cubetc_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cubetc_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x0e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x0e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_cubetc_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x0e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x0e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_cubetc_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x0e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x0e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_cubetc_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x0e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_cubetc_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x0e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_cubetc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x0e,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_cubetc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x0e,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_cubetc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x0e,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x0e,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_cubetc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x0e,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_cubetc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x0e,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[0,1,2,3] -// GFX12: encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0xe4,0x00,0xff] v_cvt_pk_bf8_f32_e64_dpp v6, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x06,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v6, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x06,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] v_cvt_pk_bf8_f32_e64_dpp v1, -v6, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x06,0x1b,0x00,0xed] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v1, -v6, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x06,0x1b,0x00,0xed] v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v255| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x6a,0xd7,0xfa,0xfe,0x03,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v255| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x02,0x6a,0xd7,0xfa,0xfe,0x03,0x20,0x02,0x1b,0x00,0xed] v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[0,2,1,3] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0xd8,0x00,0xed] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[0,2,1,3] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0xd8,0x00,0xed] v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0x2 bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0x2d] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0x2 bank_mask:0xd ; encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0x2d] v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0x5 -// GFX12: encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xe5] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0x5 ; encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xe5] v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd fi:1 -// GFX12: encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x04,0xed] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd fi:1 ; encoding: [0x01,0x02,0x6a,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x04,0xed] v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[0,1,2,3] -// GFX12: encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0xe4,0x00,0xff] v_cvt_pk_fp8_f32_e64_dpp v6, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x06,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v6, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x06,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] v_cvt_pk_fp8_f32_e64_dpp v1, -v6, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x06,0x1b,0x00,0xed] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v1, -v6, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x06,0x1b,0x00,0xed] v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v255| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x69,0xd7,0xfa,0xfe,0x03,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v255| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x02,0x69,0xd7,0xfa,0xfe,0x03,0x20,0x02,0x1b,0x00,0xed] v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[0,2,1,3] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0xd8,0x00,0xed] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[0,2,1,3] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0xd8,0x00,0xed] v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0x2 bank_mask:0xd -// GFX12: encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0x2d] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0x2 bank_mask:0xd ; encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0x2d] v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0x5 -// GFX12: encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xe5] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0x5 ; encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xe5] v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd fi:1 -// GFX12: encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x04,0xed] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v1, -v2, |v3| quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd fi:1 ; encoding: [0x01,0x02,0x69,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x04,0xed] v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0xe4,0x00,0xff] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0xe4,0x00,0xff] v_cvt_sr_bf8_f32_e64_dpp v6, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x06,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v6, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x06,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] v_cvt_sr_bf8_f32_e64_dpp v1, -v6, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x06,0x1b,0x00,0xed] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, -v6, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x06,0x1b,0x00,0xed] v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v255 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6c,0xd7,0xfa,0xfe,0x03,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v255 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x00,0x6c,0xd7,0xfa,0xfe,0x03,0x20,0x02,0x1b,0x00,0xed] v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[0,2,1,3] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0xd8,0x00,0xed] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[0,2,1,3] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0xd8,0x00,0xed] v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0x2 bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0x2d] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0x2 bank_mask:0xd ; encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0x2d] v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0x5 -// GFX12: encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xe5] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0x5 ; encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xe5] v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd fi:1 -// GFX12: encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x04,0xed] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd fi:1 ; encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x04,0xed] v_cvt_sr_bf8_f32 v1, v2, v3 byte_sel:0 quad_perm:[3,2,1,0] // GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x01,0x00,0x6c,0xd7,0xfa,0x06,0x02,0x00,0x02,0x1b,0x00,0xff] @@ -1265,31 +1266,31 @@ v_cvt_sr_bf8_f32 v1, v2, v3 byte_sel:3 quad_perm:[3,2,1,0] // GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, v2, v3 byte_sel:3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x01,0x60,0x6c,0xd7,0xfa,0x06,0x02,0x00,0x02,0x1b,0x00,0xff] v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0xe4,0x00,0xff] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0xe4,0x00,0xff] v_cvt_sr_fp8_f32_e64_dpp v6, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x06,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v6, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x06,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xed] v_cvt_sr_fp8_f32_e64_dpp v1, -v6, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x06,0x1b,0x00,0xed] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, -v6, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x06,0x1b,0x00,0xed] v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v255 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6b,0xd7,0xfa,0xfe,0x03,0x20,0x02,0x1b,0x00,0xed] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v255 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x00,0x6b,0xd7,0xfa,0xfe,0x03,0x20,0x02,0x1b,0x00,0xed] v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[0,2,1,3] row_mask:0xe bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0xd8,0x00,0xed] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[0,2,1,3] row_mask:0xe bank_mask:0xd ; encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0xd8,0x00,0xed] v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0x2 bank_mask:0xd -// GFX12: encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0x2d] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0x2 bank_mask:0xd ; encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0x2d] v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0x5 -// GFX12: encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xe5] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0x5 ; encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x00,0xe5] v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd fi:1 -// GFX12: encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x04,0xed] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, -v2, v3 quad_perm:[3,2,1,0] row_mask:0xe bank_mask:0xd fi:1 ; encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x20,0x02,0x1b,0x04,0xed] v_cvt_sr_fp8_f32 v1, v2, v3 byte_sel:0 quad_perm:[3,2,1,0] // GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x01,0x00,0x6b,0xd7,0xfa,0x06,0x02,0x00,0x02,0x1b,0x00,0xff] @@ -1304,4605 +1305,4521 @@ v_cvt_sr_fp8_f32 v1, v2, v3 byte_sel:3 quad_perm:[3,2,1,0] // GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, v2, v3 byte_sel:3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x01,0x60,0x6b,0xd7,0xfa,0x06,0x02,0x00,0x02,0x1b,0x00,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_i16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x06,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x06,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_i16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x06,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x06,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_i16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x06,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x06,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x24,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cvt_pk_i16_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x24,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x24,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x12,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x12,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x13,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x13,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_u16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x07,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x07,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_u16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x07,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x07,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_u16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x07,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x07,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x23,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cvt_pk_u16_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x23,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x23,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x26,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_cvt_pk_u8_f32_e64_dpp v255, -|v255|, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x01,0x26,0xd6,0xfa,0xfe,0xf7,0x23,0xff,0x6f,0x05,0x30] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x12,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x12,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] - -v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v255, -|v255|, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x01,0x26,0xd6,0xfa,0xfe,0xf7,0x23,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_norm_i16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x21,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x21,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_norm_i16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x21,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x21,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_norm_i16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x21,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x13,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x13,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] - -v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x21,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_norm_u16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x22,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x22,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_norm_u16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x22,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x22,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_norm_u16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x22,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x22,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_div_fixup_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_div_fixup_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_div_fixup_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x54,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_div_fixup_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x54,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x54,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x54,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x54,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x54,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x54,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x54,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x54,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x54,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x54,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x54,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x54,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x54,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX12: v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x54,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_fma_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_fma_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_fma_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_fma_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_fma_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_fma_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_fma_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_fma_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_fma_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x48,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_fma_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x48,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x48,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_fma_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x48,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x48,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x48,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x48,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x48,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x48,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x48,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x48,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x48,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX12: v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x48,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x48,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX12: v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x48,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_fma_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_fma_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_fma_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_fma_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_fma_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_fma_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_fma_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_fma_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_fma_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_fma_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x13,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_fma_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x13,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_fma_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x13,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_fma_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x13,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_fma_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x13,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_fma_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x13,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_fma_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x13,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_fma_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x13,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_fma_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x13,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_fma_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x13,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_fma_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x13,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_fma_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x13,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_fma_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x13,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_fma_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x13,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_ldexp_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ldexp_f32_e64_dpp v5, v1, v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x08,0x01,0x5f,0x01,0x01] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x08,0x01,0x5f,0x01,0x01] v_ldexp_f32_e64_dpp v5, v1, v2 mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x10,0x01,0x60,0x09,0x13] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1c,0xd7,0xfa,0x04,0x02,0x10,0x01,0x60,0x09,0x13] v_ldexp_f32_e64_dpp v255, -|v255|, v255 clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x81,0x1c,0xd7,0xfa,0xfe,0x03,0x38,0xff,0x6f,0x05,0x30] +// GFX12: v_ldexp_f32_e64_dpp v255, -|v255|, v255 clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x81,0x1c,0xd7,0xfa,0xfe,0x03,0x38,0xff,0x6f,0x05,0x30] v_lerp_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_lerp_u8_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_lerp_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_lerp_u8_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_lerp_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_lerp_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x15,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_lerp_u8_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x15,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_lerp_u8_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x15,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_lshl_add_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_lshl_add_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_lshl_add_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_lshl_add_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_lshl_add_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x46,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_lshl_add_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x46,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_lshl_add_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x46,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_lshl_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_lshl_or_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_lshl_or_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_lshl_or_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_lshl_or_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x56,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_lshl_or_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x56,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_lshl_or_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x56,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_lshlrev_b16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x38,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_lshlrev_b16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x38,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshlrev_b16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_lshlrev_b16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshlrev_b16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x38,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshlrev_b16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x40,0x38,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_lshlrev_b16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x38,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_lshrrev_b16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x39,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_lshrrev_b16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x39,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshrrev_b16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_lshrrev_b16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshrrev_b16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x39,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshrrev_b16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x40,0x39,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_lshrrev_b16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x39,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mad_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_mad_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_mad_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_mad_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x53,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_mad_i16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x53,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_mad_i16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x53,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_i32_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_i32_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_mad_i32_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_mad_i32_i16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x5a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x5a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x5a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_i32_i24_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_i32_i24_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_mad_i32_i24_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_mad_i32_i24_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_mad_i32_i24_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_mad_i32_i24_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x0a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_mad_i32_i24_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x0a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_mad_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_mad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_mad_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x41,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_mad_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x41,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_mad_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x41,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_u32_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_u32_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_mad_u32_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_mad_u32_u16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x59,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x59,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x59,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mad_u32_u24_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mad_u32_u24_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_mad_u32_u24_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_mad_u32_u24_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_mad_u32_u24_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0b,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_mad_u32_u24_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x0b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_mad_u32_u24_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x0b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_max3_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2c,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_max3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_num_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_max3_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_max3_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_max3_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_max3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x2c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x2c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_max3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x2c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x2c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_max3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x2c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x2c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_max3_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x2c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x2c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_max3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x2c,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_max3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x2c,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_max3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x2c,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x2c,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_max3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x2c,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX12: v_max3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x2c,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_max3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_max3_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2a,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_max3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_num_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_max3_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_max3_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_max3_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_max3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x2a,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x2a,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_max3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x2a,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x2a,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_max3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x2a,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x2a,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_max3_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x2a,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_max3_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x2a,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_max3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x2a,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_max3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x2a,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_max3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x2a,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x2a,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_max3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x2a,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_max3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x2a,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_max3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_max3_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_max3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_max3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x4d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_max3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x4d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_max3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x4d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_max3_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_max3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_max3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_max3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1d,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_max3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_max3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_max3_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_max3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_max3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x4e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_max3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x4e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_max3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x4e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_max3_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_max3_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_max3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_max3_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_max3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_max3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1e,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_max3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_max3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_max_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x0a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_max_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_max_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_max_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0a,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_i16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x40,0x0a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_max_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x0a,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x09,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_max_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x09,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_max_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_max_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x09,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_u16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x40,0x09,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_max_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x09,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_maxmin_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maxmin_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_maxmin_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6b,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_maxmin_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maxmin_num_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maxmin_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maxmin_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maxmin_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maxmin_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maxmin_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x6b,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x6b,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_maxmin_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x6b,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x6b,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_maxmin_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x6b,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x6b,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_maxmin_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x6b,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_maxmin_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x6b,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_maxmin_num_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x6b,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_maxmin_num_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x6b,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_maxmin_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x6b,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x6b,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_maxmin_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x6b,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_maxmin_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x6b,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_maxmin_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x69,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maxmin_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x69,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_maxmin_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x69,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_maxmin_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x69,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x69,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maxmin_num_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x69,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x69,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maxmin_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x69,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x69,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maxmin_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x69,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x69,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maxmin_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x69,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x69,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maxmin_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x69,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x69,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maxmin_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x69,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x69,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_maxmin_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x69,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x69,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_maxmin_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x69,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x69,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_maxmin_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x69,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_maxmin_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x69,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_maxmin_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x69,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_maxmin_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x69,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_maxmin_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x69,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x69,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_maxmin_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x69,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_maxmin_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x69,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_maxmin_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maxmin_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_maxmin_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_maxmin_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_maxmin_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x64,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_maxmin_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x64,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_maxmin_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x64,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_maxmin_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maxmin_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_maxmin_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_maxmin_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_maxmin_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x62,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_maxmin_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x62,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_maxmin_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x62,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x20,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mbcnt_hi_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x20,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x20,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1f,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mbcnt_lo_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1f,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1f,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_med3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_med3_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_med3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x32,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_num_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x32,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x32,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_med3_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x32,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_med3_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x32,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_med3_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x32,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_med3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x32,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x32,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_med3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x32,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x32,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_med3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x32,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x32,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_med3_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x32,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x32,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_med3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x32,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_med3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x32,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_med3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x32,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x32,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_med3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x32,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX12: v_med3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x32,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_med3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_med3_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_med3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x31,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_num_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x31,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x31,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_med3_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x31,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_med3_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x31,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_med3_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x31,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_med3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x31,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x31,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_med3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x31,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x31,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_med3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x31,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x31,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_med3_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x31,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_med3_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x31,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_med3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x31,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_med3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x31,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_med3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x31,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x31,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_med3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x31,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_med3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x31,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_med3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_med3_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_med3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_med3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x50,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_med3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x50,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_med3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x50,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_med3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_med3_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_med3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_med3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_med3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x20,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_med3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x20,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_med3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x20,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_med3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_med3_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_med3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_med3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x51,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_med3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x51,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_med3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x51,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_med3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_med3_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_med3_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_med3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_med3_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_med3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_med3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x21,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_med3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x21,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_med3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x21,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_min3_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_min3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_num_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_min3_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_min3_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_min3_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_min3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x2b,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x2b,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_min3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x2b,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x2b,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_min3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x2b,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x2b,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_min3_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x2b,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x2b,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_min3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x2b,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_min3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x2b,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_min3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x2b,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x2b,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_min3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x2b,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX12: v_min3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x2b,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_min3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x29,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x29,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_min3_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x29,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_min3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x29,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x29,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_num_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x29,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x29,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x29,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x29,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_min3_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x29,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x29,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_min3_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x29,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x29,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_min3_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x29,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x29,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_min3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x29,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x29,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_min3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x29,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x29,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_min3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x29,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x29,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_min3_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x29,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_min3_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x29,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_min3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x29,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_min3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x29,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_min3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x29,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x29,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_min3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x29,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_min3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x29,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_min3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_min3_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_min3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_i16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_min3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x4a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_min3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x4a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_min3_i16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x4a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_min3_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_min3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_min3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_min3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_min3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_min3_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_min3_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_min3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, v3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x41,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, v255 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x01,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, s105 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x0f,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, vcc_hi row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x11,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x1f,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, ttmp15 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x21,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, exec_hi row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, exec_lo row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, null row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_min3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, -1 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x4b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x09,0x13] v_min3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x4b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_min3_u16_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x4b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_min3_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_min3_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_min3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_min3_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_min3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_min3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1b,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_min3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_min3_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_min_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x0c,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_min_i16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0c,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_min_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_min_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0c,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_i16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x40,0x0c,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_min_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x0c,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x0b,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_min_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0b,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_min_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_min_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0b,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_u16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x40,0x0b,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_min_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x0b,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_minmax_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minmax_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_minmax_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6a,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_minmax_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minmax_num_f16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minmax_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minmax_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minmax_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minmax_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6a,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minmax_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x6a,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x6a,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_minmax_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x6a,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x6a,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_minmax_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x6a,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x6a,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_minmax_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x6a,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_minmax_num_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x6a,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_minmax_num_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x6a,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_minmax_num_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x6a,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_minmax_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x6a,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x6a,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_minmax_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x6a,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_minmax_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x6a,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_minmax_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minmax_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_minmax_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_minmax_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x68,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minmax_num_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x68,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minmax_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x68,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minmax_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x68,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minmax_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x68,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minmax_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x68,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minmax_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x68,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x68,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_minmax_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x68,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x68,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_minmax_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x68,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x68,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_minmax_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x68,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_minmax_num_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x68,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_minmax_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x68,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_minmax_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x68,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_minmax_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x68,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x68,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_minmax_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x68,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_minmax_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x68,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_minmax_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minmax_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_minmax_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_minmax_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minmax_i32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_minmax_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_minmax_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x65,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_minmax_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x65,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_minmax_i32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x65,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_minmax_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minmax_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_minmax_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_minmax_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minmax_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_minmax_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_minmax_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x63,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_minmax_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x63,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_minmax_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x63,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_msad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_msad_u8_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_msad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_msad_u8_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_msad_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_msad_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x39,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_msad_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x39,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_msad_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x39,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_mul_lo_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x05,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_lo_u16_e64_dpp v255.l, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x05,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_lo_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_lo_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_lo_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x05,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_lo_u16_e64_dpp v255.h, v255.l, v255.l row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x40,0x05,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_lo_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x40,0x05,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mullit_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_mullit_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_mullit_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_mullit_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_mullit_f32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_mullit_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x18,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x18,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_mullit_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x18,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x18,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_mullit_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x18,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x18,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_mullit_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x18,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_mullit_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x18,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_mullit_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x18,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_mullit_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x18,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_mullit_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x18,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_mullit_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x18,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_mullit_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x18,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_mullit_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x18,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_or3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_or3_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_or3_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_or3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_or3_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_or3_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_or3_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x58,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_or3_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x58,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_or3_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x58,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_or_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_or_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_or_b16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_or_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_or_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x63,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_or_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x63,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_or_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x63,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_pack_b32_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_pack_b32_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_pack_b32_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x11,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_pack_b32_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x11,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_pack_b32_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x11,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_pack_b32_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x11,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x11,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x11,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_perm_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_perm_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_perm_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_perm_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_perm_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_perm_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_perm_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x44,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_perm_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x44,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_perm_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x44,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sad_hi_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_sad_hi_u8_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_sad_hi_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_sad_hi_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x23,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_sad_hi_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x23,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_sad_hi_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x23,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_sad_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_sad_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_sad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_sad_u16_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_sad_u16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_sad_u16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x24,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_sad_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x24,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_sad_u16_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x24,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_sad_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_sad_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_sad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_sad_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_sad_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_sad_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x25,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_sad_u32_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x25,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_sad_u32_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x25,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_sad_u8_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_sad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_sad_u8_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_sad_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_sad_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x22,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_sad_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x22,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_sad_u8_e64_dpp v255, v255, v255, src_scc clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x22,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_sub_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_mirror -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, s2 row_mirror -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x00,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, s2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x00,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 -// W32: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 -// W32: [0x05,0x69,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, s2 row_half_mirror -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x00,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, s2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x00,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 -// W64: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x01,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xfc,0x01,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x01,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc0,0x0e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x0d,0x30] +// GFX12: v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc0,0x0e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x0d,0x30] v_sub_nc_i16_e64_dpp v255.l, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x0e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_nc_i16_e64_dpp v255.l, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x0e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x10,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x01,0x13] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x10,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x01,0x13] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x0e,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xc0,0x0e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xc0,0x0e,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_nc_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x25,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_i32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x25,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_nc_i32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x25,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc0,0x04,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x0d,0x30] +// GFX12: v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc0,0x04,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x0d,0x30] v_sub_nc_u16_e64_dpp v255.l, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x04,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_nc_u16_e64_dpp v255.l, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x04,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x10,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x01,0x13] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x10,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x01,0x13] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_mirror -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x58,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x58,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x08,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x08,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x10,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x10,0x04,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xc0,0x04,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xc0,0x04,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_subrev_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_mirror -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, s2 row_mirror -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x00,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, s2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x00,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 -// W32: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 -// W32: [0x05,0x69,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, s2 row_half_mirror -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x00,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, s2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x00,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 -// W64: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x02,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xfc,0x02,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_subrev_co_u32_e64_dpp v255, null, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x02,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_xad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_xad_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_xad_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_xad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_xad_u32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_xad_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_xad_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x45,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_xad_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x45,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_xad_u32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x45,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_xor3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_xor3_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_xor3_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, 10, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x14,0x0d,0x04,0x01,0x1b,0x00,0xff] v_xor3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_xor3_b32_e64_dpp v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xee,0x01,0x01,0x1f,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x21,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, exec_lo row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x2f,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x50,0x01,0xff] v_xor3_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, -1 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0x06,0x03,0x01,0x5f,0x01,0x01] v_xor3_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, 0.5 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x40,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x09,0x13] v_xor3_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x40,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] +// GFX12: v_xor3_b32_e64_dpp v255, v255, v255, src_scc row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x40,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x05,0x30] v_xor_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_xor_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_xor_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_xor_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x64,0xd7,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_xor_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x64,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_xor_b16_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x64,0xd7,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x0a,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x0a,0x12,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x13,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x13,0x12,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x0a,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x0a,0x13,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x13,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x13,0x13,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x7c,0x54,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x54,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x0b,0x54,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x54,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x15,0x54,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x54,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x26,0x54,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x54,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc7,0x54,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX12: v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x54,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x7c,0x48,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x48,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x0b,0x48,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x48,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x15,0x48,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x48,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x26,0x48,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX12: v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x48,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc7,0x48,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX12: v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x48,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_mad_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x78,0x53,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x53,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x08,0x53,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x53,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_mad_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x10,0x53,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x53,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_mad_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x20,0x53,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x53,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_mad_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc0,0x53,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_mad_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc0,0x53,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x08,0x5a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x08,0x5a,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x01,0x13] v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x90,0x5a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x90,0x5a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_mad_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x78,0x41,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x41,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x08,0x41,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x41,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_mad_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x10,0x41,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x41,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_mad_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x20,0x41,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x41,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_mad_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc0,0x41,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_mad_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc0,0x41,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x08,0x59,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x08,0x59,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x60,0x01,0x13] v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x90,0x59,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x90,0x59,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_max3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x7c,0x2c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x2c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_max3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x0b,0x2c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_max3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x2c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_max3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x15,0x2c,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_max3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x2c,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_max3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x26,0x2c,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x2c,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_max3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc7,0x2c,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX12: v_max3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x2c,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_max3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x78,0x4d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x4d,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x08,0x4d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x4d,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_max3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x10,0x4d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x4d,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_max3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x20,0x4d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x4d,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_max3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x40,0x4d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_max3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x4d,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_max3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x78,0x4e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x4e,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x08,0x4e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x4e,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_max3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x10,0x4e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x4e,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_max3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x20,0x4e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x4e,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_max3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x40,0x4e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_max3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x4e,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_med3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x7c,0x32,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x32,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_med3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x0b,0x32,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_med3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x32,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_med3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x15,0x32,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_med3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x32,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_med3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x26,0x32,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x32,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_med3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc7,0x32,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX12: v_med3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x32,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_med3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x78,0x50,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x50,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x08,0x50,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x50,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_med3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x10,0x50,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x50,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_med3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x20,0x50,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x50,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_med3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x40,0x50,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_med3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x50,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_med3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x78,0x51,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x51,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x08,0x51,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x51,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_med3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x10,0x51,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x51,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_med3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x20,0x51,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x51,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_med3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x40,0x51,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_med3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x51,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_min3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x7c,0x2b,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x7c,0x2b,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_min3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x0b,0x2b,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_min3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0b,0x2b,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_min3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x15,0x2b,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_min3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x15,0x2b,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_min3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x26,0x2b,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x26,0x2b,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x01,0x13] v_min3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0xc7,0x2b,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] +// GFX12: v_min3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0xc7,0x2b,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x0d,0x30] v_min3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x78,0x4a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x4a,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x08,0x4a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x4a,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_min3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x10,0x4a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x4a,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_min3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x20,0x4a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x4a,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_min3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x40,0x4a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_min3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x4a,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_min3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x78,0x4b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x78,0x4b,0xd6,0xfa,0x04,0xfe,0x01,0x01,0x2f,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x08,0x4b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x08,0x4b,0xd6,0xfa,0x04,0xfa,0x01,0x01,0x50,0x01,0xff] v_min3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x10,0x4b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x10,0x4b,0xd6,0xfa,0x04,0xf2,0x01,0x01,0x5f,0x01,0x01] v_min3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x20,0x4b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x20,0x4b,0xd6,0xfa,0x04,0x06,0x03,0x01,0x60,0x01,0x13] v_min3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x40,0x4b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] +// GFX12: v_min3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x40,0x4b,0xd6,0xfa,0xfe,0xf7,0x03,0xff,0x6f,0x0d,0x30] v_pack_b32_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 -// GFX12: [0x05,0x0a,0x11,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] +// GFX12: v_pack_b32_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] row_xmask:0 row_mask:0x1 bank_mask:0x3 ; encoding: [0x05,0x0a,0x11,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x01,0x13] v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 -// GFX12: [0xff,0x13,0x11,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] +// GFX12: v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:1 fi:1 ; encoding: [0xff,0x13,0x11,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x0d,0x30] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12: [0x00,0x00,0x66,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] +// GFX12: v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x00,0x66,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[1,1,0,0] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel operand +// GFX12-ERR: :[[@LINE-1]]:39: error: invalid op_sel operand v_dot2_f16_f16_e64_dpp v0, s1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX12-ERR: :[[@LINE-1]]:28: error: invalid operand for instruction v_dot2_f16_f16_e64_dpp v0, v1, s2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12: [0x00,0x00,0x66,0xd6,0xfa,0x04,0x0c,0x04,0x01,0xe4,0x04,0x00] +// GFX12: v_dot2_f16_f16_e64_dpp v0, v1, s2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x00,0x66,0xd6,0xfa,0x04,0x0c,0x04,0x01,0xe4,0x04,0x00] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12: [0x00,0x60,0x66,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] +// GFX12: v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x60,0x66,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] v_dot2_f16_f16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12: [0x00,0x65,0x66,0xd6,0xfa,0x04,0x0e,0xc0,0x01,0xe4,0x04,0x00] +// GFX12: v_dot2_f16_f16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x65,0x66,0xd6,0xfa,0x04,0x0e,0xc0,0x01,0xe4,0x04,0x00] v_dot2_f16_f16_e64_dpp v5, v1, v2, 0.5 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x66,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x1b,0x00,0xff] +// GFX12: v_dot2_f16_f16_e64_dpp v5, v1, v2, 0.5 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd6,0xfa,0x04,0xc2,0x03,0x01,0x1b,0x00,0xff] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12: [0x00,0x00,0x67,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] +// GFX12: v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x00,0x67,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[1,1,0,0] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel operand +// GFX12-ERR: :[[@LINE-1]]:41: error: invalid op_sel operand v_dot2_bf16_bf16_e64_dpp v0, s1, v2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX12-ERR: :[[@LINE-1]]:30: error: invalid operand for instruction v_dot2_bf16_bf16_e64_dpp v0, v1, s2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX12: [0x00,0x00,0x67,0xd6,0xfa,0x04,0x0c,0x04,0x01,0xe4,0x00,0x00] +// GFX12: v_dot2_bf16_bf16_e64_dpp v0, v1, s2, v3 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0x00,0x00,0x67,0xd6,0xfa,0x04,0x0c,0x04,0x01,0xe4,0x00,0x00] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12: [0x00,0x60,0x67,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] +// GFX12: v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x60,0x67,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x04,0x00] v_dot2_bf16_bf16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 -// GFX12: [0x00,0x65,0x67,0xd6,0xfa,0x04,0x0e,0xc0,0x01,0xe4,0x04,0x00] +// GFX12: v_dot2_bf16_bf16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 fi:1 ; encoding: [0x00,0x65,0x67,0xd6,0xfa,0x04,0x0e,0xc0,0x01,0xe4,0x04,0x00] v_dot2_bf16_bf16_e64_dpp v5, v1, v2, 0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x67,0xd6,0xfa,0x04,0x02,0x02,0x01,0x1b,0x00,0xff] +// GFX12: v_dot2_bf16_bf16_e64_dpp v5, v1, v2, 0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd6,0xfa,0x04,0x02,0x02,0x01,0x1b,0x00,0xff] v_minimum_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_minimum_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_minimum_f32 v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_minimum_f32 v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_minimum_f32 v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_minimum_f32 v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_minimum_f32 v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_minimum_f32 v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_minimum_f32 v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_minimum_f32 v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_minimum_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x65,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_minimum_f32 v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x65,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_minimum_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x65,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_minimum_f32 v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x65,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_minimum_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x65,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_minimum_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x65,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_minimum_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x65,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_maximum_f32 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_maximum_f32 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_maximum_f32 v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_maximum_f32 v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_maximum_f32 v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_maximum_f32 v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_maximum_f32 v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_maximum_f32 v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_maximum_f32 v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_maximum_f32 v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_maximum_f32 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x66,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_maximum_f32 v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x66,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_maximum_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x66,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_maximum_f32 v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x66,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_maximum_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x66,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_maximum_f32 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x66,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_maximum_f32_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x66,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_minimum_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_minimum_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_minimum_f16 v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_minimum_f16 v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_minimum_f16 v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_minimum_f16 v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_minimum_f16 v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_minimum_f16 v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_minimum_f16 v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_minimum_f16 v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_minimum_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x67,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_minimum_f16 v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x67,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_minimum_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x67,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_minimum_f16 v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x67,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_minimum_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x67,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_minimum_f16 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x67,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_minimum_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x67,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_maximum_f16 v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_maximum_f16 v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_maximum_f16 v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_maximum_f16 v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_maximum_f16 v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_maximum_f16 v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_maximum_f16 v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_maximum_f16 v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_maximum_f16 v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_maximum_f16 v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_maximum_f16 v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x68,0xd7,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_maximum_f16 v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x68,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_maximum_f16_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x68,0xd7,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_maximum_f16 v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x68,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_maximum_f16_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x68,0xd7,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_maximum_f16 v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x68,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_maximum_f16_e64_dpp v255, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x68,0xd7,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_minimum3_f32 v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minimum3_f32 v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_minimum3_f32 v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2d,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_minimum3_f32 v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minimum3_f32 v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minimum3_f32 v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minimum3_f32 v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minimum3_f32 v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minimum3_f32 v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minimum3_f32 v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x2d,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x2d,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_minimum3_f32 v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x2d,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x2d,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_minimum3_f32 v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x2d,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x2d,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_minimum3_f32 v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x2d,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_minimum3_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x2d,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_minimum3_f32 v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x2d,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_minimum3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x2d,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_minimum3_f32 v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x2d,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x2d,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_minimum3_f32 v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x2d,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_minimum3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x2d,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_maximum3_f32 v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maximum3_f32 v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_maximum3_f32 v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2e,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_maximum3_f32 v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maximum3_f32 v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maximum3_f32 v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maximum3_f32 v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maximum3_f32 v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maximum3_f32 v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maximum3_f32 v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x2e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x2e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_maximum3_f32 v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x2e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x2e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_maximum3_f32 v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x2e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x2e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_maximum3_f32 v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x2e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_maximum3_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x2e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_maximum3_f32 v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x2e,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_maximum3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x2e,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_maximum3_f32 v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x2e,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x2e,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_maximum3_f32 v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x2e,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_maximum3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x2e,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_minimum3_f16 v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minimum3_f16 v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_minimum3_f16 v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_minimum3_f16 v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minimum3_f16 v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minimum3_f16 v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minimum3_f16 v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minimum3_f16 v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minimum3_f16 v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minimum3_f16 v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x2f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x2f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_minimum3_f16 v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x2f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x2f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_minimum3_f16 v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x2f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x2f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_minimum3_f16 v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x2f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_minimum3_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x2f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_minimum3_f16 v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x2f,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_minimum3_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x2f,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_minimum3_f16 v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x2f,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x2f,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_minimum3_f16 v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x2f,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX12: v_minimum3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x2f,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_maximum3_f16 v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maximum3_f16 v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_maximum3_f16 v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_maximum3_f16 v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x30,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maximum3_f16 v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x30,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maximum3_f16 v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x30,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maximum3_f16 v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x30,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maximum3_f16 v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x30,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maximum3_f16 v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x30,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maximum3_f16 v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x30,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x30,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_maximum3_f16 v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x30,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x30,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_maximum3_f16 v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x30,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x30,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_maximum3_f16 v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x30,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_maximum3_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x30,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_maximum3_f16 v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x30,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_maximum3_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x30,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_maximum3_f16 v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x30,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x30,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_maximum3_f16 v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x30,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX12: v_maximum3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x30,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_maximumminimum_f32 v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maximumminimum_f32 v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maximumminimum_f32 v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maximumminimum_f32 v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maximumminimum_f32 v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maximumminimum_f32 v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6d,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maximumminimum_f32 v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x6d,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x6d,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_maximumminimum_f32 v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x6d,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x6d,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_maximumminimum_f32 v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x6d,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x6d,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_maximumminimum_f32 v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x6d,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_maximumminimum_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x6d,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_maximumminimum_f32 v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x6d,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_maximumminimum_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x6d,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_maximumminimum_f32 v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x6d,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x6d,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_maximumminimum_f32 v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x6d,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_maximumminimum_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x6d,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_minimummaximum_f32 v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minimummaximum_f32 v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_minimummaximum_f32 v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6c,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_minimummaximum_f32 v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minimummaximum_f32 v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minimummaximum_f32 v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minimummaximum_f32 v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minimummaximum_f32 v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minimummaximum_f32 v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6c,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minimummaximum_f32 v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x6c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x6c,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_minimummaximum_f32 v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x6c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x6c,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_minimummaximum_f32 v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x6c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x6c,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_minimummaximum_f32 v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x6c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_minimummaximum_f32_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x6c,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_minimummaximum_f32 v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x6c,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] +// GFX12: v_minimummaximum_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x6c,0xd6,0xfa,0x04,0x06,0xab,0x01,0x5f,0x01,0x01] v_minimummaximum_f32 v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x6c,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x6c,0xd6,0xfa,0x04,0xc2,0xd3,0x01,0x60,0x09,0x13] v_minimummaximum_f32 v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x6c,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] +// GFX12: v_minimummaximum_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x6c,0xd6,0xfa,0xfe,0xf7,0xfb,0xff,0x6f,0x05,0x30] v_maximumminimum_f16 v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_maximumminimum_f16 v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_maximumminimum_f16 v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6f,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_maximumminimum_f16 v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_maximumminimum_f16 v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_maximumminimum_f16 v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_maximumminimum_f16 v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_maximumminimum_f16 v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_maximumminimum_f16 v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6f,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_maximumminimum_f16 v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x6f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x6f,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_maximumminimum_f16 v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x6f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x6f,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_maximumminimum_f16 v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x6f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x6f,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_maximumminimum_f16 v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x6f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_maximumminimum_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x6f,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_maximumminimum_f16 v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x6f,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_maximumminimum_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x6f,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_maximumminimum_f16 v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x6f,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x6f,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_maximumminimum_f16 v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x6f,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX12: v_maximumminimum_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x6f,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] v_minimummaximum_f16 v5, v1, v2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x1b,0x00,0xff] v_minimummaximum_f16 v5, v1, s2, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, s2, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0x0c,0x04,0x01,0x1b,0x00,0xff] v_minimummaximum_f16 v5, v1, 2.0, v3 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, 2.0, v3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6e,0xd6,0xfa,0xe8,0x0d,0x04,0x01,0x1b,0x00,0xff] v_minimummaximum_f16 v5, v1, v2, v3 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, v3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0xe4,0x00,0xff] v_minimummaximum_f16 v5, v1, v2, v3 row_mirror -// GFX12: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, v3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0x0e,0x04,0x01,0x40,0x01,0xff] v_minimummaximum_f16 v5, v1, v2, v255 row_half_mirror -// GFX12: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, v255 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0xfe,0x07,0x01,0x41,0x01,0xff] v_minimummaximum_f16 v5, v1, v2, s105 row_shl:1 -// GFX12: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, s105 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0xa6,0x01,0x01,0x01,0x01,0xff] v_minimummaximum_f16 v5, v1, v2, vcc_hi row_shl:15 -// GFX12: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, vcc_hi row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0xae,0x01,0x01,0x0f,0x01,0xff] v_minimummaximum_f16 v5, v1, v2, vcc_lo row_shr:1 -// GFX12: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, vcc_lo row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x6e,0xd6,0xfa,0x04,0xaa,0x01,0x01,0x11,0x01,0xff] v_minimummaximum_f16 v5, |v1|, v2, -ttmp15 row_shr:15 -// GFX12: [0x05,0x01,0x6e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, |v1|, v2, -ttmp15 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x01,0x6e,0xd6,0xfa,0x04,0xee,0x81,0x01,0x1f,0x01,0xff] v_minimummaximum_f16 v5, v1, -|v2|, exec_hi row_ror:1 -// GFX12: [0x05,0x02,0x6e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, -|v2|, exec_hi row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x02,0x6e,0xd6,0xfa,0x04,0xfe,0x41,0x01,0x21,0x01,0xff] v_minimummaximum_f16 v5, -v1, v2, |exec_lo| row_ror:15 -// GFX12: [0x05,0x04,0x6e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, -v1, v2, |exec_lo| row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x04,0x6e,0xd6,0xfa,0x04,0xfa,0x21,0x01,0x2f,0x01,0xff] v_minimummaximum_f16 v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x03,0x6e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] +// GFX12: v_minimummaximum_f16_e64_dpp v5, -|v1|, -|v2|, null row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x03,0x6e,0xd6,0xfa,0x04,0xf2,0x61,0x01,0x50,0x01,0xff] v_minimummaximum_f16 v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x05,0x6e,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] +// GFX12: v_minimummaximum_f16_e64_dpp v5, -|v1|, v2, -|-1| row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x05,0x6e,0xd6,0xfa,0x04,0x06,0xa3,0x01,0x5f,0x01,0x01] v_minimummaximum_f16 v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x06,0x6e,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, -|v2|, -|0.5| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x06,0x6e,0xd6,0xfa,0x04,0xc2,0xc3,0x01,0x60,0x09,0x13] v_minimummaximum_f16 v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x87,0x6e,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] +// GFX12: v_minimummaximum_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x87,0x6e,0xd6,0xfa,0xfe,0xf7,0xe3,0xff,0x6f,0x05,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp8.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp8.s index 6331d22c6976d..4ea57c4b74ae9 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_dpp8.s @@ -1,762 +1,763 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 %s 2>&1 | FileCheck --check-prefixes=GFX12-ERR,W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 %s 2>&1 | FileCheck --check-prefixes=GFX12-ERR,W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefixes=GFX12-ERR,W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefixes=GFX12-ERR,W64-ERR --implicit-check-not=error: %s v_add3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x55,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x55,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_add3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x55,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_add3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x55,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_add3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x55,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_add_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s105, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x00,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, s105, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x00,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x00,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x00,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, s[104:105], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x00,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, s[104:105], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x00,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x00,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x00,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x00,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_add_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xfc,0x00,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_add_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x00,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_lshl_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x47,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x47,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_add_lshl_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x47,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_add_lshl_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x47,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_add_lshl_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x47,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_add_nc_i16_e64_dpp v255.l, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x0d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_add_nc_i16_e64_dpp v255.l, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x0d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc0,0x0d,0xd7,0xea,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc0,0x0d,0xd7,0xea,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x0d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xc0,0x0d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_add_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xc0,0x0d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x26,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x26,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_i32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x26,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_add_nc_i32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x26,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_nc_u16_e64_dpp v255.l, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x03,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_add_nc_u16_e64_dpp v255.l, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x03,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc0,0x03,0xd7,0xea,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc0,0x03,0xd7,0xea,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x03,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x03,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x03,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x03,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x03,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xc0,0x03,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_add_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xc0,0x03,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_alignbit_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x16,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_alignbit_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x16,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_alignbit_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x16,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_alignbit_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x16,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_alignbyte_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x17,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_alignbyte_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x17,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_alignbyte_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x17,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_alignbyte_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x17,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_and_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_and_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x62,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_and_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x62,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_and_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x62,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_and_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x62,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_and_or_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x57,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x57,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_and_or_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x57,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_and_or_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x57,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_and_or_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x57,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_ashrrev_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x3a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_ashrrev_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x3a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x3a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x3a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x3a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x3a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x3a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x40,0x3a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_ashrrev_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x3a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_bcnt_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_bcnt_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_bcnt_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_bcnt_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_bcnt_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_bfe_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x11,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x11,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_bfe_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x11,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_bfe_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x11,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_bfe_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x10,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x10,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_bfe_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x10,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_bfe_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x10,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_bfe_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x10,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_bfi_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x12,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_bfi_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x12,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_bfi_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x12,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_bfi_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x12,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_bfm_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_bfm_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_bfm_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1d,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_bfm_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_bfm_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1d,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cndmask_b16_e64_dpp v5, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, s2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x0c,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, s2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x0c,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, 10, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xe9,0x14,0x0d,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, 10, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x14,0x0d,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x01,0x5d,0xd6,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x5d,0xd6,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xee,0x21,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xee,0x21,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5d,0xd6,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x01,0x5d,0xd6,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, |v1|, -v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x5d,0xd6,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xea,0x21,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, -v1, |v2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xea,0x21,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v5, -v1, |s2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xe8,0x21,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b16_e64_dpp v5, -v1, |s2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x5d,0xd6,0xea,0x04,0xe8,0x21,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b16_e64_dpp v255, -|v255|, -|v255|, null dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x5d,0xd6,0xe9,0xfe,0xf3,0x61,0xff,0x00,0x00,0x00] +// GFX12: v_cndmask_b16_e64_dpp v255, -|v255|, -|v255|, null dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x5d,0xd6,0xe9,0xfe,0xf3,0x61,0xff,0x00,0x00,0x00] v_cubeid_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x0c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x0c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x0c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x0c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x0c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x0c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x0c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x0c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x0c,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x0c,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x0c,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_cubeid_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x0c,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_cubeid_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x0c,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_cubeid_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x0c,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_cubema_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x0f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x0f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x0f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x0f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x0f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x0f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x0f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x0f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x0f,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x0f,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x0f,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_cubema_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x0f,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_cubema_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x0f,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_cubema_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x0f,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_cubesc_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x0d,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x0d,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x0d,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x0d,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x0d,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x0d,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x0d,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x0d,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x0d,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x0d,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x0d,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_cubesc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x0d,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_cubesc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x0d,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_cubesc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x0d,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_cubetc_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x0e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x0e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x0e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x0e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x0e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x0e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x0e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x0e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x0e,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x0e,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x0e,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_cubetc_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x0e,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_cubetc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x0e,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_cubetc_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x0e,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_cvt_pk_fp8_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,2,3,0,1] -// GFX12: encoding: [0x05,0x00,0x69,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0xa9,0x21] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,2,3,0,1] ; encoding: [0x05,0x00,0x69,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0xa9,0x21] v_cvt_pk_fp8_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0x05,0x01,0x69,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x69,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_fp8_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0x05,0x02,0x69,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x69,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_fp8_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] -// GFX12: encoding: [0xff,0x03,0x69,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_fp8_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x69,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_bf8_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0x05,0x00,0x6a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_bf8_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0x05,0x01,0x6a,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x6a,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_bf8_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0x05,0x02,0x6a,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x6a,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_bf8_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] -// GFX12: encoding: [0xff,0x03,0x6a,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_bf8_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x6a,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_sr_fp8_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0x05,0x00,0x6b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_sr_fp8_f32_e64_dpp v5, |v1|, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0x05,0x01,0x6b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v5, |v1|, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x6b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_sr_fp8_f32_e64_dpp v5, -v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0x05,0x00,0x6b,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v5, -v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6b,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_sr_fp8_f32_e64_dpp v255, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] -// GFX12: encoding: [0xff,0x01,0x6b,0xd7,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_sr_fp8_f32_e64_dpp v255, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x01,0x6b,0xd7,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cvt_sr_fp8_f32 v1, v2, v3 byte_sel:0 dpp8:[7,6,5,4,3,2,1,0] // GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x01,0x00,0x6b,0xd7,0xe9,0x06,0x02,0x00,0x02,0x77,0x39,0x05] @@ -771,16 +772,16 @@ v_cvt_sr_fp8_f32 v1, v2, v3 byte_sel:3 dpp8:[7,6,5,4,3,2,1,0] // GFX12: v_cvt_sr_fp8_f32_e64_dpp v1, v2, v3 byte_sel:3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x01,0x60,0x6b,0xd7,0xe9,0x06,0x02,0x00,0x02,0x77,0x39,0x05] v_cvt_sr_bf8_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0x05,0x00,0x6c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_sr_bf8_f32_e64_dpp v5, |v1|, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0x05,0x01,0x6c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v5, |v1|, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x6c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_sr_bf8_f32_e64_dpp v5, -v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0x05,0x00,0x6c,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v5, -v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6c,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_sr_bf8_f32_e64_dpp v255, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] -// GFX12: encoding: [0xff,0x01,0x6c,0xd7,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_sr_bf8_f32_e64_dpp v255, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x01,0x6c,0xd7,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cvt_sr_bf8_f32 v1, v2, v3 byte_sel:0 dpp8:[7,6,5,4,3,2,1,0] // GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x01,0x00,0x6c,0xd7,0xe9,0x06,0x02,0x00,0x02,0x77,0x39,0x05] @@ -795,3164 +796,3140 @@ v_cvt_sr_bf8_f32 v1, v2, v3 byte_sel:3 dpp8:[7,6,5,4,3,2,1,0] // GFX12: v_cvt_sr_bf8_f32_e64_dpp v1, v2, v3 byte_sel:3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x01,0x60,0x6c,0xd7,0xe9,0x06,0x02,0x00,0x02,0x77,0x39,0x05] v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x06,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x06,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_i16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x06,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x06,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_i16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x06,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x06,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_i16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x06,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_i16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x06,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x24,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x24,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_i16_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x24,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_i16_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x24,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x12,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x12,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x12,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x12,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x12,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x12,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x13,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x13,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x13,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x13,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x13,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x13,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_u16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x07,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x07,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_u16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x07,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x07,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_u16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x07,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_u16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x07,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x23,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x23,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_u16_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x23,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_u16_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x23,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x26,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x26,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_cvt_pk_u8_f32_e64_dpp v255, -|v255|, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x01,0x26,0xd6,0xe9,0xfe,0xf7,0x23,0xff,0x00,0x00,0x00] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x12,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x12,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x12,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_u8_f32_e64_dpp v255, -|v255|, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x01,0x26,0xd6,0xe9,0xfe,0xf7,0x23,0xff,0x00,0x00,0x00] v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x21,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x21,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x21,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x21,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x21,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x13,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x13,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] - -v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x13,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x21,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x22,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x22,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x22,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x22,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x22,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x22,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_div_fixup_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x54,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x54,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x54,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x54,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x54,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x54,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x54,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x54,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x54,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x54,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x54,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x54,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x54,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x54,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x54,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_fma_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x48,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x48,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x48,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x48,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x48,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x48,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x48,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x48,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x48,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x48,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x48,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x48,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x48,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x48,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x48,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_fma_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x13,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x13,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x13,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x13,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x13,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x13,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x13,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x13,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x13,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x13,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x13,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x13,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_fma_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x13,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_fma_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x13,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_ldexp_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ldexp_f32_e64_dpp v5, v1, v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1c,0xd7,0xe9,0x04,0x02,0x08,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd7,0xe9,0x04,0x02,0x08,0x01,0x77,0x39,0x05] v_ldexp_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1c,0xd7,0xea,0x04,0x02,0x10,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f32_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1c,0xd7,0xea,0x04,0x02,0x10,0x01,0x77,0x39,0x05] v_ldexp_f32_e64_dpp v255, -|v255|, v255 clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x81,0x1c,0xd7,0xe9,0xfe,0x03,0x38,0xff,0x00,0x00,0x00] +// GFX12: v_ldexp_f32_e64_dpp v255, -|v255|, v255 clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x81,0x1c,0xd7,0xe9,0xfe,0x03,0x38,0xff,0x00,0x00,0x00] v_lerp_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x15,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_lerp_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x15,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_lerp_u8_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x15,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_lerp_u8_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x15,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_lshl_add_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x46,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_add_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x46,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_lshl_add_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x46,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_lshl_add_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x46,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_lshl_or_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x56,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x56,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_lshl_or_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x56,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_lshl_or_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x56,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_lshl_or_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x56,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_lshlrev_b16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x38,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_lshlrev_b16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x38,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x38,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x38,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x38,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x38,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x38,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x40,0x38,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_lshlrev_b16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x38,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_lshrrev_b16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x39,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_lshrrev_b16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x39,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x39,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x39,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x39,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x39,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x39,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x40,0x39,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_lshrrev_b16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x39,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mad_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x53,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x53,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x53,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x53,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_i16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x53,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_i32_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x5a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x5a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x5a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x5a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x5a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_i32_i24_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i24_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i24_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x0a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_i32_i24_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x0a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x41,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x41,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x41,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x41,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u32_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x59,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x59,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x59,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x59,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x59,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u32_u24_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0b,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u24_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0b,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u24_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x0b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_u32_u24_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x0b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2c,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x2c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x2c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x2c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x2c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x2c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x2c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x2c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x2c,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x2c,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x2c,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x2c,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x2c,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_max3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x2c,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_max3_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2a,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x2a,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2a,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x2a,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x2a,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x2a,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x2a,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x2a,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x2a,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x2a,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x2a,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x2a,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x2a,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_max3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x2a,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_max3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x2a,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_max3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x4d,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x4d,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x4d,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_max3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x4d,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1d,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1d,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_max3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1d,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_max3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1d,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x4e,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x4e,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x4e,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_max3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x4e,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1e,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1e,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_max3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1e,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_max3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1e,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x0a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_max_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0a,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x0a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0a,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x40,0x0a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_max_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x0a,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x09,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_max_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x09,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x09,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x09,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x09,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x09,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x09,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x40,0x09,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_max_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x09,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_maxmin_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6b,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x6b,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x6b,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x6b,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x6b,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x6b,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x6b,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x6b,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x6b,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x6b,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x6b,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x6b,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x6b,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_maxmin_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x6b,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_maxmin_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x6b,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_maxmin_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x69,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x69,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x69,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x69,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x69,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x69,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x69,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x69,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x69,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x69,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x69,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x69,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x69,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x69,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x69,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x69,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x69,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x69,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x69,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x69,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_maxmin_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x69,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_maxmin_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x69,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_maxmin_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x64,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x64,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_maxmin_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x64,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_maxmin_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x64,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_maxmin_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x62,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x62,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_maxmin_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x62,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_maxmin_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x62,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_maxmin_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x62,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x20,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x20,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mbcnt_hi_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x20,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_mbcnt_hi_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x20,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1f,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1f,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1f,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1f,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mbcnt_lo_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1f,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_mbcnt_lo_u32_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1f,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_med3_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x32,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x32,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x32,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x32,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x32,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x32,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x32,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x32,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x32,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x32,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x32,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x32,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x32,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_med3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x32,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_med3_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x31,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x31,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x31,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x31,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x31,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x31,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x31,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x31,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x31,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x31,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x31,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x31,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_med3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x31,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_med3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x31,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_med3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x50,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x50,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x50,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x50,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_med3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x50,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x20,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x20,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x20,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_med3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x20,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_med3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x20,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x51,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x51,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x51,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x51,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_med3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x51,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x21,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x21,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x21,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_med3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x21,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_med3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x21,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2b,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x2b,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2b,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x2b,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x2b,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x2b,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x2b,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x2b,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x2b,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x2b,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x2b,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x2b,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x2b,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x2b,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_min3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x2b,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_min3_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x29,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x29,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x29,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x29,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x29,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x29,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x29,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x29,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x29,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x29,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x29,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x29,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x29,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x29,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x29,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x29,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x29,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x29,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x29,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x29,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_min3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x29,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_min3_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x29,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_min3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x4a,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x4a,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x4a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_min3_i16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x4a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1a,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_min3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_min3_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1a,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x4b,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x4b,0xd6,0xea,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x4b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_min3_u16_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x4b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1b,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1b,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_min3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_min3_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1b,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x0c,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_min_i16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0c,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0c,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0c,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0c,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x0c,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0c,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x40,0x0c,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_min_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x0c,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x0b,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_min_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0b,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0b,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0b,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0b,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x0b,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0b,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x40,0x0b,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_min_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x0b,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_minmax_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6a,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6a,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x6a,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x6a,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x6a,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x6a,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x6a,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x6a,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x6a,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x6a,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x6a,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x6a,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x6a,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x6a,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_minmax_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x6a,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_minmax_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x6a,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_minmax_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x68,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x68,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x68,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x68,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x68,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x68,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x68,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x68,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x68,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x68,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x68,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x68,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x68,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x68,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x68,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x68,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x68,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x68,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_num_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x68,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_minmax_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] -// GFX12: [0xff,0x87,0x68,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_minmax_num_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x68,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_minmax_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x65,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_i32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x65,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_minmax_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x65,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_minmax_i32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x65,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_minmax_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x63,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_minmax_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x63,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_minmax_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x63,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_minmax_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x63,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_msad_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x39,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_msad_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x39,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_msad_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x39,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_msad_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x39,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mul_lo_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x05,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_mul_lo_u16_e64_dpp v255.l, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x05,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x05,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x05,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_lo_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x05,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x05,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_lo_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x05,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_lo_u16_e64_dpp v255.h, v255.l, v255.l dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x40,0x05,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_mul_lo_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x40,0x05,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mullit_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x18,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x18,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x18,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x18,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x18,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x18,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x18,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x18,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x18,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x18,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x18,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_mullit_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x18,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_mullit_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x18,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_mullit_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x18,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_or3_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x58,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x58,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_or3_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x58,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_or3_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x58,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_or3_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x58,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_or_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x63,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x63,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_or_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x63,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_or_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x63,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_or_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x63,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_or_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x63,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_pack_b32_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_pack_b32_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_pack_b32_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x11,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_pack_b32_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x11,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_pack_b32_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x11,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_pack_b32_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x11,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x11,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x11,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_perm_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x44,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_perm_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x44,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_perm_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x44,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_perm_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x44,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sad_hi_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x23,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x23,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_sad_hi_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x23,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_sad_hi_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x23,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_sad_hi_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x23,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sad_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x24,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x24,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x24,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_sad_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x24,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_sad_u16_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x24,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sad_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x25,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x25,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_sad_u32_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x25,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_sad_u32_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x25,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sad_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x22,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x22,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_sad_u8_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x22,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_sad_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x22,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_sad_u8_e64_dpp v255, v255, v255, src_scc clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x22,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_sub_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s6, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x01,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s6, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x01,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x01,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x01,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[12:13], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x01,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[12:13], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x01,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x01,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x01,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x01,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:26: error: invalid operand for instruction v_sub_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xfc,0x01,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_sub_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x01,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_i16_e64_dpp v255.l, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x0e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_sub_nc_i16_e64_dpp v255.l, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x0e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc0,0x0e,0xd7,0xea,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc0,0x0e,0xd7,0xea,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x0e,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x0e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x0e,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xc0,0x0e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_sub_nc_i16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xc0,0x0e,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x25,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x25,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_i32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x25,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_sub_nc_i32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x25,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_u16_e64_dpp v255.l, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x04,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_sub_nc_u16_e64_dpp v255.l, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x04,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc0,0x04,0xd7,0xea,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc0,0x04,0xd7,0xea,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x04,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.l dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x04,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x58,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u16_e64_dpp v5.h, v1.h, v2.h op_sel:[1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x58,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.h, v2.l op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x04,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x10,0x04,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u16_e64_dpp v5.l, v1.l, v2.h op_sel:[0,1,0] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x10,0x04,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xc0,0x04,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_sub_nc_u16_e64_dpp v255.h, v255.l, v255.l op_sel:[0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xc0,0x04,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_subrev_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s6, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x02,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s6, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x02,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x02,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_u32_e64_dpp v5, ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x02,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[12:13], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, s[104:105], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x02,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, s[104:105], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x02,0xd7,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x02,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x02,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_u32_e64_dpp v5, ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x02,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_subrev_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xfc,0x02,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_subrev_co_u32_e64_dpp v255, null, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x02,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_xad_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x45,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_xad_u32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x45,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_xad_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x45,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_xad_u32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x45,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_xor3_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, 10, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x14,0x0d,0x04,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xee,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, exec_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, -1 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x40,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x40,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_xor3_b32_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x40,0xd6,0xea,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_xor3_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x40,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_xor3_b32_e64_dpp v255, v255, v255, src_scc dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x40,0xd6,0xe9,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_xor_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x64,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x64,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xor_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x64,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xor_b16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x64,0xd7,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xor_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x64,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_xor_b16_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x64,0xd7,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x0a,0x12,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0a,0x12,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x13,0x12,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_norm_i16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x13,0x12,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x0a,0x13,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0a,0x13,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x13,0x13,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_norm_u16_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x13,0x13,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x7c,0x54,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x54,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x0b,0x54,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x54,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x15,0x54,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x54,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x26,0x54,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_div_fixup_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x54,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc7,0x54,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_div_fixup_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x54,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x7c,0x48,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x48,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x0b,0x48,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x48,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x15,0x48,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x48,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x26,0x48,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_fma_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x48,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc7,0x48,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_fma_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x48,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_mad_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x78,0x53,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x53,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x53,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x53,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x53,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x53,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x20,0x53,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x53,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc0,0x53,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc0,0x53,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x5a,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_i32_i16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x5a,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x90,0x5a,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_i32_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x90,0x5a,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x78,0x41,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x41,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x41,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x41,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x41,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x41,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x20,0x41,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x41,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_mad_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc0,0x41,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc0,0x41,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x59,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_mad_u32_u16_e64_dpp v5, v1, v2, 0.5 op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x59,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x90,0x59,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_mad_u32_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,1,0,0] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x90,0x59,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x7c,0x2c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x2c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x0b,0x2c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x2c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x15,0x2c,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x2c,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x26,0x2c,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_max3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x2c,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_max3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc7,0x2c,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_max3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x2c,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_max3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x78,0x4d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x4d,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x4d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x4d,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x4d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x4d,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x20,0x4d,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_max3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x4d,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x40,0x4d,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_max3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x4d,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_max3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x78,0x4e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x4e,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x4e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x4e,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x4e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x4e,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x20,0x4e,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_max3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x4e,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_max3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x40,0x4e,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_max3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x4e,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x7c,0x32,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x32,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x0b,0x32,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x32,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x15,0x32,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x32,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x26,0x32,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_med3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x32,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_med3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc7,0x32,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_med3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x32,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_med3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x78,0x50,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x50,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x50,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x50,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x50,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x50,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x20,0x50,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_med3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x50,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x40,0x50,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_med3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x50,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_med3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x78,0x51,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x51,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x51,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x51,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x51,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x51,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x20,0x51,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_med3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x51,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_med3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x40,0x51,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_med3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x51,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x7c,0x2b,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, -v1, v2, |exec_lo| op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x7c,0x2b,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x0b,0x2b,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, -|v1|, -|v2|, null op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0b,0x2b,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x15,0x2b,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, -|v1|, v2, -|-1| op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x15,0x2b,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x26,0x2b,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_min3_num_f16_e64_dpp v5, v1, -|v2|, -|0.5| op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x26,0x2b,0xd6,0xe9,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_min3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0xc7,0x2b,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_min3_num_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| op_sel:[0,0,0,1] clamp dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0xc7,0x2b,0xd6,0xea,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_min3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x78,0x4a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x4a,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x4a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x4a,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x4a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x4a,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x20,0x4a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_min3_i16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x4a,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x40,0x4a,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_min3_i16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x4a,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_min3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x78,0x4b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, exec_hi op_sel:[1,1,1,1] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x78,0x4b,0xd6,0xe9,0x04,0xfe,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x08,0x4b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, exec_lo op_sel:[1,0,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x08,0x4b,0xd6,0xe9,0x04,0xfa,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x10,0x4b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, null op_sel:[0,1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x10,0x4b,0xd6,0xe9,0x04,0xf2,0x01,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x20,0x4b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_min3_u16_e64_dpp v5, v1, v2, -1 op_sel:[0,0,1,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x20,0x4b,0xd6,0xe9,0x04,0x06,0x03,0x01,0x77,0x39,0x05] v_min3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x40,0x4b,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] +// GFX12: v_min3_u16_e64_dpp v255, v255, v255, src_scc op_sel:[0,0,0,1] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x40,0x4b,0xd6,0xea,0xfe,0xf7,0x03,0xff,0x00,0x00,0x00] v_pack_b32_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x0a,0x11,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_pack_b32_f16_e64_dpp v5, -v1, |v2| op_sel:[1,0,0] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0a,0x11,0xd7,0xe9,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 -// GFX12: [0xff,0x13,0x11,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_pack_b32_f16_e64_dpp v255, -|v255|, -|v255| op_sel:[0,1,0] dpp8:[0,0,0,0,0,0,0,0] fi:1 ; encoding: [0xff,0x13,0x11,0xd7,0xea,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX12: [0x00,0x00,0x66,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] +// GFX12: v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x00,0x66,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[1,1,0,0] dpp8:[0,1,2,3,4,4,4,4] -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel operand +// GFX12-ERR: :[[@LINE-1]]:39: error: invalid op_sel operand v_dot2_f16_f16_e64_dpp v0, s1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX12-ERR: :[[@LINE-1]]:28: error: invalid operand for instruction v_dot2_f16_f16_e64_dpp v0, v1, s2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX12: [0x00,0x00,0x66,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x88,0x46,0x92] +// GFX12: v_dot2_f16_f16_e64_dpp v0, v1, s2, v3 dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x00,0x66,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x88,0x46,0x92] v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] -// GFX12: [0x00,0x60,0x66,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] +// GFX12: v_dot2_f16_f16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x60,0x66,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] v_dot2_f16_f16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] -// GFX12: [0x00,0x65,0x66,0xd6,0xe9,0x04,0x0e,0xc0,0x01,0x88,0x46,0x92] +// GFX12: v_dot2_f16_f16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x65,0x66,0xd6,0xe9,0x04,0x0e,0xc0,0x01,0x88,0x46,0x92] v_dot2_f16_f16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x66,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] +// GFX12: v_dot2_f16_f16_e64_dpp v5, v1, v2, 0.5 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x66,0xd6,0xe9,0x04,0xc2,0x03,0x01,0x77,0x39,0x05] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX12: [0x00,0x00,0x67,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] +// GFX12: v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x00,0x67,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[1,1,0,0] dpp8:[0,1,2,3,4,4,4,4] -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid op_sel operand +// GFX12-ERR: :[[@LINE-1]]:41: error: invalid op_sel operand v_dot2_bf16_bf16_e64_dpp v0, s1, v2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX12-ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// GFX12-ERR: :[[@LINE-1]]:30: error: invalid operand for instruction v_dot2_bf16_bf16_e64_dpp v0, v1, s2, v3 dpp8:[0,1,2,3,4,4,4,4] -// GFX12: [0x00,0x00,0x67,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x88,0x46,0x92] +// GFX12: v_dot2_bf16_bf16_e64_dpp v0, v1, s2, v3 dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x00,0x67,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x88,0x46,0x92] v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] -// GFX12: [0x00,0x60,0x67,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] +// GFX12: v_dot2_bf16_bf16_e64_dpp v0, v1, v2, v3 op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x60,0x67,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x88,0x46,0x92] v_dot2_bf16_bf16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] -// GFX12: [0x00,0x65,0x67,0xd6,0xe9,0x04,0x0e,0xc0,0x01,0x88,0x46,0x92] +// GFX12: v_dot2_bf16_bf16_e64_dpp v0, |v1|, -v2, -|s3| op_sel:[0,0,1,1] dpp8:[0,1,2,3,4,4,4,4] ; encoding: [0x00,0x65,0x67,0xd6,0xe9,0x04,0x0e,0xc0,0x01,0x88,0x46,0x92] v_dot2_bf16_bf16_e64_dpp v5, v1, v2, 0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x67,0xd6,0xe9,0x04,0x02,0x02,0x01,0x77,0x39,0x05] +// GFX12: v_dot2_bf16_bf16_e64_dpp v5, v1, v2, 0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x67,0xd6,0xe9,0x04,0x02,0x02,0x01,0x77,0x39,0x05] v_minimum_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x65,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_minimum_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x65,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_minimum_f32 v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x65,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_minimum_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x65,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_minimum_f32 v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x65,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_minimum_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x65,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_minimum_f32 v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x65,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_minimum_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x65,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_maximum_f32 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x66,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_maximum_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x66,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_maximum_f32 v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x66,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_maximum_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x66,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_maximum_f32 v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x66,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_maximum_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x66,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_maximum_f32 v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x66,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_maximum_f32_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x66,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_minimum_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x67,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_minimum_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x67,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_minimum_f16 v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x67,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_minimum_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x67,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_minimum_f16 v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x67,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_minimum_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x67,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_minimum_f16 v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x67,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_minimum_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x67,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_maximum_f16 v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x68,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_maximum_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x68,0xd7,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_maximum_f16 v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x68,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_maximum_f16_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x68,0xd7,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_maximum_f16 v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x68,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_maximum_f16_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x68,0xd7,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_maximum_f16 v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x68,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_maximum_f16_e64_dpp v255, -|v255|, -|v255| dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x68,0xd7,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_minimum3_f32 v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2d,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x2d,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2d,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x2d,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x2d,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x2d,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x2d,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x2d,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x2d,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x2d,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x2d,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_minimum3_f32 v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x2d,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x2d,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_minimum3_f32 v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x2d,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_minimum3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x2d,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_maximum3_f32 v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2e,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x2e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x2e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x2e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x2e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x2e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x2e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x2e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x2e,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x2e,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_maximum3_f32 v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x2e,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x2e,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_maximum3_f32 v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x2e,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_maximum3_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x2e,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_minimum3_f16 v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x2f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x2f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x2f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x2f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x2f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x2f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x2f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x2f,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x2f,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_minimum3_f16 v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x2f,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_minimum3_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x2f,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_minimum3_f16 v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x2f,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_minimum3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x2f,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_maximum3_f16 v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x30,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x30,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x30,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x30,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x30,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x30,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x30,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x30,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x30,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x30,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_maximum3_f16 v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x30,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_maximum3_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x30,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_maximum3_f16 v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x30,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_maximum3_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x30,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_maximumminimum_f32 v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6d,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6d,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6d,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x6d,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x6d,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x6d,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x6d,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x6d,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x6d,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x6d,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x6d,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x6d,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x6d,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x6d,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x6d,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_maximumminimum_f32 v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x6d,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_maximumminimum_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x6d,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_minimummaximum_f32 v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6c,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6c,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x6c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x6c,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x6c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x6c,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x6c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x6c,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x6c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x6c,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x6c,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, -|v1|, v2, -|-1| mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x6c,0xd6,0xe9,0x04,0x06,0xab,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x6c,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f32_e64_dpp v5, v1, -|v2|, -|0.5| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x6c,0xd6,0xea,0x04,0xc2,0xd3,0x01,0x77,0x39,0x05] v_minimummaximum_f32 v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x6c,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] +// GFX12: v_minimummaximum_f32_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x6c,0xd6,0xe9,0xfe,0xf7,0xfb,0xff,0x00,0x00,0x00] v_maximumminimum_f16 v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6f,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6f,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x6f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x6f,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x6f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x6f,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x6f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x6f,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x6f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x6f,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x6f,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x6f,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x6f,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_maximumminimum_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x6f,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_maximumminimum_f16 v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x6f,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_maximumminimum_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x6f,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] v_minimummaximum_f16 v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0x0e,0x04,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, s2, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0x0c,0x04,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, 2.0, v3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6e,0xd6,0xe9,0xe8,0x0d,0x04,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0xfe,0x07,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x6e,0xd6,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x6e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, |v1|, v2, -ttmp15 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x6e,0xd6,0xe9,0x04,0xee,0x81,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x02,0x6e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, -|v2|, exec_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x02,0x6e,0xd6,0xe9,0x04,0xfe,0x41,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x04,0x6e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, -v1, v2, |exec_lo| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x04,0x6e,0xd6,0xe9,0x04,0xfa,0x21,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x03,0x6e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, -|v1|, -|v2|, null dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x03,0x6e,0xd6,0xe9,0x04,0xf2,0x61,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x05,0x6e,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, -|v1|, v2, -|-1| dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x05,0x6e,0xd6,0xe9,0x04,0x06,0xa3,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x06,0x6e,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] +// GFX12: v_minimummaximum_f16_e64_dpp v5, v1, -|v2|, -|0.5| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x06,0x6e,0xd6,0xea,0x04,0xc2,0xc3,0x01,0x77,0x39,0x05] v_minimummaximum_f16 v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x87,0x6e,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] +// GFX12: v_minimummaximum_f16_e64_dpp v255, -|v255|, -|v255|, -|src_scc| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x87,0x6e,0xd6,0xe9,0xfe,0xf7,0xe3,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2.s index b514af8384a5e..9675add7fb12d 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2.s @@ -1,2268 +1,2269 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, v255, src_scc, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0xff,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, v255, src_scc, s3 ; encoding: [0x05,0x06,0x20,0xd5,0xff,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, s105, s105, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, s105, s105, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x6a,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x6a,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x6b,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x6b,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, m0, 0.5, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x7d,0xe0,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, m0, 0.5, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x7d,0xe0,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 -// W32: encoding: [0x05,0x06,0x20,0xd5,0x7f,0x82,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 ; encoding: [0x05,0x06,0x20,0xd5,0x7f,0x82,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s105, null, exec_hi, s105 -// W32: encoding: [0x05,0x69,0x20,0xd5,0x7c,0xfe,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, s105, null, exec_hi, s105 ; encoding: [0x05,0x69,0x20,0xd5,0x7c,0xfe,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo -// W32: encoding: [0x05,0x6a,0x20,0xd5,0xc1,0xfa,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo ; encoding: [0x05,0x6a,0x20,0xd5,0xc1,0xfa,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi -// W32: encoding: [0x05,0x6b,0x20,0xd5,0xf0,0xd4,0xac,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi ; encoding: [0x05,0x6b,0x20,0xd5,0xf0,0xd4,0xac,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 -// W32: encoding: [0x05,0x7b,0x20,0xd5,0xfd,0xf8,0xec,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 ; encoding: [0x05,0x7b,0x20,0xd5,0xfd,0xf8,0xec,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0xff,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0xff,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x6a,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x6a,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x6b,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x6b,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7d,0xe0,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7d,0xe0,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7f,0x82,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7f,0x82,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] -// W64: encoding: [0x05,0x0c,0x20,0xd5,0x7c,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] ; encoding: [0x05,0x0c,0x20,0xd5,0x7c,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] -// W64: encoding: [0x05,0x68,0x20,0xd5,0xc1,0xfa,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] ; encoding: [0x05,0x68,0x20,0xd5,0xc1,0xfa,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc -// W64: encoding: [0x05,0x6a,0x20,0xd5,0xf0,0xd4,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc ; encoding: [0x05,0x6a,0x20,0xd5,0xf0,0xd4,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] -// W64: encoding: [0x05,0x7a,0x20,0xd5,0xfd,0xf8,0xe8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] ; encoding: [0x05,0x7a,0x20,0xd5,0xfd,0xf8,0xe8,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_add_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp -// GFX12: encoding: [0xff,0xfc,0x20,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_add_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0xfc,0x20,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_add_f16_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_add_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x32,0xd5,0x01,0x05,0x02,0x00] v_add_f16_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_add_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x32,0xd5,0xff,0xff,0x03,0x00] v_add_f16_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_add_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x32,0xd5,0x01,0x04,0x00,0x00] v_add_f16_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_add_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x32,0xd5,0x69,0xd2,0x00,0x00] v_add_f16_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_add_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x32,0xd5,0x6a,0xf6,0x00,0x00] v_add_f16_e64 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_add_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x32,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_add_f16_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_add_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x32,0xd5,0x7b,0xfa,0x01,0x00] v_add_f16_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_add_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x32,0xd5,0x7d,0xe0,0x01,0x00] v_add_f16_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_add_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x32,0xd5,0x7e,0x82,0x01,0x00] v_add_f16_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x32,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_add_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x32,0xd5,0x7f,0xf8,0x00,0x00] v_add_f16_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_add_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x32,0xd5,0x7c,0xfc,0x00,0x00] v_add_f16_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_add_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x32,0xd5,0xc1,0xfe,0x00,0x00] v_add_f16_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x32,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_add_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x32,0xd5,0xf0,0xfa,0x00,0x48] v_add_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x32,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_add_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x32,0xd5,0xfd,0xd4,0x00,0x30] v_add_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x32,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX12: v_add_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x32,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_add_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_add_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x05,0x02,0x00] v_add_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_add_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x03,0xd5,0xff,0xff,0x03,0x00] v_add_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_add_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x03,0xd5,0x01,0x04,0x00,0x00] v_add_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_add_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x03,0xd5,0x69,0xd2,0x00,0x00] v_add_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_add_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x03,0xd5,0x6a,0xf6,0x00,0x00] v_add_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_add_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x03,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_add_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_add_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x03,0xd5,0x7b,0xfa,0x01,0x00] v_add_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_add_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x03,0xd5,0x7d,0xe0,0x01,0x00] v_add_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_add_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x03,0xd5,0x7e,0x82,0x01,0x00] v_add_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x03,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_add_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x03,0xd5,0x7f,0xf8,0x00,0x00] v_add_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_add_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x03,0xd5,0x7c,0xfc,0x00,0x00] v_add_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_add_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x03,0xd5,0xc1,0xfe,0x00,0x00] v_add_f32_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x03,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_add_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x03,0xd5,0xf0,0xfa,0x00,0x48] v_add_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x03,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_add_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x03,0xd5,0xfd,0xd4,0x00,0x30] v_add_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x03,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX12: v_add_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x03,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_add_f64_e64 v[5:6], v[2:3], v[4:5] -// GFX12: encoding: [0x05,0x00,0x02,0xd5,0x02,0x09,0x02,0x00] +// GFX12: v_add_f64_e64 v[5:6], v[2:3], v[4:5] ; encoding: [0x05,0x00,0x02,0xd5,0x02,0x09,0x02,0x00] v_add_f64_e64 v[5:6], v[104:105], v[104:105] -// GFX12: encoding: [0x05,0x00,0x02,0xd5,0x68,0xd1,0x02,0x00] +// GFX12: v_add_f64_e64 v[5:6], v[104:105], v[104:105] ; encoding: [0x05,0x00,0x02,0xd5,0x68,0xd1,0x02,0x00] v_add_f64_e64 v[5:6], s[2:3], s[4:5] -// GFX12: encoding: [0x05,0x00,0x02,0xd5,0x02,0x08,0x00,0x00] +// GFX12: v_add_f64_e64 v[5:6], s[2:3], s[4:5] ; encoding: [0x05,0x00,0x02,0xd5,0x02,0x08,0x00,0x00] v_add_f64_e64 v[5:6], s[104:105], s[104:105] -// GFX12: encoding: [0x05,0x00,0x02,0xd5,0x68,0xd0,0x00,0x00] +// GFX12: v_add_f64_e64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x02,0xd5,0x68,0xd0,0x00,0x00] v_add_f64_e64 v[5:6], vcc, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x02,0xd5,0x6a,0xf4,0x00,0x00] +// GFX12: v_add_f64_e64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x02,0xd5,0x6a,0xf4,0x00,0x00] v_add_f64_e64 v[5:6], ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x02,0xd5,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_add_f64_e64 v[5:6], ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x02,0xd5,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_add_f64_e64 v[5:6], -|exec|, src_scc -// GFX12: encoding: [0x05,0x01,0x02,0xd5,0x7e,0xfa,0x01,0x20] +// GFX12: v_add_f64_e64 v[5:6], -|exec|, src_scc ; encoding: [0x05,0x01,0x02,0xd5,0x7e,0xfa,0x01,0x20] v_add_f64_e64 v[5:6], null, 0.5 -// GFX12: encoding: [0x05,0x00,0x02,0xd5,0x7c,0xe0,0x01,0x00] +// GFX12: v_add_f64_e64 v[5:6], null, 0.5 ; encoding: [0x05,0x00,0x02,0xd5,0x7c,0xe0,0x01,0x00] v_add_f64_e64 v[5:6], -1, -1 -// GFX12: encoding: [0x05,0x00,0x02,0xd5,0xc1,0x82,0x01,0x00] +// GFX12: v_add_f64_e64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x02,0xd5,0xc1,0x82,0x01,0x00] v_add_f64_e64 v[5:6], 0.5, null mul:2 -// GFX12: encoding: [0x05,0x00,0x02,0xd5,0xf0,0xf8,0x00,0x08] +// GFX12: v_add_f64_e64 v[5:6], 0.5, null mul:2 ; encoding: [0x05,0x00,0x02,0xd5,0xf0,0xf8,0x00,0x08] v_add_f64_e64 v[5:6], -|src_scc|, -|exec| mul:4 -// GFX12: encoding: [0x05,0x03,0x02,0xd5,0xfd,0xfc,0x00,0x70] +// GFX12: v_add_f64_e64 v[5:6], -|src_scc|, -|exec| mul:4 ; encoding: [0x05,0x03,0x02,0xd5,0xfd,0xfc,0x00,0x70] v_add_f64_e64 v[254:255], 0xaf123456, -|vcc| clamp div:2 -// GFX12: encoding: [0xfe,0x82,0x02,0xd5,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_add_f64_e64 v[254:255], 0xaf123456, -|vcc| clamp div:2 ; encoding: [0xfe,0x82,0x02,0xd5,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] v_add_nc_u32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_add_nc_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x25,0xd5,0x01,0x05,0x02,0x00] v_add_nc_u32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_add_nc_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x25,0xd5,0xff,0xff,0x03,0x00] v_add_nc_u32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_add_nc_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x25,0xd5,0x01,0x04,0x00,0x00] v_add_nc_u32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_add_nc_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x25,0xd5,0x69,0xd2,0x00,0x00] v_add_nc_u32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_add_nc_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x25,0xd5,0x6a,0xf6,0x00,0x00] v_add_nc_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_add_nc_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x25,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_add_nc_u32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_add_nc_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x25,0xd5,0x7b,0xfa,0x01,0x00] v_add_nc_u32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_add_nc_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x25,0xd5,0x7d,0xe0,0x01,0x00] v_add_nc_u32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_add_nc_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x25,0xd5,0x7e,0x82,0x01,0x00] v_add_nc_u32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_add_nc_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x25,0xd5,0x7f,0xf8,0x00,0x00] v_add_nc_u32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_add_nc_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x25,0xd5,0x7c,0xfc,0x00,0x00] v_add_nc_u32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_add_nc_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x25,0xd5,0xc1,0xfe,0x00,0x00] v_add_nc_u32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_add_nc_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x25,0xd5,0xf0,0xfa,0x00,0x00] v_add_nc_u32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x25,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_add_nc_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x25,0xd5,0xfd,0xd4,0x00,0x00] v_add_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0x80,0x25,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_add_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x25,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_and_b32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_and_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1b,0xd5,0x01,0x05,0x02,0x00] v_and_b32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_and_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1b,0xd5,0xff,0xff,0x03,0x00] v_and_b32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_and_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1b,0xd5,0x01,0x04,0x00,0x00] v_and_b32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_and_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1b,0xd5,0x69,0xd2,0x00,0x00] v_and_b32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_and_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1b,0xd5,0x6a,0xf6,0x00,0x00] v_and_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_and_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_and_b32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_and_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1b,0xd5,0x7b,0xfa,0x01,0x00] v_and_b32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_and_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1b,0xd5,0x7d,0xe0,0x01,0x00] v_and_b32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_and_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1b,0xd5,0x7e,0x82,0x01,0x00] v_and_b32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_and_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1b,0xd5,0x7f,0xf8,0x00,0x00] v_and_b32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_and_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1b,0xd5,0x7c,0xfc,0x00,0x00] v_and_b32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_and_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1b,0xd5,0xc1,0xfe,0x00,0x00] v_and_b32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_and_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1b,0xd5,0xf0,0xfa,0x00,0x00] v_and_b32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1b,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_and_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1b,0xd5,0xfd,0xd4,0x00,0x00] v_and_b32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x1b,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_and_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1b,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_ashrrev_i32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_ashrrev_i32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1a,0xd5,0x01,0x05,0x02,0x00] v_ashrrev_i32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_ashrrev_i32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1a,0xd5,0xff,0xff,0x03,0x00] v_ashrrev_i32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_ashrrev_i32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1a,0xd5,0x01,0x04,0x00,0x00] v_ashrrev_i32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_ashrrev_i32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1a,0xd5,0x69,0xd2,0x00,0x00] v_ashrrev_i32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_ashrrev_i32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1a,0xd5,0x6a,0xf6,0x00,0x00] v_ashrrev_i32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_ashrrev_i32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1a,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_ashrrev_i32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_ashrrev_i32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1a,0xd5,0x7b,0xfa,0x01,0x00] v_ashrrev_i32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_ashrrev_i32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1a,0xd5,0x7d,0xe0,0x01,0x00] v_ashrrev_i32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_ashrrev_i32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1a,0xd5,0x7e,0x82,0x01,0x00] v_ashrrev_i32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_ashrrev_i32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1a,0xd5,0x7f,0xf8,0x00,0x00] v_ashrrev_i32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_ashrrev_i32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1a,0xd5,0x7c,0xfc,0x00,0x00] v_ashrrev_i32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_ashrrev_i32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1a,0xd5,0xc1,0xfe,0x00,0x00] v_ashrrev_i32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_ashrrev_i32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1a,0xd5,0xf0,0xfa,0x00,0x00] v_ashrrev_i32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1a,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_ashrrev_i32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1a,0xd5,0xfd,0xd4,0x00,0x00] v_ashrrev_i32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x1a,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_ashrrev_i32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1a,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cndmask_b32_e64 v5, v1, 0xaf123456, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, v1, 0xaf123456, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, v255, src_scc, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0xff,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, v255, src_scc, s3 ; encoding: [0x05,0x00,0x01,0xd5,0xff,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64 v5, s105, s105, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, s105, s105, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64 v5, vcc_lo, v2, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x6a,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, vcc_lo, v2, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x6a,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64 v5, vcc_hi, v255, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x6b,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, vcc_hi, v255, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x6b,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:37: error: invalid operand for instruction v_cndmask_b32_e64 v5, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, ttmp15, ttmp15, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, m0, 0.5, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7d,0xe0,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, m0, 0.5, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x7d,0xe0,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_cndmask_b32_e64 v5, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, exec_lo, exec_lo, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:41: error: invalid operand for instruction v_cndmask_b32_e64 v5, exec_hi, -1, s3 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7f,0x82,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, exec_hi, -1, s3 ; encoding: [0x05,0x00,0x01,0xd5,0x7f,0x82,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:36: error: invalid operand for instruction v_cndmask_b32_e64 v5, null, exec_hi, s105 -// W32: encoding: [0x05,0x00,0x01,0xd5,0x7c,0xfe,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, null, exec_hi, s105 ; encoding: [0x05,0x00,0x01,0xd5,0x7c,0xfe,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64 v5, -1, m0, vcc_lo -// W32: encoding: [0x05,0x00,0x01,0xd5,0xc1,0xfa,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, -1, m0, vcc_lo ; encoding: [0x05,0x00,0x01,0xd5,0xc1,0xfa,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:31: error: invalid operand for instruction v_cndmask_b32_e64 v5, 0.5, -|vcc_lo|, vcc_hi -// W32: encoding: [0x05,0x02,0x01,0xd5,0xf0,0xd4,0xac,0x41] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, 0.5, -|vcc_lo|, vcc_hi ; encoding: [0x05,0x02,0x01,0xd5,0xf0,0xd4,0xac,0x41] +// W64-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, -|src_scc|, null, ttmp15 -// W32: encoding: [0x05,0x01,0x01,0xd5,0xfd,0xf8,0xec,0x21] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64 v5, -|src_scc|, null, ttmp15 ; encoding: [0x05,0x01,0x01,0xd5,0xfd,0xf8,0xec,0x21] +// W64-ERR: :[[@LINE-2]]:41: error: invalid operand for instruction v_cndmask_b32_e64 v5, v1, 0xaf123456, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, v1, 0xaf123456, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, v255, src_scc, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0xff,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, v255, src_scc, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0xff,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64 v5, s105, s105, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, s105, s105, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64 v5, vcc_lo, v2, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x6a,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, vcc_lo, v2, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x6a,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64 v5, vcc_hi, v255, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x6b,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, vcc_hi, v255, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x6b,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:37: error: invalid operand for instruction v_cndmask_b32_e64 v5, ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, m0, 0.5, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7d,0xe0,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, m0, 0.5, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7d,0xe0,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_cndmask_b32_e64 v5, exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:41: error: invalid operand for instruction v_cndmask_b32_e64 v5, exec_hi, -1, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7f,0x82,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, exec_hi, -1, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7f,0x82,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:36: error: invalid operand for instruction v_cndmask_b32_e64 v5, null, exec_hi, s[6:7] -// W64: encoding: [0x05,0x00,0x01,0xd5,0x7c,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, null, exec_hi, s[6:7] ; encoding: [0x05,0x00,0x01,0xd5,0x7c,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64 v5, -1, m0, s[104:105] -// W64: encoding: [0x05,0x00,0x01,0xd5,0xc1,0xfa,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, -1, m0, s[104:105] ; encoding: [0x05,0x00,0x01,0xd5,0xc1,0xfa,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:31: error: invalid operand for instruction v_cndmask_b32_e64 v5, 0.5, -|vcc_lo|, vcc -// W64: encoding: [0x05,0x02,0x01,0xd5,0xf0,0xd4,0xa8,0x41] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, 0.5, -|vcc_lo|, vcc ; encoding: [0x05,0x02,0x01,0xd5,0xf0,0xd4,0xa8,0x41] +// W32-ERR: :[[@LINE-2]]:39: error: invalid operand for instruction v_cndmask_b32_e64 v5, -|src_scc|, null, ttmp[14:15] -// W64: encoding: [0x05,0x01,0x01,0xd5,0xfd,0xf8,0xe8,0x21] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64 v5, -|src_scc|, null, ttmp[14:15] ; encoding: [0x05,0x01,0x01,0xd5,0xfd,0xf8,0xe8,0x21] +// W32-ERR: :[[@LINE-2]]:41: error: invalid operand for instruction v_cndmask_b32_e64 v255, -|0xaf123456|, -|vcc_hi|, null -// GFX12: encoding: [0xff,0x03,0x01,0xd5,0xff,0xd6,0xf0,0x61,0x56,0x34,0x12,0xaf] +// GFX12: v_cndmask_b32_e64 v255, -|0xaf123456|, -|vcc_hi|, null ; encoding: [0xff,0x03,0x01,0xd5,0xff,0xd6,0xf0,0x61,0x56,0x34,0x12,0xaf] v_cvt_pk_rtz_f16_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x2f,0xd5,0x01,0x05,0x02,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x2f,0xd5,0xff,0xff,0x03,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x2f,0xd5,0x01,0x04,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x2f,0xd5,0x69,0xd2,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2f,0xd5,0x6a,0xf6,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pk_rtz_f16_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2f,0xd5,0x7b,0xfa,0x01,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2f,0xd5,0x7d,0xe0,0x01,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2f,0xd5,0x7e,0x82,0x01,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x2f,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x2f,0xd5,0x7f,0xf8,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x2f,0xd5,0x7c,0xfc,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2f,0xd5,0xc1,0xfe,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0xf0,0xfa,0x00,0x40] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x2f,0xd5,0xf0,0xfa,0x00,0x40] v_cvt_pk_rtz_f16_f32_e64 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x2f,0xd5,0xfd,0xd4,0x00,0x20] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x2f,0xd5,0xfd,0xd4,0x00,0x20] v_cvt_pk_rtz_f16_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0xff,0x83,0x2f,0xd5,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0xff,0x83,0x2f,0xd5,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cvt_pkrtz_f16_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x2f,0xd5,0x01,0x05,0x02,0x00] v_cvt_pkrtz_f16_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x2f,0xd5,0xff,0xff,0x03,0x00] v_cvt_pkrtz_f16_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x2f,0xd5,0x01,0x04,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x2f,0xd5,0x69,0xd2,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2f,0xd5,0x6a,0xf6,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2f,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cvt_pkrtz_f16_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2f,0xd5,0x7b,0xfa,0x01,0x00] v_cvt_pkrtz_f16_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2f,0xd5,0x7d,0xe0,0x01,0x00] v_cvt_pkrtz_f16_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2f,0xd5,0x7e,0x82,0x01,0x00] v_cvt_pkrtz_f16_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x2f,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x2f,0xd5,0x7f,0xf8,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x2f,0xd5,0x7c,0xfc,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2f,0xd5,0xc1,0xfe,0x00,0x00] v_cvt_pkrtz_f16_f32_e64 v5, 0.5, -m0 -// GFX12: encoding: [0x05,0x00,0x2f,0xd5,0xf0,0xfa,0x00,0x40] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, 0.5, -m0 ; encoding: [0x05,0x00,0x2f,0xd5,0xf0,0xfa,0x00,0x40] v_cvt_pkrtz_f16_f32_e64 v5, -src_scc, |vcc_lo| -// GFX12: encoding: [0x05,0x02,0x2f,0xd5,0xfd,0xd4,0x00,0x20] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v5, -src_scc, |vcc_lo| ; encoding: [0x05,0x02,0x2f,0xd5,0xfd,0xd4,0x00,0x20] v_cvt_pkrtz_f16_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0xff,0x83,0x2f,0xd5,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cvt_pk_rtz_f16_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0xff,0x83,0x2f,0xd5,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_fmac_f16_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_fmac_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x36,0xd5,0x01,0x05,0x02,0x00] v_fmac_f16_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_fmac_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x36,0xd5,0xff,0xff,0x03,0x00] v_fmac_f16_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_fmac_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x36,0xd5,0x01,0x04,0x00,0x00] v_fmac_f16_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_fmac_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x36,0xd5,0x69,0xd2,0x00,0x00] v_fmac_f16_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_fmac_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x36,0xd5,0x6a,0xf6,0x00,0x00] v_fmac_f16_e64 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_fmac_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x36,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_fmac_f16_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_fmac_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x36,0xd5,0x7b,0xfa,0x01,0x00] v_fmac_f16_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_fmac_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x36,0xd5,0x7d,0xe0,0x01,0x00] v_fmac_f16_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_fmac_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x36,0xd5,0x7e,0x82,0x01,0x00] v_fmac_f16_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x36,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_fmac_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x36,0xd5,0x7f,0xf8,0x00,0x00] v_fmac_f16_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_fmac_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x36,0xd5,0x7c,0xfc,0x00,0x00] v_fmac_f16_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_fmac_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x36,0xd5,0xc1,0xfe,0x00,0x00] v_fmac_f16_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x36,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_fmac_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x36,0xd5,0xf0,0xfa,0x00,0x48] v_fmac_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x36,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_fmac_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x36,0xd5,0xfd,0xd4,0x00,0x30] v_fmac_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x36,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX12: v_fmac_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x36,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_fmac_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_fmac_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x2b,0xd5,0x01,0x05,0x02,0x00] v_fmac_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_fmac_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x2b,0xd5,0xff,0xff,0x03,0x00] v_fmac_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_fmac_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x2b,0xd5,0x01,0x04,0x00,0x00] v_fmac_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_fmac_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x2b,0xd5,0x69,0xd2,0x00,0x00] v_fmac_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_fmac_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x2b,0xd5,0x6a,0xf6,0x00,0x00] v_fmac_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_fmac_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x2b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_fmac_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_fmac_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x2b,0xd5,0x7b,0xfa,0x01,0x00] v_fmac_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_fmac_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x2b,0xd5,0x7d,0xe0,0x01,0x00] v_fmac_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_fmac_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x2b,0xd5,0x7e,0x82,0x01,0x00] v_fmac_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x2b,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_fmac_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x2b,0xd5,0x7f,0xf8,0x00,0x00] v_fmac_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_fmac_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x2b,0xd5,0x7c,0xfc,0x00,0x00] v_fmac_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_fmac_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x2b,0xd5,0xc1,0xfe,0x00,0x00] v_fmac_f32_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x2b,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_fmac_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x2b,0xd5,0xf0,0xfa,0x00,0x48] v_fmac_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x2b,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_fmac_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x2b,0xd5,0xfd,0xd4,0x00,0x30] v_fmac_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x2b,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX12: v_fmac_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x2b,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_ldexp_f16_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_ldexp_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x3b,0xd5,0x01,0x05,0x02,0x00] v_ldexp_f16_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_ldexp_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x3b,0xd5,0xff,0xff,0x03,0x00] v_ldexp_f16_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_ldexp_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x3b,0xd5,0x01,0x04,0x00,0x00] v_ldexp_f16_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_ldexp_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x3b,0xd5,0x69,0xd2,0x00,0x00] v_ldexp_f16_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_ldexp_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3b,0xd5,0x6a,0xf6,0x00,0x00] v_ldexp_f16_e64 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_ldexp_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3b,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_ldexp_f16_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_ldexp_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3b,0xd5,0x7b,0xfa,0x01,0x00] v_ldexp_f16_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_ldexp_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x3b,0xd5,0x7d,0xe0,0x01,0x00] v_ldexp_f16_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_ldexp_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x3b,0xd5,0x7e,0x82,0x01,0x00] v_ldexp_f16_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_ldexp_f16_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x3b,0xd5,0x7f,0xf8,0x00,0x00] v_ldexp_f16_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_ldexp_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x3b,0xd5,0x7c,0xfc,0x00,0x00] v_ldexp_f16_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_ldexp_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x3b,0xd5,0xc1,0xfe,0x00,0x00] v_ldexp_f16_e64 v5, 0.5, m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0xf0,0xfa,0x00,0x08] +// GFX12: v_ldexp_f16_e64 v5, 0.5, m0 mul:2 ; encoding: [0x05,0x00,0x3b,0xd5,0xf0,0xfa,0x00,0x08] v_ldexp_f16_e64 v5, src_scc, vcc_lo mul:4 -// GFX12: encoding: [0x05,0x00,0x3b,0xd5,0xfd,0xd4,0x00,0x10] +// GFX12: v_ldexp_f16_e64 v5, src_scc, vcc_lo mul:4 ; encoding: [0x05,0x00,0x3b,0xd5,0xfd,0xd4,0x00,0x10] v_ldexp_f16_e64 v255, -|0xfe0b|, vcc_hi clamp div:2 -// GFX12: encoding: [0xff,0x81,0x3b,0xd5,0xff,0xd6,0x00,0x38,0x0b,0xfe,0x00,0x00] +// GFX12: v_ldexp_f16_e64 v255, -|0xfe0b|, vcc_hi clamp div:2 ; encoding: [0xff,0x81,0x3b,0xd5,0xff,0xd6,0x00,0x38,0x0b,0xfe,0x00,0x00] v_lshlrev_b32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_lshlrev_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x18,0xd5,0x01,0x05,0x02,0x00] v_lshlrev_b32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_lshlrev_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x18,0xd5,0xff,0xff,0x03,0x00] v_lshlrev_b32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_lshlrev_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x18,0xd5,0x01,0x04,0x00,0x00] v_lshlrev_b32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_lshlrev_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x18,0xd5,0x69,0xd2,0x00,0x00] v_lshlrev_b32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_lshlrev_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x18,0xd5,0x6a,0xf6,0x00,0x00] v_lshlrev_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_lshlrev_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x18,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshlrev_b32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_lshlrev_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x18,0xd5,0x7b,0xfa,0x01,0x00] v_lshlrev_b32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_lshlrev_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x18,0xd5,0x7d,0xe0,0x01,0x00] v_lshlrev_b32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_lshlrev_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x18,0xd5,0x7e,0x82,0x01,0x00] v_lshlrev_b32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_lshlrev_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x18,0xd5,0x7f,0xf8,0x00,0x00] v_lshlrev_b32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_lshlrev_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x18,0xd5,0x7c,0xfc,0x00,0x00] v_lshlrev_b32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_lshlrev_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x18,0xd5,0xc1,0xfe,0x00,0x00] v_lshlrev_b32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_lshlrev_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x18,0xd5,0xf0,0xfa,0x00,0x00] v_lshlrev_b32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x18,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_lshlrev_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x18,0xd5,0xfd,0xd4,0x00,0x00] v_lshlrev_b32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x18,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_lshlrev_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x18,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_lshlrev_b64_e64 v[5:6], v1, v[2:3] -// GFX12: encoding: [0x05,0x00,0x1f,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_lshlrev_b64_e64 v[5:6], v1, v[2:3] ; encoding: [0x05,0x00,0x1f,0xd5,0x01,0x05,0x02,0x00] v_lshlrev_b64_e64 v[5:6], v255, v[254:255] -// GFX12: encoding: [0x05,0x00,0x1f,0xd5,0xff,0xfd,0x03,0x00] +// GFX12: v_lshlrev_b64_e64 v[5:6], v255, v[254:255] ; encoding: [0x05,0x00,0x1f,0xd5,0xff,0xfd,0x03,0x00] v_lshlrev_b64_e64 v[5:6], v1, vcc -// GFX12: encoding: [0x05,0x00,0x1f,0xd5,0x01,0xd5,0x00,0x00] +// GFX12: v_lshlrev_b64_e64 v[5:6], v1, vcc ; encoding: [0x05,0x00,0x1f,0xd5,0x01,0xd5,0x00,0x00] v_lshlrev_b64_e64 v[5:6], v255, exec -// GFX12: encoding: [0x05,0x00,0x1f,0xd5,0xff,0xfd,0x00,0x00] +// GFX12: v_lshlrev_b64_e64 v[5:6], v255, exec ; encoding: [0x05,0x00,0x1f,0xd5,0xff,0xfd,0x00,0x00] v_lshlrev_b64_e64 v[5:6], null, null -// GFX12: encoding: [0x05,0x00,0x1f,0xd5,0x7c,0xf8,0x00,0x00] +// GFX12: v_lshlrev_b64_e64 v[5:6], null, null ; encoding: [0x05,0x00,0x1f,0xd5,0x7c,0xf8,0x00,0x00] v_lshlrev_b64_e64 v[5:6], -1, -1 -// GFX12: encoding: [0x05,0x00,0x1f,0xd5,0xc1,0x82,0x01,0x00] +// GFX12: v_lshlrev_b64_e64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x1f,0xd5,0xc1,0x82,0x01,0x00] v_lshlrev_b64_e64 v[5:6], 0.5, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1f,0xd5,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_lshlrev_b64_e64 v[5:6], 0.5, 0xaf123456 ; encoding: [0x05,0x00,0x1f,0xd5,0xf0,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshlrev_b64_e64 v[5:6], src_scc, src_scc -// GFX12: encoding: [0x05,0x00,0x1f,0xd5,0xfd,0xfa,0x01,0x00] +// GFX12: v_lshlrev_b64_e64 v[5:6], src_scc, src_scc ; encoding: [0x05,0x00,0x1f,0xd5,0xfd,0xfa,0x01,0x00] v_lshlrev_b64_e64 v[254:255], 0xaf123456, 0.5 -// GFX12: encoding: [0xfe,0x00,0x1f,0xd5,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_lshlrev_b64_e64 v[254:255], 0xaf123456, 0.5 ; encoding: [0xfe,0x00,0x1f,0xd5,0xff,0xe0,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshrrev_b32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_lshrrev_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x19,0xd5,0x01,0x05,0x02,0x00] v_lshrrev_b32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_lshrrev_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x19,0xd5,0xff,0xff,0x03,0x00] v_lshrrev_b32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_lshrrev_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x19,0xd5,0x01,0x04,0x00,0x00] v_lshrrev_b32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_lshrrev_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x19,0xd5,0x69,0xd2,0x00,0x00] v_lshrrev_b32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_lshrrev_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x19,0xd5,0x6a,0xf6,0x00,0x00] v_lshrrev_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_lshrrev_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x19,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_lshrrev_b32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_lshrrev_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x19,0xd5,0x7b,0xfa,0x01,0x00] v_lshrrev_b32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_lshrrev_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x19,0xd5,0x7d,0xe0,0x01,0x00] v_lshrrev_b32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_lshrrev_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x19,0xd5,0x7e,0x82,0x01,0x00] v_lshrrev_b32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_lshrrev_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x19,0xd5,0x7f,0xf8,0x00,0x00] v_lshrrev_b32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_lshrrev_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x19,0xd5,0x7c,0xfc,0x00,0x00] v_lshrrev_b32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_lshrrev_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x19,0xd5,0xc1,0xfe,0x00,0x00] v_lshrrev_b32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_lshrrev_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x19,0xd5,0xf0,0xfa,0x00,0x00] v_lshrrev_b32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x19,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_lshrrev_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x19,0xd5,0xfd,0xd4,0x00,0x00] v_lshrrev_b32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x19,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_lshrrev_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x19,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_max_num_f16_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_max_num_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x31,0xd5,0x01,0x05,0x02,0x00] v_max_num_f16_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_max_num_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x31,0xd5,0xff,0xff,0x03,0x00] v_max_num_f16_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_max_num_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x31,0xd5,0x01,0x04,0x00,0x00] v_max_num_f16_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_max_num_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x31,0xd5,0x69,0xd2,0x00,0x00] v_max_num_f16_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_max_num_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x31,0xd5,0x6a,0xf6,0x00,0x00] v_max_num_f16_e64 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_max_num_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x31,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_max_num_f16_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_max_num_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x31,0xd5,0x7b,0xfa,0x01,0x00] v_max_num_f16_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_max_num_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x31,0xd5,0x7d,0xe0,0x01,0x00] v_max_num_f16_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_max_num_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x31,0xd5,0x7e,0x82,0x01,0x00] v_max_num_f16_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x31,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_max_num_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x31,0xd5,0x7f,0xf8,0x00,0x00] v_max_num_f16_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_max_num_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x31,0xd5,0x7c,0xfc,0x00,0x00] v_max_num_f16_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_max_num_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x31,0xd5,0xc1,0xfe,0x00,0x00] v_max_num_f16_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x31,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_max_num_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x31,0xd5,0xf0,0xfa,0x00,0x48] v_max_num_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x31,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_max_num_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x31,0xd5,0xfd,0xd4,0x00,0x30] v_max_num_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x31,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX12: v_max_num_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x31,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_max_num_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_max_num_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x16,0xd5,0x01,0x05,0x02,0x00] v_max_num_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_max_num_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x16,0xd5,0xff,0xff,0x03,0x00] v_max_num_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_max_num_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x16,0xd5,0x01,0x04,0x00,0x00] v_max_num_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_max_num_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x16,0xd5,0x69,0xd2,0x00,0x00] v_max_num_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_max_num_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x16,0xd5,0x6a,0xf6,0x00,0x00] v_max_num_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_max_num_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x16,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_max_num_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_max_num_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x16,0xd5,0x7b,0xfa,0x01,0x00] v_max_num_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_max_num_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x16,0xd5,0x7d,0xe0,0x01,0x00] v_max_num_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_max_num_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x16,0xd5,0x7e,0x82,0x01,0x00] v_max_num_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x16,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_max_num_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x16,0xd5,0x7f,0xf8,0x00,0x00] v_max_num_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_max_num_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x16,0xd5,0x7c,0xfc,0x00,0x00] v_max_num_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_max_num_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x16,0xd5,0xc1,0xfe,0x00,0x00] v_max_num_f32_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x16,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_max_num_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x16,0xd5,0xf0,0xfa,0x00,0x48] v_max_num_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x16,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_max_num_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x16,0xd5,0xfd,0xd4,0x00,0x30] v_max_num_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x16,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX12: v_max_num_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x16,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_max_num_f64_e64 v[5:6], v[2:3], v[4:5] -// GFX12: encoding: [0x05,0x00,0x0e,0xd5,0x02,0x09,0x02,0x00] +// GFX12: v_max_num_f64_e64 v[5:6], v[2:3], v[4:5] ; encoding: [0x05,0x00,0x0e,0xd5,0x02,0x09,0x02,0x00] v_max_num_f64_e64 v[5:6], v[104:105], v[104:105] -// GFX12: encoding: [0x05,0x00,0x0e,0xd5,0x68,0xd1,0x02,0x00] +// GFX12: v_max_num_f64_e64 v[5:6], v[104:105], v[104:105] ; encoding: [0x05,0x00,0x0e,0xd5,0x68,0xd1,0x02,0x00] v_max_num_f64_e64 v[5:6], s[2:3], s[4:5] -// GFX12: encoding: [0x05,0x00,0x0e,0xd5,0x02,0x08,0x00,0x00] +// GFX12: v_max_num_f64_e64 v[5:6], s[2:3], s[4:5] ; encoding: [0x05,0x00,0x0e,0xd5,0x02,0x08,0x00,0x00] v_max_num_f64_e64 v[5:6], s[104:105], s[104:105] -// GFX12: encoding: [0x05,0x00,0x0e,0xd5,0x68,0xd0,0x00,0x00] +// GFX12: v_max_num_f64_e64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x0e,0xd5,0x68,0xd0,0x00,0x00] v_max_num_f64_e64 v[5:6], vcc, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x0e,0xd5,0x6a,0xf4,0x00,0x00] +// GFX12: v_max_num_f64_e64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x0e,0xd5,0x6a,0xf4,0x00,0x00] v_max_num_f64_e64 v[5:6], ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x0e,0xd5,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_max_num_f64_e64 v[5:6], ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x0e,0xd5,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_max_num_f64_e64 v[5:6], -|exec|, src_scc -// GFX12: encoding: [0x05,0x01,0x0e,0xd5,0x7e,0xfa,0x01,0x20] +// GFX12: v_max_num_f64_e64 v[5:6], -|exec|, src_scc ; encoding: [0x05,0x01,0x0e,0xd5,0x7e,0xfa,0x01,0x20] v_max_num_f64_e64 v[5:6], null, 0.5 -// GFX12: encoding: [0x05,0x00,0x0e,0xd5,0x7c,0xe0,0x01,0x00] +// GFX12: v_max_num_f64_e64 v[5:6], null, 0.5 ; encoding: [0x05,0x00,0x0e,0xd5,0x7c,0xe0,0x01,0x00] v_max_num_f64_e64 v[5:6], -1, -1 -// GFX12: encoding: [0x05,0x00,0x0e,0xd5,0xc1,0x82,0x01,0x00] +// GFX12: v_max_num_f64_e64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x0e,0xd5,0xc1,0x82,0x01,0x00] v_max_num_f64_e64 v[5:6], 0.5, null mul:2 -// GFX12: encoding: [0x05,0x00,0x0e,0xd5,0xf0,0xf8,0x00,0x08] +// GFX12: v_max_num_f64_e64 v[5:6], 0.5, null mul:2 ; encoding: [0x05,0x00,0x0e,0xd5,0xf0,0xf8,0x00,0x08] v_max_num_f64_e64 v[5:6], -|src_scc|, -|exec| mul:4 -// GFX12: encoding: [0x05,0x03,0x0e,0xd5,0xfd,0xfc,0x00,0x70] +// GFX12: v_max_num_f64_e64 v[5:6], -|src_scc|, -|exec| mul:4 ; encoding: [0x05,0x03,0x0e,0xd5,0xfd,0xfc,0x00,0x70] v_max_num_f64_e64 v[254:255], 0xaf123456, -|vcc| clamp div:2 -// GFX12: encoding: [0xfe,0x82,0x0e,0xd5,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_max_num_f64_e64 v[254:255], 0xaf123456, -|vcc| clamp div:2 ; encoding: [0xfe,0x82,0x0e,0xd5,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] v_max_i32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_max_i32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x12,0xd5,0x01,0x05,0x02,0x00] v_max_i32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_max_i32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x12,0xd5,0xff,0xff,0x03,0x00] v_max_i32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_max_i32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x12,0xd5,0x01,0x04,0x00,0x00] v_max_i32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_max_i32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x12,0xd5,0x69,0xd2,0x00,0x00] v_max_i32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_max_i32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x12,0xd5,0x6a,0xf6,0x00,0x00] v_max_i32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_max_i32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x12,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_max_i32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_max_i32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x12,0xd5,0x7b,0xfa,0x01,0x00] v_max_i32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_max_i32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x12,0xd5,0x7d,0xe0,0x01,0x00] v_max_i32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_max_i32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x12,0xd5,0x7e,0x82,0x01,0x00] v_max_i32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_max_i32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x12,0xd5,0x7f,0xf8,0x00,0x00] v_max_i32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_max_i32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x12,0xd5,0x7c,0xfc,0x00,0x00] v_max_i32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_max_i32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x12,0xd5,0xc1,0xfe,0x00,0x00] v_max_i32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_max_i32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x12,0xd5,0xf0,0xfa,0x00,0x00] v_max_i32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x12,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_max_i32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x12,0xd5,0xfd,0xd4,0x00,0x00] v_max_i32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x12,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_max_i32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x12,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_max_u32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_max_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x14,0xd5,0x01,0x05,0x02,0x00] v_max_u32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_max_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x14,0xd5,0xff,0xff,0x03,0x00] v_max_u32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_max_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x14,0xd5,0x01,0x04,0x00,0x00] v_max_u32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_max_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x14,0xd5,0x69,0xd2,0x00,0x00] v_max_u32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_max_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x14,0xd5,0x6a,0xf6,0x00,0x00] v_max_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_max_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x14,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_max_u32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_max_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x14,0xd5,0x7b,0xfa,0x01,0x00] v_max_u32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_max_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x14,0xd5,0x7d,0xe0,0x01,0x00] v_max_u32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_max_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x14,0xd5,0x7e,0x82,0x01,0x00] v_max_u32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_max_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x14,0xd5,0x7f,0xf8,0x00,0x00] v_max_u32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_max_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x14,0xd5,0x7c,0xfc,0x00,0x00] v_max_u32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_max_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x14,0xd5,0xc1,0xfe,0x00,0x00] v_max_u32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_max_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x14,0xd5,0xf0,0xfa,0x00,0x00] v_max_u32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x14,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_max_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x14,0xd5,0xfd,0xd4,0x00,0x00] v_max_u32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x14,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_max_u32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x14,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_min_num_f16_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_min_num_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x30,0xd5,0x01,0x05,0x02,0x00] v_min_num_f16_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_min_num_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x30,0xd5,0xff,0xff,0x03,0x00] v_min_num_f16_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_min_num_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x30,0xd5,0x01,0x04,0x00,0x00] v_min_num_f16_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_min_num_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x30,0xd5,0x69,0xd2,0x00,0x00] v_min_num_f16_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_min_num_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x30,0xd5,0x6a,0xf6,0x00,0x00] v_min_num_f16_e64 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_min_num_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x30,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_min_num_f16_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_min_num_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x30,0xd5,0x7b,0xfa,0x01,0x00] v_min_num_f16_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_min_num_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x30,0xd5,0x7d,0xe0,0x01,0x00] v_min_num_f16_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_min_num_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x30,0xd5,0x7e,0x82,0x01,0x00] v_min_num_f16_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x30,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_min_num_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x30,0xd5,0x7f,0xf8,0x00,0x00] v_min_num_f16_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_min_num_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x30,0xd5,0x7c,0xfc,0x00,0x00] v_min_num_f16_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_min_num_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x30,0xd5,0xc1,0xfe,0x00,0x00] v_min_num_f16_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x30,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_min_num_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x30,0xd5,0xf0,0xfa,0x00,0x48] v_min_num_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x30,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_min_num_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x30,0xd5,0xfd,0xd4,0x00,0x30] v_min_num_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x30,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX12: v_min_num_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x30,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_min_num_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_min_num_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x15,0xd5,0x01,0x05,0x02,0x00] v_min_num_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_min_num_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x15,0xd5,0xff,0xff,0x03,0x00] v_min_num_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_min_num_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x15,0xd5,0x01,0x04,0x00,0x00] v_min_num_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_min_num_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x15,0xd5,0x69,0xd2,0x00,0x00] v_min_num_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_min_num_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x15,0xd5,0x6a,0xf6,0x00,0x00] v_min_num_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_min_num_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x15,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_min_num_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_min_num_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x15,0xd5,0x7b,0xfa,0x01,0x00] v_min_num_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_min_num_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x15,0xd5,0x7d,0xe0,0x01,0x00] v_min_num_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_min_num_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x15,0xd5,0x7e,0x82,0x01,0x00] v_min_num_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x15,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_min_num_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x15,0xd5,0x7f,0xf8,0x00,0x00] v_min_num_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_min_num_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x15,0xd5,0x7c,0xfc,0x00,0x00] v_min_num_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_min_num_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x15,0xd5,0xc1,0xfe,0x00,0x00] v_min_num_f32_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x15,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_min_num_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x15,0xd5,0xf0,0xfa,0x00,0x48] v_min_num_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x15,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_min_num_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x15,0xd5,0xfd,0xd4,0x00,0x30] v_min_num_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x15,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX12: v_min_num_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x15,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_min_num_f64_e64 v[5:6], v[2:3], v[4:5] -// GFX12: encoding: [0x05,0x00,0x0d,0xd5,0x02,0x09,0x02,0x00] +// GFX12: v_min_num_f64_e64 v[5:6], v[2:3], v[4:5] ; encoding: [0x05,0x00,0x0d,0xd5,0x02,0x09,0x02,0x00] v_min_num_f64_e64 v[5:6], v[104:105], v[104:105] -// GFX12: encoding: [0x05,0x00,0x0d,0xd5,0x68,0xd1,0x02,0x00] +// GFX12: v_min_num_f64_e64 v[5:6], v[104:105], v[104:105] ; encoding: [0x05,0x00,0x0d,0xd5,0x68,0xd1,0x02,0x00] v_min_num_f64_e64 v[5:6], s[2:3], s[4:5] -// GFX12: encoding: [0x05,0x00,0x0d,0xd5,0x02,0x08,0x00,0x00] +// GFX12: v_min_num_f64_e64 v[5:6], s[2:3], s[4:5] ; encoding: [0x05,0x00,0x0d,0xd5,0x02,0x08,0x00,0x00] v_min_num_f64_e64 v[5:6], s[104:105], s[104:105] -// GFX12: encoding: [0x05,0x00,0x0d,0xd5,0x68,0xd0,0x00,0x00] +// GFX12: v_min_num_f64_e64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x0d,0xd5,0x68,0xd0,0x00,0x00] v_min_num_f64_e64 v[5:6], vcc, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x0d,0xd5,0x6a,0xf4,0x00,0x00] +// GFX12: v_min_num_f64_e64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x0d,0xd5,0x6a,0xf4,0x00,0x00] v_min_num_f64_e64 v[5:6], ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x0d,0xd5,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_min_num_f64_e64 v[5:6], ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x0d,0xd5,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_min_num_f64_e64 v[5:6], -|exec|, src_scc -// GFX12: encoding: [0x05,0x01,0x0d,0xd5,0x7e,0xfa,0x01,0x20] +// GFX12: v_min_num_f64_e64 v[5:6], -|exec|, src_scc ; encoding: [0x05,0x01,0x0d,0xd5,0x7e,0xfa,0x01,0x20] v_min_num_f64_e64 v[5:6], null, 0.5 -// GFX12: encoding: [0x05,0x00,0x0d,0xd5,0x7c,0xe0,0x01,0x00] +// GFX12: v_min_num_f64_e64 v[5:6], null, 0.5 ; encoding: [0x05,0x00,0x0d,0xd5,0x7c,0xe0,0x01,0x00] v_min_num_f64_e64 v[5:6], -1, -1 -// GFX12: encoding: [0x05,0x00,0x0d,0xd5,0xc1,0x82,0x01,0x00] +// GFX12: v_min_num_f64_e64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x0d,0xd5,0xc1,0x82,0x01,0x00] v_min_num_f64_e64 v[5:6], 0.5, null mul:2 -// GFX12: encoding: [0x05,0x00,0x0d,0xd5,0xf0,0xf8,0x00,0x08] +// GFX12: v_min_num_f64_e64 v[5:6], 0.5, null mul:2 ; encoding: [0x05,0x00,0x0d,0xd5,0xf0,0xf8,0x00,0x08] v_min_num_f64_e64 v[5:6], -|src_scc|, -|exec| mul:4 -// GFX12: encoding: [0x05,0x03,0x0d,0xd5,0xfd,0xfc,0x00,0x70] +// GFX12: v_min_num_f64_e64 v[5:6], -|src_scc|, -|exec| mul:4 ; encoding: [0x05,0x03,0x0d,0xd5,0xfd,0xfc,0x00,0x70] v_min_num_f64_e64 v[254:255], 0xaf123456, -|vcc| clamp div:2 -// GFX12: encoding: [0xfe,0x82,0x0d,0xd5,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_min_num_f64_e64 v[254:255], 0xaf123456, -|vcc| clamp div:2 ; encoding: [0xfe,0x82,0x0d,0xd5,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] v_min_i32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_min_i32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x11,0xd5,0x01,0x05,0x02,0x00] v_min_i32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_min_i32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x11,0xd5,0xff,0xff,0x03,0x00] v_min_i32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_min_i32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x11,0xd5,0x01,0x04,0x00,0x00] v_min_i32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_min_i32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x11,0xd5,0x69,0xd2,0x00,0x00] v_min_i32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_min_i32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x11,0xd5,0x6a,0xf6,0x00,0x00] v_min_i32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_min_i32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x11,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_min_i32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_min_i32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x11,0xd5,0x7b,0xfa,0x01,0x00] v_min_i32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_min_i32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x11,0xd5,0x7d,0xe0,0x01,0x00] v_min_i32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_min_i32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x11,0xd5,0x7e,0x82,0x01,0x00] v_min_i32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_min_i32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x11,0xd5,0x7f,0xf8,0x00,0x00] v_min_i32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_min_i32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x11,0xd5,0x7c,0xfc,0x00,0x00] v_min_i32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_min_i32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x11,0xd5,0xc1,0xfe,0x00,0x00] v_min_i32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_min_i32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x11,0xd5,0xf0,0xfa,0x00,0x00] v_min_i32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x11,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_min_i32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x11,0xd5,0xfd,0xd4,0x00,0x00] v_min_i32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x11,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_min_i32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x11,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_min_u32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_min_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x13,0xd5,0x01,0x05,0x02,0x00] v_min_u32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_min_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x13,0xd5,0xff,0xff,0x03,0x00] v_min_u32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_min_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x13,0xd5,0x01,0x04,0x00,0x00] v_min_u32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_min_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x13,0xd5,0x69,0xd2,0x00,0x00] v_min_u32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_min_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x13,0xd5,0x6a,0xf6,0x00,0x00] v_min_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_min_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x13,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_min_u32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_min_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x13,0xd5,0x7b,0xfa,0x01,0x00] v_min_u32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_min_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x13,0xd5,0x7d,0xe0,0x01,0x00] v_min_u32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_min_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x13,0xd5,0x7e,0x82,0x01,0x00] v_min_u32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_min_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x13,0xd5,0x7f,0xf8,0x00,0x00] v_min_u32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_min_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x13,0xd5,0x7c,0xfc,0x00,0x00] v_min_u32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_min_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x13,0xd5,0xc1,0xfe,0x00,0x00] v_min_u32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_min_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x13,0xd5,0xf0,0xfa,0x00,0x00] v_min_u32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x13,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_min_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x13,0xd5,0xfd,0xd4,0x00,0x00] v_min_u32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x13,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_min_u32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x13,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_dx9_zero_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x07,0xd5,0x01,0x05,0x02,0x00] v_mul_dx9_zero_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x07,0xd5,0xff,0xff,0x03,0x00] v_mul_dx9_zero_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x07,0xd5,0x01,0x04,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x07,0xd5,0x69,0xd2,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x07,0xd5,0x6a,0xf6,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_dx9_zero_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x07,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_dx9_zero_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x07,0xd5,0x7b,0xfa,0x01,0x00] v_mul_dx9_zero_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x07,0xd5,0x7d,0xe0,0x01,0x00] v_mul_dx9_zero_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x07,0xd5,0x7e,0x82,0x01,0x00] v_mul_dx9_zero_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x07,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x07,0xd5,0x7f,0xf8,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x07,0xd5,0x7c,0xfc,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x07,0xd5,0xc1,0xfe,0x00,0x00] v_mul_dx9_zero_f32_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_mul_dx9_zero_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x07,0xd5,0xf0,0xfa,0x00,0x48] v_mul_dx9_zero_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x07,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_mul_dx9_zero_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x07,0xd5,0xfd,0xd4,0x00,0x30] v_mul_dx9_zero_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x07,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_dx9_zero_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x07,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_mul_f16_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_mul_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x35,0xd5,0x01,0x05,0x02,0x00] v_mul_f16_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_mul_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x35,0xd5,0xff,0xff,0x03,0x00] v_mul_f16_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_mul_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x35,0xd5,0x01,0x04,0x00,0x00] v_mul_f16_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x35,0xd5,0x69,0xd2,0x00,0x00] v_mul_f16_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x35,0xd5,0x6a,0xf6,0x00,0x00] v_mul_f16_e64 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_mul_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x35,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_mul_f16_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x35,0xd5,0x7b,0xfa,0x01,0x00] v_mul_f16_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x35,0xd5,0x7d,0xe0,0x01,0x00] v_mul_f16_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x35,0xd5,0x7e,0x82,0x01,0x00] v_mul_f16_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x35,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x35,0xd5,0x7f,0xf8,0x00,0x00] v_mul_f16_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x35,0xd5,0x7c,0xfc,0x00,0x00] v_mul_f16_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x35,0xd5,0xc1,0xfe,0x00,0x00] v_mul_f16_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x35,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_mul_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x35,0xd5,0xf0,0xfa,0x00,0x48] v_mul_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x35,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_mul_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x35,0xd5,0xfd,0xd4,0x00,0x30] v_mul_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x35,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX12: v_mul_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x35,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_mul_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_mul_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x08,0xd5,0x01,0x05,0x02,0x00] v_mul_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_mul_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x08,0xd5,0xff,0xff,0x03,0x00] v_mul_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_mul_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x08,0xd5,0x01,0x04,0x00,0x00] v_mul_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x08,0xd5,0x69,0xd2,0x00,0x00] v_mul_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x08,0xd5,0x6a,0xf6,0x00,0x00] v_mul_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x08,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x08,0xd5,0x7b,0xfa,0x01,0x00] v_mul_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x08,0xd5,0x7d,0xe0,0x01,0x00] v_mul_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x08,0xd5,0x7e,0x82,0x01,0x00] v_mul_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x08,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x08,0xd5,0x7f,0xf8,0x00,0x00] v_mul_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x08,0xd5,0x7c,0xfc,0x00,0x00] v_mul_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x08,0xd5,0xc1,0xfe,0x00,0x00] v_mul_f32_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x08,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_mul_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x08,0xd5,0xf0,0xfa,0x00,0x48] v_mul_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x08,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_mul_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x08,0xd5,0xfd,0xd4,0x00,0x30] v_mul_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x08,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x08,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_mul_f64_e64 v[5:6], v[2:3], v[4:5] -// GFX12: encoding: [0x05,0x00,0x06,0xd5,0x02,0x09,0x02,0x00] +// GFX12: v_mul_f64_e64 v[5:6], v[2:3], v[4:5] ; encoding: [0x05,0x00,0x06,0xd5,0x02,0x09,0x02,0x00] v_mul_f64_e64 v[5:6], v[104:105], v[104:105] -// GFX12: encoding: [0x05,0x00,0x06,0xd5,0x68,0xd1,0x02,0x00] +// GFX12: v_mul_f64_e64 v[5:6], v[104:105], v[104:105] ; encoding: [0x05,0x00,0x06,0xd5,0x68,0xd1,0x02,0x00] v_mul_f64_e64 v[5:6], s[2:3], s[4:5] -// GFX12: encoding: [0x05,0x00,0x06,0xd5,0x02,0x08,0x00,0x00] +// GFX12: v_mul_f64_e64 v[5:6], s[2:3], s[4:5] ; encoding: [0x05,0x00,0x06,0xd5,0x02,0x08,0x00,0x00] v_mul_f64_e64 v[5:6], s[104:105], s[104:105] -// GFX12: encoding: [0x05,0x00,0x06,0xd5,0x68,0xd0,0x00,0x00] +// GFX12: v_mul_f64_e64 v[5:6], s[104:105], s[104:105] ; encoding: [0x05,0x00,0x06,0xd5,0x68,0xd0,0x00,0x00] v_mul_f64_e64 v[5:6], vcc, ttmp[14:15] -// GFX12: encoding: [0x05,0x00,0x06,0xd5,0x6a,0xf4,0x00,0x00] +// GFX12: v_mul_f64_e64 v[5:6], vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x06,0xd5,0x6a,0xf4,0x00,0x00] v_mul_f64_e64 v[5:6], ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x06,0xd5,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_f64_e64 v[5:6], ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x06,0xd5,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_f64_e64 v[5:6], -|exec|, src_scc -// GFX12: encoding: [0x05,0x01,0x06,0xd5,0x7e,0xfa,0x01,0x20] +// GFX12: v_mul_f64_e64 v[5:6], -|exec|, src_scc ; encoding: [0x05,0x01,0x06,0xd5,0x7e,0xfa,0x01,0x20] v_mul_f64_e64 v[5:6], null, 0.5 -// GFX12: encoding: [0x05,0x00,0x06,0xd5,0x7c,0xe0,0x01,0x00] +// GFX12: v_mul_f64_e64 v[5:6], null, 0.5 ; encoding: [0x05,0x00,0x06,0xd5,0x7c,0xe0,0x01,0x00] v_mul_f64_e64 v[5:6], -1, -1 -// GFX12: encoding: [0x05,0x00,0x06,0xd5,0xc1,0x82,0x01,0x00] +// GFX12: v_mul_f64_e64 v[5:6], -1, -1 ; encoding: [0x05,0x00,0x06,0xd5,0xc1,0x82,0x01,0x00] v_mul_f64_e64 v[5:6], 0.5, null mul:2 -// GFX12: encoding: [0x05,0x00,0x06,0xd5,0xf0,0xf8,0x00,0x08] +// GFX12: v_mul_f64_e64 v[5:6], 0.5, null mul:2 ; encoding: [0x05,0x00,0x06,0xd5,0xf0,0xf8,0x00,0x08] v_mul_f64_e64 v[5:6], -|src_scc|, -|exec| mul:4 -// GFX12: encoding: [0x05,0x03,0x06,0xd5,0xfd,0xfc,0x00,0x70] +// GFX12: v_mul_f64_e64 v[5:6], -|src_scc|, -|exec| mul:4 ; encoding: [0x05,0x03,0x06,0xd5,0xfd,0xfc,0x00,0x70] v_mul_f64_e64 v[254:255], 0xaf123456, -|vcc| clamp div:2 -// GFX12: encoding: [0xfe,0x82,0x06,0xd5,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_f64_e64 v[254:255], 0xaf123456, -|vcc| clamp div:2 ; encoding: [0xfe,0x82,0x06,0xd5,0xff,0xd4,0x00,0x58,0x56,0x34,0x12,0xaf] v_mul_hi_i32_i24_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x0a,0xd5,0x01,0x05,0x02,0x00] v_mul_hi_i32_i24_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x0a,0xd5,0xff,0xff,0x03,0x00] v_mul_hi_i32_i24_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x0a,0xd5,0x01,0x04,0x00,0x00] v_mul_hi_i32_i24_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x0a,0xd5,0x69,0xd2,0x00,0x00] v_mul_hi_i32_i24_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0a,0xd5,0x6a,0xf6,0x00,0x00] v_mul_hi_i32_i24_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_i32_i24_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x0a,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_i32_i24_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0a,0xd5,0x7b,0xfa,0x01,0x00] v_mul_hi_i32_i24_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x0a,0xd5,0x7d,0xe0,0x01,0x00] v_mul_hi_i32_i24_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x0a,0xd5,0x7e,0x82,0x01,0x00] v_mul_hi_i32_i24_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x0a,0xd5,0x7f,0xf8,0x00,0x00] v_mul_hi_i32_i24_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x0a,0xd5,0x7c,0xfc,0x00,0x00] v_mul_hi_i32_i24_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x0a,0xd5,0xc1,0xfe,0x00,0x00] v_mul_hi_i32_i24_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x0a,0xd5,0xf0,0xfa,0x00,0x00] v_mul_hi_i32_i24_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x0a,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0a,0xd5,0xfd,0xd4,0x00,0x00] v_mul_hi_i32_i24_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x0a,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_i32_i24_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x0a,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_u32_u24_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x0c,0xd5,0x01,0x05,0x02,0x00] v_mul_hi_u32_u24_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x0c,0xd5,0xff,0xff,0x03,0x00] v_mul_hi_u32_u24_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x0c,0xd5,0x01,0x04,0x00,0x00] v_mul_hi_u32_u24_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x0c,0xd5,0x69,0xd2,0x00,0x00] v_mul_hi_u32_u24_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0c,0xd5,0x6a,0xf6,0x00,0x00] v_mul_hi_u32_u24_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_u32_u24_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x0c,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_hi_u32_u24_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0c,0xd5,0x7b,0xfa,0x01,0x00] v_mul_hi_u32_u24_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x0c,0xd5,0x7d,0xe0,0x01,0x00] v_mul_hi_u32_u24_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x0c,0xd5,0x7e,0x82,0x01,0x00] v_mul_hi_u32_u24_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x0c,0xd5,0x7f,0xf8,0x00,0x00] v_mul_hi_u32_u24_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x0c,0xd5,0x7c,0xfc,0x00,0x00] v_mul_hi_u32_u24_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x0c,0xd5,0xc1,0xfe,0x00,0x00] v_mul_hi_u32_u24_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x0c,0xd5,0xf0,0xfa,0x00,0x00] v_mul_hi_u32_u24_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x0c,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0c,0xd5,0xfd,0xd4,0x00,0x00] v_mul_hi_u32_u24_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x0c,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_hi_u32_u24_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x0c,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_i32_i24_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_mul_i32_i24_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x09,0xd5,0x01,0x05,0x02,0x00] v_mul_i32_i24_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_mul_i32_i24_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x09,0xd5,0xff,0xff,0x03,0x00] v_mul_i32_i24_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_mul_i32_i24_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x09,0xd5,0x01,0x04,0x00,0x00] v_mul_i32_i24_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_i32_i24_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x09,0xd5,0x69,0xd2,0x00,0x00] v_mul_i32_i24_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_i32_i24_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x09,0xd5,0x6a,0xf6,0x00,0x00] v_mul_i32_i24_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_i32_i24_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x09,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_i32_i24_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_i32_i24_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x09,0xd5,0x7b,0xfa,0x01,0x00] v_mul_i32_i24_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_i32_i24_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x09,0xd5,0x7d,0xe0,0x01,0x00] v_mul_i32_i24_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_i32_i24_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x09,0xd5,0x7e,0x82,0x01,0x00] v_mul_i32_i24_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_i32_i24_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x09,0xd5,0x7f,0xf8,0x00,0x00] v_mul_i32_i24_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_i32_i24_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x09,0xd5,0x7c,0xfc,0x00,0x00] v_mul_i32_i24_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_i32_i24_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x09,0xd5,0xc1,0xfe,0x00,0x00] v_mul_i32_i24_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_mul_i32_i24_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x09,0xd5,0xf0,0xfa,0x00,0x00] v_mul_i32_i24_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x09,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_mul_i32_i24_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x09,0xd5,0xfd,0xd4,0x00,0x00] v_mul_i32_i24_e64 v255, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0x80,0x09,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_i32_i24_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x09,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_mul_legacy_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x07,0xd5,0x01,0x05,0x02,0x00] v_mul_legacy_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x07,0xd5,0xff,0xff,0x03,0x00] v_mul_legacy_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x07,0xd5,0x01,0x04,0x00,0x00] v_mul_legacy_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x07,0xd5,0x69,0xd2,0x00,0x00] v_mul_legacy_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x07,0xd5,0x6a,0xf6,0x00,0x00] v_mul_legacy_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_dx9_zero_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x07,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_legacy_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x07,0xd5,0x7b,0xfa,0x01,0x00] v_mul_legacy_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x07,0xd5,0x7d,0xe0,0x01,0x00] v_mul_legacy_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x07,0xd5,0x7e,0x82,0x01,0x00] v_mul_legacy_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x07,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x07,0xd5,0x7f,0xf8,0x00,0x00] v_mul_legacy_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x07,0xd5,0x7c,0xfc,0x00,0x00] v_mul_legacy_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x07,0xd5,0xc1,0xfe,0x00,0x00] v_mul_legacy_f32_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x07,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_mul_dx9_zero_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x07,0xd5,0xf0,0xfa,0x00,0x48] v_mul_legacy_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x07,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_mul_dx9_zero_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x07,0xd5,0xfd,0xd4,0x00,0x30] v_mul_legacy_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x07,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_dx9_zero_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x07,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_mul_u32_u24_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_mul_u32_u24_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x0b,0xd5,0x01,0x05,0x02,0x00] v_mul_u32_u24_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_mul_u32_u24_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x0b,0xd5,0xff,0xff,0x03,0x00] v_mul_u32_u24_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_mul_u32_u24_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x0b,0xd5,0x01,0x04,0x00,0x00] v_mul_u32_u24_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_mul_u32_u24_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x0b,0xd5,0x69,0xd2,0x00,0x00] v_mul_u32_u24_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_mul_u32_u24_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0b,0xd5,0x6a,0xf6,0x00,0x00] v_mul_u32_u24_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_u32_u24_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x0b,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_mul_u32_u24_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_mul_u32_u24_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0b,0xd5,0x7b,0xfa,0x01,0x00] v_mul_u32_u24_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_mul_u32_u24_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x0b,0xd5,0x7d,0xe0,0x01,0x00] v_mul_u32_u24_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_mul_u32_u24_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x0b,0xd5,0x7e,0x82,0x01,0x00] v_mul_u32_u24_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_mul_u32_u24_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x0b,0xd5,0x7f,0xf8,0x00,0x00] v_mul_u32_u24_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_mul_u32_u24_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x0b,0xd5,0x7c,0xfc,0x00,0x00] v_mul_u32_u24_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_mul_u32_u24_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x0b,0xd5,0xc1,0xfe,0x00,0x00] v_mul_u32_u24_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_mul_u32_u24_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x0b,0xd5,0xf0,0xfa,0x00,0x00] v_mul_u32_u24_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x0b,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_mul_u32_u24_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x0b,0xd5,0xfd,0xd4,0x00,0x00] v_mul_u32_u24_e64 v255, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0x80,0x0b,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_mul_u32_u24_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x0b,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_or_b32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_or_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1c,0xd5,0x01,0x05,0x02,0x00] v_or_b32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_or_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1c,0xd5,0xff,0xff,0x03,0x00] v_or_b32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_or_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1c,0xd5,0x01,0x04,0x00,0x00] v_or_b32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_or_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1c,0xd5,0x69,0xd2,0x00,0x00] v_or_b32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_or_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1c,0xd5,0x6a,0xf6,0x00,0x00] v_or_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_or_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1c,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_or_b32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_or_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1c,0xd5,0x7b,0xfa,0x01,0x00] v_or_b32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_or_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1c,0xd5,0x7d,0xe0,0x01,0x00] v_or_b32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_or_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1c,0xd5,0x7e,0x82,0x01,0x00] v_or_b32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_or_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1c,0xd5,0x7f,0xf8,0x00,0x00] v_or_b32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_or_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1c,0xd5,0x7c,0xfc,0x00,0x00] v_or_b32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_or_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1c,0xd5,0xc1,0xfe,0x00,0x00] v_or_b32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_or_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1c,0xd5,0xf0,0xfa,0x00,0x00] v_or_b32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1c,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_or_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1c,0xd5,0xfd,0xd4,0x00,0x00] v_or_b32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x1c,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_or_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1c,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_sub_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, v255, src_scc, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0xff,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, v255, src_scc, s3 ; encoding: [0x05,0x06,0x21,0xd5,0xff,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, s105, s105, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, s105, s105, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x6a,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x6a,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x6b,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x6b,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, m0, 0.5, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x7d,0xe0,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, m0, 0.5, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x7d,0xe0,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 -// W32: encoding: [0x05,0x06,0x21,0xd5,0x7f,0x82,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 ; encoding: [0x05,0x06,0x21,0xd5,0x7f,0x82,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s105, null, exec_hi, s105 -// W32: encoding: [0x05,0x69,0x21,0xd5,0x7c,0xfe,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, s105, null, exec_hi, s105 ; encoding: [0x05,0x69,0x21,0xd5,0x7c,0xfe,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo -// W32: encoding: [0x05,0x6a,0x21,0xd5,0xc1,0xfa,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo ; encoding: [0x05,0x6a,0x21,0xd5,0xc1,0xfa,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi -// W32: encoding: [0x05,0x6b,0x21,0xd5,0xf0,0xd4,0xac,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi ; encoding: [0x05,0x6b,0x21,0xd5,0xf0,0xd4,0xac,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 -// W32: encoding: [0x05,0x7b,0x21,0xd5,0xfd,0xf8,0xec,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 ; encoding: [0x05,0x7b,0x21,0xd5,0xfd,0xf8,0xec,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0xff,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0xff,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x6a,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x6a,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x6b,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x6b,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7d,0xe0,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7d,0xe0,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7f,0x82,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7f,0x82,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] -// W64: encoding: [0x05,0x0c,0x21,0xd5,0x7c,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] ; encoding: [0x05,0x0c,0x21,0xd5,0x7c,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] -// W64: encoding: [0x05,0x68,0x21,0xd5,0xc1,0xfa,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] ; encoding: [0x05,0x68,0x21,0xd5,0xc1,0xfa,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc -// W64: encoding: [0x05,0x6a,0x21,0xd5,0xf0,0xd4,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc ; encoding: [0x05,0x6a,0x21,0xd5,0xf0,0xd4,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] -// W64: encoding: [0x05,0x7a,0x21,0xd5,0xfd,0xf8,0xe8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] ; encoding: [0x05,0x7a,0x21,0xd5,0xfd,0xf8,0xe8,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_sub_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp -// GFX12: encoding: [0xff,0xfc,0x21,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0xfc,0x21,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_sub_f16_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_sub_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x33,0xd5,0x01,0x05,0x02,0x00] v_sub_f16_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_sub_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x33,0xd5,0xff,0xff,0x03,0x00] v_sub_f16_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_sub_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x33,0xd5,0x01,0x04,0x00,0x00] v_sub_f16_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_sub_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x33,0xd5,0x69,0xd2,0x00,0x00] v_sub_f16_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_sub_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x33,0xd5,0x6a,0xf6,0x00,0x00] v_sub_f16_e64 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_sub_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x33,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_sub_f16_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_sub_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x33,0xd5,0x7b,0xfa,0x01,0x00] v_sub_f16_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_sub_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x33,0xd5,0x7d,0xe0,0x01,0x00] v_sub_f16_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_sub_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x33,0xd5,0x7e,0x82,0x01,0x00] v_sub_f16_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x33,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_sub_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x33,0xd5,0x7f,0xf8,0x00,0x00] v_sub_f16_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_sub_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x33,0xd5,0x7c,0xfc,0x00,0x00] v_sub_f16_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_sub_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x33,0xd5,0xc1,0xfe,0x00,0x00] v_sub_f16_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x33,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_sub_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x33,0xd5,0xf0,0xfa,0x00,0x48] v_sub_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x33,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_sub_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x33,0xd5,0xfd,0xd4,0x00,0x30] v_sub_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x33,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX12: v_sub_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x33,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_sub_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_sub_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x04,0xd5,0x01,0x05,0x02,0x00] v_sub_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_sub_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x04,0xd5,0xff,0xff,0x03,0x00] v_sub_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_sub_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x04,0xd5,0x01,0x04,0x00,0x00] v_sub_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_sub_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x04,0xd5,0x69,0xd2,0x00,0x00] v_sub_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_sub_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x04,0xd5,0x6a,0xf6,0x00,0x00] v_sub_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x04,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_sub_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_sub_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x04,0xd5,0x7b,0xfa,0x01,0x00] v_sub_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_sub_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x04,0xd5,0x7d,0xe0,0x01,0x00] v_sub_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_sub_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x04,0xd5,0x7e,0x82,0x01,0x00] v_sub_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x04,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_sub_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x04,0xd5,0x7f,0xf8,0x00,0x00] v_sub_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_sub_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x04,0xd5,0x7c,0xfc,0x00,0x00] v_sub_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_sub_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x04,0xd5,0xc1,0xfe,0x00,0x00] v_sub_f32_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x04,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_sub_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x04,0xd5,0xf0,0xfa,0x00,0x48] v_sub_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x04,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_sub_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x04,0xd5,0xfd,0xd4,0x00,0x30] v_sub_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x04,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x04,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_sub_nc_u32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_sub_nc_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x26,0xd5,0x01,0x05,0x02,0x00] v_sub_nc_u32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_sub_nc_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x26,0xd5,0xff,0xff,0x03,0x00] v_sub_nc_u32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_sub_nc_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x26,0xd5,0x01,0x04,0x00,0x00] v_sub_nc_u32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_sub_nc_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x26,0xd5,0x69,0xd2,0x00,0x00] v_sub_nc_u32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_sub_nc_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x26,0xd5,0x6a,0xf6,0x00,0x00] v_sub_nc_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_nc_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x26,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_sub_nc_u32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_sub_nc_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x26,0xd5,0x7b,0xfa,0x01,0x00] v_sub_nc_u32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_sub_nc_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x26,0xd5,0x7d,0xe0,0x01,0x00] v_sub_nc_u32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_sub_nc_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x26,0xd5,0x7e,0x82,0x01,0x00] v_sub_nc_u32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_sub_nc_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x26,0xd5,0x7f,0xf8,0x00,0x00] v_sub_nc_u32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_sub_nc_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x26,0xd5,0x7c,0xfc,0x00,0x00] v_sub_nc_u32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_sub_nc_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x26,0xd5,0xc1,0xfe,0x00,0x00] v_sub_nc_u32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_sub_nc_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x26,0xd5,0xf0,0xfa,0x00,0x00] v_sub_nc_u32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x26,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_sub_nc_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x26,0xd5,0xfd,0xd4,0x00,0x00] v_sub_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0x80,0x26,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_sub_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x26,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_subrev_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, v1, 0xaf123456, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x01,0xff,0x0d,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, v255, src_scc, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0xff,0xfb,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, v255, src_scc, s3 ; encoding: [0x05,0x06,0x22,0xd5,0xff,0xfb,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, s105, s105, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x69,0xd2,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, s105, s105, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x69,0xd2,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x6a,0x04,0x0e,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, vcc_lo, v2, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x6a,0x04,0x0e,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x6b,0xfe,0x0f,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, vcc_hi, v255, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x6b,0xfe,0x0f,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x7b,0xf6,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, ttmp15, ttmp15, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x7b,0xf6,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, m0, 0.5, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x7d,0xe0,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, m0, 0.5, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x7d,0xe0,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x7e,0xfc,0x0c,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, exec_lo, exec_lo, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x7e,0xfc,0x0c,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 -// W32: encoding: [0x05,0x06,0x22,0xd5,0x7f,0x82,0x0d,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s6, exec_hi, -1, s3 ; encoding: [0x05,0x06,0x22,0xd5,0x7f,0x82,0x0d,0x00] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s105, null, exec_hi, s105 -// W32: encoding: [0x05,0x69,0x22,0xd5,0x7c,0xfe,0xa4,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, s105, null, exec_hi, s105 ; encoding: [0x05,0x69,0x22,0xd5,0x7c,0xfe,0xa4,0x01] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo -// W32: encoding: [0x05,0x6a,0x22,0xd5,0xc1,0xfa,0xa8,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, vcc_lo, -1, m0, vcc_lo ; encoding: [0x05,0x6a,0x22,0xd5,0xc1,0xfa,0xa8,0x01] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi -// W32: encoding: [0x05,0x6b,0x22,0xd5,0xf0,0xd4,0xac,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, vcc_hi, 0.5, vcc_lo, vcc_hi ; encoding: [0x05,0x6b,0x22,0xd5,0xf0,0xd4,0xac,0x01] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 -// W32: encoding: [0x05,0x7b,0x22,0xd5,0xfd,0xf8,0xec,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64 v5, ttmp15, src_scc, null, ttmp15 ; encoding: [0x05,0x7b,0x22,0xd5,0xfd,0xf8,0xec,0x01] +// W64-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], v1, 0xaf123456, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x01,0xff,0x19,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0xff,0xfb,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], v255, src_scc, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0xff,0xfb,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x69,0xd2,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], s105, s105, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x69,0xd2,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x6a,0x04,0x1a,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], vcc_lo, v2, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x6a,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x6b,0xfe,0x1b,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], vcc_hi, v255, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x6b,0xfe,0x1b,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7b,0xf6,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], ttmp15, ttmp15, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7b,0xf6,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7d,0xe0,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], m0, 0.5, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7d,0xe0,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7e,0xfc,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], exec_lo, exec_lo, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7e,0xfc,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7f,0x82,0x19,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], exec_hi, -1, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7f,0x82,0x19,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] -// W64: encoding: [0x05,0x0c,0x22,0xd5,0x7c,0xfe,0x18,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[12:13], null, exec_hi, s[6:7] ; encoding: [0x05,0x0c,0x22,0xd5,0x7c,0xfe,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] -// W64: encoding: [0x05,0x68,0x22,0xd5,0xc1,0xfa,0xa0,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, s[104:105], -1, m0, s[104:105] ; encoding: [0x05,0x68,0x22,0xd5,0xc1,0xfa,0xa0,0x01] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc -// W64: encoding: [0x05,0x6a,0x22,0xd5,0xf0,0xd4,0xa8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, vcc, 0.5, vcc_lo, vcc ; encoding: [0x05,0x6a,0x22,0xd5,0xf0,0xd4,0xa8,0x01] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] -// W64: encoding: [0x05,0x7a,0x22,0xd5,0xfd,0xf8,0xe8,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64 v5, ttmp[14:15], src_scc, null, ttmp[14:15] ; encoding: [0x05,0x7a,0x22,0xd5,0xfd,0xf8,0xe8,0x01] +// W32-ERR: :[[@LINE-2]]:28: error: invalid operand for instruction v_subrev_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp -// GFX12: encoding: [0xff,0xfc,0x22,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +// GFX12: v_subrev_co_ci_u32_e64 v255, null, 0xaf123456, vcc_hi, null clamp ; encoding: [0xff,0xfc,0x22,0xd5,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] v_subrev_f16_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_subrev_f16_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x34,0xd5,0x01,0x05,0x02,0x00] v_subrev_f16_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_subrev_f16_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x34,0xd5,0xff,0xff,0x03,0x00] v_subrev_f16_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_subrev_f16_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x34,0xd5,0x01,0x04,0x00,0x00] v_subrev_f16_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_subrev_f16_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x34,0xd5,0x69,0xd2,0x00,0x00] v_subrev_f16_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_subrev_f16_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x34,0xd5,0x6a,0xf6,0x00,0x00] v_subrev_f16_e64 v5, vcc_hi, 0xfe0b -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_subrev_f16_e64 v5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x34,0xd5,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_subrev_f16_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_subrev_f16_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x34,0xd5,0x7b,0xfa,0x01,0x00] v_subrev_f16_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_subrev_f16_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x34,0xd5,0x7d,0xe0,0x01,0x00] v_subrev_f16_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_subrev_f16_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x34,0xd5,0x7e,0x82,0x01,0x00] v_subrev_f16_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x34,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_subrev_f16_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x34,0xd5,0x7f,0xf8,0x00,0x00] v_subrev_f16_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_subrev_f16_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x34,0xd5,0x7c,0xfc,0x00,0x00] v_subrev_f16_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_subrev_f16_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x34,0xd5,0xc1,0xfe,0x00,0x00] v_subrev_f16_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x34,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_subrev_f16_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x34,0xd5,0xf0,0xfa,0x00,0x48] v_subrev_f16_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x34,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_subrev_f16_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x34,0xd5,0xfd,0xd4,0x00,0x30] v_subrev_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x34,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] +// GFX12: v_subrev_f16_e64 v255, -|0xfe0b|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x34,0xd5,0xff,0xd6,0x00,0x78,0x0b,0xfe,0x00,0x00] v_subrev_f32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_subrev_f32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x05,0xd5,0x01,0x05,0x02,0x00] v_subrev_f32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_subrev_f32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x05,0xd5,0xff,0xff,0x03,0x00] v_subrev_f32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_subrev_f32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x05,0xd5,0x01,0x04,0x00,0x00] v_subrev_f32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_subrev_f32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x05,0xd5,0x69,0xd2,0x00,0x00] v_subrev_f32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_subrev_f32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x05,0xd5,0x6a,0xf6,0x00,0x00] v_subrev_f32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_subrev_f32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x05,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_subrev_f32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_subrev_f32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x05,0xd5,0x7b,0xfa,0x01,0x00] v_subrev_f32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_subrev_f32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x05,0xd5,0x7d,0xe0,0x01,0x00] v_subrev_f32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_subrev_f32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x05,0xd5,0x7e,0x82,0x01,0x00] v_subrev_f32_e64 v5, |exec_hi|, null -// GFX12: encoding: [0x05,0x01,0x05,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_subrev_f32_e64 v5, |exec_hi|, null ; encoding: [0x05,0x01,0x05,0xd5,0x7f,0xf8,0x00,0x00] v_subrev_f32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_subrev_f32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x05,0xd5,0x7c,0xfc,0x00,0x00] v_subrev_f32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_subrev_f32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x05,0xd5,0xc1,0xfe,0x00,0x00] v_subrev_f32_e64 v5, 0.5, -m0 mul:2 -// GFX12: encoding: [0x05,0x00,0x05,0xd5,0xf0,0xfa,0x00,0x48] +// GFX12: v_subrev_f32_e64 v5, 0.5, -m0 mul:2 ; encoding: [0x05,0x00,0x05,0xd5,0xf0,0xfa,0x00,0x48] v_subrev_f32_e64 v5, -src_scc, |vcc_lo| mul:4 -// GFX12: encoding: [0x05,0x02,0x05,0xd5,0xfd,0xd4,0x00,0x30] +// GFX12: v_subrev_f32_e64 v5, -src_scc, |vcc_lo| mul:4 ; encoding: [0x05,0x02,0x05,0xd5,0xfd,0xd4,0x00,0x30] v_subrev_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 -// GFX12: encoding: [0xff,0x83,0x05,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] +// GFX12: v_subrev_f32_e64 v255, -|0xaf123456|, -|vcc_hi| clamp div:2 ; encoding: [0xff,0x83,0x05,0xd5,0xff,0xd6,0x00,0x78,0x56,0x34,0x12,0xaf] v_subrev_nc_u32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x27,0xd5,0x01,0x05,0x02,0x00] v_subrev_nc_u32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x27,0xd5,0xff,0xff,0x03,0x00] v_subrev_nc_u32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x27,0xd5,0x01,0x04,0x00,0x00] v_subrev_nc_u32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x27,0xd5,0x69,0xd2,0x00,0x00] v_subrev_nc_u32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x27,0xd5,0x6a,0xf6,0x00,0x00] v_subrev_nc_u32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_subrev_nc_u32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x27,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_subrev_nc_u32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x27,0xd5,0x7b,0xfa,0x01,0x00] v_subrev_nc_u32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x27,0xd5,0x7d,0xe0,0x01,0x00] v_subrev_nc_u32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x27,0xd5,0x7e,0x82,0x01,0x00] v_subrev_nc_u32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x27,0xd5,0x7f,0xf8,0x00,0x00] v_subrev_nc_u32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x27,0xd5,0x7c,0xfc,0x00,0x00] v_subrev_nc_u32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x27,0xd5,0xc1,0xfe,0x00,0x00] v_subrev_nc_u32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x27,0xd5,0xf0,0xfa,0x00,0x00] v_subrev_nc_u32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x27,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_subrev_nc_u32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x27,0xd5,0xfd,0xd4,0x00,0x00] v_subrev_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp -// GFX12: encoding: [0xff,0x80,0x27,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_subrev_nc_u32_e64 v255, 0xaf123456, vcc_hi clamp ; encoding: [0xff,0x80,0x27,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_xnor_b32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_xnor_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1e,0xd5,0x01,0x05,0x02,0x00] v_xnor_b32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_xnor_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1e,0xd5,0xff,0xff,0x03,0x00] v_xnor_b32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_xnor_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1e,0xd5,0x01,0x04,0x00,0x00] v_xnor_b32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_xnor_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1e,0xd5,0x69,0xd2,0x00,0x00] v_xnor_b32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_xnor_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1e,0xd5,0x6a,0xf6,0x00,0x00] v_xnor_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_xnor_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1e,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_xnor_b32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_xnor_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1e,0xd5,0x7b,0xfa,0x01,0x00] v_xnor_b32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_xnor_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1e,0xd5,0x7d,0xe0,0x01,0x00] v_xnor_b32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_xnor_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1e,0xd5,0x7e,0x82,0x01,0x00] v_xnor_b32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_xnor_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1e,0xd5,0x7f,0xf8,0x00,0x00] v_xnor_b32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_xnor_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1e,0xd5,0x7c,0xfc,0x00,0x00] v_xnor_b32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_xnor_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1e,0xd5,0xc1,0xfe,0x00,0x00] v_xnor_b32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_xnor_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1e,0xd5,0xf0,0xfa,0x00,0x00] v_xnor_b32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1e,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_xnor_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1e,0xd5,0xfd,0xd4,0x00,0x00] v_xnor_b32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x1e,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_xnor_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1e,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_xor_b32_e64 v5, v1, v2 -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x01,0x05,0x02,0x00] +// GFX12: v_xor_b32_e64 v5, v1, v2 ; encoding: [0x05,0x00,0x1d,0xd5,0x01,0x05,0x02,0x00] v_xor_b32_e64 v5, v255, v255 -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0xff,0xff,0x03,0x00] +// GFX12: v_xor_b32_e64 v5, v255, v255 ; encoding: [0x05,0x00,0x1d,0xd5,0xff,0xff,0x03,0x00] v_xor_b32_e64 v5, s1, s2 -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x01,0x04,0x00,0x00] +// GFX12: v_xor_b32_e64 v5, s1, s2 ; encoding: [0x05,0x00,0x1d,0xd5,0x01,0x04,0x00,0x00] v_xor_b32_e64 v5, s105, s105 -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x69,0xd2,0x00,0x00] +// GFX12: v_xor_b32_e64 v5, s105, s105 ; encoding: [0x05,0x00,0x1d,0xd5,0x69,0xd2,0x00,0x00] v_xor_b32_e64 v5, vcc_lo, ttmp15 -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x6a,0xf6,0x00,0x00] +// GFX12: v_xor_b32_e64 v5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1d,0xd5,0x6a,0xf6,0x00,0x00] v_xor_b32_e64 v5, vcc_hi, 0xaf123456 -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_xor_b32_e64 v5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1d,0xd5,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_xor_b32_e64 v5, ttmp15, src_scc -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x7b,0xfa,0x01,0x00] +// GFX12: v_xor_b32_e64 v5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1d,0xd5,0x7b,0xfa,0x01,0x00] v_xor_b32_e64 v5, m0, 0.5 -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x7d,0xe0,0x01,0x00] +// GFX12: v_xor_b32_e64 v5, m0, 0.5 ; encoding: [0x05,0x00,0x1d,0xd5,0x7d,0xe0,0x01,0x00] v_xor_b32_e64 v5, exec_lo, -1 -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x7e,0x82,0x01,0x00] +// GFX12: v_xor_b32_e64 v5, exec_lo, -1 ; encoding: [0x05,0x00,0x1d,0xd5,0x7e,0x82,0x01,0x00] v_xor_b32_e64 v5, exec_hi, null -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x7f,0xf8,0x00,0x00] +// GFX12: v_xor_b32_e64 v5, exec_hi, null ; encoding: [0x05,0x00,0x1d,0xd5,0x7f,0xf8,0x00,0x00] v_xor_b32_e64 v5, null, exec_lo -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0x7c,0xfc,0x00,0x00] +// GFX12: v_xor_b32_e64 v5, null, exec_lo ; encoding: [0x05,0x00,0x1d,0xd5,0x7c,0xfc,0x00,0x00] v_xor_b32_e64 v5, -1, exec_hi -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0xc1,0xfe,0x00,0x00] +// GFX12: v_xor_b32_e64 v5, -1, exec_hi ; encoding: [0x05,0x00,0x1d,0xd5,0xc1,0xfe,0x00,0x00] v_xor_b32_e64 v5, 0.5, m0 -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0xf0,0xfa,0x00,0x00] +// GFX12: v_xor_b32_e64 v5, 0.5, m0 ; encoding: [0x05,0x00,0x1d,0xd5,0xf0,0xfa,0x00,0x00] v_xor_b32_e64 v5, src_scc, vcc_lo -// GFX12: encoding: [0x05,0x00,0x1d,0xd5,0xfd,0xd4,0x00,0x00] +// GFX12: v_xor_b32_e64 v5, src_scc, vcc_lo ; encoding: [0x05,0x00,0x1d,0xd5,0xfd,0xd4,0x00,0x00] v_xor_b32_e64 v255, 0xaf123456, vcc_hi -// GFX12: encoding: [0xff,0x00,0x1d,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_xor_b32_e64 v255, 0xaf123456, vcc_hi ; encoding: [0xff,0x00,0x1d,0xd5,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp16.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp16.s index d628ff10f279b..919b1cfa16932 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp16.s @@ -1,2112 +1,2113 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 -// W32: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x20,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 -// W32: [0x05,0x69,0x20,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x20,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x20,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x20,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x20,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x20,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x20,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x20,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x20,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x20,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x20,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x20,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x20,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x20,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x20,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xfc,0x20,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] +// GFX12: v_add_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x20,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] v_add_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_f16_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_add_f16_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x32,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_add_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x32,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_add_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x32,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_add_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x32,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_add_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x32,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_add_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x32,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_add_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_add_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x03,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_add_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x03,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_add_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x03,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_add_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x03,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_add_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x03,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_add_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x03,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_add_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_add_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_add_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x25,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_add_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x25,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_add_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x25,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_and_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_and_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_and_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_and_b32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_and_b32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_and_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_and_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_and_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1b,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_and_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1b,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_ashrrev_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ashrrev_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_ashrrev_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_ashrrev_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1a,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_ashrrev_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1a,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cndmask_b32_e64_dpp v5, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_mirror -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_half_mirror -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shl:1 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shl:15 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shr:1 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shr:15 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_ror:1 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s105 row_ror:15 -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x01,0x01,0xd5,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x01,0xd5,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x02,0x01,0xd5,0xfa,0x04,0xee,0x21,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x01,0xd5,0xfa,0x04,0xee,0x21,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_mirror -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x01,0x01,0xd5,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x01,0xd5,0xfa,0x04,0xaa,0x41,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x02,0x01,0xd5,0xfa,0x04,0xea,0x21,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x01,0xd5,0xfa,0x04,0xea,0x21,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v255, -|v255|, -|v255|, null row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x03,0x01,0xd5,0xfa,0xfe,0xf3,0x61,0xff,0x6f,0x05,0x30] +// GFX12: v_cndmask_b32_e64_dpp v255, -|v255|, -|v255|, null row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x03,0x01,0xd5,0xfa,0xfe,0xf3,0x61,0xff,0x6f,0x05,0x30] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x2f,0xd5,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x2f,0xd5,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x2f,0xd5,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x2f,0xd5,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x2f,0xd5,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x2f,0xd5,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x2f,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cvt_pkrtz_f16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x2f,0xd5,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x2f,0xd5,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cvt_pkrtz_f16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x2f,0xd5,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x2f,0xd5,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cvt_pkrtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x2f,0xd5,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x2f,0xd5,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_ldexp_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_ldexp_f16_e64_dpp v5, v1, v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x08,0x01,0x5f,0x01,0x01] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x08,0x01,0x5f,0x01,0x01] v_ldexp_f16_e64_dpp v5, v1, v2 mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x10,0x01,0x60,0x09,0x13] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x3b,0xd5,0xfa,0x04,0x02,0x10,0x01,0x60,0x09,0x13] v_ldexp_f16_e64_dpp v255, -|v255|, v255 clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x81,0x3b,0xd5,0xfa,0xfe,0x03,0x38,0xff,0x6f,0x05,0x30] +// GFX12: v_ldexp_f16_e64_dpp v255, -|v255|, v255 clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x81,0x3b,0xd5,0xfa,0xfe,0x03,0x38,0xff,0x6f,0x05,0x30] v_lshlrev_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshlrev_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshlrev_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x18,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshlrev_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x18,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_lshlrev_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x18,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_lshrrev_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_lshrrev_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_lshrrev_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x19,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_lshrrev_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x19,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_lshrrev_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x19,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_num_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_num_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_num_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_num_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_num_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x31,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_max_num_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x31,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_max_num_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x31,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_max_num_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x31,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_max_num_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x31,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_max_num_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x31,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_max_num_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_num_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_num_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_num_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_num_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x16,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_max_num_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x16,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_max_num_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x16,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_max_num_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x16,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_max_num_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x16,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_max_num_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x16,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_max_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_i32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_i32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_max_i32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x12,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x12,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_max_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x12,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_max_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_max_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_max_u32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_max_u32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_max_u32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_max_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_max_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x14,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_max_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x14,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_max_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x14,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_num_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_num_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_num_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_num_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x30,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_num_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x30,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_min_num_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x30,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_min_num_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x30,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_min_num_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x30,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_min_num_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x30,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_min_num_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x30,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_min_num_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_num_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_num_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_num_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_num_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x15,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_min_num_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x15,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_min_num_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x15,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_min_num_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x15,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_min_num_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x15,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_min_num_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x15,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_min_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_i32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_i32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_min_i32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x11,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x11,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_min_i32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x11,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_min_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_min_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_min_u32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_min_u32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_min_u32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_min_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_min_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x13,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_min_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x13,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_min_u32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x13,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x07,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x07,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x07,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x07,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x07,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x07,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_mul_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_f16_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_mul_f16_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x35,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x35,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_mul_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x35,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_mul_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x35,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_mul_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x35,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x35,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_mul_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_mul_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x08,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x08,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_mul_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x08,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_mul_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x08,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_mul_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x08,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x08,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0a,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_hi_i32_i24_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x0a,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_hi_i32_i24_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0a,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_hi_u32_u24_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x0c,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_hi_u32_u24_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x0c,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_i32_i24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_i32_i24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_i32_i24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x09,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_i32_i24_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x09,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_i32_i24_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x09,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_mul_legacy_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_legacy_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x07,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x07,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_mul_legacy_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x07,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x07,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_mul_legacy_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x07,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x07,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_mul_u32_u24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_mul_u32_u24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_mul_u32_u24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x0b,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_mul_u32_u24_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x0b,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_mul_u32_u24_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x0b,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_or_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_or_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_or_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_or_b32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_or_b32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_or_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_or_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1c,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_or_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1c,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_or_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1c,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 -// W32: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x21,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 -// W32: [0x05,0x69,0x21,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x21,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x21,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x21,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x21,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x21,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x21,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x21,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x21,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x21,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x21,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x21,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x21,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x21,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x21,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xfc,0x21,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x21,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] v_sub_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_f16_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_sub_f16_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x33,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x33,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_sub_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x33,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_sub_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x33,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_sub_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x33,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x33,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_sub_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_sub_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x04,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x04,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_sub_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x04,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_sub_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x04,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_sub_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x04,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x04,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_sub_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_sub_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_sub_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x26,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_sub_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x26,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_sub_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x26,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 -// W32: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x06,0x22,0xd5,0xfa,0x04,0x0e,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 -// W32: [0x05,0x69,0x22,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x69,0x22,0xd5,0xfa,0x04,0xa6,0x01,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x05,0x6a,0x22,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x6a,0x22,0xd5,0xfa,0x04,0xae,0x01,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x05,0x6b,0x22,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6b,0x22,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x05,0x7b,0x22,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7b,0x22,0xd5,0xfa,0x04,0xee,0x01,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 -// W64: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x0c,0x22,0xd5,0xfa,0x04,0x1a,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x05,0x68,0x22,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x68,0x22,0xd5,0xfa,0x04,0xa2,0x01,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x05,0x6a,0x22,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x6a,0x22,0xd5,0xfa,0x04,0xaa,0x01,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x05,0x7a,0x22,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x7a,0x22,0xd5,0xfa,0x04,0xea,0x01,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0xfc,0x22,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] +// GFX12: v_subrev_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0xfc,0x22,0xd5,0xfa,0xfe,0xf3,0x01,0xff,0x6f,0x05,0x30] v_subrev_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_subrev_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_subrev_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_subrev_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x34,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_subrev_f16_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x34,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_subrev_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x34,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_subrev_f16_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x34,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_subrev_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x34,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_subrev_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x34,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_subrev_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_subrev_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, 2.0 row_shl:15 -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, 2.0 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0xe8,0x01,0x00,0x01,0x0f,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_subrev_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_subrev_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x01,0x05,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] +// GFX12: v_subrev_f32_e64_dpp v5, |v1|, -v2 mul:2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x01,0x05,0xd5,0xfa,0x04,0x02,0x48,0x01,0x5f,0x01,0x01] v_subrev_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x02,0x05,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] +// GFX12: v_subrev_f32_e64_dpp v5, -v1, |v2| mul:4 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x02,0x05,0xd5,0xfa,0x04,0x02,0x30,0x01,0x60,0x09,0x13] v_subrev_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x83,0x05,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] +// GFX12: v_subrev_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x83,0x05,0xd5,0xfa,0xfe,0x03,0x78,0xff,0x6f,0x05,0x30] v_subrev_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_subrev_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x27,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_subrev_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x80,0x27,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_subrev_nc_u32_e64_dpp v255, v255, v255 clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x80,0x27,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_xnor_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_xnor_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_xnor_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_xnor_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1e,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_xnor_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1e,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_xnor_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1e,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_xor_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_xor_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_mirror -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_half_mirror -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_shl:1 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_shl:15 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_xor_b32_e64_dpp v5, v1, s2 row_shl:15 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, s2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x00,0x00,0x01,0x0f,0x01,0xff] v_xor_b32_e64_dpp v5, v1, 10 row_shl:15 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, 10 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x14,0x01,0x00,0x01,0x0f,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_shr:1 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_shr:15 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_ror:1 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_ror:15 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_xor_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_xor_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x05,0x00,0x1d,0xd5,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_xor_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0xff,0x00,0x1d,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_xor_b32_e64_dpp v255, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xff,0x00,0x1d,0xd5,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp8.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp8.s index 26c2be50199b4..1e589729dc64e 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3_from_vop2_dpp8.s @@ -1,767 +1,768 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --unique --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x20,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x20,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x20,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x20,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x20,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x20,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x20,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x20,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x20,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_add_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x20,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x20,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x20,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x20,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x20,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x20,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x20,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x20,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_add_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x20,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_add_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xfc,0x20,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] +// GFX12: v_add_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x20,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] v_add_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_add_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x32,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_add_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x32,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_add_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x32,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_add_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x32,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_add_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x32,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_add_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x32,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_add_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x32,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_add_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_add_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x03,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_add_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x03,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_add_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x03,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_add_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x03,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_add_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x03,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_add_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x03,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_add_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x03,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_add_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_add_nc_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x25,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x25,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_add_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x25,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_add_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x25,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_add_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x25,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_add_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x25,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_and_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_and_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_and_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_and_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1b,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_and_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_and_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1b,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_and_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1b,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_and_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1b,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_and_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1b,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_ashrrev_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1a,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1a,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ashrrev_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1a,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ashrrev_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1a,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_ashrrev_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1a,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cndmask_b32_e64_dpp v5, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, s2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x0c,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, s2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x0c,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, 10, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x14,0x0d,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, 10, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x14,0x0d,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, s2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa4,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, s2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa4,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, s2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xac,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, v1, s2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xac,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x01,0x01,0xd5,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x01,0xd5,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x02,0x01,0xd5,0xea,0x04,0xee,0x21,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x01,0xd5,0xea,0x04,0xee,0x21,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, s2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x18,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, s2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0x18,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, s2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa0,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, s2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x04,0xa0,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, v1, 10, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x00,0x01,0xd5,0xe9,0x14,0xa1,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, v1, 10, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd5,0xe9,0x14,0xa1,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:35: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x01,0x01,0xd5,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, |v1|, -v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x01,0xd5,0xe9,0x04,0xaa,0x41,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x02,0x01,0xd5,0xea,0x04,0xea,0x21,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cndmask_b32_e64_dpp v5, -v1, |v2|, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x01,0xd5,0xea,0x04,0xea,0x21,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:38: error: invalid operand for instruction v_cndmask_b32_e64_dpp v255, -|v255|, -|v255|, null dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x03,0x01,0xd5,0xe9,0xfe,0xf3,0x61,0xff,0x00,0x00,0x00] +// GFX12: v_cndmask_b32_e64_dpp v255, -|v255|, -|v255|, null dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x03,0x01,0xd5,0xe9,0xfe,0xf3,0x61,0xff,0x00,0x00,0x00] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x2f,0xd5,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2f,0xd5,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x2f,0xd5,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x2f,0xd5,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x2f,0xd5,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x2f,0xd5,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x2f,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x2f,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x2f,0xd5,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x2f,0xd5,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x2f,0xd5,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v5, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x2f,0xd5,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cvt_pkrtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x2f,0xd5,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cvt_pk_rtz_f16_f32_e64_dpp v255, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x2f,0xd5,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_ldexp_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_ldexp_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_ldexp_f16_e64_dpp v5, v1, v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x02,0x08,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x02,0x08,0x01,0x77,0x39,0x05] v_ldexp_f16_e64_dpp v5, v1, s2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x00,0x08,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, s2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd5,0xe9,0x04,0x00,0x08,0x01,0x77,0x39,0x05] v_ldexp_f16_e64_dpp v5, v1, 2.0 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x3b,0xd5,0xe9,0xe8,0x01,0x08,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, 2.0 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd5,0xe9,0xe8,0x01,0x08,0x01,0x77,0x39,0x05] v_ldexp_f16_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x3b,0xd5,0xea,0x04,0x02,0x10,0x01,0x77,0x39,0x05] +// GFX12: v_ldexp_f16_e64_dpp v5, v1, v2 mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x3b,0xd5,0xea,0x04,0x02,0x10,0x01,0x77,0x39,0x05] v_ldexp_f16_e64_dpp v255, -|v255|, v255 clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x81,0x3b,0xd5,0xe9,0xfe,0x03,0x38,0xff,0x00,0x00,0x00] +// GFX12: v_ldexp_f16_e64_dpp v255, -|v255|, v255 clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x81,0x3b,0xd5,0xe9,0xfe,0x03,0x38,0xff,0x00,0x00,0x00] v_lshlrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x18,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x18,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshlrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x18,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshlrev_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x18,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_lshlrev_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x18,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_lshrrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x19,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x19,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x19,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x19,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_lshrrev_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x19,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_lshrrev_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x19,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_lshrrev_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x19,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_num_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_num_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_max_num_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x31,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_max_num_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x31,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x31,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_max_num_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x31,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x31,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_max_num_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x31,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_max_num_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x31,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_max_num_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_num_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_max_num_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x16,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_max_num_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x16,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x16,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_max_num_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x16,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_max_num_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x16,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_max_num_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x16,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_max_num_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x16,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_max_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_i32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_max_i32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x12,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_i32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_max_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x12,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x12,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x12,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_max_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x12,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_max_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x14,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x14,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x14,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x14,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_max_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x14,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x14,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_max_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x14,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_max_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x14,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_max_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x14,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_max_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x14,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_num_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_num_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_min_num_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x30,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x30,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_min_num_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x30,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x30,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_min_num_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x30,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x30,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_min_num_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x30,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_min_num_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x30,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_min_num_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_num_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_min_num_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x15,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_min_num_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x15,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x15,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_min_num_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x15,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_min_num_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x15,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_min_num_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x15,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_min_num_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x15,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_min_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_i32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_min_i32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x11,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_i32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_min_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x11,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_i32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x11,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x11,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_min_i32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x11,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_min_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_min_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x13,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_min_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x13,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_min_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x13,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_min_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x13,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_min_u32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x13,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x07,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x07,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x07,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x07,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x07,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x07,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_mul_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x35,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x35,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x35,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x35,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_mul_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x35,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x35,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_mul_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x35,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x35,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_mul_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x35,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x35,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_mul_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x35,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_mul_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x35,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_mul_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x08,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x08,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x08,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x08,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_mul_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x08,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x08,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_mul_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x08,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x08,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_mul_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x08,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_mul_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x08,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_mul_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x08,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_mul_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x08,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0a,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0a,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0a,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_hi_i32_i24_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x0a,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_mul_hi_i32_i24_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0a,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0c,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0c,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_hi_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0c,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_hi_u32_u24_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x0c,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_mul_hi_u32_u24_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x0c,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x09,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_i32_i24_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x09,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_mul_i32_i24_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x09,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_mul_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x09,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_i32_i24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x09,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_i32_i24_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x09,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_mul_i32_i24_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x09,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_mul_legacy_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_legacy_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_mul_legacy_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x07,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_mul_legacy_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x07,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x07,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_mul_legacy_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x07,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x07,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_mul_legacy_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x07,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_mul_dx9_zero_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x07,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_mul_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_u32_u24_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_mul_u32_u24_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x0b,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_mul_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x0b,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_mul_u32_u24_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x0b,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_mul_u32_u24_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x0b,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_mul_u32_u24_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x0b,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_or_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1c,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_or_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1c,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_or_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_or_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1c,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_or_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_or_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1c,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_or_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1c,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_or_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1c,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_or_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1c,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x21,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x21,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x21,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x21,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x21,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x21,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x21,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x21,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x21,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_sub_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x21,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x21,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x21,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x21,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x21,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x21,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x21,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x21,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_sub_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x21,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:29: error: invalid operand for instruction v_sub_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xfc,0x21,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] +// GFX12: v_sub_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x21,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] v_sub_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x33,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x33,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x33,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x33,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_sub_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x33,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x33,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_sub_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x33,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x33,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_sub_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x33,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x33,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_sub_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x33,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_sub_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x33,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_sub_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x04,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x04,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_sub_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x04,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_sub_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x04,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x04,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_sub_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x04,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_sub_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x04,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_sub_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x04,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_sub_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x04,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_sub_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x26,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x26,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x26,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_sub_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x26,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_sub_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x26,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_sub_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x26,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x06,0x22,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s6, v1, v2, s3 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x06,0x22,0xd5,0xe9,0x04,0x0e,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x69,0x22,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, s105, v1, v2, s105 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x69,0x22,0xd5,0xe9,0x04,0xa6,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6a,0x22,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, vcc_lo, v1, v2, vcc_hi dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x22,0xd5,0xe9,0x04,0xae,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x6b,0x22,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, vcc_hi, v1, v2, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6b,0x22,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x05,0x7b,0x22,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_subrev_co_ci_u32_e64_dpp v5, ttmp15, v1, v2, ttmp15 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7b,0x22,0xd5,0xea,0x04,0xee,0x01,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x0c,0x22,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[12:13], v1, v2, s[6:7] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x0c,0x22,0xd5,0xe9,0x04,0x1a,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x68,0x22,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, s[104:105], v1, v2, s[104:105] dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x68,0x22,0xd5,0xe9,0x04,0xa2,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x05,0x6a,0x22,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, vcc, v1, v2, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x6a,0x22,0xd5,0xe9,0x04,0xaa,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x05,0x7a,0x22,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_subrev_co_ci_u32_e64_dpp v5, ttmp[14:15], v1, v2, ttmp[14:15] dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x7a,0x22,0xd5,0xea,0x04,0xea,0x01,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:32: error: invalid operand for instruction v_subrev_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0xfc,0x22,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] +// GFX12: v_subrev_co_ci_u32_e64_dpp v255, null, v255, v255, null clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0xfc,0x22,0xd5,0xe9,0xfe,0xf3,0x01,0xff,0x00,0x00,0x00] v_subrev_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x34,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f16_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x34,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_subrev_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x34,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f16_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x34,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_subrev_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x34,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f16_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x34,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_subrev_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x34,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f16_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x34,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_subrev_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x34,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f16_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x34,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_subrev_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x34,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_subrev_f16_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x34,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_subrev_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x05,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_subrev_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x05,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_subrev_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x05,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f32_e64_dpp v5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd5,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_subrev_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x01,0x05,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f32_e64_dpp v5, |v1|, -v2 mul:2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x01,0x05,0xd5,0xe9,0x04,0x02,0x48,0x01,0x77,0x39,0x05] v_subrev_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x02,0x05,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_f32_e64_dpp v5, -v1, |v2| mul:4 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x02,0x05,0xd5,0xea,0x04,0x02,0x30,0x01,0x77,0x39,0x05] v_subrev_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x83,0x05,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] +// GFX12: v_subrev_f32_e64_dpp v255, -|v255|, -|v255| clamp div:2 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x83,0x05,0xd5,0xe9,0xfe,0x03,0x78,0xff,0x00,0x00,0x00] v_subrev_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x27,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x27,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_subrev_nc_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x27,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x27,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_subrev_nc_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x27,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x27,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_subrev_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x27,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_subrev_nc_u32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x27,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_subrev_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x80,0x27,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_subrev_nc_u32_e64_dpp v255, v255, v255 clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x80,0x27,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_xnor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xnor_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xnor_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_xnor_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1e,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xnor_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_xnor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1e,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xnor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1e,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xnor_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1e,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_xnor_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1e,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_xor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd5,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xor_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xor_b32_e64_dpp v5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd5,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_xor_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x05,0x00,0x1d,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xor_b32_e64_dpp v5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd5,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_xor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x05,0x00,0x1d,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_xor_b32_e64_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x05,0x00,0x1d,0xd5,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_xor_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0xff,0x00,0x1d,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_xor_b32_e64_dpp v255, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xff,0x00,0x1d,0xd5,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s index 76db94023fc90..b08dc39c76386 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3c.s @@ -1,8695 +1,8696 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x7d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, v255, v2 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0xff,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, v255, v2 ; encoding: [0x05,0x00,0x7d,0xd4,0xff,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, s1, v2 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x01,0x04,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, s1, v2 ; encoding: [0x05,0x00,0x7d,0xd4,0x01,0x04,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, s105, v255 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x69,0xfe,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, s105, v255 ; encoding: [0x05,0x00,0x7d,0xd4,0x69,0xfe,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, vcc_lo, s2 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x6a,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, vcc_lo, s2 ; encoding: [0x05,0x00,0x7d,0xd4,0x6a,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, vcc_hi, s105 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x6b,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, vcc_hi, s105 ; encoding: [0x05,0x00,0x7d,0xd4,0x6b,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, ttmp15, ttmp15 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x7b,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, ttmp15, ttmp15 ; encoding: [0x05,0x00,0x7d,0xd4,0x7b,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, m0, src_scc -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x7d,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, m0, src_scc ; encoding: [0x05,0x00,0x7d,0xd4,0x7d,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x7d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x7d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x7d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x7d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x7d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x7d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x7d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x7d,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x7d,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x7d,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x7d,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x7d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], v255, v2 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0xff,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], v255, v2 ; encoding: [0x0a,0x00,0x7d,0xd4,0xff,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], s1, v2 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x01,0x04,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], s1, v2 ; encoding: [0x0a,0x00,0x7d,0xd4,0x01,0x04,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], s105, v255 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x69,0xfe,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], s105, v255 ; encoding: [0x0a,0x00,0x7d,0xd4,0x69,0xfe,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], vcc_lo, s2 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x6a,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], vcc_lo, s2 ; encoding: [0x0a,0x00,0x7d,0xd4,0x6a,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], vcc_hi, s105 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x6b,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], vcc_hi, s105 ; encoding: [0x0a,0x00,0x7d,0xd4,0x6b,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], ttmp15, ttmp15 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7b,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], ttmp15, ttmp15 ; encoding: [0x0a,0x00,0x7d,0xd4,0x7b,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], m0, src_scc -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7d,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], m0, src_scc ; encoding: [0x0a,0x00,0x7d,0xd4,0x7d,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x7d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x7d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x7d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x7d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x7d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x7d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x7d,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x7d,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x7d,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x7d,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f16_e64 null, -|0xfe0b|, vcc_hi -// GFX12: encoding: [0x7c,0x01,0x7d,0xd4,0xff,0xd6,0x00,0x20,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_class_f16_e64 null, -|0xfe0b|, vcc_hi ; encoding: [0x7c,0x01,0x7d,0xd4,0xff,0xd6,0x00,0x20,0x0b,0xfe,0x00,0x00] v_cmp_class_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x7e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x7e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x7e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x7e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x7e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x7e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x7e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x7e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x7e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x7e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x7e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x7e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x7e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x7e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x7e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x7e,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x7e,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x7e,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x7e,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x7e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x7e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x7e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x7e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x7e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x7e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x7e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x7e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x7e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x7e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x7e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x7e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x7e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x7e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x7e,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x7e,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x7e,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x7e,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f32_e64 null, -|0xaf123456|, vcc_hi -// GFX12: encoding: [0x7c,0x01,0x7e,0xd4,0xff,0xd6,0x00,0x20,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_class_f32_e64 null, -|0xaf123456|, vcc_hi ; encoding: [0x7c,0x01,0x7e,0xd4,0xff,0xd6,0x00,0x20,0x56,0x34,0x12,0xaf] v_cmp_class_f64_e64 s5, v[1:2], v2 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[1:2], v2 ; encoding: [0x05,0x00,0x7f,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, v[1:2], v255 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x01,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[1:2], v255 ; encoding: [0x05,0x00,0x7f,0xd4,0x01,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, v[1:2], s2 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x01,0x05,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[1:2], s2 ; encoding: [0x05,0x00,0x7f,0xd4,0x01,0x05,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, v[1:2], s105 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x01,0xd3,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[1:2], s105 ; encoding: [0x05,0x00,0x7f,0xd4,0x01,0xd3,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, v[254:255], ttmp15 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0xfe,0xf7,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, v[254:255], ttmp15 ; encoding: [0x05,0x00,0x7f,0xd4,0xfe,0xf7,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, s[2:3], vcc_hi -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x02,0xd6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, s[2:3], vcc_hi ; encoding: [0x05,0x00,0x7f,0xd4,0x02,0xd6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, s[104:105], vcc_lo -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x68,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, s[104:105], vcc_lo ; encoding: [0x05,0x00,0x7f,0xd4,0x68,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, vcc, m0 -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x6a,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, vcc, m0 ; encoding: [0x05,0x00,0x7f,0xd4,0x6a,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, ttmp[14:15], exec_hi -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x7a,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, ttmp[14:15], exec_hi ; encoding: [0x05,0x00,0x7f,0xd4,0x7a,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s5, exec, exec_lo -// W32: encoding: [0x05,0x00,0x7f,0xd4,0x7e,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s5, exec, exec_lo ; encoding: [0x05,0x00,0x7f,0xd4,0x7e,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s105, null, null -// W32: encoding: [0x69,0x00,0x7f,0xd4,0x7c,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 s105, null, null ; encoding: [0x69,0x00,0x7f,0xd4,0x7c,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x7f,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x7f,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 vcc_hi, 0.5, 0.5 -// W32: encoding: [0x6b,0x00,0x7f,0xd4,0xf0,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 vcc_hi, 0.5, 0.5 ; encoding: [0x6b,0x00,0x7f,0xd4,0xf0,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 ttmp15, -|src_scc|, src_scc -// W32: encoding: [0x7b,0x01,0x7f,0xd4,0xfd,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f64_e64 ttmp15, -|src_scc|, src_scc ; encoding: [0x7b,0x01,0x7f,0xd4,0xfd,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[1:2], v2 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[1:2], v2 ; encoding: [0x0a,0x00,0x7f,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[1:2], v255 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x01,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[1:2], v255 ; encoding: [0x0a,0x00,0x7f,0xd4,0x01,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[1:2], s2 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x01,0x05,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[1:2], s2 ; encoding: [0x0a,0x00,0x7f,0xd4,0x01,0x05,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[1:2], s105 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x01,0xd3,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[1:2], s105 ; encoding: [0x0a,0x00,0x7f,0xd4,0x01,0xd3,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], v[254:255], ttmp15 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0xfe,0xf7,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], v[254:255], ttmp15 ; encoding: [0x0a,0x00,0x7f,0xd4,0xfe,0xf7,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], s[2:3], vcc_hi -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x02,0xd6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], s[2:3], vcc_hi ; encoding: [0x0a,0x00,0x7f,0xd4,0x02,0xd6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], s[104:105], vcc_lo -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x68,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], s[104:105], vcc_lo ; encoding: [0x0a,0x00,0x7f,0xd4,0x68,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], vcc, m0 -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x6a,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], vcc, m0 ; encoding: [0x0a,0x00,0x7f,0xd4,0x6a,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], ttmp[14:15], exec_hi -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x7a,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], ttmp[14:15], exec_hi ; encoding: [0x0a,0x00,0x7f,0xd4,0x7a,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], exec, exec_lo -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x7e,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], exec, exec_lo ; encoding: [0x0a,0x00,0x7f,0xd4,0x7e,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[10:11], null, null -// W64: encoding: [0x0a,0x00,0x7f,0xd4,0x7c,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[10:11], null, null ; encoding: [0x0a,0x00,0x7f,0xd4,0x7c,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x7f,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x7f,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 vcc, 0.5, 0.5 -// W64: encoding: [0x6a,0x00,0x7f,0xd4,0xf0,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 vcc, 0.5, 0.5 ; encoding: [0x6a,0x00,0x7f,0xd4,0xf0,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 ttmp[14:15], -|src_scc|, src_scc -// W64: encoding: [0x7a,0x01,0x7f,0xd4,0xfd,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f64_e64 ttmp[14:15], -|src_scc|, src_scc ; encoding: [0x7a,0x01,0x7f,0xd4,0xfd,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_class_f64_e64 null, 0xaf123456, 0xaf123456 -// GFX12: encoding: [0x7c,0x00,0x7f,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_class_f64_e64 null, 0xaf123456, 0xaf123456 ; encoding: [0x7c,0x00,0x7f,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmp_eq_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x02,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x02,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x02,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x02,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x02,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x02,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x02,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x02,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x02,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x02,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x02,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x02,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x02,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x02,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x02,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x02,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x02,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x02,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x02,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x02,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x02,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x02,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x02,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x02,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x02,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x02,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x02,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x02,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x02,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x02,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x02,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x02,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x02,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x02,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x02,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x02,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x02,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x02,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x02,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x02,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x02,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x02,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x02,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_eq_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x02,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_eq_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x12,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x12,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x12,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x12,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x12,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x12,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x12,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x12,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x12,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x12,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x12,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x12,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x12,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x12,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x12,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x12,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x12,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x12,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x12,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x12,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x12,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x12,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x12,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x12,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x12,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x12,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x12,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x12,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x12,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x12,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x12,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x12,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x12,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x12,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x12,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x12,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x12,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x12,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x12,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x12,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x12,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x12,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_eq_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x12,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_eq_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x22,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x22,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x22,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x22,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x22,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x22,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x22,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x22,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x22,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x22,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x22,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x22,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x22,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x22,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x22,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x22,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x22,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x22,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x22,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x22,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x22,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x22,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x22,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x22,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x22,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x22,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x22,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x22,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x22,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x22,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x22,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x22,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x22,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x22,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x22,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x22,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x22,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x22,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x22,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_eq_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x22,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_eq_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x32,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x32,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x32,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x32,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x32,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x32,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x32,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x32,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x32,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x32,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x32,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x32,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x32,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x32,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x32,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x32,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x32,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x32,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x32,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x32,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x32,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x32,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x32,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x32,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x32,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x32,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x32,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x32,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x32,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x32,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x32,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x32,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x32,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x32,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x32,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x32,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x32,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x32,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x32,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x32,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x32,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x32,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_eq_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x32,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_eq_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x42,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x42,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x42,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x42,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x42,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x42,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x42,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x42,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x42,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x42,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x42,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x42,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x42,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x42,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x42,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x42,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x42,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x42,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x42,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x42,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x42,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x42,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x42,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x42,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x42,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x42,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x42,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x42,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x42,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x42,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x42,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x42,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x42,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x42,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x42,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x42,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x42,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x42,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x42,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x42,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x42,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_eq_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x42,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_eq_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x52,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x52,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x52,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x52,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x52,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x52,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x52,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x52,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x52,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x52,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x52,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x52,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x52,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x52,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x52,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x52,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x52,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x52,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x52,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x52,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x52,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x52,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x52,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x52,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x52,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x52,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x52,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x52,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x52,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x52,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x52,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x52,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x52,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x52,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x52,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x52,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x52,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_i64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x52,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_eq_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x52,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_eq_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3a,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3a,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3a,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3a,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3a,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3a,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3a,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3a,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3a,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3a,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3a,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3a,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3a,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3a,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3a,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3a,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3a,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3a,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3a,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3a,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3a,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3a,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3a,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3a,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3a,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3a,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3a,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3a,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3a,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3a,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3a,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3a,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3a,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x3a,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_eq_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3a,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_eq_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4a,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4a,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4a,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4a,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4a,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4a,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4a,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4a,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4a,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4a,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4a,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4a,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4a,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4a,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4a,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4a,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4a,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4a,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4a,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4a,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4a,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4a,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4a,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4a,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4a,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4a,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4a,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4a,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4a,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4a,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4a,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4a,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4a,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x4a,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_eq_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4a,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_eq_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5a,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5a,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5a,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5a,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5a,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5a,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5a,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5a,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5a,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5a,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5a,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5a,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5a,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5a,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5a,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5a,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5a,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5a,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5a,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5a,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5a,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5a,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5a,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5a,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5a,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5a,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5a,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_eq_u64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x5a,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_eq_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5a,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ge_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x06,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x06,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x06,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x06,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x06,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x06,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x06,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x06,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x06,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x06,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x06,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x06,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x06,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x06,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x06,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x06,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x06,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x06,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x06,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x06,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x06,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x06,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x06,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x06,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x06,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x06,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x06,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x06,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x06,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x06,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x06,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x06,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x06,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x06,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x06,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x06,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x06,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x06,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x06,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x06,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x06,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x06,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x06,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_ge_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x06,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_ge_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x16,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x16,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x16,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x16,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x16,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x16,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x16,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x16,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x16,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x16,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x16,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x16,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x16,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x16,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x16,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x16,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x16,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x16,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x16,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x16,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x16,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x16,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x16,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x16,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x16,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x16,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x16,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x16,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x16,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x16,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x16,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x16,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x16,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x16,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x16,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x16,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x16,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x16,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x16,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x16,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x16,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x16,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ge_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x16,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_ge_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x26,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x26,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x26,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x26,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x26,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x26,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x26,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x26,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x26,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x26,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x26,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x26,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x26,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x26,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x26,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x26,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x26,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x26,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x26,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x26,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x26,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x26,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x26,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x26,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x26,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x26,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x26,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x26,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x26,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x26,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x26,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x26,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x26,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x26,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x26,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x26,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x26,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x26,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x26,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ge_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x26,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_ge_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x36,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x36,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x36,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x36,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x36,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x36,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x36,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x36,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x36,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x36,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x36,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x36,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x36,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x36,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x36,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x36,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x36,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x36,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x36,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x36,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x36,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x36,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x36,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x36,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x36,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x36,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x36,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x36,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x36,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x36,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x36,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x36,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x36,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x36,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x36,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x36,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x36,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x36,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x36,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x36,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x36,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x36,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_ge_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x36,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_ge_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x46,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x46,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x46,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x46,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x46,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x46,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x46,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x46,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x46,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x46,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x46,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x46,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x46,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x46,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x46,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x46,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x46,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x46,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x46,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x46,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x46,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x46,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x46,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x46,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x46,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x46,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x46,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x46,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x46,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x46,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x46,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x46,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x46,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x46,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x46,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x46,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x46,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x46,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x46,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x46,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x46,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ge_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x46,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ge_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x56,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x56,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x56,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x56,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x56,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x56,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x56,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x56,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x56,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x56,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x56,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x56,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x56,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x56,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x56,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x56,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x56,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x56,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x56,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x56,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x56,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x56,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x56,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x56,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x56,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x56,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x56,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x56,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x56,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x56,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x56,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x56,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x56,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x56,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x56,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x56,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x56,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_i64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x56,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ge_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x56,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ge_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3e,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3e,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3e,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3e,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3e,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3e,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3e,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3e,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x3e,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_ge_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3e,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_ge_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4e,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4e,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4e,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4e,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4e,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4e,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4e,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4e,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x4e,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ge_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4e,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ge_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5e,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5e,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5e,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5e,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5e,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5e,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5e,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5e,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5e,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5e,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5e,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5e,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5e,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5e,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5e,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5e,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5e,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5e,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5e,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5e,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5e,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5e,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5e,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5e,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5e,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5e,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5e,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ge_u64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x5e,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ge_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5e,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_gt_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x04,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x04,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x04,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x04,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x04,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x04,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x04,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x04,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x04,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x04,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x04,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x04,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x04,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x04,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x04,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x04,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x04,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x04,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x04,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x04,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x04,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x04,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x04,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x04,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x04,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x04,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x04,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x04,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x04,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x04,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x04,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x04,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x04,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x04,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x04,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x04,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x04,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x04,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x04,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x04,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x04,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x04,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x04,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_gt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x04,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_gt_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x14,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x14,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x14,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x14,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x14,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x14,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x14,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x14,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x14,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x14,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x14,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x14,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x14,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x14,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x14,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x14,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x14,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x14,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x14,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x14,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x14,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x14,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x14,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x14,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x14,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x14,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x14,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x14,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x14,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x14,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x14,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x14,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x14,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x14,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x14,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x14,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x14,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x14,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x14,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x14,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x14,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x14,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_gt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x14,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_gt_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x24,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x24,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x24,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x24,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x24,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x24,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x24,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x24,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x24,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x24,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x24,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x24,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x24,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x24,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x24,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x24,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x24,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x24,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x24,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x24,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x24,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x24,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x24,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x24,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x24,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x24,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x24,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x24,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x24,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x24,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x24,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x24,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x24,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x24,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x24,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x24,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x24,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x24,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x24,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_gt_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x24,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_gt_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x34,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x34,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x34,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x34,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x34,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x34,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x34,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x34,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x34,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x34,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x34,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x34,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x34,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x34,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x34,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x34,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x34,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x34,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x34,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x34,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x34,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x34,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x34,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x34,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x34,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x34,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x34,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x34,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x34,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x34,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x34,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x34,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x34,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x34,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x34,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x34,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x34,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x34,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x34,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x34,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x34,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x34,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_gt_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x34,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_gt_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x44,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x44,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x44,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x44,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x44,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x44,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x44,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x44,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x44,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x44,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x44,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x44,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x44,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x44,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x44,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x44,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x44,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x44,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x44,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x44,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x44,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x44,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x44,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x44,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x44,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x44,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x44,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x44,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x44,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x44,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x44,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x44,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x44,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x44,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x44,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x44,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x44,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x44,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x44,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x44,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x44,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_gt_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x44,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_gt_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x54,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x54,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x54,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x54,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x54,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x54,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x54,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x54,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x54,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x54,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x54,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x54,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x54,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x54,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x54,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x54,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x54,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x54,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x54,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x54,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x54,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x54,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x54,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x54,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x54,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x54,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x54,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x54,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x54,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x54,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x54,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x54,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x54,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x54,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x54,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x54,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x54,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_i64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x54,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_gt_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x54,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_gt_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3c,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3c,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3c,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3c,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3c,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3c,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3c,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3c,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3c,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3c,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3c,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3c,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3c,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3c,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3c,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3c,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3c,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3c,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3c,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3c,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3c,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3c,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3c,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3c,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3c,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3c,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3c,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3c,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3c,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3c,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3c,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3c,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3c,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x3c,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_gt_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3c,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_gt_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4c,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4c,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4c,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4c,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4c,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4c,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4c,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4c,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4c,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4c,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4c,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4c,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4c,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4c,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4c,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4c,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4c,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4c,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4c,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4c,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4c,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4c,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4c,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4c,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4c,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4c,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4c,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4c,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4c,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4c,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4c,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4c,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4c,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x4c,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_gt_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4c,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_gt_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5c,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5c,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5c,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5c,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5c,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5c,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5c,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5c,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5c,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5c,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5c,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5c,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5c,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5c,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5c,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5c,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5c,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5c,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5c,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5c,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5c,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5c,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5c,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5c,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5c,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5c,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5c,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_gt_u64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x5c,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_gt_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5c,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_le_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x03,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x03,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x03,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x03,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x03,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x03,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x03,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x03,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x03,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x03,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x03,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x03,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x03,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x03,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x03,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x03,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x03,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x03,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x03,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x03,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x03,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x03,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x03,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x03,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x03,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x03,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x03,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x03,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x03,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x03,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x03,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x03,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x03,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x03,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x03,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x03,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x03,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x03,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x03,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x03,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x03,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x03,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x03,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_le_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x03,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_le_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x13,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x13,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x13,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x13,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x13,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x13,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x13,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x13,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x13,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x13,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x13,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x13,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x13,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x13,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x13,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x13,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x13,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x13,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x13,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x13,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x13,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x13,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x13,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x13,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x13,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x13,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x13,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x13,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x13,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x13,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x13,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x13,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x13,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x13,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x13,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x13,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x13,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x13,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x13,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x13,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x13,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x13,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_le_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x13,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_le_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x23,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x23,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x23,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x23,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x23,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x23,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x23,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x23,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x23,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x23,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x23,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x23,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x23,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x23,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x23,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x23,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x23,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x23,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x23,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x23,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x23,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x23,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x23,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x23,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x23,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x23,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x23,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x23,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x23,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x23,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x23,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x23,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x23,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x23,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x23,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x23,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x23,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x23,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x23,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_le_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x23,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_le_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x33,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x33,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x33,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x33,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x33,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x33,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x33,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x33,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x33,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x33,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x33,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x33,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x33,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x33,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x33,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x33,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x33,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x33,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x33,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x33,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x33,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x33,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x33,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x33,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x33,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x33,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x33,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x33,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x33,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x33,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x33,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x33,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x33,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x33,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x33,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x33,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x33,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x33,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x33,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x33,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x33,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x33,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_le_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x33,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_le_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x43,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x43,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x43,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x43,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x43,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x43,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x43,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x43,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x43,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x43,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x43,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x43,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x43,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x43,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x43,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x43,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x43,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x43,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x43,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x43,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x43,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x43,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x43,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x43,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x43,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x43,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x43,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x43,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x43,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x43,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x43,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x43,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x43,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x43,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x43,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x43,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x43,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x43,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x43,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x43,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x43,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_le_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x43,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_le_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x53,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x53,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x53,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x53,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x53,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x53,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x53,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x53,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x53,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x53,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x53,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x53,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x53,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x53,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x53,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x53,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x53,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x53,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x53,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x53,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x53,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x53,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x53,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x53,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x53,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x53,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x53,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x53,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x53,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x53,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x53,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x53,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x53,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x53,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x53,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x53,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x53,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_i64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x53,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_le_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x53,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_le_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3b,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3b,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3b,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3b,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3b,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3b,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3b,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3b,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3b,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3b,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3b,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3b,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3b,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3b,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3b,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3b,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3b,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3b,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3b,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3b,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3b,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3b,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3b,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3b,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3b,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3b,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3b,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3b,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3b,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3b,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3b,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3b,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3b,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x3b,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_le_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3b,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_le_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4b,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4b,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4b,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4b,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4b,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4b,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4b,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4b,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4b,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4b,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4b,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4b,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4b,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4b,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4b,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4b,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4b,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4b,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4b,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4b,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4b,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4b,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4b,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4b,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4b,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4b,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4b,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4b,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4b,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4b,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4b,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4b,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4b,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x4b,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_le_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4b,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_le_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5b,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5b,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5b,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5b,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5b,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5b,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5b,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5b,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5b,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5b,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5b,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5b,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5b,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5b,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5b,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5b,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5b,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5b,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5b,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5b,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5b,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5b,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5b,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5b,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5b,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5b,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5b,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_le_u64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x5b,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_le_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5b,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_lg_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x05,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x05,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x05,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x05,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x05,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x05,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x05,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x05,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x05,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x05,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x05,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x05,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x05,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x05,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x05,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x05,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x05,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x05,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x05,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x05,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x05,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x05,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x05,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x05,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x05,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x05,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x05,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x05,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x05,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x05,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x05,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x05,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x05,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x05,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x05,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x05,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x05,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x05,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x05,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x05,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x05,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x05,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x05,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_lg_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x05,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_lg_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x15,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x15,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x15,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x15,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x15,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x15,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x15,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x15,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x15,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x15,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x15,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x15,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x15,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x15,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x15,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x15,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x15,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x15,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x15,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x15,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x15,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x15,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x15,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x15,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x15,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x15,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x15,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x15,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x15,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x15,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x15,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x15,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x15,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x15,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x15,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x15,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x15,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x15,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x15,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x15,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x15,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x15,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_lg_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x15,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_lg_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x25,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x25,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x25,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x25,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x25,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x25,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x25,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x25,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x25,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x25,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x25,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x25,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x25,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x25,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x25,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x25,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x25,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x25,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x25,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x25,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x25,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x25,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x25,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x25,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x25,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x25,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x25,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x25,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x25,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x25,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x25,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x25,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x25,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x25,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x25,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x25,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x25,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x25,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lg_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x25,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_lg_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x25,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_lt_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x01,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x01,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x01,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x01,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x01,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x01,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x01,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x01,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x01,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x01,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x01,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x01,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x01,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x01,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x01,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x01,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x01,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x01,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x01,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x01,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x01,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x01,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x01,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x01,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x01,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x01,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x01,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x01,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x01,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x01,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x01,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x01,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x01,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x01,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x01,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x01,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x01,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x01,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x01,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x01,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x01,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x01,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x01,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_lt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x01,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_lt_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x11,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x11,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x11,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x11,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x11,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x11,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x11,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x11,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x11,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x11,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x11,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x11,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x11,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x11,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x11,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x11,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x11,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x11,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x11,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x11,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x11,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x11,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x11,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x11,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x11,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x11,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x11,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x11,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x11,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x11,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x11,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x11,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x11,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x11,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x11,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x11,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x11,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x11,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x11,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x11,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x11,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x11,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_lt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x11,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_lt_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x21,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x21,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x21,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x21,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x21,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x21,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x21,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x21,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x21,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x21,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x21,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x21,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x21,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x21,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x21,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x21,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x21,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x21,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x21,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x21,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x21,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x21,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x21,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x21,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x21,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x21,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x21,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x21,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x21,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x21,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x21,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x21,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x21,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x21,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x21,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x21,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x21,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x21,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x21,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_lt_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x21,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_lt_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x31,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x31,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x31,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x31,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x31,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x31,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x31,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x31,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x31,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x31,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x31,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x31,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x31,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x31,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x31,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x31,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x31,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x31,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x31,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x31,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x31,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x31,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x31,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x31,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x31,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x31,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x31,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x31,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x31,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x31,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x31,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x31,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x31,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x31,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x31,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x31,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x31,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x31,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x31,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x31,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x31,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x31,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_lt_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x31,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_lt_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x41,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x41,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x41,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x41,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x41,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x41,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x41,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x41,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x41,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x41,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x41,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x41,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x41,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x41,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x41,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x41,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x41,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x41,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x41,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x41,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x41,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x41,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x41,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x41,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x41,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x41,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x41,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x41,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x41,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x41,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x41,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x41,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x41,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x41,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x41,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x41,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x41,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x41,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x41,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x41,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x41,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_lt_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x41,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_lt_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x51,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x51,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x51,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x51,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x51,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x51,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x51,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x51,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x51,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x51,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x51,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x51,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x51,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x51,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x51,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x51,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x51,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x51,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x51,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x51,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x51,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x51,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x51,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x51,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x51,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x51,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x51,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x51,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x51,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x51,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x51,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x51,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x51,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x51,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x51,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x51,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x51,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_i64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x51,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_lt_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x51,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_lt_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x39,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x39,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x39,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x39,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x39,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x39,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x39,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x39,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x39,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x39,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x39,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x39,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x39,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x39,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x39,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x39,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x39,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x39,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x39,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x39,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x39,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x39,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x39,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x39,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x39,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x39,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x39,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x39,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x39,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x39,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x39,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x39,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x39,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x39,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x39,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x39,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x39,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x39,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x39,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x39,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x39,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x39,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_lt_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x39,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_lt_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x49,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x49,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x49,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x49,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x49,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x49,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x49,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x49,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x49,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x49,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x49,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x49,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x49,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x49,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x49,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x49,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x49,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x49,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x49,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x49,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x49,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x49,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x49,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x49,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x49,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x49,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x49,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x49,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x49,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x49,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x49,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x49,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x49,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x49,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x49,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x49,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x49,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x49,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x49,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x49,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x49,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_lt_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x49,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_lt_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x59,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x59,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x59,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x59,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x59,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x59,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x59,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x59,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x59,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x59,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x59,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x59,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x59,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x59,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x59,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x59,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x59,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x59,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x59,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x59,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x59,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x59,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x59,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x59,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x59,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x59,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x59,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x59,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x59,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x59,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x59,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x59,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x59,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x59,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x59,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x59,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x59,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_lt_u64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x59,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_lt_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x59,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ne_i16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x35,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x35,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x35,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x35,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x35,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x35,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x35,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x35,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x35,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x35,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x35,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x35,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x35,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x35,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x35,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x35,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x35,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x35,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x35,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x35,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x35,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x35,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x35,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x35,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x35,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x35,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x35,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x35,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x35,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x35,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x35,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x35,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x35,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x35,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x35,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x35,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x35,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x35,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x35,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x35,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x35,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x35,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_ne_i16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x35,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_ne_i32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x45,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x45,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x45,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x45,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x45,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x45,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x45,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x45,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x45,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x45,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x45,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x45,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x45,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x45,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x45,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x45,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x45,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x45,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x45,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x45,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x45,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x45,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x45,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x45,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x45,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x45,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x45,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x45,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x45,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x45,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x45,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x45,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x45,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x45,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x45,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x45,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x45,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x45,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x45,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x45,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x45,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ne_i32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x45,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ne_i64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x55,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x55,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x55,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x55,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x55,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x55,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x55,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x55,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x55,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x55,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x55,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x55,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x55,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x55,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x55,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x55,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x55,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x55,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x55,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x55,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x55,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x55,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x55,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x55,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x55,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x55,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x55,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x55,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x55,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x55,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x55,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x55,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x55,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x55,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x55,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x55,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x55,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_i64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x55,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ne_i64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x55,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ne_u16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x3d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x3d,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x3d,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x3d,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x3d,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x3d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x3d,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x3d,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x3d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x3d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x3d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x3d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x3d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x3d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x3d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x3d,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x3d,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x3d,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x3d,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x3d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x3d,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x3d,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x3d,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x3d,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x3d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x3d,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x3d,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x3d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x3d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x3d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x3d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x3d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x3d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x3d,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x3d,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x3d,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x3d,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u16_e64 null, 0xfe0b, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x3d,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_ne_u16_e64 null, 0xfe0b, vcc_hi ; encoding: [0x7c,0x00,0x3d,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmp_ne_u32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x4d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x4d,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x4d,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x4d,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x4d,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x4d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x4d,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x4d,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x4d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s5, exec_hi, null -// W32: encoding: [0x05,0x00,0x4d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s5, exec_hi, null ; encoding: [0x05,0x00,0x4d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x4d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x4d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x4d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x4d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 vcc_hi, 0.5, m0 -// W32: encoding: [0x6b,0x00,0x4d,0xd4,0xf0,0xfa,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 vcc_hi, 0.5, m0 ; encoding: [0x6b,0x00,0x4d,0xd4,0xf0,0xfa,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 ttmp15, src_scc, vcc_lo -// W32: encoding: [0x7b,0x00,0x4d,0xd4,0xfd,0xd4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64 ttmp15, src_scc, vcc_lo ; encoding: [0x7b,0x00,0x4d,0xd4,0xfd,0xd4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x4d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x4d,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x4d,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x4d,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x4d,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x4d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x4d,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x4d,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x4d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], exec_hi, null -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], exec_hi, null ; encoding: [0x0a,0x00,0x4d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x4d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x4d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x4d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x4d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 vcc, 0.5, m0 -// W64: encoding: [0x6a,0x00,0x4d,0xd4,0xf0,0xfa,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 vcc, 0.5, m0 ; encoding: [0x6a,0x00,0x4d,0xd4,0xf0,0xfa,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 ttmp[14:15], src_scc, vcc_lo -// W64: encoding: [0x7a,0x00,0x4d,0xd4,0xfd,0xd4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64 ttmp[14:15], src_scc, vcc_lo ; encoding: [0x7a,0x00,0x4d,0xd4,0xfd,0xd4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u32_e64 null, 0xaf123456, vcc_hi -// GFX12: encoding: [0x7c,0x00,0x4d,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ne_u32_e64 null, 0xaf123456, vcc_hi ; encoding: [0x7c,0x00,0x4d,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_ne_u64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x5d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x5d,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x5d,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x5d,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x5d,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x5d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s5, exec, src_scc -// W32: encoding: [0x05,0x00,0x5d,0xd4,0x7e,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s5, exec, src_scc ; encoding: [0x05,0x00,0x5d,0xd4,0x7e,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x5d,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x5d,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x5d,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x5d,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x5d,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x5d,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 ttmp15, src_scc, exec -// W32: encoding: [0x7b,0x00,0x5d,0xd4,0xfd,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u64_e64 ttmp15, src_scc, exec ; encoding: [0x7b,0x00,0x5d,0xd4,0xfd,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x5d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x5d,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x5d,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x5d,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x5d,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x5d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], exec, src_scc -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x7e,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], exec, src_scc ; encoding: [0x0a,0x00,0x5d,0xd4,0x7e,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x5d,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x5d,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x5d,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x5d,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x5d,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x5d,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 ttmp[14:15], src_scc, exec -// W64: encoding: [0x7a,0x00,0x5d,0xd4,0xfd,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u64_e64 ttmp[14:15], src_scc, exec ; encoding: [0x7a,0x00,0x5d,0xd4,0xfd,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:18: error: invalid operand for instruction v_cmp_ne_u64_e64 null, 0xaf123456, vcc -// GFX12: encoding: [0x7c,0x00,0x5d,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ne_u64_e64 null, 0xaf123456, vcc ; encoding: [0x7c,0x00,0x5d,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmp_neq_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0d,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0d,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0d,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0d,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0d,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0d,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0d,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0d,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0d,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0d,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0d,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0d,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0d,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0d,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0d,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0d,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0d,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0d,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0d,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0d,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x0d,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_neq_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0d,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_neq_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1d,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1d,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1d,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1d,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1d,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1d,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1d,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1d,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1d,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1d,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1d,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1d,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1d,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1d,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1d,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1d,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1d,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1d,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1d,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1d,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1d,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1d,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1d,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1d,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1d,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1d,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1d,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1d,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1d,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1d,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1d,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1d,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1d,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1d,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1d,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x1d,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_neq_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1d,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_neq_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2d,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2d,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2d,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2d,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2d,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2d,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2d,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2d,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2d,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2d,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2d,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2d,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2d,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2d,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2d,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2d,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2d,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2d,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2d,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2d,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2d,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2d,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2d,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2d,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2d,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2d,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2d,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2d,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2d,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2d,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2d,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_neq_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x2d,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_neq_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2d,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_nge_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x09,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x09,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x09,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x09,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x09,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x09,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x09,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x09,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x09,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x09,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x09,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x09,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x09,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x09,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x09,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x09,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x09,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x09,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x09,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x09,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x09,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x09,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x09,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x09,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x09,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x09,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x09,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x09,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x09,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x09,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x09,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x09,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x09,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x09,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x09,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x09,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x09,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x09,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x09,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x09,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x09,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x09,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x09,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_nge_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x09,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_nge_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x19,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x19,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x19,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x19,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x19,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x19,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x19,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x19,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x19,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x19,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x19,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x19,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x19,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x19,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x19,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x19,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x19,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x19,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x19,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x19,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x19,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x19,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x19,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x19,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x19,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x19,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x19,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x19,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x19,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x19,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x19,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x19,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x19,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x19,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x19,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x19,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x19,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x19,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x19,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x19,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x19,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x19,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_nge_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x19,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_nge_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x29,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x29,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x29,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x29,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x29,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x29,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x29,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x29,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x29,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x29,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x29,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x29,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x29,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x29,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x29,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x29,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x29,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x29,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x29,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x29,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x29,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x29,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x29,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x29,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x29,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x29,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x29,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x29,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x29,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x29,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x29,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x29,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x29,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x29,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x29,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x29,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x29,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x29,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nge_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x29,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_nge_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x29,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_ngt_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0b,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0b,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0b,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0b,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0b,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0b,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0b,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0b,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0b,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0b,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0b,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0b,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0b,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0b,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0b,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0b,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0b,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0b,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0b,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0b,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0b,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0b,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0b,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0b,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0b,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0b,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0b,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0b,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0b,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0b,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0b,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0b,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0b,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0b,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0b,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x0b,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_ngt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0b,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_ngt_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1b,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1b,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1b,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1b,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1b,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1b,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1b,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1b,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1b,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1b,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1b,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1b,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1b,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1b,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1b,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1b,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1b,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1b,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1b,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1b,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1b,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1b,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1b,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1b,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1b,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1b,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1b,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1b,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1b,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1b,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1b,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1b,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1b,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1b,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1b,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x1b,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ngt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1b,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_ngt_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2b,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2b,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2b,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2b,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2b,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2b,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2b,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2b,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2b,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2b,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2b,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2b,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2b,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2b,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2b,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2b,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2b,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2b,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2b,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2b,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2b,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2b,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2b,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2b,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2b,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2b,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2b,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2b,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2b,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2b,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2b,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_ngt_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x2b,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_ngt_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2b,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_nle_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0c,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0c,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0c,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0c,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0c,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0c,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0c,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0c,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0c,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0c,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0c,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0c,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0c,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0c,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0c,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0c,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0c,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0c,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0c,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0c,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0c,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0c,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0c,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0c,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0c,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0c,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0c,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0c,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0c,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0c,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0c,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0c,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0c,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0c,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0c,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x0c,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_nle_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0c,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_nle_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1c,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1c,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1c,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1c,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1c,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1c,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1c,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1c,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1c,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1c,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1c,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1c,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1c,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1c,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1c,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1c,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1c,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1c,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1c,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1c,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1c,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1c,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1c,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1c,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1c,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1c,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1c,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1c,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1c,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1c,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1c,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1c,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1c,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1c,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1c,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x1c,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_nle_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1c,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_nle_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2c,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2c,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2c,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2c,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2c,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2c,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2c,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2c,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2c,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2c,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2c,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2c,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2c,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2c,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2c,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2c,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2c,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2c,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2c,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2c,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2c,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2c,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2c,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2c,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2c,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2c,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2c,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2c,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2c,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2c,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2c,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nle_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x2c,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_nle_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2c,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_nlg_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0a,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0a,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0a,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0a,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0a,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0a,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0a,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0a,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0a,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0a,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0a,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0a,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0a,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0a,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0a,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0a,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0a,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0a,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0a,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0a,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0a,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0a,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0a,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0a,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0a,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0a,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0a,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0a,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0a,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0a,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0a,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0a,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0a,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0a,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0a,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x0a,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_nlg_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0a,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_nlg_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1a,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1a,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1a,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1a,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1a,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1a,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1a,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1a,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1a,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1a,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1a,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1a,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1a,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1a,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1a,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1a,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1a,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1a,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1a,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1a,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1a,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1a,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1a,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1a,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1a,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1a,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1a,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1a,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1a,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1a,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1a,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1a,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1a,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1a,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1a,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x1a,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_nlg_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1a,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_nlg_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2a,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2a,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2a,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2a,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2a,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2a,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2a,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2a,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2a,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2a,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2a,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2a,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2a,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2a,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2a,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2a,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2a,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2a,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2a,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2a,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2a,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2a,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2a,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2a,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2a,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2a,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2a,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2a,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2a,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2a,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2a,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlg_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x2a,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_nlg_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2a,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_nlt_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x0e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x0e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x0e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x0e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x0e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x0e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x0e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x0e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x0e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x0e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x0e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x0e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x0e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x0e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x0e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x0e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x0e,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x0e,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x0e,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x0e,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x0e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x0e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x0e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x0e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x0e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x0e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x0e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x0e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x0e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x0e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x0e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x0e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x0e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x0e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x0e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x0e,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x0e,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x0e,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x0e,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x0e,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_nlt_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x0e,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_nlt_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x1e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x1e,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x1e,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x1e,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x1e,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x1e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x1e,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x1e,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x1e,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x1e,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x1e,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x1e,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x1e,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x1e,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x1e,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x1e,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x1e,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x1e,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x1e,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x1e,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x1e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x1e,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x1e,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x1e,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x1e,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x1e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x1e,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x1e,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x1e,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x1e,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x1e,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x1e,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x1e,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x1e,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x1e,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x1e,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x1e,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x1e,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x1e,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x1e,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_nlt_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x1e,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_nlt_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x2e,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x2e,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x2e,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x2e,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x2e,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x2e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x2e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x2e,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x2e,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x2e,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x2e,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x2e,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x2e,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x2e,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x2e,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x2e,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x2e,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x2e,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x2e,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x2e,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x2e,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x2e,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x2e,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x2e,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x2e,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x2e,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x2e,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x2e,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x2e,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x2e,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x2e,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x2e,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x2e,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:19: error: invalid operand for instruction v_cmp_nlt_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x2e,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_nlt_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x2e,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_o_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x07,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x07,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x07,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x07,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x07,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x07,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x07,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x07,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x07,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x07,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x07,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x07,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x07,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x07,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x07,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x07,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x07,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x07,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x07,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x07,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x07,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x07,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x07,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x07,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x07,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x07,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x07,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x07,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x07,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x07,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x07,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x07,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x07,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x07,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x07,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x07,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x07,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x07,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x07,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x07,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x07,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x07,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x07,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_o_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x07,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_o_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x17,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x17,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x17,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x17,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x17,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x17,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x17,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x17,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x17,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x17,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x17,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x17,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x17,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x17,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x17,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x17,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x17,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x17,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x17,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x17,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x17,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x17,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x17,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x17,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x17,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x17,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x17,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x17,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x17,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x17,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x17,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x17,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x17,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x17,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x17,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x17,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x17,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x17,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x17,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x17,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x17,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x17,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_o_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x17,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_o_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x27,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x27,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x27,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x27,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x27,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x27,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x27,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x27,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x27,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x27,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x27,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x27,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x27,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x27,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x27,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x27,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x27,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x27,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x27,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x27,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x27,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x27,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x27,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x27,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x27,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x27,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x27,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x27,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x27,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x27,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x27,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x27,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x27,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x27,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x27,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x27,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x27,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x27,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_o_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x27,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_o_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x27,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmp_u_f16_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x08,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x08,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x08,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x08,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x08,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x08,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, vcc_hi, 0xfe0b -// W32: encoding: [0x05,0x00,0x08,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, vcc_hi, 0xfe0b ; encoding: [0x05,0x00,0x08,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x08,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x08,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x08,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x08,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x08,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x08,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x08,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x08,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x08,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x08,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x08,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x08,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x08,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x08,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x08,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x08,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x08,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x08,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x08,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x08,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], vcc_hi, 0xfe0b -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], vcc_hi, 0xfe0b ; encoding: [0x0a,0x00,0x08,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x08,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x08,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x08,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x08,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x08,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x08,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x08,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x08,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x08,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x08,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x08,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x08,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x08,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x08,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmp_u_f16_e64 null, -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x08,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmp_u_f32_e64 s5, v1, v2 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, v1, v2 ; encoding: [0x05,0x00,0x18,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, v255, v255 -// W32: encoding: [0x05,0x00,0x18,0xd4,0xff,0xff,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, v255, v255 ; encoding: [0x05,0x00,0x18,0xd4,0xff,0xff,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, s1, s2 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x01,0x04,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, s1, s2 ; encoding: [0x05,0x00,0x18,0xd4,0x01,0x04,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, s105, s105 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x69,0xd2,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, s105, s105 ; encoding: [0x05,0x00,0x18,0xd4,0x69,0xd2,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, vcc_lo, ttmp15 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x6a,0xf6,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, vcc_lo, ttmp15 ; encoding: [0x05,0x00,0x18,0xd4,0x6a,0xf6,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, vcc_hi, 0xaf123456 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, vcc_hi, 0xaf123456 ; encoding: [0x05,0x00,0x18,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, ttmp15, src_scc -// W32: encoding: [0x05,0x00,0x18,0xd4,0x7b,0xfa,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, ttmp15, src_scc ; encoding: [0x05,0x00,0x18,0xd4,0x7b,0xfa,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, m0, 0.5 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x7d,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, m0, 0.5 ; encoding: [0x05,0x00,0x18,0xd4,0x7d,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, exec_lo, -1 -// W32: encoding: [0x05,0x00,0x18,0xd4,0x7e,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, exec_lo, -1 ; encoding: [0x05,0x00,0x18,0xd4,0x7e,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s5, |exec_hi|, null -// W32: encoding: [0x05,0x01,0x18,0xd4,0x7f,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s5, |exec_hi|, null ; encoding: [0x05,0x01,0x18,0xd4,0x7f,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s105, null, exec_lo -// W32: encoding: [0x69,0x00,0x18,0xd4,0x7c,0xfc,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 s105, null, exec_lo ; encoding: [0x69,0x00,0x18,0xd4,0x7c,0xfc,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 vcc_lo, -1, exec_hi -// W32: encoding: [0x6a,0x00,0x18,0xd4,0xc1,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 vcc_lo, -1, exec_hi ; encoding: [0x6a,0x00,0x18,0xd4,0xc1,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 vcc_hi, 0.5, -m0 -// W32: encoding: [0x6b,0x00,0x18,0xd4,0xf0,0xfa,0x00,0x40] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 vcc_hi, 0.5, -m0 ; encoding: [0x6b,0x00,0x18,0xd4,0xf0,0xfa,0x00,0x40] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 ttmp15, -src_scc, |vcc_lo| -// W32: encoding: [0x7b,0x02,0x18,0xd4,0xfd,0xd4,0x00,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64 ttmp15, -src_scc, |vcc_lo| ; encoding: [0x7b,0x02,0x18,0xd4,0xfd,0xd4,0x00,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], v1, v2 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], v1, v2 ; encoding: [0x0a,0x00,0x18,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], v255, v255 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0xff,0xff,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], v255, v255 ; encoding: [0x0a,0x00,0x18,0xd4,0xff,0xff,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], s1, s2 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x01,0x04,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], s1, s2 ; encoding: [0x0a,0x00,0x18,0xd4,0x01,0x04,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], s105, s105 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x69,0xd2,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], s105, s105 ; encoding: [0x0a,0x00,0x18,0xd4,0x69,0xd2,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], vcc_lo, ttmp15 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x6a,0xf6,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], vcc_lo, ttmp15 ; encoding: [0x0a,0x00,0x18,0xd4,0x6a,0xf6,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], vcc_hi, 0xaf123456 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], vcc_hi, 0xaf123456 ; encoding: [0x0a,0x00,0x18,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], ttmp15, src_scc -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x7b,0xfa,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], ttmp15, src_scc ; encoding: [0x0a,0x00,0x18,0xd4,0x7b,0xfa,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], m0, 0.5 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x7d,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], m0, 0.5 ; encoding: [0x0a,0x00,0x18,0xd4,0x7d,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], exec_lo, -1 -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x7e,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], exec_lo, -1 ; encoding: [0x0a,0x00,0x18,0xd4,0x7e,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], |exec_hi|, null -// W64: encoding: [0x0a,0x01,0x18,0xd4,0x7f,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], |exec_hi|, null ; encoding: [0x0a,0x01,0x18,0xd4,0x7f,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[10:11], null, exec_lo -// W64: encoding: [0x0a,0x00,0x18,0xd4,0x7c,0xfc,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[10:11], null, exec_lo ; encoding: [0x0a,0x00,0x18,0xd4,0x7c,0xfc,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 s[104:105], -1, exec_hi -// W64: encoding: [0x68,0x00,0x18,0xd4,0xc1,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 s[104:105], -1, exec_hi ; encoding: [0x68,0x00,0x18,0xd4,0xc1,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 vcc, 0.5, -m0 -// W64: encoding: [0x6a,0x00,0x18,0xd4,0xf0,0xfa,0x00,0x40] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 vcc, 0.5, -m0 ; encoding: [0x6a,0x00,0x18,0xd4,0xf0,0xfa,0x00,0x40] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| -// W64: encoding: [0x7a,0x02,0x18,0xd4,0xfd,0xd4,0x00,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64 ttmp[14:15], -src_scc, |vcc_lo| ; encoding: [0x7a,0x02,0x18,0xd4,0xfd,0xd4,0x00,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7c,0x83,0x18,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_u_f32_e64 null, -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7c,0x83,0x18,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmp_u_f64_e64 s5, v[1:2], v[2:3] -// W32: encoding: [0x05,0x00,0x28,0xd4,0x01,0x05,0x02,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, v[1:2], v[2:3] ; encoding: [0x05,0x00,0x28,0xd4,0x01,0x05,0x02,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, v[254:255], v[254:255] -// W32: encoding: [0x05,0x00,0x28,0xd4,0xfe,0xfd,0x03,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, v[254:255], v[254:255] ; encoding: [0x05,0x00,0x28,0xd4,0xfe,0xfd,0x03,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, s[2:3], s[4:5] -// W32: encoding: [0x05,0x00,0x28,0xd4,0x02,0x08,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, s[2:3], s[4:5] ; encoding: [0x05,0x00,0x28,0xd4,0x02,0x08,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, s[104:105], s[104:105] -// W32: encoding: [0x05,0x00,0x28,0xd4,0x68,0xd0,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, s[104:105], s[104:105] ; encoding: [0x05,0x00,0x28,0xd4,0x68,0xd0,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, vcc, ttmp[14:15] -// W32: encoding: [0x05,0x00,0x28,0xd4,0x6a,0xf4,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, vcc, ttmp[14:15] ; encoding: [0x05,0x00,0x28,0xd4,0x6a,0xf4,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, ttmp[14:15], 0xaf123456 -// W32: encoding: [0x05,0x00,0x28,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, ttmp[14:15], 0xaf123456 ; encoding: [0x05,0x00,0x28,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s5, -|exec|, src_scc -// W32: encoding: [0x05,0x01,0x28,0xd4,0x7e,0xfa,0x01,0x20] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s5, -|exec|, src_scc ; encoding: [0x05,0x01,0x28,0xd4,0x7e,0xfa,0x01,0x20] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s105, null, 0.5 -// W32: encoding: [0x69,0x00,0x28,0xd4,0x7c,0xe0,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 s105, null, 0.5 ; encoding: [0x69,0x00,0x28,0xd4,0x7c,0xe0,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 vcc_lo, -1, -1 -// W32: encoding: [0x6a,0x00,0x28,0xd4,0xc1,0x82,0x01,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 vcc_lo, -1, -1 ; encoding: [0x6a,0x00,0x28,0xd4,0xc1,0x82,0x01,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 vcc_hi, 0.5, null -// W32: encoding: [0x6b,0x00,0x28,0xd4,0xf0,0xf8,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 vcc_hi, 0.5, null ; encoding: [0x6b,0x00,0x28,0xd4,0xf0,0xf8,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 ttmp15, -|src_scc|, -|exec| -// W32: encoding: [0x7b,0x03,0x28,0xd4,0xfd,0xfc,0x00,0x60] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f64_e64 ttmp15, -|src_scc|, -|exec| ; encoding: [0x7b,0x03,0x28,0xd4,0xfd,0xfc,0x00,0x60] +// W64-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], v[1:2], v[2:3] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x01,0x05,0x02,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], v[1:2], v[2:3] ; encoding: [0x0a,0x00,0x28,0xd4,0x01,0x05,0x02,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], v[254:255], v[254:255] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0xfe,0xfd,0x03,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], v[254:255], v[254:255] ; encoding: [0x0a,0x00,0x28,0xd4,0xfe,0xfd,0x03,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], s[2:3], s[4:5] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x02,0x08,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], s[2:3], s[4:5] ; encoding: [0x0a,0x00,0x28,0xd4,0x02,0x08,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], s[104:105], s[104:105] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x68,0xd0,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], s[104:105], s[104:105] ; encoding: [0x0a,0x00,0x28,0xd4,0x68,0xd0,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], vcc, ttmp[14:15] -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x6a,0xf4,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], vcc, ttmp[14:15] ; encoding: [0x0a,0x00,0x28,0xd4,0x6a,0xf4,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], ttmp[14:15], 0xaf123456 ; encoding: [0x0a,0x00,0x28,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], -|exec|, src_scc -// W64: encoding: [0x0a,0x01,0x28,0xd4,0x7e,0xfa,0x01,0x20] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], -|exec|, src_scc ; encoding: [0x0a,0x01,0x28,0xd4,0x7e,0xfa,0x01,0x20] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[10:11], null, 0.5 -// W64: encoding: [0x0a,0x00,0x28,0xd4,0x7c,0xe0,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[10:11], null, 0.5 ; encoding: [0x0a,0x00,0x28,0xd4,0x7c,0xe0,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 s[104:105], -1, -1 -// W64: encoding: [0x68,0x00,0x28,0xd4,0xc1,0x82,0x01,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 s[104:105], -1, -1 ; encoding: [0x68,0x00,0x28,0xd4,0xc1,0x82,0x01,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 vcc, 0.5, null -// W64: encoding: [0x6a,0x00,0x28,0xd4,0xf0,0xf8,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 vcc, 0.5, null ; encoding: [0x6a,0x00,0x28,0xd4,0xf0,0xf8,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 ttmp[14:15], -|src_scc|, -|exec| -// W64: encoding: [0x7a,0x03,0x28,0xd4,0xfd,0xfc,0x00,0x60] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f64_e64 ttmp[14:15], -|src_scc|, -|exec| ; encoding: [0x7a,0x03,0x28,0xd4,0xfd,0xfc,0x00,0x60] +// W32-ERR: :[[@LINE-2]]:17: error: invalid operand for instruction v_cmp_u_f64_e64 null, 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7c,0x82,0x28,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmp_u_f64_e64 null, 0xaf123456, -|vcc| clamp ; encoding: [0x7c,0x82,0x28,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s index 8b090d4eb5ed6..a508cbd661415 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp16.s @@ -1,6646 +1,6647 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x7d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp null, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x01,0x7d,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_class_f16_e64_dpp null, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x01,0x7d,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x7e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp null, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x01,0x7e,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_class_f32_e64_dpp null, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x01,0x7e,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] v_cmp_eq_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x02,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x02,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x02,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x02,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x02,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x02,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x02,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x02,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x02,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x02,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x02,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_eq_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x02,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_eq_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x12,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x12,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x12,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x12,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x12,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x12,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x12,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x12,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x12,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x12,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x12,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_eq_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x12,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_eq_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x32,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x32,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_eq_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x32,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_eq_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x42,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x42,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_eq_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x42,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_eq_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x3a,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_eq_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3a,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_eq_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x4a,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_eq_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4a,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ge_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x06,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x06,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x06,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x06,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x06,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x06,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x06,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x06,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x06,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x06,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x06,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ge_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x06,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_ge_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x16,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x16,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x16,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x16,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x16,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x16,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x16,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x16,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x16,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x16,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x16,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ge_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x16,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_ge_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x36,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x36,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ge_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x36,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ge_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x46,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x46,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ge_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x46,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ge_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x3e,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ge_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3e,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ge_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x4e,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ge_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4e,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_gt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x04,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x04,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x04,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x04,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x04,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x04,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x04,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x04,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x04,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x04,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x04,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_gt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x04,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_gt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x14,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x14,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x14,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x14,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x14,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x14,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x14,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x14,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x14,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x14,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x14,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_gt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x14,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_gt_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x34,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x34,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_gt_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x34,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_gt_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x44,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x44,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_gt_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x44,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_gt_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x3c,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_gt_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3c,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_gt_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x4c,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_gt_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4c,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_le_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x03,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x03,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x03,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x03,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x03,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x03,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x03,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x03,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x03,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x03,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x03,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_le_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x03,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_le_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x13,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x13,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x13,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x13,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x13,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x13,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x13,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x13,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x13,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x13,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x13,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_le_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x13,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_le_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x33,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x33,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_le_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x33,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_le_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x43,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x43,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_le_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x43,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_le_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x3b,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_le_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3b,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_le_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x4b,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_le_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4b,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_lg_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x05,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x05,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x05,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x05,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x05,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x05,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x05,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x05,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x05,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x05,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x05,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_lg_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x05,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_lg_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x15,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x15,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x15,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x15,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x15,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x15,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x15,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x15,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x15,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x15,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x15,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_lg_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x15,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_lt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x01,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x01,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x01,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x01,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x01,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x01,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x01,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x01,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x01,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x01,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x01,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_lt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x01,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_lt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x11,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x11,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x11,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x11,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x11,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x11,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x11,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x11,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x11,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x11,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x11,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_lt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x11,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_lt_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x31,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x31,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_lt_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x31,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_lt_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x41,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x41,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_lt_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x41,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_lt_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x39,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x39,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_lt_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x39,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_lt_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x49,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x49,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_lt_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x49,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ne_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x35,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x35,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ne_i16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x35,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ne_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x45,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x45,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ne_i32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x45,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ne_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x3d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x3d,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ne_u16_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x3d,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_ne_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp vcc_hi, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp ttmp15, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp ttmp[14:15], v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x00,0x4d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x00,0x4d,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ne_u32_e64_dpp null, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x00,0x4d,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmp_neq_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x0d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_neq_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_neq_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x1d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_neq_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nge_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x09,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x09,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x09,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x09,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x09,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x09,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x09,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x09,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x09,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x09,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x09,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_nge_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x09,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nge_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x19,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x19,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x19,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x19,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x19,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x19,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x19,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x19,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x19,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x19,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x19,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_nge_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x19,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_ngt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x0b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ngt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_ngt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x1b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_ngt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nle_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x0c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_nle_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nle_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x1c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_nle_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nlg_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x0a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_nlg_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nlg_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x1a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_nlg_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nlt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x0e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x0e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x0e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x0e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x0e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x0e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x0e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x0e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x0e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x0e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_nlt_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x0e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_nlt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x1e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x1e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x1e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x1e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x1e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x1e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x1e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x1e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x1e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x1e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_nlt_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x1e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_o_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x07,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x07,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x07,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x07,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x07,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x07,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x07,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x07,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x07,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x07,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x07,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_o_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x07,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_o_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x17,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x17,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x17,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x17,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x17,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x17,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x17,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x17,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x17,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x17,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x17,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_o_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x17,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_u_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x08,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x08,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x08,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x08,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x08,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x08,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x08,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x08,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x08,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x08,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x08,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_u_f16_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x08,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmp_u_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] -// W32: [0x05,0x00,0x18,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_mirror -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_half_mirror -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_shl:1 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_shl:15 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_shr:1 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_shr:15 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, v2 row_ror:1 -// W32: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x05,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s105, v1, v2 row_ror:15 -// W32: [0x69,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s105, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x69,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: [0x6a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x6a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: [0x6b,0x01,0x18,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp vcc_hi, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6b,0x01,0x18,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: [0x7b,0x02,0x18,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp ttmp15, -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7b,0x02,0x18,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_mirror -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_half_mirror -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shl:1 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shl:15 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shr:1 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shr:15 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_ror:1 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_ror:15 -// W64: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x0a,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: [0x68,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[104:105], v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x68,0x00,0x18,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: [0x6a,0x01,0x18,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp vcc, |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x6a,0x01,0x18,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: [0x7a,0x02,0x18,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp ttmp[14:15], -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7a,0x02,0x18,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7c,0x83,0x18,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmp_u_f32_e64_dpp null, -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7c,0x83,0x18,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s index 44b4e4f42317c..96a3d356ae282 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3c_dpp8.s @@ -1,2974 +1,2975 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX12,W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX12,W64 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x7d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x7d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x7d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x7d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x7d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x7d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x7d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x7d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x7d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x7d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f16_e64_dpp null, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x01,0x7d,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_class_f16_e64_dpp null, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x01,0x7d,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x7e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x7e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x7e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_class_f32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x7e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x7e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x7e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x7e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x7e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x7e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x7e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_class_f32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x7e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:25: error: invalid operand for instruction v_cmp_class_f32_e64_dpp null, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x01,0x7e,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_class_f32_e64_dpp null, -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x01,0x7e,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cmp_eq_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x02,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x02,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x02,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x02,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x02,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x02,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x02,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x02,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x02,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x02,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x02,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x02,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x02,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x02,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x02,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x02,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x02,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x02,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_eq_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x02,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_eq_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x12,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x12,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x12,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x12,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x12,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x12,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x12,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x12,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x12,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x12,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x12,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x12,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x12,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x12,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x12,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x12,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x12,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_eq_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x12,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_eq_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x32,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x32,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x32,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x32,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x32,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x32,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x32,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x32,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x32,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x32,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x32,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x32,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x32,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_eq_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x32,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_eq_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x42,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x42,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x42,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x42,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x42,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x42,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x42,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x42,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x42,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x42,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x42,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x42,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x42,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x42,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_eq_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x42,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_eq_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3a,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3a,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3a,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3a,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x3a,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_eq_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3a,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_eq_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4a,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4a,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_eq_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4a,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4a,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_eq_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4a,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_eq_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x4a,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_eq_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4a,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ge_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x06,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x06,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x06,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x06,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x06,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x06,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x06,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x06,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x06,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x06,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x06,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x06,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x06,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x06,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x06,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x06,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x06,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x06,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ge_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x06,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_ge_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x16,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x16,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x16,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x16,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x16,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x16,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x16,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x16,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x16,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x16,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x16,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x16,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x16,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x16,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x16,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x16,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x16,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ge_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x16,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_ge_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x36,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x36,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x36,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x36,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x36,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x36,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x36,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x36,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x36,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x36,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x36,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x36,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x36,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x36,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ge_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x36,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ge_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x46,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x46,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x46,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x46,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x46,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x46,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x46,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x46,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x46,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x46,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x46,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x46,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x46,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ge_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x46,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ge_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3e,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3e,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3e,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3e,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x3e,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ge_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3e,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ge_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4e,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4e,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ge_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4e,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4e,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ge_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4e,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ge_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x4e,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ge_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4e,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_gt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x04,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x04,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x04,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x04,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x04,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x04,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x04,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x04,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x04,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x04,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x04,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x04,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x04,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x04,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x04,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x04,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x04,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_gt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x04,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_gt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x14,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x14,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x14,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x14,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x14,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x14,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x14,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x14,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x14,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x14,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x14,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x14,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x14,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x14,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x14,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x14,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x14,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x14,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_gt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x14,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_gt_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x34,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x34,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x34,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x34,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x34,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x34,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x34,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x34,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x34,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x34,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x34,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x34,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x34,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x34,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_gt_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x34,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_gt_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x44,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x44,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x44,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x44,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x44,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x44,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x44,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x44,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x44,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x44,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x44,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x44,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x44,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_gt_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x44,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_gt_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3c,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3c,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3c,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3c,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x3c,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_gt_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3c,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_gt_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4c,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4c,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_gt_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4c,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4c,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_gt_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4c,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_gt_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x4c,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_gt_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4c,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_le_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x03,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x03,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x03,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x03,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x03,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x03,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x03,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x03,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x03,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x03,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x03,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x03,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x03,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x03,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x03,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x03,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x03,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_le_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x03,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_le_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x13,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x13,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x13,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x13,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x13,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x13,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x13,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x13,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x13,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x13,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x13,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x13,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x13,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x13,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x13,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x13,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x13,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_le_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x13,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_le_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x33,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x33,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x33,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x33,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x33,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x33,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x33,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x33,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x33,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x33,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x33,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x33,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x33,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x33,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_le_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x33,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_le_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x43,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x43,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x43,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x43,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x43,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x43,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x43,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x43,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x43,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x43,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x43,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x43,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x43,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x43,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_le_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x43,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_le_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3b,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3b,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3b,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3b,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x3b,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_le_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3b,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_le_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4b,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4b,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_le_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4b,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4b,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_le_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4b,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_le_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x4b,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_le_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4b,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_lg_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x05,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x05,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x05,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x05,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x05,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x05,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x05,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x05,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x05,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x05,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x05,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x05,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x05,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x05,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x05,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x05,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x05,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_lg_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x05,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_lg_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x15,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x15,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x15,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x15,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x15,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x15,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lg_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x15,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x15,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x15,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x15,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x15,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x15,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x15,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x15,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x15,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lg_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x15,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lg_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x15,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_lg_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x15,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_lt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x01,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x01,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x01,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x01,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x01,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x01,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x01,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x01,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x01,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x01,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x01,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x01,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x01,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x01,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x01,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x01,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_lt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x01,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_lt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x11,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x11,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x11,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x11,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x11,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x11,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x11,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x11,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x11,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x11,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x11,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x11,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x11,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x11,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x11,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x11,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x11,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_lt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x11,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_lt_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x31,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x31,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x31,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x31,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x31,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x31,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x31,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x31,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x31,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x31,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x31,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x31,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x31,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_lt_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x31,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_lt_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x41,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x41,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x41,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x41,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x41,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x41,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x41,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x41,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x41,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x41,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x41,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x41,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x41,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_lt_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x41,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_lt_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x39,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x39,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x39,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x39,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x39,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x39,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x39,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x39,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x39,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x39,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x39,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x39,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x39,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_lt_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x39,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_lt_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x49,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x49,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x49,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x49,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x49,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_lt_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x49,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x49,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x49,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x49,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x49,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x49,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x49,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_lt_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x49,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_lt_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x49,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_lt_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x49,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ne_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x35,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x35,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x35,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x35,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x35,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x35,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x35,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x35,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x35,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x35,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x35,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x35,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x35,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x35,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ne_i16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x35,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ne_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x45,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x45,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x45,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x45,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_i32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x45,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x45,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x45,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x45,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x45,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x45,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x45,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_i32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x45,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x45,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ne_i32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x45,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ne_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x3d,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x3d,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x3d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u16_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x3d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x3d,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x3d,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x3d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x3d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u16_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x3d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x3d,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ne_u16_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x3d,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_ne_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x4d,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s5, v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x4d,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp vcc_hi, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x00,0x4d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ne_u32_e64_dpp ttmp15, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x00,0x4d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x4d,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[10:11], v1, 10 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x4d,0xd4,0xe9,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x4d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x00,0x4d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ne_u32_e64_dpp ttmp[14:15], v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x00,0x4d,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:22: error: invalid operand for instruction v_cmp_ne_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x00,0x4d,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ne_u32_e64_dpp null, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x00,0x4d,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmp_neq_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x0d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_neq_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_neq_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_neq_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1d,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1d,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_neq_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_neq_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x1d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_neq_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nge_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x09,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x09,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x09,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x09,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x09,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x09,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x09,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x09,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x09,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x09,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x09,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x09,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x09,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x09,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x09,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x09,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x09,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_nge_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x09,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nge_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x19,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x19,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x19,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x19,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x19,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x19,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nge_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x19,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x19,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x19,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x19,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x19,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x19,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x19,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x19,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x19,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nge_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x19,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nge_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x19,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_nge_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x19,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_ngt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0b,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0b,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0b,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0b,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x0b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ngt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_ngt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1b,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1b,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_ngt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1b,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1b,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1b,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_ngt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_ngt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x1b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_ngt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nle_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0c,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0c,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0c,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0c,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x0c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_nle_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nle_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1c,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1c,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nle_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1c,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1c,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1c,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nle_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nle_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x1c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_nle_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nlg_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0a,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0a,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0a,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0a,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x0a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_nlg_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nlg_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1a,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1a,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlg_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1a,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1a,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1a,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlg_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlg_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x1a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_nlg_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nlt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x0e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x0e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x0e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x0e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x0e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x0e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x0e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x0e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x0e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x0e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x0e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x0e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x0e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x0e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_nlt_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x0e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_nlt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x1e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x1e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x1e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x1e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x1e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_nlt_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x1e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1e,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x1e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x1e,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x1e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x1e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x1e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x1e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_nlt_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x1e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:23: error: invalid operand for instruction v_cmp_nlt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x1e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_nlt_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x1e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_o_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x07,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x07,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x07,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x07,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x07,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x07,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x07,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x07,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x07,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x07,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x07,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x07,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x07,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x07,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x07,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x07,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x07,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_o_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x07,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_o_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x17,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x17,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x17,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x17,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x17,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x17,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_o_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x17,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x17,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x17,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x17,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x17,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x17,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x17,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x17,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x17,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_o_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x17,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_o_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x17,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_o_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x17,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_u_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x08,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x08,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x08,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x08,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x08,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x08,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x08,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f16_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x08,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x08,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x08,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x08,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x08,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x08,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x08,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x08,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x08,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f16_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x08,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x08,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_u_f16_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x08,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmp_u_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x18,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x05,0x00,0x18,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s5, v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x05,0x00,0x18,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x69,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp s105, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x69,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6a,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: [0x6b,0x01,0x18,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp vcc_hi, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6b,0x01,0x18,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: [0x7b,0x02,0x18,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W32: v_cmp_u_f32_e64_dpp ttmp15, -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7b,0x02,0x18,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x18,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, s2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x18,0xd4,0xe9,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x0a,0x00,0x18,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[10:11], v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x0a,0x00,0x18,0xd4,0xe9,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x68,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp s[104:105], v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x68,0x00,0x18,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: [0x6a,0x01,0x18,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp vcc, |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x6a,0x01,0x18,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: [0x7a,0x02,0x18,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +// W64: v_cmp_u_f32_e64_dpp ttmp[14:15], -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7a,0x02,0x18,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:21: error: invalid operand for instruction v_cmp_u_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7c,0x83,0x18,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmp_u_f32_e64_dpp null, -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7c,0x83,0x18,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s index 7d311dc8afd0d..5772fb30391f8 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx.s @@ -1,3413 +1,3414 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s v_cmpx_class_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_class_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0xfd,0xd4,0x01,0x05,0x02,0x00] v_cmpx_class_f16_e64 v255, v2 -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0xff,0x05,0x02,0x00] +// GFX12: v_cmpx_class_f16_e64 v255, v2 ; encoding: [0x7e,0x00,0xfd,0xd4,0xff,0x05,0x02,0x00] v_cmpx_class_f16_e64 s1, v2 -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x01,0x04,0x02,0x00] +// GFX12: v_cmpx_class_f16_e64 s1, v2 ; encoding: [0x7e,0x00,0xfd,0xd4,0x01,0x04,0x02,0x00] v_cmpx_class_f16_e64 s105, v255 -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x69,0xfe,0x03,0x00] +// GFX12: v_cmpx_class_f16_e64 s105, v255 ; encoding: [0x7e,0x00,0xfd,0xd4,0x69,0xfe,0x03,0x00] v_cmpx_class_f16_e64 vcc_lo, s2 -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x6a,0x04,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64 vcc_lo, s2 ; encoding: [0x7e,0x00,0xfd,0xd4,0x6a,0x04,0x00,0x00] v_cmpx_class_f16_e64 vcc_hi, s105 -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x6b,0xd2,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64 vcc_hi, s105 ; encoding: [0x7e,0x00,0xfd,0xd4,0x6b,0xd2,0x00,0x00] v_cmpx_class_f16_e64 ttmp15, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x7b,0xf6,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64 ttmp15, ttmp15 ; encoding: [0x7e,0x00,0xfd,0xd4,0x7b,0xf6,0x00,0x00] v_cmpx_class_f16_e64 m0, src_scc -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x7d,0xfa,0x01,0x00] +// GFX12: v_cmpx_class_f16_e64 m0, src_scc ; encoding: [0x7e,0x00,0xfd,0xd4,0x7d,0xfa,0x01,0x00] v_cmpx_class_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_class_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xfd,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_class_f16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xfd,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_class_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xfd,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_class_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xfd,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_class_f16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xfd,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_class_f16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xfd,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xfd,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_class_f16_e64 -|0xfe0b|, vcc_hi -// GFX12: encoding: [0x7e,0x01,0xfd,0xd4,0xff,0xd6,0x00,0x20,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64 -|0xfe0b|, vcc_hi ; encoding: [0x7e,0x01,0xfd,0xd4,0xff,0xd6,0x00,0x20,0x0b,0xfe,0x00,0x00] v_cmpx_class_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_class_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0xfe,0xd4,0x01,0x05,0x02,0x00] v_cmpx_class_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_class_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0xfe,0xd4,0xff,0xff,0x03,0x00] v_cmpx_class_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_class_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0xfe,0xd4,0x01,0x04,0x00,0x00] v_cmpx_class_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_class_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0xfe,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_class_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_class_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xfe,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_class_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_class_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xfe,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_class_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_class_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xfe,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_class_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_class_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xfe,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_class_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_class_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xfe,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_class_f32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_class_f32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xfe,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_class_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_class_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xfe,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_class_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_class_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xfe,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_class_f32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_class_f32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xfe,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_class_f32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xfe,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_class_f32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xfe,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_class_f32_e64 -|0xaf123456|, vcc_hi -// GFX12: encoding: [0x7e,0x01,0xfe,0xd4,0xff,0xd6,0x00,0x20,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_class_f32_e64 -|0xaf123456|, vcc_hi ; encoding: [0x7e,0x01,0xfe,0xd4,0xff,0xd6,0x00,0x20,0x56,0x34,0x12,0xaf] v_cmpx_class_f64_e64 v[1:2], v2 -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_class_f64_e64 v[1:2], v2 ; encoding: [0x7e,0x00,0xff,0xd4,0x01,0x05,0x02,0x00] v_cmpx_class_f64_e64 v[1:2], v255 -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x01,0xff,0x03,0x00] +// GFX12: v_cmpx_class_f64_e64 v[1:2], v255 ; encoding: [0x7e,0x00,0xff,0xd4,0x01,0xff,0x03,0x00] v_cmpx_class_f64_e64 v[1:2], s2 -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x01,0x05,0x00,0x00] +// GFX12: v_cmpx_class_f64_e64 v[1:2], s2 ; encoding: [0x7e,0x00,0xff,0xd4,0x01,0x05,0x00,0x00] v_cmpx_class_f64_e64 v[1:2], s105 -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x01,0xd3,0x00,0x00] +// GFX12: v_cmpx_class_f64_e64 v[1:2], s105 ; encoding: [0x7e,0x00,0xff,0xd4,0x01,0xd3,0x00,0x00] v_cmpx_class_f64_e64 v[254:255], ttmp15 -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0xfe,0xf7,0x00,0x00] +// GFX12: v_cmpx_class_f64_e64 v[254:255], ttmp15 ; encoding: [0x7e,0x00,0xff,0xd4,0xfe,0xf7,0x00,0x00] v_cmpx_class_f64_e64 s[2:3], vcc_hi -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x02,0xd6,0x00,0x00] +// GFX12: v_cmpx_class_f64_e64 s[2:3], vcc_hi ; encoding: [0x7e,0x00,0xff,0xd4,0x02,0xd6,0x00,0x00] v_cmpx_class_f64_e64 s[104:105], vcc_lo -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x68,0xd4,0x00,0x00] +// GFX12: v_cmpx_class_f64_e64 s[104:105], vcc_lo ; encoding: [0x7e,0x00,0xff,0xd4,0x68,0xd4,0x00,0x00] v_cmpx_class_f64_e64 vcc, m0 -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x6a,0xfa,0x00,0x00] +// GFX12: v_cmpx_class_f64_e64 vcc, m0 ; encoding: [0x7e,0x00,0xff,0xd4,0x6a,0xfa,0x00,0x00] v_cmpx_class_f64_e64 ttmp[14:15], exec_hi -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x7a,0xfe,0x00,0x00] +// GFX12: v_cmpx_class_f64_e64 ttmp[14:15], exec_hi ; encoding: [0x7e,0x00,0xff,0xd4,0x7a,0xfe,0x00,0x00] v_cmpx_class_f64_e64 exec, exec_lo -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x7e,0xfc,0x00,0x00] +// GFX12: v_cmpx_class_f64_e64 exec, exec_lo ; encoding: [0x7e,0x00,0xff,0xd4,0x7e,0xfc,0x00,0x00] v_cmpx_class_f64_e64 null, null -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0x7c,0xf8,0x00,0x00] +// GFX12: v_cmpx_class_f64_e64 null, null ; encoding: [0x7e,0x00,0xff,0xd4,0x7c,0xf8,0x00,0x00] v_cmpx_class_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_class_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xff,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_class_f64_e64 0.5, 0.5 -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0xf0,0xe0,0x01,0x00] +// GFX12: v_cmpx_class_f64_e64 0.5, 0.5 ; encoding: [0x7e,0x00,0xff,0xd4,0xf0,0xe0,0x01,0x00] v_cmpx_class_f64_e64 -|src_scc|, src_scc -// GFX12: encoding: [0x7e,0x01,0xff,0xd4,0xfd,0xfa,0x01,0x20] +// GFX12: v_cmpx_class_f64_e64 -|src_scc|, src_scc ; encoding: [0x7e,0x01,0xff,0xd4,0xfd,0xfa,0x01,0x20] v_cmpx_class_f64_e64 0xaf123456, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xff,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_class_f64_e64 0xaf123456, 0xaf123456 ; encoding: [0x7e,0x00,0xff,0xd4,0xff,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_eq_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x82,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_eq_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x82,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x82,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x82,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x82,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x82,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_eq_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x82,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_eq_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x82,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_eq_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x82,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x82,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x82,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x82,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x82,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x82,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_eq_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x82,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_eq_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x82,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_eq_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x82,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_eq_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x82,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x82,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_eq_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_eq_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x92,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_eq_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x92,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_eq_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x92,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_eq_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x92,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_eq_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x92,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x92,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_eq_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x92,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_eq_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x92,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_eq_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x92,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x92,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_eq_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x92,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_eq_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x92,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x92,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x92,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_eq_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x92,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_eq_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x92,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_eq_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x92,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_eq_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x92,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x92,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_eq_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xa2,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_eq_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa2,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xa2,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_eq_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa2,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_eq_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xa2,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_eq_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa2,0xd4,0x02,0x08,0x00,0x00] v_cmpx_eq_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xa2,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_eq_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa2,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_eq_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xa2,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_eq_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa2,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_eq_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xa2,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa2,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xa2,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_eq_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa2,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_eq_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xa2,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_eq_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa2,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_eq_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xa2,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_eq_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa2,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_eq_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xa2,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_eq_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa2,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_eq_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xa2,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_eq_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa2,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_eq_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xa2,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa2,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_eq_i16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_eq_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb2,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_i16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_eq_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb2,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_i16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb2,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_i16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb2,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_i16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb2,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_i16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb2,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_i16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_eq_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb2,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_i16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_eq_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb2,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_i16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_eq_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb2,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_i16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb2,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_i16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb2,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_i16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb2,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_i16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb2,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_eq_i16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb2,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_eq_i16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xb2,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb2,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_i32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_eq_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc2,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_i32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_eq_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc2,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_i32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_eq_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc2,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_i32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_eq_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc2,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_i32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_eq_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc2,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_i32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc2,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_i32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_eq_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc2,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_i32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_eq_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc2,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_i32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_eq_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc2,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_i32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_eq_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc2,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_i32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_eq_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc2,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_i32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc2,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_i32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_eq_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc2,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_eq_i32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_eq_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc2,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_eq_i32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xc2,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc2,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_i64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_eq_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd2,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_i64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_eq_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd2,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_eq_i64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_eq_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd2,0xd4,0x02,0x08,0x00,0x00] v_cmpx_eq_i64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_eq_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd2,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_eq_i64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_eq_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd2,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_eq_i64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd2,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_i64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_eq_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd2,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_eq_i64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_eq_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd2,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_eq_i64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_eq_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd2,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_eq_i64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_eq_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd2,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_eq_i64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_eq_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd2,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_eq_i64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xd2,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd2,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_u16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_eq_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xba,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_u16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_eq_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xba,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_u16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xba,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_u16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xba,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_u16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xba,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_u16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xba,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_u16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_eq_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xba,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_u16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_eq_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xba,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_u16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_eq_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xba,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_u16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xba,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_u16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xba,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_u16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xba,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_u16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xba,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_eq_u16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xba,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_eq_u16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xba,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xba,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_eq_u32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_eq_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xca,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_u32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_eq_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xca,0xd4,0xff,0xff,0x03,0x00] v_cmpx_eq_u32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_eq_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xca,0xd4,0x01,0x04,0x00,0x00] v_cmpx_eq_u32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_eq_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xca,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_eq_u32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_eq_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xca,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_eq_u32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xca,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_u32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_eq_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xca,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_eq_u32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_eq_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xca,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_eq_u32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_eq_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xca,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_eq_u32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_eq_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xca,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_eq_u32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_eq_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xca,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_eq_u32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xca,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_eq_u32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_eq_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xca,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_eq_u32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_eq_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xca,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_eq_u32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xca,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xca,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_u64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_eq_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xda,0xd4,0x01,0x05,0x02,0x00] v_cmpx_eq_u64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_eq_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xda,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_eq_u64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_eq_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xda,0xd4,0x02,0x08,0x00,0x00] v_cmpx_eq_u64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_eq_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xda,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_eq_u64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_eq_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xda,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_eq_u64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xda,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_eq_u64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_eq_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xda,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_eq_u64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_eq_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xda,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_eq_u64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_eq_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xda,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_eq_u64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_eq_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xda,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_eq_u64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_eq_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xda,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_eq_u64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xda,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xda,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ge_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x86,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ge_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x86,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x86,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x86,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x86,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x86,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ge_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x86,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ge_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x86,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ge_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x86,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x86,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x86,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x86,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x86,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x86,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_ge_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x86,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_ge_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x86,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_ge_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x86,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_ge_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x86,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x86,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_ge_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ge_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x96,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ge_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x96,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ge_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x96,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ge_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x96,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ge_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x96,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x96,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ge_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x96,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ge_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x96,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ge_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x96,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x96,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ge_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x96,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ge_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x96,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x96,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x96,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_ge_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x96,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_ge_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x96,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_ge_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x96,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_ge_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x96,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x96,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_ge_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xa6,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ge_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa6,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xa6,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_ge_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa6,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ge_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xa6,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_ge_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa6,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ge_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xa6,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_ge_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa6,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ge_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xa6,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_ge_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa6,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ge_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xa6,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa6,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xa6,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_ge_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa6,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_ge_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xa6,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_ge_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa6,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ge_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xa6,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_ge_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa6,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ge_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xa6,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_ge_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa6,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ge_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xa6,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_ge_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa6,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_ge_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xa6,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa6,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_ge_i16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ge_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb6,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_i16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ge_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb6,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_i16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb6,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_i16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb6,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_i16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb6,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_i16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb6,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_i16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ge_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb6,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_i16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ge_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb6,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_i16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ge_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb6,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_i16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb6,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_i16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb6,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_i16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb6,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_i16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb6,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ge_i16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb6,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ge_i16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xb6,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb6,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_i32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ge_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc6,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_i32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ge_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc6,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_i32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ge_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc6,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_i32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ge_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc6,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_i32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ge_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc6,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_i32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc6,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_i32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ge_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc6,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_i32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ge_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc6,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_i32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ge_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc6,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_i32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ge_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc6,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_i32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ge_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc6,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_i32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc6,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_i32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_ge_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc6,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ge_i32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_ge_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc6,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ge_i32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xc6,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc6,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_i64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ge_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd6,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_i64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_ge_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd6,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ge_i64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_ge_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd6,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ge_i64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_ge_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd6,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ge_i64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_ge_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd6,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ge_i64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd6,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_i64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_ge_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd6,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_ge_i64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_ge_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd6,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ge_i64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_ge_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd6,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ge_i64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_ge_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd6,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ge_i64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_ge_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd6,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_ge_i64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xd6,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd6,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_u16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ge_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xbe,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_u16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ge_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xbe,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_u16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xbe,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_u16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xbe,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_u16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xbe,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_u16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xbe,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_u16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ge_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xbe,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_u16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ge_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xbe,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_u16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ge_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xbe,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_u16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xbe,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_u16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xbe,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_u16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xbe,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_u16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xbe,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ge_u16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xbe,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ge_u16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xbe,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xbe,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ge_u32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ge_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xce,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_u32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ge_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xce,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ge_u32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ge_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xce,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ge_u32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ge_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xce,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ge_u32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ge_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xce,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ge_u32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xce,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_u32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ge_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xce,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ge_u32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ge_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xce,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ge_u32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ge_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xce,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ge_u32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ge_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xce,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ge_u32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ge_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xce,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ge_u32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xce,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ge_u32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_ge_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xce,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ge_u32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_ge_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xce,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ge_u32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xce,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xce,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_u64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ge_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xde,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ge_u64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_ge_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xde,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ge_u64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_ge_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xde,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ge_u64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_ge_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xde,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ge_u64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_ge_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xde,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ge_u64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xde,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ge_u64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_ge_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xde,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_ge_u64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_ge_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xde,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ge_u64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_ge_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xde,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ge_u64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_ge_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xde,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ge_u64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_ge_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xde,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_ge_u64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xde,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xde,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_gt_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x84,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_gt_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x84,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x84,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x84,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x84,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x84,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_gt_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x84,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_gt_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x84,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_gt_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x84,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x84,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x84,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x84,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x84,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x84,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_gt_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x84,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_gt_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x84,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_gt_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x84,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_gt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x84,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x84,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_gt_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_gt_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x94,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_gt_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x94,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_gt_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x94,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_gt_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x94,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_gt_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x94,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x94,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_gt_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x94,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_gt_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x94,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_gt_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x94,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x94,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_gt_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x94,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_gt_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x94,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x94,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x94,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_gt_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x94,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_gt_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x94,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_gt_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x94,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_gt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x94,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x94,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_gt_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xa4,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_gt_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa4,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xa4,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_gt_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa4,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_gt_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xa4,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_gt_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa4,0xd4,0x02,0x08,0x00,0x00] v_cmpx_gt_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xa4,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_gt_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa4,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_gt_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xa4,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_gt_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa4,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_gt_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xa4,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa4,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xa4,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_gt_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa4,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_gt_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xa4,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_gt_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa4,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_gt_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xa4,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_gt_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa4,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_gt_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xa4,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_gt_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa4,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_gt_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xa4,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_gt_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa4,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_gt_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xa4,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa4,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_gt_i16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_gt_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb4,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_i16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_gt_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb4,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_i16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb4,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_i16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb4,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_i16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb4,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_i16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb4,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_i16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_gt_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb4,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_i16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_gt_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb4,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_i16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_gt_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb4,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_i16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb4,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_i16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb4,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_i16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb4,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_i16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb4,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_gt_i16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb4,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_gt_i16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xb4,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb4,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_i32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_gt_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc4,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_i32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_gt_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc4,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_i32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_gt_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc4,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_i32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_gt_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc4,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_i32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_gt_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc4,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_i32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc4,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_i32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_gt_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc4,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_i32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_gt_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc4,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_i32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_gt_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc4,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_i32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_gt_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc4,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_i32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_gt_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc4,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_i32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc4,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_i32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_gt_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc4,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_gt_i32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_gt_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc4,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_gt_i32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xc4,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc4,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_i64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_gt_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd4,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_i64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_gt_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd4,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_gt_i64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_gt_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd4,0xd4,0x02,0x08,0x00,0x00] v_cmpx_gt_i64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_gt_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd4,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_gt_i64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_gt_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd4,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_gt_i64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd4,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_i64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_gt_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd4,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_gt_i64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_gt_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd4,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_gt_i64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_gt_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd4,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_gt_i64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_gt_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd4,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_gt_i64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_gt_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd4,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_gt_i64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xd4,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd4,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_u16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_gt_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xbc,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_u16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_gt_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xbc,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_u16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xbc,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_u16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xbc,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_u16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xbc,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_u16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xbc,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_u16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_gt_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xbc,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_u16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_gt_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xbc,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_u16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_gt_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xbc,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_u16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xbc,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_u16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xbc,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_u16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xbc,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_u16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xbc,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_gt_u16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xbc,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_gt_u16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xbc,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xbc,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_gt_u32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_gt_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xcc,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_u32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_gt_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xcc,0xd4,0xff,0xff,0x03,0x00] v_cmpx_gt_u32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_gt_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xcc,0xd4,0x01,0x04,0x00,0x00] v_cmpx_gt_u32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_gt_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xcc,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_gt_u32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_gt_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xcc,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_gt_u32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xcc,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_u32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_gt_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xcc,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_gt_u32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_gt_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xcc,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_gt_u32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_gt_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xcc,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_gt_u32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_gt_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xcc,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_gt_u32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_gt_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xcc,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_gt_u32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xcc,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_gt_u32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_gt_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xcc,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_gt_u32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_gt_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xcc,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_gt_u32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xcc,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xcc,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_u64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_gt_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xdc,0xd4,0x01,0x05,0x02,0x00] v_cmpx_gt_u64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_gt_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xdc,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_gt_u64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_gt_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xdc,0xd4,0x02,0x08,0x00,0x00] v_cmpx_gt_u64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_gt_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xdc,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_gt_u64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_gt_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xdc,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_gt_u64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xdc,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_gt_u64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_gt_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xdc,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_gt_u64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_gt_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xdc,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_gt_u64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_gt_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xdc,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_gt_u64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_gt_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xdc,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_gt_u64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_gt_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xdc,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_gt_u64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xdc,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xdc,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_le_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x83,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_le_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x83,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_le_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x83,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_le_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x83,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_le_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x83,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x83,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_le_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x83,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_le_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x83,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_le_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x83,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x83,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_le_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x83,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_le_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x83,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x83,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x83,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_le_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x83,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_le_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x83,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_le_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x83,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_le_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x83,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x83,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_le_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_le_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x93,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_le_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x93,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_le_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x93,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_le_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x93,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_le_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x93,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x93,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_le_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x93,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_le_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x93,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_le_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x93,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x93,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_le_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x93,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_le_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x93,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x93,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x93,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_le_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x93,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_le_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x93,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_le_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x93,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_le_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x93,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x93,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_le_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xa3,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_le_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa3,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xa3,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_le_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa3,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_le_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xa3,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_le_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa3,0xd4,0x02,0x08,0x00,0x00] v_cmpx_le_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xa3,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_le_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa3,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_le_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xa3,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_le_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa3,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_le_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xa3,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa3,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xa3,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_le_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa3,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_le_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xa3,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_le_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa3,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_le_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xa3,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_le_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa3,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_le_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xa3,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_le_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa3,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_le_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xa3,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_le_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa3,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_le_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xa3,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa3,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_le_i16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_le_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb3,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_i16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_le_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb3,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_i16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb3,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_i16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb3,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_i16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb3,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_i16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb3,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_i16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_le_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb3,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_i16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_le_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb3,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_i16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_le_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb3,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_i16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb3,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_i16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb3,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_i16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb3,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_i16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb3,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_le_i16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb3,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_le_i16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xb3,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb3,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_i32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_le_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc3,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_i32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_le_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc3,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_i32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_le_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc3,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_i32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_le_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc3,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_i32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_le_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc3,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_i32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc3,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_i32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_le_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc3,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_i32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_le_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc3,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_i32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_le_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc3,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_i32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_le_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc3,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_i32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_le_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc3,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_i32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc3,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_i32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_le_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc3,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_le_i32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_le_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc3,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_le_i32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xc3,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc3,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_i64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_le_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd3,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_i64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_le_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd3,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_le_i64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_le_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd3,0xd4,0x02,0x08,0x00,0x00] v_cmpx_le_i64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_le_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd3,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_le_i64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_le_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd3,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_le_i64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd3,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_i64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_le_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd3,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_le_i64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_le_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd3,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_le_i64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_le_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd3,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_le_i64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_le_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd3,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_le_i64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_le_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd3,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_le_i64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xd3,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd3,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_u16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_le_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xbb,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_u16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_le_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xbb,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_u16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xbb,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_u16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xbb,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_u16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xbb,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_u16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xbb,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_u16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_le_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xbb,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_u16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_le_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xbb,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_u16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_le_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xbb,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_u16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xbb,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_u16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xbb,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_u16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xbb,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_u16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xbb,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_le_u16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xbb,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_le_u16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xbb,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xbb,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_le_u32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_le_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xcb,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_u32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_le_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xcb,0xd4,0xff,0xff,0x03,0x00] v_cmpx_le_u32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_le_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xcb,0xd4,0x01,0x04,0x00,0x00] v_cmpx_le_u32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_le_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xcb,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_le_u32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_le_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xcb,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_le_u32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xcb,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_u32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_le_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xcb,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_le_u32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_le_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xcb,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_le_u32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_le_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xcb,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_le_u32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_le_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xcb,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_le_u32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_le_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xcb,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_le_u32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xcb,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_le_u32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_le_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xcb,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_le_u32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_le_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xcb,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_le_u32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xcb,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xcb,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_u64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_le_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xdb,0xd4,0x01,0x05,0x02,0x00] v_cmpx_le_u64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_le_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xdb,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_le_u64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_le_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xdb,0xd4,0x02,0x08,0x00,0x00] v_cmpx_le_u64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_le_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xdb,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_le_u64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_le_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xdb,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_le_u64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xdb,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_le_u64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_le_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xdb,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_le_u64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_le_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xdb,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_le_u64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_le_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xdb,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_le_u64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_le_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xdb,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_le_u64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_le_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xdb,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_le_u64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xdb,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xdb,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lg_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lg_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x85,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lg_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_lg_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x85,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lg_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x85,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lg_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x85,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lg_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x85,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lg_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x85,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lg_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_lg_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x85,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lg_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_lg_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x85,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lg_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_lg_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x85,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lg_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x85,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x85,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lg_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x85,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lg_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x85,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lg_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x85,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_lg_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x85,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_lg_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x85,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_lg_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x85,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_lg_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x85,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x85,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_lg_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lg_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x95,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lg_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_lg_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x95,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lg_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_lg_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x95,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lg_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_lg_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x95,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lg_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_lg_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x95,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lg_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lg_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x95,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lg_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_lg_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x95,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lg_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_lg_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x95,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lg_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_lg_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x95,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lg_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x95,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_lg_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x95,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lg_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_lg_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x95,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lg_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_lg_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x95,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lg_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x95,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_lg_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x95,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_lg_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x95,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_lg_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x95,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_lg_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x95,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lg_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x95,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_lg_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xa5,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lg_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa5,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lg_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xa5,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_lg_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa5,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_lg_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xa5,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_lg_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa5,0xd4,0x02,0x08,0x00,0x00] v_cmpx_lg_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xa5,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_lg_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa5,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_lg_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xa5,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_lg_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa5,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_lg_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xa5,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lg_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa5,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lg_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xa5,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_lg_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa5,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_lg_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xa5,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_lg_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa5,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_lg_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xa5,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_lg_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa5,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_lg_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xa5,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_lg_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa5,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_lg_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xa5,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_lg_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa5,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_lg_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xa5,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lg_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa5,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_lt_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lt_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x81,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_lt_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x81,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x81,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x81,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x81,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x81,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_lt_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x81,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_lt_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x81,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_lt_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x81,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x81,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x81,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x81,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x81,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x81,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_lt_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x81,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_lt_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x81,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_lt_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x81,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_lt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x81,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x81,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_lt_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lt_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x91,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_lt_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x91,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_lt_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x91,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_lt_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x91,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_lt_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x91,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x91,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_lt_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x91,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_lt_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x91,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_lt_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x91,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x91,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_lt_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x91,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_lt_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x91,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x91,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x91,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_lt_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x91,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_lt_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x91,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_lt_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x91,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_lt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x91,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x91,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_lt_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xa1,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lt_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa1,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xa1,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_lt_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa1,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_lt_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xa1,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_lt_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa1,0xd4,0x02,0x08,0x00,0x00] v_cmpx_lt_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xa1,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_lt_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa1,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_lt_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xa1,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_lt_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa1,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_lt_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xa1,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa1,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xa1,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_lt_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa1,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_lt_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xa1,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_lt_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa1,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_lt_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xa1,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_lt_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa1,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_lt_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xa1,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_lt_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa1,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_lt_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xa1,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_lt_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa1,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_lt_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xa1,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa1,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_lt_i16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lt_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb1,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_i16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_lt_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb1,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_i16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb1,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_i16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb1,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_i16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb1,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_i16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb1,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_i16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_lt_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb1,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_i16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_lt_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb1,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_i16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_lt_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb1,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_i16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb1,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_i16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb1,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_i16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb1,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_i16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb1,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_lt_i16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb1,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_lt_i16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xb1,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb1,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_i32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lt_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc1,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_i32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_lt_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc1,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_i32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_lt_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc1,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_i32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_lt_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc1,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_i32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_lt_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc1,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_i32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc1,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_i32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_lt_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc1,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_i32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_lt_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc1,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_i32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_lt_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc1,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_i32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_lt_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc1,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_i32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_lt_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc1,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_i32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc1,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_i32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_lt_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc1,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_lt_i32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_lt_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc1,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_lt_i32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xc1,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc1,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_i64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lt_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd1,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_i64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_lt_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd1,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_lt_i64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_lt_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd1,0xd4,0x02,0x08,0x00,0x00] v_cmpx_lt_i64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_lt_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd1,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_lt_i64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_lt_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd1,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_lt_i64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd1,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_i64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_lt_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd1,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_lt_i64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_lt_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd1,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_lt_i64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_lt_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd1,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_lt_i64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_lt_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd1,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_lt_i64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_lt_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd1,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_lt_i64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xd1,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd1,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_u16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lt_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb9,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_u16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_lt_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb9,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_u16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb9,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_u16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb9,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_u16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb9,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_u16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb9,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_u16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_lt_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb9,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_u16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_lt_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb9,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_u16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_lt_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb9,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_u16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb9,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_u16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb9,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_u16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb9,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_u16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb9,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_lt_u16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb9,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_lt_u16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xb9,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb9,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_lt_u32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lt_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc9,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_u32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_lt_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc9,0xd4,0xff,0xff,0x03,0x00] v_cmpx_lt_u32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_lt_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc9,0xd4,0x01,0x04,0x00,0x00] v_cmpx_lt_u32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_lt_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc9,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_lt_u32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_lt_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc9,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_lt_u32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc9,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_u32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_lt_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc9,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_lt_u32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_lt_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc9,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_lt_u32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_lt_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc9,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_lt_u32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_lt_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc9,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_lt_u32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_lt_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc9,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_lt_u32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc9,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_lt_u32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_lt_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc9,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_lt_u32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_lt_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc9,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_lt_u32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xc9,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc9,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_u64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_lt_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd9,0xd4,0x01,0x05,0x02,0x00] v_cmpx_lt_u64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_lt_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd9,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_lt_u64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_lt_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd9,0xd4,0x02,0x08,0x00,0x00] v_cmpx_lt_u64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_lt_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd9,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_lt_u64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_lt_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd9,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_lt_u64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd9,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_lt_u64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_lt_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd9,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_lt_u64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_lt_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd9,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_lt_u64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_lt_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd9,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_lt_u64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_lt_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xd9,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_lt_u64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_lt_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd9,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_lt_u64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xd9,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd9,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_i16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ne_i16_e64 v1, v2 ; encoding: [0x7e,0x00,0xb5,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_i16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ne_i16_e64 v255, v255 ; encoding: [0x7e,0x00,0xb5,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ne_i16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 s1, s2 ; encoding: [0x7e,0x00,0xb5,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ne_i16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 s105, s105 ; encoding: [0x7e,0x00,0xb5,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ne_i16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xb5,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ne_i16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xb5,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ne_i16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ne_i16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xb5,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ne_i16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ne_i16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xb5,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ne_i16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ne_i16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xb5,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ne_i16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xb5,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ne_i16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xb5,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ne_i16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xb5,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ne_i16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xb5,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ne_i16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xb5,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ne_i16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xb5,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xb5,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ne_i32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ne_i32_e64 v1, v2 ; encoding: [0x7e,0x00,0xc5,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_i32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ne_i32_e64 v255, v255 ; encoding: [0x7e,0x00,0xc5,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ne_i32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ne_i32_e64 s1, s2 ; encoding: [0x7e,0x00,0xc5,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ne_i32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ne_i32_e64 s105, s105 ; encoding: [0x7e,0x00,0xc5,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ne_i32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ne_i32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xc5,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ne_i32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_i32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xc5,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_i32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ne_i32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xc5,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ne_i32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ne_i32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xc5,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ne_i32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ne_i32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xc5,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ne_i32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ne_i32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xc5,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ne_i32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ne_i32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xc5,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ne_i32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_i32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xc5,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ne_i32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_ne_i32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xc5,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ne_i32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_ne_i32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xc5,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ne_i32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xc5,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_i32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xc5,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_i64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ne_i64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xd5,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_i64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_ne_i64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xd5,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ne_i64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_ne_i64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xd5,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ne_i64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_ne_i64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xd5,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ne_i64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_ne_i64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xd5,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ne_i64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_i64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xd5,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_i64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_ne_i64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xd5,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_ne_i64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_ne_i64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xd5,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ne_i64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_ne_i64_e64 -1, -1 ; encoding: [0x7e,0x00,0xd5,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ne_i64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_ne_i64_e64 0.5, null ; encoding: [0x7e,0x00,0xd5,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ne_i64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_ne_i64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xd5,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_ne_i64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xd5,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_i64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xd5,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_u16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ne_u16_e64 v1, v2 ; encoding: [0x7e,0x00,0xbd,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_u16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ne_u16_e64 v255, v255 ; encoding: [0x7e,0x00,0xbd,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ne_u16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 s1, s2 ; encoding: [0x7e,0x00,0xbd,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ne_u16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 s105, s105 ; encoding: [0x7e,0x00,0xbd,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ne_u16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xbd,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ne_u16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0xbd,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ne_u16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ne_u16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xbd,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ne_u16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ne_u16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xbd,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ne_u16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ne_u16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xbd,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ne_u16_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 exec_hi, null ; encoding: [0x7e,0x00,0xbd,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ne_u16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 null, exec_lo ; encoding: [0x7e,0x00,0xbd,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ne_u16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xbd,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ne_u16_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 0.5, m0 ; encoding: [0x7e,0x00,0xbd,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ne_u16_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xbd,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ne_u16_e64 0xfe0b, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xbd,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64 0xfe0b, vcc_hi ; encoding: [0x7e,0x00,0xbd,0xd4,0xff,0xd6,0x00,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ne_u32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ne_u32_e64 v1, v2 ; encoding: [0x7e,0x00,0xcd,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_u32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ne_u32_e64 v255, v255 ; encoding: [0x7e,0x00,0xcd,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ne_u32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ne_u32_e64 s1, s2 ; encoding: [0x7e,0x00,0xcd,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ne_u32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ne_u32_e64 s105, s105 ; encoding: [0x7e,0x00,0xcd,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ne_u32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ne_u32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0xcd,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ne_u32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_u32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0xcd,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_u32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ne_u32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0xcd,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ne_u32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ne_u32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0xcd,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ne_u32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ne_u32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0xcd,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ne_u32_e64 exec_hi, null -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ne_u32_e64 exec_hi, null ; encoding: [0x7e,0x00,0xcd,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ne_u32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ne_u32_e64 null, exec_lo ; encoding: [0x7e,0x00,0xcd,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ne_u32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_u32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0xcd,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ne_u32_e64 0.5, m0 -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0xf0,0xfa,0x00,0x00] +// GFX12: v_cmpx_ne_u32_e64 0.5, m0 ; encoding: [0x7e,0x00,0xcd,0xd4,0xf0,0xfa,0x00,0x00] v_cmpx_ne_u32_e64 src_scc, vcc_lo -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0xfd,0xd4,0x00,0x00] +// GFX12: v_cmpx_ne_u32_e64 src_scc, vcc_lo ; encoding: [0x7e,0x00,0xcd,0xd4,0xfd,0xd4,0x00,0x00] v_cmpx_ne_u32_e64 0xaf123456, vcc_hi -// GFX12: encoding: [0x7e,0x00,0xcd,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_u32_e64 0xaf123456, vcc_hi ; encoding: [0x7e,0x00,0xcd,0xd4,0xff,0xd6,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_u64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ne_u64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xdd,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ne_u64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_ne_u64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xdd,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ne_u64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_ne_u64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xdd,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ne_u64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_ne_u64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xdd,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ne_u64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_ne_u64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xdd,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ne_u64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_u64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xdd,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ne_u64_e64 exec, src_scc -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0x7e,0xfa,0x01,0x00] +// GFX12: v_cmpx_ne_u64_e64 exec, src_scc ; encoding: [0x7e,0x00,0xdd,0xd4,0x7e,0xfa,0x01,0x00] v_cmpx_ne_u64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_ne_u64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xdd,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ne_u64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_ne_u64_e64 -1, -1 ; encoding: [0x7e,0x00,0xdd,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ne_u64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_ne_u64_e64 0.5, null ; encoding: [0x7e,0x00,0xdd,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ne_u64_e64 src_scc, exec -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0xfd,0xfc,0x00,0x00] +// GFX12: v_cmpx_ne_u64_e64 src_scc, exec ; encoding: [0x7e,0x00,0xdd,0xd4,0xfd,0xfc,0x00,0x00] v_cmpx_ne_u64_e64 0xaf123456, vcc -// GFX12: encoding: [0x7e,0x00,0xdd,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_u64_e64 0xaf123456, vcc ; encoding: [0x7e,0x00,0xdd,0xd4,0xff,0xd4,0x00,0x00,0x56,0x34,0x12,0xaf] v_cmpx_neq_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_neq_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8d,0xd4,0x01,0x05,0x02,0x00] v_cmpx_neq_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_neq_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8d,0xd4,0xff,0xff,0x03,0x00] v_cmpx_neq_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8d,0xd4,0x01,0x04,0x00,0x00] v_cmpx_neq_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8d,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_neq_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8d,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_neq_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8d,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_neq_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_neq_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8d,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_neq_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_neq_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8d,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_neq_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_neq_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8d,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_neq_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x8d,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8d,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_neq_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8d,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_neq_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8d,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_neq_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x8d,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_neq_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8d,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_neq_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x8d,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_neq_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8d,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_neq_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x8d,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8d,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_neq_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_neq_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9d,0xd4,0x01,0x05,0x02,0x00] v_cmpx_neq_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_neq_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9d,0xd4,0xff,0xff,0x03,0x00] v_cmpx_neq_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_neq_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9d,0xd4,0x01,0x04,0x00,0x00] v_cmpx_neq_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_neq_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9d,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_neq_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_neq_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9d,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_neq_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_neq_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9d,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_neq_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_neq_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9d,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_neq_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_neq_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9d,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_neq_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_neq_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9d,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_neq_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x9d,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_neq_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9d,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_neq_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_neq_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9d,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_neq_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_neq_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9d,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_neq_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x9d,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_neq_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9d,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_neq_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x9d,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_neq_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9d,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_neq_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x9d,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_neq_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9d,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_neq_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xad,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_neq_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xad,0xd4,0x01,0x05,0x02,0x00] v_cmpx_neq_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xad,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_neq_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xad,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_neq_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xad,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_neq_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xad,0xd4,0x02,0x08,0x00,0x00] v_cmpx_neq_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xad,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_neq_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xad,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_neq_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xad,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_neq_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xad,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_neq_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xad,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_neq_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xad,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_neq_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xad,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_neq_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xad,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_neq_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xad,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_neq_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xad,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_neq_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xad,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_neq_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xad,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_neq_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xad,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_neq_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xad,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_neq_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xad,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_neq_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xad,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_neq_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xad,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_neq_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xad,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_nge_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nge_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x89,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nge_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_nge_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x89,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nge_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x89,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nge_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x89,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nge_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x89,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nge_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x89,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_nge_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_nge_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x89,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nge_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_nge_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x89,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nge_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_nge_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x89,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nge_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x89,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x89,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nge_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x89,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nge_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x89,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nge_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x89,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_nge_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x89,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nge_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x89,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_nge_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x89,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nge_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x89,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x89,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_nge_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nge_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x99,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nge_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_nge_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x99,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nge_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_nge_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x99,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nge_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_nge_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x99,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nge_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_nge_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x99,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nge_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nge_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x99,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nge_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_nge_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x99,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nge_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_nge_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x99,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nge_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_nge_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x99,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nge_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x99,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_nge_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x99,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nge_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_nge_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x99,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nge_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_nge_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x99,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nge_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x99,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_nge_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x99,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nge_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x99,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_nge_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x99,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nge_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x99,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nge_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x99,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_nge_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xa9,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nge_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa9,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nge_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xa9,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_nge_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa9,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_nge_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xa9,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_nge_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa9,0xd4,0x02,0x08,0x00,0x00] v_cmpx_nge_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xa9,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_nge_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa9,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_nge_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xa9,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_nge_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa9,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_nge_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xa9,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nge_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa9,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nge_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xa9,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_nge_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa9,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_nge_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xa9,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_nge_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa9,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_nge_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xa9,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_nge_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa9,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_nge_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xa9,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_nge_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa9,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_nge_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xa9,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_nge_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa9,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_nge_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xa9,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nge_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa9,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ngt_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8b,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ngt_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ngt_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8b,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ngt_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8b,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ngt_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8b,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ngt_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8b,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ngt_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8b,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_ngt_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ngt_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8b,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ngt_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ngt_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8b,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ngt_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ngt_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8b,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ngt_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x8b,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8b,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ngt_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8b,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ngt_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8b,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ngt_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x8b,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_ngt_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8b,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_ngt_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x8b,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_ngt_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8b,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_ngt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x8b,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8b,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_ngt_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ngt_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9b,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ngt_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_ngt_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9b,0xd4,0xff,0xff,0x03,0x00] v_cmpx_ngt_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_ngt_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9b,0xd4,0x01,0x04,0x00,0x00] v_cmpx_ngt_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_ngt_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9b,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_ngt_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_ngt_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9b,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_ngt_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ngt_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9b,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_ngt_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9b,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_ngt_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_ngt_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9b,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_ngt_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_ngt_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9b,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_ngt_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x9b,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_ngt_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9b,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_ngt_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_ngt_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9b,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_ngt_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_ngt_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9b,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_ngt_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x9b,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_ngt_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9b,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_ngt_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x9b,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_ngt_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9b,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_ngt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x9b,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ngt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9b,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xab,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_ngt_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xab,0xd4,0x01,0x05,0x02,0x00] v_cmpx_ngt_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xab,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_ngt_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xab,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_ngt_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xab,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_ngt_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xab,0xd4,0x02,0x08,0x00,0x00] v_cmpx_ngt_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xab,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_ngt_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xab,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_ngt_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xab,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_ngt_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xab,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_ngt_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xab,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ngt_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xab,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xab,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_ngt_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xab,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_ngt_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xab,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_ngt_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xab,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_ngt_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xab,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_ngt_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xab,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_ngt_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xab,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_ngt_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xab,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_ngt_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xab,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_ngt_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xab,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_ngt_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xab,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ngt_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xab,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_nle_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nle_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8c,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nle_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_nle_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8c,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nle_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8c,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nle_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8c,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nle_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8c,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nle_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8c,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_nle_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_nle_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8c,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nle_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_nle_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8c,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nle_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_nle_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8c,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nle_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x8c,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8c,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nle_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8c,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nle_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8c,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nle_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x8c,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_nle_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8c,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nle_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x8c,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_nle_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8c,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nle_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x8c,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8c,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_nle_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nle_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9c,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nle_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_nle_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9c,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nle_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_nle_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9c,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nle_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_nle_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9c,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nle_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_nle_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9c,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nle_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nle_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9c,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nle_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_nle_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9c,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nle_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_nle_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9c,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nle_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_nle_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9c,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nle_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x9c,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_nle_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9c,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nle_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_nle_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9c,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nle_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_nle_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9c,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nle_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x9c,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_nle_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9c,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nle_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x9c,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_nle_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9c,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nle_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x9c,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nle_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9c,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_nle_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xac,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nle_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xac,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nle_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xac,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_nle_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xac,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_nle_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xac,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_nle_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xac,0xd4,0x02,0x08,0x00,0x00] v_cmpx_nle_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xac,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_nle_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xac,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_nle_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xac,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_nle_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xac,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_nle_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xac,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nle_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xac,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nle_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xac,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_nle_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xac,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_nle_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xac,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_nle_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xac,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_nle_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xac,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_nle_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xac,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_nle_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xac,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_nle_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xac,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_nle_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xac,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_nle_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xac,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_nle_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xac,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nle_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xac,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nlg_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8a,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlg_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_nlg_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8a,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nlg_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8a,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nlg_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8a,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nlg_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8a,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nlg_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8a,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_nlg_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_nlg_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8a,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nlg_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_nlg_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8a,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nlg_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_nlg_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8a,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nlg_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x8a,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8a,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nlg_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8a,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nlg_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8a,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nlg_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x8a,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_nlg_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8a,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nlg_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x8a,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_nlg_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8a,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nlg_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x8a,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8a,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_nlg_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nlg_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9a,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlg_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_nlg_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9a,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nlg_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_nlg_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9a,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nlg_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_nlg_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9a,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nlg_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_nlg_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9a,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nlg_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlg_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9a,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_nlg_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9a,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nlg_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_nlg_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9a,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nlg_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_nlg_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9a,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nlg_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x9a,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_nlg_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9a,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nlg_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_nlg_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9a,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nlg_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlg_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9a,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nlg_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x9a,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_nlg_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9a,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nlg_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x9a,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_nlg_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9a,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nlg_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x9a,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlg_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9a,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xaa,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nlg_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xaa,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlg_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xaa,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_nlg_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xaa,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_nlg_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xaa,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_nlg_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xaa,0xd4,0x02,0x08,0x00,0x00] v_cmpx_nlg_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xaa,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_nlg_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xaa,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_nlg_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xaa,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_nlg_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xaa,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_nlg_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xaa,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlg_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xaa,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xaa,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_nlg_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xaa,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_nlg_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xaa,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_nlg_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xaa,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_nlg_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xaa,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_nlg_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xaa,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_nlg_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xaa,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_nlg_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xaa,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_nlg_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xaa,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_nlg_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xaa,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_nlg_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xaa,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlg_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xaa,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nlt_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x8e,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlt_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_nlt_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x8e,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nlt_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x8e,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nlt_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x8e,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nlt_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x8e,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nlt_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x8e,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_nlt_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_nlt_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x8e,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nlt_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_nlt_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x8e,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nlt_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_nlt_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x8e,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nlt_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x8e,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x8e,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nlt_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x8e,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nlt_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x8e,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nlt_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x8e,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_nlt_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x8e,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nlt_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x8e,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_nlt_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x8e,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nlt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x8e,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x8e,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_nlt_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nlt_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x9e,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlt_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_nlt_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x9e,0xd4,0xff,0xff,0x03,0x00] v_cmpx_nlt_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_nlt_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x9e,0xd4,0x01,0x04,0x00,0x00] v_cmpx_nlt_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_nlt_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x9e,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_nlt_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_nlt_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x9e,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_nlt_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlt_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x9e,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_nlt_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x9e,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_nlt_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_nlt_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x9e,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_nlt_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_nlt_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x9e,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_nlt_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x9e,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_nlt_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x9e,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_nlt_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_nlt_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x9e,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_nlt_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlt_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x9e,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_nlt_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x9e,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_nlt_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x9e,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_nlt_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x9e,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_nlt_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x9e,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_nlt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x9e,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlt_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x9e,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xae,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_nlt_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xae,0xd4,0x01,0x05,0x02,0x00] v_cmpx_nlt_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xae,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_nlt_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xae,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_nlt_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xae,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_nlt_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xae,0xd4,0x02,0x08,0x00,0x00] v_cmpx_nlt_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xae,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_nlt_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xae,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_nlt_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xae,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_nlt_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xae,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_nlt_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xae,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlt_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xae,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xae,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_nlt_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xae,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_nlt_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xae,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_nlt_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xae,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_nlt_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xae,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_nlt_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xae,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_nlt_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xae,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_nlt_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xae,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_nlt_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xae,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_nlt_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xae,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_nlt_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xae,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlt_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xae,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_o_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_o_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x87,0xd4,0x01,0x05,0x02,0x00] v_cmpx_o_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_o_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x87,0xd4,0xff,0xff,0x03,0x00] v_cmpx_o_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_o_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x87,0xd4,0x01,0x04,0x00,0x00] v_cmpx_o_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_o_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x87,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_o_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_o_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x87,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_o_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_o_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x87,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_o_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_o_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x87,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_o_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_o_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x87,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_o_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_o_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x87,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_o_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x87,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_o_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x87,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_o_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_o_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x87,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_o_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_o_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x87,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_o_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x87,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_o_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x87,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_o_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x87,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_o_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x87,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_o_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x87,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_o_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x87,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_o_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_o_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x97,0xd4,0x01,0x05,0x02,0x00] v_cmpx_o_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_o_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x97,0xd4,0xff,0xff,0x03,0x00] v_cmpx_o_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_o_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x97,0xd4,0x01,0x04,0x00,0x00] v_cmpx_o_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_o_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x97,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_o_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_o_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x97,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_o_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_o_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x97,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_o_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_o_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x97,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_o_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_o_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x97,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_o_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_o_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x97,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_o_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x97,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_o_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x97,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_o_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_o_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x97,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_o_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_o_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x97,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_o_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x97,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_o_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x97,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_o_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x97,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_o_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x97,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_o_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x97,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_o_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x97,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_o_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xa7,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_o_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa7,0xd4,0x01,0x05,0x02,0x00] v_cmpx_o_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xa7,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_o_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa7,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_o_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xa7,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_o_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa7,0xd4,0x02,0x08,0x00,0x00] v_cmpx_o_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xa7,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_o_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa7,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_o_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xa7,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_o_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa7,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_o_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xa7,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_o_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa7,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_o_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xa7,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_o_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa7,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_o_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xa7,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_o_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa7,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_o_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xa7,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_o_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa7,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_o_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xa7,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_o_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa7,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_o_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xa7,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_o_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa7,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_o_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xa7,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_o_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa7,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] v_cmpx_u_f16_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_u_f16_e64 v1, v2 ; encoding: [0x7e,0x00,0x88,0xd4,0x01,0x05,0x02,0x00] v_cmpx_u_f16_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_u_f16_e64 v255, v255 ; encoding: [0x7e,0x00,0x88,0xd4,0xff,0xff,0x03,0x00] v_cmpx_u_f16_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_u_f16_e64 s1, s2 ; encoding: [0x7e,0x00,0x88,0xd4,0x01,0x04,0x00,0x00] v_cmpx_u_f16_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_u_f16_e64 s105, s105 ; encoding: [0x7e,0x00,0x88,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_u_f16_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_u_f16_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x88,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_u_f16_e64 vcc_hi, 0xfe0b -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_u_f16_e64 vcc_hi, 0xfe0b ; encoding: [0x7e,0x00,0x88,0xd4,0x6b,0xfe,0x01,0x00,0x0b,0xfe,0x00,0x00] v_cmpx_u_f16_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_u_f16_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x88,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_u_f16_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_u_f16_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x88,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_u_f16_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_u_f16_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x88,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_u_f16_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x88,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_u_f16_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x88,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_u_f16_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_u_f16_e64 null, exec_lo ; encoding: [0x7e,0x00,0x88,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_u_f16_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_u_f16_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x88,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_u_f16_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x88,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_u_f16_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x88,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_u_f16_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x88,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_u_f16_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x88,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_u_f16_e64 -|0xfe0b|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x88,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_u_f16_e64 -|0xfe0b|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x88,0xd4,0xff,0xd6,0x00,0x60,0x0b,0xfe,0x00,0x00] v_cmpx_u_f32_e64 v1, v2 -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_u_f32_e64 v1, v2 ; encoding: [0x7e,0x00,0x98,0xd4,0x01,0x05,0x02,0x00] v_cmpx_u_f32_e64 v255, v255 -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0xff,0xff,0x03,0x00] +// GFX12: v_cmpx_u_f32_e64 v255, v255 ; encoding: [0x7e,0x00,0x98,0xd4,0xff,0xff,0x03,0x00] v_cmpx_u_f32_e64 s1, s2 -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0x01,0x04,0x00,0x00] +// GFX12: v_cmpx_u_f32_e64 s1, s2 ; encoding: [0x7e,0x00,0x98,0xd4,0x01,0x04,0x00,0x00] v_cmpx_u_f32_e64 s105, s105 -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0x69,0xd2,0x00,0x00] +// GFX12: v_cmpx_u_f32_e64 s105, s105 ; encoding: [0x7e,0x00,0x98,0xd4,0x69,0xd2,0x00,0x00] v_cmpx_u_f32_e64 vcc_lo, ttmp15 -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0x6a,0xf6,0x00,0x00] +// GFX12: v_cmpx_u_f32_e64 vcc_lo, ttmp15 ; encoding: [0x7e,0x00,0x98,0xd4,0x6a,0xf6,0x00,0x00] v_cmpx_u_f32_e64 vcc_hi, 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_u_f32_e64 vcc_hi, 0xaf123456 ; encoding: [0x7e,0x00,0x98,0xd4,0x6b,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_u_f32_e64 ttmp15, src_scc -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0x7b,0xfa,0x01,0x00] +// GFX12: v_cmpx_u_f32_e64 ttmp15, src_scc ; encoding: [0x7e,0x00,0x98,0xd4,0x7b,0xfa,0x01,0x00] v_cmpx_u_f32_e64 m0, 0.5 -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0x7d,0xe0,0x01,0x00] +// GFX12: v_cmpx_u_f32_e64 m0, 0.5 ; encoding: [0x7e,0x00,0x98,0xd4,0x7d,0xe0,0x01,0x00] v_cmpx_u_f32_e64 exec_lo, -1 -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0x7e,0x82,0x01,0x00] +// GFX12: v_cmpx_u_f32_e64 exec_lo, -1 ; encoding: [0x7e,0x00,0x98,0xd4,0x7e,0x82,0x01,0x00] v_cmpx_u_f32_e64 |exec_hi|, null -// GFX12: encoding: [0x7e,0x01,0x98,0xd4,0x7f,0xf8,0x00,0x00] +// GFX12: v_cmpx_u_f32_e64 |exec_hi|, null ; encoding: [0x7e,0x01,0x98,0xd4,0x7f,0xf8,0x00,0x00] v_cmpx_u_f32_e64 null, exec_lo -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0x7c,0xfc,0x00,0x00] +// GFX12: v_cmpx_u_f32_e64 null, exec_lo ; encoding: [0x7e,0x00,0x98,0xd4,0x7c,0xfc,0x00,0x00] v_cmpx_u_f32_e64 -1, exec_hi -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0xc1,0xfe,0x00,0x00] +// GFX12: v_cmpx_u_f32_e64 -1, exec_hi ; encoding: [0x7e,0x00,0x98,0xd4,0xc1,0xfe,0x00,0x00] v_cmpx_u_f32_e64 0.5, -m0 -// GFX12: encoding: [0x7e,0x00,0x98,0xd4,0xf0,0xfa,0x00,0x40] +// GFX12: v_cmpx_u_f32_e64 0.5, -m0 ; encoding: [0x7e,0x00,0x98,0xd4,0xf0,0xfa,0x00,0x40] v_cmpx_u_f32_e64 -src_scc, |vcc_lo| -// GFX12: encoding: [0x7e,0x02,0x98,0xd4,0xfd,0xd4,0x00,0x20] +// GFX12: v_cmpx_u_f32_e64 -src_scc, |vcc_lo| ; encoding: [0x7e,0x02,0x98,0xd4,0xfd,0xd4,0x00,0x20] v_cmpx_u_f32_e64 -|0xaf123456|, -|vcc_hi| clamp -// GFX12: encoding: [0x7e,0x83,0x98,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_u_f32_e64 -|0xaf123456|, -|vcc_hi| clamp ; encoding: [0x7e,0x83,0x98,0xd4,0xff,0xd6,0x00,0x60,0x56,0x34,0x12,0xaf] v_cmpx_u_f64_e64 v[1:2], v[2:3] -// GFX12: encoding: [0x7e,0x00,0xa8,0xd4,0x01,0x05,0x02,0x00] +// GFX12: v_cmpx_u_f64_e64 v[1:2], v[2:3] ; encoding: [0x7e,0x00,0xa8,0xd4,0x01,0x05,0x02,0x00] v_cmpx_u_f64_e64 v[254:255], v[254:255] -// GFX12: encoding: [0x7e,0x00,0xa8,0xd4,0xfe,0xfd,0x03,0x00] +// GFX12: v_cmpx_u_f64_e64 v[254:255], v[254:255] ; encoding: [0x7e,0x00,0xa8,0xd4,0xfe,0xfd,0x03,0x00] v_cmpx_u_f64_e64 s[2:3], s[4:5] -// GFX12: encoding: [0x7e,0x00,0xa8,0xd4,0x02,0x08,0x00,0x00] +// GFX12: v_cmpx_u_f64_e64 s[2:3], s[4:5] ; encoding: [0x7e,0x00,0xa8,0xd4,0x02,0x08,0x00,0x00] v_cmpx_u_f64_e64 s[104:105], s[104:105] -// GFX12: encoding: [0x7e,0x00,0xa8,0xd4,0x68,0xd0,0x00,0x00] +// GFX12: v_cmpx_u_f64_e64 s[104:105], s[104:105] ; encoding: [0x7e,0x00,0xa8,0xd4,0x68,0xd0,0x00,0x00] v_cmpx_u_f64_e64 vcc, ttmp[14:15] -// GFX12: encoding: [0x7e,0x00,0xa8,0xd4,0x6a,0xf4,0x00,0x00] +// GFX12: v_cmpx_u_f64_e64 vcc, ttmp[14:15] ; encoding: [0x7e,0x00,0xa8,0xd4,0x6a,0xf4,0x00,0x00] v_cmpx_u_f64_e64 ttmp[14:15], 0xaf123456 -// GFX12: encoding: [0x7e,0x00,0xa8,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_u_f64_e64 ttmp[14:15], 0xaf123456 ; encoding: [0x7e,0x00,0xa8,0xd4,0x7a,0xfe,0x01,0x00,0x56,0x34,0x12,0xaf] v_cmpx_u_f64_e64 -|exec|, src_scc -// GFX12: encoding: [0x7e,0x01,0xa8,0xd4,0x7e,0xfa,0x01,0x20] +// GFX12: v_cmpx_u_f64_e64 -|exec|, src_scc ; encoding: [0x7e,0x01,0xa8,0xd4,0x7e,0xfa,0x01,0x20] v_cmpx_u_f64_e64 null, 0.5 -// GFX12: encoding: [0x7e,0x00,0xa8,0xd4,0x7c,0xe0,0x01,0x00] +// GFX12: v_cmpx_u_f64_e64 null, 0.5 ; encoding: [0x7e,0x00,0xa8,0xd4,0x7c,0xe0,0x01,0x00] v_cmpx_u_f64_e64 -1, -1 -// GFX12: encoding: [0x7e,0x00,0xa8,0xd4,0xc1,0x82,0x01,0x00] +// GFX12: v_cmpx_u_f64_e64 -1, -1 ; encoding: [0x7e,0x00,0xa8,0xd4,0xc1,0x82,0x01,0x00] v_cmpx_u_f64_e64 0.5, null -// GFX12: encoding: [0x7e,0x00,0xa8,0xd4,0xf0,0xf8,0x00,0x00] +// GFX12: v_cmpx_u_f64_e64 0.5, null ; encoding: [0x7e,0x00,0xa8,0xd4,0xf0,0xf8,0x00,0x00] v_cmpx_u_f64_e64 -|src_scc|, -|exec| -// GFX12: encoding: [0x7e,0x03,0xa8,0xd4,0xfd,0xfc,0x00,0x60] +// GFX12: v_cmpx_u_f64_e64 -|src_scc|, -|exec| ; encoding: [0x7e,0x03,0xa8,0xd4,0xfd,0xfc,0x00,0x60] v_cmpx_u_f64_e64 0xaf123456, -|vcc| clamp -// GFX12: encoding: [0x7e,0x82,0xa8,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_u_f64_e64 0xaf123456, -|vcc| clamp ; encoding: [0x7e,0x82,0xa8,0xd4,0xff,0xd4,0x00,0x40,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s index bb092927ac9b6..57f89d3e31e7c 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp16.s @@ -1,2594 +1,2595 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s v_cmpx_class_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_class_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_class_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_class_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_class_f16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_class_f16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xfd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_class_f16_e64_dpp -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x01,0xfd,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_class_f16_e64_dpp -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x01,0xfd,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_class_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_class_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_class_f32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_class_f32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xfe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_class_f32_e64_dpp -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x01,0xfe,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_class_f32_e64_dpp -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x01,0xfe,0xd4,0xfa,0xfe,0x03,0x20,0xff,0x6f,0x05,0x30] v_cmpx_eq_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x82,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x82,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x82,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_eq_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x82,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x82,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_eq_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x82,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x82,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_eq_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x92,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x92,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x92,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_eq_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x92,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x92,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_eq_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x92,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x92,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_eq_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_eq_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_eq_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_eq_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_eq_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_eq_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_eq_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_eq_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_eq_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xba,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xba,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_eq_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_eq_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_eq_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_eq_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xca,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xca,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ge_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x86,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x86,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x86,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_ge_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x86,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x86,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_ge_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x86,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x86,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_ge_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x96,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x96,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x96,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_ge_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x96,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x96,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_ge_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x96,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x96,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_ge_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ge_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ge_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ge_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ge_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ge_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ge_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ge_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ge_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ge_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ge_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ge_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ge_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xce,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xce,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_gt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x84,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x84,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x84,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_gt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x84,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x84,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_gt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x84,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x84,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_gt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x94,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x94,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x94,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_gt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x94,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x94,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_gt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x94,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x94,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_gt_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_gt_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_gt_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_gt_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_gt_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_gt_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_gt_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_gt_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_gt_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_gt_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_gt_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_gt_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_gt_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_le_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x83,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x83,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x83,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_le_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x83,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x83,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_le_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x83,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x83,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_le_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x93,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x93,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x93,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_le_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x93,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x93,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_le_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x93,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x93,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_le_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_le_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_le_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_le_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_le_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_le_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_le_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_le_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_le_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_le_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_le_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_le_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_le_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_le_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_lg_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lg_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lg_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lg_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x85,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lg_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x85,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lg_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x85,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_lg_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x85,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lg_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x85,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_lg_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x85,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lg_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x85,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_lg_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lg_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lg_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lg_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x95,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lg_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x95,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lg_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x95,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_lg_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x95,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lg_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x95,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_lg_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x95,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lg_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x95,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_lt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x81,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x81,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x81,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_lt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x81,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x81,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_lt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x81,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x81,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_lt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x91,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x91,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x91,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_lt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x91,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x91,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_lt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x91,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x91,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_lt_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_lt_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_lt_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_lt_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_lt_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_lt_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_lt_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_lt_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_lt_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_lt_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_lt_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_lt_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_lt_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ne_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ne_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ne_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ne_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ne_i16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ne_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ne_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ne_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ne_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ne_i32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ne_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ne_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ne_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ne_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ne_u16_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_ne_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, 10 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x14,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ne_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x5f,0x01,0x01] v_cmpx_ne_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0x04,0x02,0x00,0x01,0x60,0x09,0x13] v_cmpx_ne_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ne_u32_e64_dpp v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xfa,0xfe,0x03,0x00,0xff,0x6f,0x05,0x30] v_cmpx_neq_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_neq_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_neq_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_neq_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_neq_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x8d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_neq_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_neq_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x8d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_neq_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_neq_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x8d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_neq_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_neq_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_neq_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_neq_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_neq_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9d,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_neq_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x9d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_neq_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9d,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_neq_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x9d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_neq_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9d,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_neq_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x9d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_neq_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9d,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nge_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nge_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nge_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nge_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x89,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nge_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x89,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nge_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x89,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nge_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x89,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nge_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x89,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nge_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x89,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_nge_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x89,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nge_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nge_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nge_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nge_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x99,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nge_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x99,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nge_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x99,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nge_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x99,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nge_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x99,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nge_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x99,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_nge_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x99,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_ngt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ngt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ngt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x8b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ngt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_ngt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x8b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ngt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_ngt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x8b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ngt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_ngt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_ngt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9b,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_ngt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x9b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ngt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9b,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_ngt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x9b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ngt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9b,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_ngt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x9b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ngt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9b,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nle_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nle_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nle_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nle_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nle_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x8c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nle_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nle_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x8c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nle_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nle_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x8c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_nle_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nle_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nle_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nle_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nle_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9c,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nle_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x9c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nle_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9c,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nle_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x9c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nle_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9c,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nle_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x9c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_nle_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9c,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nlg_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nlg_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nlg_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x8a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nlg_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nlg_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x8a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nlg_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nlg_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x8a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_nlg_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nlg_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nlg_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9a,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nlg_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x9a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nlg_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9a,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nlg_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x9a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nlg_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9a,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nlg_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x9a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_nlg_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9a,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nlt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nlt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x8e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nlt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x8e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nlt_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x8e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nlt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x8e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nlt_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x8e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nlt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x8e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_nlt_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x8e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_nlt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_nlt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x9e,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_nlt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x9e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nlt_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x9e,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_nlt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x9e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nlt_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x9e,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_nlt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x9e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_nlt_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x9e,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_o_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_o_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_o_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_o_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_o_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x87,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_o_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x87,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_o_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x87,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_o_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x87,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_o_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x87,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_o_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x87,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_o_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x87,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_o_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_o_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_o_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_o_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_o_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x97,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_o_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x97,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_o_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x97,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_o_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x97,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_o_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x97,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_o_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x97,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_o_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x97,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_u_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_u_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_u_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_u_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_u_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x88,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_u_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x88,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_u_f16_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x88,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_u_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x88,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_u_f16_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x88,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_u_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x88,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_u_f16_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x88,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] v_cmpx_u_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1b,0x00,0xff] v_cmpx_u_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, s2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x00,0x00,0x01,0x1b,0x00,0xff] v_cmpx_u_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, 2.0 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0xe8,0x01,0x00,0x01,0x1b,0x00,0xff] v_cmpx_u_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0xe4,0x00,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_mirror -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x40,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_half_mirror -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x41,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_shl:1 -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x01,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_shl:15 -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x0f,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_shr:1 -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x11,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_shr:15 -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x1f,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_ror:1 -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x21,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_ror:15 -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x2f,0x01,0xff] v_cmpx_u_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0x7e,0x00,0x98,0xd4,0xfa,0x04,0x02,0x00,0x01,0x50,0x01,0xff] v_cmpx_u_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: [0x7e,0x01,0x98,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_u_f32_e64_dpp |v1|, -v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0x7e,0x01,0x98,0xd4,0xfa,0x04,0x02,0x40,0x01,0x5f,0x01,0x01] v_cmpx_u_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: [0x7e,0x02,0x98,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_u_f32_e64_dpp -v1, |v2| row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0x7e,0x02,0x98,0xd4,0xfa,0x04,0x02,0x20,0x01,0x60,0x09,0x13] v_cmpx_u_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: [0x7e,0x83,0x98,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_u_f32_e64_dpp -|v255|, -|v255| clamp row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0x7e,0x83,0x98,0xd4,0xfa,0xfe,0x03,0x60,0xff,0x6f,0x05,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s b/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s index 8bfd9dce48a5b..d69a17e76d555 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vop3cx_dpp8.s @@ -1,896 +1,897 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s v_cmpx_class_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xfd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xfd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xfd,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f16_e64_dpp v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xfd,0xd4,0xea,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f16_e64_dpp v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xfd,0xd4,0xea,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f16_e64_dpp -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x01,0xfd,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_class_f16_e64_dpp -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x01,0xfd,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xfe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xfe,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xfe,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f32_e64_dpp v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xfe,0xd4,0xea,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f32_e64_dpp v1, 2.0 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xfe,0xd4,0xea,0xe8,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_class_f32_e64_dpp -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x01,0xfe,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_class_f32_e64_dpp -|v255|, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x01,0xfe,0xd4,0xe9,0xfe,0x03,0x20,0xff,0x00,0x00,0x00] v_cmpx_eq_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x82,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x82,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x82,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x82,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_eq_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x82,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x82,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_eq_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x82,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x82,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_eq_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x82,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x82,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_eq_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x82,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x82,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_eq_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x92,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x92,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x92,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x92,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_eq_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x92,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x92,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_eq_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x92,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x92,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_eq_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x92,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x92,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_eq_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x92,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x92,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_eq_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xb2,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb2,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb2,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xb2,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb2,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_eq_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xc2,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc2,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc2,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xc2,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc2,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_eq_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xba,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xba,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xba,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xba,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xba,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xba,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xba,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xba,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xba,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xba,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_eq_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xca,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xca,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xca,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xca,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xca,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xca,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xca,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xca,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_eq_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xca,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xca,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ge_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x86,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x86,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x86,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x86,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_ge_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x86,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x86,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_ge_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x86,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x86,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_ge_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x86,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x86,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_ge_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x86,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x86,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_ge_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x96,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x96,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x96,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x96,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_ge_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x96,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x96,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_ge_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x96,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x96,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_ge_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x96,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x96,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_ge_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x96,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x96,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_ge_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xb6,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb6,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb6,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xb6,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb6,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ge_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xc6,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc6,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc6,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xc6,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc6,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ge_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xbe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xbe,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbe,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xbe,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xbe,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ge_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xce,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xce,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xce,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xce,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xce,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xce,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xce,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xce,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_ge_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xce,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xce,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_gt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x84,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x84,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x84,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x84,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_gt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x84,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x84,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_gt_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x84,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x84,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_gt_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x84,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x84,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_gt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x84,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x84,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_gt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x94,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x94,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x94,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x94,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_gt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x94,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x94,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_gt_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x94,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x94,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_gt_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x94,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x94,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_gt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x94,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x94,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_gt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xb4,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb4,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb4,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xb4,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb4,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_gt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xc4,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc4,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc4,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xc4,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc4,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_gt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xbc,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xbc,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbc,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xbc,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xbc,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_gt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xcc,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xcc,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcc,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_gt_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xcc,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xcc,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_le_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x83,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x83,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x83,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x83,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_le_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x83,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x83,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_le_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x83,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x83,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_le_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x83,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x83,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_le_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x83,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_le_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x83,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_le_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x93,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x93,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x93,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x93,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_le_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x93,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x93,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_le_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x93,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x93,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_le_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x93,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x93,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_le_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x93,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_le_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x93,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_le_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xb3,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb3,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb3,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xb3,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_le_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb3,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_le_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xc3,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc3,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc3,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xc3,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_le_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc3,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_le_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xbb,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xbb,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbb,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xbb,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_le_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xbb,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_le_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xcb,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xcb,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcb,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_le_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xcb,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_le_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xcb,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_lg_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x85,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x85,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lg_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x85,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x85,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_lg_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x85,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x85,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_lg_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x85,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x85,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_lg_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x85,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x85,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_lg_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x85,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x85,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_lg_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x95,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x95,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lg_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x95,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x95,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_lg_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x95,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x95,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_lg_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x95,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x95,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_lg_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x95,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x95,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_lg_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x95,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lg_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x95,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_lt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x81,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x81,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x81,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x81,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_lt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x81,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x81,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_lt_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x81,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x81,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_lt_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x81,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x81,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_lt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x81,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x81,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_lt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x91,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x91,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x91,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x91,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_lt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x91,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x91,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_lt_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x91,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x91,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_lt_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x91,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x91,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_lt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x91,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x91,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_lt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xb1,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb1,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb1,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xb1,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb1,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_lt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xc1,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc1,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc1,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xc1,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc1,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_lt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xb9,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb9,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb9,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xb9,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb9,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_lt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xc9,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc9,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc9,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_lt_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xc9,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc9,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ne_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xb5,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xb5,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xb5,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xb5,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xb5,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ne_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xc5,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xc5,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xc5,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xc5,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ne_i32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xc5,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ne_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xbd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xbd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u16_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xbd,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xbd,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xbd,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_ne_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0xcd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0xcd,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xea,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, s2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xea,0x04,0x00,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u32_e64_dpp v1, 10 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x00,0xcd,0xd4,0xea,0x14,0x01,0x00,0x01,0x77,0x39,0x05] v_cmpx_ne_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x00,0xcd,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ne_u32_e64_dpp v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x00,0xcd,0xd4,0xe9,0xfe,0x03,0x00,0xff,0x00,0x00,0x00] v_cmpx_neq_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x8d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_neq_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x8d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_neq_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_neq_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8d,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8d,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_neq_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8d,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8d,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_neq_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x8d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_neq_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x9d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9d,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_neq_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x9d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9d,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_neq_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9d,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_neq_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9d,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9d,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_neq_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9d,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9d,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_neq_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x9d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_neq_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9d,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nge_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x89,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x89,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nge_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x89,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x89,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nge_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x89,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x89,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nge_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x89,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x89,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_nge_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x89,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x89,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_nge_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x89,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x89,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nge_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x99,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x99,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nge_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x99,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x99,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nge_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x99,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x99,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nge_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x99,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x99,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_nge_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x99,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x99,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_nge_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x99,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nge_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x99,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_ngt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x8b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x8b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8b,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8b,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8b,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8b,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x8b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_ngt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x9b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9b,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x9b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9b,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9b,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9b,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9b,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9b,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9b,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x9b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ngt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9b,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nle_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x8c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nle_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x8c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nle_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nle_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8c,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8c,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_nle_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8c,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8c,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_nle_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x8c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nle_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x9c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9c,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nle_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x9c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9c,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nle_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9c,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nle_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9c,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9c,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_nle_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9c,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9c,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_nle_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x9c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nle_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9c,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nlg_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x8a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x8a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8a,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8a,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8a,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8a,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x8a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nlg_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x9a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9a,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x9a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9a,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9a,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9a,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9a,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9a,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9a,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x9a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nlg_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9a,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nlt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x8e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x8e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x8e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x8e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8e,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8e,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x8e,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x8e,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x8e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x8e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_nlt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x9e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x9e,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x9e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x9e,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9e,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9e,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9e,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x9e,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x9e,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x9e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nlt_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x9e,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_o_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x87,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x87,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_o_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x87,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x87,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_o_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x87,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x87,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_o_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x87,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x87,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_o_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x87,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x87,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_o_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x87,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_o_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x87,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_o_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x97,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x97,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_o_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x97,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x97,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_o_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x97,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x97,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_o_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x97,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x97,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_o_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x97,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x97,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_o_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x97,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_o_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x97,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_u_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x88,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f16_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x88,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_u_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x88,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f16_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x88,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_u_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x88,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f16_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x88,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_u_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x88,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f16_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x88,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_u_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x88,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f16_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x88,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_u_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x88,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_u_f16_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x88,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] v_cmpx_u_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x00,0x98,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f32_e64_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x00,0x98,0xd4,0xe9,0x04,0x02,0x00,0x01,0x77,0x39,0x05] v_cmpx_u_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: [0x7e,0x01,0x98,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f32_e64_dpp |v1|, -v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0x7e,0x01,0x98,0xd4,0xe9,0x04,0x02,0x40,0x01,0x77,0x39,0x05] v_cmpx_u_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x98,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f32_e64_dpp -v1, |v2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x98,0xd4,0xea,0x04,0x02,0x20,0x01,0x77,0x39,0x05] v_cmpx_u_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x98,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f32_e64_dpp -v1, |s2| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x98,0xd4,0xea,0x04,0x00,0x20,0x01,0x77,0x39,0x05] v_cmpx_u_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: [0x7e,0x02,0x98,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f32_e64_dpp -v1, |2.0| dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0x7e,0x02,0x98,0xd4,0xea,0xe8,0x01,0x20,0x01,0x77,0x39,0x05] v_cmpx_u_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: [0x7e,0x83,0x98,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_u_f32_e64_dpp -|v255|, -|v255| clamp dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0x7e,0x83,0x98,0xd4,0xe9,0xfe,0x03,0x60,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vopc.s b/llvm/test/MC/AMDGPU/gfx12_asm_vopc.s index 4ae4f74ad2196..1987f5a5fa2fc 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vopc.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vopc.s @@ -1,9076 +1,9077 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefix=W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefix=W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_e32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0xfa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0xfa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0xfa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0xfa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfa,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0xfc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0xfc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0xfd,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xfd,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0xfc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0xfc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0xfd,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xfd,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, v[1:2], v2 -// W32: encoding: [0x01,0x05,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, v[1:2], v2 ; encoding: [0x01,0x05,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, v[254:255], v2 -// W32: encoding: [0xfe,0x05,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, v[254:255], v2 ; encoding: [0xfe,0x05,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, s[2:3], v2 -// W32: encoding: [0x02,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, s[2:3], v2 ; encoding: [0x02,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, s[104:105], v2 -// W32: encoding: [0x68,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, s[104:105], v2 ; encoding: [0x68,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, vcc, v2 -// W32: encoding: [0x6a,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, vcc, v2 ; encoding: [0x6a,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, ttmp[14:15], v2 -// W32: encoding: [0x7a,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, ttmp[14:15], v2 ; encoding: [0x7a,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, exec, v2 -// W32: encoding: [0x7e,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, exec, v2 ; encoding: [0x7e,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0xfe,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0xfe,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0xff,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f64_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, v[1:2], v2 -// W64: encoding: [0x01,0x05,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, v[1:2], v2 ; encoding: [0x01,0x05,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, v[254:255], v2 -// W64: encoding: [0xfe,0x05,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, v[254:255], v2 ; encoding: [0xfe,0x05,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, s[2:3], v2 -// W64: encoding: [0x02,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, s[2:3], v2 ; encoding: [0x02,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, s[104:105], v2 -// W64: encoding: [0x68,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, s[104:105], v2 ; encoding: [0x68,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, vcc, v2 -// W64: encoding: [0x6a,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, vcc, v2 ; encoding: [0x6a,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, ttmp[14:15], v2 -// W64: encoding: [0x7a,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, ttmp[14:15], v2 ; encoding: [0x7a,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, exec, v2 -// W64: encoding: [0x7e,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, exec, v2 ; encoding: [0x7e,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0xfe,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0xfe,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f64 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0xff,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f64_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x04,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x04,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x04,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x04,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x04,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x04,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x04,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x04,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x24,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x24,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x25,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x25,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x24,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x24,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x25,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x25,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x44,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x44,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x45,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x45,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x44,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x44,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x45,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x45,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x64,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x64,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x64,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x64,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x64,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x64,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x64,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x64,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x84,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x84,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x85,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x85,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x84,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x84,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x85,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x85,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xa4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xa5,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa5,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xa4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xa5,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa5,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x74,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x74,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x74,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x74,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x74,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x74,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x74,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x74,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x94,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x94,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x95,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x95,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x94,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x94,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x95,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x95,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xb4,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb4,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xb5,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb5,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xb4,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb4,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xb5,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb5,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x0c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x0c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x0c,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0c,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x0c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x0c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x0c,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0c,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x2c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x2c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x2d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x2c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x2c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x2d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x4c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x4d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x4c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x4d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x6c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x6c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x6c,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6c,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x6c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x6c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x6c,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6c,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x8c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x8c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x8d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x8c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x8c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x8d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xac,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xac,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xad,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xad,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xac,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xac,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xad,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xad,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x7c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x7c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x7c,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7c,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x7c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x7c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x7c,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7c,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x9c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x9c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x9d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x9c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x9c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x9d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xbc,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xbc,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xbd,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbd,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xbc,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xbc,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xbd,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbd,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x08,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x08,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x08,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x08,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x08,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x08,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x08,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x08,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x28,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x28,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x29,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x29,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x28,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x28,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x29,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x29,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x48,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x48,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x49,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x49,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x48,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x48,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x49,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x49,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x68,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x68,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x68,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x68,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x68,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x68,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x68,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x68,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x88,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x88,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x89,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x89,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x88,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x88,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x89,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x89,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xa8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xa9,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa9,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xa8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xa9,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa9,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x78,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x78,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x78,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x78,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x78,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x78,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x78,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x78,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x98,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x98,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x99,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x99,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x98,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x98,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x99,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x99,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xb8,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb8,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xb9,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb9,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xb8,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb8,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xb9,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb9,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x06,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x06,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x06,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x06,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x06,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x06,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x06,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x06,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x26,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x26,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x27,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x27,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x26,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x26,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x27,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x27,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x46,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x46,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x47,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x47,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x46,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x46,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x47,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x47,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x66,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x66,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x66,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x66,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x66,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x66,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x66,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x66,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x86,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x86,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x87,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x87,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x86,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x86,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x87,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x87,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xa6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xa7,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa7,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xa6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xa7,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa7,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x76,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x76,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x76,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x76,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x76,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x76,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x76,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x76,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x96,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x96,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x97,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x97,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x96,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x96,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x97,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x97,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xb6,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb6,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xb7,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb7,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xb6,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb6,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xb7,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb7,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x0a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x0a,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0a,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x0a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x0a,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0a,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x2a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x2a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x2b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x2a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x2a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x2b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x4a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x4b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x4a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x4b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x02,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x02,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x02,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x02,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x02,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x02,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x02,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x02,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x22,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x22,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x23,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x23,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x22,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x22,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x23,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x23,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x42,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x42,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x43,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x43,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x42,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x42,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x43,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x43,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x62,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x62,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x62,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x62,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x62,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x62,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x62,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x62,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x82,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x82,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x83,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x83,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x82,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x82,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x83,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x83,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xa2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xa3,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa3,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xa2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xa3,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa3,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x72,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x72,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x72,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x72,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x72,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x72,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x72,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x72,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x92,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x92,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x93,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x93,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x92,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x92,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x93,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x93,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xb2,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb2,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xb3,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb3,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xb2,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb2,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xb3,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb3,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x6a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x6a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x6a,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6a,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x6a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x6a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x6a,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6a,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x8a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x8a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x8b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x8a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x8a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x8b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xaa,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xaa,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xab,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xab,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xaa,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xaa,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xab,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xab,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x7a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x7a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x7a,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7a,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x7a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x7a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x7a,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7a,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x9a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x9a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x9b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x9a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x9a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x9b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0xba,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xba,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0xbb,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbb,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0xba,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0xba,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0xbb,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbb,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x1a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x1a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x1a,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1a,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x1a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x1a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x1a,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1a,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x3a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x3a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x3b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x3a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x3a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x3b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x5a,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5a,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x5b,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5b,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x5a,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5a,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x5b,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5b,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x12,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x12,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x12,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x12,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x12,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x12,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x12,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x12,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x32,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x32,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x33,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x33,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x32,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x32,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x33,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x33,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x52,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x52,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x53,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x53,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x52,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x52,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x53,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x53,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x16,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x16,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x16,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x16,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x16,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x16,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x16,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x16,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x36,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x36,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x37,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x37,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x36,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x36,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x37,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x37,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x56,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x56,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x57,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x57,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x56,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x56,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x57,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x57,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x18,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x18,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x18,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x18,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x18,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x18,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x18,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x18,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x38,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x38,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x39,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x39,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x38,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x38,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x39,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x39,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x58,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x58,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x59,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x59,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x58,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x58,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x59,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x59,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x14,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x14,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x14,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x14,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x14,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x14,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x14,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x14,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x34,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x34,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x35,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x35,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x34,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x34,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x35,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x35,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x54,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x54,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x55,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x55,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x54,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x54,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x55,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x55,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x1c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x1c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x1c,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1c,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x1c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x1c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x1c,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1c,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x3c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x3c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x3d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x3c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x3c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x3d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x5c,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5c,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x5d,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5d,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x5c,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5c,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x5d,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5d,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x0e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x0e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x0e,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0e,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x0e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x0e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x0e,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0e,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x2e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x2e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x2f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x2e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x2e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x2f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x4e,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4e,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x4f,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4f,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x4e,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4e,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x4f,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4f,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v127, v2 -// W32: encoding: [0x7f,0x05,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, v127, v2 ; encoding: [0x7f,0x05,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x10,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x10,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, 0xfe0b, v127 -// W32: encoding: [0xff,0xfe,0x10,0x7c,0x0b,0xfe,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16_e32 vcc_lo, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x10,0x7c,0x0b,0xfe,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v127, v2 -// W64: encoding: [0x7f,0x05,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, v127, v2 ; encoding: [0x7f,0x05,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x10,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x10,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, 0xfe0b, v127 -// W64: encoding: [0xff,0xfe,0x10,0x7c,0x0b,0xfe,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16_e32 vcc, 0xfe0b, v127 ; encoding: [0xff,0xfe,0x10,0x7c,0x0b,0xfe,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 -// W32: encoding: [0x01,0x05,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, v1, v2 ; encoding: [0x01,0x05,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v255, v2 -// W32: encoding: [0xff,0x05,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, v255, v2 ; encoding: [0xff,0x05,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, s1, v2 -// W32: encoding: [0x01,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, s1, v2 ; encoding: [0x01,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, s105, v2 -// W32: encoding: [0x69,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, s105, v2 ; encoding: [0x69,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, vcc_lo, v2 -// W32: encoding: [0x6a,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, vcc_lo, v2 ; encoding: [0x6a,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, vcc_hi, v2 -// W32: encoding: [0x6b,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, vcc_hi, v2 ; encoding: [0x6b,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, ttmp15, v2 -// W32: encoding: [0x7b,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, ttmp15, v2 ; encoding: [0x7b,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, m0, v2 -// W32: encoding: [0x7d,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, m0, v2 ; encoding: [0x7d,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, exec_lo, v2 -// W32: encoding: [0x7e,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, exec_lo, v2 ; encoding: [0x7e,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, exec_hi, v2 -// W32: encoding: [0x7f,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, exec_hi, v2 ; encoding: [0x7f,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, null, v2 -// W32: encoding: [0x7c,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, null, v2 ; encoding: [0x7c,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, -1, v2 -// W32: encoding: [0xc1,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, -1, v2 ; encoding: [0xc1,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, 0.5, v2 -// W32: encoding: [0xf0,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, 0.5, v2 ; encoding: [0xf0,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, src_scc, v2 -// W32: encoding: [0xfd,0x04,0x30,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, src_scc, v2 ; encoding: [0xfd,0x04,0x30,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, 0xaf123456, v255 -// W32: encoding: [0xff,0xfe,0x31,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32_e32 vcc_lo, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x31,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 -// W64: encoding: [0x01,0x05,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, v1, v2 ; encoding: [0x01,0x05,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v255, v2 -// W64: encoding: [0xff,0x05,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, v255, v2 ; encoding: [0xff,0x05,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, s1, v2 -// W64: encoding: [0x01,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, s1, v2 ; encoding: [0x01,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, s105, v2 -// W64: encoding: [0x69,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, s105, v2 ; encoding: [0x69,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, vcc_lo, v2 -// W64: encoding: [0x6a,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, vcc_lo, v2 ; encoding: [0x6a,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, vcc_hi, v2 -// W64: encoding: [0x6b,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, vcc_hi, v2 ; encoding: [0x6b,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, ttmp15, v2 -// W64: encoding: [0x7b,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, ttmp15, v2 ; encoding: [0x7b,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, m0, v2 -// W64: encoding: [0x7d,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, m0, v2 ; encoding: [0x7d,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, exec_lo, v2 -// W64: encoding: [0x7e,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, exec_lo, v2 ; encoding: [0x7e,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, exec_hi, v2 -// W64: encoding: [0x7f,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, exec_hi, v2 ; encoding: [0x7f,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, null, v2 -// W64: encoding: [0x7c,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, null, v2 ; encoding: [0x7c,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, -1, v2 -// W64: encoding: [0xc1,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, -1, v2 ; encoding: [0xc1,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, 0.5, v2 -// W64: encoding: [0xf0,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, 0.5, v2 ; encoding: [0xf0,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, src_scc, v2 -// W64: encoding: [0xfd,0x04,0x30,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, src_scc, v2 ; encoding: [0xfd,0x04,0x30,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, 0xaf123456, v255 -// W64: encoding: [0xff,0xfe,0x31,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32_e32 vcc, 0xaf123456, v255 ; encoding: [0xff,0xfe,0x31,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, v[1:2], v[2:3] -// W32: encoding: [0x01,0x05,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, v[254:255], v[2:3] -// W32: encoding: [0xfe,0x05,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, s[2:3], v[2:3] -// W32: encoding: [0x02,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, s[104:105], v[2:3] -// W32: encoding: [0x68,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, vcc, v[2:3] -// W32: encoding: [0x6a,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, vcc, v[2:3] ; encoding: [0x6a,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, ttmp[14:15], v[2:3] -// W32: encoding: [0x7a,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, exec, v[2:3] -// W32: encoding: [0x7e,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, exec, v[2:3] ; encoding: [0x7e,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, null, v[2:3] -// W32: encoding: [0x7c,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, null, v[2:3] ; encoding: [0x7c,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, -1, v[2:3] -// W32: encoding: [0xc1,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, -1, v[2:3] ; encoding: [0xc1,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, 0.5, v[2:3] -// W32: encoding: [0xf0,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, src_scc, v[2:3] -// W32: encoding: [0xfd,0x04,0x50,0x7c] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x50,0x7c] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc_lo, 0xaf123456, v[254:255] -// W32: encoding: [0xff,0xfc,0x51,0x7c,0x56,0x34,0x12,0xaf] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f64_e32 vcc_lo, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x51,0x7c,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, v[1:2], v[2:3] -// W64: encoding: [0x01,0x05,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, v[1:2], v[2:3] ; encoding: [0x01,0x05,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, v[254:255], v[2:3] -// W64: encoding: [0xfe,0x05,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, s[2:3], v[2:3] -// W64: encoding: [0x02,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, s[2:3], v[2:3] ; encoding: [0x02,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, s[104:105], v[2:3] -// W64: encoding: [0x68,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, s[104:105], v[2:3] ; encoding: [0x68,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, vcc, v[2:3] -// W64: encoding: [0x6a,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, vcc, v[2:3] ; encoding: [0x6a,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, ttmp[14:15], v[2:3] -// W64: encoding: [0x7a,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, exec, v[2:3] -// W64: encoding: [0x7e,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, exec, v[2:3] ; encoding: [0x7e,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, null, v[2:3] -// W64: encoding: [0x7c,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, null, v[2:3] ; encoding: [0x7c,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, -1, v[2:3] -// W64: encoding: [0xc1,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, -1, v[2:3] ; encoding: [0xc1,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, 0.5, v[2:3] -// W64: encoding: [0xf0,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, 0.5, v[2:3] ; encoding: [0xf0,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, src_scc, v[2:3] -// W64: encoding: [0xfd,0x04,0x50,0x7c] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, src_scc, v[2:3] ; encoding: [0xfd,0x04,0x50,0x7c] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f64 vcc, 0xaf123456, v[254:255] -// W64: encoding: [0xff,0xfc,0x51,0x7c,0x56,0x34,0x12,0xaf] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f64_e32 vcc, 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x51,0x7c,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp16.s b/llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp16.s index 0c36108cb0cbe..4723ab1fc7c74 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp16.s @@ -1,6052 +1,6053 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefix=W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefix=W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_dpp vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xfa,0x7c,0x7f,0x6f,0x35,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfa,0x7c,0x7f,0x6f,0x35,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfa,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xfa,0x7c,0x7f,0x6f,0x35,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfa,0x7c,0x7f,0x6f,0x35,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0xfd,0x7c,0xff,0x6f,0x35,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfd,0x7c,0xff,0x6f,0x35,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfc,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0xfd,0x7c,0xff,0x6f,0x35,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfd,0x7c,0xff,0x6f,0x35,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x04,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x04,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x04,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x04,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x04,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x04,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x25,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x25,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x24,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x24,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x25,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x25,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x64,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x64,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x64,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x64,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x64,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x64,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x85,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x85,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x84,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x84,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x85,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x85,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x74,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x74,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x74,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x74,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x74,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x74,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x95,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x95,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x94,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x94,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x95,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x95,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x0c,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0c,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x0c,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0c,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x2d,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2d,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x2d,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2d,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x6c,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6c,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x6c,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6c,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x8d,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8d,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x8d,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8d,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x7c,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7c,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x7c,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7c,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x9d,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9d,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x9d,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9d,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x08,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x08,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x08,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x08,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x08,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x08,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x29,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x29,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x28,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x28,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x29,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x29,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x68,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x68,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x68,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x68,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x68,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x68,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x89,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x89,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x88,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x88,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x89,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x89,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x78,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x78,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x78,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x78,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x78,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x78,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x99,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x99,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x98,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x98,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x99,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x99,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x06,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x06,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x06,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x06,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x06,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x06,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x27,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x27,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x26,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x26,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x27,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x27,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x66,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x66,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x66,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x66,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x66,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x66,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x87,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x87,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x86,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x86,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x87,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x87,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x76,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x76,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x76,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x76,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x76,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x76,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x97,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x97,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x96,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x96,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x97,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x97,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x0a,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0a,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x0a,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0a,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x2b,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2b,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x2b,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2b,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x02,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x02,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x02,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x02,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x02,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x02,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x23,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x23,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x22,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x22,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x23,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x23,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x62,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x62,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x62,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x62,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x62,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x62,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x83,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x83,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x82,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x83,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x83,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x72,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x72,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x72,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x72,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x72,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x72,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x93,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x93,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x92,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x92,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x93,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x93,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x6a,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6a,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x6a,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6a,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x8b,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8b,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x8b,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8b,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x7a,0x7c,0x7f,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7a,0x7c,0x7f,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x7a,0x7c,0x7f,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7a,0x7c,0x7f,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x9b,0x7c,0xff,0x6f,0x05,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9b,0x7c,0xff,0x6f,0x05,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x9b,0x7c,0xff,0x6f,0x05,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9b,0x7c,0xff,0x6f,0x05,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x1a,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1a,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x1a,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1a,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x3b,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3b,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3a,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x3b,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3b,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x12,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x12,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x12,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x12,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x12,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x12,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x33,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x33,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x32,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x32,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x33,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x33,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x16,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x16,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x16,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x16,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x16,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x16,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x37,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x37,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x36,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x36,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x37,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x37,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x18,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x18,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x18,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x18,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x18,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x18,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x39,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x39,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x38,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x38,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x39,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x39,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x14,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x14,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x14,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x14,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x14,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x14,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x35,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x35,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x34,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x34,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x35,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x35,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x1c,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1c,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x1c,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1c,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x3d,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3d,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3c,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x3d,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3d,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x0e,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0e,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x0e,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0e,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x2f,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2f,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2e,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x2f,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2f,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x10,0x7c,0x7f,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x10,0x7c,0x7f,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x10,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x10,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x10,0x7c,0x7f,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x10,0x7c,0x7f,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1b,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1b,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0xe4,0x00,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0xe4,0x00,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_mirror -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x40,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x40,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_half_mirror -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x41,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x41,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_shl:1 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x01,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x01,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_shl:15 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x0f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x0f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_shr:1 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x11,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x11,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_shr:15 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_ror:1 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x21,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x21,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_ror:15 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x2f,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x2f,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x50,0x01,0xff] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x50,0x01,0xff] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x5f,0x01,0x01] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x5f,0x01,0x01] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W32: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x60,0x09,0x13] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x60,0x09,0x13] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W32: encoding: [0xfa,0xfe,0x31,0x7c,0xff,0x6f,0xf5,0x30] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x31,0x7c,0xff,0x6f,0xf5,0x30] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 quad_perm:[3,2,1,0] -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1b,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1b,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 quad_perm:[0,1,2,3] -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0xe4,0x00,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0xe4,0x00,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_mirror -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x40,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x40,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_half_mirror -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x41,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x41,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_shl:1 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x01,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x01,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_shl:15 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x0f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x0f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_shr:1 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x11,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x11,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_shr:15 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x1f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_ror:1 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x21,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x21,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_ror:15 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x2f,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x2f,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x50,0x01,0xff] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x50,0x01,0xff] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x5f,0x01,0x01] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x5f,0x01,0x01] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// W64: encoding: [0xfa,0x04,0x30,0x7c,0x01,0x60,0x09,0x13] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x30,0x7c,0x01,0x60,0x09,0x13] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// W64: encoding: [0xfa,0xfe,0x31,0x7c,0xff,0x6f,0xf5,0x30] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x31,0x7c,0xff,0x6f,0xf5,0x30] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp8.s b/llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp8.s index 2a4095f99d834..01c66fc5ff24a 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vopc_dpp8.s @@ -1,1300 +1,1301 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefix=W32 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefix=W64 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W32-ERR --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -filetype=null %s 2>&1 | FileCheck --check-prefix=W64-ERR --implicit-check-not=error: %s v_cmp_class_f16_dpp vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xfa,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfa,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfa,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xfa,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfa,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0xfd,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_class_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfd,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfc,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_class_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0xfd,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_class_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfd,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x04,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x04,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x04,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x04,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x04,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x25,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x25,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x24,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x25,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x25,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x64,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x64,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x64,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x64,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x64,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x85,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x85,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x84,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x85,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x85,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x74,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x74,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x74,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x74,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x74,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x95,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_eq_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x95,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x94,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_eq_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x95,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_eq_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x95,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x0c,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0c,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x0c,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0c,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x2d,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2d,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x2d,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2d,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x6c,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6c,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x6c,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6c,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x8d,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8d,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x8d,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8d,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x7c,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7c,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x7c,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7c,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x9d,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ge_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9d,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ge_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x9d,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ge_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9d,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x08,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x08,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x08,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x08,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x08,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x29,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x29,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x28,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x29,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x29,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x68,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x68,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x68,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x68,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x68,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x89,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x89,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x88,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x89,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x89,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x78,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x78,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x78,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x78,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x78,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x99,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_gt_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x99,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x98,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_gt_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x99,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_gt_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x99,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x06,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x06,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x06,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x06,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x06,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x27,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x27,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x26,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x27,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x27,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x66,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x66,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x66,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x66,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x66,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x87,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x87,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x86,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x87,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x87,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x76,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x76,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x76,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x76,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x76,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x97,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_le_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x97,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x96,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_le_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x97,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_le_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x97,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x0a,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0a,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x0a,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0a,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x2b,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lg_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2b,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lg_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x2b,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lg_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2b,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x02,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x02,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x02,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x02,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x02,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x23,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x23,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x22,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x23,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x23,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x62,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x62,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x62,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x62,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x62,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x83,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x83,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x82,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x83,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x83,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x72,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x72,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x72,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x72,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x72,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x93,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_lt_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x93,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x92,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_lt_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x93,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_lt_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x93,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x6a,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6a,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x6a,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6a,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x8b,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_i32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8b,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x8b,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_i32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8b,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x7a,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7a,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x7a,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7a,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x9b,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ne_u32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9b,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ne_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x9b,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ne_u32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9b,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x1a,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1a,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x1a,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1a,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x3b,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_neq_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3b,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3a,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_neq_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x3b,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_neq_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3b,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x12,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x12,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x12,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x12,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x12,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x33,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nge_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x33,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x32,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nge_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x33,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nge_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x33,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x16,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x16,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x16,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x16,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x16,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x37,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_ngt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x37,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x36,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_ngt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x37,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_ngt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x37,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x18,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x18,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x18,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x18,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x18,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x39,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nle_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x39,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x38,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nle_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x39,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nle_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x39,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x14,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x14,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x14,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x14,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x14,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x35,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlg_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x35,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x34,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlg_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x35,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlg_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x35,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x1c,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1c,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x1c,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1c,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x3d,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_nlt_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3d,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3c,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_nlt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x3d,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_nlt_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3d,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x0e,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0e,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x0e,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0e,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x2f,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_o_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2f,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2e,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_o_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x2f,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_o_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2f,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x10,0x7c,0x7f,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f16 vcc_lo, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x10,0x7c,0x7f,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x10,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x10,0x7c,0x7f,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f16 vcc, v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x10,0x7c,0x7f,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W32: encoding: [0xe9,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W32: encoding: [0xea,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W32: encoding: [0xe9,0xfe,0x31,0x7c,0xff,0x00,0x00,0x00] -// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W32: v_cmp_u_f32 vcc_lo, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x31,0x7c,0xff,0x00,0x00,0x00] +// W64-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// W64: encoding: [0xe9,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// W64: encoding: [0xea,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x30,0x7c,0x01,0x77,0x39,0x05] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode v_cmp_u_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// W64: encoding: [0xe9,0xfe,0x31,0x7c,0xff,0x00,0x00,0x00] -// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode +// W64: v_cmp_u_f32 vcc, v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x31,0x7c,0xff,0x00,0x00,0x00] +// W32-ERR: :[[@LINE-2]]:1: error: operands are not valid for this GPU or mode diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s b/llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s index 8c01cf4fbce20..300c748145141 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vopcx.s @@ -1,3404 +1,3405 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s v_cmpx_class_f16_e32 v1, v2 -// GFX12: encoding: [0x01,0x05,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 v1, v2 ; encoding: [0x01,0x05,0xfa,0x7d] v_cmpx_class_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0xfa,0x7d] v_cmpx_class_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 s1, v2 ; encoding: [0x01,0x04,0xfa,0x7d] v_cmpx_class_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 s105, v2 ; encoding: [0x69,0x04,0xfa,0x7d] v_cmpx_class_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0xfa,0x7d] v_cmpx_class_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0xfa,0x7d] v_cmpx_class_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0xfa,0x7d] v_cmpx_class_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0xfa,0x7d] v_cmpx_class_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0xfa,0x7d] v_cmpx_class_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0xfa,0x7d] v_cmpx_class_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 null, v2 ; encoding: [0x7c,0x04,0xfa,0x7d] v_cmpx_class_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0xfa,0x7d] v_cmpx_class_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0xfa,0x7d] v_cmpx_class_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0xfa,0x7d] +// GFX12: v_cmpx_class_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0xfa,0x7d] v_cmpx_class_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0xfa,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_class_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0xfa,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_class_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 v1, v2 ; encoding: [0x01,0x05,0xfc,0x7d] v_cmpx_class_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 v255, v2 ; encoding: [0xff,0x05,0xfc,0x7d] v_cmpx_class_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 s1, v2 ; encoding: [0x01,0x04,0xfc,0x7d] v_cmpx_class_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 s105, v2 ; encoding: [0x69,0x04,0xfc,0x7d] v_cmpx_class_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0xfc,0x7d] v_cmpx_class_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0xfc,0x7d] v_cmpx_class_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0xfc,0x7d] v_cmpx_class_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0xfc,0x7d] v_cmpx_class_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0xfc,0x7d] v_cmpx_class_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0xfc,0x7d] v_cmpx_class_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 null, v2 ; encoding: [0x7c,0x04,0xfc,0x7d] v_cmpx_class_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0xfc,0x7d] v_cmpx_class_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0xfc,0x7d] v_cmpx_class_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0xfc,0x7d] +// GFX12: v_cmpx_class_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0xfc,0x7d] v_cmpx_class_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xfd,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_class_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0xfd,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_class_f64 v[1:2], v2 -// GFX12: encoding: [0x01,0x05,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 v[1:2], v2 ; encoding: [0x01,0x05,0xfe,0x7d] v_cmpx_class_f64 v[254:255], v2 -// GFX12: encoding: [0xfe,0x05,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 v[254:255], v2 ; encoding: [0xfe,0x05,0xfe,0x7d] v_cmpx_class_f64 s[2:3], v2 -// GFX12: encoding: [0x02,0x04,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 s[2:3], v2 ; encoding: [0x02,0x04,0xfe,0x7d] v_cmpx_class_f64 s[104:105], v2 -// GFX12: encoding: [0x68,0x04,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 s[104:105], v2 ; encoding: [0x68,0x04,0xfe,0x7d] v_cmpx_class_f64 vcc, v2 -// GFX12: encoding: [0x6a,0x04,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 vcc, v2 ; encoding: [0x6a,0x04,0xfe,0x7d] v_cmpx_class_f64 ttmp[14:15], v2 -// GFX12: encoding: [0x7a,0x04,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 ttmp[14:15], v2 ; encoding: [0x7a,0x04,0xfe,0x7d] v_cmpx_class_f64 exec, v2 -// GFX12: encoding: [0x7e,0x04,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 exec, v2 ; encoding: [0x7e,0x04,0xfe,0x7d] v_cmpx_class_f64 null, v2 -// GFX12: encoding: [0x7c,0x04,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 null, v2 ; encoding: [0x7c,0x04,0xfe,0x7d] v_cmpx_class_f64 -1, v2 -// GFX12: encoding: [0xc1,0x04,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 -1, v2 ; encoding: [0xc1,0x04,0xfe,0x7d] v_cmpx_class_f64 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 0.5, v2 ; encoding: [0xf0,0x04,0xfe,0x7d] v_cmpx_class_f64 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0xfe,0x7d] +// GFX12: v_cmpx_class_f64_e32 src_scc, v2 ; encoding: [0xfd,0x04,0xfe,0x7d] v_cmpx_class_f64 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0xff,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_class_f64_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0xff,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x04,0x7d] v_cmpx_eq_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x04,0x7d] v_cmpx_eq_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x04,0x7d] v_cmpx_eq_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x04,0x7d] v_cmpx_eq_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x04,0x7d] v_cmpx_eq_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x04,0x7d] v_cmpx_eq_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x04,0x7d] v_cmpx_eq_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x04,0x7d] v_cmpx_eq_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x04,0x7d] v_cmpx_eq_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x04,0x7d] v_cmpx_eq_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x04,0x7d] v_cmpx_eq_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x04,0x7d] v_cmpx_eq_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x04,0x7d] v_cmpx_eq_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x04,0x7d] +// GFX12: v_cmpx_eq_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x04,0x7d] v_cmpx_eq_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x04,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x04,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_eq_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x24,0x7d] v_cmpx_eq_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x24,0x7d] v_cmpx_eq_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x24,0x7d] v_cmpx_eq_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x24,0x7d] v_cmpx_eq_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x24,0x7d] v_cmpx_eq_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x24,0x7d] v_cmpx_eq_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x24,0x7d] v_cmpx_eq_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x24,0x7d] v_cmpx_eq_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x24,0x7d] v_cmpx_eq_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x24,0x7d] v_cmpx_eq_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x24,0x7d] v_cmpx_eq_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x24,0x7d] v_cmpx_eq_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x24,0x7d] v_cmpx_eq_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x24,0x7d] +// GFX12: v_cmpx_eq_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x24,0x7d] v_cmpx_eq_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x25,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x25,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x44,0x7d] v_cmpx_eq_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x44,0x7d] v_cmpx_eq_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x44,0x7d] v_cmpx_eq_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x44,0x7d] v_cmpx_eq_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x44,0x7d] v_cmpx_eq_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x44,0x7d] v_cmpx_eq_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x44,0x7d] v_cmpx_eq_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x44,0x7d] v_cmpx_eq_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x44,0x7d] v_cmpx_eq_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x44,0x7d] v_cmpx_eq_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x44,0x7d] +// GFX12: v_cmpx_eq_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x44,0x7d] v_cmpx_eq_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x45,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x45,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_i16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x64,0x7d] v_cmpx_eq_i16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x64,0x7d] v_cmpx_eq_i16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x64,0x7d] v_cmpx_eq_i16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x64,0x7d] v_cmpx_eq_i16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x64,0x7d] v_cmpx_eq_i16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x64,0x7d] v_cmpx_eq_i16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x64,0x7d] v_cmpx_eq_i16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x64,0x7d] v_cmpx_eq_i16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x64,0x7d] v_cmpx_eq_i16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x64,0x7d] v_cmpx_eq_i16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x64,0x7d] v_cmpx_eq_i16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x64,0x7d] v_cmpx_eq_i16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x64,0x7d] v_cmpx_eq_i16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x64,0x7d] +// GFX12: v_cmpx_eq_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x64,0x7d] v_cmpx_eq_i16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x64,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x64,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_eq_i32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x84,0x7d] v_cmpx_eq_i32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x84,0x7d] v_cmpx_eq_i32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x84,0x7d] v_cmpx_eq_i32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x84,0x7d] v_cmpx_eq_i32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x84,0x7d] v_cmpx_eq_i32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x84,0x7d] v_cmpx_eq_i32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x84,0x7d] v_cmpx_eq_i32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x84,0x7d] v_cmpx_eq_i32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x84,0x7d] v_cmpx_eq_i32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x84,0x7d] v_cmpx_eq_i32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x84,0x7d] v_cmpx_eq_i32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x84,0x7d] v_cmpx_eq_i32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x84,0x7d] v_cmpx_eq_i32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x84,0x7d] +// GFX12: v_cmpx_eq_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x84,0x7d] v_cmpx_eq_i32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x85,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x85,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_i64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa4,0x7d] v_cmpx_eq_i64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa4,0x7d] v_cmpx_eq_i64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa4,0x7d] v_cmpx_eq_i64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa4,0x7d] v_cmpx_eq_i64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xa4,0x7d] v_cmpx_eq_i64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa4,0x7d] v_cmpx_eq_i64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xa4,0x7d] v_cmpx_eq_i64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xa4,0x7d] v_cmpx_eq_i64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xa4,0x7d] v_cmpx_eq_i64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa4,0x7d] v_cmpx_eq_i64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xa4,0x7d] +// GFX12: v_cmpx_eq_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa4,0x7d] v_cmpx_eq_i64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xa5,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa5,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_u16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x74,0x7d] v_cmpx_eq_u16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x74,0x7d] v_cmpx_eq_u16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x74,0x7d] v_cmpx_eq_u16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x74,0x7d] v_cmpx_eq_u16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x74,0x7d] v_cmpx_eq_u16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x74,0x7d] v_cmpx_eq_u16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x74,0x7d] v_cmpx_eq_u16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x74,0x7d] v_cmpx_eq_u16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x74,0x7d] v_cmpx_eq_u16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x74,0x7d] v_cmpx_eq_u16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x74,0x7d] v_cmpx_eq_u16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x74,0x7d] v_cmpx_eq_u16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x74,0x7d] v_cmpx_eq_u16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x74,0x7d] +// GFX12: v_cmpx_eq_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x74,0x7d] v_cmpx_eq_u16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x74,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_eq_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x74,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_eq_u32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x94,0x7d] v_cmpx_eq_u32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x94,0x7d] v_cmpx_eq_u32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x94,0x7d] v_cmpx_eq_u32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x94,0x7d] v_cmpx_eq_u32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x94,0x7d] v_cmpx_eq_u32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x94,0x7d] v_cmpx_eq_u32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x94,0x7d] v_cmpx_eq_u32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x94,0x7d] v_cmpx_eq_u32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x94,0x7d] v_cmpx_eq_u32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x94,0x7d] v_cmpx_eq_u32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x94,0x7d] v_cmpx_eq_u32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x94,0x7d] v_cmpx_eq_u32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x94,0x7d] v_cmpx_eq_u32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x94,0x7d] +// GFX12: v_cmpx_eq_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x94,0x7d] v_cmpx_eq_u32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x95,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x95,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_eq_u64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb4,0x7d] v_cmpx_eq_u64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb4,0x7d] v_cmpx_eq_u64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb4,0x7d] v_cmpx_eq_u64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb4,0x7d] v_cmpx_eq_u64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xb4,0x7d] v_cmpx_eq_u64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb4,0x7d] v_cmpx_eq_u64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xb4,0x7d] v_cmpx_eq_u64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xb4,0x7d] v_cmpx_eq_u64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xb4,0x7d] v_cmpx_eq_u64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb4,0x7d] v_cmpx_eq_u64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xb4,0x7d] +// GFX12: v_cmpx_eq_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb4,0x7d] v_cmpx_eq_u64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xb5,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_eq_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb5,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x0c,0x7d] v_cmpx_ge_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x0c,0x7d] v_cmpx_ge_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x0c,0x7d] v_cmpx_ge_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x0c,0x7d] v_cmpx_ge_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x0c,0x7d] v_cmpx_ge_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x0c,0x7d] v_cmpx_ge_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x0c,0x7d] v_cmpx_ge_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x0c,0x7d] v_cmpx_ge_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x0c,0x7d] v_cmpx_ge_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x0c,0x7d] v_cmpx_ge_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x0c,0x7d] v_cmpx_ge_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x0c,0x7d] v_cmpx_ge_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x0c,0x7d] v_cmpx_ge_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0c,0x7d] +// GFX12: v_cmpx_ge_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x0c,0x7d] v_cmpx_ge_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x0c,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0c,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ge_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x2c,0x7d] v_cmpx_ge_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x2c,0x7d] v_cmpx_ge_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x2c,0x7d] v_cmpx_ge_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x2c,0x7d] v_cmpx_ge_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x2c,0x7d] v_cmpx_ge_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x2c,0x7d] v_cmpx_ge_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x2c,0x7d] v_cmpx_ge_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x2c,0x7d] v_cmpx_ge_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x2c,0x7d] v_cmpx_ge_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x2c,0x7d] v_cmpx_ge_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x2c,0x7d] v_cmpx_ge_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x2c,0x7d] v_cmpx_ge_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x2c,0x7d] v_cmpx_ge_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x2c,0x7d] +// GFX12: v_cmpx_ge_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x2c,0x7d] v_cmpx_ge_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x2d,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4c,0x7d] v_cmpx_ge_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4c,0x7d] v_cmpx_ge_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4c,0x7d] v_cmpx_ge_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4c,0x7d] v_cmpx_ge_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x4c,0x7d] v_cmpx_ge_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4c,0x7d] v_cmpx_ge_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x4c,0x7d] v_cmpx_ge_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x4c,0x7d] v_cmpx_ge_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x4c,0x7d] v_cmpx_ge_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4c,0x7d] v_cmpx_ge_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x4c,0x7d] +// GFX12: v_cmpx_ge_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4c,0x7d] v_cmpx_ge_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x4d,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_i16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x6c,0x7d] v_cmpx_ge_i16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x6c,0x7d] v_cmpx_ge_i16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x6c,0x7d] v_cmpx_ge_i16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x6c,0x7d] v_cmpx_ge_i16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x6c,0x7d] v_cmpx_ge_i16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x6c,0x7d] v_cmpx_ge_i16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x6c,0x7d] v_cmpx_ge_i16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x6c,0x7d] v_cmpx_ge_i16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x6c,0x7d] v_cmpx_ge_i16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x6c,0x7d] v_cmpx_ge_i16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x6c,0x7d] v_cmpx_ge_i16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x6c,0x7d] v_cmpx_ge_i16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x6c,0x7d] v_cmpx_ge_i16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x6c,0x7d] +// GFX12: v_cmpx_ge_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x6c,0x7d] v_cmpx_ge_i16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x6c,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6c,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ge_i32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x8c,0x7d] v_cmpx_ge_i32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x8c,0x7d] v_cmpx_ge_i32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x8c,0x7d] v_cmpx_ge_i32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x8c,0x7d] v_cmpx_ge_i32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x8c,0x7d] v_cmpx_ge_i32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x8c,0x7d] v_cmpx_ge_i32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x8c,0x7d] v_cmpx_ge_i32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x8c,0x7d] v_cmpx_ge_i32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x8c,0x7d] v_cmpx_ge_i32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x8c,0x7d] v_cmpx_ge_i32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x8c,0x7d] v_cmpx_ge_i32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x8c,0x7d] v_cmpx_ge_i32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x8c,0x7d] v_cmpx_ge_i32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x8c,0x7d] +// GFX12: v_cmpx_ge_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x8c,0x7d] v_cmpx_ge_i32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x8d,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_i64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xac,0x7d] v_cmpx_ge_i64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xac,0x7d] v_cmpx_ge_i64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xac,0x7d] v_cmpx_ge_i64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xac,0x7d] v_cmpx_ge_i64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xac,0x7d] v_cmpx_ge_i64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xac,0x7d] v_cmpx_ge_i64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xac,0x7d] v_cmpx_ge_i64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xac,0x7d] v_cmpx_ge_i64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xac,0x7d] v_cmpx_ge_i64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xac,0x7d] v_cmpx_ge_i64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xac,0x7d] +// GFX12: v_cmpx_ge_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xac,0x7d] v_cmpx_ge_i64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xad,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xad,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_u16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x7c,0x7d] v_cmpx_ge_u16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x7c,0x7d] v_cmpx_ge_u16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x7c,0x7d] v_cmpx_ge_u16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x7c,0x7d] v_cmpx_ge_u16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x7c,0x7d] v_cmpx_ge_u16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x7c,0x7d] v_cmpx_ge_u16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x7c,0x7d] v_cmpx_ge_u16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x7c,0x7d] v_cmpx_ge_u16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x7c,0x7d] v_cmpx_ge_u16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x7c,0x7d] v_cmpx_ge_u16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x7c,0x7d] v_cmpx_ge_u16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x7c,0x7d] v_cmpx_ge_u16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x7c,0x7d] v_cmpx_ge_u16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x7c,0x7d] +// GFX12: v_cmpx_ge_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x7c,0x7d] v_cmpx_ge_u16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x7c,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ge_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7c,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ge_u32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x9c,0x7d] v_cmpx_ge_u32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x9c,0x7d] v_cmpx_ge_u32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x9c,0x7d] v_cmpx_ge_u32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x9c,0x7d] v_cmpx_ge_u32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x9c,0x7d] v_cmpx_ge_u32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x9c,0x7d] v_cmpx_ge_u32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x9c,0x7d] v_cmpx_ge_u32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x9c,0x7d] v_cmpx_ge_u32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x9c,0x7d] v_cmpx_ge_u32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x9c,0x7d] v_cmpx_ge_u32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x9c,0x7d] v_cmpx_ge_u32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x9c,0x7d] v_cmpx_ge_u32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x9c,0x7d] v_cmpx_ge_u32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x9c,0x7d] +// GFX12: v_cmpx_ge_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x9c,0x7d] v_cmpx_ge_u32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x9d,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ge_u64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xbc,0x7d] v_cmpx_ge_u64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xbc,0x7d] v_cmpx_ge_u64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xbc,0x7d] v_cmpx_ge_u64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xbc,0x7d] v_cmpx_ge_u64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xbc,0x7d] v_cmpx_ge_u64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xbc,0x7d] v_cmpx_ge_u64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xbc,0x7d] v_cmpx_ge_u64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xbc,0x7d] v_cmpx_ge_u64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xbc,0x7d] v_cmpx_ge_u64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xbc,0x7d] v_cmpx_ge_u64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xbc,0x7d] +// GFX12: v_cmpx_ge_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xbc,0x7d] v_cmpx_ge_u64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xbd,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ge_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbd,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x08,0x7d] v_cmpx_gt_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x08,0x7d] v_cmpx_gt_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x08,0x7d] v_cmpx_gt_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x08,0x7d] v_cmpx_gt_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x08,0x7d] v_cmpx_gt_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x08,0x7d] v_cmpx_gt_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x08,0x7d] v_cmpx_gt_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x08,0x7d] v_cmpx_gt_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x08,0x7d] v_cmpx_gt_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x08,0x7d] v_cmpx_gt_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x08,0x7d] v_cmpx_gt_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x08,0x7d] v_cmpx_gt_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x08,0x7d] v_cmpx_gt_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x08,0x7d] +// GFX12: v_cmpx_gt_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x08,0x7d] v_cmpx_gt_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x08,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x08,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_gt_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x28,0x7d] v_cmpx_gt_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x28,0x7d] v_cmpx_gt_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x28,0x7d] v_cmpx_gt_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x28,0x7d] v_cmpx_gt_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x28,0x7d] v_cmpx_gt_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x28,0x7d] v_cmpx_gt_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x28,0x7d] v_cmpx_gt_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x28,0x7d] v_cmpx_gt_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x28,0x7d] v_cmpx_gt_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x28,0x7d] v_cmpx_gt_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x28,0x7d] v_cmpx_gt_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x28,0x7d] v_cmpx_gt_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x28,0x7d] v_cmpx_gt_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x28,0x7d] +// GFX12: v_cmpx_gt_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x28,0x7d] v_cmpx_gt_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x29,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x29,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x48,0x7d] v_cmpx_gt_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x48,0x7d] v_cmpx_gt_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x48,0x7d] v_cmpx_gt_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x48,0x7d] v_cmpx_gt_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x48,0x7d] v_cmpx_gt_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x48,0x7d] v_cmpx_gt_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x48,0x7d] v_cmpx_gt_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x48,0x7d] v_cmpx_gt_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x48,0x7d] v_cmpx_gt_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x48,0x7d] v_cmpx_gt_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x48,0x7d] +// GFX12: v_cmpx_gt_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x48,0x7d] v_cmpx_gt_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x49,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x49,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_i16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x68,0x7d] v_cmpx_gt_i16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x68,0x7d] v_cmpx_gt_i16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x68,0x7d] v_cmpx_gt_i16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x68,0x7d] v_cmpx_gt_i16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x68,0x7d] v_cmpx_gt_i16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x68,0x7d] v_cmpx_gt_i16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x68,0x7d] v_cmpx_gt_i16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x68,0x7d] v_cmpx_gt_i16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x68,0x7d] v_cmpx_gt_i16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x68,0x7d] v_cmpx_gt_i16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x68,0x7d] v_cmpx_gt_i16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x68,0x7d] v_cmpx_gt_i16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x68,0x7d] v_cmpx_gt_i16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x68,0x7d] +// GFX12: v_cmpx_gt_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x68,0x7d] v_cmpx_gt_i16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x68,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x68,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_gt_i32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x88,0x7d] v_cmpx_gt_i32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x88,0x7d] v_cmpx_gt_i32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x88,0x7d] v_cmpx_gt_i32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x88,0x7d] v_cmpx_gt_i32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x88,0x7d] v_cmpx_gt_i32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x88,0x7d] v_cmpx_gt_i32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x88,0x7d] v_cmpx_gt_i32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x88,0x7d] v_cmpx_gt_i32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x88,0x7d] v_cmpx_gt_i32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x88,0x7d] v_cmpx_gt_i32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x88,0x7d] v_cmpx_gt_i32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x88,0x7d] v_cmpx_gt_i32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x88,0x7d] v_cmpx_gt_i32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x88,0x7d] +// GFX12: v_cmpx_gt_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x88,0x7d] v_cmpx_gt_i32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x89,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x89,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_i64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa8,0x7d] v_cmpx_gt_i64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa8,0x7d] v_cmpx_gt_i64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa8,0x7d] v_cmpx_gt_i64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa8,0x7d] v_cmpx_gt_i64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xa8,0x7d] v_cmpx_gt_i64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa8,0x7d] v_cmpx_gt_i64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xa8,0x7d] v_cmpx_gt_i64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xa8,0x7d] v_cmpx_gt_i64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xa8,0x7d] v_cmpx_gt_i64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa8,0x7d] v_cmpx_gt_i64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xa8,0x7d] +// GFX12: v_cmpx_gt_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa8,0x7d] v_cmpx_gt_i64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xa9,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa9,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_u16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x78,0x7d] v_cmpx_gt_u16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x78,0x7d] v_cmpx_gt_u16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x78,0x7d] v_cmpx_gt_u16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x78,0x7d] v_cmpx_gt_u16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x78,0x7d] v_cmpx_gt_u16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x78,0x7d] v_cmpx_gt_u16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x78,0x7d] v_cmpx_gt_u16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x78,0x7d] v_cmpx_gt_u16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x78,0x7d] v_cmpx_gt_u16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x78,0x7d] v_cmpx_gt_u16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x78,0x7d] v_cmpx_gt_u16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x78,0x7d] v_cmpx_gt_u16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x78,0x7d] v_cmpx_gt_u16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x78,0x7d] +// GFX12: v_cmpx_gt_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x78,0x7d] v_cmpx_gt_u16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x78,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_gt_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x78,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_gt_u32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x98,0x7d] v_cmpx_gt_u32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x98,0x7d] v_cmpx_gt_u32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x98,0x7d] v_cmpx_gt_u32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x98,0x7d] v_cmpx_gt_u32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x98,0x7d] v_cmpx_gt_u32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x98,0x7d] v_cmpx_gt_u32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x98,0x7d] v_cmpx_gt_u32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x98,0x7d] v_cmpx_gt_u32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x98,0x7d] v_cmpx_gt_u32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x98,0x7d] v_cmpx_gt_u32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x98,0x7d] v_cmpx_gt_u32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x98,0x7d] v_cmpx_gt_u32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x98,0x7d] v_cmpx_gt_u32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x98,0x7d] +// GFX12: v_cmpx_gt_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x98,0x7d] v_cmpx_gt_u32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x99,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x99,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_gt_u64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb8,0x7d] v_cmpx_gt_u64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb8,0x7d] v_cmpx_gt_u64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb8,0x7d] v_cmpx_gt_u64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb8,0x7d] v_cmpx_gt_u64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xb8,0x7d] v_cmpx_gt_u64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb8,0x7d] v_cmpx_gt_u64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xb8,0x7d] v_cmpx_gt_u64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xb8,0x7d] v_cmpx_gt_u64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xb8,0x7d] v_cmpx_gt_u64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb8,0x7d] v_cmpx_gt_u64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xb8,0x7d] +// GFX12: v_cmpx_gt_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb8,0x7d] v_cmpx_gt_u64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xb9,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_gt_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb9,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x06,0x7d] v_cmpx_le_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x06,0x7d] v_cmpx_le_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x06,0x7d] v_cmpx_le_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x06,0x7d] v_cmpx_le_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x06,0x7d] v_cmpx_le_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x06,0x7d] v_cmpx_le_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x06,0x7d] v_cmpx_le_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x06,0x7d] v_cmpx_le_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x06,0x7d] v_cmpx_le_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x06,0x7d] v_cmpx_le_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x06,0x7d] v_cmpx_le_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x06,0x7d] v_cmpx_le_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x06,0x7d] v_cmpx_le_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x06,0x7d] +// GFX12: v_cmpx_le_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x06,0x7d] v_cmpx_le_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x06,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x06,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_le_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x26,0x7d] v_cmpx_le_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x26,0x7d] v_cmpx_le_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x26,0x7d] v_cmpx_le_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x26,0x7d] v_cmpx_le_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x26,0x7d] v_cmpx_le_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x26,0x7d] v_cmpx_le_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x26,0x7d] v_cmpx_le_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x26,0x7d] v_cmpx_le_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x26,0x7d] v_cmpx_le_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x26,0x7d] v_cmpx_le_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x26,0x7d] v_cmpx_le_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x26,0x7d] v_cmpx_le_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x26,0x7d] v_cmpx_le_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x26,0x7d] +// GFX12: v_cmpx_le_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x26,0x7d] v_cmpx_le_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x27,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x27,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x46,0x7d] v_cmpx_le_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x46,0x7d] v_cmpx_le_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x46,0x7d] v_cmpx_le_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x46,0x7d] v_cmpx_le_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x46,0x7d] v_cmpx_le_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x46,0x7d] v_cmpx_le_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x46,0x7d] v_cmpx_le_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x46,0x7d] v_cmpx_le_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x46,0x7d] v_cmpx_le_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x46,0x7d] v_cmpx_le_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x46,0x7d] +// GFX12: v_cmpx_le_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x46,0x7d] v_cmpx_le_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x47,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x47,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_i16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x66,0x7d] v_cmpx_le_i16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x66,0x7d] v_cmpx_le_i16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x66,0x7d] v_cmpx_le_i16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x66,0x7d] v_cmpx_le_i16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x66,0x7d] v_cmpx_le_i16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x66,0x7d] v_cmpx_le_i16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x66,0x7d] v_cmpx_le_i16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x66,0x7d] v_cmpx_le_i16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x66,0x7d] v_cmpx_le_i16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x66,0x7d] v_cmpx_le_i16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x66,0x7d] v_cmpx_le_i16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x66,0x7d] v_cmpx_le_i16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x66,0x7d] v_cmpx_le_i16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x66,0x7d] +// GFX12: v_cmpx_le_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x66,0x7d] v_cmpx_le_i16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x66,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x66,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_le_i32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x86,0x7d] v_cmpx_le_i32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x86,0x7d] v_cmpx_le_i32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x86,0x7d] v_cmpx_le_i32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x86,0x7d] v_cmpx_le_i32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x86,0x7d] v_cmpx_le_i32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x86,0x7d] v_cmpx_le_i32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x86,0x7d] v_cmpx_le_i32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x86,0x7d] v_cmpx_le_i32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x86,0x7d] v_cmpx_le_i32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x86,0x7d] v_cmpx_le_i32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x86,0x7d] v_cmpx_le_i32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x86,0x7d] v_cmpx_le_i32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x86,0x7d] v_cmpx_le_i32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x86,0x7d] +// GFX12: v_cmpx_le_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x86,0x7d] v_cmpx_le_i32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x87,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x87,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_i64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa6,0x7d] v_cmpx_le_i64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa6,0x7d] v_cmpx_le_i64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa6,0x7d] v_cmpx_le_i64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa6,0x7d] v_cmpx_le_i64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xa6,0x7d] v_cmpx_le_i64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa6,0x7d] v_cmpx_le_i64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xa6,0x7d] v_cmpx_le_i64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xa6,0x7d] v_cmpx_le_i64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xa6,0x7d] v_cmpx_le_i64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa6,0x7d] v_cmpx_le_i64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xa6,0x7d] +// GFX12: v_cmpx_le_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa6,0x7d] v_cmpx_le_i64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xa7,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa7,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_u16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x76,0x7d] v_cmpx_le_u16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x76,0x7d] v_cmpx_le_u16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x76,0x7d] v_cmpx_le_u16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x76,0x7d] v_cmpx_le_u16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x76,0x7d] v_cmpx_le_u16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x76,0x7d] v_cmpx_le_u16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x76,0x7d] v_cmpx_le_u16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x76,0x7d] v_cmpx_le_u16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x76,0x7d] v_cmpx_le_u16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x76,0x7d] v_cmpx_le_u16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x76,0x7d] v_cmpx_le_u16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x76,0x7d] v_cmpx_le_u16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x76,0x7d] v_cmpx_le_u16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x76,0x7d] +// GFX12: v_cmpx_le_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x76,0x7d] v_cmpx_le_u16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x76,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_le_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x76,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_le_u32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x96,0x7d] v_cmpx_le_u32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x96,0x7d] v_cmpx_le_u32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x96,0x7d] v_cmpx_le_u32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x96,0x7d] v_cmpx_le_u32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x96,0x7d] v_cmpx_le_u32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x96,0x7d] v_cmpx_le_u32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x96,0x7d] v_cmpx_le_u32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x96,0x7d] v_cmpx_le_u32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x96,0x7d] v_cmpx_le_u32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x96,0x7d] v_cmpx_le_u32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x96,0x7d] v_cmpx_le_u32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x96,0x7d] v_cmpx_le_u32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x96,0x7d] v_cmpx_le_u32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x96,0x7d] +// GFX12: v_cmpx_le_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x96,0x7d] v_cmpx_le_u32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x97,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x97,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_le_u64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb6,0x7d] v_cmpx_le_u64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb6,0x7d] v_cmpx_le_u64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb6,0x7d] v_cmpx_le_u64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb6,0x7d] v_cmpx_le_u64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xb6,0x7d] v_cmpx_le_u64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb6,0x7d] v_cmpx_le_u64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xb6,0x7d] v_cmpx_le_u64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xb6,0x7d] v_cmpx_le_u64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xb6,0x7d] v_cmpx_le_u64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb6,0x7d] v_cmpx_le_u64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xb6,0x7d] +// GFX12: v_cmpx_le_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb6,0x7d] v_cmpx_le_u64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xb7,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_le_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb7,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lg_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x0a,0x7d] v_cmpx_lg_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x0a,0x7d] v_cmpx_lg_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x0a,0x7d] v_cmpx_lg_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x0a,0x7d] v_cmpx_lg_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x0a,0x7d] v_cmpx_lg_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x0a,0x7d] v_cmpx_lg_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x0a,0x7d] v_cmpx_lg_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x0a,0x7d] v_cmpx_lg_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x0a,0x7d] v_cmpx_lg_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x0a,0x7d] v_cmpx_lg_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x0a,0x7d] v_cmpx_lg_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x0a,0x7d] v_cmpx_lg_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x0a,0x7d] v_cmpx_lg_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0a,0x7d] +// GFX12: v_cmpx_lg_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x0a,0x7d] v_cmpx_lg_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x0a,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lg_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0a,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_lg_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x2a,0x7d] v_cmpx_lg_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x2a,0x7d] v_cmpx_lg_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x2a,0x7d] v_cmpx_lg_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x2a,0x7d] v_cmpx_lg_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x2a,0x7d] v_cmpx_lg_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x2a,0x7d] v_cmpx_lg_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x2a,0x7d] v_cmpx_lg_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x2a,0x7d] v_cmpx_lg_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x2a,0x7d] v_cmpx_lg_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x2a,0x7d] v_cmpx_lg_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x2a,0x7d] v_cmpx_lg_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x2a,0x7d] v_cmpx_lg_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x2a,0x7d] v_cmpx_lg_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x2a,0x7d] +// GFX12: v_cmpx_lg_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x2a,0x7d] v_cmpx_lg_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x2b,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lg_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lg_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4a,0x7d] v_cmpx_lg_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4a,0x7d] v_cmpx_lg_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4a,0x7d] v_cmpx_lg_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4a,0x7d] v_cmpx_lg_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x4a,0x7d] v_cmpx_lg_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4a,0x7d] v_cmpx_lg_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x4a,0x7d] v_cmpx_lg_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x4a,0x7d] v_cmpx_lg_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x4a,0x7d] v_cmpx_lg_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4a,0x7d] v_cmpx_lg_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x4a,0x7d] +// GFX12: v_cmpx_lg_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4a,0x7d] v_cmpx_lg_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x4b,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lg_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x02,0x7d] v_cmpx_lt_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x02,0x7d] v_cmpx_lt_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x02,0x7d] v_cmpx_lt_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x02,0x7d] v_cmpx_lt_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x02,0x7d] v_cmpx_lt_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x02,0x7d] v_cmpx_lt_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x02,0x7d] v_cmpx_lt_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x02,0x7d] v_cmpx_lt_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x02,0x7d] v_cmpx_lt_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x02,0x7d] v_cmpx_lt_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x02,0x7d] v_cmpx_lt_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x02,0x7d] v_cmpx_lt_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x02,0x7d] v_cmpx_lt_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x02,0x7d] +// GFX12: v_cmpx_lt_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x02,0x7d] v_cmpx_lt_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x02,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x02,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_lt_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x22,0x7d] v_cmpx_lt_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x22,0x7d] v_cmpx_lt_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x22,0x7d] v_cmpx_lt_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x22,0x7d] v_cmpx_lt_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x22,0x7d] v_cmpx_lt_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x22,0x7d] v_cmpx_lt_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x22,0x7d] v_cmpx_lt_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x22,0x7d] v_cmpx_lt_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x22,0x7d] v_cmpx_lt_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x22,0x7d] v_cmpx_lt_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x22,0x7d] v_cmpx_lt_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x22,0x7d] v_cmpx_lt_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x22,0x7d] v_cmpx_lt_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x22,0x7d] +// GFX12: v_cmpx_lt_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x22,0x7d] v_cmpx_lt_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x23,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x23,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x42,0x7d] v_cmpx_lt_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x42,0x7d] v_cmpx_lt_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x42,0x7d] v_cmpx_lt_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x42,0x7d] v_cmpx_lt_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x42,0x7d] v_cmpx_lt_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x42,0x7d] v_cmpx_lt_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x42,0x7d] v_cmpx_lt_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x42,0x7d] v_cmpx_lt_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x42,0x7d] v_cmpx_lt_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x42,0x7d] v_cmpx_lt_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x42,0x7d] +// GFX12: v_cmpx_lt_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x42,0x7d] v_cmpx_lt_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x43,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x43,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_i16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x62,0x7d] v_cmpx_lt_i16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x62,0x7d] v_cmpx_lt_i16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x62,0x7d] v_cmpx_lt_i16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x62,0x7d] v_cmpx_lt_i16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x62,0x7d] v_cmpx_lt_i16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x62,0x7d] v_cmpx_lt_i16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x62,0x7d] v_cmpx_lt_i16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x62,0x7d] v_cmpx_lt_i16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x62,0x7d] v_cmpx_lt_i16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x62,0x7d] v_cmpx_lt_i16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x62,0x7d] v_cmpx_lt_i16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x62,0x7d] v_cmpx_lt_i16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x62,0x7d] v_cmpx_lt_i16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x62,0x7d] +// GFX12: v_cmpx_lt_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x62,0x7d] v_cmpx_lt_i16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x62,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x62,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_lt_i32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x82,0x7d] v_cmpx_lt_i32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x82,0x7d] v_cmpx_lt_i32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x82,0x7d] v_cmpx_lt_i32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x82,0x7d] v_cmpx_lt_i32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x82,0x7d] v_cmpx_lt_i32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x82,0x7d] v_cmpx_lt_i32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x82,0x7d] v_cmpx_lt_i32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x82,0x7d] v_cmpx_lt_i32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x82,0x7d] v_cmpx_lt_i32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x82,0x7d] v_cmpx_lt_i32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x82,0x7d] v_cmpx_lt_i32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x82,0x7d] v_cmpx_lt_i32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x82,0x7d] v_cmpx_lt_i32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x82,0x7d] +// GFX12: v_cmpx_lt_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x82,0x7d] v_cmpx_lt_i32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x83,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x83,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_i64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xa2,0x7d] v_cmpx_lt_i64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xa2,0x7d] v_cmpx_lt_i64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xa2,0x7d] v_cmpx_lt_i64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xa2,0x7d] v_cmpx_lt_i64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xa2,0x7d] v_cmpx_lt_i64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xa2,0x7d] v_cmpx_lt_i64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xa2,0x7d] v_cmpx_lt_i64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xa2,0x7d] v_cmpx_lt_i64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xa2,0x7d] v_cmpx_lt_i64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xa2,0x7d] v_cmpx_lt_i64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xa2,0x7d] +// GFX12: v_cmpx_lt_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xa2,0x7d] v_cmpx_lt_i64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xa3,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xa3,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_u16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x72,0x7d] v_cmpx_lt_u16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x72,0x7d] v_cmpx_lt_u16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x72,0x7d] v_cmpx_lt_u16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x72,0x7d] v_cmpx_lt_u16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x72,0x7d] v_cmpx_lt_u16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x72,0x7d] v_cmpx_lt_u16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x72,0x7d] v_cmpx_lt_u16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x72,0x7d] v_cmpx_lt_u16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x72,0x7d] v_cmpx_lt_u16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x72,0x7d] v_cmpx_lt_u16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x72,0x7d] v_cmpx_lt_u16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x72,0x7d] v_cmpx_lt_u16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x72,0x7d] v_cmpx_lt_u16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x72,0x7d] +// GFX12: v_cmpx_lt_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x72,0x7d] v_cmpx_lt_u16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x72,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_lt_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x72,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_lt_u32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x92,0x7d] v_cmpx_lt_u32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x92,0x7d] v_cmpx_lt_u32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x92,0x7d] v_cmpx_lt_u32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x92,0x7d] v_cmpx_lt_u32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x92,0x7d] v_cmpx_lt_u32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x92,0x7d] v_cmpx_lt_u32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x92,0x7d] v_cmpx_lt_u32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x92,0x7d] v_cmpx_lt_u32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x92,0x7d] v_cmpx_lt_u32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x92,0x7d] v_cmpx_lt_u32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x92,0x7d] v_cmpx_lt_u32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x92,0x7d] v_cmpx_lt_u32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x92,0x7d] v_cmpx_lt_u32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x92,0x7d] +// GFX12: v_cmpx_lt_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x92,0x7d] v_cmpx_lt_u32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x93,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x93,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_lt_u64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xb2,0x7d] v_cmpx_lt_u64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xb2,0x7d] v_cmpx_lt_u64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xb2,0x7d] v_cmpx_lt_u64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xb2,0x7d] v_cmpx_lt_u64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xb2,0x7d] v_cmpx_lt_u64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xb2,0x7d] v_cmpx_lt_u64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xb2,0x7d] v_cmpx_lt_u64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xb2,0x7d] v_cmpx_lt_u64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xb2,0x7d] v_cmpx_lt_u64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xb2,0x7d] v_cmpx_lt_u64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xb2,0x7d] +// GFX12: v_cmpx_lt_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xb2,0x7d] v_cmpx_lt_u64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xb3,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_lt_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xb3,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ne_i16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 v1, v2 ; encoding: [0x01,0x05,0x6a,0x7d] v_cmpx_ne_i16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 v127, v2 ; encoding: [0x7f,0x05,0x6a,0x7d] v_cmpx_ne_i16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 s1, v2 ; encoding: [0x01,0x04,0x6a,0x7d] v_cmpx_ne_i16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 s105, v2 ; encoding: [0x69,0x04,0x6a,0x7d] v_cmpx_ne_i16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x6a,0x7d] v_cmpx_ne_i16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x6a,0x7d] v_cmpx_ne_i16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x6a,0x7d] v_cmpx_ne_i16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 m0, v2 ; encoding: [0x7d,0x04,0x6a,0x7d] v_cmpx_ne_i16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x6a,0x7d] v_cmpx_ne_i16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x6a,0x7d] v_cmpx_ne_i16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 null, v2 ; encoding: [0x7c,0x04,0x6a,0x7d] v_cmpx_ne_i16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 -1, v2 ; encoding: [0xc1,0x04,0x6a,0x7d] v_cmpx_ne_i16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x6a,0x7d] v_cmpx_ne_i16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x6a,0x7d] +// GFX12: v_cmpx_ne_i16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x6a,0x7d] v_cmpx_ne_i16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x6a,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_i16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x6a,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ne_i32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 v1, v2 ; encoding: [0x01,0x05,0x8a,0x7d] v_cmpx_ne_i32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 v255, v2 ; encoding: [0xff,0x05,0x8a,0x7d] v_cmpx_ne_i32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 s1, v2 ; encoding: [0x01,0x04,0x8a,0x7d] v_cmpx_ne_i32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 s105, v2 ; encoding: [0x69,0x04,0x8a,0x7d] v_cmpx_ne_i32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x8a,0x7d] v_cmpx_ne_i32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x8a,0x7d] v_cmpx_ne_i32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x8a,0x7d] v_cmpx_ne_i32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 m0, v2 ; encoding: [0x7d,0x04,0x8a,0x7d] v_cmpx_ne_i32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x8a,0x7d] v_cmpx_ne_i32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x8a,0x7d] v_cmpx_ne_i32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 null, v2 ; encoding: [0x7c,0x04,0x8a,0x7d] v_cmpx_ne_i32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 -1, v2 ; encoding: [0xc1,0x04,0x8a,0x7d] v_cmpx_ne_i32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x8a,0x7d] v_cmpx_ne_i32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x8a,0x7d] +// GFX12: v_cmpx_ne_i32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x8a,0x7d] v_cmpx_ne_i32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x8b,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_i32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x8b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ne_i64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xaa,0x7d] v_cmpx_ne_i64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xaa,0x7d] v_cmpx_ne_i64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xaa,0x7d] v_cmpx_ne_i64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xaa,0x7d] v_cmpx_ne_i64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xaa,0x7d] v_cmpx_ne_i64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xaa,0x7d] v_cmpx_ne_i64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xaa,0x7d] v_cmpx_ne_i64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xaa,0x7d] v_cmpx_ne_i64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xaa,0x7d] v_cmpx_ne_i64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xaa,0x7d] v_cmpx_ne_i64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xaa,0x7d] +// GFX12: v_cmpx_ne_i64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xaa,0x7d] v_cmpx_ne_i64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xab,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_i64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xab,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ne_u16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 v1, v2 ; encoding: [0x01,0x05,0x7a,0x7d] v_cmpx_ne_u16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 v127, v2 ; encoding: [0x7f,0x05,0x7a,0x7d] v_cmpx_ne_u16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 s1, v2 ; encoding: [0x01,0x04,0x7a,0x7d] v_cmpx_ne_u16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 s105, v2 ; encoding: [0x69,0x04,0x7a,0x7d] v_cmpx_ne_u16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x7a,0x7d] v_cmpx_ne_u16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x7a,0x7d] v_cmpx_ne_u16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x7a,0x7d] v_cmpx_ne_u16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 m0, v2 ; encoding: [0x7d,0x04,0x7a,0x7d] v_cmpx_ne_u16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x7a,0x7d] v_cmpx_ne_u16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x7a,0x7d] v_cmpx_ne_u16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 null, v2 ; encoding: [0x7c,0x04,0x7a,0x7d] v_cmpx_ne_u16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 -1, v2 ; encoding: [0xc1,0x04,0x7a,0x7d] v_cmpx_ne_u16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x7a,0x7d] v_cmpx_ne_u16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x7a,0x7d] +// GFX12: v_cmpx_ne_u16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x7a,0x7d] v_cmpx_ne_u16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x7a,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ne_u16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x7a,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ne_u32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 v1, v2 ; encoding: [0x01,0x05,0x9a,0x7d] v_cmpx_ne_u32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 v255, v2 ; encoding: [0xff,0x05,0x9a,0x7d] v_cmpx_ne_u32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 s1, v2 ; encoding: [0x01,0x04,0x9a,0x7d] v_cmpx_ne_u32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 s105, v2 ; encoding: [0x69,0x04,0x9a,0x7d] v_cmpx_ne_u32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x9a,0x7d] v_cmpx_ne_u32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x9a,0x7d] v_cmpx_ne_u32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x9a,0x7d] v_cmpx_ne_u32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 m0, v2 ; encoding: [0x7d,0x04,0x9a,0x7d] v_cmpx_ne_u32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x9a,0x7d] v_cmpx_ne_u32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x9a,0x7d] v_cmpx_ne_u32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 null, v2 ; encoding: [0x7c,0x04,0x9a,0x7d] v_cmpx_ne_u32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 -1, v2 ; encoding: [0xc1,0x04,0x9a,0x7d] v_cmpx_ne_u32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x9a,0x7d] v_cmpx_ne_u32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x9a,0x7d] +// GFX12: v_cmpx_ne_u32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x9a,0x7d] v_cmpx_ne_u32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x9b,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_u32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x9b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ne_u64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0xba,0x7d] v_cmpx_ne_u64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0xba,0x7d] v_cmpx_ne_u64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0xba,0x7d] v_cmpx_ne_u64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0xba,0x7d] v_cmpx_ne_u64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0xba,0x7d] v_cmpx_ne_u64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0xba,0x7d] v_cmpx_ne_u64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0xba,0x7d] v_cmpx_ne_u64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0xba,0x7d] v_cmpx_ne_u64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0xba,0x7d] v_cmpx_ne_u64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0xba,0x7d] v_cmpx_ne_u64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0xba,0x7d] +// GFX12: v_cmpx_ne_u64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0xba,0x7d] v_cmpx_ne_u64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0xbb,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ne_u64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0xbb,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_neq_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x1a,0x7d] v_cmpx_neq_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x1a,0x7d] v_cmpx_neq_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x1a,0x7d] v_cmpx_neq_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x1a,0x7d] v_cmpx_neq_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x1a,0x7d] v_cmpx_neq_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x1a,0x7d] v_cmpx_neq_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x1a,0x7d] v_cmpx_neq_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x1a,0x7d] v_cmpx_neq_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x1a,0x7d] v_cmpx_neq_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x1a,0x7d] v_cmpx_neq_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x1a,0x7d] v_cmpx_neq_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x1a,0x7d] v_cmpx_neq_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x1a,0x7d] v_cmpx_neq_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x1a,0x7d] +// GFX12: v_cmpx_neq_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x1a,0x7d] v_cmpx_neq_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x1a,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_neq_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1a,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_neq_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x3a,0x7d] v_cmpx_neq_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x3a,0x7d] v_cmpx_neq_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x3a,0x7d] v_cmpx_neq_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x3a,0x7d] v_cmpx_neq_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x3a,0x7d] v_cmpx_neq_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x3a,0x7d] v_cmpx_neq_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x3a,0x7d] v_cmpx_neq_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x3a,0x7d] v_cmpx_neq_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x3a,0x7d] v_cmpx_neq_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x3a,0x7d] v_cmpx_neq_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x3a,0x7d] v_cmpx_neq_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x3a,0x7d] v_cmpx_neq_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x3a,0x7d] v_cmpx_neq_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x3a,0x7d] +// GFX12: v_cmpx_neq_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x3a,0x7d] v_cmpx_neq_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x3b,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_neq_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_neq_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5a,0x7d] v_cmpx_neq_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5a,0x7d] v_cmpx_neq_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5a,0x7d] v_cmpx_neq_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5a,0x7d] v_cmpx_neq_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x5a,0x7d] v_cmpx_neq_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5a,0x7d] v_cmpx_neq_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x5a,0x7d] v_cmpx_neq_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x5a,0x7d] v_cmpx_neq_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x5a,0x7d] v_cmpx_neq_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5a,0x7d] v_cmpx_neq_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x5a,0x7d] +// GFX12: v_cmpx_neq_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5a,0x7d] v_cmpx_neq_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x5b,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_neq_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5b,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nge_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x12,0x7d] v_cmpx_nge_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x12,0x7d] v_cmpx_nge_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x12,0x7d] v_cmpx_nge_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x12,0x7d] v_cmpx_nge_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x12,0x7d] v_cmpx_nge_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x12,0x7d] v_cmpx_nge_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x12,0x7d] v_cmpx_nge_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x12,0x7d] v_cmpx_nge_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x12,0x7d] v_cmpx_nge_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x12,0x7d] v_cmpx_nge_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x12,0x7d] v_cmpx_nge_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x12,0x7d] v_cmpx_nge_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x12,0x7d] v_cmpx_nge_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x12,0x7d] +// GFX12: v_cmpx_nge_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x12,0x7d] v_cmpx_nge_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x12,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nge_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x12,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_nge_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x32,0x7d] v_cmpx_nge_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x32,0x7d] v_cmpx_nge_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x32,0x7d] v_cmpx_nge_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x32,0x7d] v_cmpx_nge_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x32,0x7d] v_cmpx_nge_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x32,0x7d] v_cmpx_nge_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x32,0x7d] v_cmpx_nge_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x32,0x7d] v_cmpx_nge_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x32,0x7d] v_cmpx_nge_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x32,0x7d] v_cmpx_nge_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x32,0x7d] v_cmpx_nge_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x32,0x7d] v_cmpx_nge_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x32,0x7d] v_cmpx_nge_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x32,0x7d] +// GFX12: v_cmpx_nge_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x32,0x7d] v_cmpx_nge_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x33,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nge_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x33,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nge_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x52,0x7d] v_cmpx_nge_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x52,0x7d] v_cmpx_nge_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x52,0x7d] v_cmpx_nge_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x52,0x7d] v_cmpx_nge_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x52,0x7d] v_cmpx_nge_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x52,0x7d] v_cmpx_nge_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x52,0x7d] v_cmpx_nge_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x52,0x7d] v_cmpx_nge_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x52,0x7d] v_cmpx_nge_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x52,0x7d] v_cmpx_nge_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x52,0x7d] +// GFX12: v_cmpx_nge_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x52,0x7d] v_cmpx_nge_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x53,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nge_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x53,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x16,0x7d] v_cmpx_ngt_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x16,0x7d] v_cmpx_ngt_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x16,0x7d] v_cmpx_ngt_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x16,0x7d] v_cmpx_ngt_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x16,0x7d] v_cmpx_ngt_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x16,0x7d] v_cmpx_ngt_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x16,0x7d] v_cmpx_ngt_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x16,0x7d] v_cmpx_ngt_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x16,0x7d] v_cmpx_ngt_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x16,0x7d] v_cmpx_ngt_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x16,0x7d] v_cmpx_ngt_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x16,0x7d] v_cmpx_ngt_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x16,0x7d] v_cmpx_ngt_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x16,0x7d] +// GFX12: v_cmpx_ngt_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x16,0x7d] v_cmpx_ngt_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x16,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_ngt_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x16,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_ngt_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x36,0x7d] v_cmpx_ngt_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x36,0x7d] v_cmpx_ngt_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x36,0x7d] v_cmpx_ngt_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x36,0x7d] v_cmpx_ngt_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x36,0x7d] v_cmpx_ngt_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x36,0x7d] v_cmpx_ngt_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x36,0x7d] v_cmpx_ngt_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x36,0x7d] v_cmpx_ngt_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x36,0x7d] v_cmpx_ngt_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x36,0x7d] v_cmpx_ngt_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x36,0x7d] v_cmpx_ngt_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x36,0x7d] v_cmpx_ngt_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x36,0x7d] v_cmpx_ngt_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x36,0x7d] +// GFX12: v_cmpx_ngt_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x36,0x7d] v_cmpx_ngt_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x37,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ngt_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x37,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_ngt_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x56,0x7d] v_cmpx_ngt_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x56,0x7d] v_cmpx_ngt_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x56,0x7d] v_cmpx_ngt_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x56,0x7d] v_cmpx_ngt_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x56,0x7d] v_cmpx_ngt_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x56,0x7d] v_cmpx_ngt_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x56,0x7d] v_cmpx_ngt_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x56,0x7d] v_cmpx_ngt_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x56,0x7d] v_cmpx_ngt_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x56,0x7d] v_cmpx_ngt_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x56,0x7d] +// GFX12: v_cmpx_ngt_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x56,0x7d] v_cmpx_ngt_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x57,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_ngt_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x57,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nle_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x18,0x7d] v_cmpx_nle_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x18,0x7d] v_cmpx_nle_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x18,0x7d] v_cmpx_nle_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x18,0x7d] v_cmpx_nle_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x18,0x7d] v_cmpx_nle_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x18,0x7d] v_cmpx_nle_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x18,0x7d] v_cmpx_nle_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x18,0x7d] v_cmpx_nle_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x18,0x7d] v_cmpx_nle_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x18,0x7d] v_cmpx_nle_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x18,0x7d] v_cmpx_nle_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x18,0x7d] v_cmpx_nle_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x18,0x7d] v_cmpx_nle_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x18,0x7d] +// GFX12: v_cmpx_nle_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x18,0x7d] v_cmpx_nle_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x18,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nle_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x18,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_nle_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x38,0x7d] v_cmpx_nle_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x38,0x7d] v_cmpx_nle_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x38,0x7d] v_cmpx_nle_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x38,0x7d] v_cmpx_nle_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x38,0x7d] v_cmpx_nle_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x38,0x7d] v_cmpx_nle_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x38,0x7d] v_cmpx_nle_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x38,0x7d] v_cmpx_nle_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x38,0x7d] v_cmpx_nle_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x38,0x7d] v_cmpx_nle_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x38,0x7d] v_cmpx_nle_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x38,0x7d] v_cmpx_nle_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x38,0x7d] v_cmpx_nle_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x38,0x7d] +// GFX12: v_cmpx_nle_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x38,0x7d] v_cmpx_nle_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x39,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nle_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x39,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nle_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x58,0x7d] v_cmpx_nle_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x58,0x7d] v_cmpx_nle_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x58,0x7d] v_cmpx_nle_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x58,0x7d] v_cmpx_nle_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x58,0x7d] v_cmpx_nle_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x58,0x7d] v_cmpx_nle_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x58,0x7d] v_cmpx_nle_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x58,0x7d] v_cmpx_nle_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x58,0x7d] v_cmpx_nle_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x58,0x7d] v_cmpx_nle_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x58,0x7d] +// GFX12: v_cmpx_nle_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x58,0x7d] v_cmpx_nle_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x59,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nle_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x59,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x14,0x7d] v_cmpx_nlg_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x14,0x7d] v_cmpx_nlg_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x14,0x7d] v_cmpx_nlg_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x14,0x7d] v_cmpx_nlg_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x14,0x7d] v_cmpx_nlg_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x14,0x7d] v_cmpx_nlg_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x14,0x7d] v_cmpx_nlg_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x14,0x7d] v_cmpx_nlg_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x14,0x7d] v_cmpx_nlg_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x14,0x7d] v_cmpx_nlg_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x14,0x7d] v_cmpx_nlg_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x14,0x7d] v_cmpx_nlg_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x14,0x7d] v_cmpx_nlg_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x14,0x7d] +// GFX12: v_cmpx_nlg_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x14,0x7d] v_cmpx_nlg_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x14,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlg_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x14,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_nlg_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x34,0x7d] v_cmpx_nlg_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x34,0x7d] v_cmpx_nlg_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x34,0x7d] v_cmpx_nlg_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x34,0x7d] v_cmpx_nlg_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x34,0x7d] v_cmpx_nlg_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x34,0x7d] v_cmpx_nlg_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x34,0x7d] v_cmpx_nlg_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x34,0x7d] v_cmpx_nlg_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x34,0x7d] v_cmpx_nlg_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x34,0x7d] v_cmpx_nlg_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x34,0x7d] v_cmpx_nlg_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x34,0x7d] v_cmpx_nlg_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x34,0x7d] v_cmpx_nlg_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x34,0x7d] +// GFX12: v_cmpx_nlg_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x34,0x7d] v_cmpx_nlg_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x35,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlg_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x35,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nlg_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x54,0x7d] v_cmpx_nlg_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x54,0x7d] v_cmpx_nlg_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x54,0x7d] v_cmpx_nlg_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x54,0x7d] v_cmpx_nlg_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x54,0x7d] v_cmpx_nlg_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x54,0x7d] v_cmpx_nlg_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x54,0x7d] v_cmpx_nlg_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x54,0x7d] v_cmpx_nlg_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x54,0x7d] v_cmpx_nlg_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x54,0x7d] v_cmpx_nlg_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x54,0x7d] +// GFX12: v_cmpx_nlg_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x54,0x7d] v_cmpx_nlg_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x55,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlg_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x55,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x1c,0x7d] v_cmpx_nlt_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x1c,0x7d] v_cmpx_nlt_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x1c,0x7d] v_cmpx_nlt_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x1c,0x7d] v_cmpx_nlt_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x1c,0x7d] v_cmpx_nlt_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x1c,0x7d] v_cmpx_nlt_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x1c,0x7d] v_cmpx_nlt_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x1c,0x7d] v_cmpx_nlt_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x1c,0x7d] v_cmpx_nlt_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x1c,0x7d] v_cmpx_nlt_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x1c,0x7d] v_cmpx_nlt_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x1c,0x7d] v_cmpx_nlt_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x1c,0x7d] v_cmpx_nlt_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x1c,0x7d] +// GFX12: v_cmpx_nlt_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x1c,0x7d] v_cmpx_nlt_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x1c,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_nlt_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x1c,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_nlt_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x3c,0x7d] v_cmpx_nlt_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x3c,0x7d] v_cmpx_nlt_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x3c,0x7d] v_cmpx_nlt_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x3c,0x7d] v_cmpx_nlt_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x3c,0x7d] v_cmpx_nlt_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x3c,0x7d] v_cmpx_nlt_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x3c,0x7d] v_cmpx_nlt_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x3c,0x7d] v_cmpx_nlt_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x3c,0x7d] v_cmpx_nlt_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x3c,0x7d] v_cmpx_nlt_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x3c,0x7d] v_cmpx_nlt_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x3c,0x7d] v_cmpx_nlt_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x3c,0x7d] v_cmpx_nlt_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x3c,0x7d] +// GFX12: v_cmpx_nlt_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x3c,0x7d] v_cmpx_nlt_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x3d,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlt_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x3d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_nlt_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x5c,0x7d] v_cmpx_nlt_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x5c,0x7d] v_cmpx_nlt_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x5c,0x7d] v_cmpx_nlt_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x5c,0x7d] v_cmpx_nlt_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x5c,0x7d] v_cmpx_nlt_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x5c,0x7d] v_cmpx_nlt_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x5c,0x7d] v_cmpx_nlt_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x5c,0x7d] v_cmpx_nlt_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x5c,0x7d] v_cmpx_nlt_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x5c,0x7d] v_cmpx_nlt_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x5c,0x7d] +// GFX12: v_cmpx_nlt_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x5c,0x7d] v_cmpx_nlt_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x5d,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_nlt_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x5d,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_o_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x0e,0x7d] v_cmpx_o_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x0e,0x7d] v_cmpx_o_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x0e,0x7d] v_cmpx_o_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x0e,0x7d] v_cmpx_o_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x0e,0x7d] v_cmpx_o_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x0e,0x7d] v_cmpx_o_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x0e,0x7d] v_cmpx_o_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x0e,0x7d] v_cmpx_o_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x0e,0x7d] v_cmpx_o_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x0e,0x7d] v_cmpx_o_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x0e,0x7d] v_cmpx_o_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x0e,0x7d] v_cmpx_o_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x0e,0x7d] v_cmpx_o_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x0e,0x7d] +// GFX12: v_cmpx_o_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x0e,0x7d] v_cmpx_o_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x0e,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_o_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x0e,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_o_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x2e,0x7d] v_cmpx_o_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x2e,0x7d] v_cmpx_o_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x2e,0x7d] v_cmpx_o_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x2e,0x7d] v_cmpx_o_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x2e,0x7d] v_cmpx_o_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x2e,0x7d] v_cmpx_o_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x2e,0x7d] v_cmpx_o_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x2e,0x7d] v_cmpx_o_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x2e,0x7d] v_cmpx_o_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x2e,0x7d] v_cmpx_o_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x2e,0x7d] v_cmpx_o_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x2e,0x7d] v_cmpx_o_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x2e,0x7d] v_cmpx_o_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x2e,0x7d] +// GFX12: v_cmpx_o_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x2e,0x7d] v_cmpx_o_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x2f,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_o_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x2f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_o_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x4e,0x7d] v_cmpx_o_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x4e,0x7d] v_cmpx_o_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x4e,0x7d] v_cmpx_o_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x4e,0x7d] v_cmpx_o_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x4e,0x7d] v_cmpx_o_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x4e,0x7d] v_cmpx_o_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x4e,0x7d] v_cmpx_o_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x4e,0x7d] v_cmpx_o_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x4e,0x7d] v_cmpx_o_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x4e,0x7d] v_cmpx_o_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x4e,0x7d] +// GFX12: v_cmpx_o_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x4e,0x7d] v_cmpx_o_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x4f,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_o_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x4f,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_u_f16 v1, v2 -// GFX12: encoding: [0x01,0x05,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 v1, v2 ; encoding: [0x01,0x05,0x10,0x7d] v_cmpx_u_f16 v127, v2 -// GFX12: encoding: [0x7f,0x05,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 v127, v2 ; encoding: [0x7f,0x05,0x10,0x7d] v_cmpx_u_f16 s1, v2 -// GFX12: encoding: [0x01,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 s1, v2 ; encoding: [0x01,0x04,0x10,0x7d] v_cmpx_u_f16 s105, v2 -// GFX12: encoding: [0x69,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 s105, v2 ; encoding: [0x69,0x04,0x10,0x7d] v_cmpx_u_f16 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x10,0x7d] v_cmpx_u_f16 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x10,0x7d] v_cmpx_u_f16 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x10,0x7d] v_cmpx_u_f16 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 m0, v2 ; encoding: [0x7d,0x04,0x10,0x7d] v_cmpx_u_f16 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x10,0x7d] v_cmpx_u_f16 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x10,0x7d] v_cmpx_u_f16 null, v2 -// GFX12: encoding: [0x7c,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 null, v2 ; encoding: [0x7c,0x04,0x10,0x7d] v_cmpx_u_f16 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 -1, v2 ; encoding: [0xc1,0x04,0x10,0x7d] v_cmpx_u_f16 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 0.5, v2 ; encoding: [0xf0,0x04,0x10,0x7d] v_cmpx_u_f16 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x10,0x7d] +// GFX12: v_cmpx_u_f16_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x10,0x7d] v_cmpx_u_f16 0xfe0b, v127 -// GFX12: encoding: [0xff,0xfe,0x10,0x7d,0x0b,0xfe,0x00,0x00] +// GFX12: v_cmpx_u_f16_e32 0xfe0b, v127 ; encoding: [0xff,0xfe,0x10,0x7d,0x0b,0xfe,0x00,0x00] v_cmpx_u_f32 v1, v2 -// GFX12: encoding: [0x01,0x05,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 v1, v2 ; encoding: [0x01,0x05,0x30,0x7d] v_cmpx_u_f32 v255, v2 -// GFX12: encoding: [0xff,0x05,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 v255, v2 ; encoding: [0xff,0x05,0x30,0x7d] v_cmpx_u_f32 s1, v2 -// GFX12: encoding: [0x01,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 s1, v2 ; encoding: [0x01,0x04,0x30,0x7d] v_cmpx_u_f32 s105, v2 -// GFX12: encoding: [0x69,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 s105, v2 ; encoding: [0x69,0x04,0x30,0x7d] v_cmpx_u_f32 vcc_lo, v2 -// GFX12: encoding: [0x6a,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 vcc_lo, v2 ; encoding: [0x6a,0x04,0x30,0x7d] v_cmpx_u_f32 vcc_hi, v2 -// GFX12: encoding: [0x6b,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 vcc_hi, v2 ; encoding: [0x6b,0x04,0x30,0x7d] v_cmpx_u_f32 ttmp15, v2 -// GFX12: encoding: [0x7b,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 ttmp15, v2 ; encoding: [0x7b,0x04,0x30,0x7d] v_cmpx_u_f32 m0, v2 -// GFX12: encoding: [0x7d,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 m0, v2 ; encoding: [0x7d,0x04,0x30,0x7d] v_cmpx_u_f32 exec_lo, v2 -// GFX12: encoding: [0x7e,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 exec_lo, v2 ; encoding: [0x7e,0x04,0x30,0x7d] v_cmpx_u_f32 exec_hi, v2 -// GFX12: encoding: [0x7f,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 exec_hi, v2 ; encoding: [0x7f,0x04,0x30,0x7d] v_cmpx_u_f32 null, v2 -// GFX12: encoding: [0x7c,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 null, v2 ; encoding: [0x7c,0x04,0x30,0x7d] v_cmpx_u_f32 -1, v2 -// GFX12: encoding: [0xc1,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 -1, v2 ; encoding: [0xc1,0x04,0x30,0x7d] v_cmpx_u_f32 0.5, v2 -// GFX12: encoding: [0xf0,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 0.5, v2 ; encoding: [0xf0,0x04,0x30,0x7d] v_cmpx_u_f32 src_scc, v2 -// GFX12: encoding: [0xfd,0x04,0x30,0x7d] +// GFX12: v_cmpx_u_f32_e32 src_scc, v2 ; encoding: [0xfd,0x04,0x30,0x7d] v_cmpx_u_f32 0xaf123456, v255 -// GFX12: encoding: [0xff,0xfe,0x31,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_u_f32_e32 0xaf123456, v255 ; encoding: [0xff,0xfe,0x31,0x7d,0x56,0x34,0x12,0xaf] v_cmpx_u_f64 v[1:2], v[2:3] -// GFX12: encoding: [0x01,0x05,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 v[1:2], v[2:3] ; encoding: [0x01,0x05,0x50,0x7d] v_cmpx_u_f64 v[254:255], v[2:3] -// GFX12: encoding: [0xfe,0x05,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 v[254:255], v[2:3] ; encoding: [0xfe,0x05,0x50,0x7d] v_cmpx_u_f64 s[2:3], v[2:3] -// GFX12: encoding: [0x02,0x04,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 s[2:3], v[2:3] ; encoding: [0x02,0x04,0x50,0x7d] v_cmpx_u_f64 s[104:105], v[2:3] -// GFX12: encoding: [0x68,0x04,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 s[104:105], v[2:3] ; encoding: [0x68,0x04,0x50,0x7d] v_cmpx_u_f64 vcc, v[2:3] -// GFX12: encoding: [0x6a,0x04,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 vcc, v[2:3] ; encoding: [0x6a,0x04,0x50,0x7d] v_cmpx_u_f64 ttmp[14:15], v[2:3] -// GFX12: encoding: [0x7a,0x04,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 ttmp[14:15], v[2:3] ; encoding: [0x7a,0x04,0x50,0x7d] v_cmpx_u_f64 exec, v[2:3] -// GFX12: encoding: [0x7e,0x04,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 exec, v[2:3] ; encoding: [0x7e,0x04,0x50,0x7d] v_cmpx_u_f64 null, v[2:3] -// GFX12: encoding: [0x7c,0x04,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 null, v[2:3] ; encoding: [0x7c,0x04,0x50,0x7d] v_cmpx_u_f64 -1, v[2:3] -// GFX12: encoding: [0xc1,0x04,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 -1, v[2:3] ; encoding: [0xc1,0x04,0x50,0x7d] v_cmpx_u_f64 0.5, v[2:3] -// GFX12: encoding: [0xf0,0x04,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 0.5, v[2:3] ; encoding: [0xf0,0x04,0x50,0x7d] v_cmpx_u_f64 src_scc, v[2:3] -// GFX12: encoding: [0xfd,0x04,0x50,0x7d] +// GFX12: v_cmpx_u_f64_e32 src_scc, v[2:3] ; encoding: [0xfd,0x04,0x50,0x7d] v_cmpx_u_f64 0xaf123456, v[254:255] -// GFX12: encoding: [0xff,0xfc,0x51,0x7d,0x56,0x34,0x12,0xaf] +// GFX12: v_cmpx_u_f64_e32 0xaf123456, v[254:255] ; encoding: [0xff,0xfc,0x51,0x7d,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp16.s b/llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp16.s index 2dc2ecfbe9ba7..857d6267a215f 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp16.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp16.s @@ -1,2270 +1,2271 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s v_cmpx_class_f16_dpp v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_class_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_class_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x40,0x01,0xff] v_cmpx_class_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x41,0x01,0xff] v_cmpx_class_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x01,0x01,0xff] v_cmpx_class_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_class_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x11,0x01,0xff] v_cmpx_class_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_class_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x21,0x01,0xff] v_cmpx_class_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_class_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_class_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x50,0x01,0xff] v_cmpx_class_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_class_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_class_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_class_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfa,0x7d,0x01,0x60,0x09,0x13] v_cmpx_class_f16 -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfa,0x7d,0x7f,0x6f,0x35,0x30] +// GFX12: v_cmpx_class_f16 -|v127|, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfa,0x7d,0x7f,0x6f,0x35,0x30] v_cmpx_class_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_class_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_class_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x40,0x01,0xff] v_cmpx_class_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x41,0x01,0xff] v_cmpx_class_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x01,0x01,0xff] v_cmpx_class_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_class_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x11,0x01,0xff] v_cmpx_class_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_class_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x21,0x01,0xff] v_cmpx_class_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_class_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_class_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x50,0x01,0xff] v_cmpx_class_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_class_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_class_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_class_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0xfc,0x7d,0x01,0x60,0x09,0x13] v_cmpx_class_f32 -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0xfd,0x7d,0xff,0x6f,0x35,0x30] +// GFX12: v_cmpx_class_f32 -|v255|, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0xfd,0x7d,0xff,0x6f,0x35,0x30] v_cmpx_eq_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x04,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x04,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x04,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_eq_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x04,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_eq_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x24,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x24,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x25,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_eq_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x25,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_eq_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_i16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x64,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x64,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x64,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x64,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_eq_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_i32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x84,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x84,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x85,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x85,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_eq_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_u16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x74,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x74,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x74,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x74,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_eq_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_eq_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_eq_u32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x40,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x41,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x01,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x11,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x21,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_eq_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x50,0x01,0xff] v_cmpx_eq_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_eq_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_eq_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x94,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_eq_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x94,0x7d,0x01,0x60,0x09,0x13] v_cmpx_eq_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x95,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_eq_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x95,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_ge_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x0c,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_ge_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0c,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_ge_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x2d,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_ge_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2d,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_ge_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_i16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x6c,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6c,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_ge_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_i32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x8d,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8d,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_ge_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_u16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x7c,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7c,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_ge_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ge_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ge_u32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ge_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ge_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ge_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ge_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ge_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ge_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x9d,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ge_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9d,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_gt_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x08,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x08,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x08,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_gt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x08,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_gt_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x28,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x28,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x29,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_gt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x29,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_gt_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_i16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x68,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x68,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x68,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x68,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_gt_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_i32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x88,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x88,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x89,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x89,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_gt_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_u16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x78,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x78,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x78,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x78,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_gt_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_gt_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_gt_u32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x40,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x41,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x01,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x11,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x21,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_gt_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x50,0x01,0xff] v_cmpx_gt_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_gt_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_gt_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x98,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_gt_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x98,0x7d,0x01,0x60,0x09,0x13] v_cmpx_gt_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x99,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_gt_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x99,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_le_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x06,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x06,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x06,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_le_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x06,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_le_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x26,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x26,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x27,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_le_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x27,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_le_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_i16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_i16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_i16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_i16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_i16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_i16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_i16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_i16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x66,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x66,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x66,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x66,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_le_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_i32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_i32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_i32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_i32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_i32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_i32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_i32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_i32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x86,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x86,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x87,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x87,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_le_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_u16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_u16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_u16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_u16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_u16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_u16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_u16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_u16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x76,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x76,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x76,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x76,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_le_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_le_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_le_u32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x40,0x01,0xff] v_cmpx_le_u32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x41,0x01,0xff] v_cmpx_le_u32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x01,0x01,0xff] v_cmpx_le_u32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_le_u32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x11,0x01,0xff] v_cmpx_le_u32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_le_u32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x21,0x01,0xff] v_cmpx_le_u32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_le_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_le_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x50,0x01,0xff] v_cmpx_le_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_le_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_le_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x96,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_le_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x96,0x7d,0x01,0x60,0x09,0x13] v_cmpx_le_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x97,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_le_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x97,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_lg_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lg_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lg_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lg_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lg_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lg_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lg_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lg_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lg_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x0a,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_lg_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0a,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_lg_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lg_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lg_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lg_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lg_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lg_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lg_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lg_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lg_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x2b,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_lg_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2b,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_lt_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x02,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x02,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x02,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_lt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x02,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_lt_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x22,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x22,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x23,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_lt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x23,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_lt_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_i16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x62,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x62,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x62,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x62,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_lt_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_i32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x82,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x82,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x83,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x83,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_lt_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_u16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x72,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x72,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x72,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x72,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_lt_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_lt_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_lt_u32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x40,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x41,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x01,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x11,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x21,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_lt_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x50,0x01,0xff] v_cmpx_lt_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_lt_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_lt_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x92,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_lt_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x92,0x7d,0x01,0x60,0x09,0x13] v_cmpx_lt_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x93,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_lt_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x93,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_ne_i16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ne_i16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ne_i16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ne_i16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ne_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ne_i16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ne_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ne_i16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x6a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ne_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x6a,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_ne_i16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x6a,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_ne_i32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ne_i32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ne_i32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ne_i32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ne_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ne_i32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ne_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ne_i32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x8a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ne_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x8b,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ne_i32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x8b,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_ne_u16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ne_u16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ne_u16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ne_u16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ne_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ne_u16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ne_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ne_u16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x7a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ne_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x7a,0x7d,0x7f,0x6f,0x05,0x30] +// GFX12: v_cmpx_ne_u16 v127, v127 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x7a,0x7d,0x7f,0x6f,0x05,0x30] v_cmpx_ne_u32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ne_u32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ne_u32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ne_u32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ne_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ne_u32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ne_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ne_u32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x9a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ne_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x9b,0x7d,0xff,0x6f,0x05,0x30] +// GFX12: v_cmpx_ne_u32 v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x9b,0x7d,0xff,0x6f,0x05,0x30] v_cmpx_neq_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_neq_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_neq_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_neq_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_neq_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_neq_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_neq_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_neq_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_neq_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x1a,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_neq_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1a,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_neq_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_neq_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_neq_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x40,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x41,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x01,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x11,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x21,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_neq_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x50,0x01,0xff] v_cmpx_neq_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_neq_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_neq_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_neq_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3a,0x7d,0x01,0x60,0x09,0x13] v_cmpx_neq_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x3b,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_neq_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3b,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_nge_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nge_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nge_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nge_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nge_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nge_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nge_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x12,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nge_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x12,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nge_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x12,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_nge_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x12,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_nge_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nge_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nge_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nge_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nge_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nge_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nge_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x32,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nge_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x32,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nge_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x33,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_nge_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x33,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_ngt_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ngt_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ngt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ngt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x16,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ngt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x16,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ngt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x16,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_ngt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x16,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_ngt_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_ngt_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_ngt_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x40,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x41,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x01,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x11,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x21,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x50,0x01,0xff] v_cmpx_ngt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_ngt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x36,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_ngt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x36,0x7d,0x01,0x60,0x09,0x13] v_cmpx_ngt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x37,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_ngt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x37,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_nle_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nle_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nle_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nle_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nle_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nle_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nle_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x18,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nle_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x18,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nle_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x18,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_nle_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x18,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_nle_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nle_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nle_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nle_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nle_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nle_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nle_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x38,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nle_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x38,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nle_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x39,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_nle_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x39,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_nlg_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nlg_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nlg_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nlg_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x14,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nlg_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x14,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nlg_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x14,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_nlg_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x14,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_nlg_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nlg_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nlg_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nlg_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nlg_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x34,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nlg_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x34,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nlg_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x35,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_nlg_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x35,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_nlt_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nlt_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nlt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nlt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nlt_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x1c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nlt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x1c,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_nlt_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x1c,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_nlt_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_nlt_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_nlt_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x40,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x41,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x01,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x11,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x21,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x50,0x01,0xff] v_cmpx_nlt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_nlt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_nlt_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x3c,0x7d,0x01,0x60,0x09,0x13] v_cmpx_nlt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x3d,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_nlt_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x3d,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_o_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_o_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_o_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_o_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_o_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_o_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_o_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_o_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_o_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_o_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_o_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_o_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_o_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_o_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_o_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_o_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_o_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x0e,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_o_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x0e,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_o_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_o_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_o_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x40,0x01,0xff] v_cmpx_o_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x41,0x01,0xff] v_cmpx_o_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x01,0x01,0xff] v_cmpx_o_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_o_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x11,0x01,0xff] v_cmpx_o_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_o_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x21,0x01,0xff] v_cmpx_o_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_o_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_o_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x50,0x01,0xff] v_cmpx_o_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_o_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_o_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_o_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x2e,0x7d,0x01,0x60,0x09,0x13] v_cmpx_o_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x2f,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_o_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x2f,0x7d,0xff,0x6f,0xf5,0x30] v_cmpx_u_f16 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_u_f16 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_u_f16 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x40,0x01,0xff] v_cmpx_u_f16 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x41,0x01,0xff] v_cmpx_u_f16 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x01,0x01,0xff] v_cmpx_u_f16 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_u_f16 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x11,0x01,0xff] v_cmpx_u_f16 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_u_f16 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x21,0x01,0xff] v_cmpx_u_f16 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_u_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_u_f16 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x50,0x01,0xff] v_cmpx_u_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_u_f16 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_u_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x10,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_u_f16 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x10,0x7d,0x01,0x60,0x09,0x13] v_cmpx_u_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x10,0x7d,0x7f,0x6f,0xf5,0x30] +// GFX12: v_cmpx_u_f16 -|v127|, -|v127| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x10,0x7d,0x7f,0x6f,0xf5,0x30] v_cmpx_u_f32 v1, v2 quad_perm:[3,2,1,0] -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x1b,0x00,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 quad_perm:[3,2,1,0] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x1b,0x00,0xff] v_cmpx_u_f32 v1, v2 quad_perm:[0,1,2,3] -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0xe4,0x00,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0xe4,0x00,0xff] v_cmpx_u_f32 v1, v2 row_mirror -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x40,0x01,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 row_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x40,0x01,0xff] v_cmpx_u_f32 v1, v2 row_half_mirror -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x41,0x01,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 row_half_mirror row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x41,0x01,0xff] v_cmpx_u_f32 v1, v2 row_shl:1 -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x01,0x01,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 row_shl:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x01,0x01,0xff] v_cmpx_u_f32 v1, v2 row_shl:15 -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x0f,0x01,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 row_shl:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x0f,0x01,0xff] v_cmpx_u_f32 v1, v2 row_shr:1 -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x11,0x01,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 row_shr:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x11,0x01,0xff] v_cmpx_u_f32 v1, v2 row_shr:15 -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x1f,0x01,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 row_shr:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x1f,0x01,0xff] v_cmpx_u_f32 v1, v2 row_ror:1 -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x21,0x01,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 row_ror:1 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x21,0x01,0xff] v_cmpx_u_f32 v1, v2 row_ror:15 -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x2f,0x01,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 row_ror:15 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x2f,0x01,0xff] v_cmpx_u_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x50,0x01,0xff] +// GFX12: v_cmpx_u_f32 v1, v2 row_share:0 row_mask:0xf bank_mask:0xf ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x50,0x01,0xff] v_cmpx_u_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x5f,0x01,0x01] +// GFX12: v_cmpx_u_f32 v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x5f,0x01,0x01] v_cmpx_u_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0 -// GFX12: encoding: [0xfa,0x04,0x30,0x7d,0x01,0x60,0x09,0x13] +// GFX12: v_cmpx_u_f32 v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 ; encoding: [0xfa,0x04,0x30,0x7d,0x01,0x60,0x09,0x13] v_cmpx_u_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1 -// GFX12: encoding: [0xfa,0xfe,0x31,0x7d,0xff,0x6f,0xf5,0x30] +// GFX12: v_cmpx_u_f32 -|v255|, -|v255| row_xmask:15 row_mask:0x3 bank_mask:0x0 fi:1 ; encoding: [0xfa,0xfe,0x31,0x7d,0xff,0x6f,0xf5,0x30] diff --git a/llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp8.s b/llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp8.s index a679d693a595f..8ee6b7d488fdf 100644 --- a/llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp8.s +++ b/llvm/test/MC/AMDGPU/gfx12_asm_vopcx_dpp8.s @@ -1,488 +1,489 @@ +// NOTE: Assertions have been autogenerated by utils/update_mc_test_checks.py UTC_ARGS: --version 5 // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize32,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -mattr=+wavefrontsize64,+real-true16 -show-encoding %s | FileCheck --check-prefixes=GFX12 %s v_cmpx_class_f16_dpp v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfa,0x7d,0x01,0x77,0x39,0x05] v_cmpx_class_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfa,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_class_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfa,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05] v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_class_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0xfc,0x7d,0x01,0x77,0x39,0x05] v_cmpx_class_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0xfd,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_class_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0xfd,0x7d,0xff,0x00,0x00,0x00] v_cmpx_eq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x04,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x04,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x04,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x04,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x04,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x04,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_eq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x24,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x24,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x24,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x24,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x25,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x25,0x7d,0xff,0x00,0x00,0x00] v_cmpx_eq_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x64,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x64,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x64,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x64,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x64,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x64,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_eq_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x84,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x84,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x84,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x84,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x85,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x85,0x7d,0xff,0x00,0x00,0x00] v_cmpx_eq_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x74,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x74,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x74,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x74,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x74,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x74,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_eq_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x94,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x94,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x94,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_eq_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x94,0x7d,0x01,0x77,0x39,0x05] v_cmpx_eq_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x95,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_eq_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x95,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x0c,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0c,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x2c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x2c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x2d,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2d,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ge_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x6c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x6c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x6c,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6c,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ge_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x8c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x8c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x8d,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8d,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ge_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x7c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x7c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x7c,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7c,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ge_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x9c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x9c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ge_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ge_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x9d,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ge_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9d,0x7d,0xff,0x00,0x00,0x00] v_cmpx_gt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x08,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x08,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x08,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x08,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x08,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x08,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_gt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x28,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x28,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x28,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x28,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x29,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x29,0x7d,0xff,0x00,0x00,0x00] v_cmpx_gt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x68,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x68,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x68,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x68,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x68,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x68,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_gt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x88,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x88,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x88,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x88,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x89,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x89,0x7d,0xff,0x00,0x00,0x00] v_cmpx_gt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x78,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x78,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x78,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x78,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x78,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x78,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_gt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x98,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x98,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x98,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_gt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x98,0x7d,0x01,0x77,0x39,0x05] v_cmpx_gt_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x99,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_gt_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x99,0x7d,0xff,0x00,0x00,0x00] v_cmpx_le_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x06,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x06,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x06,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x06,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x06,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_le_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x06,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_le_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x26,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x26,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x26,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x26,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x27,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_le_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x27,0x7d,0xff,0x00,0x00,0x00] v_cmpx_le_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x66,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x66,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x66,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x66,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x66,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_le_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x66,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_le_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x86,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x86,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x86,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x86,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x87,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_le_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x87,0x7d,0xff,0x00,0x00,0x00] v_cmpx_le_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x76,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x76,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x76,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x76,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x76,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_le_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x76,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_le_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x96,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x96,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x96,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_le_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x96,0x7d,0x01,0x77,0x39,0x05] v_cmpx_le_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x97,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_le_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x97,0x7d,0xff,0x00,0x00,0x00] v_cmpx_lg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lg_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x0a,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_lg_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0a,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_lg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x2a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x2a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lg_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x2b,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lg_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2b,0x7d,0xff,0x00,0x00,0x00] v_cmpx_lt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x02,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x02,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x02,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x02,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x02,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x02,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_lt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x22,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x22,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x22,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x22,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x23,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x23,0x7d,0xff,0x00,0x00,0x00] v_cmpx_lt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x62,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x62,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x62,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x62,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x62,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x62,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_lt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x82,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x82,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x82,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x82,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x83,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x83,0x7d,0xff,0x00,0x00,0x00] v_cmpx_lt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x72,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x72,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x72,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x72,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x72,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x72,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_lt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x92,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x92,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x92,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_lt_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x92,0x7d,0x01,0x77,0x39,0x05] v_cmpx_lt_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x93,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_lt_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x93,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ne_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x6a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x6a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x6a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x6a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x6a,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_ne_i16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x6a,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ne_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x8a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x8a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x8a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_i32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x8a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x8b,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ne_i32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x8b,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ne_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x7a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x7a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x7a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x7a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x7a,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_ne_u16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x7a,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ne_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x9a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x9a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x9a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ne_u32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x9a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ne_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x9b,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ne_u32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x9b,0x7d,0xff,0x00,0x00,0x00] v_cmpx_neq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x1a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_neq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x1a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_neq_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x1a,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_neq_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1a,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_neq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x3a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_neq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x3a,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_neq_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3a,0x7d,0x01,0x77,0x39,0x05] v_cmpx_neq_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x3b,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_neq_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3b,0x7d,0xff,0x00,0x00,0x00] v_cmpx_nge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x12,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x12,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x12,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x12,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nge_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x12,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_nge_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x12,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_nge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x32,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x32,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x32,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nge_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x32,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nge_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x33,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nge_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x33,0x7d,0xff,0x00,0x00,0x00] v_cmpx_ngt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x16,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x16,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x16,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x16,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ngt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x16,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_ngt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x16,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_ngt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x36,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x36,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x36,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_ngt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x36,0x7d,0x01,0x77,0x39,0x05] v_cmpx_ngt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x37,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_ngt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x37,0x7d,0xff,0x00,0x00,0x00] v_cmpx_nle_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x18,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x18,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nle_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x18,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x18,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nle_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x18,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_nle_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x18,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_nle_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x38,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x38,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nle_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x38,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nle_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x38,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nle_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x39,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nle_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x39,0x7d,0xff,0x00,0x00,0x00] v_cmpx_nlg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x14,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x14,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x14,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x14,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlg_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x14,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_nlg_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x14,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_nlg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x34,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x34,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x34,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlg_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x34,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlg_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x35,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nlg_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x35,0x7d,0xff,0x00,0x00,0x00] v_cmpx_nlt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x1c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x1c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x1c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x1c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x1c,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_nlt_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x1c,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_nlt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x3c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x3c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x3c,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_nlt_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x3c,0x7d,0x01,0x77,0x39,0x05] v_cmpx_nlt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x3d,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_nlt_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x3d,0x7d,0xff,0x00,0x00,0x00] v_cmpx_o_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x0e,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_o_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x0e,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_o_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x0e,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_o_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x0e,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_o_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x2e,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x2e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_o_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x2e,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_o_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x2e,0x7d,0x01,0x77,0x39,0x05] v_cmpx_o_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x2f,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_o_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x2f,0x7d,0xff,0x00,0x00,0x00] v_cmpx_u_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x10,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x10,0x7d,0x01,0x77,0x39,0x05] v_cmpx_u_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x10,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f16 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x10,0x7d,0x01,0x77,0x39,0x05] v_cmpx_u_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x10,0x7d,0x7f,0x00,0x00,0x00] +// GFX12: v_cmpx_u_f16 v127, v127 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x10,0x7d,0x7f,0x00,0x00,0x00] v_cmpx_u_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] -// GFX12: encoding: [0xe9,0x04,0x30,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x30,0x7d,0x01,0x77,0x39,0x05] v_cmpx_u_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 -// GFX12: encoding: [0xea,0x04,0x30,0x7d,0x01,0x77,0x39,0x05] +// GFX12: v_cmpx_u_f32 v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x30,0x7d,0x01,0x77,0x39,0x05] v_cmpx_u_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] fi:0 -// GFX12: encoding: [0xe9,0xfe,0x31,0x7d,0xff,0x00,0x00,0x00] +// GFX12: v_cmpx_u_f32 v255, v255 dpp8:[0,0,0,0,0,0,0,0] ; encoding: [0xe9,0xfe,0x31,0x7d,0xff,0x00,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/gfx950-unsupported.s b/llvm/test/MC/AMDGPU/gfx950-unsupported.s index f8bbd40b700fd..225784177ae18 100644 --- a/llvm/test/MC/AMDGPU/gfx950-unsupported.s +++ b/llvm/test/MC/AMDGPU/gfx950-unsupported.s @@ -1,4 +1,5 @@ // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx950 %s 2>&1 | FileCheck -check-prefix=ERR %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx950 -mattr=+wavefrontsize32,-wavefrontsize64 %s 2>&1 | FileCheck -check-prefix=W32-ERR %s //===----------------------------------------------------------------------===// // v_mfma_f32_32x32x4_xf32 @@ -177,3 +178,79 @@ v_mfma_f32_16x16x8_xf32 a[0:3], v[0:3], v[0:3], a[4:7] v_mfma_f32_16x16x8_xf32 v[0:3], a[0:3], a[0:3], v[4:7] // ERR: :[[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU + +//===----------------------------------------------------------------------===// +// ds_read_b64_tr_b4 +//===----------------------------------------------------------------------===// +ds_read_b64_tr_b4 v[1:2], v0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b64_tr_b4 v1, v0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b64_tr_b4 v[0:1], s0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b64_tr_b4 v[2:3], v2 offset:-64 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 16-bit unsigned offset +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +//===----------------------------------------------------------------------===// +//ds_read_b64_tr_b8 +//===----------------------------------------------------------------------===// +ds_read_b64_tr_b8 v[1:2], v0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b64_tr_b8 v1, v0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b64_tr_b8 v[0:1], s0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b64_tr_b8 v[2:3], v2 offset:-64 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 16-bit unsigned offset +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +//===----------------------------------------------------------------------===// +// ds_read_b64_tr_b16 +//===----------------------------------------------------------------------===// +ds_read_b64_tr_b16 v[1:2], v0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b64_tr_b16 v1, v0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b64_tr_b16 v[0:1], s0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b64_tr_b16 v[2:3], v2 offset:-64 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 16-bit unsigned offset +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +//===----------------------------------------------------------------------===// +// ds_read_b96_tr_b6 +//===----------------------------------------------------------------------===// +ds_read_b96_tr_b6 v[1:3], v0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid register class: vgpr tuples must be 64 bit aligned +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b96_tr_b6 v1, v0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b96_tr_b6 v[0:3], s0 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU + +ds_read_b96_tr_b6 v[2:4], v2 offset:-64 +// ERR: :[[@LINE-1]]:{{[0-9]+}}: error: expected a 16-bit unsigned offset +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU diff --git a/llvm/test/MC/AMDGPU/gfx950_asm_features.s b/llvm/test/MC/AMDGPU/gfx950_asm_features.s index 405d152c93d86..75022d8cf0cdd 100644 --- a/llvm/test/MC/AMDGPU/gfx950_asm_features.s +++ b/llvm/test/MC/AMDGPU/gfx950_asm_features.s @@ -35,3 +35,1247 @@ global_load_lds_dwordx4 v[2:3], off offset:4 // NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: // GFX950: global_load_lds_dwordx4 v2, s[4:5] offset:4 ; encoding: [0x04,0x80,0xf4,0xdd,0x02,0x00,0x04,0x00] global_load_lds_dwordx4 v2, s[4:5] offset:4 + + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane16_swap_b32_e32 v1, v2 ; encoding: [0x02,0xb3,0x02,0x7e] +v_permlane16_swap_b32 v1, v2 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane16_swap_b32_e32 v1, v2 ; encoding: [0x02,0xb3,0x02,0x7e] +v_permlane16_swap_b32_e32 v1, v2 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane16_swap_b32_e64 v1, v2 ; encoding: [0x01,0x00,0x99,0xd1,0x02,0x01,0x00,0x00] +v_permlane16_swap_b32_e64 v1, v2 + +// FIXME: Parsed as bound_ctrl:1? +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane16_swap_b32_e64 v1, v2 bound_ctrl:1 ; encoding: [0x01,0x10,0x99,0xd1,0x02,0x01,0x00,0x00] +v_permlane16_swap_b32 v1, v2 bound_ctrl:0 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane16_swap_b32_e64 v1, v2 ; encoding: [0x01,0x00,0x99,0xd1,0x02,0x01,0x00,0x00] +v_permlane16_swap_b32 v1, v2 fi:0 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane16_swap_b32_e64 v1, v2 bound_ctrl:1 ; encoding: [0x01,0x10,0x99,0xd1,0x02,0x01,0x00,0x00] +v_permlane16_swap_b32 v1, v2 bound_ctrl:1 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane16_swap_b32_e64 v1, v2 fi:1 ; encoding: [0x01,0x08,0x99,0xd1,0x02,0x01,0x00,0x00] +v_permlane16_swap_b32 v1, v2 fi:1 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane16_swap_b32_e64 v1, v2 bound_ctrl:1 fi:1 ; encoding: [0x01,0x18,0x99,0xd1,0x02,0x01,0x00,0x00] +v_permlane16_swap_b32 v1, v2 bound_ctrl:1 fi:1 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane16_swap_b32_e64 v1, v2 bound_ctrl:1 fi:1 ; encoding: [0x01,0x18,0x99,0xd1,0x02,0x01,0x00,0x00] +v_permlane16_swap_b32_e64 v1, v2 bound_ctrl:1 fi:1 + +// FIXME: Swapped order not accepted +// v_permlane16_swap_b32 v1, v2 fi:1 bound_ctrl:1 + + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane32_swap_b32_e32 v1, v2 ; encoding: [0x02,0xb5,0x02,0x7e] +v_permlane32_swap_b32 v1, v2 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane32_swap_b32_e32 v1, v2 ; encoding: [0x02,0xb5,0x02,0x7e] +v_permlane32_swap_b32_e32 v1, v2 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane32_swap_b32_e64 v1, v2 ; encoding: [0x01,0x00,0x9a,0xd1,0x02,0x01,0x00,0x00] +v_permlane32_swap_b32_e64 v1, v2 + +// FIXME: Parsed as bound_ctrl:1? +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane32_swap_b32_e64 v1, v2 bound_ctrl:1 ; encoding: [0x01,0x10,0x9a,0xd1,0x02,0x01,0x00,0x00] +v_permlane32_swap_b32 v1, v2 bound_ctrl:0 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane32_swap_b32_e64 v1, v2 ; encoding: [0x01,0x00,0x9a,0xd1,0x02,0x01,0x00,0x00] +v_permlane32_swap_b32 v1, v2 fi:0 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane32_swap_b32_e64 v1, v2 bound_ctrl:1 ; encoding: [0x01,0x10,0x9a,0xd1,0x02,0x01,0x00,0x00] +v_permlane32_swap_b32 v1, v2 bound_ctrl:1 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane32_swap_b32_e64 v1, v2 fi:1 ; encoding: [0x01,0x08,0x9a,0xd1,0x02,0x01,0x00,0x00] +v_permlane32_swap_b32 v1, v2 fi:1 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane32_swap_b32_e64 v1, v2 bound_ctrl:1 fi:1 ; encoding: [0x01,0x18,0x9a,0xd1,0x02,0x01,0x00,0x00] +v_permlane32_swap_b32 v1, v2 bound_ctrl:1 fi:1 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_permlane32_swap_b32_e64 v1, v2 bound_ctrl:1 fi:1 ; encoding: [0x01,0x18,0x9a,0xd1,0x02,0x01,0x00,0x00] +v_permlane32_swap_b32_e64 v1, v2 bound_ctrl:1 fi:1 + +// FIXME: Swapped order not accepted +// v_permlane32_swap_b32 v1, v2 fi:1 bound_ctrl:1 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 ; encoding: [0x01,0x00,0x4a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, s1, v3 ; encoding: [0x01,0x00,0x4a,0xd2,0x01,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, s1, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4a,0xd2,0x02,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, s2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4a,0xd2,0x03,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, s3, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4a,0xd2,0x04,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, s4, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4a,0xd2,0x01,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, s1, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4a,0xd2,0x02,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, s2, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4a,0xd2,0x03,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, s3, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4a,0xd2,0x04,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, s4, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, 11, v3 ; encoding: [0x01,0x00,0x4a,0xd2,0x8b,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, 11, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4a,0xd2,0x96,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, 22, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4a,0xd2,0xa1,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, 33, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4a,0xd2,0xac,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, 44, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, 11, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4a,0xd2,0x8b,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, 11, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4a,0xd2,0x96,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, 22, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4a,0xd2,0xa1,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, 33, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_fp8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4a,0xd2,0xac,0x06,0x02,0x00] +v_cvt_scalef32_f16_fp8 v1, 44, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 ; encoding: [0x01,0x00,0x3b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, s1, v3 ; encoding: [0x01,0x00,0x3b,0xd2,0x01,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, s1, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3b,0xd2,0x02,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, s2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3b,0xd2,0x03,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, s3, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3b,0xd2,0x04,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, s4, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3b,0xd2,0x01,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, s1, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3b,0xd2,0x02,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, s2, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3b,0xd2,0x03,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, s3, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3b,0xd2,0x04,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, s4, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, 11, v3 ; encoding: [0x01,0x00,0x3b,0xd2,0x8b,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, 11, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3b,0xd2,0x96,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, 22, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3b,0xd2,0xa1,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, 33, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3b,0xd2,0xac,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, 44, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, 11, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3b,0xd2,0x8b,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, 11, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3b,0xd2,0x96,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, 22, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3b,0xd2,0xa1,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, 33, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_fp8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3b,0xd2,0xac,0x06,0x02,0x00] +v_cvt_scalef32_f32_fp8 v1, 44, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x4b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4b,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, s1, v3 ; encoding: [0x01,0x00,0x4b,0xd2,0x01,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, s1, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4b,0xd2,0x02,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4b,0xd2,0x03,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4b,0xd2,0x04,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4b,0xd2,0x01,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, s1, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4b,0xd2,0x02,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0x03,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4b,0xd2,0x04,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, 11, v3 ; encoding: [0x01,0x00,0x4b,0xd2,0x8b,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, 11, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4b,0xd2,0x96,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4b,0xd2,0xa1,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4b,0xd2,0xac,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, 11, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0x8b,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, 11, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4b,0xd2,0x96,0x06,0x02,0x00] + v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0xa1,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4b,0xd2,0xac,0x06,0x02,0x00] +v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x3c,0xd2,0x02,0x07,0x02,0x00] + v_cvt_scalef32_f32_bf8 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, s1, v3 ; encoding: [0x01,0x00,0x3c,0xd2,0x01,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, s1, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3c,0xd2,0x02,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3c,0xd2,0x03,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3c,0xd2,0x04,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3c,0xd2,0x01,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, s1, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3c,0xd2,0x02,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3c,0xd2,0x03,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3c,0xd2,0x04,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, 11, v3 ; encoding: [0x01,0x00,0x3c,0xd2,0x8b,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, 11, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3c,0xd2,0x96,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3c,0xd2,0xa1,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3c,0xd2,0xac,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, 11, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3c,0xd2,0x8b,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, 11, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3c,0xd2,0x96,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3c,0xd2,0xa1,0x06,0x02,0x00] + v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3c,0xd2,0xac,0x06,0x02,0x00] +v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, v2, v3 ; encoding: [0x01,0x00,0x35,0xd2,0x01,0x05,0x0e,0x04] +v_cvt_scalef32_pk_fp8_f32 v1, v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, -v2, |v3| ; encoding: [0x01,0x04,0x35,0xd2,0x01,0x05,0x0e,0x44] +v_cvt_scalef32_pk_fp8_f32 v1, v1, -v2, |v3| + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, s2, 3 ; encoding: [0x01,0x00,0x35,0xd2,0x01,0x05,0x0c,0x02] +v_cvt_scalef32_pk_fp8_f32 v1, v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x35,0xd2,0x01,0x05,0x0e,0x04] +v_cvt_scalef32_pk_fp8_f32 v1, v1, v2, v3 op_sel:[0,0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, -v2, |v3| op_sel:[0,0,0,1] ; encoding: [0x01,0x44,0x35,0xd2,0x01,0x05,0x0e,0x44] +v_cvt_scalef32_pk_fp8_f32 v1, v1, -v2, |v3| op_sel:[0,0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, s2, 3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x35,0xd2,0x01,0x05,0x0c,0x02] +v_cvt_scalef32_pk_fp8_f32 v1, v1, s2, 3 op_sel:[0,0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, v2, v3 ; encoding: [0x01,0x00,0x36,0xd2,0x01,0x05,0x0e,0x04] +v_cvt_scalef32_pk_bf8_f32 v1, v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, -v2, |v3| ; encoding: [0x01,0x04,0x36,0xd2,0x01,0x05,0x0e,0x44] +v_cvt_scalef32_pk_bf8_f32 v1, v1, -v2, |v3| + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, s2, 3 ; encoding: [0x01,0x00,0x36,0xd2,0x01,0x05,0x0c,0x02] +v_cvt_scalef32_pk_bf8_f32 v1, v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x36,0xd2,0x01,0x05,0x0e,0x04] +v_cvt_scalef32_pk_bf8_f32 v1, v1, v2, v3 op_sel:[0,0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, -v2, |v3| op_sel:[0,0,0,1] ; encoding: [0x01,0x44,0x36,0xd2,0x01,0x05,0x0e,0x44] +v_cvt_scalef32_pk_bf8_f32 v1, v1, -v2, |v3| op_sel:[0,0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, s2, 3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x36,0xd2,0x01,0x05,0x0c,0x02] +v_cvt_scalef32_pk_bf8_f32 v1, v1, s2, 3 op_sel:[0,0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, v3 ; encoding: [0x02,0x00,0x39,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, s3 ; encoding: [0x02,0x00,0x39,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], s2, 3 ; encoding: [0x02,0x00,0x39,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f32_fp8 v[2:3], s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, v3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x39,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, s3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x39,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, s3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], s2, 3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x39,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f32_fp8 v[2:3], s2, 3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, v3 ; encoding: [0x02,0x00,0x3a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, s3 ; encoding: [0x02,0x00,0x3a,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], s2, 3 ; encoding: [0x02,0x00,0x3a,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f32_bf8 v[2:3], s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, v3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, s3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3a,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, s3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], s2, 3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3a,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f32_bf8 v[2:3], s2, 3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 ; encoding: [0x01,0x00,0x40,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f16 v1, -v2, |v3| ; encoding: [0x01,0x02,0x40,0xd2,0x02,0x07,0x02,0x20] +v_cvt_scalef32_pk_fp8_f16 v1, -v2, |v3| + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f16 v1, s2, 3 ; encoding: [0x01,0x00,0x40,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_fp8_f16 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x40,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f16 v1, -v2, |v3| op_sel:[0,0,1] ; encoding: [0x01,0x42,0x40,0xd2,0x02,0x07,0x02,0x20] +v_cvt_scalef32_pk_fp8_f16 v1, -v2, |v3| op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_f16 v1, s2, 3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x40,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_fp8_f16 v1, s2, 3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 ; encoding: [0x01,0x00,0x44,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, -v2, |v3| ; encoding: [0x01,0x02,0x44,0xd2,0x02,0x07,0x02,0x20] +v_cvt_scalef32_pk_fp8_bf16 v1, -v2, |v3| + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, s2, 3 ; encoding: [0x01,0x00,0x44,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_fp8_bf16 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x44,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, -v2, |v3| op_sel:[0,0,1] ; encoding: [0x01,0x42,0x44,0xd2,0x02,0x07,0x02,0x20] +v_cvt_scalef32_pk_fp8_bf16 v1, -v2, |v3| op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, s2, 3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x44,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_fp8_bf16 v1, s2, 3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 ; encoding: [0x01,0x00,0x41,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f16 v1, -v2, |v3| ; encoding: [0x01,0x02,0x41,0xd2,0x02,0x07,0x02,0x20] +v_cvt_scalef32_pk_bf8_f16 v1, -v2, |v3| + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f16 v1, s2, 3 ; encoding: [0x01,0x00,0x41,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf8_f16 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x41,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f16 v1, -v2, |v3| op_sel:[0,0,1] ; encoding: [0x01,0x42,0x41,0xd2,0x02,0x07,0x02,0x20] +v_cvt_scalef32_pk_bf8_f16 v1, -v2, |v3| op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_f16 v1, s2, 3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x41,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf8_f16 v1, s2, 3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 ; encoding: [0x01,0x00,0x45,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, -v2, |v3| ; encoding: [0x01,0x02,0x45,0xd2,0x02,0x07,0x02,0x20] +v_cvt_scalef32_pk_bf8_bf16 v1, -v2, |v3| + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, s2, 3 ; encoding: [0x01,0x00,0x45,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf8_bf16 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x45,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, -v2, |v3| op_sel:[0,0,1] ; encoding: [0x01,0x42,0x45,0xd2,0x02,0x07,0x02,0x20] +v_cvt_scalef32_pk_bf8_bf16 v1, -v2, |v3| op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, s2, 3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x45,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf8_bf16 v1, s2, 3 op_sel:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 ; encoding: [0x02,0x00,0x3f,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 ; encoding: [0x02,0x00,0x3f,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 ; encoding: [0x02,0x00,0x3f,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3f,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3f,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3f,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 op_sel:[0,1,0] ; encoding: [0x02,0x10,0x3f,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 op_sel:[0,1,0] ; encoding: [0x02,0x10,0x3f,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 op_sel:[0,1,0] ; encoding: [0x02,0x10,0x3f,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 op_sel:[1,1,0] ; encoding: [0x02,0x18,0x3f,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 op_sel:[1,1,0] ; encoding: [0x02,0x18,0x3f,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 op_sel:[1,1,0] ; encoding: [0x02,0x18,0x3f,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 ; encoding: [0x01,0x00,0x3d,0xd2,0x01,0x05,0x0e,0x04] +v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| ; encoding: [0x01,0x04,0x3d,0xd2,0x01,0x05,0x0e,0x44] +v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 ; encoding: [0x01,0x00,0x3d,0xd2,0x01,0x05,0x0c,0x02] +v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x01,0x20,0x3d,0xd2,0x01,0x05,0x0e,0x04] +v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 op_sel:[0,0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| op_sel:[0,0,1,0] ; encoding: [0x01,0x24,0x3d,0xd2,0x01,0x05,0x0e,0x44] +v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| op_sel:[0,0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 op_sel:[0,0,1,0] ; encoding: [0x01,0x20,0x3d,0xd2,0x01,0x05,0x0c,0x02] +v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 op_sel:[0,0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x3d,0xd2,0x01,0x05,0x0e,0x04] +v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 op_sel:[0,0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| op_sel:[0,0,0,1] ; encoding: [0x01,0x44,0x3d,0xd2,0x01,0x05,0x0e,0x44] +v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| op_sel:[0,0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x3d,0xd2,0x01,0x05,0x0c,0x02] +v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 op_sel:[0,0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 op_sel:[0,0,1,1] ; encoding: [0x01,0x60,0x3d,0xd2,0x01,0x05,0x0e,0x04] +v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 op_sel:[0,0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| op_sel:[0,0,1,1] ; encoding: [0x01,0x64,0x3d,0xd2,0x01,0x05,0x0e,0x44] +v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| op_sel:[0,0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 op_sel:[0,0,1,1] ; encoding: [0x01,0x60,0x3d,0xd2,0x01,0x05,0x0c,0x02] +v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 op_sel:[0,0,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x50,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x50,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x50,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x50,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x50,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x50,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x50,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x50,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x50,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 ; encoding: [0x01,0x00,0x51,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 ; encoding: [0x01,0x00,0x51,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 ; encoding: [0x01,0x00,0x51,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x51,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x51,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x51,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x51,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x51,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x51,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 op_sel:[0,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x51,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x51,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x51,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 op_sel:[1,1,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_f32_fp6 v[2:33], v[2:7], v6 ; encoding: [0x02,0x00,0x56,0xd2,0x02,0x0d,0x02,0x00] +v_cvt_scalef32_pk32_f32_fp6 v[2:33], v[2:7], v6 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_f32_bf6 v[2:33], v[2:7], v6 ; encoding: [0x02,0x00,0x57,0xd2,0x02,0x0d,0x02,0x00] +v_cvt_scalef32_pk32_f32_bf6 v[2:33], v[2:7], v6 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_bf16_bf6 v[10:25], v[20:25], v8 ; encoding: [0x0a,0x00,0x63,0xd2,0x14,0x11,0x02,0x00] +v_cvt_scalef32_pk32_bf16_bf6 v[10:25], v[20:25], v8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_bf16_bf6 v[10:25], v[20:25], v8 ; encoding: [0x0a,0x00,0x63,0xd2,0x14,0x11,0x02,0x00] +v_cvt_scalef32_pk32_bf16_bf6 v[10:25], v[20:25], v8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_f16_bf6 v[10:25], v[20:25], v8 ; encoding: [0x0a,0x00,0x62,0xd2,0x14,0x11,0x02,0x00] +v_cvt_scalef32_pk32_f16_bf6 v[10:25], v[20:25], v8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_bf16_fp6 v[10:25], v[20:25], v8 ; encoding: [0x0a,0x00,0x61,0xd2,0x14,0x11,0x02,0x00] +v_cvt_scalef32_pk32_bf16_fp6 v[10:25], v[20:25], v8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_f16_fp6 v[10:25], v[20:25], v8 ; encoding: [0x0a,0x00,0x60,0xd2,0x14,0x11,0x02,0x00] +v_cvt_scalef32_pk32_f16_fp6 v[10:25], v[20:25], v8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_bf6_bf16 v[20:25], v[10:25], v8 ; encoding: [0x14,0x00,0x5b,0xd2,0x0a,0x11,0x02,0x00] +v_cvt_scalef32_pk32_bf6_bf16 v[20:25], v[10:25], v8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_bf6_f16 v[20:25], v[10:25], v8 ; encoding: [0x14,0x00,0x5a,0xd2,0x0a,0x11,0x02,0x00] +v_cvt_scalef32_pk32_bf6_f16 v[20:25], v[10:25], v8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_fp6_bf16 v[20:25], v[10:25], v8 ; encoding: [0x14,0x00,0x59,0xd2,0x0a,0x11,0x02,0x00] +v_cvt_scalef32_pk32_fp6_bf16 v[20:25], v[10:25], v8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 ; encoding: [0x14,0x00,0x58,0xd2,0x0a,0x11,0x02,0x00] +v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp8 v1, v2, v3 ; encoding: [0x01,0x00,0x48,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f16_fp8 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp8 v1, v2, s3 ; encoding: [0x01,0x00,0x48,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f16_fp8 v1, v2, s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp8 v1, s2, 3 ; encoding: [0x01,0x00,0x48,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f16_fp8 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x48,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f16_fp8 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp8 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x48,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f16_fp8 v1, v2, s3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_fp8 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x48,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f16_fp8 v1, s2, 3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x49,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f16_bf8 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_bf8 v1, v2, s3 ; encoding: [0x01,0x00,0x49,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f16_bf8 v1, v2, s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_bf8 v1, s2, 3 ; encoding: [0x01,0x00,0x49,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f16_bf8 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x49,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_f16_bf8 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_bf8 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x49,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_f16_bf8 v1, v2, s3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_f16_bf8 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x49,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_f16_bf8 v1, s2, 3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, v2, v3 ; encoding: [0x01,0x00,0x69,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf16_fp8 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, v2, s3 ; encoding: [0x01,0x00,0x69,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_bf16_fp8 v1, v2, s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, s2, 3 ; encoding: [0x01,0x00,0x69,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf16_fp8 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x69,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf16_fp8 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x69,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_bf16_fp8 v1, v2, s3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x69,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf16_fp8 v1, s2, 3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x6a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf16_bf8 v1, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, v2, s3 ; encoding: [0x01,0x00,0x6a,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_bf16_bf8 v1, v2, s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, s2, 3 ; encoding: [0x01,0x00,0x6a,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf16_bf8 v1, s2, 3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x6a,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_bf16_bf8 v1, v2, v3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x6a,0xd2,0x02,0x07,0x00,0x00] +v_cvt_scalef32_pk_bf16_bf8 v1, v2, s3 op_sel:[1,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x6a,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_bf16_bf8 v1, s2, 3 op_sel:[1,0,0] + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 ; encoding: [0x01,0x00,0x4c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_f16 v1, s2, 3 ; encoding: [0x01,0x00,0x4c,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_fp4_f16 v1, s2, 3 + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 op_sel:[0,0,1,1] ; encoding: [0x01,0x60,0x4c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 op_sel:[0,0,1,1] + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x4c,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 op_sel:[0,0,0,1] + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_f16 v1, -|s2|, v3 ; encoding: [0x01,0x01,0x4c,0xd2,0x02,0x06,0x02,0x20] +v_cvt_scalef32_pk_fp4_f16 v1, -|s2|, v3 + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 ; encoding: [0x01,0x00,0x4d,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, s2, 3 ; encoding: [0x01,0x00,0x4d,0xd2,0x02,0x06,0x01,0x00] +v_cvt_scalef32_pk_fp4_bf16 v1, s2, 3 + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 op_sel:[0,0,1,1] ; encoding: [0x01,0x60,0x4d,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 op_sel:[0,0,1,1] + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x4d,0xd2,0x02,0x07,0x02,0x00] +v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 op_sel:[0,0,0,1] + +// NOT-GFX950: error: instruction not supported on this GPU +// GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, -|s2|, v3 ; encoding: [0x01,0x01,0x4d,0xd2,0x02,0x06,0x02,0x20] +v_cvt_scalef32_pk_fp4_bf16 v1, -|s2|, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], v6 ; encoding: [0x14,0x00,0x52,0xd2,0x0a,0x15,0x1a,0x04] +v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], v6 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], v6 ; encoding: [0x14,0x00,0x53,0xd2,0x0a,0x15,0x1a,0x04] +v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], v6 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], s6 ; encoding: [0x14,0x00,0x52,0xd2,0x0a,0x15,0x1a,0x00] +v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], s6 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], s6 ; encoding: [0x14,0x00,0x53,0xd2,0x0a,0x15,0x1a,0x00] +v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], s6 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], 22 ; encoding: [0x14,0x00,0x52,0xd2,0x0a,0x15,0x5a,0x02] +v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], 22 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], 11 ; encoding: [0x14,0x00,0x53,0xd2,0x0a,0x15,0x2e,0x02] +v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], 11 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v255, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0xff,0x02,0x03] +buffer_atomic_pk_add_bf16 v255, off, s[8:11], s3 offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[12:15], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x03,0x03] +buffer_atomic_pk_add_bf16 v5, off, s[12:15], s3 offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[96:99], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x18,0x03] +buffer_atomic_pk_add_bf16 v5, off, s[96:99], s3 offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s101 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x65] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], s101 offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], m0 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x7c] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], m0 offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, v0, s[8:11], s3 idxen offset:4095 ; encoding: [0xff,0x2f,0x48,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_pk_add_bf16 v5, v0, s[8:11], s3 idxen offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, v0, s[8:11], s3 offen offset:4095 ; encoding: [0xff,0x1f,0x48,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_pk_add_bf16 v5, v0, s[8:11], s3 offen offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 ; encoding: [0x00,0x00,0x48,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 ; encoding: [0x00,0x00,0x48,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:7 ; encoding: [0x07,0x00,0x48,0xe1,0x00,0x05,0x02,0x03] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:7 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], 0 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x80] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], 0 offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], -1 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0xc1] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], -1 offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], 0.5 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0xf0] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], 0.5 offset:4095 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], -4.0 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0xf7] +buffer_atomic_pk_add_bf16 v5, off, s[8:11], -4.0 offset:4095 + + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_maximum3_f32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xa9,0xd2,0x02,0x07,0x12,0x04] +v_maximum3_f32 v1, v2, v3, v4 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_maximum3_f32 v1, -v2, -v3, -v4 ; encoding: [0x01,0x00,0xa9,0xd2,0x02,0x07,0x12,0xe4] +v_maximum3_f32 v1, -v2, -v3, -v4 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_maximum3_f32 v1, -|v2|, -|v3|, -|v4| ; encoding: [0x01,0x07,0xa9,0xd2,0x02,0x07,0x12,0xe4] +v_maximum3_f32 v1, -|v2|, -|v3|, -|v4| + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_maximum3_f32 v1, 0, 1.0, v3 ; encoding: [0x01,0x00,0xa9,0xd2,0x80,0xe4,0x0d,0x04] +v_maximum3_f32 v1, 0.0, 1.0, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_maximum3_f32 v2, 0, v3, 1.0 ; encoding: [0x02,0x00,0xa9,0xd2,0x80,0x06,0xca,0x03] +v_maximum3_f32 v2, 0.0, v3, 1.0 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_maximum3_f32 v1, s8, v3, 1.0 ; encoding: [0x01,0x00,0xa9,0xd2,0x08,0x06,0xca,0x03] +v_maximum3_f32 v1, s8, v3, 1.0 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_maximum3_f32 v1, v2, s8, v3 ; encoding: [0x01,0x00,0xa9,0xd2,0x02,0x11,0x0c,0x04] +v_maximum3_f32 v1, v2, s8, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_minimum3_f32 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xa8,0xd2,0x01,0x05,0x0e,0x04] +v_minimum3_f32 v0, v1, v2, v3 + + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x40,0x9b,0xd3,0x02,0x07,0x12,0x1c] +v_pk_minimum3_f16 v1, v2, v3, v4 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v1, v2, v3, 2.0 ; encoding: [0x01,0x40,0x9b,0xd3,0x02,0x07,0xd2,0x1b] +v_pk_minimum3_f16 v1, v2, v3, 2.0 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v1, v2, 2.0, v3 ; encoding: [0x01,0x40,0x9b,0xd3,0x02,0xe9,0x0d,0x1c] +v_pk_minimum3_f16 v1, v2, 2.0, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v1, 2.0, v2, v3 ; encoding: [0x01,0x40,0x9b,0xd3,0xf4,0x04,0x0e,0x1c] +v_pk_minimum3_f16 v1, 2.0, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v1, v2, v3, v4 clamp ; encoding: [0x01,0xc0,0x9b,0xd3,0x02,0x07,0x12,0x1c] +v_pk_minimum3_f16 v1, v2, v3, v4 clamp + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v8, v0, s8, v1 ; encoding: [0x08,0x40,0x9b,0xd3,0x00,0x11,0x04,0x1c] +v_pk_minimum3_f16 v8, v0, s8, v1 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v8, v0, v1, s8 ; encoding: [0x08,0x40,0x9b,0xd3,0x00,0x03,0x22,0x18] +v_pk_minimum3_f16 v8, v0, v1, s8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x9b,0xd3,0x00,0x01,0x04,0x1c] +v_pk_minimum3_f16 v8, v0, s0, v1 neg_lo:[0,0,0] neg_hi:[0,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x9b,0xd3,0x00,0x01,0x04,0x1c] +v_pk_minimum3_f16 v8, v0, s0, v1 op_sel:[0,0,0] op_sel_hi:[1,1,1] neg_lo:[0,0,0] neg_hi:[0,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x9b,0xd3,0x00,0x01,0x04,0x1c] +v_pk_minimum3_f16 v8, v0, s0, v1 op_sel:[0,0,0] op_sel_hi:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v8, v0, s0, v1 op_sel_hi:[0,0,0] ; encoding: [0x08,0x00,0x9b,0xd3,0x00,0x01,0x04,0x04] +v_pk_minimum3_f16 v8, v0, s0, v1 op_sel:[0,0,0] op_sel_hi:[0,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_minimum3_f16 v8, v0, s0, v1 op_sel:[0,0,1] op_sel_hi:[0,0,1] ; encoding: [0x08,0x60,0x9b,0xd3,0x00,0x01,0x04,0x04] +v_pk_minimum3_f16 v8, v0, s0, v1 op_sel:[0,0,1] op_sel_hi:[0,0,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x40,0x9c,0xd3,0x02,0x07,0x12,0x1c] +v_pk_maximum3_f16 v1, v2, v3, v4 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v1, v2, v3, 2.0 ; encoding: [0x01,0x40,0x9c,0xd3,0x02,0x07,0xd2,0x1b] +v_pk_maximum3_f16 v1, v2, v3, 2.0 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v1, v2, 2.0, v3 ; encoding: [0x01,0x40,0x9c,0xd3,0x02,0xe9,0x0d,0x1c] +v_pk_maximum3_f16 v1, v2, 2.0, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v1, 2.0, v2, v3 ; encoding: [0x01,0x40,0x9c,0xd3,0xf4,0x04,0x0e,0x1c] +v_pk_maximum3_f16 v1, 2.0, v2, v3 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v1, v2, v3, v4 clamp ; encoding: [0x01,0xc0,0x9c,0xd3,0x02,0x07,0x12,0x1c] +v_pk_maximum3_f16 v1, v2, v3, v4 clamp + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v8, v0, s8, v1 ; encoding: [0x08,0x40,0x9c,0xd3,0x00,0x11,0x04,0x1c] +v_pk_maximum3_f16 v8, v0, s8, v1 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v8, v0, v1, s8 ; encoding: [0x08,0x40,0x9c,0xd3,0x00,0x03,0x22,0x18] +v_pk_maximum3_f16 v8, v0, v1, s8 + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x9c,0xd3,0x00,0x01,0x04,0x1c] +v_pk_maximum3_f16 v8, v0, s0, v1 neg_lo:[0,0,0] neg_hi:[0,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x9c,0xd3,0x00,0x01,0x04,0x1c] +v_pk_maximum3_f16 v8, v0, s0, v1 op_sel:[0,0,0] op_sel_hi:[1,1,1] neg_lo:[0,0,0] neg_hi:[0,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x9c,0xd3,0x00,0x01,0x04,0x1c] +v_pk_maximum3_f16 v8, v0, s0, v1 op_sel:[0,0,0] op_sel_hi:[1,1,1] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v8, v0, s0, v1 op_sel_hi:[0,0,0] ; encoding: [0x08,0x00,0x9c,0xd3,0x00,0x01,0x04,0x04] +v_pk_maximum3_f16 v8, v0, s0, v1 op_sel:[0,0,0] op_sel_hi:[0,0,0] + +// NOT-GFX950: :[[@LINE+2]]:{{[0-9]+}}: error: +// GFX950: v_pk_maximum3_f16 v8, v0, s0, v1 op_sel:[0,0,1] op_sel_hi:[0,0,1] ; encoding: [0x08,0x60,0x9c,0xd3,0x00,0x01,0x04,0x04] +v_pk_maximum3_f16 v8, v0, s0, v1 op_sel:[0,0,1] op_sel_hi:[0,0,1] diff --git a/llvm/test/MC/AMDGPU/gfx950_asm_read_tr.s b/llvm/test/MC/AMDGPU/gfx950_asm_read_tr.s new file mode 100644 index 0000000000000..93d015f790c86 --- /dev/null +++ b/llvm/test/MC/AMDGPU/gfx950_asm_read_tr.s @@ -0,0 +1,34 @@ +// RUN: llvm-mc -arch=amdgcn -mcpu=gfx950 -show-encoding %s | FileCheck --check-prefix=GFX950 %s +// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx940 %s 2>&1 | FileCheck --check-prefix=GFX940-ERR --implicit-check-not=error: %s + +ds_read_b64_tr_b4 v[0:1], v1 +// GFX940-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX950: encoding: [0x00,0x00,0xc0,0xd9,0x01,0x00,0x00,0x00] + +ds_read_b64_tr_b4 v[2:3], v3 offset:64 +// GFX940-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX950: encoding: [0x40,0x00,0xc0,0xd9,0x03,0x00,0x00,0x02] + +ds_read_b64_tr_b8 v[0:1], v1 +// GFX940-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX950: encoding: [0x00,0x00,0xc4,0xd9,0x01,0x00,0x00,0x00] + +ds_read_b64_tr_b8 v[2:3], v3 offset:64 +// GFX940-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX950: encoding: [0x40,0x00,0xc4,0xd9,0x03,0x00,0x00,0x02] + +ds_read_b64_tr_b16 v[0:1], v1 +// GFX940-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX950: encoding: [0x00,0x00,0xc6,0xd9,0x01,0x00,0x00,0x00] + +ds_read_b64_tr_b16 v[2:3], v3 offset:64 +// GFX940-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX950: encoding: [0x40,0x00,0xc6,0xd9,0x03,0x00,0x00,0x02] + +ds_read_b96_tr_b6 v[0:2], v0 +// GFX940-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX950: encoding: [0x00,0x00,0xc2,0xd9,0x00,0x00,0x00,0x00] + +ds_read_b96_tr_b6 v[2:4], v2 offset:64 +// GFX940-ERR: [[@LINE-1]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX950: encoding: [0x40,0x00,0xc2,0xd9,0x02,0x00,0x00,0x02] diff --git a/llvm/test/MC/AMDGPU/gfx950_asm_vop3.s b/llvm/test/MC/AMDGPU/gfx950_asm_vop3.s index c9980f420b955..5f5e505711705 100644 --- a/llvm/test/MC/AMDGPU/gfx950_asm_vop3.s +++ b/llvm/test/MC/AMDGPU/gfx950_asm_vop3.s @@ -1,26 +1,148 @@ -// RUN: llvm-mc -arch=amdgcn -mcpu=gfx950 -show-encoding %s | FileCheck --check-prefix=GFX950 %s -// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx940 %s 2>&1 | FileCheck -check-prefix=GFX940-ERR --strict-whitespace %s +// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx906 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX906-ERR %s +// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx940 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX940-ERR %s +// RUN: llvm-mc -arch=amdgcn -mcpu=gfx950 -show-encoding < %s | FileCheck --check-prefix=GFX950 %s +// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1200 -show-encoding %s 2>&1 | FileCheck -check-prefix=GFX12-ERR %s v_cvt_pk_bf16_f32 v5, v1, v2 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU // GFX950: v_cvt_pk_bf16_f32 v5, v1, v2 ; encoding: [0x05,0x00,0x68,0xd2,0x01,0x05,0x02,0x00] -// GFX940-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX12-ERR: error: instruction not supported on this GPU v_cvt_pk_bf16_f32 v5, v255, v255 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU // GFX950: v_cvt_pk_bf16_f32 v5, v255, v255 ; encoding: [0x05,0x00,0x68,0xd2,0xff,0xff,0x03,0x00] -// GFX940-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX12-ERR: error: instruction not supported on this GPU v_cvt_pk_bf16_f32 v5, v1, s2 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU // GFX950: v_cvt_pk_bf16_f32 v5, v1, s2 ; encoding: [0x05,0x00,0x68,0xd2,0x01,0x05,0x00,0x00] -// GFX940-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX12-ERR: error: instruction not supported on this GPU v_cvt_pk_bf16_f32 v5, m0, 0.5 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU // GFX950: v_cvt_pk_bf16_f32 v5, m0, 0.5 ; encoding: [0x05,0x00,0x68,0xd2,0x7c,0xe0,0x01,0x00] -// GFX940-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX12-ERR: error: instruction not supported on this GPU v_cvt_pk_bf16_f32 v5, -1, exec_hi +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU // GFX950: v_cvt_pk_bf16_f32 v5, -1, exec_hi ; encoding: [0x05,0x00,0x68,0xd2,0xc1,0xfe,0x00,0x00] -// GFX940-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX12-ERR: error: instruction not supported on this GPU v_cvt_pk_bf16_f32 v5, 0.5, m0 mul:2 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU // GFX950: v_cvt_pk_bf16_f32 v5, 0.5, m0 mul:2 ; encoding: [0x05,0x00,0x68,0xd2,0xf0,0xf8,0x00,0x08] -// GFX940-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: instruction not supported on this GPU +// GFX12-ERR: error: instruction not supported on this GPU + +v_bitop3_b32 v5, v1, v2, s3 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_bitop3_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x34,0xd2,0x01,0x05,0x0e,0x00] +// GFX12-ERR: error: instruction not supported on this GPU + +v_bitop3_b32 v5, v1, v2, s3 bitop3:161 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_bitop3_b32 v5, v1, v2, s3 bitop3:0xa1 ; encoding: [0x05,0x04,0x34,0xd2,0x01,0x05,0x0e,0x30] +// GFX12-ERR: error: instruction not supported on this GPU + +v_bitop3_b32 v5, m0, 0.5, m0 bitop3:5 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_bitop3_b32 v5, m0, 0.5, m0 bitop3:5 ; encoding: [0x05,0x00,0x34,0xd2,0x7c,0xe0,0xf1,0xa1] +// GFX12-ERR: error: instruction not supported on this GPU + +v_bitop3_b32 v5, 0.5, m0, 0.5 bitop3:101 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_bitop3_b32 v5, 0.5, m0, 0.5 bitop3:0x65 ; encoding: [0x05,0x04,0x34,0xd2,0xf0,0xf8,0xc0,0xab] +// GFX12-ERR: error: instruction not supported on this GPU + +v_bitop3_b16 v5, v1, v2, s3 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_bitop3_b16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x33,0xd2,0x01,0x05,0x0e,0x00] +// GFX12-ERR: error: instruction not supported on this GPU + +v_bitop3_b16 v5, v1, v2, s3 bitop3:161 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_bitop3_b16 v5, v1, v2, s3 bitop3:0xa1 ; encoding: [0x05,0x04,0x33,0xd2,0x01,0x05,0x0e,0x30] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_i8_i32 v2, s4, v7, v8 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_i8_i32 v2, s4, v7, v8 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x0e,0x22,0x04] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_i8_i32 v2, v4, 0, 1 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_i8_i32 v2, v4, 0, 1 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x01,0x05,0x02] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_i8_i32 v2, v4, 3, s2 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_i8_i32 v2, v4, 3, s2 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x07,0x09,0x00] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_i8_i32 v2, s4, 4, v2 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_i8_i32 v2, s4, 4, v2 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x08,0x09,0x04] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_i8_i32 v2, v4, v7, 0.5 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_i8_i32 v2, v4, v7, 0.5 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x0f,0xc2,0x03] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_i8_i32 v1, v2, v3, v4 op_sel:[0,0,0,1] +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_i8_i32 v1, v2, v3, v4 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x65,0xd2,0x02,0x07,0x12,0x04] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_u8_i32 v2, s4, v7, v8 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_u8_i32 v2, s4, v7, v8 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x0e,0x22,0x04] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_u8_i32 v2, v4, 0, 1 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_u8_i32 v2, v4, 0, 1 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x01,0x05,0x02] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_u8_i32 v2, v4, 3, s2 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_u8_i32 v2, v4, 3, s2 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x07,0x09,0x00] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_u8_i32 v2, s4, 4, v2 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_u8_i32 v2, s4, 4, v2 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x08,0x09,0x04] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_u8_i32 v2, v4, v7, -2.0 +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_u8_i32 v2, v4, v7, -2.0 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x0f,0xd6,0x03] +// GFX12-ERR: error: instruction not supported on this GPU + +v_ashr_pk_u8_i32 v1, v2, v3, v4 op_sel:[0,0,0,1] +// GFX906-ERR: error: instruction not supported on this GPU +// GFX940-ERR: error: instruction not supported on this GPU +// GFX950: v_ashr_pk_u8_i32 v1, v2, v3, v4 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x66,0xd2,0x02,0x07,0x12,0x04] +// GFX12-ERR: error: instruction not supported on this GPU diff --git a/llvm/test/MC/AMDGPU/gfx950_dlops.s b/llvm/test/MC/AMDGPU/gfx950_dlops.s new file mode 100644 index 0000000000000..4ae60ac785f49 --- /dev/null +++ b/llvm/test/MC/AMDGPU/gfx950_dlops.s @@ -0,0 +1,61 @@ +// RUN: llvm-mc -triple=amdgcn -mcpu=gfx950 -show-encoding %s | FileCheck --check-prefix=GFX950 %s + +v_dot2_f32_bf16 v5, v1, v2, v3 +// GFX950: v_dot2_f32_bf16 v5, v1, v2, v3 ; encoding: [0x05,0x40,0x9a,0xd3,0x01,0x05,0x0e,0x1c] + +v_dot2_f32_bf16 v5, v1, v2, s3 +// GFX950: v_dot2_f32_bf16 v5, v1, v2, s3 ; encoding: [0x05,0x40,0x9a,0xd3,0x01,0x05,0x0e,0x18] + +v_dot2_f32_bf16 v2, v1, 0, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, 0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0x01,0x09,0x1c] + +v_dot2_f32_bf16 v2, v1, 0.5, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, 0.5, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe1,0x09,0x1c] + +v_dot2_f32_bf16 v2, v1, -0.5, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, -0.5, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe3,0x09,0x1c] + +v_dot2_f32_bf16 v2, v1, 1.0, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, 1.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe5,0x09,0x1c] + +v_dot2_f32_bf16 v2, v1, -1.0, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, -1.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe7,0x09,0x1c] + +v_dot2_f32_bf16 v2, v1, 2.0, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, 2.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe9,0x09,0x1c] + +v_dot2_f32_bf16 v2, v1, -2.0, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, -2.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xeb,0x09,0x1c] + +v_dot2_f32_bf16 v2, v1, 4.0, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, 4.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xed,0x09,0x1c] + +v_dot2_f32_bf16 v2, v1, -4.0, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, -4.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xef,0x09,0x1c] + +v_dot2_f32_bf16 v2, v1, 0.15915494, v2 +// GFX950: v_dot2_f32_bf16 v2, v1, 0.15915494, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xf1,0x09,0x1c] + +v_dot2_f32_bf16 v2, 0.5, v1, v2 +// GFX950: v_dot2_f32_bf16 v2, 0.5, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf0,0x02,0x0a,0x1c] + +v_dot2_f32_bf16 v2, -0.5, v1, v2 +// GFX950: v_dot2_f32_bf16 v2, -0.5, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf1,0x02,0x0a,0x1c] + +v_dot2_f32_bf16 v2, 1.0, v1, v2 +// GFX950: v_dot2_f32_bf16 v2, 1.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf2,0x02,0x0a,0x1c] + +v_dot2_f32_bf16 v2, -1.0, v1, v2 +// GFX950: v_dot2_f32_bf16 v2, -1.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf3,0x02,0x0a,0x1c] + +v_dot2_f32_bf16 v2, 2.0, v1, v2 +// GFX950: v_dot2_f32_bf16 v2, 2.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf4,0x02,0x0a,0x1c] + +v_dot2_f32_bf16 v2, -2.0, v1, v2 +// GFX950: v_dot2_f32_bf16 v2, -2.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf5,0x02,0x0a,0x1c] + +v_dot2_f32_bf16 v2, 4.0, v1, v2 +// GFX950: v_dot2_f32_bf16 v2, 4.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf6,0x02,0x0a,0x1c] + +v_dot2_f32_bf16 v2, -4.0, v1, v2 +// GFX950: v_dot2_f32_bf16 v2, -4.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf7,0x02,0x0a,0x1c] diff --git a/llvm/test/MC/AMDGPU/gfx950_err.s b/llvm/test/MC/AMDGPU/gfx950_err.s new file mode 100644 index 0000000000000..c5450e48558bf --- /dev/null +++ b/llvm/test/MC/AMDGPU/gfx950_err.s @@ -0,0 +1,394 @@ +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx950 %s 2>&1 | FileCheck --check-prefix=GFX950 --implicit-check-not=error: %s + +// GFX950: :[[@LINE+1]]:27: error: invalid operand for instruction +v_permlane16_swap_b32 v0, s0 + +// GFX950: :[[@LINE+1]]:27: error: invalid operand for instruction +v_permlane16_swap_b32 v0, m0 + +// GFX950: :[[@LINE+1]]:27: error: invalid operand for instruction +v_permlane16_swap_b32 v0, vcc + +// GFX950: :[[@LINE+1]]:27: error: invalid operand for instruction +v_permlane16_swap_b32 v0, vcc_lo + +// GFX950: :[[@LINE+1]]:23: error: invalid operand for instruction +v_permlane16_swap_b32 s0, v0 + +// GFX950: :[[@LINE+1]]:34: error: invalid operand for instruction +v_permlane16_swap_b32_e32 v1, v2 bound_ctrl:1 + +// GFX950: :[[@LINE+1]]:34: error: invalid operand for instruction +v_permlane16_swap_b32_e32 v1, v2 bound_ctrl:0 + +// GFX950: :[[@LINE+1]]:34: error: invalid operand for instruction +v_permlane16_swap_b32_e32 v1, v2 fi:1 + +// GFX950: :[[@LINE+1]]:34: error: invalid operand for instruction +v_permlane16_swap_b32_e32 v1, v2 fi:0 + +// GFX950: :[[@LINE+1]]:34: error: invalid operand for instruction +v_permlane16_swap_b32_e32 v1, v2 bound_ctrl:1 fi:1 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_f32_fp6 v[2:33], v[2:7], v6 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f32_fp6 v[2:33], v[2:7], v6 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f32_fp6 v[2:33], v[2:7], v6 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f32_fp6 v[2:33], v[2:7], v6 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_f32_bf6 v[2:33], v[2:7], v6 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f32_bf6 v[2:33], v[2:7], v6 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f32_bf6 v[2:33], v[2:7], v6 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f32_bf6 v[2:33], v[2:7], v6 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_bf16_bf6 v[10:25], v[20:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_bf16_bf6 v[10:25], v[20:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_bf16_bf6 v[10:25], v[20:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_bf16_bf6 v[10:25], v[20:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_f16_bf6 v[10:25], v[20:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f16_bf6 v[10:25], v[20:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f16_bf6 v[10:25], v[20:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f16_bf6 v[10:25], v[20:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_bf16_fp6 v[10:25], v[20:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_bf16_fp6 v[10:25], v[20:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_bf16_fp6 v[10:25], v[20:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_bf16_fp6 v[10:25], v[20:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_f16_fp6 v[10:25], v[20:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f16_fp6 v[10:25], v[20:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f16_fp6 v[10:25], v[20:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_f16_fp6 v[10:25], v[20:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_bf6_f16 v[20:25], v[10:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_bf6_f16 v[20:25], v[10:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_bf6_f16 v[20:25], v[10:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_bf6_f16 v[20:25], v[10:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_fp6_bf16 v[20:25], v[10:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_fp6_bf16 v[20:25], v[10:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_fp6_bf16 v[20:25], v[10:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_fp6_bf16 v[20:25], v[10:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_f16_fp8 v[20:25], v[10:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f16_fp8 v[20:25], v[10:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f16_fp8 v[20:25], v[10:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f16_fp8 v[20:25], v[10:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_f16_bf8 v[20:25], v[10:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f16_bf8 v[20:25], v[10:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f16_bf8 v[20:25], v[10:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_f16_bf8 v[20:25], v[10:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_bf16_fp8 v[20:25], v[10:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf16_fp8 v[20:25], v[10:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf16_fp8 v[20:25], v[10:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf16_fp8 v[20:25], v[10:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_bf16_bf8 v[20:25], v[10:25], v8 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf16_bf8 v[20:25], v[10:25], v8 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf16_bf8 v[20:25], v[10:25], v8 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_bf16_bf8 v[20:25], v[10:25], v8 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], v6 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], v6 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], v6 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], v6 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], v6 clamp + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], v6 mul:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], v6 div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: not a valid operand +v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], v6 clamp div:2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:4095 glc + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:4095 slc + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:4095 dlc + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand for instruction +buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:4095 glc slc dlc + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_maximum3_f16 v0, v1, v2, v3 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_minimum3_f16 v0, v1, v2, v3 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_maximum_f16 v0, v1, v2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_minimum_f16 v0, v1, v2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_maximum_f32 v0, v1, v2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_minimum_f32 v0, v1, v2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions) +v_maximum3_f32 v0, s1, s2, v3 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions) +v_maximum3_f32 v0, v3, s1, s2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions) +v_maximum3_f32 v0, s1, v3, s2 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions) +v_minimum3_f32 v0, s1, s2, v3 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: literal operands are not supported +v_minimum3_f32 v0, v1, v2, 0xdeadbeef + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions) +v_pk_minimum3_f16 v0, s1, s2, v3 + +// GFX950: :[[@LINE+1]]:{{[0-9]+}}: error: invalid operand (violates constant bus restrictions) +v_pk_maximum3_f16 v0, s1, s2, v3 diff --git a/llvm/test/MC/AMDGPU/gfx950_xdlops.s b/llvm/test/MC/AMDGPU/gfx950_xdlops.s new file mode 100644 index 0000000000000..2ca131c9c0bf4 --- /dev/null +++ b/llvm/test/MC/AMDGPU/gfx950_xdlops.s @@ -0,0 +1,133 @@ +// RUN: llvm-mc -triple=amdgcn -mcpu=gfx950 -show-encoding %s | FileCheck %s + +// CHECK: encoding: [0x01,0x05,0x0a,0x2c] +v_dot2c_f32_bf16 v5, v1, v2 + +// CHECK: encoding: [0x01,0x05,0xfe,0x2d] +v_dot2c_f32_bf16 v255, v1, v2 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0xfe,0x2d,0x01,0xe4,0x00,0x00] +v_dot2c_f32_bf16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0xff,0xe4,0x00,0x00] +v_dot2c_f32_bf16_dpp v5, v255, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0xfe,0x0b,0x2c,0x01,0xe4,0x00,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v255 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x1b,0x00,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x40,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_mirror row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x41,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_half_mirror row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x42,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_bcast:15 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x43,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_bcast:31 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x30,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 wave_shl:1 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x34,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 wave_rol:1 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x38,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 wave_shr:1 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x3c,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 wave_ror:1 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x01,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_shl:1 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x0f,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_shl:15 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x11,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_shr:1 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x1f,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_shr:15 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x21,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_ror:1 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x2f,0x01,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 row_ror:15 row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x10] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x1 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x30] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x3 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0xf0] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0xf0] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x01] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x1 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x03] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x3 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x0f] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0xf + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x0f] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0xf + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x08,0x00] +v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:1 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x10,0x00] +v_dot2c_f32_bf16_dpp v5, -v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x20,0x00] +v_dot2c_f32_bf16_dpp v5, |v1|, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x40,0x00] +v_dot2c_f32_bf16_dpp v5, v1, -v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x80,0x00] +v_dot2c_f32_bf16_dpp v5, v1, |v2| quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 + +// CHECK: encoding: [0x05,0x00,0x16,0xd1,0x01,0xfb,0x01,0x00] +v_dot2c_f32_bf16_e64 v5, v1, src_scc + +// CHECK: encoding: [0x05,0x00,0x16,0xd1,0xff,0xf9,0x01,0x00] +v_dot2c_f32_bf16_e64 v5, v255, src_execz + +// CHECK: encoding: [0x05,0x00,0x16,0xd1,0x65,0xca,0x00,0x00] +v_dot2c_f32_bf16_e64 v5, s101, s101 + +// CHECK: encoding: [0x05,0x00,0x16,0xd1,0xc1,0xcc,0x00,0x00] +v_dot2c_f32_bf16_e64 v5, -1, flat_scratch_lo + +// CHECK: encoding: [0x05,0x02,0x16,0xd1,0xf0,0xce,0x00,0x40] +v_dot2c_f32_bf16_e64 v5, 0.5, -|flat_scratch_hi| + +// CHECK: encoding: [0x05,0x00,0x16,0xd1,0xfc,0xe0,0x01,0x10] +v_dot2c_f32_bf16_e64 v5, src_execz, 0.5 mul:4 + +// CHECK: encoding: [0xff,0x81,0x16,0xd1,0xfd,0x82,0x01,0x38] +v_dot2c_f32_bf16_e64 v255, -|src_scc|, -1 clamp div:2 + +// CHECK: encoding: [0x8a,0x04,0x0a,0x2c] +v_dot2c_f32_bf16_e32 v5, 10, v2 ; encoding: [0x8a,0x04,0x0a,0x2c] + +// CHECK: encoding: [0xff,0x04,0x0a,0x2c,0x64,0x00,0x00,0x00] +v_dot2c_f32_bf16_e32 v5, 100, v2 ; encoding: [0xff,0x04,0x0a,0x2c,0x64,0x00,0x00,0x00] + +// CHECK: encoding: [0xff,0x04,0x0a,0x2c,0x22,0x41,0x00,0x00] +v_dot2c_f32_bf16_e32 v5, 10.1, v2 ; encoding: [0xff,0x04,0x0a,0x2c,0x22,0x41,0x00,0x00] diff --git a/llvm/test/MC/AMDGPU/invalid-instructions-spellcheck.s b/llvm/test/MC/AMDGPU/invalid-instructions-spellcheck.s index a5cca6ba5bd93..79ab8666234a2 100644 --- a/llvm/test/MC/AMDGPU/invalid-instructions-spellcheck.s +++ b/llvm/test/MC/AMDGPU/invalid-instructions-spellcheck.s @@ -1,4 +1,4 @@ -# RUN: not llvm-mc -triple amdgcn < %s 2>&1 | FileCheck --strict-whitespace %s +# RUN: not llvm-mc -triple amdgcn -mcpu=tahiti < %s 2>&1 | FileCheck --strict-whitespace %s # This tests the mnemonic spell checker. diff --git a/llvm/test/MC/AMDGPU/literals.s b/llvm/test/MC/AMDGPU/literals.s index 7b3bd5ece0988..783947544d221 100644 --- a/llvm/test/MC/AMDGPU/literals.s +++ b/llvm/test/MC/AMDGPU/literals.s @@ -1,10 +1,8 @@ -// RUN: not llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefix=SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefixes=SICI,CI // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GFX89 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefixes=GFX89,GFX9 -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefixes=NOGCN,NOSI,NOSICI,NOSICIVI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefixes=NOGCN,NOSI,NOSICI,NOSICIVI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefixes=NOGCN,NOSICI,NOCIVI,NOSICIVI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s --check-prefixes=NOGCN,NOSICIVI,NOVI,NOGFX89 --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/mai-gfx950.s b/llvm/test/MC/AMDGPU/mai-gfx950.s index a692693638c69..23b1ba2c3cd13 100644 --- a/llvm/test/MC/AMDGPU/mai-gfx950.s +++ b/llvm/test/MC/AMDGPU/mai-gfx950.s @@ -1,6 +1,14 @@ // RUN: llvm-mc -triple=amdgcn -mcpu=gfx950 -show-encoding %s | FileCheck -check-prefix=GFX950 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx940 %s 2>&1 | FileCheck -check-prefix=ERR %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx90a %s 2>&1 | FileCheck -check-prefix=ERR %s +// RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1010 %s 2>&1 | FileCheck -check-prefix=ERR %s + +// cbsz = SrcA +// blgp = SrcB + +// 0 = fp8. 1 = bf8 +// 2 = fp6, 3 = bf6 +// 4 = fp4 //===----------------------------------------------------------------------===// // MFMA opcodes. @@ -275,3 +283,1280 @@ v_mfma_ld_scale_b32 v1, v1 op_sel:[1,0] op_sel_hi:[0,1] // ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU v_mfma_ld_scale_b32 v1, v1 op_sel:[0,1] op_sel_hi:[1,0] + +//===----------------------------------------------------------------------===// +// v_mfma_f32_16x16x128_f8f6f4 +//===----------------------------------------------------------------------===// + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[4:11], v[0:3] ; encoding: [0x00,0x00,0xad,0xd3,0x04,0x09,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[4:11], v[0:3] + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[4:11], v[0:3] blgp:1 ; encoding: [0x00,0x00,0xad,0xd3,0x04,0x09,0x02,0x24] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[4:11], v[0:3] blgp:1 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[4:11], v[0:3] cbsz:3 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x09,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[4:11], v[0:3] cbsz:3 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[4:11], v[0:3] ; encoding: [0x00,0x00,0xad,0xd3,0x04,0x09,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[4:11], v[0:3] + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[4:11], v[0:3] cbsz:3 blgp:1 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x09,0x02,0x24] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[4:11], v[0:3] cbsz:3 blgp:1 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:11], a[0:3] ; encoding: [0x00,0x80,0xad,0xd3,0x04,0x09,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:11], a[0:3] + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:11], a[0:3] blgp:1 ; encoding: [0x00,0x80,0xad,0xd3,0x04,0x09,0x02,0x3c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:11], a[0:3] blgp:1 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[4:11], a[0:3] cbsz:3 ; encoding: [0x00,0x83,0xad,0xd3,0x04,0x09,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[4:11], a[0:3] cbsz:3 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:11], a[0:3] ; encoding: [0x00,0x80,0xad,0xd3,0x04,0x09,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:11], a[0:3] + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:9], a[0:3] cbsz:1 blgp:3 ; encoding: [0x00,0x81,0xad,0xd3,0x04,0x09,0x02,0x7c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:9], a[0:3] cbsz:1 blgp:3 + +//===----------------------------------------------------------------------===// +// v_mfma_f32_32x32x64_f8f6f4 +//===----------------------------------------------------------------------===// + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[4:11], v[0:15] ; encoding: [0x00,0x00,0xae,0xd3,0x04,0x09,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[4:11], v[0:15] + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[4:11], v[0:15] blgp:1 ; encoding: [0x00,0x00,0xae,0xd3,0x04,0x09,0x02,0x24] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[4:11], v[0:15] blgp:1 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[4:11], v[0:15] cbsz:3 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x09,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[4:11], v[0:15] cbsz:3 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[4:11], v[0:15] ; encoding: [0x00,0x00,0xae,0xd3,0x04,0x09,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[4:11], v[0:15] + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[4:11], v[0:15] cbsz:3 blgp:1 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x09,0x02,0x24] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[4:11], v[0:15] cbsz:3 blgp:1 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:11], a[0:15] ; encoding: [0x00,0x80,0xae,0xd3,0x04,0x09,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:11], a[0:15] + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:11], a[0:15] blgp:1 ; encoding: [0x00,0x80,0xae,0xd3,0x04,0x09,0x02,0x3c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:11], a[0:15] blgp:1 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[4:11], a[0:15] cbsz:3 ; encoding: [0x00,0x83,0xae,0xd3,0x04,0x09,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[4:11], a[0:15] cbsz:3 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:11], a[0:15] ; encoding: [0x00,0x80,0xae,0xd3,0x04,0x09,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:11], a[0:15] + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:9], a[0:15] cbsz:1 blgp:3 ; encoding: [0x00,0x81,0xae,0xd3,0x04,0x09,0x02,0x7c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:9], a[0:15] cbsz:1 blgp:3 + +//===----------------------------------------------------------------------===// +// v_mfma_scale_f32_16x16x128_f8f6f4 +//===----------------------------------------------------------------------===// +// FIXME: Test op_sel, neg, clamp + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[4:11], v[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[4:11], v[12:19], a[20:23], v24, v25 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], a[4:11], a[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], a[4:11], a[12:19], v[20:23], v24, v25 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], a[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], a[12:19], v[20:23], v24, v25 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], a[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], a[4:11], v[12:19], v[20:23], v24, v25 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[50:53], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x32,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[50:53], v[4:11], v[12:19], v[20:23], v24, v25 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v44, s24 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x2c,0x31,0x00,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v44, s24 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], s24, s24 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x30,0x00,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], s24, s24 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], s24, v44 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x58,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], s24, v44 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], m0, m0 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x7c,0xf8,0x00,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], m0, m0 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], vcc_lo, v2 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x6a,0x04,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], vcc_lo, v2 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], 9, v2 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x89,0x04,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], 9, v2 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v2, 9 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x02,0x13,0x01,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v2, 9 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], s20, 9 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x14,0x12,0x01,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], s20, 9 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], 33, 9 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0xa1,0x12,0x01,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], 33, 9 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 cbsz:3 blgp:1 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x08,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel:[0,1,0] cbsz:3 blgp:1 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel:[0,1,0] op_sel_hi:[0,1,0] cbsz:3 blgp:1 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x44] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:17], v[20:23], v24, v25 op_sel:[0,1,0] op_sel_hi:[0,1,0] blgp:2 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel:[0,1,0] op_sel_hi:[0,1,0] + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel:[0,1,0] op_sel_hi:[0,1,0] cbsz:3 + +//===----------------------------------------------------------------------===// +// v_mfma_scale_f32_32x32x64_f8f6f4 +//===----------------------------------------------------------------------===// +// FIXME: Test op_sel, neg, clamp + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[16:23], v[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[16:23], v[24:31], a[32:47], v48, v49 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], a[16:23], a[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], a[16:23], a[24:31], v[32:47], v48, v49 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], a[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], a[24:31], v[32:47], v48, v49 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], v[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], v[24:31], a[32:47], v48, v49 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[50:65], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x32,0x08,0xae,0xd3,0x10,0x31,0x82,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 v[50:65], v[16:23], v[24:31], v[32:47], v48, v49 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x24] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:31], v[32:47], v48, v49 cbsz:3 blgp:1 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:31], v[32:47], v48, v49 cbsz:2 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x44] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:29], v[32:47], v48, v49 blgp:2 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x18,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x64] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 op_sel:[0,1,0] op_sel_hi:[0,1,0] cbsz:2 blgp:3 + +//===----------------------------------------------------------------------===// +// v_mfma_f32_16x16x128_f8f6f4 with appropriate register widths +//===----------------------------------------------------------------------===// + +// bf8 x fp4 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:15], v[20:23] cbsz:1 blgp:4 ; encoding: [0x00,0x01,0xad,0xd3,0x04,0x19,0x52,0x84] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:15], v[20:23] cbsz:1 blgp:4 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:15], v[20:23] cbsz:1 blgp:4 ; encoding: [0x00,0x01,0xad,0xd3,0x04,0x19,0x52,0x84] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:15], v[20:23] cbsz:1 blgp:4 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:15], a[20:23] cbsz:1 blgp:4 ; encoding: [0x00,0x81,0xad,0xd3,0x04,0x19,0x52,0x9c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:15], a[20:23] cbsz:1 blgp:4 + + +// fp4 x bf8 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:19], v[20:23] cbsz:4 blgp:1 ; encoding: [0x00,0x04,0xad,0xd3,0x04,0x19,0x52,0x24] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:19], v[20:23] cbsz:4 blgp:1 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:19], a[20:23] cbsz:4 blgp:1 ; encoding: [0x00,0x84,0xad,0xd3,0x04,0x19,0x52,0x3c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:19], a[20:23] cbsz:4 blgp:1 + + +// bf6 x bf8 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23] cbsz:3 blgp:1 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x19,0x52,0x24] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23] cbsz:3 blgp:1 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:19], a[20:23] cbsz:3 blgp:1 ; encoding: [0x00,0x83,0xad,0xd3,0x04,0x19,0x52,0x3c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:19], a[20:23] cbsz:3 blgp:1 + + +// bf8 x bf6 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:17], v[20:23] cbsz:1 blgp:3 ; encoding: [0x00,0x01,0xad,0xd3,0x04,0x19,0x52,0x64] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:17], v[20:23] cbsz:1 blgp:3 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:17], a[20:23] cbsz:1 blgp:3 ; encoding: [0x00,0x81,0xad,0xd3,0x04,0x19,0x52,0x7c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:17], a[20:23] cbsz:1 blgp:3 + + +// bf6 x bf6 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23] cbsz:3 blgp:3 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x19,0x52,0x64] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23] cbsz:3 blgp:3 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23] cbsz:3 blgp:3 ; encoding: [0x00,0x83,0xad,0xd3,0x04,0x19,0x52,0x7c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23] cbsz:3 blgp:3 + +// bf6 x fp6 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23] cbsz:3 blgp:2 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x19,0x52,0x44] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23] cbsz:3 blgp:2 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23] cbsz:3 blgp:2 ; encoding: [0x00,0x83,0xad,0xd3,0x04,0x19,0x52,0x5c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23] cbsz:3 blgp:2 + + +// fp6 x bf6 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23] cbsz:2 blgp:3 ; encoding: [0x00,0x02,0xad,0xd3,0x04,0x19,0x52,0x64] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23] cbsz:2 blgp:3 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23] cbsz:2 blgp:3 ; encoding: [0x00,0x82,0xad,0xd3,0x04,0x19,0x52,0x7c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23] cbsz:2 blgp:3 + + +// fp6 x fp4 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:15], v[20:23] cbsz:2 blgp:4 ; encoding: [0x00,0x02,0xad,0xd3,0x04,0x19,0x52,0x84] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:15], v[20:23] cbsz:2 blgp:4 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:15], a[20:23] cbsz:2 blgp:4 ; encoding: [0x00,0x82,0xad,0xd3,0x04,0x19,0x52,0x9c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:15], a[20:23] cbsz:2 blgp:4 + + +// fp4 x fp6 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:17], v[20:23] cbsz:4 blgp:2 ; encoding: [0x00,0x04,0xad,0xd3,0x04,0x19,0x52,0x44] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:17], v[20:23] cbsz:4 blgp:2 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:17], a[20:23] cbsz:4 blgp:2 ; encoding: [0x00,0x84,0xad,0xd3,0x04,0x19,0x52,0x5c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:17], a[20:23] cbsz:4 blgp:2 + + +// fp4 x fp4 +// GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:15], v[20:23] cbsz:4 blgp:4 ; encoding: [0x00,0x04,0xad,0xd3,0x04,0x19,0x52,0x84] +v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:15], v[20:23] cbsz:4 blgp:4 + +// GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:15], a[20:23] cbsz:4 blgp:4 ; encoding: [0x00,0x84,0xad,0xd3,0x04,0x19,0x52,0x9c] +v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:15], a[20:23] cbsz:4 blgp:4 + +//===----------------------------------------------------------------------===// +// v_mfma_f32_32x32x64_f8f6f4 with appropriate register widths +//===----------------------------------------------------------------------===// + +// bf8 x fp4 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[12:15], v[16:31] cbsz:1 blgp:4 ; encoding: [0x00,0x01,0xae,0xd3,0x04,0x19,0x42,0x84] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[12:15], v[16:31] cbsz:1 blgp:4 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[12:15], a[16:31] cbsz:1 blgp:4 ; encoding: [0x00,0x81,0xae,0xd3,0x04,0x19,0x42,0x9c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[12:15], a[16:31] cbsz:1 blgp:4 + + +// fp4 x bf8 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:7], v[8:15], v[16:31] cbsz:4 blgp:1 ; encoding: [0x00,0x04,0xae,0xd3,0x04,0x11,0x42,0x24] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:7], v[8:15], v[16:31] cbsz:4 blgp:1 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:7], a[8:15], a[16:31] cbsz:4 blgp:1 ; encoding: [0x00,0x84,0xae,0xd3,0x04,0x11,0x42,0x3c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:7], a[8:15], a[16:31] cbsz:4 blgp:1 + + +// bf6 x bf8 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:19], v[16:31] cbsz:3 blgp:1 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x19,0x42,0x24] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:19], v[16:31] cbsz:3 blgp:1 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:19], a[16:31] cbsz:3 blgp:1 ; encoding: [0x00,0x83,0xae,0xd3,0x04,0x19,0x42,0x3c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:19], a[16:31] cbsz:3 blgp:1 + +// bf8 x bf6 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[12:17], v[16:31] cbsz:1 blgp:3 ; encoding: [0x00,0x01,0xae,0xd3,0x04,0x19,0x42,0x64] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[12:17], v[16:31] cbsz:1 blgp:3 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[12:17], a[16:31] cbsz:1 blgp:3 ; encoding: [0x00,0x81,0xae,0xd3,0x04,0x19,0x42,0x7c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[12:17], a[16:31] cbsz:1 blgp:3 + + +// bf6 x bf6 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:17], v[16:31] cbsz:3 blgp:3 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x19,0x42,0x64] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:17], v[16:31] cbsz:3 blgp:3 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:17], a[16:31] cbsz:3 blgp:3 ; encoding: [0x00,0x83,0xae,0xd3,0x04,0x19,0x42,0x7c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:17], a[16:31] cbsz:3 blgp:3 + + +// bf6 x fp6 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:17], v[16:31] cbsz:3 blgp:2 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x19,0x42,0x44] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:17], v[16:31] cbsz:3 blgp:2 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:17], a[16:31] cbsz:3 blgp:2 ; encoding: [0x00,0x83,0xae,0xd3,0x04,0x19,0x42,0x5c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:17], a[16:31] cbsz:3 blgp:2 + + +// fp6 x bf6 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:17], v[16:31] cbsz:2 blgp:3 ; encoding: [0x00,0x02,0xae,0xd3,0x04,0x19,0x42,0x64] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:17], v[16:31] cbsz:2 blgp:3 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:17], a[16:31] cbsz:2 blgp:3 ; encoding: [0x00,0x82,0xae,0xd3,0x04,0x19,0x42,0x7c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:17], a[16:31] cbsz:2 blgp:3 + + +// fp6 x fp4 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:15], v[16:31] cbsz:2 blgp:4 ; encoding: [0x00,0x02,0xae,0xd3,0x04,0x19,0x42,0x84] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:15], v[16:31] cbsz:2 blgp:4 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:15], a[16:31] cbsz:2 blgp:4 ; encoding: [0x00,0x82,0xae,0xd3,0x04,0x19,0x42,0x9c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:15], a[16:31] cbsz:2 blgp:4 + + +// fp4 x fp6 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:7], v[12:17], v[16:31] cbsz:4 blgp:2 ; encoding: [0x00,0x04,0xae,0xd3,0x04,0x19,0x42,0x44] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:7], v[12:17], v[16:31] cbsz:4 blgp:2 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:7], a[12:17], a[16:31] cbsz:4 blgp:2 ; encoding: [0x00,0x84,0xae,0xd3,0x04,0x19,0x42,0x5c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:7], a[12:17], a[16:31] cbsz:4 blgp:2 + + +// fp4 x fp4 +// GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:7], v[12:15], v[16:31] cbsz:4 blgp:4 ; encoding: [0x00,0x04,0xae,0xd3,0x04,0x19,0x42,0x84] +v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:7], v[12:15], v[16:31] cbsz:4 blgp:4 + +// GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:7], a[12:15], a[16:31] cbsz:4 blgp:4 ; encoding: [0x00,0x84,0xae,0xd3,0x04,0x19,0x42,0x9c] +v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:7], a[12:15], a[16:31] cbsz:4 blgp:4 + +//===----------------------------------------------------------------------===// +// v_mfma_scale_f32_16x16x128_f8f6f4 corrected widths +//===----------------------------------------------------------------------===// + +// fp8 x fp8 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 cbsz:0 blgp:0 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x1c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 cbsz:0 blgp:0 + + +// bf8 x fp8 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x09,0xad,0xd3,0x04,0x19,0x52,0x04] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 cbsz:1 blgp:0 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x89,0xad,0xd3,0x04,0x19,0x52,0x1c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 cbsz:1 blgp:0 + +// fp8 x bf8 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x24] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 cbsz:0 blgp:1 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x3c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 cbsz:0 blgp:1 + + +// bf8 x fp4 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:15], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x09,0xad,0xd3,0x04,0x19,0x52,0x84] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:15], v[20:23], v24, v25 cbsz:1 blgp:4 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:15], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x89,0xad,0xd3,0x04,0x19,0x52,0x9c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:15], a[20:23], v24, v25 cbsz:1 blgp:4 + +// fp4 x bf8 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0c,0xad,0xd3,0x04,0x19,0x52,0x24] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:19], v[20:23], v24, v25 cbsz:4 blgp:1 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8c,0xad,0xd3,0x04,0x19,0x52,0x3c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:19], a[20:23], v24, v25 cbsz:4 blgp:1 + + +// bf6 x bf8 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 cbsz:3 blgp:1 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8b,0xad,0xd3,0x04,0x19,0x52,0x3c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:19], a[20:23], v24, v25 cbsz:3 blgp:1 + + +// bf8 x bf6 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x09,0xad,0xd3,0x04,0x19,0x52,0x64] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:17], v[20:23], v24, v25 cbsz:1 blgp:3 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x89,0xad,0xd3,0x04,0x19,0x52,0x7c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:17], a[20:23], v24, v25 cbsz:1 blgp:3 + + +// bf6 x bf6 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x64] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23], v24, v25 cbsz:3 blgp:3 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8b,0xad,0xd3,0x04,0x19,0x52,0x7c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23], v24, v25 cbsz:3 blgp:3 + + +// bf6 x fp6 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x44] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23], v24, v25 cbsz:3 blgp:2 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8b,0xad,0xd3,0x04,0x19,0x52,0x5c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23], v24, v25 cbsz:3 blgp:2 + + +// fp6 x bf6 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0a,0xad,0xd3,0x04,0x19,0x52,0x64 +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23], v24, v25 cbsz:2 blgp:3 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8a,0xad,0xd3,0x04,0x19,0x52,0x7c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23], v24, v25 cbsz:2 blgp:3 + + +// fp6 x fp4 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:15], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:2 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0a,0xad,0xd3,0x04,0x19,0x52,0x84] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:15], v[20:23], v24, v25 cbsz:2 blgp:4 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:15], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:2 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8a,0xad,0xd3,0x04,0x19,0x52,0x9c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:15], a[20:23], v24, v25 cbsz:2 blgp:4 + +// fp4 x fp6 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0c,0xad,0xd3,0x04,0x19,0x52,0x44] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:17], v[20:23], v24, v25 cbsz:4 blgp:2 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8c,0xad,0xd3,0x04,0x19,0x52,0x5c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:17], a[20:23], v24, v25 cbsz:4 blgp:2 + +// fp4 x fp4 +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:15], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0c,0xad,0xd3,0x04,0x19,0x52,0x84] +v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:15], v[20:23], v24, v25 cbsz:4 blgp:4 + +// GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:15], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8c,0xad,0xd3,0x04,0x19,0x52,0x9c] +v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:15], a[20:23], v24, v25 cbsz:4 blgp:4 + + +//===----------------------------------------------------------------------===// +// v_mfma_scale_f32_32x32x64_f8f6f4 corrected widths +//===----------------------------------------------------------------------===// + +// fp8 x fp8 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x04] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 cbsz:0 blgp:0 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x1c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 cbsz:0 blgp:0 + +// bf8 x fp8 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x09,0xae,0xd3,0x10,0x31,0x82,0x04] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 cbsz:1 blgp:0 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x89,0xae,0xd3,0x10,0x31,0x82,0x1c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 cbsz:1 blgp:0 + + +// fp8 x bf8 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x24] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 cbsz:0 blgp:1 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x3c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 cbsz:0 blgp:1 + +// bf8 x fp4 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:27], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x09,0xae,0xd3,0x10,0x31,0x82,0x84] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:27], v[32:47], v48, v49 cbsz:1 blgp:4 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:27], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x89,0xae,0xd3,0x10,0x31,0x82,0x9c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:27], a[32:47], v48, v49 cbsz:1 blgp:4 + + +// fp4 x bf8 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:19], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0c,0xae,0xd3,0x10,0x31,0x82,0x24] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:19], v[24:31], v[32:47], v48, v49 cbsz:4 blgp:1 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:19], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8c,0xae,0xd3,0x10,0x31,0x82,0x3c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:19], a[24:31], a[32:47], v48, v49 cbsz:4 blgp:1 + + +// bf6 x bf8 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x24] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:31], v[32:47], v48, v49 cbsz:3 blgp:1 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8b,0xae,0xd3,0x10,0x31,0x82,0x3c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:31], a[32:47], v48, v49 cbsz:3 blgp:1 + + +// bf8 x bf6 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x09,0xae,0xd3,0x10,0x31,0x82,0x64] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:29], v[32:47], v48, v49 cbsz:1 blgp:3 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x89,0xae,0xd3,0x10,0x31,0x82,0x7c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:29], a[32:47], v48, v49 cbsz:1 blgp:3 + +// bf6 x bf6 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x64] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 cbsz:3 blgp:3 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8b,0xae,0xd3,0x10,0x31,0x82,0x7c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:29], a[32:47], v48, v49 cbsz:3 blgp:3 + +// bf6 x fp6 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x44] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 cbsz:3 blgp:2 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8b,0xae,0xd3,0x10,0x31,0x82,0x5c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:29], a[32:47], v48, v49 cbsz:3 blgp:2 + + +// fp6 x bf6 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x64] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 cbsz:2 blgp:3 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8a,0xae,0xd3,0x10,0x31,0x82,0x7c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:29], a[32:47], v48, v49 cbsz:2 blgp:3 + + +// fp6 x fp4 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:27], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x84] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:27], v[32:47], v48, v49 cbsz:2 blgp:4 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:27], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8a,0xae,0xd3,0x10,0x31,0x82,0x9c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:27], a[32:47], v48, v49 cbsz:2 blgp:4 + + +// fp4 x fp6 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:19], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0c,0xae,0xd3,0x10,0x31,0x82,0x44] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:19], v[24:29], v[32:47], v48, v49 cbsz:4 blgp:2 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:19], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8c,0xae,0xd3,0x10,0x31,0x82,0x5c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:19], a[24:29], a[32:47], v48, v49 cbsz:4 blgp:2 + + +// fp4 x fp4 +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:19], v[24:27], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0c,0xae,0xd3,0x10,0x31,0x82,0x84] +v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:19], v[24:27], v[32:47], v48, v49 cbsz:4 blgp:4 + +// GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:19], a[24:27], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8c,0xae,0xd3,0x10,0x31,0x82,0x9c] +v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:19], a[24:27], a[32:47], v48, v49 cbsz:4 blgp:4 + +//===----------------------------------------------------------------------===// +// v_mfma_i32_16x16x64_i8 +//===----------------------------------------------------------------------===// + +// GFX950: v_mfma_i32_16x16x64_i8 v[0:3], v[0:3], v[0:3], v[0:3] ; encoding: [0x00,0x00,0xb6,0xd3,0x00,0x01,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 v[0:3], v[0:3], v[0:3], v[0:3] + +// GFX950: v_mfma_i32_16x16x64_i8 v[0:3], v[0:3], v[0:3], v[0:3] ; encoding: [0x00,0x00,0xb6,0xd3,0x00,0x01,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64i8 v[0:3], v[0:3], v[0:3], v[0:3] + +// GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] ; encoding: [0x00,0x80,0xb6,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] + +// GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] ; encoding: [0x00,0x80,0xb6,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64i8 a[0:3], a[0:3], a[0:3], a[0:3] + +// GFX950: v_mfma_i32_16x16x64_i8 v[0:3], a[0:3], v[0:3], 1.0 ; encoding: [0x00,0x00,0xb6,0xd3,0x00,0x01,0xca,0x0b] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 v[0:3], a[0:3], v[0:3], 1.0 + +// GFX950: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], a[0:3], 1.0 ; encoding: [0x00,0x80,0xb6,0xd3,0x00,0x01,0xca,0x13] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], a[0:3], 1.0 + +// GFX950: v_mfma_i32_16x16x64_i8 v[0:3], v[0:3], v[0:3], v[0:3] blgp:5 ; encoding: [0x00,0x00,0xb6,0xd3,0x00,0x01,0x02,0xa4] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 v[0:3], v[0:3], v[0:3], v[0:3] blgp:5 + +// GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] blgp:1 ; encoding: [0x00,0x80,0xb6,0xd3,0x00,0x01,0x02,0x3c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] blgp:1 + +// GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 ; encoding: [0x00,0x83,0xb6,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 + +// GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] abid:1 ; encoding: [0x00,0x88,0xb6,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] abid:1 + +// GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 abid:1 ; encoding: [0x00,0x8b,0xb6,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 abid:1 + +// GFX950: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], v[0:3], a[4:7] ; encoding: [0x00,0x80,0xb6,0xd3,0x00,0x01,0x12,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], v[0:3], a[4:7] + +// GFX950: v_mfma_i32_16x16x64_i8 v[0:3], a[0:3], a[0:3], v[4:7] ; encoding: [0x00,0x00,0xb6,0xd3,0x00,0x01,0x12,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_16x16x64_i8 v[0:3], a[0:3], a[0:3], v[4:7] + +//===----------------------------------------------------------------------===// +// v_mfma_i32_32x32x32_i8 +//===----------------------------------------------------------------------===// + +// GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] ; encoding: [0x00,0x00,0xb8,0xd3,0x00,0x01,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] + +// GFX950: v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] ; encoding: [0x00,0x80,0xb8,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] + +// GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] ; encoding: [0x00,0x00,0xb8,0xd3,0x00,0x01,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32i8 v[0:15], v[0:3], v[0:3], v[0:15] + +// GFX950: v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] ; encoding: [0x00,0x80,0xb8,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32i8 a[0:15], a[0:3], a[0:3], a[0:15] + +// GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], 1.0 ; encoding: [0x00,0x00,0xb8,0xd3,0x00,0x01,0xca,0x03] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], 1.0 + +// GFX950: v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], 1.0 ; encoding: [0x00,0x80,0xb8,0xd3,0x00,0x01,0xca,0x1b] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], 1.0 + +// GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] blgp:5 ; encoding: [0x00,0x00,0xb8,0xd3,0x00,0x01,0x02,0xa4] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] blgp:5 + +// GFX950: v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] blgp:2 ; encoding: [0x00,0x80,0xb8,0xd3,0x00,0x01,0x02,0x5c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] blgp:2 + +// GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] cbsz:3 ; encoding: [0x00,0x03,0xb8,0xd3,0x00,0x01,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] cbsz:3 + +// GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] abid:1 ; encoding: [0x00,0x08,0xb8,0xd3,0x00,0x01,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] abid:1 + +// GFX950: v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] cbsz:3 abid:1 ; encoding: [0x00,0x8b,0xb8,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] cbsz:3 abid:1 + +//===----------------------------------------------------------------------===// +// v_mfma_f32_16x16x32_bf16 +//===----------------------------------------------------------------------===// + +// GFX950: v_mfma_f32_16x16x32_bf16 v[0:3], v[0:3], v[0:3], v[0:3] ; encoding: [0x00,0x00,0xb5,0xd3,0x00,0x01,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 v[0:3], v[0:3], v[0:3], v[0:3] + +// GFX950: v_mfma_f32_16x16x32_bf16 v[0:3], v[0:3], v[0:3], v[0:3] ; encoding: [0x00,0x00,0xb5,0xd3,0x00,0x01,0x02,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32bf16 v[0:3], v[0:3], v[0:3], v[0:3] + +// GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] ; encoding: [0x00,0x80,0xb5,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] + +// GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] ; encoding: [0x00,0x80,0xb5,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32bf16 a[0:3], a[0:3], a[0:3], a[0:3] + +// GFX950: v_mfma_f32_16x16x32_bf16 v[0:3], a[0:3], v[0:3], 1.0 ; encoding: [0x00,0x00,0xb5,0xd3,0x00,0x01,0xca,0x0b] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 v[0:3], a[0:3], v[0:3], 1.0 + +// GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], a[0:3], 1.0 ; encoding: [0x00,0x80,0xb5,0xd3,0x00,0x01,0xca,0x13] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], a[0:3], 1.0 + +// GFX950: v_mfma_f32_16x16x32_bf16 v[0:3], v[0:3], v[0:3], v[0:3] blgp:5 ; encoding: [0x00,0x00,0xb5,0xd3,0x00,0x01,0x02,0xa4] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 v[0:3], v[0:3], v[0:3], v[0:3] blgp:5 + +// GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] blgp:1 ; encoding: [0x00,0x80,0xb5,0xd3,0x00,0x01,0x02,0x3c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] blgp:1 + +// GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 ; encoding: [0x00,0x83,0xb5,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 + +// GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] abid:1 ; encoding: [0x00,0x88,0xb5,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] abid:1 + +// GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 abid:1 ; encoding: [0x00,0x8b,0xb5,0xd3,0x00,0x01,0x02,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 abid:1 + +// GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[0:3], a[4:7] ; encoding: [0x00,0x80,0xb5,0xd3,0x00,0x01,0x12,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[0:3], a[4:7] + +// GFX950: v_mfma_f32_16x16x32_bf16 v[0:3], a[0:3], a[0:3], v[4:7] ; encoding: [0x00,0x00,0xb5,0xd3,0x00,0x01,0x12,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_mfma_f32_16x16x32_bf16 v[0:3], a[0:3], a[0:3], v[4:7] + + +//===----------------------------------------------------------------------===// +// SMFMAC opcodes. +//===----------------------------------------------------------------------===// + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_16x16x64_f16 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_16x16x64_f16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xda,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_f16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_f16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xda,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64f16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_f16 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xda,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_f16 a[10:13], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_16x16x64_f16 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xda,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_f16 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_f16 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xda,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_f16 a[10:13], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_16x16x64_f16 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xda,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_f16 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_f16 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xda,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_f16 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_f16 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xda,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_f16 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_32x32x32_f16 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_32x32x32_f16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xdb,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_f16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_f16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xdb,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32f16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_f16 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xdb,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_f16 a[10:25], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_32x32x32_f16 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xdb,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_f16 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_f16 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xdb,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_f16 a[10:25], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_32x32x32_f16 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xdb,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_f16 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_f16 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xdb,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_f16 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_f16 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xdb,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_f16 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_16x16x64_bf16 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_16x16x64_bf16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xb9,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_bf16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_bf16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xb9,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64bf16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_bf16 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xb9,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_bf16 a[10:13], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_16x16x64_bf16 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xb9,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_bf16 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_bf16 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xb9,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_bf16 a[10:13], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_16x16x64_bf16 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xb9,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_bf16 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_bf16 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xb9,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_bf16 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x64_bf16 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xb9,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x64_bf16 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_32x32x32_bf16 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_32x32x32_bf16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc6,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_bf16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_bf16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc6,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32bf16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_bf16 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xc6,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_bf16 a[10:25], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_32x32x32_bf16 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc6,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_bf16 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_bf16 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xc6,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_bf16 a[10:25], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_32x32x32_bf16 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc6,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_bf16 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_bf16 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xc6,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_bf16 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x32_bf16 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xc6,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x32_bf16 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_i32_16x16x128_i8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_i32_16x16x128_i8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xba,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_16x16x128_i8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_16x16x128_i8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xba,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_16x16x128i8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_16x16x128_i8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xba,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_16x16x128_i8 a[10:13], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_i32_16x16x128_i8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xba,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_16x16x128_i8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_16x16x128_i8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xba,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_16x16x128_i8 a[10:13], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_i32_16x16x128_i8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xba,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_16x16x128_i8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_16x16x128_i8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xba,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_16x16x128_i8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_16x16x128_i8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xba,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_16x16x128_i8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_i32_32x32x64_i8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_i32_32x32x64_i8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc7,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_32x32x64_i8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_32x32x64_i8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc7,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_32x32x64i8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_32x32x64_i8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xc7,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_32x32x64_i8 a[10:25], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_i32_32x32x64_i8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc7,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_32x32x64_i8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_32x32x64_i8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xc7,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_32x32x64_i8 a[10:25], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_i32_32x32x64_i8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc7,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_32x32x64_i8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_32x32x64_i8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xc7,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_32x32x64_i8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_i32_32x32x64_i8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xc7,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_i32_32x32x64_i8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_16x16x128_bf8_bf8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbb,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbb,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128bf8bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xbb,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbb,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xbb,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbb,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xbb,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xbb,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_16x16x128_bf8_fp8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbc,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbc,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128bf8fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xbc,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbc,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xbc,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbc,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xbc,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xbc,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_16x16x128_fp8_bf8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbd,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbd,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128fp8bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xbd,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbd,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xbd,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbd,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xbd,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xbd,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_16x16x128_fp8_fp8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc3,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc3,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128fp8fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xc3,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc3,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xc3,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc3,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xc3,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xc3,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_32x32x64_bf8_bf8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcb,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcb,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64bf8bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xcb,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcb,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xcb,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcb,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xcb,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xcb,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_32x32x64_bf8_fp8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xce,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xce,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64bf8fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xce,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xce,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xce,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xce,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xce,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xce,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_32x32x64_fp8_bf8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcf,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcf,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64fp8bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xcf,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcf,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xcf,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcf,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xcf,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xcf,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 + +//===----------------------------------------------------------------------===// +// v_smfmac_f32_32x32x64_fp8_fp8 +//===----------------------------------------------------------------------===// + +// GFX950: v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xd3,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xd3,0xd3,0x02,0x09,0x0e,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64fp8fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xd3,0xd3,0x02,0x09,0x06,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], v[2:5], a[4:11], v1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xd3,0xd3,0x02,0x09,0x0a,0x0c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xd3,0xd3,0x02,0x09,0x0e,0x14] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], v[2:5], a[4:11], v3 + +// GFX950: v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xd3,0xd3,0x02,0x0d,0x0a,0x04] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xd3,0xd3,0x02,0x0d,0x0a,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 + +// GFX950: v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xd3,0xd3,0x02,0x0d,0x0e,0x1c] +// ERR: :[[@LINE+1]]:{{[0-9]+}}: error: instruction not supported on this GPU +v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 diff --git a/llvm/test/MC/AMDGPU/mimg-err.s b/llvm/test/MC/AMDGPU/mimg-err.s index 6cf92f29c27b7..bec33bab984ab 100644 --- a/llvm/test/MC/AMDGPU/mimg-err.s +++ b/llvm/test/MC/AMDGPU/mimg-err.s @@ -1,4 +1,3 @@ -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOGCN --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=NOGFX9 --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/mimg.s b/llvm/test/MC/AMDGPU/mimg.s index 29e402d9496f1..54bb2b19b2e84 100644 --- a/llvm/test/MC/AMDGPU/mimg.s +++ b/llvm/test/MC/AMDGPU/mimg.s @@ -1,11 +1,9 @@ -// RUN: not llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI --check-prefix=SICIVI // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI --check-prefix=SICIVI // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI --check-prefix=SICIVI // RUN: not llvm-mc -triple=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICIVI --check-prefix=VI --check-prefix=GFX89 --check-prefix=GFX8_0 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx810 -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICIVI --check-prefix=VI --check-prefix=GFX89 --check-prefix=GFX8_1 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=GFX9 --check-prefix=GFX89 -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOVI --check-prefix=NOGFX8_0 --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/regression/bug28165.s b/llvm/test/MC/AMDGPU/regression/bug28165.s index 1e31f204e8995..6d04e13316b61 100644 --- a/llvm/test/MC/AMDGPU/regression/bug28165.s +++ b/llvm/test/MC/AMDGPU/regression/bug28165.s @@ -1,4 +1,3 @@ -// RUN: llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: llvm-mc -triple=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefixes=GCN,VI diff --git a/llvm/test/MC/AMDGPU/regression/bug28413.s b/llvm/test/MC/AMDGPU/regression/bug28413.s index 5fbf9f37d4a8d..7cf413d2d0a17 100644 --- a/llvm/test/MC/AMDGPU/regression/bug28413.s +++ b/llvm/test/MC/AMDGPU/regression/bug28413.s @@ -1,4 +1,3 @@ -// RUN: llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: llvm-mc -triple=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefixes=GCN,VI diff --git a/llvm/test/MC/AMDGPU/smrd.s b/llvm/test/MC/AMDGPU/smrd.s index b877bce22af56..12e01321b967a 100644 --- a/llvm/test/MC/AMDGPU/smrd.s +++ b/llvm/test/MC/AMDGPU/smrd.s @@ -1,9 +1,7 @@ -// RUN: not llvm-mc -triple=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN %s // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck --check-prefix=GCN %s // RUN: llvm-mc -triple=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck --check-prefixes=GCN,CI %s // RUN: not llvm-mc -triple=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=VI %s -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=NOVI --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/sopk.s b/llvm/test/MC/AMDGPU/sopk.s index c912b83ca61c2..59c93fefcfaa2 100644 --- a/llvm/test/MC/AMDGPU/sopk.s +++ b/llvm/test/MC/AMDGPU/sopk.s @@ -1,11 +1,9 @@ -// RUN: not llvm-mc -triple=amdgcn -show-encoding %s | FileCheck --check-prefixes=GCN,SICI %s // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck --check-prefixes=GCN,SICI %s // RUN: not llvm-mc -triple=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefixes=GCN,VI9,VI %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck --check-prefixes=GCN,VI9,GFX9 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefixes=GCN,GFX10 %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx1100 -show-encoding %s | FileCheck -check-prefixes=GCN,GFX11 %s -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck -check-prefix=NOSICIVI --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICIVI --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=fiji %s 2>&1 | FileCheck -check-prefix=NOSICIVI --implicit-check-not=error: %s // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --check-prefix=NOGFX9 --implicit-check-not=error: %s diff --git a/llvm/test/MC/AMDGPU/unknown-target-cpu.s b/llvm/test/MC/AMDGPU/unknown-target-cpu.s new file mode 100644 index 0000000000000..3d41e8eb5b2c4 --- /dev/null +++ b/llvm/test/MC/AMDGPU/unknown-target-cpu.s @@ -0,0 +1,15 @@ +// RUN: not llvm-mc -triple=amdgcn -show-encoding < %s | FileCheck %s +// RUN: not llvm-mc -triple=amdgcn -show-encoding -filetype=null %s 2>&1 | FileCheck -check-prefix=ERR %s +// RUN: llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding < %s | FileCheck %s + +// CHECK: v_cmp_lt_f32_e32 vcc, s2, v4 ; encoding: [0x02,0x08,0x02,0x7c] +v_cmp_lt_f32 vcc, s2, v4 + +// CHECK: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x00] +v_cndmask_b32 v1, v2, v3, vcc + +// ERR: [[@LINE+1]]:1: error: instruction not supported on this GPU +v_mac_legacy_f32 v1, v3, s5 + +// CHECK: v_lshr_b32_e32 v0, v1, v2 ; encoding: [0x01,0x05,0x00,0x2a] +v_lshr_b32 v0, v1, v2 diff --git a/llvm/test/MC/AMDGPU/vintrp.s b/llvm/test/MC/AMDGPU/vintrp.s index db15f8eb4499d..35720c95cf31e 100644 --- a/llvm/test/MC/AMDGPU/vintrp.s +++ b/llvm/test/MC/AMDGPU/vintrp.s @@ -1,4 +1,4 @@ -// RUN: llvm-mc -triple=amdgcn -show-encoding %s | FileCheck -check-prefix=SI %s +// RUN: llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefix=SI %s // RUN: llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=VI %s v_interp_p1_f32 v1, v0, attr0.x diff --git a/llvm/test/MC/AMDGPU/vop1.s b/llvm/test/MC/AMDGPU/vop1.s index f7e5db7fa3d39..af0d289e827ee 100644 --- a/llvm/test/MC/AMDGPU/vop1.s +++ b/llvm/test/MC/AMDGPU/vop1.s @@ -1,9 +1,7 @@ -// RUN: not llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefixes=GCN,CI,SICI,CIVI // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefixes=GCN,CIVI,VI -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefixes=NOSI,NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefixes=NOSI,NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s -check-prefix=NOVI --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/vop2.s b/llvm/test/MC/AMDGPU/vop2.s index ade7ce95f1758..7317ab00ad782 100644 --- a/llvm/test/MC/AMDGPU/vop2.s +++ b/llvm/test/MC/AMDGPU/vop2.s @@ -1,9 +1,7 @@ -// RUN: not llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=GCN --check-prefix=VI -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s -check-prefix=NOVI --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/vop3-convert.s b/llvm/test/MC/AMDGPU/vop3-convert.s index 0f33a81c6ea0f..02d576fdcd845 100644 --- a/llvm/test/MC/AMDGPU/vop3-convert.s +++ b/llvm/test/MC/AMDGPU/vop3-convert.s @@ -1,9 +1,7 @@ -// RUN: not llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck %s --check-prefixes=GCN,SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefixes=GCN,VI -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s -check-prefix=NOVI --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/vop3-errs.s b/llvm/test/MC/AMDGPU/vop3-errs.s index e600151410389..94fc0ea8b3e9e 100644 --- a/llvm/test/MC/AMDGPU/vop3-errs.s +++ b/llvm/test/MC/AMDGPU/vop3-errs.s @@ -1,4 +1,3 @@ -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefix=GFX67 --check-prefix=GCN --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=GFX67 --check-prefix=GCN --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=fiji %s 2>&1 | FileCheck %s --check-prefix=GFX89 --check-prefix=GCN --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck %s --check-prefix=GFX89 --check-prefix=GCN --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/vop3.s b/llvm/test/MC/AMDGPU/vop3.s index 0d2544002a9f2..ccae2611d4ffd 100644 --- a/llvm/test/MC/AMDGPU/vop3.s +++ b/llvm/test/MC/AMDGPU/vop3.s @@ -1,11 +1,11 @@ -// RUN: not llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI +// RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefix=SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=hawaii -show-encoding %s | FileCheck %s --check-prefix=CI --check-prefix=SICI // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=VI // Make sure interp instructions disassemble regardless of lds bank count // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx810 -show-encoding %s | FileCheck %s --check-prefix=VI -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI --implicit-check-not=error: +// RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefix=NOSI --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=hawaii %s 2>&1 | FileCheck %s -check-prefix=NOCI --check-prefix=NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s --check-prefix=NOVI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx810 %s 2>&1 | FileCheck -check-prefix=NOVI --implicit-check-not=error: %s diff --git a/llvm/test/MC/AMDGPU/vop_dpp.s b/llvm/test/MC/AMDGPU/vop_dpp.s index a15a48e507a62..c7cfb7ae67a97 100644 --- a/llvm/test/MC/AMDGPU/vop_dpp.s +++ b/llvm/test/MC/AMDGPU/vop_dpp.s @@ -1,7 +1,6 @@ // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefixes=VI,VI9 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefixes=GFX9,VI9 -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefixes=NOSI,NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefixes=NOSI,NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefixes=NOSICI,NOCI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s --check-prefix=NOVI --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/vop_sdwa.s b/llvm/test/MC/AMDGPU/vop_sdwa.s index 0c803a9819a83..0e007d5e360a3 100644 --- a/llvm/test/MC/AMDGPU/vop_sdwa.s +++ b/llvm/test/MC/AMDGPU/vop_sdwa.s @@ -1,7 +1,6 @@ // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefixes=VI,GFX89 // RUN: not llvm-mc -triple=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck %s --check-prefixes=GFX9,GFX89 -// RUN: not llvm-mc -triple=amdgcn %s 2>&1 | FileCheck %s --check-prefixes=NOSI,NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck %s --check-prefixes=NOSI,NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck %s --check-prefixes=NOCI,NOSICI --implicit-check-not=error: // RUN: not llvm-mc -triple=amdgcn -mcpu=tonga %s 2>&1 | FileCheck %s --check-prefixes=NOVI,NOGFX89 --implicit-check-not=error: diff --git a/llvm/test/MC/AMDGPU/vopc.s b/llvm/test/MC/AMDGPU/vopc.s index 55289c0a463fa..9ff4f7eda73a0 100644 --- a/llvm/test/MC/AMDGPU/vopc.s +++ b/llvm/test/MC/AMDGPU/vopc.s @@ -1,4 +1,3 @@ -// RUN: llvm-mc -triple=amdgcn -show-encoding %s | FileCheck %s --check-prefix=SICI // RUN: llvm-mc -triple=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck %s --check-prefix=SICI // RUN: llvm-mc -triple=amdgcn -mcpu=tonga -show-encoding %s | FileCheck %s --check-prefix=VI diff --git a/llvm/test/MC/AMDGPU/wave_any.s b/llvm/test/MC/AMDGPU/wave_any.s index 825a0abc17224..27502eff89bfc 100644 --- a/llvm/test/MC/AMDGPU/wave_any.s +++ b/llvm/test/MC/AMDGPU/wave_any.s @@ -1,13 +1,13 @@ // RUN: llvm-mc -triple=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32,+wavefrontsize64 -show-encoding %s | FileCheck --check-prefix=GFX10 %s v_cmp_ge_i32_e32 s0, v0 -// GFX10: v_cmp_ge_i32_e32 vcc, s0, v0 ; encoding: [0x00,0x00,0x0c,0x7d] +// GFX10: v_cmp_ge_i32_e32 vcc_lo, s0, v0 ; encoding: [0x00,0x00,0x0c,0x7d] v_cmp_ge_i32_e32 vcc_lo, s0, v1 -// GFX10: v_cmp_ge_i32_e32 vcc, s0, v1 ; encoding: [0x00,0x02,0x0c,0x7d] +// GFX10: v_cmp_ge_i32_e32 vcc_lo, s0, v1 ; encoding: [0x00,0x02,0x0c,0x7d] v_cmp_ge_i32_e32 vcc, s0, v2 -// GFX10: v_cmp_ge_i32_e32 vcc, s0, v2 ; encoding: [0x00,0x04,0x0c,0x7d] +// GFX10: v_cmp_ge_i32_e32 vcc_lo, s0, v2 ; encoding: [0x00,0x04,0x0c,0x7d] v_cmp_le_f16_sdwa s0, v3, v4 src0_sel:WORD_1 src1_sel:DWORD // GFX10: v_cmp_le_f16_sdwa s0, v3, v4 src0_sel:WORD_1 src1_sel:DWORD ; encoding: [0xf9,0x08,0x96,0x7d,0x03,0x80,0x05,0x06] @@ -16,10 +16,10 @@ v_cmp_le_f16_sdwa s[0:1], v3, v4 src0_sel:WORD_1 src1_sel:DWORD // GFX10: v_cmp_le_f16_sdwa s[0:1], v3, v4 src0_sel:WORD_1 src1_sel:DWORD ; encoding: [0xf9,0x08,0x96,0x7d,0x03,0x80,0x05,0x06] v_cmp_class_f32_e32 vcc_lo, s0, v0 -// GFX10: v_cmp_class_f32_e32 vcc, s0, v0 ; encoding: [0x00,0x00,0x10,0x7d] +// GFX10: v_cmp_class_f32_e32 vcc_lo, s0, v0 ; encoding: [0x00,0x00,0x10,0x7d] v_cmp_class_f32_e32 vcc, s0, v0 -// GFX10: v_cmp_class_f32_e32 vcc, s0, v0 ; encoding: [0x00,0x00,0x10,0x7d] +// GFX10: v_cmp_class_f32_e32 vcc_lo, s0, v0 ; encoding: [0x00,0x00,0x10,0x7d] v_cmp_class_f16_sdwa vcc_lo, v1, v2 src0_sel:DWORD src1_sel:DWORD // GFX10: v_cmp_class_f16_sdwa vcc_lo, v1, v2 src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x1e,0x7d,0x01,0x00,0x06,0x06] @@ -34,40 +34,40 @@ v_cmp_class_f16_sdwa s[0:1], v1, v2 src0_sel:DWORD src1_sel:DWORD // GFX10: v_cmp_class_f16_sdwa s[0:1], v1, v2 src0_sel:DWORD src1_sel:DWORD ; encoding: [0xf9,0x04,0x1e,0x7d,0x01,0x80,0x06,0x06] v_cndmask_b32_e32 v1, v2, v3, -// GFX10: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x02] +// GFX10: v_cndmask_b32_e32 v1, v2, v3, vcc_lo ; encoding: [0x02,0x07,0x02,0x02] v_cndmask_b32_e32 v1, v2, v3, vcc_lo -// GFX10: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x02] +// GFX10: v_cndmask_b32_e32 v1, v2, v3, vcc_lo ; encoding: [0x02,0x07,0x02,0x02] v_cndmask_b32_e32 v1, v2, v3, vcc -// GFX10: v_cndmask_b32_e32 v1, v2, v3, vcc ; encoding: [0x02,0x07,0x02,0x02] +// GFX10: v_cndmask_b32_e32 v1, v2, v3, vcc_lo ; encoding: [0x02,0x07,0x02,0x02] v_add_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo -// GFX10: v_add_co_ci_u32_e32 v3, vcc, v3, v4, vcc ; encoding: [0x03,0x09,0x06,0x50] +// GFX10: v_add_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo ; encoding: [0x03,0x09,0x06,0x50] v_add_co_ci_u32_e32 v3, vcc, v3, v4, vcc -// GFX10: v_add_co_ci_u32_e32 v3, vcc, v3, v4, vcc ; encoding: [0x03,0x09,0x06,0x50] +// GFX10: v_add_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo ; encoding: [0x03,0x09,0x06,0x50] v_add_co_ci_u32_e32 v3, v3, v4 -// GFX10: v_add_co_ci_u32_e32 v3, vcc, v3, v4, vcc ; encoding: [0x03,0x09,0x06,0x50] +// GFX10: v_add_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo ; encoding: [0x03,0x09,0x06,0x50] v_sub_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo -// GFX10: v_sub_co_ci_u32_e32 v3, vcc, v3, v4, vcc ; encoding: [0x03,0x09,0x06,0x52] +// GFX10: v_sub_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo ; encoding: [0x03,0x09,0x06,0x52] v_sub_co_ci_u32_e32 v3, vcc, v3, v4, vcc -// GFX10: v_sub_co_ci_u32_e32 v3, vcc, v3, v4, vcc ; encoding: [0x03,0x09,0x06,0x52] +// GFX10: v_sub_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo ; encoding: [0x03,0x09,0x06,0x52] v_sub_co_ci_u32_e32 v3, v3, v4 -// GFX10: v_sub_co_ci_u32_e32 v3, vcc, v3, v4, vcc ; encoding: [0x03,0x09,0x06,0x52] +// GFX10: v_sub_co_ci_u32_e32 v3, vcc_lo, v3, v4, vcc_lo ; encoding: [0x03,0x09,0x06,0x52] v_subrev_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo -// GFX10: v_subrev_co_ci_u32_e32 v1, vcc, 0, v1, vcc ; encoding: [0x80,0x02,0x02,0x54] +// GFX10: v_subrev_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo ; encoding: [0x80,0x02,0x02,0x54] v_subrev_co_ci_u32_e32 v1, vcc, 0, v1, vcc -// GFX10: v_subrev_co_ci_u32_e32 v1, vcc, 0, v1, vcc ; encoding: [0x80,0x02,0x02,0x54] +// GFX10: v_subrev_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo ; encoding: [0x80,0x02,0x02,0x54] v_subrev_co_ci_u32_e32 v1, 0, v1 -// GFX10: v_subrev_co_ci_u32_e32 v1, vcc, 0, v1, vcc ; encoding: [0x80,0x02,0x02,0x54] +// GFX10: v_subrev_co_ci_u32_e32 v1, vcc_lo, 0, v1, vcc_lo ; encoding: [0x80,0x02,0x02,0x54] v_add_co_ci_u32_sdwa v1, vcc_lo, v1, v4, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD // GFX10: v_add_co_ci_u32_sdwa v1, vcc_lo, v1, v4, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x50,0x01,0x06,0x00,0x06] @@ -76,7 +76,7 @@ v_add_co_ci_u32_sdwa v1, vcc, v1, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD sr // GFX10: v_add_co_ci_u32_sdwa v1, vcc, v1, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x50,0x01,0x06,0x00,0x06] v_add_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD -// GFX10: v_add_co_ci_u32_sdwa v1, vcc, v1, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x50,0x01,0x06,0x00,0x06] +// GFX10: v_add_co_ci_u32_sdwa v1, vcc_lo, v1, v4, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x50,0x01,0x06,0x00,0x06] v_sub_co_ci_u32_sdwa v1, vcc_lo, v1, v4, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD // GFX10: v_sub_co_ci_u32_sdwa v1, vcc_lo, v1, v4, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x52,0x01,0x06,0x00,0x06] @@ -85,7 +85,7 @@ v_sub_co_ci_u32_sdwa v1, vcc, v1, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD sr // GFX10: v_sub_co_ci_u32_sdwa v1, vcc, v1, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x52,0x01,0x06,0x00,0x06] v_sub_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD -// GFX10: v_sub_co_ci_u32_sdwa v1, vcc, v1, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x52,0x01,0x06,0x00,0x06] +// GFX10: v_sub_co_ci_u32_sdwa v1, vcc_lo, v1, v4, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x52,0x01,0x06,0x00,0x06] v_subrev_co_ci_u32_sdwa v1, vcc_lo, v1, v4, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD // GFX10: v_subrev_co_ci_u32_sdwa v1, vcc_lo, v1, v4, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x54,0x01,0x06,0x00,0x06] @@ -94,10 +94,10 @@ v_subrev_co_ci_u32_sdwa v1, vcc, v1, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD // GFX10: v_subrev_co_ci_u32_sdwa v1, vcc, v1, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x54,0x01,0x06,0x00,0x06] v_subrev_co_ci_u32_sdwa v1, v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD -// GFX10: v_subrev_co_ci_u32_sdwa v1, vcc, v1, v4, vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x54,0x01,0x06,0x00,0x06] +// GFX10: v_subrev_co_ci_u32_sdwa v1, vcc_lo, v1, v4, vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x54,0x01,0x06,0x00,0x06] v_add_co_ci_u32 v1, sext(v1), sext(v4) dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD -// GFX10: v_add_co_ci_u32_sdwa v1, vcc, sext(v1), sext(v4), vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x50,0x01,0x06,0x08,0x0e] +// GFX10: v_add_co_ci_u32_sdwa v1, vcc_lo, sext(v1), sext(v4), vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x50,0x01,0x06,0x08,0x0e] v_add_co_ci_u32_sdwa v1, vcc_lo, sext(v1), sext(v4), vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD // GFX10: v_add_co_ci_u32_sdwa v1, vcc_lo, sext(v1), sext(v4), vcc_lo dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x50,0x01,0x06,0x08,0x0e] @@ -106,7 +106,7 @@ v_add_co_ci_u32_sdwa v1, vcc, sext(v1), sext(v4), vcc dst_sel:DWORD dst_unused:U // GFX10: v_add_co_ci_u32_sdwa v1, vcc, sext(v1), sext(v4), vcc dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD ; encoding: [0xf9,0x08,0x02,0x50,0x01,0x06,0x08,0x0e] v_add_co_ci_u32_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 -// GFX10: v_add_co_ci_u32_dpp v5, vcc, v1, v2, vcc quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x50,0x01,0xe4,0x00,0x00] +// GFX10: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x50,0x01,0xe4,0x00,0x00] v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 // GFX10: v_add_co_ci_u32_dpp v5, vcc_lo, v1, v2, vcc_lo quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x50,0x01,0xe4,0x00,0x00] @@ -189,8 +189,8 @@ v_subrev_co_ci_u32_e64 v4, s[0:1], v1, v5, s[2:3] v_add_co_ci_u32_e64 v4, vcc_lo, v1, v5, s2 // GFX10: v_add_co_ci_u32_e64 v4, vcc_lo, v1, v5, s2 ; encoding: [0x04,0x6a,0x28,0xd5,0x01,0x0b,0x0a,0x00] -v_add_co_ci_u32_e64 v4, vcc, v1, v5, s[2:3] -// GFX10: v_add_co_ci_u32_e64 v4, vcc, v1, v5, s[2:3] ; encoding: [0x04,0x6a,0x28,0xd5,0x01,0x0b,0x0a,0x00] +v_add_co_ci_u32_e64 v4, vcc_lo, v1, v5, s[2:3] +// GFX10: v_add_co_ci_u32_e64 v4, vcc_lo, v1, v5, s[2:3] ; encoding: [0x04,0x6a,0x28,0xd5,0x01,0x0b,0x0a,0x00] v_add_co_ci_u32_e64 v4, s0, v1, v5, vcc_lo // GFX10: v_add_co_ci_u32_e64 v4, s0, v1, v5, vcc_lo ; encoding: [0x04,0x00,0x28,0xd5,0x01,0x0b,0xaa,0x01] diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx950.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx950.txt index ce37e228f03fa..9fc9c58387b90 100644 --- a/llvm/test/MC/Disassembler/AMDGPU/gfx950.txt +++ b/llvm/test/MC/Disassembler/AMDGPU/gfx950.txt @@ -42,3 +42,80 @@ # GFX950: buffer_load_dwordx4 v0, s[8:11], s101 offen lds ; encoding: [0x00,0x10,0x5d,0xe0,0x00,0x00,0x02,0x65] 0x00,0x10,0x5d,0xe0,0x00,0x00,0x02,0x65 + + +# GFX950: v_permlane16_swap_b32_e32 v1, v2 ; encoding: [0x02,0xb3,0x02,0x7e] +0x02,0xb3,0x02,0x7e + +# GFX950: v_permlane16_swap_b32_e64 v1, v2 ; encoding: [0x01,0x00,0x99,0xd1,0x02,0x01,0x00,0x00] +0x01,0x00,0x99,0xd1,0x02,0x01,0x00,0x00 + +# GFX950: v_permlane16_swap_b32_e64 v1, v2 bound_ctrl:1 ; encoding: [0x01,0x10,0x99,0xd1,0x02,0x01,0x00,0x00] +0x01,0x10,0x99,0xd1,0x02,0x01,0x00,0x00 + +# GFX950: v_permlane16_swap_b32_e64 v1, v2 bound_ctrl:1 fi:1 ; encoding: [0x01,0x18,0x99,0xd1,0x02,0x01,0x00,0x00] +0x01,0x18,0x99,0xd1,0x02,0x01,0x00,0x00 + +# GFX950: v_permlane16_swap_b32_e64 v1, v2 fi:1 ; encoding: [0x01,0x08,0x99,0xd1,0x02,0x01,0x00,0x00] +0x01,0x08,0x99,0xd1,0x02,0x01,0x00,0x00 + + +# GFX950: v_permlane32_swap_b32_e32 v1, v2 ; encoding: [0x02,0xb5,0x02,0x7e] +0x02,0xb5,0x02,0x7e + +# GFX950: v_permlane32_swap_b32_e64 v1, v2 ; encoding: [0x01,0x00,0x9a,0xd1,0x02,0x01,0x00,0x00] +0x01,0x00,0x9a,0xd1,0x02,0x01,0x00,0x00 + +# GFX950: v_permlane32_swap_b32_e64 v1, v2 bound_ctrl:1 ; encoding: [0x01,0x10,0x9a,0xd1,0x02,0x01,0x00,0x00] +0x01,0x10,0x9a,0xd1,0x02,0x01,0x00,0x00 + +# GFX950: v_permlane32_swap_b32_e64 v1, v2 bound_ctrl:1 fi:1 ; encoding: [0x01,0x18,0x9a,0xd1,0x02,0x01,0x00,0x00] +0x01,0x18,0x9a,0xd1,0x02,0x01,0x00,0x00 + +# GFX950: v_permlane32_swap_b32_e64 v1, v2 fi:1 ; encoding: [0x01,0x08,0x9a,0xd1,0x02,0x01,0x00,0x00] +0x01,0x08,0x9a,0xd1,0x02,0x01,0x00,0x00 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x03] +0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x03 + +# GFX950: buffer_atomic_pk_add_bf16 v255, off, s[8:11], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0xff,0x02,0x03] +0xff,0x0f,0x48,0xe1,0x00,0xff,0x02,0x03 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[12:15], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x03,0x03] +0xff,0x0f,0x48,0xe1,0x00,0x05,0x03,0x03 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[96:99], s3 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x18,0x03] +0xff,0x0f,0x48,0xe1,0x00,0x05,0x18,0x03 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s101 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x65] +0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x65 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], m0 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x7c] +0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x7c + +# GFX950: buffer_atomic_pk_add_bf16 v5, v0, s[8:11], s3 idxen offset:4095 ; encoding: [0xff,0x2f,0x48,0xe1,0x00,0x05,0x02,0x03] +0xff,0x2f,0x48,0xe1,0x00,0x05,0x02,0x03 + +# GFX950: buffer_atomic_pk_add_bf16 v5, v0, s[8:11], s3 offen offset:4095 ; encoding: [0xff,0x1f,0x48,0xe1,0x00,0x05,0x02,0x03] +0xff,0x1f,0x48,0xe1,0x00,0x05,0x02,0x03 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 ; encoding: [0x00,0x00,0x48,0xe1,0x00,0x05,0x02,0x03] +0x00,0x00,0x48,0xe1,0x00,0x05,0x02,0x03 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 ; encoding: [0x00,0x00,0x48,0xe1,0x00,0x05,0x02,0x03] +0x00,0x00,0x48,0xe1,0x00,0x05,0x02,0x03 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], s3 offset:7 ; encoding: [0x07,0x00,0x48,0xe1,0x00,0x05,0x02,0x03] +0x07,0x00,0x48,0xe1,0x00,0x05,0x02,0x03 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], 0 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x80] +0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0x80 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], -1 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0xc1] +0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0xc1 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], 0.5 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0xf0] +0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0xf0 + +# GFX950: buffer_atomic_pk_add_bf16 v5, off, s[8:11], -4.0 offset:4095 ; encoding: [0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0xf7] +0xff,0x0f,0x48,0xe1,0x00,0x05,0x02,0xf7 diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_ds_read_tr.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_ds_read_tr.txt new file mode 100644 index 0000000000000..1efd2d7b996d4 --- /dev/null +++ b/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_ds_read_tr.txt @@ -0,0 +1,37 @@ +# RUN: llvm-mc -arch=amdgcn -mcpu=gfx950 -disassemble -show-encoding %s | FileCheck -check-prefix=GFX950 %s + +# GFX950: ds_read_b64_tr_b4 v[0:1], v0 ; encoding: [0x00,0x00,0xc0,0xd9,0x00,0x00,0x00,0x00] +0x00,0x00,0xc0,0xd9,0x00,0x00,0x00,0x00 + +# GFX950: ds_read_b64_tr_b4 v[2:3], v2 ; encoding: [0x00,0x00,0xc0,0xd9,0x02,0x00,0x00,0x02] +0x00,0x00,0xc0,0xd9,0x02,0x00,0x00,0x02 + +# GFX950: ds_read_b64_tr_b4 v[2:3], v2 offset:64 ; encoding: [0x40,0x00,0xc0,0xd9,0x02,0x00,0x00,0x02] +0x40,0x00,0xc0,0xd9,0x02,0x00,0x00,0x02 + +# GFX950: ds_read_b64_tr_b8 v[0:1], v0 ; encoding: [0x00,0x00,0xc4,0xd9,0x00,0x00,0x00,0x00] +0x00,0x00,0xc4,0xd9,0x00,0x00,0x00,0x00 + +# GFX950: ds_read_b64_tr_b8 v[2:3], v2 ; encoding: [0x00,0x00,0xc4,0xd9,0x02,0x00,0x00,0x02] +0x00,0x00,0xc4,0xd9,0x02,0x00,0x00,0x02 + +# GFX950: ds_read_b64_tr_b8 v[2:3], v2 offset:64 ; encoding: [0x40,0x00,0xc4,0xd9,0x02,0x00,0x00,0x02] +0x40,0x00,0xc4,0xd9,0x02,0x00,0x00,0x02 + +# GFX950: ds_read_b64_tr_b16 v[0:1], v0 ; encoding: [0x00,0x00,0xc6,0xd9,0x00,0x00,0x00,0x00] +0x00,0x00,0xc6,0xd9,0x00,0x00,0x00,0x00 + +# GFX950: ds_read_b64_tr_b16 v[2:3], v2 ; encoding: [0x00,0x00,0xc6,0xd9,0x02,0x00,0x00,0x02] +0x00,0x00,0xc6,0xd9,0x02,0x00,0x00,0x02 + +# GFX950: ds_read_b64_tr_b16 v[2:3], v2 offset:64 ; encoding: [0x40,0x00,0xc6,0xd9,0x02,0x00,0x00,0x02] +0x40,0x00,0xc6,0xd9,0x02,0x00,0x00,0x02 + +# GFX950: ds_read_b96_tr_b6 v[0:2], v0 ; encoding: [0x00,0x00,0xc2,0xd9,0x00,0x00,0x00,0x00] +0x00,0x00,0xc2,0xd9,0x00,0x00,0x00,0x00 + +# GFX950: ds_read_b96_tr_b6 v[2:4], v2 ; encoding: [0x00,0x00,0xc2,0xd9,0x02,0x00,0x00,0x02] +0x00,0x00,0xc2,0xd9,0x02,0x00,0x00,0x02 + +# GFX950: ds_read_b96_tr_b6 v[2:4], v2 offset:64 ; encoding: [0x40,0x00,0xc2,0xd9,0x02,0x00,0x00,0x02] +0x40,0x00,0xc2,0xd9,0x02,0x00,0x00,0x02 diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_vop3.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_vop3.txt index 909743c2babf5..adb4f78942503 100644 --- a/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_vop3.txt +++ b/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_vop3.txt @@ -17,3 +17,928 @@ # GFX950: v_cvt_pk_bf16_f32 v5, 0.5, m0 mul:2 ; encoding: [0x05,0x00,0x68,0xd2,0xf0,0xf8,0x00,0x08] 0x05,0x00,0x68,0xd2,0xf0,0xf8,0x00,0x08 + +# GFX950: v_bitop3_b32 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x34,0xd2,0x01,0x05,0x0e,0x00] +0x05,0x00,0x34,0xd2,0x01,0x05,0x0e,0x00 + +# GFX950: v_bitop3_b32 v5, v1, v2, s3 bitop3:0xa1 ; encoding: [0x05,0x04,0x34,0xd2,0x01,0x05,0x0e,0x30] +0x05,0x04,0x34,0xd2,0x01,0x05,0x0e,0x30 + +# GFX950: v_bitop3_b32 v5, m0, 0.5, m0 bitop3:5 ; encoding: [0x05,0x00,0x34,0xd2,0x7c,0xe0,0xf1,0xa1] +0x05,0x00,0x34,0xd2,0x7c,0xe0,0xf1,0xa1 + +# GFX950: v_bitop3_b32 v5, 0.5, m0, 0.5 bitop3:0x65 ; encoding: [0x05,0x04,0x34,0xd2,0xf0,0xf8,0xc0,0xab] +0x05,0x04,0x34,0xd2,0xf0,0xf8,0xc0,0xab + +# GFX950: v_bitop3_b16 v5, v1, v2, s3 ; encoding: [0x05,0x00,0x33,0xd2,0x01,0x05,0x0e,0x00] +0x05,0x00,0x33,0xd2,0x01,0x05,0x0e,0x00 + +# GFX950: v_bitop3_b16 v5, v1, v2, s3 bitop3:0xa1 ; encoding: [0x05,0x04,0x33,0xd2,0x01,0x05,0x0e,0x30] +0x05,0x04,0x33,0xd2,0x01,0x05,0x0e,0x30 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 ; encoding: [0x01,0x00,0x4a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x4a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x4a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x10,0x4a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x18,0x4a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x4a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x48,0x4a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x50,0x4a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x58,0x4a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, s1, v3 ; encoding: [0x01,0x00,0x4a,0xd2,0x01,0x06,0x02,0x00] +0x01,0x00,0x4a,0xd2,0x01,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4a,0xd2,0x02,0x06,0x02,0x00] +0x01,0x08,0x4a,0xd2,0x02,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4a,0xd2,0x03,0x06,0x02,0x00] +0x01,0x10,0x4a,0xd2,0x03,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4a,0xd2,0x04,0x06,0x02,0x00] +0x01,0x18,0x4a,0xd2,0x04,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4a,0xd2,0x01,0x06,0x02,0x00] +0x01,0x40,0x4a,0xd2,0x01,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4a,0xd2,0x02,0x06,0x02,0x00] +0x01,0x48,0x4a,0xd2,0x02,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4a,0xd2,0x03,0x06,0x02,0x00] +0x01,0x50,0x4a,0xd2,0x03,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4a,0xd2,0x04,0x06,0x02,0x00] +0x01,0x58,0x4a,0xd2,0x04,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, 11, v3 ; encoding: [0x01,0x00,0x4a,0xd2,0x8b,0x06,0x02,0x00] +0x01,0x00,0x4a,0xd2,0x8b,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4a,0xd2,0x96,0x06,0x02,0x00] +0x01,0x08,0x4a,0xd2,0x96,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4a,0xd2,0xa1,0x06,0x02,0x00] +0x01,0x10,0x4a,0xd2,0xa1,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4a,0xd2,0xac,0x06,0x02,0x00] +0x01,0x18,0x4a,0xd2,0xac,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, 11, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4a,0xd2,0x8b,0x06,0x02,0x00] +0x01,0x50,0x4a,0xd2,0x8b,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4a,0xd2,0x96,0x06,0x02,0x00] +0x01,0x48,0x4a,0xd2,0x96,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4a,0xd2,0xa1,0x06,0x02,0x00] +0x01,0x50,0x4a,0xd2,0xa1,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_fp8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4a,0xd2,0xac,0x06,0x02,0x00] +0x01,0x58,0x4a,0xd2,0xac,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 ; encoding: [0x01,0x00,0x3b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x3b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x3b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x10,0x3b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x18,0x3b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x3b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x48,0x3b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x50,0x3b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x58,0x3b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, s1, v3 ; encoding: [0x01,0x00,0x3b,0xd2,0x01,0x06,0x02,0x00] +0x01,0x00,0x3b,0xd2,0x01,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3b,0xd2,0x02,0x06,0x02,0x00] +0x01,0x08,0x3b,0xd2,0x02,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3b,0xd2,0x03,0x06,0x02,0x00] +0x01,0x10,0x3b,0xd2,0x03,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3b,0xd2,0x04,0x06,0x02,0x00] +0x01,0x18,0x3b,0xd2,0x04,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3b,0xd2,0x01,0x06,0x02,0x00] +0x01,0x40,0x3b,0xd2,0x01,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3b,0xd2,0x02,0x06,0x02,0x00] +0x01,0x48,0x3b,0xd2,0x02,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3b,0xd2,0x03,0x06,0x02,0x00] +0x01,0x50,0x3b,0xd2,0x03,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3b,0xd2,0x04,0x06,0x02,0x00] +0x01,0x58,0x3b,0xd2,0x04,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, 11, v3 ; encoding: [0x01,0x00,0x3b,0xd2,0x8b,0x06,0x02,0x00] +0x01,0x00,0x3b,0xd2,0x8b,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3b,0xd2,0x96,0x06,0x02,0x00] +0x01,0x08,0x3b,0xd2,0x96,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3b,0xd2,0xa1,0x06,0x02,0x00] +0x01,0x10,0x3b,0xd2,0xa1,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3b,0xd2,0xac,0x06,0x02,0x00] +0x01,0x18,0x3b,0xd2,0xac,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, 11, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3b,0xd2,0x8b,0x06,0x02,0x00] +0x01,0x40,0x3b,0xd2,0x8b,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3b,0xd2,0x96,0x06,0x02,0x00] +0x01,0x48,0x3b,0xd2,0x96,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3b,0xd2,0xa1,0x06,0x02,0x00] +0x01,0x50,0x3b,0xd2,0xa1,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_fp8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3b,0xd2,0xac,0x06,0x02,0x00] +0x01,0x58,0x3b,0xd2,0xac,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x4b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x4b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x4b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x10,0x4b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x18,0x4b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x4b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x48,0x4b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x50,0x4b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4b,0xd2,0x02,0x07,0x02,0x00] +0x01,0x58,0x4b,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, s1, v3 ; encoding: [0x01,0x00,0x4b,0xd2,0x01,0x06,0x02,0x00] +0x01,0x00,0x4b,0xd2,0x01,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4b,0xd2,0x02,0x06,0x02,0x00] +0x01,0x08,0x4b,0xd2,0x02,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4b,0xd2,0x03,0x06,0x02,0x00] +0x01,0x10,0x4b,0xd2,0x03,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4b,0xd2,0x04,0x06,0x02,0x00] +0x01,0x18,0x4b,0xd2,0x04,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x4b,0xd2,0x01,0x06,0x02,0x00] +0x01,0x40,0x4b,0xd2,0x01,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4b,0xd2,0x02,0x06,0x02,0x00] +0x01,0x48,0x4b,0xd2,0x02,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0x03,0x06,0x02,0x00] +0x01,0x50,0x4b,0xd2,0x03,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4b,0xd2,0x04,0x06,0x02,0x00] +0x01,0x58,0x4b,0xd2,0x04,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, 11, v3 ; encoding: [0x01,0x00,0x4b,0xd2,0x8b,0x06,0x02,0x00] +0x01,0x00,0x4b,0xd2,0x8b,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x4b,0xd2,0x96,0x06,0x02,0x00] +0x01,0x08,0x4b,0xd2,0x96,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x4b,0xd2,0xa1,0x06,0x02,0x00] +0x01,0x10,0x4b,0xd2,0xa1,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x4b,0xd2,0xac,0x06,0x02,0x00] +0x01,0x18,0x4b,0xd2,0xac,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, 11, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0x8b,0x06,0x02,0x00] +0x01,0x50,0x4b,0xd2,0x8b,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x4b,0xd2,0x96,0x06,0x02,0x00] +0x01,0x48,0x4b,0xd2,0x96,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x4b,0xd2,0xa1,0x06,0x02,0x00] +0x01,0x50,0x4b,0xd2,0xa1,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f16_bf8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x4b,0xd2,0xac,0x06,0x02,0x00] +0x01,0x58,0x4b,0xd2,0xac,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x3c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x3c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x3c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x10,0x3c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x18,0x3c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x3c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x48,0x3c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x50,0x3c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, v2, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x58,0x3c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, s1, v3 ; encoding: [0x01,0x00,0x3c,0xd2,0x01,0x06,0x02,0x00] +0x01,0x00,0x3c,0xd2,0x01,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3c,0xd2,0x02,0x06,0x02,0x00] +0x01,0x08,0x3c,0xd2,0x02,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3c,0xd2,0x03,0x06,0x02,0x00] +0x01,0x10,0x3c,0xd2,0x03,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3c,0xd2,0x04,0x06,0x02,0x00] +0x01,0x18,0x3c,0xd2,0x04,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, s1, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3c,0xd2,0x01,0x06,0x02,0x00] +0x01,0x40,0x3c,0xd2,0x01,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, s2, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3c,0xd2,0x02,0x06,0x02,0x00] +0x01,0x48,0x3c,0xd2,0x02,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, s3, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3c,0xd2,0x03,0x06,0x02,0x00] +0x01,0x50,0x3c,0xd2,0x03,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, s4, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3c,0xd2,0x04,0x06,0x02,0x00] +0x01,0x58,0x3c,0xd2,0x04,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, 11, v3 ; encoding: [0x01,0x00,0x3c,0xd2,0x8b,0x06,0x02,0x00] +0x01,0x00,0x3c,0xd2,0x8b,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x3c,0xd2,0x96,0x06,0x02,0x00] +0x01,0x08,0x3c,0xd2,0x96,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x3c,0xd2,0xa1,0x06,0x02,0x00] +0x01,0x10,0x3c,0xd2,0xa1,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x3c,0xd2,0xac,0x06,0x02,0x00] +0x01,0x18,0x3c,0xd2,0xac,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, 11, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x3c,0xd2,0x8b,0x06,0x02,0x00] +0x01,0x40,0x3c,0xd2,0x8b,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, 22, v3 op_sel:[1,0,1] ; encoding: [0x01,0x48,0x3c,0xd2,0x96,0x06,0x02,0x00] +0x01,0x48,0x3c,0xd2,0x96,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, 33, v3 op_sel:[0,1,1] ; encoding: [0x01,0x50,0x3c,0xd2,0xa1,0x06,0x02,0x00] +0x01,0x50,0x3c,0xd2,0xa1,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_f32_bf8 v1, 44, v3 op_sel:[1,1,1] ; encoding: [0x01,0x58,0x3c,0xd2,0xac,0x06,0x02,0x00] +0x01,0x58,0x3c,0xd2,0xac,0x06,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, v2, v3 ; encoding: [0x01,0x00,0x35,0xd2,0x01,0x05,0x0e,0x04] +0x01,0x00,0x35,0xd2,0x01,0x05,0x0e,0x04 + +# GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, -v2, |v3| ; encoding: [0x01,0x04,0x35,0xd2,0x01,0x05,0x0e,0x44] +0x01,0x04,0x35,0xd2,0x01,0x05,0x0e,0x44 + +# GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, s2, 3 ; encoding: [0x01,0x00,0x35,0xd2,0x01,0x05,0x0c,0x02] +0x01,0x00,0x35,0xd2,0x01,0x05,0x0c,0x02 + +# GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x35,0xd2,0x01,0x05,0x0e,0x04] +0x01,0x40,0x35,0xd2,0x01,0x05,0x0e,0x04 + +# GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, -v2, |v3| op_sel:[0,0,0,1] ; encoding: [0x01,0x44,0x35,0xd2,0x01,0x05,0x0e,0x44] +0x01,0x44,0x35,0xd2,0x01,0x05,0x0e,0x44 + +# GFX950: v_cvt_scalef32_pk_fp8_f32 v1, v1, s2, 3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x35,0xd2,0x01,0x05,0x0c,0x02] +0x01,0x40,0x35,0xd2,0x01,0x05,0x0c,0x02 + +# GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, v2, v3 ; encoding: [0x01,0x00,0x36,0xd2,0x01,0x05,0x0e,0x04] +0x01,0x00,0x36,0xd2,0x01,0x05,0x0e,0x04 + +# GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, -v2, |v3| ; encoding: [0x01,0x04,0x36,0xd2,0x01,0x05,0x0e,0x44] +0x01,0x04,0x36,0xd2,0x01,0x05,0x0e,0x44 + +# GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, s2, 3 ; encoding: [0x01,0x00,0x36,0xd2,0x01,0x05,0x0c,0x02] +0x01,0x00,0x36,0xd2,0x01,0x05,0x0c,0x02 + +# GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x36,0xd2,0x01,0x05,0x0e,0x04] +0x01,0x40,0x36,0xd2,0x01,0x05,0x0e,0x04 + +# GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, -v2, |v3| op_sel:[0,0,0,1] ; encoding: [0x01,0x44,0x36,0xd2,0x01,0x05,0x0e,0x44] +0x01,0x44,0x36,0xd2,0x01,0x05,0x0e,0x44 + +# GFX950: v_cvt_scalef32_pk_bf8_f32 v1, v1, s2, 3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x36,0xd2,0x01,0x05,0x0c,0x02] +0x01,0x40,0x36,0xd2,0x01,0x05,0x0c,0x02 + +# GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, v3 ; encoding: [0x02,0x00,0x39,0xd2,0x02,0x07,0x02,0x00] +0x02,0x00,0x39,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, s3 ; encoding: [0x02,0x00,0x39,0xd2,0x02,0x07,0x00,0x00] +0x02,0x00,0x39,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], s2, 3 ; encoding: [0x02,0x00,0x39,0xd2,0x02,0x06,0x01,0x00] +0x02,0x00,0x39,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, v3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x39,0xd2,0x02,0x07,0x02,0x00] +0x02,0x08,0x39,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], v2, s3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x39,0xd2,0x02,0x07,0x00,0x00] +0x02,0x08,0x39,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp8 v[2:3], s2, 3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x39,0xd2,0x02,0x06,0x01,0x00] +0x02,0x08,0x39,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, v3 ; encoding: [0x02,0x00,0x3a,0xd2,0x02,0x07,0x02,0x00] +0x02,0x00,0x3a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, s3 ; encoding: [0x02,0x00,0x3a,0xd2,0x02,0x07,0x00,0x00] +0x02,0x00,0x3a,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], s2, 3 ; encoding: [0x02,0x00,0x3a,0xd2,0x02,0x06,0x01,0x00] +0x02,0x00,0x3a,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, v3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3a,0xd2,0x02,0x07,0x02,0x00] +0x02,0x08,0x3a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], v2, s3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3a,0xd2,0x02,0x07,0x00,0x00] +0x02,0x08,0x3a,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_bf8 v[2:3], s2, 3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3a,0xd2,0x02,0x06,0x01,0x00] +0x02,0x08,0x3a,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 ; encoding: [0x01,0x00,0x40,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x40,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp8_f16 v1, -v2, |v3| ; encoding: [0x01,0x02,0x40,0xd2,0x02,0x07,0x02,0x20] +0x01,0x02,0x40,0xd2,0x02,0x07,0x02,0x20 + +# GFX950: v_cvt_scalef32_pk_fp8_f16 v1, s2, 3 ; encoding: [0x01,0x00,0x40,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x40,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_fp8_f16 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x40,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x40,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp8_f16 v1, -v2, |v3| op_sel:[0,0,1] ; encoding: [0x01,0x42,0x40,0xd2,0x02,0x07,0x02,0x20] +0x01,0x42,0x40,0xd2,0x02,0x07,0x02,0x20 + +# GFX950: v_cvt_scalef32_pk_fp8_f16 v1, s2, 3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x40,0xd2,0x02,0x06,0x01,0x00] +0x01,0x40,0x40,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 ; encoding: [0x01,0x00,0x44,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x44,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, -v2, |v3| ; encoding: [0x01,0x02,0x44,0xd2,0x02,0x07,0x02,0x20] +0x01,0x02,0x44,0xd2,0x02,0x07,0x02,0x20 + +# GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, s2, 3 ; encoding: [0x01,0x00,0x44,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x44,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x44,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x44,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, -v2, |v3| op_sel:[0,0,1] ; encoding: [0x01,0x42,0x44,0xd2,0x02,0x07,0x02,0x20] +0x01,0x42,0x44,0xd2,0x02,0x07,0x02,0x20 + +# GFX950: v_cvt_scalef32_pk_fp8_bf16 v1, s2, 3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x44,0xd2,0x02,0x06,0x01,0x00] +0x01,0x40,0x44,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 ; encoding: [0x01,0x00,0x41,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x41,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf8_f16 v1, -v2, |v3| ; encoding: [0x01,0x02,0x41,0xd2,0x02,0x07,0x02,0x20] +0x01,0x02,0x41,0xd2,0x02,0x07,0x02,0x20 + +# GFX950: v_cvt_scalef32_pk_bf8_f16 v1, s2, 3 ; encoding: [0x01,0x00,0x41,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x41,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf8_f16 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x41,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x41,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf8_f16 v1, -v2, |v3| op_sel:[0,0,1] ; encoding: [0x01,0x42,0x41,0xd2,0x02,0x07,0x02,0x20] +0x01,0x42,0x41,0xd2,0x02,0x07,0x02,0x20 + +# GFX950: v_cvt_scalef32_pk_bf8_f16 v1, s2, 3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x41,0xd2,0x02,0x06,0x01,0x00] +0x01,0x40,0x41,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 ; encoding: [0x01,0x00,0x45,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x45,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, -v2, |v3| ; encoding: [0x01,0x02,0x45,0xd2,0x02,0x07,0x02,0x20] +0x01,0x02,0x45,0xd2,0x02,0x07,0x02,0x20 + +# GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, s2, 3 ; encoding: [0x01,0x00,0x45,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x45,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, v2, v3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x45,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x45,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, -v2, |v3| op_sel:[0,0,1] ; encoding: [0x01,0x42,0x45,0xd2,0x02,0x07,0x02,0x20] +0x01,0x42,0x45,0xd2,0x02,0x07,0x02,0x20 + +# GFX950: v_cvt_scalef32_pk_bf8_bf16 v1, s2, 3 op_sel:[0,0,1] ; encoding: [0x01,0x40,0x45,0xd2,0x02,0x06,0x01,0x00] +0x01,0x40,0x45,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 ; encoding: [0x02,0x00,0x3f,0xd2,0x02,0x07,0x02,0x00] +0x02,0x00,0x3f,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 ; encoding: [0x02,0x00,0x3f,0xd2,0x02,0x07,0x00,0x00] +0x02,0x00,0x3f,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 ; encoding: [0x02,0x00,0x3f,0xd2,0x02,0x06,0x01,0x00] +0x02,0x00,0x3f,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3f,0xd2,0x02,0x07,0x02,0x00] +0x02,0x08,0x3f,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3f,0xd2,0x02,0x07,0x00,0x00] +0x02,0x08,0x3f,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 op_sel:[1,0,0] ; encoding: [0x02,0x08,0x3f,0xd2,0x02,0x06,0x01,0x00] +0x02,0x08,0x3f,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 op_sel:[0,1,0] ; encoding: [0x02,0x10,0x3f,0xd2,0x02,0x07,0x02,0x00] +0x02,0x10,0x3f,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 op_sel:[0,1,0] ; encoding: [0x02,0x10,0x3f,0xd2,0x02,0x07,0x00,0x00] +0x02,0x10,0x3f,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 op_sel:[0,1,0] ; encoding: [0x02,0x10,0x3f,0xd2,0x02,0x06,0x01,0x00] +0x02,0x10,0x3f,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, v3 op_sel:[1,1,0] ; encoding: [0x02,0x18,0x3f,0xd2,0x02,0x07,0x02,0x00] +0x02,0x18,0x3f,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], v2, s3 op_sel:[1,1,0] ; encoding: [0x02,0x18,0x3f,0xd2,0x02,0x07,0x00,0x00] +0x02,0x18,0x3f,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f32_fp4 v[2:3], s2, 3 op_sel:[1,1,0] ; encoding: [0x02,0x18,0x3f,0xd2,0x02,0x06,0x01,0x00] +0x02,0x18,0x3f,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 ; encoding: [0x01,0x00,0x3d,0xd2,0x01,0x05,0x0e,0x04] +0x01,0x00,0x3d,0xd2,0x01,0x05,0x0e,0x04 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| ; encoding: [0x01,0x04,0x3d,0xd2,0x01,0x05,0x0e,0x44] +0x01,0x04,0x3d,0xd2,0x01,0x05,0x0e,0x44 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 ; encoding: [0x01,0x00,0x3d,0xd2,0x01,0x05,0x0c,0x02] +0x01,0x00,0x3d,0xd2,0x01,0x05,0x0c,0x02 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 op_sel:[0,0,1,0] ; encoding: [0x01,0x20,0x3d,0xd2,0x01,0x05,0x0e,0x04] +0x01,0x20,0x3d,0xd2,0x01,0x05,0x0e,0x04 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| op_sel:[0,0,1,0] ; encoding: [0x01,0x24,0x3d,0xd2,0x01,0x05,0x0e,0x44] +0x01,0x24,0x3d,0xd2,0x01,0x05,0x0e,0x44 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 op_sel:[0,0,1,0] ; encoding: [0x01,0x20,0x3d,0xd2,0x01,0x05,0x0c,0x02] +0x01,0x20,0x3d,0xd2,0x01,0x05,0x0c,0x02 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x3d,0xd2,0x01,0x05,0x0e,0x04] +0x01,0x40,0x3d,0xd2,0x01,0x05,0x0e,0x04 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| op_sel:[0,0,0,1] ; encoding: [0x01,0x44,0x3d,0xd2,0x01,0x05,0x0e,0x44] +0x01,0x44,0x3d,0xd2,0x01,0x05,0x0e,0x44 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x3d,0xd2,0x01,0x05,0x0c,0x02] +0x01,0x40,0x3d,0xd2,0x01,0x05,0x0c,0x02 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, v2, v3 op_sel:[0,0,1,1] ; encoding: [0x01,0x60,0x3d,0xd2,0x01,0x05,0x0e,0x04] +0x01,0x60,0x3d,0xd2,0x01,0x05,0x0e,0x04 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, -v2, |v3| op_sel:[0,0,1,1] ; encoding: [0x01,0x64,0x3d,0xd2,0x01,0x05,0x0e,0x44] +0x01,0x64,0x3d,0xd2,0x01,0x05,0x0e,0x44 + +# GFX950: v_cvt_scalef32_pk_fp4_f32 v1, v1, s2, 3 op_sel:[0,0,1,1] ; encoding: [0x01,0x60,0x3d,0xd2,0x01,0x05,0x0c,0x02] +0x01,0x60,0x3d,0xd2,0x01,0x05,0x0c,0x02 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x50,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x07,0x00,0x00] +0x01,0x00,0x50,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 ; encoding: [0x01,0x00,0x50,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x50,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x50,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x50,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x50,0xd2,0x02,0x07,0x00,0x00] +0x01,0x08,0x50,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x50,0xd2,0x02,0x06,0x01,0x00] +0x01,0x08,0x50,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x50,0xd2,0x02,0x07,0x02,0x00] +0x01,0x10,0x50,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x50,0xd2,0x02,0x07,0x00,0x00] +0x01,0x10,0x50,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x50,0xd2,0x02,0x06,0x01,0x00] +0x01,0x10,0x50,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x50,0xd2,0x02,0x07,0x02,0x00] +0x01,0x18,0x50,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, v2, s3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x50,0xd2,0x02,0x07,0x00,0x00] +0x01,0x18,0x50,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp4 v1, s2, 3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x50,0xd2,0x02,0x06,0x01,0x00] +0x01,0x18,0x50,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 ; encoding: [0x01,0x00,0x51,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x51,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 ; encoding: [0x01,0x00,0x51,0xd2,0x02,0x07,0x00,0x00] +0x01,0x00,0x51,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 ; encoding: [0x01,0x00,0x51,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x51,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x51,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x51,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x51,0xd2,0x02,0x07,0x00,0x00] +0x01,0x08,0x51,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x51,0xd2,0x02,0x06,0x01,0x00] +0x01,0x08,0x51,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x51,0xd2,0x02,0x07,0x02,0x00] +0x01,0x10,0x51,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x51,0xd2,0x02,0x07,0x00,0x00] +0x01,0x10,0x51,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 op_sel:[0,1,0] ; encoding: [0x01,0x10,0x51,0xd2,0x02,0x06,0x01,0x00] +0x01,0x10,0x51,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, v3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x51,0xd2,0x02,0x07,0x02,0x00] +0x01,0x18,0x51,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, v2, s3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x51,0xd2,0x02,0x07,0x00,0x00] +0x01,0x18,0x51,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp4 v1, s2, 3 op_sel:[1,1,0] ; encoding: [0x01,0x18,0x51,0xd2,0x02,0x06,0x01,0x00] +0x01,0x18,0x51,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk32_f32_fp6 v[2:33], v[2:7], v6 ; encoding: [0x02,0x00,0x56,0xd2,0x02,0x0d,0x02,0x00] +0x02,0x00,0x56,0xd2,0x02,0x0d,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk32_f32_bf6 v[2:33], v[2:7], v6 ; encoding: [0x02,0x00,0x57,0xd2,0x02,0x0d,0x02,0x00] +0x02,0x00,0x57,0xd2,0x02,0x0d,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk32_bf16_bf6 v[10:25], v[20:25], v8 ; encoding: [0x0a,0x00,0x63,0xd2,0x14,0x11,0x02,0x00] +0x0a,0x00,0x63,0xd2,0x14,0x11,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk32_f16_bf6 v[10:25], v[20:25], v8 ; encoding: [0x0a,0x00,0x62,0xd2,0x14,0x11,0x02,0x00] +0x0a,0x00,0x62,0xd2,0x14,0x11,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk32_bf16_fp6 v[10:25], v[20:25], v8 ; encoding: [0x0a,0x00,0x61,0xd2,0x14,0x11,0x02,0x00] +0x0a,0x00,0x61,0xd2,0x14,0x11,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk32_f16_fp6 v[10:25], v[20:25], v8 ; encoding: [0x0a,0x00,0x60,0xd2,0x14,0x11,0x02,0x00] +0x0a,0x00,0x60,0xd2,0x14,0x11,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk32_bf6_bf16 v[20:25], v[10:25], v8 ; encoding: [0x14,0x00,0x5b,0xd2,0x0a,0x11,0x02,0x00] +0x14,0x00,0x5b,0xd2,0x0a,0x11,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk32_bf6_f16 v[20:25], v[10:25], v8 ; encoding: [0x14,0x00,0x5a,0xd2,0x0a,0x11,0x02,0x00] +0x14,0x00,0x5a,0xd2,0x0a,0x11,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk32_fp6_bf16 v[20:25], v[10:25], v8 ; encoding: [0x14,0x00,0x59,0xd2,0x0a,0x11,0x02,0x00] +0x14,0x00,0x59,0xd2,0x0a,0x11,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk32_fp6_f16 v[20:25], v[10:25], v8 ; encoding: [0x14,0x00,0x58,0xd2,0x0a,0x11,0x02,0x00] +0x14,0x00,0x58,0xd2,0x0a,0x11,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp8 v1, v2, v3 ; encoding: [0x01,0x00,0x48,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x48,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp8 v1, v2, s3 ; encoding: [0x01,0x00,0x48,0xd2,0x02,0x07,0x00,0x00] +0x01,0x00,0x48,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp8 v1, s2, 3 ; encoding: [0x01,0x00,0x48,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x48,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x48,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x48,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp8 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x48,0xd2,0x02,0x07,0x00,0x00] +0x01,0x08,0x48,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_fp8 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x48,0xd2,0x02,0x06,0x01,0x00] +0x01,0x08,0x48,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x49,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x49,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_bf8 v1, v2, s3 ; encoding: [0x01,0x00,0x49,0xd2,0x02,0x07,0x00,0x00] +0x01,0x00,0x49,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_bf8 v1, s2, 3 ; encoding: [0x01,0x00,0x49,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x49,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x49,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x49,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_bf8 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x49,0xd2,0x02,0x07,0x00,0x00] +0x01,0x08,0x49,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_f16_bf8 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x49,0xd2,0x02,0x06,0x01,0x00] +0x01,0x08,0x49,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, v2, v3 ; encoding: [0x01,0x00,0x69,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x69,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, v2, s3 ; encoding: [0x01,0x00,0x69,0xd2,0x02,0x07,0x00,0x00] +0x01,0x00,0x69,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, s2, 3 ; encoding: [0x01,0x00,0x69,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x69,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x69,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x69,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x69,0xd2,0x02,0x07,0x00,0x00] +0x01,0x08,0x69,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_fp8 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x69,0xd2,0x02,0x06,0x01,0x00] +0x01,0x08,0x69,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, v2, v3 ; encoding: [0x01,0x00,0x6a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x6a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, v2, s3 ; encoding: [0x01,0x00,0x6a,0xd2,0x02,0x07,0x00,0x00] +0x01,0x00,0x6a,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, s2, 3 ; encoding: [0x01,0x00,0x6a,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x6a,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, v2, v3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x6a,0xd2,0x02,0x07,0x02,0x00] +0x01,0x08,0x6a,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, v2, s3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x6a,0xd2,0x02,0x07,0x00,0x00] +0x01,0x08,0x6a,0xd2,0x02,0x07,0x00,0x00 + +# GFX950: v_cvt_scalef32_pk_bf16_bf8 v1, s2, 3 op_sel:[1,0,0] ; encoding: [0x01,0x08,0x6a,0xd2,0x02,0x06,0x01,0x00] +0x01,0x08,0x6a,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 ; encoding: [0x01,0x00,0x4c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x4c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_f16 v1, s2, 3 ; encoding: [0x01,0x00,0x4c,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x4c,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 op_sel:[0,0,1,1] ; encoding: [0x01,0x60,0x4c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x60,0x4c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_f16 v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x4c,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x4c,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_f16 v1, -|s2|, v3 ; encoding: [0x01,0x01,0x4c,0xd2,0x02,0x06,0x02,0x20] +0x01,0x01,0x4c,0xd2,0x02,0x06,0x02,0x20 + +# GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 ; encoding: [0x01,0x00,0x4d,0xd2,0x02,0x07,0x02,0x00] +0x01,0x00,0x4d,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, s2, 3 ; encoding: [0x01,0x00,0x4d,0xd2,0x02,0x06,0x01,0x00] +0x01,0x00,0x4d,0xd2,0x02,0x06,0x01,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 op_sel:[0,0,1,1] ; encoding: [0x01,0x60,0x4d,0xd2,0x02,0x07,0x02,0x00] +0x01,0x60,0x4d,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, v2, v3 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x4d,0xd2,0x02,0x07,0x02,0x00] +0x01,0x40,0x4d,0xd2,0x02,0x07,0x02,0x00 + +# GFX950: v_cvt_scalef32_pk_fp4_bf16 v1, -|s2|, v3 ; encoding: [0x01,0x01,0x4d,0xd2,0x02,0x06,0x02,0x20] +0x01,0x01,0x4d,0xd2,0x02,0x06,0x02,0x20 + +# GFX950: v_ashr_pk_i8_i32 v2, s4, 4, v2 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x08,0x09,0x04] +0x02,0x00,0x65,0xd2,0x04,0x08,0x09,0x04 + +# GFX950: v_ashr_pk_i8_i32 v2, s4, v7, v8 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x0e,0x22,0x04] +0x02,0x00,0x65,0xd2,0x04,0x0e,0x22,0x04 + +# GFX950: v_ashr_pk_i8_i32 v2, v4, 0, 1 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x01,0x05,0x02] +0x02,0x00,0x65,0xd2,0x04,0x01,0x05,0x02 + +# GFX950: v_ashr_pk_i8_i32 v2, v4, 3, s2 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x07,0x09,0x00] +0x02,0x00,0x65,0xd2,0x04,0x07,0x09,0x00 + +# GFX950: v_ashr_pk_i8_i32 v2, v4, v7, 0.5 ; encoding: [0x02,0x00,0x65,0xd2,0x04,0x0f,0xc2,0x03] +0x02,0x00,0x65,0xd2,0x04,0x0f,0xc2,0x03 + +# GFX950: v_ashr_pk_i8_i32 v1, v2, v3, v4 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x65,0xd2,0x02,0x07,0x12,0x04] +0x01,0x40,0x65,0xd2,0x02,0x07,0x12,0x04 + +# GFX950: v_ashr_pk_u8_i32 v2, s4, 4, v2 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x08,0x09,0x04] +0x02,0x00,0x66,0xd2,0x04,0x08,0x09,0x04 + +# GFX950: v_ashr_pk_u8_i32 v2, s4, v7, v8 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x0e,0x22,0x04] +0x02,0x00,0x66,0xd2,0x04,0x0e,0x22,0x04 + +# GFX950: v_ashr_pk_u8_i32 v2, v4, 0, 1 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x01,0x05,0x02] +0x02,0x00,0x66,0xd2,0x04,0x01,0x05,0x02 + +# GFX950: v_ashr_pk_u8_i32 v2, v4, 3, s2 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x07,0x09,0x00] +0x02,0x00,0x66,0xd2,0x04,0x07,0x09,0x00 + +# GFX950: v_ashr_pk_u8_i32 v2, v4, v7, -2.0 ; encoding: [0x02,0x00,0x66,0xd2,0x04,0x0f,0xd6,0x03] +0x02,0x00,0x66,0xd2,0x04,0x0f,0xd6,0x03 + +# GFX950: v_ashr_pk_u8_i32 v1, v2, v3, v4 op_sel:[0,0,0,1] ; encoding: [0x01,0x40,0x66,0xd2,0x02,0x07,0x12,0x04] +0x01,0x40,0x66,0xd2,0x02,0x07,0x12,0x04 + +# GFX950: v_dot2_f32_bf16 v5, v1, v2, v3 ; encoding: [0x05,0x40,0x9a,0xd3,0x01,0x05,0x0e,0x1c] +0x05,0x40,0x9a,0xd3,0x01,0x05,0x0e,0x1c + +# GFX950: v_dot2_f32_bf16 v5, v1, v2, s3 ; encoding: [0x05,0x40,0x9a,0xd3,0x01,0x05,0x0e,0x18] +0x05,0x40,0x9a,0xd3,0x01,0x05,0x0e,0x18 + +# GFX950: v_dot2_f32_bf16 v2, v1, 0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0x01,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0x01,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, v1, 0.5, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe1,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0xe1,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, v1, -0.5, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe3,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0xe3,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, v1, 1.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe5,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0xe5,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, v1, -1.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe7,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0xe7,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, v1, 2.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xe9,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0xe9,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, v1, -2.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xeb,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0xeb,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, v1, 4.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xed,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0xed,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, v1, -4.0, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xef,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0xef,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, v1, 0.15915494, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0x01,0xf1,0x09,0x1c] +0x02,0x40,0x9a,0xd3,0x01,0xf1,0x09,0x1c + +# GFX950: v_dot2_f32_bf16 v2, 0.5, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf0,0x02,0x0a,0x1c] +0x02,0x40,0x9a,0xd3,0xf0,0x02,0x0a,0x1c + +# GFX950: v_dot2_f32_bf16 v2, -0.5, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf1,0x02,0x0a,0x1c] +0x02,0x40,0x9a,0xd3,0xf1,0x02,0x0a,0x1c + +# GFX950: v_dot2_f32_bf16 v2, 1.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf2,0x02,0x0a,0x1c] +0x02,0x40,0x9a,0xd3,0xf2,0x02,0x0a,0x1c + +# GFX950: v_dot2_f32_bf16 v2, -1.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf3,0x02,0x0a,0x1c] +0x02,0x40,0x9a,0xd3,0xf3,0x02,0x0a,0x1c + +# GFX950: v_dot2_f32_bf16 v2, 2.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf4,0x02,0x0a,0x1c] +0x02,0x40,0x9a,0xd3,0xf4,0x02,0x0a,0x1c + +# GFX950: v_dot2_f32_bf16 v2, -2.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf5,0x02,0x0a,0x1c] +0x02,0x40,0x9a,0xd3,0xf5,0x02,0x0a,0x1c + +# GFX950: v_dot2_f32_bf16 v2, 4.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf6,0x02,0x0a,0x1c] +0x02,0x40,0x9a,0xd3,0xf6,0x02,0x0a,0x1c + +# GFX950: v_dot2_f32_bf16 v2, -4.0, v1, v2 ; encoding: [0x02,0x40,0x9a,0xd3,0xf7,0x02,0x0a,0x1c] +0x02,0x40,0x9a,0xd3,0xf7,0x02,0x0a,0x1c + +# GFX950: v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], v6 ; encoding: [0x14,0x00,0x52,0xd2,0x0a,0x15,0x1a,0x04] +0x14,0x00,0x52,0xd2,0x0a,0x15,0x1a,0x04 + +# GFX950: v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], v6 ; encoding: [0x14,0x00,0x53,0xd2,0x0a,0x15,0x1a,0x04] +0x14,0x00,0x53,0xd2,0x0a,0x15,0x1a,0x04 + +# GFX950: v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], s6 ; encoding: [0x14,0x00,0x52,0xd2,0x0a,0x15,0x1a,0x00] +0x14,0x00,0x52,0xd2,0x0a,0x15,0x1a,0x00 + +# GFX950: v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], s6 ; encoding: [0x14,0x00,0x53,0xd2,0x0a,0x15,0x1a,0x00] +0x14,0x00,0x53,0xd2,0x0a,0x15,0x1a,0x00 + +# GFX950: v_cvt_scalef32_2xpk16_fp6_f32 v[20:25], v[10:25], v[10:25], 22 ; encoding: [0x14,0x00,0x52,0xd2,0x0a,0x15,0x5a,0x02] +0x14,0x00,0x52,0xd2,0x0a,0x15,0x5a,0x02 + +# GFX950: v_cvt_scalef32_2xpk16_bf6_f32 v[20:25], v[10:25], v[10:25], 11 ; encoding: [0x14,0x00,0x53,0xd2,0x0a,0x15,0x2e,0x02] +0x14,0x00,0x53,0xd2,0x0a,0x15,0x2e,0x02 + +# GFX950: v_maximum3_f32 v1, -v2, -v3, -v4 ; encoding: [0x01,0x00,0xa9,0xd2,0x02,0x07,0x12,0xe4] +0x01,0x00,0xa9,0xd2,0x02,0x07,0x12,0xe4 + +# GFX950: v_maximum3_f32 v1, -|v2|, -|v3|, -|v4| ; encoding: [0x01,0x07,0xa9,0xd2,0x02,0x07,0x12,0xe4] +0x01,0x07,0xa9,0xd2,0x02,0x07,0x12,0xe4 + +# GFX950: v_maximum3_f32 v1, 0, 1.0, v3 ; encoding: [0x01,0x00,0xa9,0xd2,0x80,0xe4,0x0d,0x04] +0x01,0x00,0xa9,0xd2,0x80,0xe4,0x0d,0x04 + +# GFX950: v_maximum3_f32 v1, s8, v3, 1.0 ; encoding: [0x01,0x00,0xa9,0xd2,0x08,0x06,0xca,0x03] +0x01,0x00,0xa9,0xd2,0x08,0x06,0xca,0x03 + +# GFX950: v_maximum3_f32 v1, v2, s8, v3 ; encoding: [0x01,0x00,0xa9,0xd2,0x02,0x11,0x0c,0x04] +0x01,0x00,0xa9,0xd2,0x02,0x11,0x0c,0x04 + +# GFX950: v_maximum3_f32 v1, v2, v3, v4 ; encoding: [0x01,0x00,0xa9,0xd2,0x02,0x07,0x12,0x04] +0x01,0x00,0xa9,0xd2,0x02,0x07,0x12,0x04 + +# GFX950: v_maximum3_f32 v2, 0, v3, 1.0 ; encoding: [0x02,0x00,0xa9,0xd2,0x80,0x06,0xca,0x03] +0x02,0x00,0xa9,0xd2,0x80,0x06,0xca,0x03 + +# GFX950: v_minimum3_f32 v0, v1, v2, v3 ; encoding: [0x00,0x00,0xa8,0xd2,0x01,0x05,0x0e,0x04] +0x00,0x00,0xa8,0xd2,0x01,0x05,0x0e,0x04 + + +# GFX950: v_pk_maximum3_f16 v1, 2.0, v2, v3 ; encoding: [0x01,0x40,0x9c,0xd3,0xf4,0x04,0x0e,0x1c] +0x01,0x40,0x9c,0xd3,0xf4,0x04,0x0e,0x1c + +# GFX950: v_pk_maximum3_f16 v1, v2, 2.0, v3 ; encoding: [0x01,0x40,0x9c,0xd3,0x02,0xe9,0x0d,0x1c] +0x01,0x40,0x9c,0xd3,0x02,0xe9,0x0d,0x1c + +# GFX950: v_pk_maximum3_f16 v1, v2, v3, 2.0 ; encoding: [0x01,0x40,0x9c,0xd3,0x02,0x07,0xd2,0x1b] +0x01,0x40,0x9c,0xd3,0x02,0x07,0xd2,0x1b + +# GFX950: v_pk_maximum3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x40,0x9c,0xd3,0x02,0x07,0x12,0x1c] +0x01,0x40,0x9c,0xd3,0x02,0x07,0x12,0x1c + +# GFX950: v_pk_maximum3_f16 v1, v2, v3, v4 clamp ; encoding: [0x01,0xc0,0x9c,0xd3,0x02,0x07,0x12,0x1c] +0x01,0xc0,0x9c,0xd3,0x02,0x07,0x12,0x1c + +# GFX950: v_pk_maximum3_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x9c,0xd3,0x00,0x01,0x04,0x1c] +0x08,0x40,0x9c,0xd3,0x00,0x01,0x04,0x1c + +# GFX950: v_pk_maximum3_f16 v8, v0, s0, v1 op_sel:[0,0,1] op_sel_hi:[0,0,1] ; encoding: [0x08,0x60,0x9c,0xd3,0x00,0x01,0x04,0x04] +0x08,0x60,0x9c,0xd3,0x00,0x01,0x04,0x04 + +# GFX950: v_pk_maximum3_f16 v8, v0, s0, v1 op_sel_hi:[0,0,0] ; encoding: [0x08,0x00,0x9c,0xd3,0x00,0x01,0x04,0x04] +0x08,0x00,0x9c,0xd3,0x00,0x01,0x04,0x04 + +# GFX950: v_pk_maximum3_f16 v8, v0, s8, v1 ; encoding: [0x08,0x40,0x9c,0xd3,0x00,0x11,0x04,0x1c] +0x08,0x40,0x9c,0xd3,0x00,0x11,0x04,0x1c + +# GFX950: v_pk_maximum3_f16 v8, v0, v1, s8 ; encoding: [0x08,0x40,0x9c,0xd3,0x00,0x03,0x22,0x18] +0x08,0x40,0x9c,0xd3,0x00,0x03,0x22,0x18 + +# GFX950: v_pk_minimum3_f16 v1, 2.0, v2, v3 ; encoding: [0x01,0x40,0x9b,0xd3,0xf4,0x04,0x0e,0x1c] +0x01,0x40,0x9b,0xd3,0xf4,0x04,0x0e,0x1c + +# GFX950: v_pk_minimum3_f16 v1, v2, 2.0, v3 ; encoding: [0x01,0x40,0x9b,0xd3,0x02,0xe9,0x0d,0x1c] +0x01,0x40,0x9b,0xd3,0x02,0xe9,0x0d,0x1c + +# GFX950: v_pk_minimum3_f16 v1, v2, v3, 2.0 ; encoding: [0x01,0x40,0x9b,0xd3,0x02,0x07,0xd2,0x1b] +0x01,0x40,0x9b,0xd3,0x02,0x07,0xd2,0x1b + +# GFX950: v_pk_minimum3_f16 v1, v2, v3, v4 ; encoding: [0x01,0x40,0x9b,0xd3,0x02,0x07,0x12,0x1c] +0x01,0x40,0x9b,0xd3,0x02,0x07,0x12,0x1c + +# GFX950: v_pk_minimum3_f16 v1, v2, v3, v4 clamp ; encoding: [0x01,0xc0,0x9b,0xd3,0x02,0x07,0x12,0x1c] +0x01,0xc0,0x9b,0xd3,0x02,0x07,0x12,0x1c + +# GFX950: v_pk_minimum3_f16 v8, v0, s0, v1 ; encoding: [0x08,0x40,0x9b,0xd3,0x00,0x01,0x04,0x1c] +0x08,0x40,0x9b,0xd3,0x00,0x01,0x04,0x1c + +# GFX950: v_pk_minimum3_f16 v8, v0, s0, v1 op_sel:[0,0,1] op_sel_hi:[0,0,1] ; encoding: [0x08,0x60,0x9b,0xd3,0x00,0x01,0x04,0x04] +0x08,0x60,0x9b,0xd3,0x00,0x01,0x04,0x04 + +# GFX950: v_pk_minimum3_f16 v8, v0, s0, v1 op_sel_hi:[0,0,0] ; encoding: [0x08,0x00,0x9b,0xd3,0x00,0x01,0x04,0x04] +0x08,0x00,0x9b,0xd3,0x00,0x01,0x04,0x04 + +# GFX950: v_pk_minimum3_f16 v8, v0, s8, v1 ; encoding: [0x08,0x40,0x9b,0xd3,0x00,0x11,0x04,0x1c] +0x08,0x40,0x9b,0xd3,0x00,0x11,0x04,0x1c + +# GFX950: v_pk_minimum3_f16 v8, v0, v1, s8 ; encoding: [0x08,0x40,0x9b,0xd3,0x00,0x03,0x22,0x18] +0x08,0x40,0x9b,0xd3,0x00,0x03,0x22,0x18 diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_xdlops.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_xdlops.txt new file mode 100644 index 0000000000000..53b0bcb0aa1ae --- /dev/null +++ b/llvm/test/MC/Disassembler/AMDGPU/gfx950_dasm_xdlops.txt @@ -0,0 +1,133 @@ +# RUN: llvm-mc -arch=amdgcn -mcpu=gfx950 -disassemble -show-encoding < %s | FileCheck -check-prefix=GFX950 %s + +# GFX950: v_dot2c_f32_bf16_e32 v5, v1, v2 ; encoding: [0x01,0x05,0x0a,0x2c] +0x01,0x05,0x0a,0x2c + +# GFX950: v_dot2c_f32_bf16_e32 v255, v1, v2 ; encoding: [0x01,0x05,0xfe,0x2d] +0x01,0x05,0xfe,0x2d + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v255, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0xfe,0x2d,0x01,0xe4,0x00,0x00] +0xfa,0x04,0xfe,0x2d,0x01,0xe4,0x00,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v255, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0xff,0xe4,0x00,0x00] +0xfa,0x04,0x0a,0x2c,0xff,0xe4,0x00,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v255 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0xfe,0x0b,0x2c,0x01,0xe4,0x00,0x00] +0xfa,0xfe,0x0b,0x2c,0x01,0xe4,0x00,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[3,2,1,0] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x1b,0x00,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x1b,0x00,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_mirror row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x40,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x40,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_half_mirror row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x41,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x41,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_bcast:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x42,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x42,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_bcast:31 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x43,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x43,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 wave_shl:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x30,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x30,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 wave_rol:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x34,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x34,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 wave_shr:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x38,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x38,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 wave_ror:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x3c,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x3c,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_shl:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x01,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x01,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_shl:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x0f,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x0f,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_shr:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x11,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x11,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_shr:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x1f,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x1f,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_ror:1 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x21,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x21,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 row_ror:15 row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0x2f,0x01,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0x2f,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x1 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x10] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x10 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x3 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x30] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x30 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0xf0] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0xf0 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0xf bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0xf0] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0xf0 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x1 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x01] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x01 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x3 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x03] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x03 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x0f] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x0f + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0xf ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x0f] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x00,0x0f + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 bound_ctrl:1 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x08,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x08,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, -v1, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x10,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x10,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, |v1|, v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x20,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x20,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, -v2 quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x40,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x40,0x00 + +# GFX950: v_dot2c_f32_bf16_dpp v5, v1, |v2| quad_perm:[0,1,2,3] row_mask:0x0 bank_mask:0x0 ; encoding: [0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x80,0x00] +0xfa,0x04,0x0a,0x2c,0x01,0xe4,0x80,0x00 + +# GFX950: v_dot2c_f32_bf16_e64 v5, v1, src_scc ; encoding: [0x05,0x00,0x16,0xd1,0x01,0xfb,0x01,0x00] +0x05,0x00,0x16,0xd1,0x01,0xfb,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_e64 v5, v255, src_execz ; encoding: [0x05,0x00,0x16,0xd1,0xff,0xf9,0x01,0x00] +0x05,0x00,0x16,0xd1,0xff,0xf9,0x01,0x00 + +# GFX950: v_dot2c_f32_bf16_e64 v5, s101, s101 ; encoding: [0x05,0x00,0x16,0xd1,0x65,0xca,0x00,0x00] +0x05,0x00,0x16,0xd1,0x65,0xca,0x00,0x00 + +# GFX950: v_dot2c_f32_bf16_e64 v5, -1, flat_scratch_lo ; encoding: [0x05,0x00,0x16,0xd1,0xc1,0xcc,0x00,0x00] +0x05,0x00,0x16,0xd1,0xc1,0xcc,0x00,0x00 + +# GFX950: v_dot2c_f32_bf16_e64 v5, 0.5, -|flat_scratch_hi| ; encoding: [0x05,0x02,0x16,0xd1,0xf0,0xce,0x00,0x40] +0x05,0x02,0x16,0xd1,0xf0,0xce,0x00,0x40 + +# GFX950: v_dot2c_f32_bf16_e64 v5, src_execz, 0.5 mul:4 ; encoding: [0x05,0x00,0x16,0xd1,0xfc,0xe0,0x01,0x10] +0x05,0x00,0x16,0xd1,0xfc,0xe0,0x01,0x10 + +# GFX950: v_dot2c_f32_bf16_e64 v255, -|src_scc|, -1 clamp div:2 ; encoding: [0xff,0x81,0x16,0xd1,0xfd,0x82,0x01,0x38] +0xff,0x81,0x16,0xd1,0xfd,0x82,0x01,0x38 + +# GFX950: v_dot2c_f32_bf16_e32 v5, 10, v2 ; encoding: [0x8a,0x04,0x0a,0x2c] +0x8a,0x04,0x0a,0x2c + +# GFX950: v_dot2c_f32_bf16_e32 v5, 0x64, v2 ; encoding: [0xff,0x04,0x0a,0x2c,0x64,0x00,0x00,0x00] +0xff,0x04,0x0a,0x2c,0x64,0x00,0x00,0x00 + +# GFX950: v_dot2c_f32_bf16_e32 v5, 0x4122, v2 ; encoding: [0xff,0x04,0x0a,0x2c,0x22,0x41,0x00,0x00] +0xff,0x04,0x0a,0x2c,0x22,0x41,0x00,0x00 diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx950_mai.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx950_mai.txt index 1fa48fca80fb4..8adc8b79fbbf5 100644 --- a/llvm/test/MC/Disassembler/AMDGPU/gfx950_mai.txt +++ b/llvm/test/MC/Disassembler/AMDGPU/gfx950_mai.txt @@ -159,3 +159,820 @@ # GFX950: v_mfma_ld_scale_b32 vcc_lo, vcc_lo ; encoding: [0x00,0x40,0xac,0xd3,0x6a,0xd4,0x00,0x18] 0x00,0x40,0xac,0xd3,0x6a,0xd4,0x00,0x18 + +# GFX950: s_nop 0 ; encoding: [0x00,0x00,0x80,0xbf] +0x00,0x00,0x80,0xbf + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:15], a[20:23] cbsz:1 blgp:4 ; encoding: [0x00,0x81,0xad,0xd3,0x04,0x19,0x52,0x9c] +0x00,0x81,0xad,0xd3,0x04,0x19,0x52,0x9c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:17], a[20:23] cbsz:1 blgp:3 ; encoding: [0x00,0x81,0xad,0xd3,0x04,0x19,0x52,0x7c] +0x00,0x81,0xad,0xd3,0x04,0x19,0x52,0x7c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:11], a[0:3] ; encoding: [0x00,0x80,0xad,0xd3,0x04,0x09,0x02,0x1c] +0x00,0x80,0xad,0xd3,0x04,0x09,0x02,0x1c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:11], a[0:3] blgp:1 ; encoding: [0x00,0x80,0xad,0xd3,0x04,0x09,0x02,0x3c] +0x00,0x80,0xad,0xd3,0x04,0x09,0x02,0x3c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[4:9], a[0:3] cbsz:1 blgp:3 ; encoding: [0x00,0x81,0xad,0xd3,0x04,0x09,0x02,0x7c] +0x00,0x81,0xad,0xd3,0x04,0x09,0x02,0x7c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:15], a[20:23] cbsz:4 blgp:4 ; encoding: [0x00,0x84,0xad,0xd3,0x04,0x19,0x52,0x9c] +0x00,0x84,0xad,0xd3,0x04,0x19,0x52,0x9c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:17], a[20:23] cbsz:4 blgp:2 ; encoding: [0x00,0x84,0xad,0xd3,0x04,0x19,0x52,0x5c] +0x00,0x84,0xad,0xd3,0x04,0x19,0x52,0x5c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:19], a[20:23] cbsz:4 blgp:1 ; encoding: [0x00,0x84,0xad,0xd3,0x04,0x19,0x52,0x3c] +0x00,0x84,0xad,0xd3,0x04,0x19,0x52,0x3c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:15], a[20:23] cbsz:2 blgp:4 ; encoding: [0x00,0x82,0xad,0xd3,0x04,0x19,0x52,0x9c] +0x00,0x82,0xad,0xd3,0x04,0x19,0x52,0x9c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23] cbsz:2 blgp:3 ; encoding: [0x00,0x82,0xad,0xd3,0x04,0x19,0x52,0x7c] +0x00,0x82,0xad,0xd3,0x04,0x19,0x52,0x7c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23] cbsz:3 blgp:2 ; encoding: [0x00,0x83,0xad,0xd3,0x04,0x19,0x52,0x5c] +0x00,0x83,0xad,0xd3,0x04,0x19,0x52,0x5c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23] cbsz:3 blgp:3 ; encoding: [0x00,0x83,0xad,0xd3,0x04,0x19,0x52,0x7c] +0x00,0x83,0xad,0xd3,0x04,0x19,0x52,0x7c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:19], a[20:23] cbsz:3 blgp:1 ; encoding: [0x00,0x83,0xad,0xd3,0x04,0x19,0x52,0x3c] +0x00,0x83,0xad,0xd3,0x04,0x19,0x52,0x3c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[4:11], a[0:3] cbsz:3 ; encoding: [0x00,0x83,0xad,0xd3,0x04,0x09,0x02,0x1c] +0x00,0x83,0xad,0xd3,0x04,0x09,0x02,0x1c + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:15], v[20:23] cbsz:1 blgp:4 ; encoding: [0x00,0x01,0xad,0xd3,0x04,0x19,0x52,0x84] +0x00,0x01,0xad,0xd3,0x04,0x19,0x52,0x84 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:17], v[20:23] cbsz:1 blgp:3 ; encoding: [0x00,0x01,0xad,0xd3,0x04,0x19,0x52,0x64] +0x00,0x01,0xad,0xd3,0x04,0x19,0x52,0x64 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[4:11], v[0:3] ; encoding: [0x00,0x00,0xad,0xd3,0x04,0x09,0x02,0x04] +0x00,0x00,0xad,0xd3,0x04,0x09,0x02,0x04 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[4:11], v[0:3] blgp:1 ; encoding: [0x00,0x00,0xad,0xd3,0x04,0x09,0x02,0x24] +0x00,0x00,0xad,0xd3,0x04,0x09,0x02,0x24 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:15], v[20:23] cbsz:4 blgp:4 ; encoding: [0x00,0x04,0xad,0xd3,0x04,0x19,0x52,0x84] +0x00,0x04,0xad,0xd3,0x04,0x19,0x52,0x84 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:17], v[20:23] cbsz:4 blgp:2 ; encoding: [0x00,0x04,0xad,0xd3,0x04,0x19,0x52,0x44] +0x00,0x04,0xad,0xd3,0x04,0x19,0x52,0x44 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:19], v[20:23] cbsz:4 blgp:1 ; encoding: [0x00,0x04,0xad,0xd3,0x04,0x19,0x52,0x24] +0x00,0x04,0xad,0xd3,0x04,0x19,0x52,0x24 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:15], v[20:23] cbsz:2 blgp:4 ; encoding: [0x00,0x02,0xad,0xd3,0x04,0x19,0x52,0x84] +0x00,0x02,0xad,0xd3,0x04,0x19,0x52,0x84 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23] cbsz:2 blgp:3 ; encoding: [0x00,0x02,0xad,0xd3,0x04,0x19,0x52,0x64] +0x00,0x02,0xad,0xd3,0x04,0x19,0x52,0x64 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23] cbsz:3 blgp:2 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x19,0x52,0x44] +0x00,0x03,0xad,0xd3,0x04,0x19,0x52,0x44 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23] cbsz:3 blgp:3 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x19,0x52,0x64] +0x00,0x03,0xad,0xd3,0x04,0x19,0x52,0x64 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23] cbsz:3 blgp:1 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x19,0x52,0x24] +0x00,0x03,0xad,0xd3,0x04,0x19,0x52,0x24 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[4:11], v[0:3] cbsz:3 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x09,0x02,0x04] +0x00,0x03,0xad,0xd3,0x04,0x09,0x02,0x04 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[4:11], v[0:3] cbsz:3 blgp:1 ; encoding: [0x00,0x03,0xad,0xd3,0x04,0x09,0x02,0x24] +0x00,0x03,0xad,0xd3,0x04,0x09,0x02,0x24 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[12:15], a[16:31] cbsz:1 blgp:4 ; encoding: [0x00,0x81,0xae,0xd3,0x04,0x19,0x42,0x9c] +0x00,0x81,0xae,0xd3,0x04,0x19,0x42,0x9c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[12:17], a[16:31] cbsz:1 blgp:3 ; encoding: [0x00,0x81,0xae,0xd3,0x04,0x19,0x42,0x7c] +0x00,0x81,0xae,0xd3,0x04,0x19,0x42,0x7c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:11], a[0:15] ; encoding: [0x00,0x80,0xae,0xd3,0x04,0x09,0x02,0x1c] +0x00,0x80,0xae,0xd3,0x04,0x09,0x02,0x1c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:11], a[0:15] blgp:1 ; encoding: [0x00,0x80,0xae,0xd3,0x04,0x09,0x02,0x3c] +0x00,0x80,0xae,0xd3,0x04,0x09,0x02,0x3c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:11], a[4:9], a[0:15] cbsz:1 blgp:3 ; encoding: [0x00,0x81,0xae,0xd3,0x04,0x09,0x02,0x7c] +0x00,0x81,0xae,0xd3,0x04,0x09,0x02,0x7c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:7], a[12:15], a[16:31] cbsz:4 blgp:4 ; encoding: [0x00,0x84,0xae,0xd3,0x04,0x19,0x42,0x9c] +0x00,0x84,0xae,0xd3,0x04,0x19,0x42,0x9c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:7], a[12:17], a[16:31] cbsz:4 blgp:2 ; encoding: [0x00,0x84,0xae,0xd3,0x04,0x19,0x42,0x5c] +0x00,0x84,0xae,0xd3,0x04,0x19,0x42,0x5c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:7], a[8:15], a[16:31] cbsz:4 blgp:1 ; encoding: [0x00,0x84,0xae,0xd3,0x04,0x11,0x42,0x3c] +0x00,0x84,0xae,0xd3,0x04,0x11,0x42,0x3c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:15], a[16:31] cbsz:2 blgp:4 ; encoding: [0x00,0x82,0xae,0xd3,0x04,0x19,0x42,0x9c] +0x00,0x82,0xae,0xd3,0x04,0x19,0x42,0x9c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:17], a[16:31] cbsz:2 blgp:3 ; encoding: [0x00,0x82,0xae,0xd3,0x04,0x19,0x42,0x7c] +0x00,0x82,0xae,0xd3,0x04,0x19,0x42,0x7c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:17], a[16:31] cbsz:3 blgp:2 ; encoding: [0x00,0x83,0xae,0xd3,0x04,0x19,0x42,0x5c] +0x00,0x83,0xae,0xd3,0x04,0x19,0x42,0x5c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:17], a[16:31] cbsz:3 blgp:3 ; encoding: [0x00,0x83,0xae,0xd3,0x04,0x19,0x42,0x7c] +0x00,0x83,0xae,0xd3,0x04,0x19,0x42,0x7c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[12:19], a[16:31] cbsz:3 blgp:1 ; encoding: [0x00,0x83,0xae,0xd3,0x04,0x19,0x42,0x3c] +0x00,0x83,0xae,0xd3,0x04,0x19,0x42,0x3c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 a[0:15], a[4:9], a[4:11], a[0:15] cbsz:3 ; encoding: [0x00,0x83,0xae,0xd3,0x04,0x09,0x02,0x1c] +0x00,0x83,0xae,0xd3,0x04,0x09,0x02,0x1c + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[12:15], v[16:31] cbsz:1 blgp:4 ; encoding: [0x00,0x01,0xae,0xd3,0x04,0x19,0x42,0x84] +0x00,0x01,0xae,0xd3,0x04,0x19,0x42,0x84 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[12:17], v[16:31] cbsz:1 blgp:3 ; encoding: [0x00,0x01,0xae,0xd3,0x04,0x19,0x42,0x64] +0x00,0x01,0xae,0xd3,0x04,0x19,0x42,0x64 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[4:11], v[0:15] ; encoding: [0x00,0x00,0xae,0xd3,0x04,0x09,0x02,0x04] +0x00,0x00,0xae,0xd3,0x04,0x09,0x02,0x04 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:11], v[4:11], v[0:15] blgp:1 ; encoding: [0x00,0x00,0xae,0xd3,0x04,0x09,0x02,0x24] +0x00,0x00,0xae,0xd3,0x04,0x09,0x02,0x24 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:7], v[12:15], v[16:31] cbsz:4 blgp:4 ; encoding: [0x00,0x04,0xae,0xd3,0x04,0x19,0x42,0x84] +0x00,0x04,0xae,0xd3,0x04,0x19,0x42,0x84 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:7], v[12:17], v[16:31] cbsz:4 blgp:2 ; encoding: [0x00,0x04,0xae,0xd3,0x04,0x19,0x42,0x44] +0x00,0x04,0xae,0xd3,0x04,0x19,0x42,0x44 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:7], v[8:15], v[16:31] cbsz:4 blgp:1 ; encoding: [0x00,0x04,0xae,0xd3,0x04,0x11,0x42,0x24] +0x00,0x04,0xae,0xd3,0x04,0x11,0x42,0x24 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:15], v[16:31] cbsz:2 blgp:4 ; encoding: [0x00,0x02,0xae,0xd3,0x04,0x19,0x42,0x84] +0x00,0x02,0xae,0xd3,0x04,0x19,0x42,0x84 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:17], v[16:31] cbsz:2 blgp:3 ; encoding: [0x00,0x02,0xae,0xd3,0x04,0x19,0x42,0x64] +0x00,0x02,0xae,0xd3,0x04,0x19,0x42,0x64 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:17], v[16:31] cbsz:3 blgp:2 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x19,0x42,0x44] +0x00,0x03,0xae,0xd3,0x04,0x19,0x42,0x44 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:17], v[16:31] cbsz:3 blgp:3 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x19,0x42,0x64] +0x00,0x03,0xae,0xd3,0x04,0x19,0x42,0x64 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[12:19], v[16:31] cbsz:3 blgp:1 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x19,0x42,0x24] +0x00,0x03,0xae,0xd3,0x04,0x19,0x42,0x24 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[4:11], v[0:15] cbsz:3 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x09,0x02,0x04] +0x00,0x03,0xae,0xd3,0x04,0x09,0x02,0x04 + +# GFX950: v_mfma_f32_32x32x64_f8f6f4 v[0:15], v[4:9], v[4:11], v[0:15] cbsz:3 blgp:1 ; encoding: [0x00,0x03,0xae,0xd3,0x04,0x09,0x02,0x24] +0x00,0x03,0xae,0xd3,0x04,0x09,0x02,0x24 + + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:15], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x89,0xad,0xd3,0x04,0x19,0x52,0x9c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x89,0xad,0xd3,0x04,0x19,0x52,0x9c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x89,0xad,0xd3,0x04,0x19,0x52,0x7c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x89,0xad,0xd3,0x04,0x19,0x52,0x7c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x1c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x1c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x3c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x3c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:11], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x89,0xad,0xd3,0x04,0x19,0x52,0x1c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x89,0xad,0xd3,0x04,0x19,0x52,0x1c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:15], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8c,0xad,0xd3,0x04,0x19,0x52,0x9c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8c,0xad,0xd3,0x04,0x19,0x52,0x9c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8c,0xad,0xd3,0x04,0x19,0x52,0x5c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8c,0xad,0xd3,0x04,0x19,0x52,0x5c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:7], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8c,0xad,0xd3,0x04,0x19,0x52,0x3c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8c,0xad,0xd3,0x04,0x19,0x52,0x3c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:15], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:2 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8a,0xad,0xd3,0x04,0x19,0x52,0x9c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8a,0xad,0xd3,0x04,0x19,0x52,0x9c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8a,0xad,0xd3,0x04,0x19,0x52,0x7c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8a,0xad,0xd3,0x04,0x19,0x52,0x7c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8b,0xad,0xd3,0x04,0x19,0x52,0x5c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8b,0xad,0xd3,0x04,0x19,0x52,0x5c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:17], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8b,0xad,0xd3,0x04,0x19,0x52,0x7c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8b,0xad,0xd3,0x04,0x19,0x52,0x7c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], a[4:9], a[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8b,0xad,0xd3,0x04,0x19,0x52,0x3c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x8b,0xad,0xd3,0x04,0x19,0x52,0x3c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[4:11], v[12:19], a[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x88,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], a[4:11], a[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x1c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x1c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], a[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x0c] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x0c + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], a[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x14] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x14 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:15], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x09,0xad,0xd3,0x04,0x19,0x52,0x84] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x09,0xad,0xd3,0x04,0x19,0x52,0x84 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x44] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x44 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x09,0xad,0xd3,0x04,0x19,0x52,0x64] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x09,0xad,0xd3,0x04,0x19,0x52,0x64 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], 33, 9 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0xa1,0x12,0x01,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0xa1,0x12,0x01,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], 9, v2 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x89,0x04,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x89,0x04,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], m0, m0 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x7c,0xf8,0x00,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x7c,0xf8,0x00,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], s20, 9 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x14,0x12,0x01,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x14,0x12,0x01,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], s24, s24 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x30,0x00,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x18,0x30,0x00,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], s24, v44 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x58,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x18,0x58,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v2, 9 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x02,0x13,0x01,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x02,0x13,0x01,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x24] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x24 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x09,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x09,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], v44, s24 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x2c,0x31,0x00,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x2c,0x31,0x00,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:11], v[12:19], v[20:23], vcc_lo, v2 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x6a,0x04,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x6a,0x04,0x02,0x00,0x00,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:15], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0c,0xad,0xd3,0x04,0x19,0x52,0x84] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0c,0xad,0xd3,0x04,0x19,0x52,0x84 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0c,0xad,0xd3,0x04,0x19,0x52,0x44] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0c,0xad,0xd3,0x04,0x19,0x52,0x44 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:7], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:4 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0c,0xad,0xd3,0x04,0x19,0x52,0x24] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0c,0xad,0xd3,0x04,0x19,0x52,0x24 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:15], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:2 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0a,0xad,0xd3,0x04,0x19,0x52,0x84] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0a,0xad,0xd3,0x04,0x19,0x52,0x84 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0a,0xad,0xd3,0x04,0x19,0x52,0x64] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0a,0xad,0xd3,0x04,0x19,0x52,0x64 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x44] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x44 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:17], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x64] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x64 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x08,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x08,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[0:3], v[4:9], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x18,0x00,0x0b,0xad,0xd3,0x04,0x19,0x52,0x24 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 v[50:53], v[4:11], v[12:19], v[20:23], v24, v25 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x32,0x08,0xad,0xd3,0x04,0x19,0x52,0x04] +0x00,0x00,0xac,0xd3,0x18,0x33,0x02,0x00,0x32,0x08,0xad,0xd3,0x04,0x19,0x52,0x04 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:19], a[24:27], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8c,0xae,0xd3,0x10,0x31,0x82,0x9c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8c,0xae,0xd3,0x10,0x31,0x82,0x9c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:19], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8c,0xae,0xd3,0x10,0x31,0x82,0x5c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8c,0xae,0xd3,0x10,0x31,0x82,0x5c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:19], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8c,0xae,0xd3,0x10,0x31,0x82,0x3c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8c,0xae,0xd3,0x10,0x31,0x82,0x3c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:27], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8a,0xae,0xd3,0x10,0x31,0x82,0x9c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8a,0xae,0xd3,0x10,0x31,0x82,0x9c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8a,0xae,0xd3,0x10,0x31,0x82,0x7c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8a,0xae,0xd3,0x10,0x31,0x82,0x7c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8b,0xae,0xd3,0x10,0x31,0x82,0x5c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8b,0xae,0xd3,0x10,0x31,0x82,0x5c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8b,0xae,0xd3,0x10,0x31,0x82,0x7c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8b,0xae,0xd3,0x10,0x31,0x82,0x7c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:21], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8b,0xae,0xd3,0x10,0x31,0x82,0x3c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x8b,0xae,0xd3,0x10,0x31,0x82,0x3c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:27], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x89,0xae,0xd3,0x10,0x31,0x82,0x9c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x89,0xae,0xd3,0x10,0x31,0x82,0x9c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:29], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x89,0xae,0xd3,0x10,0x31,0x82,0x7c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x89,0xae,0xd3,0x10,0x31,0x82,0x7c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x1c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x1c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x3c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x3c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], a[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x89,0xae,0xd3,0x10,0x31,0x82,0x1c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x89,0xae,0xd3,0x10,0x31,0x82,0x1c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], a[16:23], v[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x0c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x0c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 a[0:15], v[16:23], v[24:31], a[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x04] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x88,0xae,0xd3,0x10,0x31,0x82,0x04 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], a[16:23], a[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x1c] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x1c + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:19], v[24:27], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0c,0xae,0xd3,0x10,0x31,0x82,0x84] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0c,0xae,0xd3,0x10,0x31,0x82,0x84 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:19], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0c,0xae,0xd3,0x10,0x31,0x82,0x44] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0c,0xae,0xd3,0x10,0x31,0x82,0x44 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:19], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:4 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0c,0xae,0xd3,0x10,0x31,0x82,0x24] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0c,0xae,0xd3,0x10,0x31,0x82,0x24 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:27], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x84] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x84 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x64] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x64 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x18,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x64] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x18,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x64 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x44] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x44 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x64] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x64 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x04] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0a,0xae,0xd3,0x10,0x31,0x82,0x04 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:21], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:3 blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x24] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x0b,0xae,0xd3,0x10,0x31,0x82,0x24 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], a[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x14] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x14 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:27], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 blgp:4 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x09,0xae,0xd3,0x10,0x31,0x82,0x84] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x09,0xae,0xd3,0x10,0x31,0x82,0x84 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] blgp:2 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x44] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x44 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:29], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 blgp:3 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x09,0xae,0xd3,0x10,0x31,0x82,0x64] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x09,0xae,0xd3,0x10,0x31,0x82,0x64 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x04] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x04 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] blgp:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x24] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x08,0xae,0xd3,0x10,0x31,0x82,0x24 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[0:15], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] cbsz:1 ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x09,0xae,0xd3,0x10,0x31,0x82,0x04] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x00,0x09,0xae,0xd3,0x10,0x31,0x82,0x04 + +# GFX950: v_mfma_scale_f32_32x32x64_f8f6f4 v[50:65], v[16:23], v[24:31], v[32:47], v48, v49 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x32,0x08,0xae,0xd3,0x10,0x31,0x82,0x04] +0x00,0x00,0xac,0xd3,0x30,0x63,0x02,0x00,0x32,0x08,0xae,0xd3,0x10,0x31,0x82,0x04 + + +# GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] ; encoding: [0x00,0x80,0xb6,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x80,0xb6,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] abid:1 ; encoding: [0x00,0x88,0xb6,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x88,0xb6,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] blgp:1 ; encoding: [0x00,0x80,0xb6,0xd3,0x00,0x01,0x02,0x3c] +0x00,0x80,0xb6,0xd3,0x00,0x01,0x02,0x3c + +# GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 ; encoding: [0x00,0x83,0xb6,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x83,0xb6,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_i32_16x16x64_i8 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 abid:1 ; encoding: [0x00,0x8b,0xb6,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x8b,0xb6,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], a[0:3], 1.0 ; encoding: [0x00,0x80,0xb6,0xd3,0x00,0x01,0xca,0x13] +0x00,0x80,0xb6,0xd3,0x00,0x01,0xca,0x13 + +# GFX950: v_mfma_i32_16x16x64_i8 a[0:3], v[0:3], v[0:3], a[4:7] ; encoding: [0x00,0x80,0xb6,0xd3,0x00,0x01,0x12,0x04] +0x00,0x80,0xb6,0xd3,0x00,0x01,0x12,0x04 + +# GFX950: v_mfma_i32_16x16x64_i8 v[0:3], a[0:3], a[0:3], v[4:7] ; encoding: [0x00,0x00,0xb6,0xd3,0x00,0x01,0x12,0x1c] +0x00,0x00,0xb6,0xd3,0x00,0x01,0x12,0x1c + +# GFX950: v_mfma_i32_16x16x64_i8 v[0:3], a[0:3], v[0:3], 1.0 ; encoding: [0x00,0x00,0xb6,0xd3,0x00,0x01,0xca,0x0b] +0x00,0x00,0xb6,0xd3,0x00,0x01,0xca,0x0b + +# GFX950: v_mfma_i32_16x16x64_i8 v[0:3], v[0:3], v[0:3], v[0:3] ; encoding: [0x00,0x00,0xb6,0xd3,0x00,0x01,0x02,0x04] +0x00,0x00,0xb6,0xd3,0x00,0x01,0x02,0x04 + +# GFX950: v_mfma_i32_16x16x64_i8 v[0:3], v[0:3], v[0:3], v[0:3] blgp:5 ; encoding: [0x00,0x00,0xb6,0xd3,0x00,0x01,0x02,0xa4] +0x00,0x00,0xb6,0xd3,0x00,0x01,0x02,0xa4 + + +# GFX950: v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], 1.0 ; encoding: [0x00,0x80,0xb8,0xd3,0x00,0x01,0xca,0x1b] +0x00,0x80,0xb8,0xd3,0x00,0x01,0xca,0x1b + +# GFX950: v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] ; encoding: [0x00,0x80,0xb8,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x80,0xb8,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] blgp:2 ; encoding: [0x00,0x80,0xb8,0xd3,0x00,0x01,0x02,0x5c] +0x00,0x80,0xb8,0xd3,0x00,0x01,0x02,0x5c + +# GFX950: v_mfma_i32_32x32x32_i8 a[0:15], a[0:3], a[0:3], a[0:15] cbsz:3 abid:1 ; encoding: [0x00,0x8b,0xb8,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x8b,0xb8,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], 1.0 ; encoding: [0x00,0x00,0xb8,0xd3,0x00,0x01,0xca,0x03] +0x00,0x00,0xb8,0xd3,0x00,0x01,0xca,0x03 + +# GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] ; encoding: [0x00,0x00,0xb8,0xd3,0x00,0x01,0x02,0x04] +0x00,0x00,0xb8,0xd3,0x00,0x01,0x02,0x04 + +# GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] abid:1 ; encoding: [0x00,0x08,0xb8,0xd3,0x00,0x01,0x02,0x04] +0x00,0x08,0xb8,0xd3,0x00,0x01,0x02,0x04 + +# GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] blgp:5 ; encoding: [0x00,0x00,0xb8,0xd3,0x00,0x01,0x02,0xa4] +0x00,0x00,0xb8,0xd3,0x00,0x01,0x02,0xa4 + +# GFX950: v_mfma_i32_32x32x32_i8 v[0:15], v[0:3], v[0:3], v[0:15] cbsz:3 ; encoding: [0x00,0x03,0xb8,0xd3,0x00,0x01,0x02,0x04] +0x00,0x03,0xb8,0xd3,0x00,0x01,0x02,0x04 + + +# GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] ; encoding: [0x00,0x80,0xb5,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x80,0xb5,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] abid:1 ; encoding: [0x00,0x88,0xb5,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x88,0xb5,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] blgp:1 ; encoding: [0x00,0x80,0xb5,0xd3,0x00,0x01,0x02,0x3c] +0x00,0x80,0xb5,0xd3,0x00,0x01,0x02,0x3c + +# GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 ; encoding: [0x00,0x83,0xb5,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x83,0xb5,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], a[0:3], a[0:3], a[0:3] cbsz:3 abid:1 ; encoding: [0x00,0x8b,0xb5,0xd3,0x00,0x01,0x02,0x1c] +0x00,0x8b,0xb5,0xd3,0x00,0x01,0x02,0x1c + +# GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], a[0:3], 1.0 ; encoding: [0x00,0x80,0xb5,0xd3,0x00,0x01,0xca,0x13] +0x00,0x80,0xb5,0xd3,0x00,0x01,0xca,0x13 + +# GFX950: v_mfma_f32_16x16x32_bf16 a[0:3], v[0:3], v[0:3], a[4:7] ; encoding: [0x00,0x80,0xb5,0xd3,0x00,0x01,0x12,0x04] +0x00,0x80,0xb5,0xd3,0x00,0x01,0x12,0x04 + +# GFX950: v_mfma_f32_16x16x32_bf16 v[0:3], a[0:3], a[0:3], v[4:7] ; encoding: [0x00,0x00,0xb5,0xd3,0x00,0x01,0x12,0x1c] +0x00,0x00,0xb5,0xd3,0x00,0x01,0x12,0x1c + +# GFX950: v_mfma_f32_16x16x32_bf16 v[0:3], a[0:3], v[0:3], 1.0 ; encoding: [0x00,0x00,0xb5,0xd3,0x00,0x01,0xca,0x0b] +0x00,0x00,0xb5,0xd3,0x00,0x01,0xca,0x0b + +# GFX950: v_mfma_f32_16x16x32_bf16 v[0:3], v[0:3], v[0:3], v[0:3] ; encoding: [0x00,0x00,0xb5,0xd3,0x00,0x01,0x02,0x04] +0x00,0x00,0xb5,0xd3,0x00,0x01,0x02,0x04 + +# GFX950: v_mfma_f32_16x16x32_bf16 v[0:3], v[0:3], v[0:3], v[0:3] blgp:5 ; encoding: [0x00,0x00,0xb5,0xd3,0x00,0x01,0x02,0xa4] +0x00,0x00,0xb5,0xd3,0x00,0x01,0x02,0xa4 + + +# GFX950: v_smfmac_f32_16x16x64_f16 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xda,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xda,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_16x16x64_f16 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xda,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xda,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_16x16x64_f16 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xda,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xda,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_16x16x64_f16 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xda,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xda,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_16x16x64_f16 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xda,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xda,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_16x16x64_f16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xda,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xda,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_16x16x64_f16 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xda,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xda,0xd3,0x02,0x0d,0x0a,0x04 + + + +# GFX950: v_smfmac_f32_32x32x32_f16 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xdb,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xdb,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_32x32x32_f16 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xdb,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xdb,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_32x32x32_f16 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xdb,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xdb,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_32x32x32_f16 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xdb,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xdb,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_32x32x32_f16 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xdb,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xdb,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_32x32x32_f16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xdb,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xdb,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_32x32x32_f16 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xdb,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xdb,0xd3,0x02,0x0d,0x0a,0x04 + + + +# GFX950: v_smfmac_f32_16x16x64_bf16 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xb9,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xb9,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_16x16x64_bf16 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xb9,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xb9,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_16x16x64_bf16 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xb9,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xb9,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_16x16x64_bf16 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xb9,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xb9,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_16x16x64_bf16 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xb9,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xb9,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_16x16x64_bf16 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xb9,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xb9,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_16x16x64_bf16 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xb9,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xb9,0xd3,0x02,0x0d,0x0a,0x04 + + + +# GFX950: v_smfmac_f32_32x32x32_bf16 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xc6,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xc6,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_32x32x32_bf16 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xc6,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xc6,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_32x32x32_bf16 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xc6,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xc6,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_32x32x32_bf16 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xc6,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xc6,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_32x32x32_bf16 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc6,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xc6,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_32x32x32_bf16 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc6,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xc6,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_32x32x32_bf16 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc6,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xc6,0xd3,0x02,0x0d,0x0a,0x04 + + +# GFX950: v_smfmac_i32_16x16x128_i8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xba,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xba,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_i32_16x16x128_i8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xba,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xba,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_i32_16x16x128_i8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xba,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xba,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_i32_16x16x128_i8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xba,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xba,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_i32_16x16x128_i8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xba,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xba,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_i32_16x16x128_i8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xba,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xba,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_i32_16x16x128_i8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xba,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xba,0xd3,0x02,0x0d,0x0a,0x04 + + +# GFX950: v_smfmac_i32_32x32x64_i8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xc7,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xc7,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_i32_32x32x64_i8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xc7,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xc7,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_i32_32x32x64_i8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xc7,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xc7,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_i32_32x32x64_i8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xc7,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xc7,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_i32_32x32x64_i8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc7,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xc7,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_i32_32x32x64_i8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc7,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xc7,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_i32_32x32x64_i8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc7,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xc7,0xd3,0x02,0x0d,0x0a,0x04 + + +# GFX950: v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xbb,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xbb,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xbb,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xbb,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xbb,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xbb,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_16x16x128_bf8_bf8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xbb,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xbb,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbb,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xbb,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbb,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xbb,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_16x16x128_bf8_bf8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbb,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xbb,0xd3,0x02,0x0d,0x0a,0x04 + + + +# GFX950: v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xbc,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xbc,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xbc,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xbc,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xbc,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xbc,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_16x16x128_bf8_fp8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xbc,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xbc,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbc,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xbc,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbc,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xbc,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_16x16x128_bf8_fp8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbc,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xbc,0xd3,0x02,0x0d,0x0a,0x04 + + +# GFX950: v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xbd,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xbd,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xbd,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xbd,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xbd,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xbd,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_16x16x128_fp8_bf8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xbd,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xbd,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbd,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xbd,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbd,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xbd,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_16x16x128_fp8_bf8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xbd,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xbd,0xd3,0x02,0x0d,0x0a,0x04 + + +# GFX950: v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xc3,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xc3,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xc3,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xc3,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xc3,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xc3,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_16x16x128_fp8_fp8 a[10:13], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xc3,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xc3,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc3,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xc3,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc3,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xc3,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_16x16x128_fp8_fp8 v[10:13], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xc3,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xc3,0xd3,0x02,0x0d,0x0a,0x04 + + +# GFX950: v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xcb,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xcb,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xcb,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xcb,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xcb,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xcb,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_32x32x64_bf8_bf8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xcb,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xcb,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcb,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xcb,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcb,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xcb,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_32x32x64_bf8_bf8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcb,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xcb,0xd3,0x02,0x0d,0x0a,0x04 + + +# GFX950: v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xce,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xce,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xce,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xce,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xce,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xce,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_32x32x64_bf8_fp8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xce,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xce,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xce,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xce,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xce,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xce,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_32x32x64_bf8_fp8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xce,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xce,0xd3,0x02,0x0d,0x0a,0x04 + + +# GFX950: v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xcf,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xcf,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xcf,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xcf,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xcf,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xcf,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_32x32x64_fp8_bf8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xcf,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xcf,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcf,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xcf,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcf,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xcf,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_32x32x64_fp8_bf8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xcf,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xcf,0xd3,0x02,0x0d,0x0a,0x04 + + +# GFX950: v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], a[2:5], a[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x8b,0xd3,0xd3,0x02,0x0d,0x0a,0x1c] +0x0a,0x8b,0xd3,0xd3,0x02,0x0d,0x0a,0x1c + +# GFX950: v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], a[2:5], a[6:13], v3 cbsz:1 abid:3 ; encoding: [0x0a,0x99,0xd3,0xd3,0x02,0x0d,0x0e,0x1c] +0x0a,0x99,0xd3,0xd3,0x02,0x0d,0x0e,0x1c + +# GFX950: v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], v[2:5], a[4:11], v1 ; encoding: [0x0a,0x80,0xd3,0xd3,0x02,0x09,0x06,0x14] +0x0a,0x80,0xd3,0xd3,0x02,0x09,0x06,0x14 + +# GFX950: v_smfmac_f32_32x32x64_fp8_fp8 a[10:25], v[2:5], a[4:11], v3 ; encoding: [0x0a,0x80,0xd3,0xd3,0x02,0x09,0x0e,0x14] +0x0a,0x80,0xd3,0xd3,0x02,0x09,0x0e,0x14 + +# GFX950: v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], a[2:5], v[4:11], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xd3,0xd3,0x02,0x09,0x0a,0x0c] +0x0a,0x0b,0xd3,0xd3,0x02,0x09,0x0a,0x0c + +# GFX950: v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], a[2:5], v[4:11], v3 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xd3,0xd3,0x02,0x09,0x0e,0x0c] +0x0a,0x0b,0xd3,0xd3,0x02,0x09,0x0e,0x0c + +# GFX950: v_smfmac_f32_32x32x64_fp8_fp8 v[10:25], v[2:5], v[6:13], v2 cbsz:3 abid:1 ; encoding: [0x0a,0x0b,0xd3,0xd3,0x02,0x0d,0x0a,0x04] +0x0a,0x0b,0xd3,0xd3,0x02,0x0d,0x0a,0x04 diff --git a/llvm/test/MC/Disassembler/AMDGPU/gfx950_vop3px2.txt b/llvm/test/MC/Disassembler/AMDGPU/gfx950_vop3px2.txt new file mode 100644 index 0000000000000..3227b619de4fd --- /dev/null +++ b/llvm/test/MC/Disassembler/AMDGPU/gfx950_vop3px2.txt @@ -0,0 +1,28 @@ +# RUN: llvm-mc -triple=amdgcn -mcpu=gfx950 -show-encoding -disassemble %s | FileCheck -check-prefix=GFX950 %s + +# Check behavior of truncated instruction just to the ld_scale + +# GFX950: v_mfma_ld_scale_b32 v20, v21 op_sel_hi:[0,0] ; encoding: [0x00,0x40,0xac,0xd3,0x14,0x2b,0x02,0x00] +0x00,0x00,0xac,0xd3,0x14,0x2b,0x02,0x00 + +# GFX950: v_mfma_ld_scale_b32 v20, v21 op_sel_hi:[0,0] ; encoding: [0x00,0x40,0xac,0xd3,0x14,0x2b,0x02,0x00] +0x00,0x00,0xac,0xd3,0x14,0x2b,0x02,0x00 + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] ; encoding: [0x00,0x80,0xad,0xd3,0x00,0x11,0x02,0x04] +0x00,0x00,0xac,0xd3,0x14,0x2b,0x02,0x00,0x00,0x80,0xad,0xd3,0x00,0x11,0x02,0x04 + +# GFX950: v_mfma_ld_scale_b32 v20, v21 op_sel_hi:[0,0] ; encoding: [0x00,0x40,0xac,0xd3,0x14,0x2b,0x02,0x00] +0x00,0x00,0xac,0xd3,0x14,0x2b,0x02,0x00 + +# GFX950: s_nop 0 ; encoding: [0x00,0x00,0x80,0xbf] +0x00,0x00,0x80,0xbf + +# GFX950: v_mfma_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3] ; encoding: [0x00,0x80,0xad,0xd3,0x00,0x11,0x02,0x04] +0x00,0x80,0xad,0xd3,0x00,0x11,0x02,0x04 + + +# GFX950: v_mfma_ld_scale_b32 v20, v21 op_sel_hi:[0,0] ; encoding: [0x00,0x40,0xac,0xd3,0x14,0x2b,0x02,0x00] +0x00,0x00,0xac,0xd3,0x14,0x2b,0x02,0x00 + +# GFX950: v_mfma_scale_f32_16x16x128_f8f6f4 a[0:3], v[0:7], v[8:15], a[0:3], v20, v21 op_sel_hi:[0,0,0] ; encoding: [0x00,0x00,0xac,0xd3,0x14,0x2b,0x02,0x00,0x00,0x88,0xad,0xd3,0x00,0x11,0x02,0x04] +0x00,0x00,0xac,0xd3,0x14,0x2b,0x02,0x00,0x00,0x88,0xad,0xd3,0x00,0x11,0x02,0x04 diff --git a/llvm/test/MC/Disassembler/X86/x86-64.txt b/llvm/test/MC/Disassembler/X86/x86-64.txt index 8d6564dd09899..9a18097c8f962 100644 --- a/llvm/test/MC/Disassembler/X86/x86-64.txt +++ b/llvm/test/MC/Disassembler/X86/x86-64.txt @@ -770,3 +770,9 @@ # CHECK: prefetchit1 (%rip) 0x0f,0x18,0x35,0x00,0x00,0x00,0x00 + +# Check that we correctly ignore a REX prefix that is not immediately before +# the opcode. REX prefixes not immediately preceding the Opcode are ignored +# according to Section 2.2.1 of the Intel 64 Architecture Manual. +# CHECK: orw $25659, %ax +0x66 0x4c 0x64 0x0d 0x3b 0x64 diff --git a/llvm/test/MC/ELF/relocation.s b/llvm/test/MC/ELF/relocation.s index 80b671aa2c859..25497a003f853 100644 --- a/llvm/test/MC/ELF/relocation.s +++ b/llvm/test/MC/ELF/relocation.s @@ -19,6 +19,17 @@ bar: movq bar, %rdx # R_X86_64_32S .long bar # R_X86_64_32 leaq foo@GOTTPOFF(%rip), %rax # R_X86_64_GOTTPOFF + movq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF + addq foo@GOTTPOFF(%rip), %r31 # R_X86_64_CODE_4_GOTTPOFF + # NDD + addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF + addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF + # NDD + NF + {nf} addq %r8, foo@GOTTPOFF(%rip), %r16 # R_X86_64_CODE_6_GOTTPOFF + {nf} addq foo@GOTTPOFF(%rip), %rax, %r12 # R_X86_64_CODE_6_GOTTPOFF + # NF + {nf} addq foo@GOTTPOFF(%rip), %r12 # R_X86_64_CODE_6_GOTTPOFF + leaq foo@TLSGD(%rip), %rax # R_X86_64_TLSGD leaq foo@TPOFF(%rax), %rax # R_X86_64_TPOFF32 leaq foo@TLSLD(%rip), %rdi # R_X86_64_TLSLD @@ -67,7 +78,6 @@ pr24486: weak_sym: .long pr23272-weak_sym - // CHECK: Section { // CHECK: Name: .rela.text // CHECK: Relocations [ @@ -78,37 +88,44 @@ weak_sym: // CHECK-NEXT: 0x22 R_X86_64_32S .text // CHECK-NEXT: 0x26 R_X86_64_32 .text // CHECK-NEXT: 0x2D R_X86_64_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC -// CHECK-NEXT: 0x34 R_X86_64_TLSGD foo 0xFFFFFFFFFFFFFFFC -// CHECK-NEXT: 0x3B R_X86_64_TPOFF32 foo 0x0 -// CHECK-NEXT: 0x42 R_X86_64_TLSLD foo 0xFFFFFFFFFFFFFFFC -// CHECK-NEXT: 0x49 R_X86_64_DTPOFF32 foo 0x0 -// CHECK-NEXT: 0x4F R_X86_64_GOT64 foo 0x0 -// CHECK-NEXT: 0x59 R_X86_64_GOTOFF64 foo 0x0 -// CHECK-NEXT: 0x62 R_X86_64_32S .text 0x0 -// CHECK-NEXT: 0x69 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC -// CHECK-NEXT: 0x70 R_X86_64_PC32 foo 0x70 -// CHECK-NEXT: 0x77 R_X86_64_32S .text 0x0 -// CHECK-NEXT: 0x7B R_X86_64_DTPOFF64 foo 0x0 -// CHECK-NEXT: 0x85 R_X86_64_TPOFF64 baz 0x0 -// CHECK-NEXT: 0x8D R_X86_64_PC16 foo 0x8D -// CHECK-NEXT: 0x8F R_X86_64_PC8 foo 0x8F -// CHECK-NEXT: 0x91 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC -// CHECK-NEXT: 0x98 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFB -// CHECK-NEXT: 0x9F R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x3 -// CHECK-NEXT: 0xA6 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0xFFFFFFFFFFFFFFFC -// CHECK-NEXT: 0xAB R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x1 -// CHECK-NEXT: 0xB1 R_X86_64_GOTPC64 _GLOBAL_OFFSET_TABLE_ 0x2 -// CHECK-NEXT: 0xB9 R_X86_64_SIZE64 blah 0x0 -// CHECK-NEXT: 0xC1 R_X86_64_SIZE64 blah 0x20 -// CHECK-NEXT: 0xC9 R_X86_64_SIZE64 blah 0xFFFFFFFFFFFFFFE0 -// CHECK-NEXT: 0xD4 R_X86_64_SIZE32 blah 0x0 -// CHECK-NEXT: 0xDB R_X86_64_SIZE32 blah 0x20 -// CHECK-NEXT: 0xE2 R_X86_64_SIZE32 blah 0xFFFFFFFFFFFFFFE0 -// CHECK-NEXT: 0xE6 R_X86_64_GOTPCREL foo 0x0 -// CHECK-NEXT: 0xEA R_X86_64_PLT32 foo 0x0 -// CHECK-NEXT: 0xFE R_X86_64_32 .text 0xFE -// CHECK-NEXT: 0x103 R_X86_64_PC16 pr23771 0xFFFFFFFFFFFFFFFE -// CHECK-NEXT: 0x105 R_X86_64_PC32 pr23272 0x0 +// CHECK-NEXT: 0x35 R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x3D R_X86_64_CODE_4_GOTTPOFF foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x47 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFA +// CHECK-NEXT: 0x51 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFA +// CHECK-NEXT: 0x5B R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFA +// CHECK-NEXT: 0x65 R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFA +// CHECK-NEXT: 0x6F R_X86_64_CODE_6_GOTTPOFF foo 0xFFFFFFFFFFFFFFFA +// CHECK-NEXT: 0x76 R_X86_64_TLSGD foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x7D R_X86_64_TPOFF32 foo 0x0 +// CHECK-NEXT: 0x84 R_X86_64_TLSLD foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0x8B R_X86_64_DTPOFF32 foo 0x0 +// CHECK-NEXT: 0x91 R_X86_64_GOT64 foo 0x0 +// CHECK-NEXT: 0x9B R_X86_64_GOTOFF64 foo 0x0 +// CHECK-NEXT: 0xA4 R_X86_64_32S .text 0x0 +// CHECK-NEXT: 0xAB R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0xB2 R_X86_64_PC32 foo 0xB2 +// CHECK-NEXT: 0xB9 R_X86_64_32S .text 0x0 +// CHECK-NEXT: 0xBD R_X86_64_DTPOFF64 foo 0x0 +// CHECK-NEXT: 0xC7 R_X86_64_TPOFF64 baz 0x0 +// CHECK-NEXT: 0xCF R_X86_64_PC16 foo 0xCF +// CHECK-NEXT: 0xD1 R_X86_64_PC8 foo 0xD1 +// CHECK-NEXT: 0xD3 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0xDA R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFB +// CHECK-NEXT: 0xE1 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x3 +// CHECK-NEXT: 0xE8 R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0xFFFFFFFFFFFFFFFC +// CHECK-NEXT: 0xED R_X86_64_GOTPC32 _GLOBAL_OFFSET_TABLE_ 0x1 +// CHECK-NEXT: 0xF3 R_X86_64_GOTPC64 _GLOBAL_OFFSET_TABLE_ 0x2 +// CHECK-NEXT: 0xFB R_X86_64_SIZE64 blah 0x0 +// CHECK-NEXT: 0x103 R_X86_64_SIZE64 blah 0x20 +// CHECK-NEXT: 0x10B R_X86_64_SIZE64 blah 0xFFFFFFFFFFFFFFE0 +// CHECK-NEXT: 0x116 R_X86_64_SIZE32 blah 0x0 +// CHECK-NEXT: 0x11D R_X86_64_SIZE32 blah 0x20 +// CHECK-NEXT: 0x124 R_X86_64_SIZE32 blah 0xFFFFFFFFFFFFFFE0 +// CHECK-NEXT: 0x128 R_X86_64_GOTPCREL foo 0x0 +// CHECK-NEXT: 0x12C R_X86_64_PLT32 foo 0x0 +// CHECK-NEXT: 0x140 R_X86_64_32 .text 0x140 +// CHECK-NEXT: 0x145 R_X86_64_PC16 pr23771 0xFFFFFFFFFFFFFFFE +// CHECK-NEXT: 0x147 R_X86_64_PC32 pr23272 0x0 // CHECK-NEXT: ] // CHECK-NEXT: } diff --git a/llvm/test/MC/LoongArch/Directives/cfi.s b/llvm/test/MC/LoongArch/Directives/cfi.s index 7101fc9072906..978028dfd66e6 100644 --- a/llvm/test/MC/LoongArch/Directives/cfi.s +++ b/llvm/test/MC/LoongArch/Directives/cfi.s @@ -1,10 +1,10 @@ ## Test cfi directives. -# RUN: llvm-mc %s --triple=loongarch32 | FileCheck %s -# RUN: llvm-mc %s --triple=loongarch64 | FileCheck %s -# RUN: not llvm-mc --triple=loongarch32 --defsym=ERR=1 < %s 2>&1 \ +# RUN: llvm-mc %s --triple=loongarch32 --mattr=+lasx | FileCheck %s +# RUN: llvm-mc %s --triple=loongarch64 --mattr=+lasx | FileCheck %s +# RUN: not llvm-mc --triple=loongarch32 --mattr=+lasx --defsym=ERR=1 < %s 2>&1 \ # RUN: | FileCheck %s --check-prefix=CHECK-ERR -# RUN: not llvm-mc --triple=loongarch64 --defsym=ERR=1 < %s 2>&1 \ +# RUN: not llvm-mc --triple=loongarch64 --mattr=+lasx --defsym=ERR=1 < %s 2>&1 \ # RUN: | FileCheck %s --check-prefix=CHECK-ERR # CHECK: .cfi_startproc @@ -15,20 +15,36 @@ .cfi_offset 9, 8 # CHECK-NEXT: .cfi_offset 31, 16 .cfi_offset 31, 16 +# CHECK-NEXT: .cfi_offset 22, -8 +.cfi_offset r22, -8 +# CHECK-NEXT: .cfi_offset 22, -8 +.cfi_offset $r22, -8 +# CHECK-NEXT: .cfi_offset 22, -8 +.cfi_offset fp, -8 +# CHECK-NEXT: .cfi_offset 22, -8 +.cfi_offset $fp, -8 +# CHECK-NEXT: .cfi_offset 42, 8 +.cfi_offset f10, 8 +# CHECK-NEXT: .cfi_offset 56, 8 +.cfi_offset fs0, 8 # CHECK-NEXT: .cfi_endproc .cfi_endproc .ifdef ERR .cfi_startproc -# CHECK-ERR: :[[#@LINE+1]]:13: error: invalid register number +# CHECK-ERR: :[[#@LINE+1]]:13: error: invalid register name .cfi_offset -22, -8 -# CHECK-ERR: :[[#@LINE+1]]:13: error: invalid register number -.cfi_offset fp, -8 -# CHECK-ERR: :[[#@LINE+1]]:13: error: invalid register number +# CHECK-ERR: :[[#@LINE+1]]:13: error: invalid register name +.cfi_offset lr, -8 +# CHECK-ERR: :[[#@LINE+1]]:13: error: invalid register name +.cfi_offset r32, -8 +# CHECK-ERR: :[[#@LINE+1]]:14: error: invalid register name +.cfi_offset $r32, -8 +# CHECK-ERR: :[[#@LINE+1]]:14: error: invalid register name .cfi_offset $22, -8 -# CHECK-ERR: :[[#@LINE+1]]:13: error: invalid register number -.cfi_offset $r22, -8 -# CHECK-ERR: :[[#@LINE+1]]:13: error: invalid register number -.cfi_offset $fp, -8 +# CHECK-ERR: :[[#@LINE+1]]:16: error: invalid register name +.cfi_offset vr0, 8 +# CHECK-ERR: :[[#@LINE+1]]:16: error: invalid register name +.cfi_offset xr0, 8 .cfi_endproc .endif diff --git a/llvm/test/MC/RISCV/attribute-arch.s b/llvm/test/MC/RISCV/attribute-arch.s index 30cf037b1f70a..9cb4387c720b3 100644 --- a/llvm/test/MC/RISCV/attribute-arch.s +++ b/llvm/test/MC/RISCV/attribute-arch.s @@ -20,22 +20,22 @@ # CHECK: attribute 5, "rv32i2p1_m2p0_zmmul1p0" .attribute arch, "rv32i2p1_ma" -# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_zmmul1p0" +# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_zmmul1p0_zaamo1p0_zalrsc1p0" .attribute arch, "rv32g" -# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_zicsr2p0_zifencei2p0_zmmul1p0" +# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0" .attribute arch, "rv32imafdc" -# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0" +# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0" .attribute arch, "rv32i2p1_mafdc" -# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0" +# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0" .attribute arch, "rv32ima2p1_fdc" -# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0" +# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0" .attribute arch, "rv32ima2p1_fdc" -# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0" +# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zmmul1p0_zaamo1p0_zalrsc1p0" .attribute arch, "rv32iv" # CHECK: attribute 5, "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0" @@ -394,7 +394,7 @@ # CHECK: .attribute 5, "rv32i2p1_f2p2_zicsr2p0_zfbfmin1p0_zve32f1p0_zve32x1p0_zvfbfmin1p0_zvfbfwma1p0_zvl32b1p0" .attribute arch, "rv32ia_zacas1p0" -# CHECK: attribute 5, "rv32i2p1_a2p1_zaamo1p0_zacas1p0" +# CHECK: attribute 5, "rv32i2p1_a2p1_zaamo1p0_zacas1p0_zalrsc1p0" .attribute arch, "rv32izalasr0p1" # CHECK: attribute 5, "rv32i2p1_zalasr0p1" diff --git a/llvm/test/MC/RISCV/attribute.s b/llvm/test/MC/RISCV/attribute.s index 29a450071fccd..2763db2c2a45d 100644 --- a/llvm/test/MC/RISCV/attribute.s +++ b/llvm/test/MC/RISCV/attribute.s @@ -10,8 +10,8 @@ .attribute stack_align, 16 # CHECK: attribute 4, 16 -.attribute arch, "rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0" -# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0" +.attribute arch, "rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0_zaamo1p0_zalrsc1p0" +# CHECK: attribute 5, "rv32i2p1_m2p0_a2p1_c2p0_zmmul1p0_zaamo1p0_zalrsc1p0" .attribute unaligned_access, 0 # CHECK: attribute 6, 0 diff --git a/llvm/test/MC/RISCV/rv32i-invalid.s b/llvm/test/MC/RISCV/rv32i-invalid.s index e0e1e4241ec98..ac0e3c6c1bdbf 100644 --- a/llvm/test/MC/RISCV/rv32i-invalid.s +++ b/llvm/test/MC/RISCV/rv32i-invalid.s @@ -183,8 +183,8 @@ xor s2, s2 # CHECK: :[[@LINE]]:1: error: too few operands for instruction # Instruction not in the base ISA div a4, ra, s0 # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'M' (Integer Multiplication and Division){{$}} -amomaxu.w s5, s4, (s3) # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'A' (Atomic Instructions) or 'Zaamo' (Atomic Memory Operations){{$}} -lr.w t0, (t1) # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'A' (Atomic Instructions) or 'Zalrsc' (Load-Reserved/Store-Conditional){{$}} +amomaxu.w s5, s4, (s3) # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'Zaamo' (Atomic Memory Operations){{$}} +lr.w t0, (t1) # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'Zalrsc' (Load-Reserved/Store-Conditional){{$}} fadd.s ft0, ft1, ft2 # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'F' (Single-Precision Floating-Point){{$}} fadd.h ft0, ft1, ft2 # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'Zfh' (Half-Precision Floating-Point){{$}} fadd.s a0, a1, a2 # CHECK: :[[@LINE]]:1: error: instruction requires the following: 'Zfinx' (Float in Integer){{$}} diff --git a/llvm/test/MC/X86/tlsdesc-64.s b/llvm/test/MC/X86/tlsdesc-64.s index ebe1710c3e869..d1d3381751090 100644 --- a/llvm/test/MC/X86/tlsdesc-64.s +++ b/llvm/test/MC/X86/tlsdesc-64.s @@ -17,3 +17,15 @@ leaq a@tlsdesc(%rip), %rax call *a@tlscall(%rax) addq %fs:0, %rax + +# PRINT: leaq a@tlsdesc(%rip), %r16 +# PRINT-NEXT: callq *a@tlscall(%r16) + +# CHECK: 12: leaq (%rip), %r16 # 0x1a <{{.*}}> +# CHECK-NEXT: 0000000000000016: R_X86_64_CODE_4_GOTPC32_TLSDESC a-0x4 +# CHECK-NEXT: 1a: callq *(%r16) +# CHECK-NEXT: 000000000000001a: R_X86_64_TLSDESC_CALL a + +leaq a@tlsdesc(%rip), %r16 +call *a@tlscall(%r16) +addq %fs:0, %r16 diff --git a/llvm/test/MC/X86/vinsertps_decode.s b/llvm/test/MC/X86/vinsertps_decode.s new file mode 100644 index 0000000000000..b200fb14aefff --- /dev/null +++ b/llvm/test/MC/X86/vinsertps_decode.s @@ -0,0 +1,11 @@ +# RUN: llvm-mc -triple x86_64-unknown-unknown %s | FileCheck %s + +.intel_syntax + +# CHECK: insertps $176, (%rax), %xmm2 # xmm2 = xmm2[0,1,2],mem[0] +# CHECK: vinsertps $176, (%rax), %xmm2, %xmm2 # xmm2 = xmm2[0,1,2],mem[0] +# CHECK: vinsertps $176, (%rax), %xmm29, %xmm0 # xmm0 = xmm29[0,1,2],mem[0] + +insertps xmm2, dword ptr [rax], 0x0B0 +vinsertps xmm2,xmm2,dword ptr [rax],0x0B0 +vinsertps xmm0,xmm29,dword ptr [rax],0x0B0 diff --git a/llvm/test/MachineVerifier/RISCV/subreg-liveness.mir b/llvm/test/MachineVerifier/RISCV/subreg-liveness.mir new file mode 100644 index 0000000000000..c69bc1b5eca64 --- /dev/null +++ b/llvm/test/MachineVerifier/RISCV/subreg-liveness.mir @@ -0,0 +1,27 @@ +# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 +# RUN: llc -mtriple=riscv64 -mattr=+v -run-pass=none %s -o - | FileCheck %s +# REQUIRES: riscv64-registered-target + +# During the MachineVerifier, it assumes that used registers have been defined +# In this test case, while $v12_v13_v14_v15_v16 covers $v14_v15, +# $v14_v15 is not a sub-register of $v14m2 even though they share the same register. +# This corner case can be resolved by checking the register using RegUnit. + +... +--- +name: func +tracksRegLiveness: true +tracksDebugUserValues: true +body: | + bb.0: + liveins: $v0, $v8, $v9, $v10, $v11 + + ; CHECK-LABEL: name: func + ; CHECK: liveins: $v0, $v8, $v9, $v10, $v11 + ; CHECK-NEXT: {{ $}} + ; CHECK-NEXT: renamable $v16m2 = PseudoVMV_V_I_M2 undef renamable $v16m2, 0, -1, 3 /* e8 */, 0 /* tu, mu */, implicit $vl, implicit $vtype + ; CHECK-NEXT: $v20m2 = VMV2R_V $v14m2, implicit $v12_v13_v14_v15_v16 + renamable $v16m2 = PseudoVMV_V_I_M2 undef renamable $v16m2, 0, -1, 3 /* e8 */, 0 /* tu, mu */, implicit $vl, implicit $vtype + $v20m2 = VMV2R_V $v14m2, implicit $v12_v13_v14_v15_v16 + +... diff --git a/llvm/test/Other/optimize-inrange-gep.ll b/llvm/test/Other/optimize-inrange-gep.ll index e7465fddd80f0..66cf7f2c17f98 100644 --- a/llvm/test/Other/optimize-inrange-gep.ll +++ b/llvm/test/Other/optimize-inrange-gep.ll @@ -19,7 +19,7 @@ define void @foo(ptr %p) { ; O0-NEXT: ret void ; ; CHECK-LABEL: define void @foo( -; CHECK-SAME: ptr nocapture writeonly [[P:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { +; CHECK-SAME: ptr nocapture writeonly initializes((0, 8)) [[P:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] { ; CHECK-NEXT: store ptr getelementptr inbounds inrange(-24, 0) (i8, ptr @vtable, i64 24), ptr [[P]], align 8 ; CHECK-NEXT: ret void ; diff --git a/llvm/test/TableGen/riscv-target-def.td b/llvm/test/TableGen/riscv-target-def.td index c071cfd731cb5..79178731f12a7 100644 --- a/llvm/test/TableGen/riscv-target-def.td +++ b/llvm/test/TableGen/riscv-target-def.td @@ -81,6 +81,9 @@ class RISCVProcessorModel : ProcessorModel { string DefaultMarch = default_march; + int MVendorID = 0; + int MArchID = 0; + int MImpID = 0; } class RISCVTuneProcessorModel @or-load-scalable-vector(ptr %p1) { ; CHECK-NEXT: [[L2:%.*]] = load , ptr [[P2]], align 1 ; CHECK-NEXT: [[E1:%.*]] = zext [[L1]] to ; CHECK-NEXT: [[E2:%.*]] = zext [[L2]] to -; CHECK-NEXT: [[S2:%.*]] = shl [[E2]], shufflevector ( insertelement ( poison, i16 8, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[S2:%.*]] = shl [[E2]], splat (i16 8) ; CHECK-NEXT: [[OR:%.*]] = or [[E1]], [[S2]] ; CHECK-NEXT: ret [[OR]] ; diff --git a/llvm/test/Transforms/Attributor/nofpclass.ll b/llvm/test/Transforms/Attributor/nofpclass.ll index 5afe5e90d802b..b97454a29d513 100644 --- a/llvm/test/Transforms/Attributor/nofpclass.ll +++ b/llvm/test/Transforms/Attributor/nofpclass.ll @@ -2667,7 +2667,7 @@ define @scalable_splat_pnorm() { ; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) ; CHECK-LABEL: define @scalable_splat_pnorm ; CHECK-SAME: () #[[ATTR3]] { -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, float 1.000000e+00, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (float 1.000000e+00) ; ret splat (float 1.0) } diff --git a/llvm/test/Transforms/ConstantHoisting/AArch64/large-immediate.ll b/llvm/test/Transforms/ConstantHoisting/AArch64/large-immediate.ll index 25cd5526f89a3..d592c362f58f8 100644 --- a/llvm/test/Transforms/ConstantHoisting/AArch64/large-immediate.ll +++ b/llvm/test/Transforms/ConstantHoisting/AArch64/large-immediate.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3 -; RUN: opt -mtriple=arm64-darwin-unknown -S -passes=consthoist < %s | FileCheck %s --check-prefixes=CHECK,CV -; RUN: opt -mtriple=arm64-darwin-unknown -S -passes=consthoist -use-constant-int-for-fixed-length-splat -use-constant-int-for-scalable-splat < %s | FileCheck %s --check-prefixes=CHECK,CI +; RUN: opt -mtriple=arm64-darwin-unknown -S -passes=consthoist < %s | FileCheck %s +; RUN: opt -mtriple=arm64-darwin-unknown -S -passes=consthoist -use-constant-int-for-fixed-length-splat -use-constant-int-for-scalable-splat < %s | FileCheck %s define i128 @test1(i128 %a) { ; CHECK-LABEL: define i128 @test1( @@ -135,17 +135,11 @@ define <2 x i64> @sdiv_v2i64(<2 x i64> %a) { } define @sdiv_nxv2i64( %a) { -; CV-LABEL: define @sdiv_nxv2i64( -; CV-SAME: [[A:%.*]]) { -; CV-NEXT: [[TMP1:%.*]] = sdiv [[A]], shufflevector ( insertelement ( poison, i64 4294967087, i64 0), poison, zeroinitializer) -; CV-NEXT: [[TMP2:%.*]] = add [[TMP1]], shufflevector ( insertelement ( poison, i64 4294967087, i64 0), poison, zeroinitializer) -; CV-NEXT: ret [[TMP2]] -; -; CI-LABEL: define @sdiv_nxv2i64( -; CI-SAME: [[A:%.*]]) { -; CI-NEXT: [[TMP1:%.*]] = sdiv [[A]], splat (i64 4294967087) -; CI-NEXT: [[TMP2:%.*]] = add [[TMP1]], splat (i64 4294967087) -; CI-NEXT: ret [[TMP2]] +; CHECK-LABEL: define @sdiv_nxv2i64( +; CHECK-SAME: [[A:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = sdiv [[A]], splat (i64 4294967087) +; CHECK-NEXT: [[TMP2:%.*]] = add [[TMP1]], splat (i64 4294967087) +; CHECK-NEXT: ret [[TMP2]] ; %1 = sdiv %a, splat (i64 4294967087) %2 = add %1, splat (i64 4294967087) diff --git a/llvm/test/Transforms/ConstraintElimination/geps-ptrvector.ll b/llvm/test/Transforms/ConstraintElimination/geps-ptrvector.ll index b21e94b2feb3f..d261868e6f341 100644 --- a/llvm/test/Transforms/ConstraintElimination/geps-ptrvector.ll +++ b/llvm/test/Transforms/ConstraintElimination/geps-ptrvector.ll @@ -37,7 +37,7 @@ define <2 x i1> @test.vectorgep.ult.false(<2 x ptr> %vec) { define @test.scalable.vectorgep.ult.true( %vec) { ; CHECK-LABEL: @test.scalable.vectorgep.ult.true( ; CHECK-NEXT: [[GEP_1:%.*]] = getelementptr inbounds i32, [[VEC:%.*]], i64 1 -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %gep.1 = getelementptr inbounds i32, %vec, i64 1 %t.1 = icmp ult %vec, %gep.1 diff --git a/llvm/test/Transforms/Coroutines/coro-async.ll b/llvm/test/Transforms/Coroutines/coro-async.ll index 3740c3d1d8387..f02d0a242dc99 100644 --- a/llvm/test/Transforms/Coroutines/coro-async.ll +++ b/llvm/test/Transforms/Coroutines/coro-async.ll @@ -116,7 +116,7 @@ define void @my_async_function_pa(ptr %ctxt, ptr %task, ptr %actor) { ; CHECK: @my_async_function_pa_fp = constant <{ i32, i32 }> <{ {{.*}}, i32 176 } ; CHECK: @my_async_function2_fp = constant <{ i32, i32 }> <{ {{.*}}, i32 176 } -; CHECK-LABEL: define swiftcc void @my_async_function(ptr swiftasync %async.ctxt, ptr %task, ptr %actor) +; CHECK-LABEL: define swiftcc void @my_async_function(ptr swiftasync initializes((152, 160)) %async.ctxt, ptr %task, ptr %actor) ; CHECK-O0-LABEL: define swiftcc void @my_async_function(ptr swiftasync %async.ctxt, ptr %task, ptr %actor) ; CHECK-SAME: !dbg ![[SP1:[0-9]+]] { ; CHECK: coro.return: @@ -249,7 +249,7 @@ define swiftcc void @top_level_caller(ptr %ctxt, ptr %task, ptr %actor) { ret void } -; CHECK-LABEL: define swiftcc void @top_level_caller(ptr %ctxt, ptr %task, ptr %actor) +; CHECK-LABEL: define swiftcc void @top_level_caller(ptr initializes((152, 160)) %ctxt, ptr %task, ptr %actor) ; CHECK: store ptr @my_async_functionTQ0_ ; CHECK: store ptr %ctxt ; CHECK: tail call swiftcc void @asyncSuspend @@ -410,7 +410,7 @@ entry: unreachable } -; CHECK-LABEL: define swiftcc void @polymorphic_suspend_return(ptr swiftasync %async.ctxt, ptr %task, ptr %actor) +; CHECK-LABEL: define swiftcc void @polymorphic_suspend_return(ptr swiftasync initializes((152, 160)) %async.ctxt, ptr %task, ptr %actor) ; CHECK-LABEL: define internal swiftcc void @polymorphic_suspend_return.resume.0(ptr {{.*}}swiftasync{{.*}} %0, ptr {{.*}}swiftself{{.*}} %1, ptr {{.*}}%2, ptr {{.*}}%3) ; CHECK: } diff --git a/llvm/test/Transforms/Coroutines/gh114487-crash-in-cgscc-2.ll b/llvm/test/Transforms/Coroutines/gh114487-crash-in-cgscc-2.ll new file mode 100644 index 0000000000000..690e01121315c --- /dev/null +++ b/llvm/test/Transforms/Coroutines/gh114487-crash-in-cgscc-2.ll @@ -0,0 +1,158 @@ +; RUN: opt -passes="cgscc(coro-annotation-elide)" -S < %s | FileCheck %s + +%foo.Frame = type { ptr, ptr, i1 } + +@foo.resumers = private constant [3 x ptr] [ptr @foo.resume, ptr @foo.destroy, ptr @foo.cleanup] +@foo.resumers.1 = private constant [4 x ptr] [ptr @foo.resume, ptr @foo.destroy, ptr @foo.cleanup, ptr @foo.noalloc] + +; CHECK-LABEL: define void @foo +define void @foo(ptr %agg.result, ptr %this) personality ptr null { +entry: + %0 = call token @llvm.coro.id(i32 0, ptr null, ptr nonnull @foo, ptr @foo.resumers.1) + %1 = call noalias nonnull ptr @llvm.coro.begin(token %0, ptr null) + %resume.addr = getelementptr inbounds nuw %foo.Frame, ptr %1, i32 0, i32 0 + store ptr @foo.resume, ptr %resume.addr, align 8 + %destroy.addr = getelementptr inbounds nuw %foo.Frame, ptr %1, i32 0, i32 1 + store ptr @foo.destroy, ptr %destroy.addr, align 8 + br label %AllocaSpillBB + +AllocaSpillBB: ; preds = %entry + br label %PostSpill + +PostSpill: ; preds = %AllocaSpillBB + br label %CoroSave + +CoroSave: ; preds = %PostSpill + %index.addr1 = getelementptr inbounds nuw %foo.Frame, ptr %1, i32 0, i32 2 + store i1 false, ptr %index.addr1, align 1 + br label %CoroSuspend + +CoroSuspend: ; preds = %CoroSave + br label %resume.0.landing + +resume.0.landing: ; preds = %CoroSuspend + br label %AfterCoroSuspend + +AfterCoroSuspend: ; preds = %resume.0.landing + ret void +} + +; CHECK-LABEL: define internal void @bar +; Function Attrs: presplitcoroutine +define internal void @bar() #0 personality ptr null { +entry: + ; CHECK: %[[CALLEE_FRAME:.+]] = alloca [24 x i8], align 8 + %0 = call token @llvm.coro.id(i32 0, ptr null, ptr nonnull @bar, ptr null) + %1 = call i1 @llvm.coro.alloc(token %0) + call void @foo(ptr null, ptr null) #4 + ; CHECK: %[[FOO_ID:.+]] = call token @llvm.coro.id(i32 0, ptr null, ptr nonnull @foo, ptr @foo.resumers) + ; CHECK-NEXT: store ptr @foo.resume, ptr %[[CALLEE_FRAME]], align 8 + ; CHECK-NEXT: %[[DESTROY_ADDR:.+]] = getelementptr inbounds nuw %foo.Frame, ptr %[[CALLEE_FRAME]], i32 0, i32 1 + ; CHECK-NEXT: store ptr @foo.destroy, ptr %[[DESTROY_ADDR]], align 8 + ; CHECK-NEXT: %[[INDEX_ADDR:.+]] = getelementptr inbounds nuw %foo.Frame, ptr %[[CALLEE_FRAME]], i32 0, i32 2 + ; CHECK-NEXT: store i1 false, ptr %[[INDEX_ADDR]], align 1 + ; CHECK: ret void + ret void +} + +; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: read) +declare token @llvm.coro.id(i32, ptr readnone, ptr nocapture readonly, ptr) #1 + +; Function Attrs: nounwind +declare i1 @llvm.coro.alloc(token) #2 + +; Function Attrs: nounwind +declare ptr @llvm.coro.begin(token, ptr writeonly) #2 + +; Function Attrs: nomerge nounwind +declare token @llvm.coro.save(ptr) #3 + +; Function Attrs: nounwind +declare i8 @llvm.coro.suspend(token, i1) #2 + +define internal fastcc void @foo.resume(ptr noundef nonnull align 8 dereferenceable(24) %0) personality ptr null { +entry.resume: + br label %resume.entry + +resume.0: ; preds = %resume.entry + br label %resume.0.landing + +resume.0.landing: ; preds = %resume.0 + br label %AfterCoroSuspend + +AfterCoroSuspend: ; preds = %resume.0.landing + unreachable + +resume.entry: ; preds = %entry.resume + br label %resume.0 +} + +define internal fastcc void @foo.destroy(ptr noundef nonnull align 8 dereferenceable(24) %0) personality ptr null { +entry.destroy: + br label %resume.entry + +resume.0: ; preds = %resume.entry + br label %resume.0.landing + +resume.0.landing: ; preds = %resume.0 + br label %AfterCoroSuspend + +AfterCoroSuspend: ; preds = %resume.0.landing + unreachable + +resume.entry: ; preds = %entry.destroy + br label %resume.0 +} + +define internal fastcc void @foo.cleanup(ptr noundef nonnull align 8 dereferenceable(24) %0) personality ptr null { +entry.cleanup: + br label %resume.entry + +resume.0: ; preds = %resume.entry + br label %resume.0.landing + +resume.0.landing: ; preds = %resume.0 + br label %AfterCoroSuspend + +AfterCoroSuspend: ; preds = %resume.0.landing + unreachable + +resume.entry: ; preds = %entry.cleanup + br label %resume.0 +} + +define internal void @foo.noalloc(ptr %0, ptr %1, ptr noundef nonnull align 8 dereferenceable(24) %2) personality ptr null { +entry: + %3 = call token @llvm.coro.id(i32 0, ptr null, ptr nonnull @foo, ptr @foo.resumers) + %resume.addr = getelementptr inbounds nuw %foo.Frame, ptr %2, i32 0, i32 0 + store ptr @foo.resume, ptr %resume.addr, align 8 + %destroy.addr = getelementptr inbounds nuw %foo.Frame, ptr %2, i32 0, i32 1 + store ptr @foo.destroy, ptr %destroy.addr, align 8 + br label %AllocaSpillBB + +AllocaSpillBB: ; preds = %entry + br label %PostSpill + +PostSpill: ; preds = %AllocaSpillBB + br label %CoroSave + +CoroSave: ; preds = %PostSpill + %index.addr1 = getelementptr inbounds nuw %foo.Frame, ptr %2, i32 0, i32 2 + store i1 false, ptr %index.addr1, align 1 + br label %CoroSuspend + +CoroSuspend: ; preds = %CoroSave + br label %resume.0.landing + +resume.0.landing: ; preds = %CoroSuspend + br label %AfterCoroSuspend + +AfterCoroSuspend: ; preds = %resume.0.landing + ret void +} + +attributes #0 = { presplitcoroutine } +attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: read) } +attributes #2 = { nounwind } +attributes #3 = { nomerge nounwind } +attributes #4 = { coro_elide_safe } diff --git a/llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll b/llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll index 7060b4244d988..5c6dead841b5b 100644 --- a/llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll +++ b/llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll @@ -87,7 +87,7 @@ define @infer_nowrap_scalable( %a) { ; CHECK-LABEL: define range(i16 1, 257) @infer_nowrap_scalable( ; CHECK-SAME: [[A:%.*]]) { ; CHECK-NEXT: [[ZEXT:%.*]] = zext [[A]] to -; CHECK-NEXT: [[RES:%.*]] = add nuw nsw [[ZEXT]], shufflevector ( insertelement ( poison, i16 1, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[RES:%.*]] = add nuw nsw [[ZEXT]], splat (i16 1) ; CHECK-NEXT: ret [[RES]] ; %zext = zext %a to diff --git a/llvm/test/Transforms/FunctionAttrs/argmemonly.ll b/llvm/test/Transforms/FunctionAttrs/argmemonly.ll index 10760e3b8b8b8..5bbe6fa7c27c2 100644 --- a/llvm/test/Transforms/FunctionAttrs/argmemonly.ll +++ b/llvm/test/Transforms/FunctionAttrs/argmemonly.ll @@ -101,7 +101,7 @@ entry: define void @test_only_write_arg(ptr %ptr) { ; FNATTRS: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) ; FNATTRS-LABEL: define void @test_only_write_arg -; FNATTRS-SAME: (ptr nocapture writeonly [[PTR:%.*]]) #[[ATTR4:[0-9]+]] { +; FNATTRS-SAME: (ptr nocapture writeonly initializes((0, 4)) [[PTR:%.*]]) #[[ATTR4:[0-9]+]] { ; FNATTRS-NEXT: entry: ; FNATTRS-NEXT: store i32 0, ptr [[PTR]], align 4 ; FNATTRS-NEXT: ret void @@ -156,7 +156,7 @@ declare i32 @fn_readnone() readnone define void @test_call_readnone(ptr %ptr) { ; FNATTRS: Function Attrs: memory(argmem: write) ; FNATTRS-LABEL: define void @test_call_readnone -; FNATTRS-SAME: (ptr nocapture writeonly [[PTR:%.*]]) #[[ATTR7:[0-9]+]] { +; FNATTRS-SAME: (ptr nocapture writeonly initializes((0, 4)) [[PTR:%.*]]) #[[ATTR7:[0-9]+]] { ; FNATTRS-NEXT: entry: ; FNATTRS-NEXT: [[C:%.*]] = call i32 @fn_readnone() ; FNATTRS-NEXT: store i32 [[C]], ptr [[PTR]], align 4 @@ -221,7 +221,7 @@ entry: define void @test_memcpy_argonly(ptr %dst, ptr %src) { ; FNATTRS: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) ; FNATTRS-LABEL: define void @test_memcpy_argonly -; FNATTRS-SAME: (ptr nocapture writeonly [[DST:%.*]], ptr nocapture readonly [[SRC:%.*]]) #[[ATTR9:[0-9]+]] { +; FNATTRS-SAME: (ptr nocapture writeonly initializes((0, 32)) [[DST:%.*]], ptr nocapture readonly [[SRC:%.*]]) #[[ATTR9:[0-9]+]] { ; FNATTRS-NEXT: entry: ; FNATTRS-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr [[DST]], ptr [[SRC]], i64 32, i1 false) ; FNATTRS-NEXT: ret void @@ -245,7 +245,7 @@ declare void @llvm.memcpy.p0.p0.i64(ptr, ptr, i64, i1) define void @test_memcpy_src_global(ptr %dst) { ; FNATTRS: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) ; FNATTRS-LABEL: define void @test_memcpy_src_global -; FNATTRS-SAME: (ptr nocapture writeonly [[DST:%.*]]) #[[ATTR11:[0-9]+]] { +; FNATTRS-SAME: (ptr nocapture writeonly initializes((0, 32)) [[DST:%.*]]) #[[ATTR11:[0-9]+]] { ; FNATTRS-NEXT: entry: ; FNATTRS-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr [[DST]], ptr @arr, i64 32, i1 false) ; FNATTRS-NEXT: ret void @@ -370,7 +370,7 @@ define void @test_inaccessibleorargmemonly_readonly(ptr %arg) { define void @test_inaccessibleorargmemonly_readwrite(ptr %arg) { ; FNATTRS: Function Attrs: memory(argmem: write, inaccessiblemem: read) ; FNATTRS-LABEL: define void @test_inaccessibleorargmemonly_readwrite -; FNATTRS-SAME: (ptr nocapture writeonly [[ARG:%.*]]) #[[ATTR15:[0-9]+]] { +; FNATTRS-SAME: (ptr nocapture writeonly initializes((0, 4)) [[ARG:%.*]]) #[[ATTR15:[0-9]+]] { ; FNATTRS-NEXT: store i32 0, ptr [[ARG]], align 4 ; FNATTRS-NEXT: call void @fn_inaccessiblememonly() #[[ATTR19]] ; FNATTRS-NEXT: ret void diff --git a/llvm/test/Transforms/FunctionAttrs/initializes.ll b/llvm/test/Transforms/FunctionAttrs/initializes.ll new file mode 100644 index 0000000000000..2aa8385fe4ca7 --- /dev/null +++ b/llvm/test/Transforms/FunctionAttrs/initializes.ll @@ -0,0 +1,572 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes --version 4 +; RUN: opt -passes=function-attrs -S < %s | FileCheck %s + +define void @basic(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @basic( +; CHECK-SAME: ptr nocapture writeonly initializes((0, 8)) [[P:%.*]]) #[[ATTR0:[0-9]+]] { +; CHECK-NEXT: store i64 123, ptr [[P]], align 4 +; CHECK-NEXT: ret void +; + store i64 123, ptr %p + ret void +} + +define void @stores_on_both_paths(ptr %p, i1 %i) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @stores_on_both_paths( +; CHECK-SAME: ptr nocapture writeonly initializes((0, 8)) [[P:%.*]], i1 [[I:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: entry: +; CHECK-NEXT: br i1 [[I]], label [[BB1:%.*]], label [[BB2:%.*]] +; CHECK: bb1: +; CHECK-NEXT: store i64 123, ptr [[P]], align 4 +; CHECK-NEXT: br label [[END:%.*]] +; CHECK: bb2: +; CHECK-NEXT: store i64 321, ptr [[P]], align 4 +; CHECK-NEXT: br label [[END]] +; CHECK: end: +; CHECK-NEXT: ret void +; +entry: + br i1 %i, label %bb1, label %bb2 +bb1: + store i64 123, ptr %p + br label %end +bb2: + store i64 321, ptr %p + br label %end +end: + ret void +} + +define void @store_pointer_to_pointer(ptr %p, ptr %p2) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @store_pointer_to_pointer( +; CHECK-SAME: ptr [[P:%.*]], ptr nocapture writeonly initializes((0, 8)) [[P2:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: store ptr [[P]], ptr [[P2]], align 8 +; CHECK-NEXT: ret void +; + store ptr %p, ptr %p2 + ret void +} + +; TODO: this is still initializes +define void @store_pointer_to_itself(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @store_pointer_to_itself( +; CHECK-SAME: ptr [[P:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: store ptr [[P]], ptr [[P]], align 8 +; CHECK-NEXT: ret void +; + store ptr %p, ptr %p + ret void +} + +define void @load_before_store(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @load_before_store( +; CHECK-SAME: ptr nocapture [[P:%.*]]) #[[ATTR1:[0-9]+]] { +; CHECK-NEXT: [[A:%.*]] = load i32, ptr [[P]], align 4 +; CHECK-NEXT: store i32 123, ptr [[P]], align 4 +; CHECK-NEXT: ret void +; + %a = load i32, ptr %p + store i32 123, ptr %p + ret void +} + +define void @partial_load_before_store(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @partial_load_before_store( +; CHECK-SAME: ptr nocapture initializes((4, 8)) [[P:%.*]]) #[[ATTR1]] { +; CHECK-NEXT: [[A:%.*]] = load i32, ptr [[P]], align 4 +; CHECK-NEXT: store i64 123, ptr [[P]], align 4 +; CHECK-NEXT: ret void +; + %a = load i32, ptr %p + store i64 123, ptr %p + ret void +} + +declare void @use(ptr) + +define void @call_clobber(ptr %p) { +; CHECK-LABEL: define void @call_clobber( +; CHECK-SAME: ptr [[P:%.*]]) { +; CHECK-NEXT: call void @use(ptr [[P]]) +; CHECK-NEXT: store i64 123, ptr [[P]], align 4 +; CHECK-NEXT: ret void +; + call void @use(ptr %p) + store i64 123, ptr %p + ret void +} + +define void @call_clobber_after_store(ptr %p) { +; CHECK-LABEL: define void @call_clobber_after_store( +; CHECK-SAME: ptr initializes((0, 8)) [[P:%.*]]) { +; CHECK-NEXT: store i64 123, ptr [[P]], align 4 +; CHECK-NEXT: call void @use(ptr [[P]]) +; CHECK-NEXT: ret void +; + store i64 123, ptr %p + call void @use(ptr %p) + ret void +} + +define void @store_offset(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @store_offset( +; CHECK-SAME: ptr nocapture writeonly initializes((8, 12)) [[P:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 8 +; CHECK-NEXT: store i32 123, ptr [[G]], align 4 +; CHECK-NEXT: ret void +; + %g = getelementptr i8, ptr %p, i64 8 + store i32 123, ptr %g + ret void +} + +define void @store_volatile(ptr %p) { +; CHECK: Function Attrs: nofree norecurse nounwind memory(argmem: readwrite, inaccessiblemem: readwrite) +; CHECK-LABEL: define void @store_volatile( +; CHECK-SAME: ptr [[P:%.*]]) #[[ATTR2:[0-9]+]] { +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 8 +; CHECK-NEXT: store volatile i32 123, ptr [[G]], align 4 +; CHECK-NEXT: ret void +; + %g = getelementptr i8, ptr %p, i64 8 + store volatile i32 123, ptr %g + ret void +} + +define void @merge_store_ranges(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @merge_store_ranges( +; CHECK-SAME: ptr nocapture writeonly initializes((0, 8)) [[P:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 4 +; CHECK-NEXT: store i32 123, ptr [[G]], align 4 +; CHECK-NEXT: store i32 123, ptr [[P]], align 4 +; CHECK-NEXT: ret void +; + %g = getelementptr i8, ptr %p, i64 4 + store i32 123, ptr %g + store i32 123, ptr %p + ret void +} + +define void @partially_overlapping_stores_branches(ptr %p, i1 %i) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @partially_overlapping_stores_branches( +; CHECK-SAME: ptr nocapture initializes((4, 8)) [[P:%.*]], i1 [[I:%.*]]) #[[ATTR3:[0-9]+]] { +; CHECK-NEXT: entry: +; CHECK-NEXT: [[A:%.*]] = load i32, ptr [[P]] +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 4 +; CHECK-NEXT: br i1 [[I]], label [[BB1:%.*]], label [[BB2:%.*]] +; CHECK: bb1: +; CHECK-NEXT: store i64 123, ptr [[G]], align 4 +; CHECK-NEXT: br label [[END:%.*]] +; CHECK: bb2: +; CHECK-NEXT: store i64 321, ptr [[P]], align 4 +; CHECK-NEXT: br label [[END]] +; CHECK: end: +; CHECK-NEXT: ret void +; +entry: + %a = load i32, ptr %p + %g = getelementptr i8, ptr %p, i64 4 + br i1 %i, label %bb1, label %bb2 +bb1: + store i64 123, ptr %g + br label %end +bb2: + store i64 321, ptr %p + br label %end +end: + ret void +} + +define void @non_overlapping_stores_branches(ptr %p, i1 %i) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @non_overlapping_stores_branches( +; CHECK-SAME: ptr nocapture writeonly [[P:%.*]], i1 [[I:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: entry: +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 8 +; CHECK-NEXT: br i1 [[I]], label [[BB1:%.*]], label [[BB2:%.*]] +; CHECK: bb1: +; CHECK-NEXT: store i64 123, ptr [[G]], align 4 +; CHECK-NEXT: br label [[END:%.*]] +; CHECK: bb2: +; CHECK-NEXT: store i64 321, ptr [[P]], align 4 +; CHECK-NEXT: br label [[END]] +; CHECK: end: +; CHECK-NEXT: ret void +; +entry: + %g = getelementptr i8, ptr %p, i64 8 + br i1 %i, label %bb1, label %bb2 +bb1: + store i64 123, ptr %g + br label %end +bb2: + store i64 321, ptr %p + br label %end +end: + ret void +} + +define void @dominating_store(ptr %p, i1 %i) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @dominating_store( +; CHECK-SAME: ptr nocapture writeonly initializes((0, 8)) [[P:%.*]], i1 [[I:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: entry: +; CHECK-NEXT: br i1 [[I]], label [[BB1:%.*]], label [[BB2:%.*]] +; CHECK: bb1: +; CHECK-NEXT: br label [[END:%.*]] +; CHECK: bb2: +; CHECK-NEXT: br label [[END]] +; CHECK: end: +; CHECK-NEXT: store i64 321, ptr [[P]], align 4 +; CHECK-NEXT: ret void +; +entry: + br i1 %i, label %bb1, label %bb2 +bb1: + br label %end +bb2: + br label %end +end: + store i64 321, ptr %p + ret void +} + +define void @call_clobber_on_one_branch(ptr %p, i1 %i) { +; CHECK-LABEL: define void @call_clobber_on_one_branch( +; CHECK-SAME: ptr [[P:%.*]], i1 [[I:%.*]]) { +; CHECK-NEXT: entry: +; CHECK-NEXT: br i1 [[I]], label [[BB1:%.*]], label [[BB2:%.*]] +; CHECK: bb1: +; CHECK-NEXT: br label [[END:%.*]] +; CHECK: bb2: +; CHECK-NEXT: call void @use(ptr [[P]]) +; CHECK-NEXT: br label [[END]] +; CHECK: end: +; CHECK-NEXT: store i64 321, ptr [[P]], align 4 +; CHECK-NEXT: ret void +; +entry: + br i1 %i, label %bb1, label %bb2 +bb1: + br label %end +bb2: + call void @use(ptr %p) + br label %end +end: + store i64 321, ptr %p + ret void +} + +define void @merge_existing_initializes(ptr initializes((33, 36)) %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @merge_existing_initializes( +; CHECK-SAME: ptr nocapture writeonly initializes((0, 8), (33, 36)) [[P:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: store i64 123, ptr [[P]], align 4 +; CHECK-NEXT: ret void +; + store i64 123, ptr %p + ret void +} + +define void @negative_offset(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @negative_offset( +; CHECK-SAME: ptr nocapture writeonly initializes((-5, 3)) [[P:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 -5 +; CHECK-NEXT: store i64 123, ptr [[G]], align 4 +; CHECK-NEXT: ret void +; + %g = getelementptr i8, ptr %p, i64 -5 + store i64 123, ptr %g + ret void +} + +define void @non_const_gep(ptr %p, i64 %i) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @non_const_gep( +; CHECK-SAME: ptr nocapture writeonly initializes((0, 8)) [[P:%.*]], i64 [[I:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 [[I]] +; CHECK-NEXT: store i64 123, ptr [[G]], align 4 +; CHECK-NEXT: store i64 123, ptr [[P]], align 4 +; CHECK-NEXT: ret void +; + %g = getelementptr i8, ptr %p, i64 %i + store i64 123, ptr %g + store i64 123, ptr %p + ret void +} + +define void @call_clobber_in_entry_block(ptr %p, i1 %i) { +; CHECK-LABEL: define void @call_clobber_in_entry_block( +; CHECK-SAME: ptr [[P:%.*]], i1 [[I:%.*]]) { +; CHECK-NEXT: entry: +; CHECK-NEXT: call void @use(ptr [[P]]) +; CHECK-NEXT: br i1 [[I]], label [[BB1:%.*]], label [[BB2:%.*]] +; CHECK: bb1: +; CHECK-NEXT: store i64 123, ptr [[P]], align 4 +; CHECK-NEXT: br label [[END:%.*]] +; CHECK: bb2: +; CHECK-NEXT: store i64 321, ptr [[P]], align 4 +; CHECK-NEXT: br label [[END]] +; CHECK: end: +; CHECK-NEXT: ret void +; +entry: + call void @use(ptr %p) + br i1 %i, label %bb1, label %bb2 +bb1: + store i64 123, ptr %p + br label %end +bb2: + store i64 321, ptr %p + br label %end +end: + ret void +} + +declare void @g1(ptr initializes((0, 4)) %p) +declare void @g2(ptr initializes((8, 12)) %p) +declare void @g3(ptr initializes((0, 4)) writeonly nocapture %p) + +define void @call_initializes(ptr %p) { +; CHECK-LABEL: define void @call_initializes( +; CHECK-SAME: ptr initializes((0, 4)) [[P:%.*]]) { +; CHECK-NEXT: call void @g1(ptr [[P]]) +; CHECK-NEXT: ret void +; + call void @g1(ptr %p) + ret void +} + +define void @call_initializes_clobber(ptr %p) { +; CHECK-LABEL: define void @call_initializes_clobber( +; CHECK-SAME: ptr initializes((0, 4)) [[P:%.*]]) { +; CHECK-NEXT: call void @g1(ptr [[P]]) +; CHECK-NEXT: call void @g2(ptr [[P]]) +; CHECK-NEXT: ret void +; + call void @g1(ptr %p) + call void @g2(ptr %p) + ret void +} + +define void @call_initializes_no_clobber_writeonly_nocapture(ptr %p) { +; CHECK-LABEL: define void @call_initializes_no_clobber_writeonly_nocapture( +; CHECK-SAME: ptr initializes((0, 4), (8, 12)) [[P:%.*]]) { +; CHECK-NEXT: call void @g3(ptr [[P]]) +; CHECK-NEXT: call void @g2(ptr [[P]]) +; CHECK-NEXT: ret void +; + call void @g3(ptr %p) + call void @g2(ptr %p) + ret void +} + +define void @call_initializes_escape_bundle(ptr %p) { +; CHECK-LABEL: define void @call_initializes_escape_bundle( +; CHECK-SAME: ptr [[P:%.*]]) { +; CHECK-NEXT: call void @g1(ptr [[P]]) [ "unknown"(ptr [[P]]) ] +; CHECK-NEXT: ret void +; + call void @g1(ptr %p) ["unknown"(ptr %p)] + ret void +} + +define void @access_bundle() { + %sink = alloca i64, align 8 + store i64 123, ptr %sink + ret void +} + +define void @call_operand_bundle(ptr %p) { +; CHECK-LABEL: define void @call_operand_bundle( +; CHECK-SAME: ptr [[P:%.*]]) #[[ATTR4:[0-9]+]] { +; CHECK-NEXT: call void @access_bundle() [ "unknown"(ptr [[P]]) ] +; CHECK-NEXT: ret void +; + call void @access_bundle() ["unknown"(ptr %p)] + ret void +} + +declare void @llvm.memset(ptr, i8, i64 ,i1) + +define void @memset(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @memset( +; CHECK-SAME: ptr nocapture writeonly initializes((0, 9)) [[P:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr [[P]], i8 2, i64 9, i1 false) +; CHECK-NEXT: ret void +; + call void @llvm.memset(ptr %p, i8 2, i64 9, i1 false) + ret void +} + +define void @memset_offset(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @memset_offset( +; CHECK-SAME: ptr nocapture writeonly initializes((3, 12)) [[P:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 3 +; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr [[G]], i8 2, i64 9, i1 false) +; CHECK-NEXT: ret void +; + %g = getelementptr i8, ptr %p, i64 3 + call void @llvm.memset(ptr %g, i8 2, i64 9, i1 false) + ret void +} + +define void @memset_volatile(ptr %p) { +; CHECK: Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @memset_volatile( +; CHECK-SAME: ptr writeonly [[P:%.*]]) #[[ATTR3:[0-9]+]] { +; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr [[P]], i8 2, i64 9, i1 true) +; CHECK-NEXT: ret void +; + call void @llvm.memset(ptr %p, i8 2, i64 9, i1 true) + ret void +} + +define void @memset_non_constant(ptr %p, i64 %i) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) +; CHECK-LABEL: define void @memset_non_constant( +; CHECK-SAME: ptr nocapture writeonly [[P:%.*]], i64 [[I:%.*]]) #[[ATTR0]] { +; CHECK-NEXT: call void @llvm.memset.p0.i64(ptr [[P]], i8 2, i64 [[I]], i1 false) +; CHECK-NEXT: ret void +; + call void @llvm.memset(ptr %p, i8 2, i64 %i, i1 false) + ret void +} + +declare void @llvm.memcpy(ptr, ptr, i64 ,i1) + +define void @memcpy(ptr %p, ptr %p2) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memcpy( +; CHECK-SAME: ptr nocapture writeonly initializes((0, 9)) [[P:%.*]], ptr nocapture readonly [[P2:%.*]]) #[[ATTR1]] { +; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr [[P]], ptr [[P2]], i64 9, i1 false) +; CHECK-NEXT: ret void +; + call void @llvm.memcpy(ptr %p, ptr %p2, i64 9, i1 false) + ret void +} + +define void @memcpy_volatile(ptr %p, ptr %p2) { +; CHECK: Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memcpy_volatile( +; CHECK-SAME: ptr writeonly [[P:%.*]], ptr readonly [[P2:%.*]]) #[[ATTR4:[0-9]+]] { +; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr [[P]], ptr [[P2]], i64 9, i1 true) +; CHECK-NEXT: ret void +; + call void @llvm.memcpy(ptr %p, ptr %p2, i64 9, i1 true) + ret void +} + +define void @memcpy_offset(ptr %p, ptr %p2) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memcpy_offset( +; CHECK-SAME: ptr nocapture writeonly initializes((3, 12)) [[P:%.*]], ptr nocapture readonly [[P2:%.*]]) #[[ATTR1]] { +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 3 +; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr [[G]], ptr [[P2]], i64 9, i1 false) +; CHECK-NEXT: ret void +; + %g = getelementptr i8, ptr %p, i64 3 + call void @llvm.memcpy(ptr %g, ptr %p2, i64 9, i1 false) + ret void +} + +define void @memcpy_src(ptr %p, ptr %p2) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memcpy_src( +; CHECK-SAME: ptr nocapture initializes((96, 128)) [[P:%.*]], ptr nocapture initializes((0, 96)) [[P2:%.*]]) #[[ATTR1]] { +; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr [[P2]], ptr [[P]], i64 96, i1 false) +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 64 +; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr [[G]], ptr [[P2]], i64 64, i1 false) +; CHECK-NEXT: ret void +; + call void @llvm.memcpy(ptr %p2, ptr %p, i64 96, i1 false) + %g = getelementptr i8, ptr %p, i64 64 + call void @llvm.memcpy(ptr %g, ptr %p2, i64 64, i1 false) + ret void +} + +define void @memcpy_non_constant(ptr %p, ptr %p2, i64 %i) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memcpy_non_constant( +; CHECK-SAME: ptr nocapture writeonly [[P:%.*]], ptr nocapture readonly [[P2:%.*]], i64 [[I:%.*]]) #[[ATTR1]] { +; CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64(ptr [[P]], ptr [[P2]], i64 [[I]], i1 false) +; CHECK-NEXT: ret void +; + call void @llvm.memcpy(ptr %p, ptr %p2, i64 %i, i1 false) + ret void +} + +declare void @llvm.memmove(ptr, ptr, i64 ,i1) + +define void @memmove(ptr %p, ptr %p2) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memmove( +; CHECK-SAME: ptr nocapture writeonly initializes((0, 9)) [[P:%.*]], ptr nocapture readonly [[P2:%.*]]) #[[ATTR1]] { +; CHECK-NEXT: call void @llvm.memmove.p0.p0.i64(ptr [[P]], ptr [[P2]], i64 9, i1 false) +; CHECK-NEXT: ret void +; + call void @llvm.memmove(ptr %p, ptr %p2, i64 9, i1 false) + ret void +} + +define void @memmove_volatile(ptr %p, ptr %p2) { +; CHECK: Function Attrs: mustprogress nofree norecurse nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memmove_volatile( +; CHECK-SAME: ptr writeonly [[P:%.*]], ptr readonly [[P2:%.*]]) #[[ATTR4:[0-9]+]] { +; CHECK-NEXT: call void @llvm.memmove.p0.p0.i64(ptr [[P]], ptr [[P2]], i64 9, i1 true) +; CHECK-NEXT: ret void +; + call void @llvm.memmove(ptr %p, ptr %p2, i64 9, i1 true) + ret void +} + +define void @memmove_offset(ptr %p, ptr %p2) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memmove_offset( +; CHECK-SAME: ptr nocapture writeonly initializes((3, 12)) [[P:%.*]], ptr nocapture readonly [[P2:%.*]]) #[[ATTR1]] { +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 3 +; CHECK-NEXT: call void @llvm.memmove.p0.p0.i64(ptr [[G]], ptr [[P2]], i64 9, i1 false) +; CHECK-NEXT: ret void +; + %g = getelementptr i8, ptr %p, i64 3 + call void @llvm.memmove(ptr %g, ptr %p2, i64 9, i1 false) + ret void +} + +define void @memmove_src(ptr %p, ptr %p2) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memmove_src( +; CHECK-SAME: ptr nocapture initializes((96, 128)) [[P:%.*]], ptr nocapture initializes((0, 96)) [[P2:%.*]]) #[[ATTR1]] { +; CHECK-NEXT: call void @llvm.memmove.p0.p0.i64(ptr [[P2]], ptr [[P]], i64 96, i1 false) +; CHECK-NEXT: [[G:%.*]] = getelementptr i8, ptr [[P]], i64 64 +; CHECK-NEXT: call void @llvm.memmove.p0.p0.i64(ptr [[G]], ptr [[P2]], i64 64, i1 false) +; CHECK-NEXT: ret void +; + call void @llvm.memmove(ptr %p2, ptr %p, i64 96, i1 false) + %g = getelementptr i8, ptr %p, i64 64 + call void @llvm.memmove(ptr %g, ptr %p2, i64 64, i1 false) + ret void +} + +define void @memmove_non_constant(ptr %p, ptr %p2, i64 %i) { +; CHECK: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) +; CHECK-LABEL: define void @memmove_non_constant( +; CHECK-SAME: ptr nocapture writeonly [[P:%.*]], ptr nocapture readonly [[P2:%.*]], i64 [[I:%.*]]) #[[ATTR1]] { +; CHECK-NEXT: call void @llvm.memmove.p0.p0.i64(ptr [[P]], ptr [[P2]], i64 [[I]], i1 false) +; CHECK-NEXT: ret void +; + call void @llvm.memmove(ptr %p, ptr %p2, i64 %i, i1 false) + ret void +} diff --git a/llvm/test/Transforms/FunctionAttrs/readattrs.ll b/llvm/test/Transforms/FunctionAttrs/readattrs.ll index 39513976f90d7..004c0485d764a 100644 --- a/llvm/test/Transforms/FunctionAttrs/readattrs.ll +++ b/llvm/test/Transforms/FunctionAttrs/readattrs.ll @@ -107,7 +107,7 @@ define void @test4_2(ptr %p) { define void @test5(ptr %p, ptr %q) { ; FNATTRS: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) ; FNATTRS-LABEL: define {{[^@]+}}@test5 -; FNATTRS-SAME: (ptr nocapture writeonly [[P:%.*]], ptr [[Q:%.*]]) #[[ATTR4:[0-9]+]] { +; FNATTRS-SAME: (ptr nocapture writeonly initializes((0, 8)) [[P:%.*]], ptr [[Q:%.*]]) #[[ATTR4:[0-9]+]] { ; FNATTRS-NEXT: store ptr [[Q]], ptr [[P]], align 8 ; FNATTRS-NEXT: ret void ; @@ -132,7 +132,7 @@ declare void @test6_1() ; This is not a missed optz'n. define void @test6_2(ptr %p, ptr %q) { ; FNATTRS-LABEL: define {{[^@]+}}@test6_2 -; FNATTRS-SAME: (ptr nocapture writeonly [[P:%.*]], ptr [[Q:%.*]]) { +; FNATTRS-SAME: (ptr nocapture writeonly initializes((0, 8)) [[P:%.*]], ptr [[Q:%.*]]) { ; FNATTRS-NEXT: store ptr [[Q]], ptr [[P]], align 8 ; FNATTRS-NEXT: call void @test6_1() ; FNATTRS-NEXT: ret void diff --git a/llvm/test/Transforms/FunctionAttrs/writeonly.ll b/llvm/test/Transforms/FunctionAttrs/writeonly.ll index de2d5e2238947..ba546aff6e621 100644 --- a/llvm/test/Transforms/FunctionAttrs/writeonly.ll +++ b/llvm/test/Transforms/FunctionAttrs/writeonly.ll @@ -66,7 +66,7 @@ nouses-argworn-funwo_entry: define void @test_store(ptr %p) { ; FNATTRS: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) ; FNATTRS-LABEL: define {{[^@]+}}@test_store -; FNATTRS-SAME: (ptr nocapture writeonly [[P:%.*]]) #[[ATTR3:[0-9]+]] { +; FNATTRS-SAME: (ptr nocapture writeonly initializes((0, 1)) [[P:%.*]]) #[[ATTR3:[0-9]+]] { ; FNATTRS-NEXT: store i8 0, ptr [[P]], align 1 ; FNATTRS-NEXT: ret void ; @@ -107,7 +107,7 @@ define i8 @test_store_capture(ptr %p) { define void @test_addressing(ptr %p) { ; FNATTRS: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) ; FNATTRS-LABEL: define {{[^@]+}}@test_addressing -; FNATTRS-SAME: (ptr nocapture writeonly [[P:%.*]]) #[[ATTR3]] { +; FNATTRS-SAME: (ptr nocapture writeonly initializes((8, 12)) [[P:%.*]]) #[[ATTR3]] { ; FNATTRS-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[P]], i64 8 ; FNATTRS-NEXT: store i32 0, ptr [[GEP]], align 4 ; FNATTRS-NEXT: ret void diff --git a/llvm/test/Transforms/FunctionImport/module-flags.ll b/llvm/test/Transforms/FunctionImport/module-flags.ll index 662df3065b30f..2fc2b8ea97275 100644 --- a/llvm/test/Transforms/FunctionImport/module-flags.ll +++ b/llvm/test/Transforms/FunctionImport/module-flags.ll @@ -4,7 +4,7 @@ ; RUN: llvm-lto -thinlto -o 3 1.bc 2.bc ; RUN: opt -S -passes=function-import -summary-file 3.thinlto.bc 1.bc 2>&1 | FileCheck %s -; CHECK: Function Import: link error: linking module flags 'Error': IDs have conflicting values in '2.bc' and '1.bc' +; CHECK: Function Import: link error: linking module flags 'Error': IDs have conflicting values: 'i32 1' from 2.bc, and 'i32 0' from 1.bc ;--- 1.ll target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" diff --git a/llvm/test/Transforms/GVN/PRE/rle.ll b/llvm/test/Transforms/GVN/PRE/rle.ll index fd4a9a081eab3..c81c1fe1c982f 100644 --- a/llvm/test/Transforms/GVN/PRE/rle.ll +++ b/llvm/test/Transforms/GVN/PRE/rle.ll @@ -673,15 +673,15 @@ define i8 @phi_trans4(ptr %p) { ; CHECK-NEXT: [[X3:%.*]] = getelementptr i8, ptr [[P:%.*]], i32 192 ; CHECK-NEXT: store i8 -64, ptr [[X3]], align 1 ; CHECK-NEXT: [[X:%.*]] = getelementptr i8, ptr [[P]], i32 4 -; CHECK-NEXT: [[Y:%.*]] = load i8, ptr [[X]], align 1 +; CHECK-NEXT: [[Y2_PRE:%.*]] = load i8, ptr [[X]], align 1 ; CHECK-NEXT: br label [[LOOP:%.*]] ; CHECK: loop: -; CHECK-NEXT: [[Y2:%.*]] = phi i8 [ [[Y]], [[ENTRY:%.*]] ], [ 0, [[LOOP]] ] +; CHECK-NEXT: [[Y2:%.*]] = phi i8 [ [[Y2_PRE]], [[ENTRY:%.*]] ], [ 0, [[LOOP]] ] ; CHECK-NEXT: [[COND:%.*]] = call i1 @cond2() ; CHECK-NEXT: store i32 0, ptr [[X3]], align 4 ; CHECK-NEXT: br i1 [[COND]], label [[LOOP]], label [[OUT:%.*]] ; CHECK: out: -; CHECK-NEXT: [[R:%.*]] = add i8 [[Y]], [[Y2]] +; CHECK-NEXT: [[R:%.*]] = add i8 [[Y2_PRE]], [[Y2]] ; CHECK-NEXT: ret i8 [[R]] ; entry: @@ -772,7 +772,7 @@ define i32 @phi_trans6(ptr noalias nocapture readonly %x, i1 %cond) { ; CHECK-NEXT: call void @use_i32(i32 [[L0]]) ; CHECK-NEXT: br label [[HEADER:%.*]] ; CHECK: header: -; CHECK-NEXT: [[L1:%.*]] = phi i32 [ [[L0]], [[ENTRY:%.*]] ], [ [[L1_PRE:%.*]], [[LATCH_HEADER_CRIT_EDGE:%.*]] ] +; CHECK-NEXT: [[L1_PRE:%.*]] = phi i32 [ [[L0]], [[ENTRY:%.*]] ], [ [[L1_PRE1:%.*]], [[LATCH_HEADER_CRIT_EDGE:%.*]] ] ; CHECK-NEXT: [[IV:%.*]] = phi i32 [ 0, [[ENTRY]] ], [ [[IV_NEXT:%.*]], [[LATCH_HEADER_CRIT_EDGE]] ] ; CHECK-NEXT: indirectbr ptr blockaddress(@phi_trans6, [[LATCH:%.*]]), [label %latch] ; CHECK: latch: @@ -780,10 +780,10 @@ define i32 @phi_trans6(ptr noalias nocapture readonly %x, i1 %cond) { ; CHECK-NEXT: br i1 [[COND:%.*]], label [[EXIT:%.*]], label [[LATCH_HEADER_CRIT_EDGE]] ; CHECK: latch.header_crit_edge: ; CHECK-NEXT: [[GEP_1_PHI_TRANS_INSERT_PHI_TRANS_INSERT:%.*]] = getelementptr i32, ptr [[X]], i32 [[IV_NEXT]] -; CHECK-NEXT: [[L1_PRE]] = load i32, ptr [[GEP_1_PHI_TRANS_INSERT_PHI_TRANS_INSERT]], align 4 +; CHECK-NEXT: [[L1_PRE1]] = load i32, ptr [[GEP_1_PHI_TRANS_INSERT_PHI_TRANS_INSERT]], align 4 ; CHECK-NEXT: br label [[HEADER]] ; CHECK: exit: -; CHECK-NEXT: ret i32 [[L1]] +; CHECK-NEXT: ret i32 [[L1_PRE]] ; entry: %l0 = load i32, ptr %x @@ -1057,7 +1057,7 @@ define void @load_load_partial_alias_loop(ptr %P) { ; LE-NEXT: [[TMP0:%.*]] = trunc i32 [[V_1_32]] to i8 ; LE-NEXT: br label [[LOOP:%.*]] ; LE: loop: -; LE-NEXT: [[V_I:%.*]] = phi i8 [ [[TMP0]], [[ENTRY:%.*]] ], [ [[V_I_PRE:%.*]], [[LOOP_LOOP_CRIT_EDGE:%.*]] ] +; LE-NEXT: [[V_I:%.*]] = phi i8 [ [[TMP0]], [[ENTRY:%.*]] ], [ [[TMP2:%.*]], [[LOOP_LOOP_CRIT_EDGE:%.*]] ] ; LE-NEXT: [[I:%.*]] = phi i64 [ 1, [[ENTRY]] ], [ [[I_INC:%.*]], [[LOOP_LOOP_CRIT_EDGE]] ] ; LE-NEXT: [[P_I:%.*]] = getelementptr i8, ptr [[P]], i64 [[I]] ; LE-NEXT: call void @use.i8(i8 [[V_I]]) @@ -1065,10 +1065,10 @@ define void @load_load_partial_alias_loop(ptr %P) { ; LE-NEXT: call void @use.i32(i32 [[V_I_32]]) ; LE-NEXT: [[I_INC]] = add i64 [[I]], 1 ; LE-NEXT: [[CMP:%.*]] = icmp ne i64 [[I_INC]], 64 +; LE-NEXT: [[TMP1:%.*]] = lshr i32 [[V_I_32]], 8 +; LE-NEXT: [[TMP2]] = trunc i32 [[TMP1]] to i8 ; LE-NEXT: br i1 [[CMP]], label [[LOOP_LOOP_CRIT_EDGE]], label [[EXIT:%.*]] ; LE: loop.loop_crit_edge: -; LE-NEXT: [[P_I_PHI_TRANS_INSERT:%.*]] = getelementptr i8, ptr [[P]], i64 [[I_INC]] -; LE-NEXT: [[V_I_PRE]] = load i8, ptr [[P_I_PHI_TRANS_INSERT]], align 1 ; LE-NEXT: br label [[LOOP]] ; LE: exit: ; LE-NEXT: ret void @@ -1084,7 +1084,7 @@ define void @load_load_partial_alias_loop(ptr %P) { ; BE-NEXT: [[TMP1:%.*]] = trunc i32 [[TMP0]] to i8 ; BE-NEXT: br label [[LOOP:%.*]] ; BE: loop: -; BE-NEXT: [[V_I:%.*]] = phi i8 [ [[TMP1]], [[ENTRY:%.*]] ], [ [[V_I_PRE:%.*]], [[LOOP_LOOP_CRIT_EDGE:%.*]] ] +; BE-NEXT: [[V_I:%.*]] = phi i8 [ [[TMP1]], [[ENTRY:%.*]] ], [ [[TMP3:%.*]], [[LOOP_LOOP_CRIT_EDGE:%.*]] ] ; BE-NEXT: [[I:%.*]] = phi i64 [ 1, [[ENTRY]] ], [ [[I_INC:%.*]], [[LOOP_LOOP_CRIT_EDGE]] ] ; BE-NEXT: [[P_I:%.*]] = getelementptr i8, ptr [[P]], i64 [[I]] ; BE-NEXT: call void @use.i8(i8 [[V_I]]) @@ -1092,10 +1092,10 @@ define void @load_load_partial_alias_loop(ptr %P) { ; BE-NEXT: call void @use.i32(i32 [[V_I_32]]) ; BE-NEXT: [[I_INC]] = add i64 [[I]], 1 ; BE-NEXT: [[CMP:%.*]] = icmp ne i64 [[I_INC]], 64 +; BE-NEXT: [[TMP2:%.*]] = lshr i32 [[V_I_32]], 16 +; BE-NEXT: [[TMP3]] = trunc i32 [[TMP2]] to i8 ; BE-NEXT: br i1 [[CMP]], label [[LOOP_LOOP_CRIT_EDGE]], label [[EXIT:%.*]] ; BE: loop.loop_crit_edge: -; BE-NEXT: [[P_I_PHI_TRANS_INSERT:%.*]] = getelementptr i8, ptr [[P]], i64 [[I_INC]] -; BE-NEXT: [[V_I_PRE]] = load i8, ptr [[P_I_PHI_TRANS_INSERT]], align 1 ; BE-NEXT: br label [[LOOP]] ; BE: exit: ; BE-NEXT: ret void diff --git a/llvm/test/Transforms/IndVarSimplify/pr116483.ll b/llvm/test/Transforms/IndVarSimplify/pr116483.ll new file mode 100644 index 0000000000000..ae108a525223e --- /dev/null +++ b/llvm/test/Transforms/IndVarSimplify/pr116483.ll @@ -0,0 +1,36 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 +; RUN: opt -S -passes=indvars < %s | FileCheck %s + +define i32 @test() { +; CHECK-LABEL: define i32 @test() { +; CHECK-NEXT: [[ENTRY:.*:]] +; CHECK-NEXT: [[XOR:%.*]] = xor i32 0, 3 +; CHECK-NEXT: [[MUL:%.*]] = mul i32 [[XOR]], 329 +; CHECK-NEXT: [[CONV:%.*]] = trunc i32 [[MUL]] to i16 +; CHECK-NEXT: [[SEXT:%.*]] = shl i16 [[CONV]], 8 +; CHECK-NEXT: [[CONV1:%.*]] = ashr i16 [[SEXT]], 8 +; CHECK-NEXT: br label %[[LOOP_BODY:.*]] +; CHECK: [[LOOP_BODY]]: +; CHECK-NEXT: br i1 true, label %[[EXIT:.*]], label %[[LOOP_BODY]] +; CHECK: [[EXIT]]: +; CHECK-NEXT: [[CONV3:%.*]] = zext i16 [[CONV1]] to i32 +; CHECK-NEXT: ret i32 [[CONV3]] +; +entry: + %xor = xor i32 0, 3 + %mul = mul i32 %xor, 329 + %conv = trunc i32 %mul to i16 + %sext = shl i16 %conv, 8 + %conv1 = ashr i16 %sext, 8 + %conv3 = zext i16 %conv1 to i32 + br label %loop.body + +loop.body: + %indvar = phi i32 [ %indvar.inc, %loop.body ], [ 1, %entry ] + %indvar.inc = add nuw i32 %indvar, 1 + %exitcond = icmp eq i32 %indvar, %conv3 + br i1 %exitcond, label %exit, label %loop.body + +exit: + ret i32 %conv3 +} diff --git a/llvm/test/Transforms/Inline/LoongArch/inline-target-features.ll b/llvm/test/Transforms/Inline/LoongArch/inline-target-features.ll new file mode 100644 index 0000000000000..f7a37015e07fc --- /dev/null +++ b/llvm/test/Transforms/Inline/LoongArch/inline-target-features.ll @@ -0,0 +1,34 @@ +; RUN: opt < %s -mtriple=loongarch64-unknown-linux-gnu -S -passes=inline | FileCheck %s +; RUN: opt < %s -mtriple=loongarch64-unknown-linux-gnu -S -passes='cgscc(inline)' | FileCheck %s +; Check that we only inline when we have compatible target attributes. + +target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128" +target triple = "loongarch64-unknown-linux-gnu" + +define i32 @foo() #0 { +entry: + %call = call i32 (...) @baz() + ret i32 %call +; CHECK-LABEL: foo +; CHECK: call i32 (...) @baz() +} +declare i32 @baz(...) #0 + +define i32 @bar() #1 { +entry: + %call = call i32 @foo() + ret i32 %call +; CHECK-LABEL: bar +; CHECK: call i32 (...) @baz() +} + +define i32 @qux() #0 { +entry: + %call = call i32 @bar() + ret i32 %call +; CHECK-LABEL: qux +; CHECK: call i32 @bar() +} + +attributes #0 = { "target-cpu"="generic-la64" "target-features"="+f,+d" } +attributes #1 = { "target-cpu"="generic-la64" "target-features"="+f,+d,+lsx,+lasx" } diff --git a/llvm/test/Transforms/Inline/LoongArch/lit.local.cfg b/llvm/test/Transforms/Inline/LoongArch/lit.local.cfg new file mode 100644 index 0000000000000..cc24278acbb41 --- /dev/null +++ b/llvm/test/Transforms/Inline/LoongArch/lit.local.cfg @@ -0,0 +1,2 @@ +if not "LoongArch" in config.root.targets: + config.unsupported = True diff --git a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-abs-srshl.ll b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-abs-srshl.ll index d6434ad2b4700..98f6bf76e2edf 100644 --- a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-abs-srshl.ll +++ b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-abs-srshl.ll @@ -6,7 +6,7 @@ target triple = "aarch64-unknown-linux-gnu" define @srshl_abs_undef_merge( %a, %pg, %pg2) #0 { ; CHECK-LABEL: @srshl_abs_undef_merge( ; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( undef, [[PG:%.*]], [[A:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[TMP1]] ; %abs = tail call @llvm.aarch64.sve.abs.nxv8i16( undef, %pg, %a) @@ -18,7 +18,7 @@ define @srshl_abs_undef_merge( %a, @srshl_abs_zero_merge( %a, %pg, %pg2) #0 { ; CHECK-LABEL: @srshl_abs_zero_merge( ; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( zeroinitializer, [[PG:%.*]], [[A:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[TMP1]] ; %abs = tail call @llvm.aarch64.sve.abs.nxv8i16( zeroinitializer, %pg, %a) @@ -29,8 +29,8 @@ define @srshl_abs_zero_merge( %a, @srshl_abs_positive_merge( %a, %pg, %pg2) #0 { ; CHECK-LABEL: @srshl_abs_positive_merge( -; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer), [[PG:%.*]], [[A:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( splat (i16 2), [[PG:%.*]], [[A:%.*]]) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[TMP1]] ; %absmerge = tail call @llvm.aarch64.sve.dup.x.nxv8i16(i16 2) @@ -44,7 +44,7 @@ define @srshl_abs_all_active_pred( %a, @llvm.aarch64.sve.ptrue.nxv8i1(i32 31) ; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( [[B:%.*]], [[PG]], [[A:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[TMP1]] ; %pg = tail call @llvm.aarch64.sve.ptrue.nxv8i1(i32 31) @@ -57,7 +57,7 @@ define @srshl_abs_all_active_pred( %a, @srshl_abs_same_pred( %a, %b, %pg) #0 { ; CHECK-LABEL: @srshl_abs_same_pred( ; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( [[B:%.*]], [[PG:%.*]], [[A:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[TMP1]] ; %abs = tail call @llvm.aarch64.sve.abs.nxv8i16( %b, %pg, %a) @@ -69,7 +69,7 @@ define @srshl_abs_same_pred( %a, @srshl_sqabs( %a, %pg, %pg2) #0 { ; CHECK-LABEL: @srshl_sqabs( ; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.sqabs.nxv8i16( undef, [[PG:%.*]], [[A:%.*]]) -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.lsl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[TMP1]] ; %abs = tail call @llvm.aarch64.sve.sqabs.nxv8i16( undef, %pg, %a) @@ -80,8 +80,8 @@ define @srshl_sqabs( %a, define @srshl_abs_negative_merge( %a, %pg, %pg2) #0 { ; CHECK-LABEL: @srshl_abs_negative_merge( -; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( shufflevector ( insertelement ( poison, i16 -1, i64 0), poison, zeroinitializer), [[PG:%.*]], [[A:%.*]]) -; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( splat (i16 -1), [[PG:%.*]], [[A:%.*]]) +; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[SHR]] ; %absmerge = tail call @llvm.aarch64.sve.dup.x.nxv8i16(i16 -1) @@ -94,7 +94,7 @@ define @srshl_abs_negative_merge( %a, @srshl_abs_nonconst_merge( %a, %b, %pg, %pg2) #0 { ; CHECK-LABEL: @srshl_abs_nonconst_merge( ; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( [[B:%.*]], [[PG:%.*]], [[A:%.*]]) -; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[SHR]] ; %abs = tail call @llvm.aarch64.sve.abs.nxv8i16( %b, %pg, %a) @@ -107,7 +107,7 @@ define @srshl_abs_not_all_active_pred( %a, ; CHECK-LABEL: @srshl_abs_not_all_active_pred( ; CHECK-NEXT: [[PG:%.*]] = tail call @llvm.aarch64.sve.ptrue.nxv8i1(i32 8) ; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( [[B:%.*]], [[PG]], [[A:%.*]]) -; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[SHR]] ; %pg = tail call @llvm.aarch64.sve.ptrue.nxv8i1(i32 8) @@ -120,7 +120,7 @@ define @srshl_abs_not_all_active_pred( %a, define @srshl_abs_diff_pred( %a, %b, %pg, %pg2) #0 { ; CHECK-LABEL: @srshl_abs_diff_pred( ; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( [[B:%.*]], [[PG:%.*]], [[A:%.*]]) -; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 2)) ; CHECK-NEXT: ret [[SHR]] ; %abs = tail call @llvm.aarch64.sve.abs.nxv8i16( %b, %pg, %a) @@ -132,7 +132,7 @@ define @srshl_abs_diff_pred( %a, @srshl_abs_negative_shift( %a, %pg, %pg2) #0 { ; CHECK-LABEL: @srshl_abs_negative_shift( ; CHECK-NEXT: [[ABS:%.*]] = tail call @llvm.aarch64.sve.abs.nxv8i16( undef, [[PG:%.*]], [[A:%.*]]) -; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], shufflevector ( insertelement ( poison, i16 -2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[SHR:%.*]] = tail call @llvm.aarch64.sve.srshl.nxv8i16( [[PG2:%.*]], [[ABS]], splat (i16 -2)) ; CHECK-NEXT: ret [[SHR]] ; %abs = tail call @llvm.aarch64.sve.abs.nxv8i16( undef, %pg, %a) diff --git a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-fmul-idempotency.ll b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-fmul-idempotency.ll index 51b8816b8bc00..6f8d8f23e3ebe 100644 --- a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-fmul-idempotency.ll +++ b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-fmul-idempotency.ll @@ -37,7 +37,7 @@ define @idempotent_fmul_f64( %pg, @idempotent_fmul_different_argument_order( %pg, %a) #0 { ; CHECK-LABEL: define @idempotent_fmul_different_argument_order( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.nxv2f64( [[PG]], shufflevector ( insertelement ( poison, double 1.000000e+00, i64 0), poison, zeroinitializer), [[A]]) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.nxv2f64( [[PG]], splat (double 1.000000e+00), [[A]]) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv2f64(double 1.0) @@ -61,7 +61,7 @@ define @idempotent_fmul_two_dups( %pg, @idempotent_fmul_two_dups( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, half 0xH3C00, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (half 0xH3C00) ; %1 = call @llvm.aarch64.sve.dup.x.nxv8f16(half 1.0) %2 = call @llvm.aarch64.sve.dup.x.nxv8f16(half 1.0) @@ -73,7 +73,7 @@ define @idempotent_fmul_two_dups( %pg, @non_idempotent_fmul_f16( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_fmul_f16( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.nxv8f16( [[PG]], [[A]], shufflevector ( insertelement ( poison, half 0xH4000, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.nxv8f16( [[PG]], [[A]], splat (half 0xH4000)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv8f16(half 2.0) @@ -84,7 +84,7 @@ define @non_idempotent_fmul_f16( %pg, @non_idempotent_fmul_f32( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_fmul_f32( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.nxv4f32( [[PG]], [[A]], shufflevector ( insertelement ( poison, float 2.000000e+00, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.nxv4f32( [[PG]], [[A]], splat (float 2.000000e+00)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv4f32(float 2.0) @@ -95,7 +95,7 @@ define @non_idempotent_fmul_f32( %pg, @non_idempotent_fmul_f64( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_fmul_f64( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.nxv2f64( [[PG]], [[A]], shufflevector ( insertelement ( poison, double 2.000000e+00, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.nxv2f64( [[PG]], [[A]], splat (double 2.000000e+00)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv2f64(double 2.0) diff --git a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-fmul_u-idempotency.ll b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-fmul_u-idempotency.ll index 5ad0731fbb0e6..8278838abb424 100644 --- a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-fmul_u-idempotency.ll +++ b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-fmul_u-idempotency.ll @@ -37,7 +37,7 @@ define @idempotent_fmul_u_f64( %pg, @idempotent_fmul_u_different_argument_order( %pg, %a) #0 { ; CHECK-LABEL: define @idempotent_fmul_u_different_argument_order( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.u.nxv2f64( [[PG]], shufflevector ( insertelement ( poison, double 1.000000e+00, i64 0), poison, zeroinitializer), [[A]]) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.u.nxv2f64( [[PG]], splat (double 1.000000e+00), [[A]]) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv2f64(double 1.0) @@ -61,7 +61,7 @@ define @idempotent_fmul_u_two_dups( %pg, @idempotent_fmul_u_two_dups( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, half 0xH3C00, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (half 0xH3C00) ; %1 = call @llvm.aarch64.sve.dup.x.nxv8f16(half 1.0) %2 = call @llvm.aarch64.sve.dup.x.nxv8f16(half 1.0) @@ -73,7 +73,7 @@ define @idempotent_fmul_u_two_dups( %pg, @non_idempotent_fmul_u_f16( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_fmul_u_f16( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.u.nxv8f16( [[PG]], [[A]], shufflevector ( insertelement ( poison, half 0xH4000, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.u.nxv8f16( [[PG]], [[A]], splat (half 0xH4000)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv8f16(half 2.0) @@ -84,7 +84,7 @@ define @non_idempotent_fmul_u_f16( %pg, @non_idempotent_fmul_u_f32( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_fmul_u_f32( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.u.nxv4f32( [[PG]], [[A]], shufflevector ( insertelement ( poison, float 2.000000e+00, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.u.nxv4f32( [[PG]], [[A]], splat (float 2.000000e+00)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv4f32(float 2.0) @@ -95,7 +95,7 @@ define @non_idempotent_fmul_u_f32( %pg, @non_idempotent_fmul_u_f64( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_fmul_u_f64( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.u.nxv2f64( [[PG]], [[A]], shufflevector ( insertelement ( poison, double 2.000000e+00, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.fmul.u.nxv2f64( [[PG]], [[A]], splat (double 2.000000e+00)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv2f64(double 2.0) diff --git a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-insr.ll b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-insr.ll index e8489c5be85c4..979b83482583b 100644 --- a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-insr.ll +++ b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-insr.ll @@ -17,7 +17,7 @@ define @insr_val_into_splatted_val_int(i8 %a) #0 { define @insr_five_into_fives() #0 { ; CHECK-LABEL: @insr_five_into_fives( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i16 5, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i16 5) ; %t1 = tail call @llvm.aarch64.sve.insr.nxv8i16( splat (i16 5), i16 5) ret %t1 @@ -58,7 +58,7 @@ define @insr_val_into_splatted_other(i8 %a, i8 %b) #0 { define @insr_three_into_fives() #0 { ; CHECK-LABEL: @insr_three_into_fives( -; CHECK-NEXT: [[T1:%.*]] = tail call @llvm.aarch64.sve.insr.nxv8i16( shufflevector ( insertelement ( poison, i16 5, i64 0), poison, zeroinitializer), i16 3) +; CHECK-NEXT: [[T1:%.*]] = tail call @llvm.aarch64.sve.insr.nxv8i16( splat (i16 5), i16 3) ; CHECK-NEXT: ret [[T1]] ; %t1 = tail call @llvm.aarch64.sve.insr.nxv8i16( splat (i16 5), i16 3) diff --git a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mul-idempotency.ll b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mul-idempotency.ll index 83018200a521e..08079b7e3d169 100644 --- a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mul-idempotency.ll +++ b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mul-idempotency.ll @@ -37,7 +37,7 @@ define @idempotent_mul_i64( %pg, @idempotent_mul_different_argument_order( %pg, %a) #0 { ; CHECK-LABEL: define @idempotent_mul_different_argument_order( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.nxv2i64( [[PG]], shufflevector ( insertelement ( poison, i64 1, i64 0), poison, zeroinitializer), [[A]]) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.nxv2i64( [[PG]], splat (i64 1), [[A]]) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv2i64(i64 1) @@ -61,7 +61,7 @@ define @idempotent_mul_two_dups( %pg, @idempotent_mul_two_dups( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i16 1, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i16 1) ; %1 = call @llvm.aarch64.sve.dup.x.nxv8i16(i16 1) %2 = call @llvm.aarch64.sve.dup.x.nxv8i16(i16 1) @@ -73,7 +73,7 @@ define @idempotent_mul_two_dups( %pg, @non_idempotent_mul_i16( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_mul_i16( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.nxv8i16( [[PG]], [[A]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.nxv8i16( [[PG]], [[A]], splat (i16 2)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv8i16(i16 2) @@ -84,7 +84,7 @@ define @non_idempotent_mul_i16( %pg, @non_idempotent_mul_i32( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_mul_i32( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.nxv4i32( [[PG]], [[A]], shufflevector ( insertelement ( poison, i32 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.nxv4i32( [[PG]], [[A]], splat (i32 2)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv4i32(i32 2) @@ -95,7 +95,7 @@ define @non_idempotent_mul_i32( %pg, @non_idempotent_mul_i64( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_mul_i64( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.nxv2i64( [[PG]], [[A]], shufflevector ( insertelement ( poison, i64 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.nxv2i64( [[PG]], [[A]], splat (i64 2)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv2i64(i64 2) diff --git a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mul_u-idempotency.ll b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mul_u-idempotency.ll index 2e7475de0aa77..662b060218393 100644 --- a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mul_u-idempotency.ll +++ b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mul_u-idempotency.ll @@ -37,7 +37,7 @@ define @idempotent_mul_u_i64( %pg, @idempotent_mul_u_different_argument_order( %pg, %a) #0 { ; CHECK-LABEL: define @idempotent_mul_u_different_argument_order( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.u.nxv2i64( [[PG]], shufflevector ( insertelement ( poison, i64 1, i64 0), poison, zeroinitializer), [[A]]) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.u.nxv2i64( [[PG]], splat (i64 1), [[A]]) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv2i64(i64 1) @@ -61,7 +61,7 @@ define @idempotent_mul_u_two_dups( %pg, @idempotent_mul_u_two_dups( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i16 1, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i16 1) ; %1 = call @llvm.aarch64.sve.dup.x.nxv8i16(i16 1) %2 = call @llvm.aarch64.sve.dup.x.nxv8i16(i16 1) @@ -73,7 +73,7 @@ define @idempotent_mul_u_two_dups( %pg, @non_idempotent_mul_u_i16( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_mul_u_i16( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.u.nxv8i16( [[PG]], [[A]], shufflevector ( insertelement ( poison, i16 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.u.nxv8i16( [[PG]], [[A]], splat (i16 2)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv8i16(i16 2) @@ -84,7 +84,7 @@ define @non_idempotent_mul_u_i16( %pg, @non_idempotent_mul_u_i32( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_mul_u_i32( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.u.nxv4i32( [[PG]], [[A]], shufflevector ( insertelement ( poison, i32 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.u.nxv4i32( [[PG]], [[A]], splat (i32 2)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv4i32(i32 2) @@ -95,7 +95,7 @@ define @non_idempotent_mul_u_i32( %pg, @non_idempotent_mul_u_i64( %pg, %a) #0 { ; CHECK-LABEL: define @non_idempotent_mul_u_i64( ; CHECK-SAME: [[PG:%.*]], [[A:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.u.nxv2i64( [[PG]], [[A]], shufflevector ( insertelement ( poison, i64 2, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.mul.u.nxv2i64( [[PG]], [[A]], splat (i64 2)) ; CHECK-NEXT: ret [[TMP1]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv2i64(i64 2) diff --git a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-sdiv.ll b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-sdiv.ll index cc184b79691eb..5ddb97815e60a 100644 --- a/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-sdiv.ll +++ b/llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-sdiv.ll @@ -43,7 +43,7 @@ define @sdiv_i64_neg( %a, define @sdiv_i32_not_base2( %a, %pg) #0 { ; CHECK-LABEL: @sdiv_i32_not_base2( -; CHECK-NEXT: [[OUT:%.*]] = call @llvm.aarch64.sve.sdiv.nxv4i32( [[PG:%.*]], [[A:%.*]], shufflevector ( insertelement ( poison, i32 8388607, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[OUT:%.*]] = call @llvm.aarch64.sve.sdiv.nxv4i32( [[PG:%.*]], [[A:%.*]], splat (i32 8388607)) ; CHECK-NEXT: ret [[OUT]] ; %out = call @llvm.aarch64.sve.sdiv.nxv4i32( %pg, %a, splat (i32 8388607)) @@ -52,7 +52,7 @@ define @sdiv_i32_not_base2( %a, @sdiv_i32_not_base2_neg( %a, %pg) #0 { ; CHECK-LABEL: @sdiv_i32_not_base2_neg( -; CHECK-NEXT: [[OUT:%.*]] = call @llvm.aarch64.sve.sdiv.nxv4i32( [[PG:%.*]], [[A:%.*]], shufflevector ( insertelement ( poison, i32 -8388607, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[OUT:%.*]] = call @llvm.aarch64.sve.sdiv.nxv4i32( [[PG:%.*]], [[A:%.*]], splat (i32 -8388607)) ; CHECK-NEXT: ret [[OUT]] ; %out = call @llvm.aarch64.sve.sdiv.nxv4i32( %pg, %a, splat (i32 -8388607)) @@ -83,7 +83,7 @@ define @divide_by_1( %p, define @divide_by_m1( %p, %a) #0 { ; CHECK-LABEL: @divide_by_m1( ; CHECK-NEXT: [[TMP1:%.*]] = call @llvm.aarch64.sve.convert.from.svbool.nxv2i1( [[P:%.*]]) -; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.aarch64.sve.sdiv.nxv2i64( [[TMP1]], [[A:%.*]], shufflevector ( insertelement ( poison, i64 -1, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.aarch64.sve.sdiv.nxv2i64( [[TMP1]], [[A:%.*]], splat (i64 -1)) ; CHECK-NEXT: ret [[TMP2]] ; %1 = call @llvm.aarch64.sve.dup.x.nxv2i64(i64 -1) diff --git a/llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.wavefrontsize.ll b/llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.wavefrontsize.ll new file mode 100644 index 0000000000000..d9c105f753e26 --- /dev/null +++ b/llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.wavefrontsize.ll @@ -0,0 +1,114 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 +; RUN: opt -mtriple=amdgcn-- -passes=instcombine -S < %s | FileCheck -check-prefix=OPT %s +; RUN: opt -mtriple=amdgcn-- -mattr=+wavefrontsize32 -passes=instcombine -S < %s | FileCheck -check-prefix=OPT-W32 %s +; RUN: opt -mtriple=amdgcn-- -mattr=+wavefrontsize64 -passes=instcombine -S < %s | FileCheck -check-prefix=OPT-W64 %s +; RUN: opt -mtriple=amdgcn-- -mcpu=tonga -passes=instcombine -S < %s | FileCheck -check-prefix=OPT-W64 %s +; RUN: opt -mtriple=amdgcn-- -mcpu=gfx1010 -mattr=+wavefrontsize32 -passes=instcombine -S < %s | FileCheck -check-prefix=OPT-W32 %s +; RUN: opt -mtriple=amdgcn-- -mcpu=gfx1010 -mattr=+wavefrontsize64 -passes=instcombine -S < %s | FileCheck -check-prefix=OPT-W64 %s +; RUN: opt -mtriple=amdgcn-- -mcpu=gfx1100 -mattr=+wavefrontsize32 -passes=instcombine -S < %s | FileCheck -check-prefix=OPT-W32 %s +; RUN: opt -mtriple=amdgcn-- -mcpu=gfx1100 -mattr=+wavefrontsize64 -passes=instcombine -S < %s | FileCheck -check-prefix=OPT-W64 %s + +define amdgpu_kernel void @fold_wavefrontsize(ptr addrspace(1) nocapture %arg) { +; OPT-LABEL: define amdgpu_kernel void @fold_wavefrontsize( +; OPT-SAME: ptr addrspace(1) nocapture [[ARG:%.*]]) { +; OPT-NEXT: [[BB:.*:]] +; OPT-NEXT: [[TMP:%.*]] = tail call i32 @llvm.amdgcn.wavefrontsize() #[[ATTR1:[0-9]+]] +; OPT-NEXT: store i32 [[TMP]], ptr addrspace(1) [[ARG]], align 4 +; OPT-NEXT: ret void +; +; OPT-W32-LABEL: define amdgpu_kernel void @fold_wavefrontsize( +; OPT-W32-SAME: ptr addrspace(1) nocapture [[ARG:%.*]]) #[[ATTR0:[0-9]+]] { +; OPT-W32-NEXT: [[BB:.*:]] +; OPT-W32-NEXT: store i32 32, ptr addrspace(1) [[ARG]], align 4 +; OPT-W32-NEXT: ret void +; +; OPT-W64-LABEL: define amdgpu_kernel void @fold_wavefrontsize( +; OPT-W64-SAME: ptr addrspace(1) nocapture [[ARG:%.*]]) #[[ATTR0:[0-9]+]] { +; OPT-W64-NEXT: [[BB:.*:]] +; OPT-W64-NEXT: store i32 64, ptr addrspace(1) [[ARG]], align 4 +; OPT-W64-NEXT: ret void +; +bb: + %tmp = tail call i32 @llvm.amdgcn.wavefrontsize() #0 + store i32 %tmp, ptr addrspace(1) %arg, align 4 + ret void +} + +define amdgpu_kernel void @fold_and_optimize_wavefrontsize(ptr addrspace(1) nocapture %arg) { +; OPT-LABEL: define amdgpu_kernel void @fold_and_optimize_wavefrontsize( +; OPT-SAME: ptr addrspace(1) nocapture [[ARG:%.*]]) { +; OPT-NEXT: [[BB:.*:]] +; OPT-NEXT: [[TMP:%.*]] = tail call i32 @llvm.amdgcn.wavefrontsize() #[[ATTR1]] +; OPT-NEXT: [[TMP1:%.*]] = icmp ugt i32 [[TMP]], 32 +; OPT-NEXT: [[TMP2:%.*]] = select i1 [[TMP1]], i32 2, i32 1 +; OPT-NEXT: store i32 [[TMP2]], ptr addrspace(1) [[ARG]], align 4 +; OPT-NEXT: ret void +; +; OPT-W32-LABEL: define amdgpu_kernel void @fold_and_optimize_wavefrontsize( +; OPT-W32-SAME: ptr addrspace(1) nocapture [[ARG:%.*]]) #[[ATTR0]] { +; OPT-W32-NEXT: [[BB:.*:]] +; OPT-W32-NEXT: store i32 1, ptr addrspace(1) [[ARG]], align 4 +; OPT-W32-NEXT: ret void +; +; OPT-W64-LABEL: define amdgpu_kernel void @fold_and_optimize_wavefrontsize( +; OPT-W64-SAME: ptr addrspace(1) nocapture [[ARG:%.*]]) #[[ATTR0]] { +; OPT-W64-NEXT: [[BB:.*:]] +; OPT-W64-NEXT: store i32 2, ptr addrspace(1) [[ARG]], align 4 +; OPT-W64-NEXT: ret void +; +bb: + %tmp = tail call i32 @llvm.amdgcn.wavefrontsize() #0 + %tmp1 = icmp ugt i32 %tmp, 32 + %tmp2 = select i1 %tmp1, i32 2, i32 1 + store i32 %tmp2, ptr addrspace(1) %arg + ret void +} + +define amdgpu_kernel void @fold_and_optimize_if_wavefrontsize(ptr addrspace(1) nocapture %arg) { +; OPT-LABEL: define amdgpu_kernel void @fold_and_optimize_if_wavefrontsize( +; OPT-SAME: ptr addrspace(1) nocapture [[ARG:%.*]]) { +; OPT-NEXT: [[BB:.*:]] +; OPT-NEXT: [[TMP:%.*]] = tail call i32 @llvm.amdgcn.wavefrontsize() #[[ATTR1]] +; OPT-NEXT: [[TMP1:%.*]] = icmp ugt i32 [[TMP]], 32 +; OPT-NEXT: br i1 [[TMP1]], label %[[BB2:.*]], label %[[BB3:.*]] +; OPT: [[BB2]]: +; OPT-NEXT: store i32 1, ptr addrspace(1) [[ARG]], align 4 +; OPT-NEXT: br label %[[BB3]] +; OPT: [[BB3]]: +; OPT-NEXT: ret void +; +; OPT-W32-LABEL: define amdgpu_kernel void @fold_and_optimize_if_wavefrontsize( +; OPT-W32-SAME: ptr addrspace(1) nocapture [[ARG:%.*]]) #[[ATTR0]] { +; OPT-W32-NEXT: [[BB:.*:]] +; OPT-W32-NEXT: br i1 false, label %[[BB2:.*]], label %[[BB3:.*]] +; OPT-W32: [[BB2]]: +; OPT-W32-NEXT: br label %[[BB3]] +; OPT-W32: [[BB3]]: +; OPT-W32-NEXT: ret void +; +; OPT-W64-LABEL: define amdgpu_kernel void @fold_and_optimize_if_wavefrontsize( +; OPT-W64-SAME: ptr addrspace(1) nocapture [[ARG:%.*]]) #[[ATTR0]] { +; OPT-W64-NEXT: [[BB:.*:]] +; OPT-W64-NEXT: br i1 true, label %[[BB2:.*]], label %[[BB3:.*]] +; OPT-W64: [[BB2]]: +; OPT-W64-NEXT: store i32 1, ptr addrspace(1) [[ARG]], align 4 +; OPT-W64-NEXT: br label %[[BB3]] +; OPT-W64: [[BB3]]: +; OPT-W64-NEXT: ret void +; +bb: + %tmp = tail call i32 @llvm.amdgcn.wavefrontsize() #0 + %tmp1 = icmp ugt i32 %tmp, 32 + br i1 %tmp1, label %bb2, label %bb3 + +bb2: ; preds = %bb + store i32 1, ptr addrspace(1) %arg, align 4 + br label %bb3 + +bb3: ; preds = %bb2, %bb + ret void +} + +declare i32 @llvm.amdgcn.wavefrontsize() #0 + +attributes #0 = { nounwind readnone speculatable } diff --git a/llvm/test/Transforms/InstCombine/AMDGPU/mfma-scale.ll b/llvm/test/Transforms/InstCombine/AMDGPU/mfma-scale.ll new file mode 100644 index 0000000000000..709f143a4745a --- /dev/null +++ b/llvm/test/Transforms/InstCombine/AMDGPU/mfma-scale.ll @@ -0,0 +1,312 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 +; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -passes=instcombine < %s | FileCheck %s + +; -------------------------------------------------------------------- +; Incorrect signature for format cases (IR vector too large) 16x16x128 +; -------------------------------------------------------------------- + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v8i32_fp6( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> [[ARG0]], <6 x i32> [[TMP1]], <4 x float> [[ARG2]], i32 0, i32 2, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp8( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> [[TMP1]], <8 x i32> [[ARG1]], <4 x float> [[ARG2]], i32 2, i32 0, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp6( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> [[TMP1]], <6 x i32> [[TMP2]], <4 x float> [[ARG2]], i32 2, i32 2, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v6i32(<6 x i32> [[TMP1]], <6 x i32> [[TMP2]], <4 x float> [[ARG2]], i32 2, i32 2, i32 0, i32 0, i32 0, i32 0) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v8i32_fp4( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v4i32(<8 x i32> [[ARG0]], <4 x i32> [[TMP1]], <4 x float> [[ARG2]], i32 0, i32 4, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp8( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v8i32(<4 x i32> [[TMP1]], <8 x i32> [[ARG1]], <4 x float> [[ARG2]], i32 4, i32 0, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v6i32_fp4(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp8__v6i32_fp4( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <6 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <6 x i32> [[ARG1]], <6 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v4i32(<8 x i32> [[ARG0]], <4 x i32> [[TMP1]], <4 x float> [[ARG2]], i32 0, i32 4, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v6i32_fp4__v8i32_fp8(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v6i32_fp4__v8i32_fp8( +; CHECK-SAME: <6 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <6 x i32> [[ARG0]], <6 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v8i32(<4 x i32> [[TMP1]], <8 x i32> [[ARG1]], <4 x float> [[ARG2]], i32 4, i32 0, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp4( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v4i32(<4 x i32> [[TMP1]], <4 x i32> [[TMP2]], <4 x float> [[ARG2]], i32 4, i32 4, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2) { +; CHECK-LABEL: define <4 x float> @test_mfma_scale_f32_16x16x128_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v4i32.v4i32(<4 x i32> [[TMP1]], <4 x i32> [[TMP2]], <4 x float> [[ARG2]], i32 4, i32 4, i32 0, i32 0, i32 0, i32 0) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <4 x float> %result +} + +define <4 x float> @test_flags_shrink_src0(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <4 x float> @test_flags_shrink_src0( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <4 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call nnan nsz <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v6i32(<8 x i32> [[ARG0]], <6 x i32> [[TMP1]], <4 x float> [[ARG2]], i32 0, i32 2, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <4 x float> [[RESULT]] +; + %result = call nnan nsz <4 x float> @llvm.amdgcn.mfma.scale.f32.16x16x128.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <4 x float> %arg2, + i32 0, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <4 x float> %result +} + +; -------------------------------------------------------------------- +; Incorrect signature for format cases (IR vector too large) 32x32x64 +; -------------------------------------------------------------------- + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp6( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> [[ARG0]], <6 x i32> [[TMP1]], <16 x float> [[ARG2]], i32 0, i32 2, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp8( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> [[TMP1]], <8 x i32> [[ARG1]], <16 x float> [[ARG2]], i32 2, i32 0, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> [[TMP1]], <6 x i32> [[TMP2]], <16 x float> [[ARG2]], i32 2, i32 2, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp6__v8i32_fp6__0_scale( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <6 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v6i32(<6 x i32> [[TMP1]], <6 x i32> [[TMP2]], <16 x float> [[ARG2]], i32 2, i32 2, i32 0, i32 0, i32 0, i32 0) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 2, ; cbsz + i32 2, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v8i32_fp4( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> [[ARG0]], <4 x i32> [[TMP1]], <16 x float> [[ARG2]], i32 0, i32 4, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp8(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp8( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> [[TMP1]], <8 x i32> [[ARG1]], <16 x float> [[ARG2]], i32 4, i32 0, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v6i32_fp4(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp8__v6i32_fp4( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <6 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <6 x i32> [[ARG1]], <6 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v4i32(<8 x i32> [[ARG0]], <4 x i32> [[TMP1]], <16 x float> [[ARG2]], i32 0, i32 4, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v6i32(<8 x i32> %arg0, <6 x i32> %arg1, <16 x float> %arg2, + i32 0, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v6i32_fp4__v8i32_fp8(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v6i32_fp4__v8i32_fp8( +; CHECK-SAME: <6 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <6 x i32> [[ARG0]], <6 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v8i32(<4 x i32> [[TMP1]], <8 x i32> [[ARG1]], <16 x float> [[ARG2]], i32 4, i32 0, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v6i32.v8i32(<6 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 0, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, i32 %scale0, i32 %scale1) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]], i32 [[SCALE0:%.*]], i32 [[SCALE1:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v4i32(<4 x i32> [[TMP1]], <4 x i32> [[TMP2]], <16 x float> [[ARG2]], i32 4, i32 4, i32 0, i32 [[SCALE0]], i32 0, i32 [[SCALE1]]) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 %scale0, i32 0, i32 %scale1) + ret <16 x float> %result +} + +define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2) { +; CHECK-LABEL: define <16 x float> @test_mfma_scale_f32_32x32x64_f8f6f4___v8i32_fp4__v8i32_fp4__0_scale( +; CHECK-SAME: <8 x i32> [[ARG0:%.*]], <8 x i32> [[ARG1:%.*]], <16 x float> [[ARG2:%.*]]) { +; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <8 x i32> [[ARG0]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i32> [[ARG1]], <8 x i32> poison, <4 x i32> +; CHECK-NEXT: [[RESULT:%.*]] = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v4i32.v4i32(<4 x i32> [[TMP1]], <4 x i32> [[TMP2]], <16 x float> [[ARG2]], i32 4, i32 4, i32 0, i32 0, i32 0, i32 0) +; CHECK-NEXT: ret <16 x float> [[RESULT]] +; + %result = call <16 x float> @llvm.amdgcn.mfma.scale.f32.32x32x64.f8f6f4.v8i32.v8i32(<8 x i32> %arg0, <8 x i32> %arg1, <16 x float> %arg2, + i32 4, ; cbsz + i32 4, ; blgp + i32 0, i32 0, i32 0, i32 0) + ret <16 x float> %result +} diff --git a/llvm/test/Transforms/InstCombine/add.ll b/llvm/test/Transforms/InstCombine/add.ll index 4825e588aa085..222f87fa3a5f1 100644 --- a/llvm/test/Transforms/InstCombine/add.ll +++ b/llvm/test/Transforms/InstCombine/add.ll @@ -2683,8 +2683,8 @@ define i16 @add_sub_zext_constant(i8 %x) { define @add_to_or_scalable( %in) { ; CHECK-LABEL: @add_to_or_scalable( -; CHECK-NEXT: [[SHL:%.*]] = shl [[IN:%.*]], shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer) -; CHECK-NEXT: [[ADD:%.*]] = or disjoint [[SHL]], shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[SHL:%.*]] = shl [[IN:%.*]], splat (i32 1) +; CHECK-NEXT: [[ADD:%.*]] = or disjoint [[SHL]], splat (i32 1) ; CHECK-NEXT: ret [[ADD]] ; %shl = shl %in, splat (i32 1) diff --git a/llvm/test/Transforms/InstCombine/and-fcmp.ll b/llvm/test/Transforms/InstCombine/and-fcmp.ll index 30b9fca6e97ad..c7bbc8ab56f9a 100644 --- a/llvm/test/Transforms/InstCombine/and-fcmp.ll +++ b/llvm/test/Transforms/InstCombine/and-fcmp.ll @@ -5044,11 +5044,9 @@ define i1 @isnormal_logical_select_0_fmf1(half %x) { define i1 @and_fcmp_reassoc1(i1 %x, double %a, double %b) { ; CHECK-LABEL: @and_fcmp_reassoc1( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double [[A]], [[B]] +; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[TMP1]], [[X:%.*]] -; CHECK-NEXT: [[RETVAL1:%.*]] = and i1 [[RETVAL]], [[CMP1]] -; CHECK-NEXT: ret i1 [[RETVAL1]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -5059,11 +5057,9 @@ define i1 @and_fcmp_reassoc1(i1 %x, double %a, double %b) { define i1 @and_fcmp_reassoc2(i1 %x, double %a, double %b) { ; CHECK-LABEL: @and_fcmp_reassoc2( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double [[A]], [[B]] +; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[X:%.*]], [[TMP1]] -; CHECK-NEXT: [[RETVAL1:%.*]] = and i1 [[RETVAL]], [[CMP1]] -; CHECK-NEXT: ret i1 [[RETVAL1]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -5074,11 +5070,9 @@ define i1 @and_fcmp_reassoc2(i1 %x, double %a, double %b) { define i1 @and_fcmp_reassoc3(i1 %x, double %a, double %b) { ; CHECK-LABEL: @and_fcmp_reassoc3( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double [[A]], [[B]] +; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[TMP1]], [[X:%.*]] -; CHECK-NEXT: [[RETVAL1:%.*]] = and i1 [[CMP1]], [[RETVAL]] -; CHECK-NEXT: ret i1 [[RETVAL1]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ugt double %a, %b @@ -5089,11 +5083,9 @@ define i1 @and_fcmp_reassoc3(i1 %x, double %a, double %b) { define i1 @and_fcmp_reassoc4(i1 %x, double %a, double %b) { ; CHECK-LABEL: @and_fcmp_reassoc4( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp ult double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: [[CMP1:%.*]] = fcmp ugt double [[A]], [[B]] +; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[RETVAL:%.*]] = and i1 [[X:%.*]], [[TMP1]] -; CHECK-NEXT: [[RETVAL1:%.*]] = and i1 [[CMP1]], [[RETVAL]] -; CHECK-NEXT: ret i1 [[RETVAL1]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp ult double %a, %b %cmp1 = fcmp ugt double %a, %b diff --git a/llvm/test/Transforms/InstCombine/bitcast.ll b/llvm/test/Transforms/InstCombine/bitcast.ll index ce5a4635a9b0a..37d41de3e9991 100644 --- a/llvm/test/Transforms/InstCombine/bitcast.ll +++ b/llvm/test/Transforms/InstCombine/bitcast.ll @@ -1,5 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -passes=instcombine -S | FileCheck %s +; RUN: opt < %s -passes=instcombine -use-constant-fp-for-fixed-length-splat -use-constant-int-for-fixed-length-splat -S | FileCheck %s target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" target triple = "x86_64-apple-darwin10.0.0" diff --git a/llvm/test/Transforms/InstCombine/div.ll b/llvm/test/Transforms/InstCombine/div.ll index 6344966d6cac3..7e93612150e8c 100644 --- a/llvm/test/Transforms/InstCombine/div.ll +++ b/llvm/test/Transforms/InstCombine/div.ll @@ -1062,7 +1062,7 @@ define <2 x i8> @sdiv_by_negconst_v2i8(<2 x i8> %x) { define @sdiv_by_negconst_nxv2i8( %x) { ; CHECK-LABEL: @sdiv_by_negconst_nxv2i8( -; CHECK-NEXT: [[DIV_NEG:%.*]] = sdiv [[X:%.*]], shufflevector ( insertelement ( poison, i8 108, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[DIV_NEG:%.*]] = sdiv [[X:%.*]], splat (i8 108) ; CHECK-NEXT: ret [[DIV_NEG]] ; %div = sdiv %x, splat (i8 -108) @@ -1083,7 +1083,7 @@ define <2 x i8> @sdiv_by_minSigned_v2i8(<2 x i8> %x) { define @sdiv_by_minSigned_nxv2i8( %x) { ; CHECK-LABEL: @sdiv_by_minSigned_nxv2i8( -; CHECK-NEXT: [[TMP1:%.*]] = icmp eq [[X:%.*]], shufflevector ( insertelement ( poison, i8 -128, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[TMP1:%.*]] = icmp eq [[X:%.*]], splat (i8 -128) ; CHECK-NEXT: [[DIV_NEG:%.*]] = sext [[TMP1]] to ; CHECK-NEXT: ret [[DIV_NEG]] ; diff --git a/llvm/test/Transforms/InstCombine/eq-of-parts.ll b/llvm/test/Transforms/InstCombine/eq-of-parts.ll index 00ee7bf643286..d07c2e6a5be52 100644 --- a/llvm/test/Transforms/InstCombine/eq-of-parts.ll +++ b/llvm/test/Transforms/InstCombine/eq-of-parts.ll @@ -1441,11 +1441,7 @@ define i1 @ne_optimized_highbits_cmp_todo_overlapping(i32 %x, i32 %y) { define i1 @and_trunc_i1(i8 %a1, i8 %a2) { ; CHECK-LABEL: @and_trunc_i1( -; CHECK-NEXT: [[XOR:%.*]] = xor i8 [[A1:%.*]], [[A2:%.*]] -; CHECK-NEXT: [[CMP:%.*]] = icmp ult i8 [[XOR]], 2 -; CHECK-NEXT: [[LOBIT:%.*]] = trunc i8 [[XOR]] to i1 -; CHECK-NEXT: [[LOBIT_INV:%.*]] = xor i1 [[LOBIT]], true -; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP]], [[LOBIT_INV]] +; CHECK-NEXT: [[AND:%.*]] = icmp eq i8 [[A1:%.*]], [[A2:%.*]] ; CHECK-NEXT: ret i1 [[AND]] ; %xor = xor i8 %a1, %a2 @@ -1494,10 +1490,7 @@ define i1 @and_trunc_i1_wrong_operands(i8 %a1, i8 %a2, i8 %a3) { define i1 @or_trunc_i1(i64 %a1, i64 %a2) { ; CHECK-LABEL: @or_trunc_i1( -; CHECK-NEXT: [[XOR:%.*]] = xor i64 [[A2:%.*]], [[A1:%.*]] -; CHECK-NEXT: [[CMP:%.*]] = icmp ugt i64 [[XOR]], 1 -; CHECK-NEXT: [[TRUNC:%.*]] = trunc i64 [[XOR]] to i1 -; CHECK-NEXT: [[OR:%.*]] = or i1 [[CMP]], [[TRUNC]] +; CHECK-NEXT: [[OR:%.*]] = icmp ne i64 [[A2:%.*]], [[A1:%.*]] ; CHECK-NEXT: ret i1 [[OR]] ; %xor = xor i64 %a2, %a1 @@ -1538,3 +1531,28 @@ define i1 @or_trunc_i1_wrong_operands(i64 %a1, i64 %a2, i64 %a3) { %or = or i1 %cmp, %trunc ret i1 %or } + +define i1 @jv_identical(i64 %arg1, i64 %arg2) { +; CHECK-LABEL: @jv_identical( +; CHECK-NEXT: [[ARG1_TRUNC:%.*]] = trunc i64 [[ARG1:%.*]] to i8 +; CHECK-NEXT: [[ARG2_TRUNC:%.*]] = trunc i64 [[ARG2:%.*]] to i8 +; CHECK-NEXT: [[EQ1:%.*]] = icmp eq i8 [[ARG1_TRUNC]], [[ARG2_TRUNC]] +; CHECK-NEXT: [[DOTUNSHIFTED:%.*]] = xor i64 [[ARG2]], [[ARG1]] +; CHECK-NEXT: [[TMP1:%.*]] = icmp ult i64 [[DOTUNSHIFTED]], 65536 +; CHECK-NEXT: [[AND2:%.*]] = and i1 [[EQ1]], [[TMP1]] +; CHECK-NEXT: ret i1 [[AND2]] +; + %arg1.trunc = trunc i64 %arg1 to i8 + %arg1.shift = lshr i64 %arg1, 16 + %arg1.shift.trunc = trunc i64 %arg1.shift to i16 + %arg2.trunc = trunc i64 %arg2 to i8 + %arg2.shift = lshr i64 %arg2, 16 + %arg2.shift.trunc = trunc i64 %arg2.shift to i16 + %eq1 = icmp eq i8 %arg1.trunc, %arg2.trunc + %eq2 = icmp eq i16 %arg1.shift.trunc, %arg2.shift.trunc + %and1 = and i1 %eq1, %eq2 + %xor = xor i64 %arg2, %arg1 + %cmp = icmp ult i64 %xor, 4294967296 + %and2 = and i1 %cmp, %and1 + ret i1 %and2 +} diff --git a/llvm/test/Transforms/InstCombine/exp2-to-ldexp.ll b/llvm/test/Transforms/InstCombine/exp2-to-ldexp.ll index c2c7ece8483a9..8a52f79f307ca 100644 --- a/llvm/test/Transforms/InstCombine/exp2-to-ldexp.ll +++ b/llvm/test/Transforms/InstCombine/exp2-to-ldexp.ll @@ -90,7 +90,7 @@ define @exp2_nxv4f32_sitofp_i8( %x) { ; CHECK-LABEL: define @exp2_nxv4f32_sitofp_i8( ; CHECK-SAME: [[X:%.*]]) { ; CHECK-NEXT: [[TMP1:%.*]] = sext [[X]] to -; CHECK-NEXT: [[EXP2:%.*]] = call @llvm.ldexp.nxv4f32.nxv4i32( shufflevector ( insertelement ( poison, float 1.000000e+00, i64 0), poison, zeroinitializer), [[TMP1]]) +; CHECK-NEXT: [[EXP2:%.*]] = call @llvm.ldexp.nxv4f32.nxv4i32( splat (float 1.000000e+00), [[TMP1]]) ; CHECK-NEXT: ret [[EXP2]] ; %itofp = sitofp %x to diff --git a/llvm/test/Transforms/InstCombine/extractelement.ll b/llvm/test/Transforms/InstCombine/extractelement.ll index 2bd719e236137..04a35e19fb0bb 100644 --- a/llvm/test/Transforms/InstCombine/extractelement.ll +++ b/llvm/test/Transforms/InstCombine/extractelement.ll @@ -4,6 +4,11 @@ ; RUN: opt < %s -passes=instcombine -S -data-layout="E-n64" | FileCheck %s --check-prefixes=ANY,ANYBE,BE64 ; RUN: opt < %s -passes=instcombine -S -data-layout="E-n128" | FileCheck %s --check-prefixes=ANY,ANYBE,BE128 +; RUN: opt < %s -passes=instcombine -S -data-layout="e-n64" -use-constant-fp-for-fixed-length-splat -use-constant-int-for-fixed-length-splat | FileCheck %s --check-prefixes=ANY,ANYLE,LE64 +; RUN: opt < %s -passes=instcombine -S -data-layout="e-n128" -use-constant-fp-for-fixed-length-splat -use-constant-int-for-fixed-length-splat | FileCheck %s --check-prefixes=ANY,ANYLE,LE128 +; RUN: opt < %s -passes=instcombine -S -data-layout="E-n64" -use-constant-fp-for-fixed-length-splat -use-constant-int-for-fixed-length-splat | FileCheck %s --check-prefixes=ANY,ANYBE,BE64 +; RUN: opt < %s -passes=instcombine -S -data-layout="E-n128" -use-constant-fp-for-fixed-length-splat -use-constant-int-for-fixed-length-splat | FileCheck %s --check-prefixes=ANY,ANYBE,BE128 + define i32 @extractelement_out_of_range(<2 x i32> %x) { ; ANY-LABEL: @extractelement_out_of_range( ; ANY-NEXT: ret i32 poison diff --git a/llvm/test/Transforms/InstCombine/fdiv.ll b/llvm/test/Transforms/InstCombine/fdiv.ll index 06c78a8c6206d..ad187e22014e4 100644 --- a/llvm/test/Transforms/InstCombine/fdiv.ll +++ b/llvm/test/Transforms/InstCombine/fdiv.ll @@ -87,7 +87,7 @@ define <2 x float> @exact_inverse_splat(<2 x float> %x) { define @exact_inverse_scalable_splat( %x) { ; CHECK-LABEL: @exact_inverse_scalable_splat( -; CHECK-NEXT: [[DIV:%.*]] = fmul [[X:%.*]], shufflevector ( insertelement ( poison, float 2.500000e-01, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[DIV:%.*]] = fmul [[X:%.*]], splat (float 2.500000e-01) ; CHECK-NEXT: ret [[DIV]] ; %div = fdiv %x, splat (float 4.0) diff --git a/llvm/test/Transforms/InstCombine/fmul.ll b/llvm/test/Transforms/InstCombine/fmul.ll index 51b70ef7e9800..70cbb4306ec67 100644 --- a/llvm/test/Transforms/InstCombine/fmul.ll +++ b/llvm/test/Transforms/InstCombine/fmul.ll @@ -832,8 +832,8 @@ define <2 x float> @fmul_fadd_distribute_vec(<2 x float> %x) { define @fmul_fadd_distribute_scalablevec( %x) { ; CHECK-LABEL: @fmul_fadd_distribute_scalablevec( -; CHECK-NEXT: [[TMP1:%.*]] = fmul reassoc [[X:%.*]], shufflevector ( insertelement ( poison, float 6.000000e+03, i64 0), poison, zeroinitializer) -; CHECK-NEXT: [[T3:%.*]] = fadd reassoc [[TMP1]], shufflevector ( insertelement ( poison, float 1.200000e+07, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[TMP1:%.*]] = fmul reassoc [[X:%.*]], splat (float 6.000000e+03) +; CHECK-NEXT: [[T3:%.*]] = fadd reassoc [[TMP1]], splat (float 1.200000e+07) ; CHECK-NEXT: ret [[T3]] ; %t1 = fadd reassoc splat (float 2.0e+3), %x diff --git a/llvm/test/Transforms/InstCombine/fneg.ll b/llvm/test/Transforms/InstCombine/fneg.ll index 6a9b3309bb347..9692005edf2b6 100644 --- a/llvm/test/Transforms/InstCombine/fneg.ll +++ b/llvm/test/Transforms/InstCombine/fneg.ll @@ -1113,7 +1113,7 @@ define float @test_fneg_select_maxnum(float %x) { define @test_fneg_select_svec( %cond, %b) { ; CHECK-LABEL: @test_fneg_select_svec( ; CHECK-NEXT: [[TMP2:%.*]] = fneg fast [[TMP1:%.*]] -; CHECK-NEXT: [[TMP3:%.*]] = select fast [[COND:%.*]], shufflevector ( insertelement ( poison, double -0.000000e+00, i64 0), poison, zeroinitializer), [[TMP2]] +; CHECK-NEXT: [[TMP3:%.*]] = select fast [[COND:%.*]], splat (double -0.000000e+00), [[TMP2]] ; CHECK-NEXT: ret [[TMP3]] ; %1 = select %cond, zeroinitializer, %b @@ -1124,7 +1124,7 @@ define @test_fneg_select_svec( %cond, @test_fneg_select_svec_2( %cond, %a) { ; CHECK-LABEL: @test_fneg_select_svec_2( ; CHECK-NEXT: [[A_NEG:%.*]] = fneg fast [[A:%.*]] -; CHECK-NEXT: [[TMP1:%.*]] = select fast [[COND:%.*]], [[A_NEG]], shufflevector ( insertelement ( poison, double -0.000000e+00, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[TMP1:%.*]] = select fast [[COND:%.*]], [[A_NEG]], splat (double -0.000000e+00) ; CHECK-NEXT: ret [[TMP1]] ; %1 = select %cond, %a, zeroinitializer @@ -1134,7 +1134,7 @@ define @test_fneg_select_svec_2( %cond, < define @test_fneg_select_svec_3( %cond, %b) { ; CHECK-LABEL: @test_fneg_select_svec_3( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, double -0.000000e+00, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (double -0.000000e+00) ; %1 = select %cond, zeroinitializer, zeroinitializer %2 = fneg fast %1 diff --git a/llvm/test/Transforms/InstCombine/fold-aggregate-reconstruction.ll b/llvm/test/Transforms/InstCombine/fold-aggregate-reconstruction.ll new file mode 100644 index 0000000000000..eb5f96d8f942d --- /dev/null +++ b/llvm/test/Transforms/InstCombine/fold-aggregate-reconstruction.ll @@ -0,0 +1,353 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 +; RUN: opt -S -passes=instcombine < %s | FileCheck %s + +declare {ptr, i64} @bar(i64) + +; Basic test. +define {ptr, i64} @test1(i1 %cond1, ptr %p1, ptr %p2) { +; CHECK-LABEL: define { ptr, i64 } @test1( +; CHECK-SAME: i1 [[COND1:%.*]], ptr [[P1:%.*]], ptr [[P2:%.*]]) { +; CHECK-NEXT: br i1 [[COND1]], label %[[BBB1:.*]], label %[[BBB2:.*]] +; CHECK: [[BBB1]]: +; CHECK-NEXT: [[CALL1:%.*]] = call { ptr, i64 } @bar(i64 0) +; CHECK-NEXT: br label %[[EXIT:.*]] +; CHECK: [[BBB2]]: +; CHECK-NEXT: [[VAL21:%.*]] = load ptr, ptr [[P1]], align 8 +; CHECK-NEXT: [[VAL22:%.*]] = load i64, ptr [[P2]], align 4 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { ptr, i64 } poison, ptr [[VAL21]], 0 +; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { ptr, i64 } [[TMP1]], i64 [[VAL22]], 1 +; CHECK-NEXT: br label %[[EXIT]] +; CHECK: [[EXIT]]: +; CHECK-NEXT: [[RES_MERGED:%.*]] = phi { ptr, i64 } [ [[CALL1]], %[[BBB1]] ], [ [[TMP2]], %[[BBB2]] ] +; CHECK-NEXT: ret { ptr, i64 } [[RES_MERGED]] +; + br i1 %cond1, label %bbb1, label %bbb2 + +bbb1: + %call1 = call {ptr, i64} @bar(i64 0) + %val11 = extractvalue { ptr, i64 } %call1, 0 + %val12 = extractvalue { ptr, i64 } %call1, 1 + br label %exit + +bbb2: + %val21 = load ptr, ptr %p1 + %val22 = load i64, ptr %p2 + br label %exit + +exit: + %val1 = phi ptr [%val11, %bbb1], [%val21, %bbb2] + %val2 = phi i64 [%val12, %bbb1], [%val22, %bbb2] + %tmp = insertvalue { ptr, i64 } poison, ptr %val1, 0 + %res = insertvalue { ptr, i64 } %tmp, i64 %val2, 1 + ret {ptr, i64} %res +} + +; Test with more predecessors. +define {ptr, i64} @test2(i1 %cond1, i1 %cond2, ptr %p1, ptr %p2) { +; CHECK-LABEL: define { ptr, i64 } @test2( +; CHECK-SAME: i1 [[COND1:%.*]], i1 [[COND2:%.*]], ptr [[P1:%.*]], ptr [[P2:%.*]]) { +; CHECK-NEXT: br i1 [[COND1]], label %[[BBB1:.*]], label %[[BBB4:.*]] +; CHECK: [[BBB1]]: +; CHECK-NEXT: br i1 [[COND2]], label %[[BBB2:.*]], label %[[BBB3:.*]] +; CHECK: [[BBB2]]: +; CHECK-NEXT: [[CALL1:%.*]] = call { ptr, i64 } @bar(i64 0) +; CHECK-NEXT: br label %[[EXIT:.*]] +; CHECK: [[BBB3]]: +; CHECK-NEXT: [[CALL2:%.*]] = call { ptr, i64 } @bar(i64 1) +; CHECK-NEXT: br label %[[EXIT]] +; CHECK: [[BBB4]]: +; CHECK-NEXT: [[VAL31:%.*]] = load ptr, ptr [[P1]], align 8 +; CHECK-NEXT: [[VAL32:%.*]] = load i64, ptr [[P2]], align 4 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { ptr, i64 } poison, ptr [[VAL31]], 0 +; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { ptr, i64 } [[TMP1]], i64 [[VAL32]], 1 +; CHECK-NEXT: br label %[[EXIT]] +; CHECK: [[EXIT]]: +; CHECK-NEXT: [[RES_MERGED:%.*]] = phi { ptr, i64 } [ [[CALL1]], %[[BBB2]] ], [ [[CALL2]], %[[BBB3]] ], [ [[TMP2]], %[[BBB4]] ] +; CHECK-NEXT: ret { ptr, i64 } [[RES_MERGED]] +; + br i1 %cond1, label %bbb1, label %bbb4 + +bbb1: + br i1 %cond2, label %bbb2, label %bbb3 + +bbb2: + %call1 = call {ptr, i64} @bar(i64 0) + %val11 = extractvalue { ptr, i64 } %call1, 0 + %val12 = extractvalue { ptr, i64 } %call1, 1 + br label %exit + +bbb3: + %call2 = call {ptr, i64} @bar(i64 1) + %val21 = extractvalue { ptr, i64 } %call2, 0 + %val22 = extractvalue { ptr, i64 } %call2, 1 + br label %exit + +bbb4: + %val31 = load ptr, ptr %p1 + %val32 = load i64, ptr %p2 + br label %exit + +exit: + %val1 = phi ptr [%val11, %bbb2], [%val21, %bbb3], [%val31, %bbb4] + %val2 = phi i64 [%val12, %bbb2], [%val22, %bbb3], [%val32, %bbb4] + %tmp = insertvalue { ptr, i64 } poison, ptr %val1, 0 + %res = insertvalue { ptr, i64 } %tmp, i64 %val2, 1 + ret {ptr, i64} %res +} + +; Test with multiple PHI instructions. +define {ptr, i64} @test3(i1 %cond1, i1 %cond2, ptr %val31, i64 %val32) { +; CHECK-LABEL: define { ptr, i64 } @test3( +; CHECK-SAME: i1 [[COND1:%.*]], i1 [[COND2:%.*]], ptr [[VAL31:%.*]], i64 [[VAL32:%.*]]) { +; CHECK-NEXT: br i1 [[COND1]], label %[[BBB1:.*]], label %[[BBB4:.*]] +; CHECK: [[BBB1]]: +; CHECK-NEXT: br i1 [[COND2]], label %[[BBB2:.*]], label %[[BBB3:.*]] +; CHECK: [[BBB2]]: +; CHECK-NEXT: [[CALL1:%.*]] = call { ptr, i64 } @bar(i64 0) +; CHECK-NEXT: br label %[[EXIT:.*]] +; CHECK: [[BBB3]]: +; CHECK-NEXT: [[CALL2:%.*]] = call { ptr, i64 } @bar(i64 1) +; CHECK-NEXT: br label %[[BBB5:.*]] +; CHECK: [[BBB4]]: +; CHECK-NEXT: [[CALL3:%.*]] = call { ptr, i64 } @bar(i64 2) +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { ptr, i64 } poison, ptr [[VAL31]], 0 +; CHECK-NEXT: [[TMP2:%.*]] = insertvalue { ptr, i64 } [[TMP1]], i64 [[VAL32]], 1 +; CHECK-NEXT: br label %[[BBB5]] +; CHECK: [[BBB5]]: +; CHECK-NEXT: [[DOTMERGED:%.*]] = phi { ptr, i64 } [ [[CALL2]], %[[BBB3]] ], [ [[TMP2]], %[[BBB4]] ] +; CHECK-NEXT: br label %[[EXIT]] +; CHECK: [[EXIT]]: +; CHECK-NEXT: [[RES_MERGED:%.*]] = phi { ptr, i64 } [ [[CALL1]], %[[BBB2]] ], [ [[DOTMERGED]], %[[BBB5]] ] +; CHECK-NEXT: ret { ptr, i64 } [[RES_MERGED]] +; + br i1 %cond1, label %bbb1, label %bbb4 + +bbb1: + br i1 %cond2, label %bbb2, label %bbb3 + +bbb2: + %call1 = call {ptr, i64} @bar(i64 0) + %val11 = extractvalue { ptr, i64 } %call1, 0 + %val12 = extractvalue { ptr, i64 } %call1, 1 + br label %exit + +bbb3: + %call2 = call {ptr, i64} @bar(i64 1) + %val21 = extractvalue { ptr, i64 } %call2, 0 + %val22 = extractvalue { ptr, i64 } %call2, 1 + br label %bbb5 + +bbb4: + %call3 = call {ptr, i64} @bar(i64 2) + br label %bbb5 + +bbb5: + %val41 = phi ptr [%val21, %bbb3], [%val31, %bbb4] + %val42 = phi i64 [%val22, %bbb3], [%val32, %bbb4] + br label %exit + +exit: + %val1 = phi ptr [%val11, %bbb2], [%val41, %bbb5] + %val2 = phi i64 [%val12, %bbb2], [%val42, %bbb5] + %tmp = insertvalue { ptr, i64 } poison, ptr %val1, 0 + %res = insertvalue { ptr, i64 } %tmp, i64 %val2, 1 + ret {ptr, i64} %res +} + +; Negative test, bbb4 has multiple successors, so we don't add insertvalue to it. +define {ptr, i64} @test4(i1 %cond1, i1 %cond2, ptr %p1, ptr %p2) { +; CHECK-LABEL: define { ptr, i64 } @test4( +; CHECK-SAME: i1 [[COND1:%.*]], i1 [[COND2:%.*]], ptr [[P1:%.*]], ptr [[P2:%.*]]) { +; CHECK-NEXT: br i1 [[COND1]], label %[[BBB1:.*]], label %[[BBB4:.*]] +; CHECK: [[BBB1]]: +; CHECK-NEXT: br i1 [[COND2]], label %[[BBB2:.*]], label %[[BBB3:.*]] +; CHECK: [[BBB2]]: +; CHECK-NEXT: [[CALL1:%.*]] = call { ptr, i64 } @bar(i64 0) +; CHECK-NEXT: [[VAL11:%.*]] = extractvalue { ptr, i64 } [[CALL1]], 0 +; CHECK-NEXT: [[VAL12:%.*]] = extractvalue { ptr, i64 } [[CALL1]], 1 +; CHECK-NEXT: br label %[[EXIT:.*]] +; CHECK: [[BBB3]]: +; CHECK-NEXT: [[CALL2:%.*]] = call { ptr, i64 } @bar(i64 1) +; CHECK-NEXT: [[VAL21:%.*]] = extractvalue { ptr, i64 } [[CALL2]], 0 +; CHECK-NEXT: [[VAL22:%.*]] = extractvalue { ptr, i64 } [[CALL2]], 1 +; CHECK-NEXT: br label %[[EXIT]] +; CHECK: [[BBB4]]: +; CHECK-NEXT: [[VAL31:%.*]] = load ptr, ptr [[P1]], align 8 +; CHECK-NEXT: [[VAL32:%.*]] = load i64, ptr [[P2]], align 4 +; CHECK-NEXT: [[COND3_NOT:%.*]] = icmp eq i64 [[VAL32]], 0 +; CHECK-NEXT: br i1 [[COND3_NOT]], label %[[EXIT]], label %[[BBB4]] +; CHECK: [[EXIT]]: +; CHECK-NEXT: [[VAL1:%.*]] = phi ptr [ [[VAL11]], %[[BBB2]] ], [ [[VAL21]], %[[BBB3]] ], [ [[VAL31]], %[[BBB4]] ] +; CHECK-NEXT: [[VAL2:%.*]] = phi i64 [ [[VAL12]], %[[BBB2]] ], [ [[VAL22]], %[[BBB3]] ], [ [[VAL32]], %[[BBB4]] ] +; CHECK-NEXT: [[TMP:%.*]] = insertvalue { ptr, i64 } poison, ptr [[VAL1]], 0 +; CHECK-NEXT: [[RES:%.*]] = insertvalue { ptr, i64 } [[TMP]], i64 [[VAL2]], 1 +; CHECK-NEXT: ret { ptr, i64 } [[RES]] +; + br i1 %cond1, label %bbb1, label %bbb4 + +bbb1: + br i1 %cond2, label %bbb2, label %bbb3 + +bbb2: + %call1 = call {ptr, i64} @bar(i64 0) + %val11 = extractvalue { ptr, i64 } %call1, 0 + %val12 = extractvalue { ptr, i64 } %call1, 1 + br label %exit + +bbb3: + %call2 = call {ptr, i64} @bar(i64 1) + %val21 = extractvalue { ptr, i64 } %call2, 0 + %val22 = extractvalue { ptr, i64 } %call2, 1 + br label %exit + +bbb4: + %val31 = load ptr, ptr %p1 + %val32 = load i64, ptr %p2 + %cond3 = icmp ne i64 %val32, 0 + br i1 %cond3, label %bbb4, label %exit + +exit: + %val1 = phi ptr [%val11, %bbb2], [%val21, %bbb3], [%val31, %bbb4] + %val2 = phi i64 [%val12, %bbb2], [%val22, %bbb3], [%val32, %bbb4] + %tmp = insertvalue { ptr, i64 } poison, ptr %val1, 0 + %res = insertvalue { ptr, i64 } %tmp, i64 %val2, 1 + ret {ptr, i64} %res +} + +; Negative test, %.elt2 is defined in bb %end, it can't be accessed from %then, +; so we can't add insertvalue to %then. +define { ptr, i64 } @test5({ ptr, i64 } %src, ptr %pointer, i1 %cond) { +; CHECK-LABEL: define { ptr, i64 } @test5( +; CHECK-SAME: { ptr, i64 } [[SRC:%.*]], ptr [[POINTER:%.*]], i1 [[COND:%.*]]) { +; CHECK-NEXT: [[ENTRY:.*:]] +; CHECK-NEXT: br i1 [[COND]], label %[[THEN:.*]], label %[[ELSE:.*]] +; CHECK: [[THEN]]: +; CHECK-NEXT: store ptr null, ptr [[POINTER]], align 8 +; CHECK-NEXT: br label %[[END:.*]] +; CHECK: [[ELSE]]: +; CHECK-NEXT: [[DOTELT1:%.*]] = extractvalue { ptr, i64 } [[SRC]], 0 +; CHECK-NEXT: br label %[[END]] +; CHECK: [[END]]: +; CHECK-NEXT: [[TMP6:%.*]] = phi ptr [ [[DOTELT1]], %[[ELSE]] ], [ null, %[[THEN]] ] +; CHECK-NEXT: [[DOTELT2:%.*]] = extractvalue { ptr, i64 } [[SRC]], 1 +; CHECK-NEXT: [[TMP7:%.*]] = insertvalue { ptr, i64 } zeroinitializer, ptr [[TMP6]], 0 +; CHECK-NEXT: [[TMP8:%.*]] = insertvalue { ptr, i64 } [[TMP7]], i64 [[DOTELT2]], 1 +; CHECK-NEXT: ret { ptr, i64 } [[TMP8]] +; +entry: + br i1 %cond, label %then, label %else + +then: + store ptr null, ptr %pointer, align 8 + br label %end + +else: + %.elt1 = extractvalue { ptr, i64 } %src, 0 + br label %end + +end: + %elt = phi ptr [ %.elt1, %else ], [ null, %then ] + %.elt2 = extractvalue { ptr, i64 } %src, 1 + %agg1 = insertvalue { ptr, i64 } zeroinitializer, ptr %elt, 0 + %res = insertvalue { ptr, i64 } %agg1, i64 %.elt2, 1 + ret { ptr, i64 } %res +} + +; Negative test, we should not add insertvalue to inner loops. +define { i64, ptr } @test6({ i64, ptr } %agg1, i1 %cond1, i1 %cond2, { i64, ptr } %agg3) { +; CHECK-LABEL: define { i64, ptr } @test6( +; CHECK-SAME: { i64, ptr } [[AGG1:%.*]], i1 [[COND1:%.*]], i1 [[COND2:%.*]], { i64, ptr } [[AGG3:%.*]]) { +; CHECK-NEXT: [[ENTRY:.*]]: +; CHECK-NEXT: [[F10:%.*]] = extractvalue { i64, ptr } [[AGG1]], 0 +; CHECK-NEXT: [[F11:%.*]] = extractvalue { i64, ptr } [[AGG1]], 1 +; CHECK-NEXT: br label %[[HEADER:.*]] +; CHECK: [[HEADER]]: +; CHECK-NEXT: [[DOTSROA_01_0:%.*]] = phi i64 [ [[F10]], %[[ENTRY]] ], [ [[DOTSROA_01_1:%.*]], %[[LATCH:.*]] ] +; CHECK-NEXT: [[DOTSROA_3_0:%.*]] = phi ptr [ [[F11]], %[[ENTRY]] ], [ [[DOTSROA_3_1:%.*]], %[[LATCH]] ] +; CHECK-NEXT: br i1 [[COND1]], label %[[CHECK:.*]], label %[[EXIT:.*]] +; CHECK: [[CHECK]]: +; CHECK-NEXT: br i1 [[COND2]], label %[[THEN:.*]], label %[[ELSE:.*]] +; CHECK: [[THEN]]: +; CHECK-NEXT: [[F30:%.*]] = extractvalue { i64, ptr } [[AGG3]], 0 +; CHECK-NEXT: [[F31:%.*]] = extractvalue { i64, ptr } [[AGG3]], 1 +; CHECK-NEXT: br label %[[LATCH]] +; CHECK: [[ELSE]]: +; CHECK-NEXT: br label %[[LATCH]] +; CHECK: [[LATCH]]: +; CHECK-NEXT: [[DOTSROA_01_1]] = phi i64 [ [[F30]], %[[THEN]] ], [ [[DOTSROA_01_0]], %[[ELSE]] ] +; CHECK-NEXT: [[DOTSROA_3_1]] = phi ptr [ [[F31]], %[[THEN]] ], [ [[DOTSROA_3_0]], %[[ELSE]] ] +; CHECK-NEXT: br label %[[HEADER]] +; CHECK: [[EXIT]]: +; CHECK-NEXT: [[DOTFCA_0_INSERT:%.*]] = insertvalue { i64, ptr } zeroinitializer, i64 [[DOTSROA_01_0]], 0 +; CHECK-NEXT: [[DOTFCA_1_INSERT:%.*]] = insertvalue { i64, ptr } [[DOTFCA_0_INSERT]], ptr [[DOTSROA_3_0]], 1 +; CHECK-NEXT: ret { i64, ptr } [[DOTFCA_1_INSERT]] +; +entry: + %f10 = extractvalue { i64, ptr } %agg1, 0 + %f11 = extractvalue { i64, ptr } %agg1, 1 + br label %header + +header: + %.sroa.01.0 = phi i64 [ %f10, %entry ], [ %.sroa.01.1, %latch ] + %.sroa.3.0 = phi ptr [ %f11, %entry ], [ %.sroa.3.1, %latch ] + br i1 %cond1, label %check, label %exit + +check: + br i1 %cond2, label %then, label %else + +then: + %f30 = extractvalue { i64, ptr } %agg3, 0 + %f31 = extractvalue { i64, ptr } %agg3, 1 + br label %latch + +else: + br label %latch + +latch: + %.sroa.01.1 = phi i64 [ %f30, %then ], [ %.sroa.01.0, %else ] + %.sroa.3.1 = phi ptr [ %f31, %then ], [ %.sroa.3.0, %else ] + br label %header + +exit: + %.fca.0.insert = insertvalue { i64, ptr } zeroinitializer, i64 %.sroa.01.0, 0 + %.fca.1.insert = insertvalue { i64, ptr } %.fca.0.insert, ptr %.sroa.3.0, 1 + ret { i64, ptr } %.fca.1.insert +} + +; Negative test, don't construct constant aggregate. +define {ptr, i64} @test7(i1 %cond1, ptr %p1) { +; CHECK-LABEL: define { ptr, i64 } @test7( +; CHECK-SAME: i1 [[COND1:%.*]], ptr [[P1:%.*]]) { +; CHECK-NEXT: br i1 [[COND1]], label %[[BBB1:.*]], label %[[BBB2:.*]] +; CHECK: [[BBB1]]: +; CHECK-NEXT: [[CALL1:%.*]] = call { ptr, i64 } @bar(i64 0) +; CHECK-NEXT: [[VAL11:%.*]] = extractvalue { ptr, i64 } [[CALL1]], 0 +; CHECK-NEXT: [[VAL12:%.*]] = extractvalue { ptr, i64 } [[CALL1]], 1 +; CHECK-NEXT: br label %[[EXIT:.*]] +; CHECK: [[BBB2]]: +; CHECK-NEXT: br label %[[EXIT]] +; CHECK: [[EXIT]]: +; CHECK-NEXT: [[VAL1:%.*]] = phi ptr [ [[VAL11]], %[[BBB1]] ], [ undef, %[[BBB2]] ] +; CHECK-NEXT: [[VAL2:%.*]] = phi i64 [ [[VAL12]], %[[BBB1]] ], [ 1, %[[BBB2]] ] +; CHECK-NEXT: [[TMP:%.*]] = insertvalue { ptr, i64 } poison, ptr [[VAL1]], 0 +; CHECK-NEXT: [[RES:%.*]] = insertvalue { ptr, i64 } [[TMP]], i64 [[VAL2]], 1 +; CHECK-NEXT: ret { ptr, i64 } [[RES]] +; + br i1 %cond1, label %bbb1, label %bbb2 + +bbb1: + %call1 = call {ptr, i64} @bar(i64 0) + %val11 = extractvalue { ptr, i64 } %call1, 0 + %val12 = extractvalue { ptr, i64 } %call1, 1 + br label %exit + +bbb2: + br label %exit + +exit: + %val1 = phi ptr [%val11, %bbb1], [undef, %bbb2] + %val2 = phi i64 [%val12, %bbb1], [1, %bbb2] + %tmp = insertvalue { ptr, i64 } poison, ptr %val1, 0 + %res = insertvalue { ptr, i64 } %tmp, i64 %val2, 1 + ret {ptr, i64} %res +} diff --git a/llvm/test/Transforms/InstCombine/fptrunc.ll b/llvm/test/Transforms/InstCombine/fptrunc.ll index f46940ff060d4..a4296a326c4bc 100644 --- a/llvm/test/Transforms/InstCombine/fptrunc.ll +++ b/llvm/test/Transforms/InstCombine/fptrunc.ll @@ -90,6 +90,19 @@ define half @fptrunc_select_true_val_extra_use(half %x, float %y, i1 %cond) { ret half %r } +define half @fptrunc_max(half %arg) { +; CHECK-LABEL: @fptrunc_max( +; CHECK-NEXT: [[CMP:%.*]] = fcmp olt half [[ARG:%.*]], 0xH0000 +; CHECK-NEXT: [[NARROW_SEL:%.*]] = select i1 [[CMP]], half 0xH0000, half [[ARG]] +; CHECK-NEXT: ret half [[NARROW_SEL]] +; + %ext = fpext half %arg to double + %cmp = fcmp olt double %ext, 0.000000e+00 + %max = select i1 %cmp, double 0.000000e+00, double %ext + %trunc = fptrunc double %max to half + ret half %trunc +} + ; Negative test - this would require an extra instruction. define half @fptrunc_select_true_val_extra_use_2(half %x, float %y, i1 %cond) { diff --git a/llvm/test/Transforms/InstCombine/gep-custom-dl.ll b/llvm/test/Transforms/InstCombine/gep-custom-dl.ll index c1c11c1acc7bb..ed9a5e6497638 100644 --- a/llvm/test/Transforms/InstCombine/gep-custom-dl.ll +++ b/llvm/test/Transforms/InstCombine/gep-custom-dl.ll @@ -182,3 +182,11 @@ entry: ret i16 %E } +define ptr @gep_too_large_type(ptr %p) { +; CHECK-LABEL: @gep_too_large_type( +; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, ptr [[P:%.*]], i32 -4 +; CHECK-NEXT: ret ptr [[GEP]] +; + %gep = getelementptr inbounds [4294967295 x i32], ptr %p, i32 1 + ret ptr %gep +} diff --git a/llvm/test/Transforms/InstCombine/getelementptr.ll b/llvm/test/Transforms/InstCombine/getelementptr.ll index 8f28049cf5f58..2ea65eb443cdf 100644 --- a/llvm/test/Transforms/InstCombine/getelementptr.ll +++ b/llvm/test/Transforms/InstCombine/getelementptr.ll @@ -283,7 +283,7 @@ define @test13_scalable_scalable(i64 %X, ptr %P, poison, i64 [[X:%.*]], i64 0 ; CHECK-NEXT: [[DOTSPLAT:%.*]] = shufflevector [[DOTSPLATINSERT]], poison, zeroinitializer -; CHECK-NEXT: [[A_IDX:%.*]] = shl nsw [[DOTSPLAT]], shufflevector ( insertelement ( poison, i64 3, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[A_IDX:%.*]] = shl nsw [[DOTSPLAT]], splat (i64 3) ; CHECK-NEXT: [[TMP1:%.*]] = call i64 @llvm.vscale.i64() ; CHECK-NEXT: [[TMP2:%.*]] = shl i64 [[TMP1]], 4 ; CHECK-NEXT: [[DOTSPLATINSERT1:%.*]] = insertelement poison, i64 [[TMP2]], i64 0 diff --git a/llvm/test/Transforms/InstCombine/icmp-add.ll b/llvm/test/Transforms/InstCombine/icmp-add.ll index dd8e9c1a45ea1..579247aaccf28 100644 --- a/llvm/test/Transforms/InstCombine/icmp-add.ll +++ b/llvm/test/Transforms/InstCombine/icmp-add.ll @@ -3183,3 +3183,109 @@ define i1 @icmp_of_ucmp_plus_const_with_const(i32 %x, i32 %y) { %cmp2 = icmp ult i8 %add, 2 ret i1 %cmp2 } + +define i1 @zext_range_check_ult(i8 %x) { +; CHECK-LABEL: @zext_range_check_ult( +; CHECK-NEXT: entry: +; CHECK-NEXT: [[TMP0:%.*]] = add i8 [[X:%.*]], -4 +; CHECK-NEXT: [[CMP:%.*]] = icmp ult i8 [[TMP0]], 3 +; CHECK-NEXT: ret i1 [[CMP]] +; +entry: + %conv = zext i8 %x to i32 + %add = add i32 %conv, -4 + %cmp = icmp ult i32 %add, 3 + ret i1 %cmp +} + +; TODO: should be canonicalized to (x - 4) u> 2 +define i1 @zext_range_check_ugt(i8 %x) { +; CHECK-LABEL: @zext_range_check_ugt( +; CHECK-NEXT: entry: +; CHECK-NEXT: [[CONV:%.*]] = zext i8 [[X:%.*]] to i32 +; CHECK-NEXT: [[TMP0:%.*]] = add nsw i32 [[CONV]], -7 +; CHECK-NEXT: [[CMP:%.*]] = icmp ult i32 [[TMP0]], -3 +; CHECK-NEXT: ret i1 [[CMP]] +; +entry: + %conv = zext i8 %x to i32 + %add = add i32 %conv, -4 + %cmp = icmp ugt i32 %add, 2 + ret i1 %cmp +} + +; TODO: should be canonicalized to (x - 4) u> 2 +define i1 @zext_range_check_ult_alter(i8 %x) { +; CHECK-LABEL: @zext_range_check_ult_alter( +; CHECK-NEXT: entry: +; CHECK-NEXT: [[CONV:%.*]] = zext i8 [[X:%.*]] to i32 +; CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[CONV]], -7 +; CHECK-NEXT: [[CMP:%.*]] = icmp ult i32 [[ADD]], -3 +; CHECK-NEXT: ret i1 [[CMP]] +; +entry: + %conv = zext i8 %x to i32 + %add = add i32 %conv, -7 + %cmp = icmp ult i32 %add, -3 + ret i1 %cmp +} + +define i1 @zext_range_check_mergable(i8 %x) { +; CHECK-LABEL: @zext_range_check_mergable( +; CHECK-NEXT: [[COND:%.*]] = icmp slt i8 [[X:%.*]], 7 +; CHECK-NEXT: ret i1 [[COND]] +; + %conv = zext i8 %x to i32 + %add = add nsw i32 %conv, -4 + %cmp1 = icmp ult i32 %add, 3 + %cmp2 = icmp slt i8 %x, 4 + %cond = select i1 %cmp2, i1 true, i1 %cmp1 + ret i1 %cond +} + +; Negative tests + +define i1 @sext_range_check_ult(i8 %x) { +; CHECK-LABEL: @sext_range_check_ult( +; CHECK-NEXT: entry: +; CHECK-NEXT: [[CONV:%.*]] = sext i8 [[X:%.*]] to i32 +; CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[CONV]], -4 +; CHECK-NEXT: [[CMP:%.*]] = icmp ult i32 [[ADD]], 3 +; CHECK-NEXT: ret i1 [[CMP]] +; +entry: + %conv = sext i8 %x to i32 + %add = add i32 %conv, -4 + %cmp = icmp ult i32 %add, 3 + ret i1 %cmp +} + +define i1 @zext_range_check_ult_illegal_type(i7 %x) { +; CHECK-LABEL: @zext_range_check_ult_illegal_type( +; CHECK-NEXT: entry: +; CHECK-NEXT: [[CONV:%.*]] = zext i7 [[X:%.*]] to i32 +; CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[CONV]], -4 +; CHECK-NEXT: [[CMP:%.*]] = icmp ult i32 [[ADD]], 3 +; CHECK-NEXT: ret i1 [[CMP]] +; +entry: + %conv = zext i7 %x to i32 + %add = add i32 %conv, -4 + %cmp = icmp ult i32 %add, 3 + ret i1 %cmp +} + +define i1 @zext_range_check_ult_range_check_failure(i8 %x) { +; CHECK-LABEL: @zext_range_check_ult_range_check_failure( +; CHECK-NEXT: entry: +; CHECK-NEXT: [[CONV:%.*]] = zext i8 [[X:%.*]] to i32 +; CHECK-NEXT: [[ADD:%.*]] = add nsw i32 [[CONV]], -4 +; CHECK-NEXT: [[CMP:%.*]] = icmp ult i32 [[ADD]], 253 +; CHECK-NEXT: ret i1 [[CMP]] +; +entry: + %conv = zext i8 %x to i32 + %add = add i32 %conv, -4 + %cmp = icmp ult i32 %add, 253 + ret i1 %cmp +} diff --git a/llvm/test/Transforms/InstCombine/icmp-vec.ll b/llvm/test/Transforms/InstCombine/icmp-vec.ll index 333b7519c8071..e133533f5056d 100644 --- a/llvm/test/Transforms/InstCombine/icmp-vec.ll +++ b/llvm/test/Transforms/InstCombine/icmp-vec.ll @@ -394,7 +394,7 @@ define <2 x i1> @icmp_logical_or_vec(<2 x i64> %x, <2 x i64> %y, <2 x i1> %false define @icmp_logical_or_scalablevec( %x, %y, %falseval) { ; CHECK-LABEL: @icmp_logical_or_scalablevec( ; CHECK-NEXT: [[CMP_NE:%.*]] = icmp ne [[X:%.*]], zeroinitializer -; CHECK-NEXT: [[SEL:%.*]] = select [[CMP_NE]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), [[FALSEVAL:%.*]] +; CHECK-NEXT: [[SEL:%.*]] = select [[CMP_NE]], splat (i1 true), [[FALSEVAL:%.*]] ; CHECK-NEXT: ret [[SEL]] ; %cmp.ne = icmp ne %x, zeroinitializer diff --git a/llvm/test/Transforms/InstCombine/known-bits.ll b/llvm/test/Transforms/InstCombine/known-bits.ll index c9e7cbae3d939..9467f507cd630 100644 --- a/llvm/test/Transforms/InstCombine/known-bits.ll +++ b/llvm/test/Transforms/InstCombine/known-bits.ll @@ -1334,7 +1334,7 @@ define i8 @nonzero_reduce_xor_vscale_even( %xx) { define i8 @nonzero_reduce_xor_vscale_odd_fail( %xx) { ; CHECK-LABEL: @nonzero_reduce_xor_vscale_odd_fail( -; CHECK-NEXT: [[X:%.*]] = or [[XX:%.*]], shufflevector ( insertelement ( poison, i8 1, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[X:%.*]] = or [[XX:%.*]], splat (i8 1) ; CHECK-NEXT: [[V:%.*]] = call i8 @llvm.vector.reduce.xor.nxv3i8( [[X]]) ; CHECK-NEXT: [[R:%.*]] = and i8 [[V]], 1 ; CHECK-NEXT: ret i8 [[R]] @@ -1349,7 +1349,7 @@ define i8 @nonzero_reduce_xor_vscale_odd_fail( %xx) { define i8 @nonzero_reduce_xor_vscale_even_fail( %xx) { ; CHECK-LABEL: @nonzero_reduce_xor_vscale_even_fail( -; CHECK-NEXT: [[X:%.*]] = or [[XX:%.*]], shufflevector ( insertelement ( poison, i8 1, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[X:%.*]] = or [[XX:%.*]], splat (i8 1) ; CHECK-NEXT: [[V:%.*]] = call i8 @llvm.vector.reduce.xor.nxv2i8( [[X]]) ; CHECK-NEXT: [[R:%.*]] = and i8 [[V]], 2 ; CHECK-NEXT: ret i8 [[R]] diff --git a/llvm/test/Transforms/InstCombine/load-store-forward.ll b/llvm/test/Transforms/InstCombine/load-store-forward.ll index b3fa3dae80379..9a5db318df5e7 100644 --- a/llvm/test/Transforms/InstCombine/load-store-forward.ll +++ b/llvm/test/Transforms/InstCombine/load-store-forward.ll @@ -103,7 +103,7 @@ define i32 @vec_store_load_overlap(ptr %p) { define i32 @load_i32_store_nxv4i32(ptr %a) { ; CHECK-LABEL: @load_i32_store_nxv4i32( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (i32 1), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[A]], align 4 ; CHECK-NEXT: ret i32 [[TMP0]] ; @@ -116,7 +116,7 @@ entry: define i64 @load_i64_store_nxv8i8(ptr %a) { ; CHECK-LABEL: @load_i64_store_nxv8i8( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, i8 1, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (i8 1), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[LOAD:%.*]] = load i64, ptr [[A]], align 8 ; CHECK-NEXT: ret i64 [[LOAD]] ; @@ -129,7 +129,7 @@ entry: define i64 @load_i64_store_nxv4i32(ptr %a) { ; CHECK-LABEL: @load_i64_store_nxv4i32( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (i32 1), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[LOAD:%.*]] = load i64, ptr [[A]], align 8 ; CHECK-NEXT: ret i64 [[LOAD]] ; @@ -142,7 +142,7 @@ entry: define i8 @load_i8_store_nxv4i32(ptr %a) { ; CHECK-LABEL: @load_i8_store_nxv4i32( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (i32 1), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[LOAD:%.*]] = load i8, ptr [[A]], align 1 ; CHECK-NEXT: ret i8 [[LOAD]] ; @@ -155,7 +155,7 @@ entry: define float @load_f32_store_nxv4f32(ptr %a) { ; CHECK-LABEL: @load_f32_store_nxv4f32( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, float 1.000000e+00, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (float 1.000000e+00), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[TMP0:%.*]] = load float, ptr [[A]], align 4 ; CHECK-NEXT: ret float [[TMP0]] ; @@ -168,7 +168,7 @@ entry: define i32 @load_i32_store_nxv4f32(ptr %a) { ; CHECK-LABEL: @load_i32_store_nxv4f32( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, float 1.000000e+00, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (float 1.000000e+00), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[LOAD:%.*]] = load i32, ptr [[A]], align 4 ; CHECK-NEXT: ret i32 [[LOAD]] ; @@ -181,7 +181,7 @@ entry: define <4 x i32> @load_v4i32_store_nxv4i32(ptr %a) { ; CHECK-LABEL: @load_v4i32_store_nxv4i32( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (i32 1), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x i32>, ptr [[A]], align 16 ; CHECK-NEXT: ret <4 x i32> [[TMP0]] ; @@ -194,7 +194,7 @@ entry: define <4 x i16> @load_v4i16_store_nxv4i32(ptr %a) { ; CHECK-LABEL: @load_v4i16_store_nxv4i32( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (i32 1), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[TMP0:%.*]] = load <4 x i16>, ptr [[A]], align 16 ; CHECK-NEXT: ret <4 x i16> [[TMP0]] ; @@ -208,7 +208,7 @@ entry: define i64 @load_i64_store_nxv4i8(ptr %a) { ; CHECK-LABEL: @load_i64_store_nxv4i8( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, i8 1, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (i8 1), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[LOAD:%.*]] = load i64, ptr [[A]], align 8 ; CHECK-NEXT: ret i64 [[LOAD]] ; @@ -223,7 +223,7 @@ entry: define @load_nxv4i8_store_nxv4i32(ptr %a) { ; CHECK-LABEL: @load_nxv4i8_store_nxv4i32( ; CHECK-NEXT: entry: -; CHECK-NEXT: store shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer), ptr [[A:%.*]], align 16 +; CHECK-NEXT: store splat (i32 1), ptr [[A:%.*]], align 16 ; CHECK-NEXT: [[TMP0:%.*]] = load , ptr [[A]], align 16 ; CHECK-NEXT: ret [[TMP0]] ; diff --git a/llvm/test/Transforms/InstCombine/logical-select.ll b/llvm/test/Transforms/InstCombine/logical-select.ll index 1b6e816d2e624..050a53406a9c5 100644 --- a/llvm/test/Transforms/InstCombine/logical-select.ll +++ b/llvm/test/Transforms/InstCombine/logical-select.ll @@ -1521,3 +1521,121 @@ bb: %and2 = or i1 %and1, %cmp ret i1 %and2 } + +define i1 @test_logical_and_icmp_samesign(i8 %x) { +; CHECK-LABEL: @test_logical_and_icmp_samesign( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ne i8 [[X:%.*]], 9 +; CHECK-NEXT: [[CMP2:%.*]] = icmp samesign ult i8 [[X]], 11 +; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret i1 [[AND]] +; + %cmp1 = icmp ne i8 %x, 9 + %cmp2 = icmp samesign ult i8 %x, 11 + %and = select i1 %cmp1, i1 %cmp2, i1 false + ret i1 %and +} + +define i1 @test_logical_or_icmp_samesign(i8 %x) { +; CHECK-LABEL: @test_logical_or_icmp_samesign( +; CHECK-NEXT: [[CMP1:%.*]] = icmp eq i8 [[X:%.*]], -9 +; CHECK-NEXT: [[CMP2:%.*]] = icmp samesign ult i8 [[X]], -11 +; CHECK-NEXT: [[OR:%.*]] = or i1 [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret i1 [[OR]] +; + %cmp1 = icmp eq i8 %x, -9 + %cmp2 = icmp samesign ult i8 %x, -11 + %or = select i1 %cmp1, i1 true, i1 %cmp2 + ret i1 %or +} + +define i1 @test_double_logical_and_icmp_samesign1(i1 %cond, i32 %y) { +; CHECK-LABEL: @test_double_logical_and_icmp_samesign1( +; CHECK-NEXT: [[CMP2:%.*]] = icmp samesign ult i32 [[Y:%.*]], 4 +; CHECK-NEXT: [[SEL2:%.*]] = select i1 [[SEL1:%.*]], i1 [[CMP2]], i1 false +; CHECK-NEXT: ret i1 [[SEL2]] +; + %cmp1 = icmp ne i32 %y, 5 + %sel1 = select i1 %cond, i1 %cmp1, i1 false + %cmp2 = icmp samesign ult i32 %y, 4 + %sel2 = select i1 %sel1, i1 %cmp2, i1 false + ret i1 %sel2 +} + +define i1 @test_double_logical_and_icmp_samesign2(i1 %cond, i32 %y) { +; CHECK-LABEL: @test_double_logical_and_icmp_samesign2( +; CHECK-NEXT: [[TMP1:%.*]] = add i32 [[Y:%.*]], -65536 +; CHECK-NEXT: [[CMP2:%.*]] = icmp ult i32 [[TMP1]], 1048576 +; CHECK-NEXT: [[SEL2:%.*]] = select i1 [[SEL1:%.*]], i1 [[CMP2]], i1 false +; CHECK-NEXT: ret i1 [[SEL2]] +; + %cmp1 = icmp samesign ugt i32 %y, 65535 + %sel1 = select i1 %cond, i1 %cmp1, i1 false + %cmp2 = icmp samesign ult i32 %y, 1114112 + %sel2 = select i1 %sel1, i1 %cmp2, i1 false + ret i1 %sel2 +} + +define <2 x i1> @test_logical_and_icmp_samesign_vec(<2 x i8> %x) { +; CHECK-LABEL: @test_logical_and_icmp_samesign_vec( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ne <2 x i8> [[X:%.*]], splat (i8 9) +; CHECK-NEXT: [[CMP2:%.*]] = icmp samesign ult <2 x i8> [[X]], splat (i8 11) +; CHECK-NEXT: [[AND:%.*]] = and <2 x i1> [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret <2 x i1> [[AND]] +; + %cmp1 = icmp ne <2 x i8> %x, splat(i8 9) + %cmp2 = icmp samesign ult <2 x i8> %x, splat(i8 11) + %and = select <2 x i1> %cmp1, <2 x i1> %cmp2, <2 x i1> zeroinitializer + ret <2 x i1> %and +} + +define <2 x i1> @test_logical_and_icmp_samesign_vec_with_poison_cond(<2 x i8> %x) { +; CHECK-LABEL: @test_logical_and_icmp_samesign_vec_with_poison_cond( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ne <2 x i8> [[X:%.*]], +; CHECK-NEXT: [[CMP2:%.*]] = icmp samesign ult <2 x i8> [[X]], splat (i8 11) +; CHECK-NEXT: [[AND:%.*]] = and <2 x i1> [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret <2 x i1> [[AND]] +; + %cmp1 = icmp ne <2 x i8> %x, + %cmp2 = icmp samesign ult <2 x i8> %x, splat(i8 11) + %and = select <2 x i1> %cmp1, <2 x i1> %cmp2, <2 x i1> zeroinitializer + ret <2 x i1> %and +} + +define i1 @test_logical_and_icmp_samesign_do_not_imply(i8 %x) { +; CHECK-LABEL: @test_logical_and_icmp_samesign_do_not_imply( +; CHECK-NEXT: [[AND:%.*]] = icmp ult i8 [[X:%.*]], 11 +; CHECK-NEXT: ret i1 [[AND]] +; + %cmp1 = icmp ne i8 %x, -9 + %cmp2 = icmp samesign ult i8 %x, 11 + %and = select i1 %cmp1, i1 %cmp2, i1 false + ret i1 %and +} + +define i1 @test_logical_and_icmp_no_samesign(i8 %x) { +; CHECK-LABEL: @test_logical_and_icmp_no_samesign( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ne i8 [[X:%.*]], 9 +; CHECK-NEXT: [[CMP2:%.*]] = icmp ult i8 [[X]], 11 +; CHECK-NEXT: [[AND:%.*]] = and i1 [[CMP1]], [[CMP2]] +; CHECK-NEXT: ret i1 [[AND]] +; + %cmp1 = icmp ne i8 %x, 9 + %cmp2 = icmp ult i8 %x, 11 + %and = select i1 %cmp1, i1 %cmp2, i1 false + ret i1 %and +} + +; Negative tests + +define <2 x i1> @test_logical_and_icmp_samesign_vec_with_poison_tv(<2 x i8> %x) { +; CHECK-LABEL: @test_logical_and_icmp_samesign_vec_with_poison_tv( +; CHECK-NEXT: [[CMP1:%.*]] = icmp ne <2 x i8> [[X:%.*]], splat (i8 9) +; CHECK-NEXT: [[CMP2:%.*]] = icmp samesign ult <2 x i8> [[X]], +; CHECK-NEXT: [[AND:%.*]] = select <2 x i1> [[CMP1]], <2 x i1> [[CMP2]], <2 x i1> zeroinitializer +; CHECK-NEXT: ret <2 x i1> [[AND]] +; + %cmp1 = icmp ne <2 x i8> %x, splat(i8 9) + %cmp2 = icmp samesign ult <2 x i8> %x, + %and = select <2 x i1> %cmp1, <2 x i1> %cmp2, <2 x i1> zeroinitializer + ret <2 x i1> %and +} diff --git a/llvm/test/Transforms/InstCombine/merging-multiple-stores-into-successor.ll b/llvm/test/Transforms/InstCombine/merging-multiple-stores-into-successor.ll index fbf58d47a32d2..41e3197e5a2f0 100644 --- a/llvm/test/Transforms/InstCombine/merging-multiple-stores-into-successor.ll +++ b/llvm/test/Transforms/InstCombine/merging-multiple-stores-into-successor.ll @@ -166,14 +166,13 @@ define %struct.half @one_elem_struct_merge(i1 %cond, %struct.half %a, half %b) { ; CHECK-NEXT: entry: ; CHECK-NEXT: br i1 [[COND:%.*]], label [[BB0:%.*]], label [[BB1:%.*]] ; CHECK: BB0: -; CHECK-NEXT: [[TMP0:%.*]] = extractvalue [[STRUCT_HALF:%.*]] [[A:%.*]], 0 ; CHECK-NEXT: br label [[SINK:%.*]] ; CHECK: BB1: +; CHECK-NEXT: [[TMP0:%.*]] = insertvalue [[STRUCT_HALF:%.*]] poison, half [[B:%.*]], 0 ; CHECK-NEXT: br label [[SINK]] ; CHECK: sink: -; CHECK-NEXT: [[STOREMERGE:%.*]] = phi half [ [[TMP0]], [[BB0]] ], [ [[B:%.*]], [[BB1]] ] -; CHECK-NEXT: [[VAL1:%.*]] = insertvalue [[STRUCT_HALF]] poison, half [[STOREMERGE]], 0 -; CHECK-NEXT: ret [[STRUCT_HALF]] [[VAL1]] +; CHECK-NEXT: [[VAL1_MERGED:%.*]] = phi [[STRUCT_HALF]] [ [[A:%.*]], [[BB0]] ], [ [[TMP0]], [[BB1]] ] +; CHECK-NEXT: ret [[STRUCT_HALF]] [[VAL1_MERGED]] ; entry: %alloca = alloca i64 diff --git a/llvm/test/Transforms/InstCombine/or-fcmp.ll b/llvm/test/Transforms/InstCombine/or-fcmp.ll index a2842f7a45f59..193fe4b5cc722 100644 --- a/llvm/test/Transforms/InstCombine/or-fcmp.ll +++ b/llvm/test/Transforms/InstCombine/or-fcmp.ll @@ -54,7 +54,7 @@ define i1 @PR41069(double %a, double %b, double %c, double %d) { ; CHECK-LABEL: @PR41069( ; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]] -; CHECK-NEXT: [[R:%.*]] = or i1 [[TMP1]], [[UNO1]] +; CHECK-NEXT: [[R:%.*]] = or i1 [[UNO1]], [[TMP1]] ; CHECK-NEXT: ret i1 [[R]] ; %uno1 = fcmp uno double %a, %b @@ -87,7 +87,7 @@ define i1 @PR41069_commute(double %a, double %b, double %c, double %d) { ; CHECK-LABEL: @PR41069_commute( ; CHECK-NEXT: [[UNO1:%.*]] = fcmp uno double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[TMP1:%.*]] = fcmp uno double [[D:%.*]], [[C:%.*]] -; CHECK-NEXT: [[R:%.*]] = or i1 [[TMP1]], [[UNO1]] +; CHECK-NEXT: [[R:%.*]] = or i1 [[UNO1]], [[TMP1]] ; CHECK-NEXT: ret i1 [[R]] ; %uno1 = fcmp uno double %a, %b @@ -4608,11 +4608,9 @@ define i1 @intersect_fmf_4(double %a, double %b) { define i1 @or_fcmp_reassoc1(i1 %x, double %a, double %b) { ; CHECK-LABEL: @or_fcmp_reassoc1( -; CHECK-NEXT: [[OR:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: [[CMP2:%.*]] = fcmp ogt double [[A]], [[B]] +; CHECK-NEXT: [[OR:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[OR]], [[CMP1:%.*]] -; CHECK-NEXT: [[RETVAL1:%.*]] = or i1 [[RETVAL]], [[CMP2]] -; CHECK-NEXT: ret i1 [[RETVAL1]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp olt double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -4623,11 +4621,9 @@ define i1 @or_fcmp_reassoc1(i1 %x, double %a, double %b) { define i1 @or_fcmp_reassoc2(i1 %x, double %a, double %b) { ; CHECK-LABEL: @or_fcmp_reassoc2( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double [[A]], [[B]] +; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[X:%.*]], [[TMP1]] -; CHECK-NEXT: [[RETVAL1:%.*]] = or i1 [[RETVAL]], [[CMP1]] -; CHECK-NEXT: ret i1 [[RETVAL1]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp olt double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -4638,11 +4634,9 @@ define i1 @or_fcmp_reassoc2(i1 %x, double %a, double %b) { define i1 @or_fcmp_reassoc3(i1 %x, double %a, double %b) { ; CHECK-LABEL: @or_fcmp_reassoc3( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double [[A]], [[B]] +; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[TMP1]], [[X:%.*]] -; CHECK-NEXT: [[RETVAL1:%.*]] = or i1 [[CMP1]], [[RETVAL]] -; CHECK-NEXT: ret i1 [[RETVAL1]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp olt double %a, %b %cmp1 = fcmp ogt double %a, %b @@ -4653,11 +4647,9 @@ define i1 @or_fcmp_reassoc3(i1 %x, double %a, double %b) { define i1 @or_fcmp_reassoc4(i1 %x, double %a, double %b) { ; CHECK-LABEL: @or_fcmp_reassoc4( -; CHECK-NEXT: [[TMP1:%.*]] = fcmp olt double [[A:%.*]], [[B:%.*]] -; CHECK-NEXT: [[CMP1:%.*]] = fcmp ogt double [[A]], [[B]] +; CHECK-NEXT: [[TMP1:%.*]] = fcmp one double [[A:%.*]], [[B:%.*]] ; CHECK-NEXT: [[RETVAL:%.*]] = or i1 [[X:%.*]], [[TMP1]] -; CHECK-NEXT: [[RETVAL1:%.*]] = or i1 [[CMP1]], [[RETVAL]] -; CHECK-NEXT: ret i1 [[RETVAL1]] +; CHECK-NEXT: ret i1 [[RETVAL]] ; %cmp = fcmp olt double %a, %b %cmp1 = fcmp ogt double %a, %b diff --git a/llvm/test/Transforms/InstCombine/phi-aware-aggregate-reconstruction.ll b/llvm/test/Transforms/InstCombine/phi-aware-aggregate-reconstruction.ll index 6b7ac445839d2..706ce4e02f231 100644 --- a/llvm/test/Transforms/InstCombine/phi-aware-aggregate-reconstruction.ll +++ b/llvm/test/Transforms/InstCombine/phi-aware-aggregate-reconstruction.ll @@ -97,28 +97,26 @@ end: ret { i32, i32 } %i8 } -; When coming from %left, elements are swapped -define { i32, i32 } @negative_test2({ i32, i32 } %agg_left, { i32, i32 } %agg_right, i1 %c) { -; CHECK-LABEL: @negative_test2( +; When coming from %left, elements are swapped, and new insertvalue is created. +; From right side the old aggregate can be directly reused. +define { i32, i32 } @positive_test2({ i32, i32 } %agg_left, { i32, i32 } %agg_right, i1 %c) { +; CHECK-LABEL: @positive_test2( ; CHECK-NEXT: entry: ; CHECK-NEXT: br i1 [[C:%.*]], label [[LEFT:%.*]], label [[RIGHT:%.*]] ; CHECK: left: ; CHECK-NEXT: [[I2:%.*]] = extractvalue { i32, i32 } [[AGG_LEFT:%.*]], 1 ; CHECK-NEXT: [[I0:%.*]] = extractvalue { i32, i32 } [[AGG_LEFT]], 0 ; CHECK-NEXT: call void @foo() +; CHECK-NEXT: [[TMP0:%.*]] = insertvalue { i32, i32 } poison, i32 [[I2]], 0 +; CHECK-NEXT: [[TMP1:%.*]] = insertvalue { i32, i32 } [[TMP0]], i32 [[I0]], 1 ; CHECK-NEXT: br label [[END:%.*]] ; CHECK: right: -; CHECK-NEXT: [[I4:%.*]] = extractvalue { i32, i32 } [[AGG_RIGHT:%.*]], 1 -; CHECK-NEXT: [[I3:%.*]] = extractvalue { i32, i32 } [[AGG_RIGHT]], 0 ; CHECK-NEXT: call void @bar() ; CHECK-NEXT: br label [[END]] ; CHECK: end: -; CHECK-NEXT: [[I5:%.*]] = phi i32 [ [[I2]], [[LEFT]] ], [ [[I3]], [[RIGHT]] ] -; CHECK-NEXT: [[I6:%.*]] = phi i32 [ [[I0]], [[LEFT]] ], [ [[I4]], [[RIGHT]] ] +; CHECK-NEXT: [[I8_MERGED:%.*]] = phi { i32, i32 } [ [[TMP1]], [[LEFT]] ], [ [[AGG_RIGHT:%.*]], [[RIGHT]] ] ; CHECK-NEXT: call void @baz() -; CHECK-NEXT: [[I7:%.*]] = insertvalue { i32, i32 } undef, i32 [[I5]], 0 -; CHECK-NEXT: [[I8:%.*]] = insertvalue { i32, i32 } [[I7]], i32 [[I6]], 1 -; CHECK-NEXT: ret { i32, i32 } [[I8]] +; CHECK-NEXT: ret { i32, i32 } [[I8_MERGED]] ; entry: %i0 = extractvalue { i32, i32 } %agg_left, 0 @@ -417,14 +415,14 @@ define { i32, i32 } @test8({ i32, i32 } %agg_left, { i32, i32 } %agg_right, i1 % ; CHECK: left: ; CHECK-NEXT: call void @foo() ; CHECK-NEXT: switch i32 [[VAL_LEFT:%.*]], label [[IMPOSSIBLE:%.*]] [ -; CHECK-NEXT: i32 -42, label [[END:%.*]] -; CHECK-NEXT: i32 42, label [[END]] +; CHECK-NEXT: i32 -42, label [[END:%.*]] +; CHECK-NEXT: i32 42, label [[END]] ; CHECK-NEXT: ] ; CHECK: right: ; CHECK-NEXT: call void @bar() ; CHECK-NEXT: switch i32 [[VAL_RIGHT:%.*]], label [[IMPOSSIBLE]] [ -; CHECK-NEXT: i32 42, label [[END]] -; CHECK-NEXT: i32 -42, label [[END]] +; CHECK-NEXT: i32 42, label [[END]] +; CHECK-NEXT: i32 -42, label [[END]] ; CHECK-NEXT: ] ; CHECK: impossible: ; CHECK-NEXT: unreachable diff --git a/llvm/test/Transforms/InstCombine/pow-to-ldexp.ll b/llvm/test/Transforms/InstCombine/pow-to-ldexp.ll index 0c4418a3094f9..b8d405eac14d5 100644 --- a/llvm/test/Transforms/InstCombine/pow-to-ldexp.ll +++ b/llvm/test/Transforms/InstCombine/pow-to-ldexp.ll @@ -187,7 +187,7 @@ define <2 x float> @pow_sitofp_v2f32_const_base_2__flags(<2 x i32> %x) { define @pow_sitofp_nxv4f32_const_base_2( %x) { ; CHECK-LABEL: define @pow_sitofp_nxv4f32_const_base_2( ; CHECK-SAME: [[X:%.*]]) { -; CHECK-NEXT: [[EXP2:%.*]] = tail call @llvm.ldexp.nxv4f32.nxv4i32( shufflevector ( insertelement ( poison, float 1.000000e+00, i64 0), poison, zeroinitializer), [[X]]) +; CHECK-NEXT: [[EXP2:%.*]] = tail call @llvm.ldexp.nxv4f32.nxv4i32( splat (float 1.000000e+00), [[X]]) ; CHECK-NEXT: ret [[EXP2]] ; %itofp = sitofp %x to diff --git a/llvm/test/Transforms/InstCombine/pr83931.ll b/llvm/test/Transforms/InstCombine/pr83931.ll index d36ac8d91abd3..0eaf9262724f6 100644 --- a/llvm/test/Transforms/InstCombine/pr83931.ll +++ b/llvm/test/Transforms/InstCombine/pr83931.ll @@ -5,7 +5,7 @@ define @dont_crash( %x) { ; CHECK-LABEL: define @dont_crash( ; CHECK-SAME: [[X:%.*]]) { ; CHECK-NEXT: entry: -; CHECK-NEXT: [[RET:%.*]] = icmp sgt [[X]], shufflevector ( insertelement ( poison, i64 -309383, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[RET:%.*]] = icmp sgt [[X]], splat (i64 -309383) ; CHECK-NEXT: ret [[RET]] ; entry: diff --git a/llvm/test/Transforms/InstCombine/scalable-const-fp-splat.ll b/llvm/test/Transforms/InstCombine/scalable-const-fp-splat.ll index 00a815322cd24..04204db703cd1 100644 --- a/llvm/test/Transforms/InstCombine/scalable-const-fp-splat.ll +++ b/llvm/test/Transforms/InstCombine/scalable-const-fp-splat.ll @@ -4,7 +4,7 @@ define @shrink_splat_scalable_extend( %a) { ; CHECK-LABEL: define @shrink_splat_scalable_extend( ; CHECK-SAME: [[A:%.*]]) { -; CHECK-NEXT: [[TMP1:%.*]] = fadd [[A]], shufflevector ( insertelement ( undef, float -1.000000e+00, i32 0), undef, zeroinitializer) +; CHECK-NEXT: [[TMP1:%.*]] = fadd [[A]], splat (float -1.000000e+00) ; CHECK-NEXT: ret [[TMP1]] ; %1 = shufflevector insertelement ( undef, float -1.000000e+00, i32 0), undef, zeroinitializer diff --git a/llvm/test/Transforms/InstCombine/scalable-select.ll b/llvm/test/Transforms/InstCombine/scalable-select.ll index eb7a66a76bbcf..d170fd99674db 100644 --- a/llvm/test/Transforms/InstCombine/scalable-select.ll +++ b/llvm/test/Transforms/InstCombine/scalable-select.ll @@ -5,7 +5,7 @@ ; Constant::getUniqueInteger would crash for a scalable-vector zeroinitializer. define @select_opt( %b, %m) { ; CHECK-LABEL: @select_opt( -; CHECK-NEXT: [[C:%.*]] = add nsw [[B:%.*]], shufflevector ( insertelement ( undef, i32 2, i32 0), undef, zeroinitializer) +; CHECK-NEXT: [[C:%.*]] = add nsw [[B:%.*]], splat (i32 2) ; CHECK-NEXT: [[D:%.*]] = select [[M:%.*]], [[C]], [[B]] ; CHECK-NEXT: ret [[D]] ; diff --git a/llvm/test/Transforms/InstCombine/select-masked_gather.ll b/llvm/test/Transforms/InstCombine/select-masked_gather.ll index a232bdbca0df4..911e6b485d620 100644 --- a/llvm/test/Transforms/InstCombine/select-masked_gather.ll +++ b/llvm/test/Transforms/InstCombine/select-masked_gather.ll @@ -38,7 +38,7 @@ define @masked_gather_and_zero_inactive_3( ; Remove redundant select when its mask doesn't overlap with the gather mask. define @masked_gather_and_zero_inactive_4( %ptr, %inv_mask) { ; CHECK-LABEL: @masked_gather_and_zero_inactive_4( -; CHECK-NEXT: [[MASK:%.*]] = xor [[INV_MASK:%.*]], shufflevector ( insertelement ( undef, i1 true, i32 0), undef, zeroinitializer) +; CHECK-NEXT: [[MASK:%.*]] = xor [[INV_MASK:%.*]], splat (i1 true) ; CHECK-NEXT: [[GATHER:%.*]] = call @llvm.masked.gather.nxv2i32.nxv2p0( [[PTR:%.*]], i32 4, [[MASK]], zeroinitializer) ; CHECK-NEXT: ret [[GATHER]] ; @@ -52,7 +52,7 @@ define @masked_gather_and_zero_inactive_4( ; As above but reuse the gather's existing passthrough. define @masked_gather_and_zero_inactive_5( %ptr, %inv_mask) { ; CHECK-LABEL: @masked_gather_and_zero_inactive_5( -; CHECK-NEXT: [[MASK:%.*]] = xor [[INV_MASK:%.*]], shufflevector ( insertelement ( undef, i1 true, i32 0), undef, zeroinitializer) +; CHECK-NEXT: [[MASK:%.*]] = xor [[INV_MASK:%.*]], splat (i1 true) ; CHECK-NEXT: [[GATHER:%.*]] = call @llvm.masked.gather.nxv2i32.nxv2p0( [[PTR:%.*]], i32 4, [[MASK]], zeroinitializer) ; CHECK-NEXT: ret [[GATHER]] ; @@ -66,7 +66,7 @@ define @masked_gather_and_zero_inactive_5( ; No transform when the gather's passthrough cannot be reused or altered. define @masked_gather_and_zero_inactive_6( %ptr, %inv_mask, %passthrough) { ; CHECK-LABEL: @masked_gather_and_zero_inactive_6( -; CHECK-NEXT: [[MASK:%.*]] = xor [[INV_MASK:%.*]], shufflevector ( insertelement ( undef, i1 true, i32 0), undef, zeroinitializer) +; CHECK-NEXT: [[MASK:%.*]] = xor [[INV_MASK:%.*]], splat (i1 true) ; CHECK-NEXT: [[GATHER:%.*]] = call @llvm.masked.gather.nxv2i32.nxv2p0( [[PTR:%.*]], i32 4, [[MASK]], [[PASSTHROUGH:%.*]]) ; CHECK-NEXT: [[MASKED:%.*]] = select [[INV_MASK]], zeroinitializer, [[GATHER]] ; CHECK-NEXT: ret [[MASKED]] @@ -94,7 +94,7 @@ define @masked_gather_and_zero_inactive_7( ; gather's inactive lanes and thus the gather's passthrough takes effect. define @masked_gather_and_zero_inactive_8( %ptr, %inv_mask, %cond) { ; CHECK-LABEL: @masked_gather_and_zero_inactive_8( -; CHECK-NEXT: [[MASK:%.*]] = xor [[INV_MASK:%.*]], shufflevector ( insertelement ( undef, i1 true, i32 0), undef, zeroinitializer) +; CHECK-NEXT: [[MASK:%.*]] = xor [[INV_MASK:%.*]], splat (i1 true) ; CHECK-NEXT: [[PG:%.*]] = and [[COND:%.*]], [[MASK]] ; CHECK-NEXT: [[GATHER:%.*]] = call @llvm.masked.gather.nxv2f32.nxv2p0( [[PTR:%.*]], i32 4, [[PG]], zeroinitializer) ; CHECK-NEXT: ret [[GATHER]] diff --git a/llvm/test/Transforms/InstCombine/select.ll b/llvm/test/Transforms/InstCombine/select.ll index 9e92d227ca447..a3221d7388b8f 100644 --- a/llvm/test/Transforms/InstCombine/select.ll +++ b/llvm/test/Transforms/InstCombine/select.ll @@ -99,7 +99,7 @@ define <2 x i1> @test9vec(<2 x i1> %C, <2 x i1> %X) { define @test9vvec( %C, %X) { ; CHECK-LABEL: @test9vvec( -; CHECK-NEXT: [[NOT_C:%.*]] = xor [[C:%.*]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[NOT_C:%.*]] = xor [[C:%.*]], splat (i1 true) ; CHECK-NEXT: [[R:%.*]] = select [[NOT_C]], [[X:%.*]], zeroinitializer ; CHECK-NEXT: ret [[R]] ; @@ -3499,7 +3499,7 @@ define i32 @select_cond_not_cond_cond2(i1 %cond) { ; scalable vector splat ConstantExprs. define @and_constant_select_svec( %x, %cond) { ; CHECK-LABEL: @and_constant_select_svec( -; CHECK-NEXT: [[A:%.*]] = and [[X:%.*]], shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[A:%.*]] = and [[X:%.*]], splat (i32 1) ; CHECK-NEXT: [[B:%.*]] = select [[COND:%.*]], [[A]], [[X]] ; CHECK-NEXT: ret [[B]] ; @@ -3511,7 +3511,7 @@ define @and_constant_select_svec( %x, @scalable_sign_bits( %x) { ; CHECK-LABEL: @scalable_sign_bits( ; CHECK-NEXT: [[A:%.*]] = sext [[X:%.*]] to -; CHECK-NEXT: [[B:%.*]] = shl nsw [[A]], shufflevector ( insertelement ( poison, i32 16, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[B:%.*]] = shl nsw [[A]], splat (i32 16) ; CHECK-NEXT: ret [[B]] ; %a = sext %x to @@ -3521,8 +3521,8 @@ define @scalable_sign_bits( %x) { define @scalable_non_zero( %x) { ; CHECK-LABEL: @scalable_non_zero( -; CHECK-NEXT: [[A:%.*]] = or [[X:%.*]], shufflevector ( insertelement ( poison, i32 1, i64 0), poison, zeroinitializer) -; CHECK-NEXT: [[CMP:%.*]] = icmp ult [[A]], shufflevector ( insertelement ( poison, i32 57, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[A:%.*]] = or [[X:%.*]], splat (i32 1) +; CHECK-NEXT: [[CMP:%.*]] = icmp ult [[A]], splat (i32 57) ; CHECK-NEXT: ret [[CMP]] ; %a = or %x, splat (i32 1) diff --git a/llvm/test/Transforms/InstCombine/shift.ll b/llvm/test/Transforms/InstCombine/shift.ll index d72a1849c7dfd..2ff3c3cd9d990 100644 --- a/llvm/test/Transforms/InstCombine/shift.ll +++ b/llvm/test/Transforms/InstCombine/shift.ll @@ -1385,7 +1385,7 @@ define <2 x i8> @ashr_demanded_bits_splat(<2 x i8> %x) { define @ashr_demanded_bits_splat2( %x) { ; CHECK-LABEL: @ashr_demanded_bits_splat2( -; CHECK-NEXT: [[SHR:%.*]] = ashr [[X:%.*]], shufflevector ( insertelement ( poison, i8 7, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[SHR:%.*]] = ashr [[X:%.*]], splat (i8 7) ; CHECK-NEXT: ret [[SHR]] ; %and = and %x, splat (i8 128) @@ -1405,7 +1405,7 @@ define <2 x i8> @lshr_demanded_bits_splat(<2 x i8> %x) { define @lshr_demanded_bits_splat2( %x) { ; CHECK-LABEL: @lshr_demanded_bits_splat2( -; CHECK-NEXT: [[SHR:%.*]] = lshr [[X:%.*]], shufflevector ( insertelement ( poison, i8 7, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[SHR:%.*]] = lshr [[X:%.*]], splat (i8 7) ; CHECK-NEXT: ret [[SHR]] ; %and = and %x, splat (i8 128) diff --git a/llvm/test/Transforms/InstCombine/sub.ll b/llvm/test/Transforms/InstCombine/sub.ll index b1313007d509f..4fc225454d311 100644 --- a/llvm/test/Transforms/InstCombine/sub.ll +++ b/llvm/test/Transforms/InstCombine/sub.ll @@ -841,7 +841,7 @@ define <2 x i32> @test44vec(<2 x i32> %x) { define @test44scalablevec( %x) { ; CHECK-LABEL: @test44scalablevec( -; CHECK-NEXT: [[SUB:%.*]] = add nsw [[X:%.*]], shufflevector ( insertelement ( poison, i32 -32768, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[SUB:%.*]] = add nsw [[X:%.*]], splat (i32 -32768) ; CHECK-NEXT: ret [[SUB]] ; %sub = sub nsw %x, splat (i32 32768) @@ -861,7 +861,7 @@ define <2 x i16> @test44vecminval(<2 x i16> %x) { ; uses m_ImmConstant which matches Constant but (explicitly) not ConstantExpr. define @test44scalablevecminval( %x) { ; CHECK-LABEL: @test44scalablevecminval( -; CHECK-NEXT: [[SUB:%.*]] = add [[X:%.*]], shufflevector ( insertelement ( poison, i16 -32768, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[SUB:%.*]] = add [[X:%.*]], splat (i16 -32768) ; CHECK-NEXT: ret [[SUB]] ; %sub = sub nsw %x, splat (i16 -32768) diff --git a/llvm/test/Transforms/InstCombine/udiv-simplify.ll b/llvm/test/Transforms/InstCombine/udiv-simplify.ll index 0af334842ac05..9897986629157 100644 --- a/llvm/test/Transforms/InstCombine/udiv-simplify.ll +++ b/llvm/test/Transforms/InstCombine/udiv-simplify.ll @@ -158,7 +158,7 @@ define i8 @udiv_exact_demanded_low_bits_clear(i8 %a) { define @udiv_demanded3( %a) { ; CHECK-LABEL: @udiv_demanded3( -; CHECK-NEXT: [[U:%.*]] = udiv [[A:%.*]], shufflevector ( insertelement ( poison, i32 12, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[U:%.*]] = udiv [[A:%.*]], splat (i32 12) ; CHECK-NEXT: ret [[U]] ; %o = or %a, splat (i32 3) diff --git a/llvm/test/Transforms/InstCombine/vec_shuffle-inseltpoison.ll b/llvm/test/Transforms/InstCombine/vec_shuffle-inseltpoison.ll index 80fe4b78fe8a9..c6329af164623 100644 --- a/llvm/test/Transforms/InstCombine/vec_shuffle-inseltpoison.ll +++ b/llvm/test/Transforms/InstCombine/vec_shuffle-inseltpoison.ll @@ -1485,7 +1485,7 @@ define <4 x i32> @splat_assoc_add(<4 x i32> %x, <4 x i32> %y) { define @vsplat_assoc_add( %x, %y) { ; CHECK-LABEL: @vsplat_assoc_add( -; CHECK-NEXT: [[TMP1:%.*]] = add [[X:%.*]], shufflevector ( insertelement ( poison, i32 317426, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[TMP1:%.*]] = add [[X:%.*]], splat (i32 317426) ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector [[TMP1]], poison, zeroinitializer ; CHECK-NEXT: [[R:%.*]] = add [[TMP2]], [[Y:%.*]] ; CHECK-NEXT: ret [[R]] diff --git a/llvm/test/Transforms/InstCombine/vec_shuffle.ll b/llvm/test/Transforms/InstCombine/vec_shuffle.ll index 9fb68b5399c84..dd9fab794917f 100644 --- a/llvm/test/Transforms/InstCombine/vec_shuffle.ll +++ b/llvm/test/Transforms/InstCombine/vec_shuffle.ll @@ -1490,7 +1490,7 @@ define <4 x i32> @splat_assoc_add(<4 x i32> %x, <4 x i32> %y) { define @vsplat_assoc_add( %x, %y) { ; CHECK-LABEL: @vsplat_assoc_add( -; CHECK-NEXT: [[TMP1:%.*]] = add [[X:%.*]], shufflevector ( insertelement ( poison, i32 317426, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[TMP1:%.*]] = add [[X:%.*]], splat (i32 317426) ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector [[TMP1]], poison, zeroinitializer ; CHECK-NEXT: [[R:%.*]] = add [[TMP2]], [[Y:%.*]] ; CHECK-NEXT: ret [[R]] diff --git a/llvm/test/Transforms/InstCombine/vscale_cmp.ll b/llvm/test/Transforms/InstCombine/vscale_cmp.ll index b2bfc93da089f..dfbf94c149fb7 100644 --- a/llvm/test/Transforms/InstCombine/vscale_cmp.ll +++ b/llvm/test/Transforms/InstCombine/vscale_cmp.ll @@ -3,7 +3,7 @@ define @sge( %x) { ; CHECK-LABEL: @sge( -; CHECK-NEXT: [[CMP:%.*]] = icmp sgt [[X:%.*]], shufflevector ( insertelement ( poison, i8 -1, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[CMP:%.*]] = icmp sgt [[X:%.*]], splat (i8 -1) ; CHECK-NEXT: ret [[CMP]] ; %cmp = icmp sge %x, zeroinitializer diff --git a/llvm/test/Transforms/InstCombine/zext-ctlz-trunc-to-ctlz-add.ll b/llvm/test/Transforms/InstCombine/zext-ctlz-trunc-to-ctlz-add.ll index 97412d6ad5f8d..75930c1b30310 100644 --- a/llvm/test/Transforms/InstCombine/zext-ctlz-trunc-to-ctlz-add.ll +++ b/llvm/test/Transforms/InstCombine/zext-ctlz-trunc-to-ctlz-add.ll @@ -42,7 +42,7 @@ define <2 x i8> @trunc_ctlz_zext_v2i8_v2i33(<2 x i8> %x) { define @trunc_ctlz_zext_nxv2i16_nxv2i64( %x) { ; CHECK-LABEL: @trunc_ctlz_zext_nxv2i16_nxv2i64( ; CHECK-NEXT: [[TMP1:%.*]] = call range(i16 0, 17) @llvm.ctlz.nxv2i16( [[X:%.*]], i1 false) -; CHECK-NEXT: [[ZZ:%.*]] = add nuw nsw [[TMP1]], shufflevector ( insertelement ( poison, i16 48, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[ZZ:%.*]] = add nuw nsw [[TMP1]], splat (i16 48) ; CHECK-NEXT: ret [[ZZ]] ; %z = zext %x to @@ -74,7 +74,7 @@ define @trunc_ctlz_zext_nxv2i16_nxv2i63_multiple_uses( [[X:%.*]] to ; CHECK-NEXT: [[TMP1:%.*]] = call range(i16 0, 17) @llvm.ctlz.nxv2i16( [[X]], i1 true) -; CHECK-NEXT: [[ZZ:%.*]] = add nuw nsw [[TMP1]], shufflevector ( insertelement ( poison, i16 47, i64 0), poison, zeroinitializer) +; CHECK-NEXT: [[ZZ:%.*]] = add nuw nsw [[TMP1]], splat (i16 47) ; CHECK-NEXT: call void @use1( [[Z]]) ; CHECK-NEXT: ret [[ZZ]] ; diff --git a/llvm/test/Transforms/InstSimplify/ConstProp/extractelement-vscale.ll b/llvm/test/Transforms/InstSimplify/ConstProp/extractelement-vscale.ll index de2ee65d8ec9b..b12fb3561c655 100644 --- a/llvm/test/Transforms/InstSimplify/ConstProp/extractelement-vscale.ll +++ b/llvm/test/Transforms/InstSimplify/ConstProp/extractelement-vscale.ll @@ -31,7 +31,7 @@ define i32 @extractconstant_shuffle_in_range(i32 %v) { define i32 @extractconstant_shuffle_maybe_out_of_range(i32 %v) { ; CHECK-LABEL: define i32 @extractconstant_shuffle_maybe_out_of_range( ; CHECK-SAME: i32 [[V:%.*]]) { -; CHECK-NEXT: ret i32 extractelement ( shufflevector ( insertelement ( undef, i32 1024, i32 0), undef, zeroinitializer), i32 4) +; CHECK-NEXT: ret i32 extractelement ( splat (i32 1024), i32 4) ; %in = insertelement undef, i32 1024, i32 0 %splat = shufflevector %in, undef, zeroinitializer @@ -42,7 +42,7 @@ define i32 @extractconstant_shuffle_maybe_out_of_range(i32 %v) { define i32 @extractconstant_shuffle_invalid_index(i32 %v) { ; CHECK-LABEL: define i32 @extractconstant_shuffle_invalid_index( ; CHECK-SAME: i32 [[V:%.*]]) { -; CHECK-NEXT: ret i32 extractelement ( shufflevector ( insertelement ( undef, i32 1024, i32 0), undef, zeroinitializer), i32 -1) +; CHECK-NEXT: ret i32 extractelement ( splat (i32 1024), i32 -1) ; %in = insertelement undef, i32 1024, i32 0 %splat = shufflevector %in, undef, zeroinitializer diff --git a/llvm/test/Transforms/InstSimplify/ConstProp/vscale-inseltpoison.ll b/llvm/test/Transforms/InstSimplify/ConstProp/vscale-inseltpoison.ll index e1c46a653f8df..a38dfaf8f5819 100644 --- a/llvm/test/Transforms/InstSimplify/ConstProp/vscale-inseltpoison.ll +++ b/llvm/test/Transforms/InstSimplify/ConstProp/vscale-inseltpoison.ll @@ -43,7 +43,7 @@ define @sub() { define @sub_splat() { ; CHECK-LABEL: @sub_splat( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i32 -16, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i32 -16) ; %r = sub zeroinitializer, splat (i32 16) ret %r @@ -195,7 +195,7 @@ define @insertelement() { define @shufflevector() { ; CHECK-LABEL: @shufflevector( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i32 1, i32 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i32 1) ; %i = insertelement poison, i32 1, i32 0 %i2 = shufflevector %i, poison, zeroinitializer @@ -208,7 +208,7 @@ define @shufflevector() { define @bitcast() { ; CHECK-LABEL: @bitcast( -; CHECK-NEXT: ret bitcast ( shufflevector ( insertelement ( poison, i32 1, i32 0), poison, zeroinitializer) to ) +; CHECK-NEXT: ret bitcast ( splat (i32 1) to ) ; %i1 = insertelement poison, i32 1, i32 0 %i2 = shufflevector %i1, poison, zeroinitializer @@ -249,7 +249,7 @@ define @icmp_undef() { define @icmp_zero() { ; CHECK-LABEL: @icmp_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %r = icmp eq zeroinitializer, zeroinitializer ret %r @@ -257,7 +257,7 @@ define @icmp_zero() { define @fcmp_true() { ; CHECK-LABEL: @fcmp_true( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %r = fcmp true undef, undef ret %r @@ -281,7 +281,7 @@ define @fcmp_undef() { define @fcmp_not_equality() { ; CHECK-LABEL: @fcmp_not_equality( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %r = icmp ule undef, zeroinitializer ret %r diff --git a/llvm/test/Transforms/InstSimplify/ConstProp/vscale-shufflevector-inseltpoison.ll b/llvm/test/Transforms/InstSimplify/ConstProp/vscale-shufflevector-inseltpoison.ll index 912180eee6bae..aa37cdd35e304 100644 --- a/llvm/test/Transforms/InstSimplify/ConstProp/vscale-shufflevector-inseltpoison.ll +++ b/llvm/test/Transforms/InstSimplify/ConstProp/vscale-shufflevector-inseltpoison.ll @@ -18,7 +18,7 @@ target triple = "aarch64" define @vscale_version() { ; CHECK-LABEL: define @vscale_version() { -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i32 0), undef, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %splatter = insertelement poison, i1 true, i32 0 %foo = shufflevector %splatter, undef, zeroinitializer diff --git a/llvm/test/Transforms/InstSimplify/ConstProp/vscale-shufflevector.ll b/llvm/test/Transforms/InstSimplify/ConstProp/vscale-shufflevector.ll index 6b88b1d2a934c..eb0dd6962e864 100644 --- a/llvm/test/Transforms/InstSimplify/ConstProp/vscale-shufflevector.ll +++ b/llvm/test/Transforms/InstSimplify/ConstProp/vscale-shufflevector.ll @@ -18,7 +18,7 @@ target triple = "aarch64" define @vscale_version() { ; CHECK-LABEL: define @vscale_version() { -; CHECK-NEXT: ret shufflevector ( insertelement ( undef, i1 true, i32 0), undef, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %splatter = insertelement undef, i1 true, i32 0 %foo = shufflevector %splatter, undef, zeroinitializer diff --git a/llvm/test/Transforms/InstSimplify/ConstProp/vscale.ll b/llvm/test/Transforms/InstSimplify/ConstProp/vscale.ll index 8ace257a8caec..e24f57445a4d1 100644 --- a/llvm/test/Transforms/InstSimplify/ConstProp/vscale.ll +++ b/llvm/test/Transforms/InstSimplify/ConstProp/vscale.ll @@ -43,7 +43,7 @@ define @sub() { define @sub_splat() { ; CHECK-LABEL: @sub_splat( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i32 -16, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i32 -16) ; %r = sub zeroinitializer, splat (i32 16) ret %r @@ -195,7 +195,7 @@ define @insertelement() { define @shufflevector() { ; CHECK-LABEL: @shufflevector( -; CHECK-NEXT: ret shufflevector ( insertelement ( undef, i32 1, i32 0), undef, zeroinitializer) +; CHECK-NEXT: ret splat (i32 1) ; %i = insertelement undef, i32 1, i32 0 %i2 = shufflevector %i, undef, zeroinitializer @@ -208,7 +208,7 @@ define @shufflevector() { define @bitcast() { ; CHECK-LABEL: @bitcast( -; CHECK-NEXT: ret bitcast ( shufflevector ( insertelement ( undef, i32 1, i32 0), undef, zeroinitializer) to ) +; CHECK-NEXT: ret bitcast ( splat (i32 1) to ) ; %i1 = insertelement undef, i32 1, i32 0 %i2 = shufflevector %i1, undef, zeroinitializer @@ -249,7 +249,7 @@ define @icmp_undef() { define @icmp_zero() { ; CHECK-LABEL: @icmp_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %r = icmp eq zeroinitializer, zeroinitializer ret %r @@ -257,7 +257,7 @@ define @icmp_zero() { define @fcmp_true() { ; CHECK-LABEL: @fcmp_true( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %r = fcmp true undef, undef ret %r @@ -281,7 +281,7 @@ define @fcmp_undef() { define @fcmp_not_equality() { ; CHECK-LABEL: @fcmp_not_equality( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %r = icmp ule undef, zeroinitializer ret %r diff --git a/llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll b/llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll index b475b8199541d..a3ad5f0139142 100644 --- a/llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll +++ b/llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -passes=instsimplify -S | FileCheck %s --check-prefixes=CHECK,CONSTVEC -; RUN: opt < %s -passes=instsimplify -use-constant-fp-for-fixed-length-splat -use-constant-int-for-fixed-length-splat -S | FileCheck %s --check-prefixes=CHECK,CONSTSPLAT +; RUN: opt < %s -passes=instsimplify -S | FileCheck %s +; RUN: opt < %s -passes=instsimplify -use-constant-fp-for-fixed-length-splat -use-constant-int-for-fixed-length-splat -S | FileCheck %s target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-f64:32:64-v64:64:64-v128:128:128" define <2 x i64> @test1() { @@ -76,12 +76,8 @@ define <4 x i32> @test9(<1 x i64> %y) { } define <1 x i1> @test10() { -; CONSTVEC-LABEL: @test10( -; CONSTVEC-NEXT: [[RET:%.*]] = icmp eq <1 x i64> splat (double 0xFFFFFFFFFFFFFFFF) to i64)>, zeroinitializer -; CONSTVEC-NEXT: ret <1 x i1> [[RET]] -; -; CONSTSPLAT-LABEL: @test10( -; CONSTSPLAT-NEXT: ret <1 x i1> zeroinitializer +; CHECK-LABEL: @test10( +; CHECK-NEXT: ret <1 x i1> zeroinitializer ; %ret = icmp eq <1 x i64> to i64)>, zeroinitializer ret <1 x i1> %ret @@ -282,11 +278,8 @@ define <16 x i8> @bitcast_constexpr_16i8_8i16_u256uuu256uu() { } define <1 x i32> @bitcast_constexpr_scalar_fp_to_vector_int() { -; CONSTVEC-LABEL: @bitcast_constexpr_scalar_fp_to_vector_int( -; CONSTVEC-NEXT: ret <1 x i32> splat (i32 1065353216) -; -; CONSTSPLAT-LABEL: @bitcast_constexpr_scalar_fp_to_vector_int( -; CONSTSPLAT-NEXT: ret <1 x i32> bitcast (<1 x float> splat (float 1.000000e+00) to <1 x i32>) +; CHECK-LABEL: @bitcast_constexpr_scalar_fp_to_vector_int( +; CHECK-NEXT: ret <1 x i32> splat (i32 1065353216) ; %res = bitcast float 1.0 to <1 x i32> ret <1 x i32> %res diff --git a/llvm/test/Transforms/InstSimplify/cmp-vec-fast-path.ll b/llvm/test/Transforms/InstSimplify/cmp-vec-fast-path.ll index f9cad7e434505..e3e31cb63d6ab 100644 --- a/llvm/test/Transforms/InstSimplify/cmp-vec-fast-path.ll +++ b/llvm/test/Transforms/InstSimplify/cmp-vec-fast-path.ll @@ -13,7 +13,7 @@ define <2 x i1> @i32cmp_eq_fixed_zero() { define @i32cmp_eq_scalable_zero() { ; CHECK-LABEL: @i32cmp_eq_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp eq zeroinitializer, zeroinitializer ret %res @@ -29,7 +29,7 @@ define <2 x i1> @i32cmp_eq_fixed_one() { define @i32cmp_eq_scalable_one() { ; CHECK-LABEL: @i32cmp_eq_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp eq splat (i32 1), splat (i32 1) ret %res @@ -109,7 +109,7 @@ define <2 x i1> @i32cmp_uge_fixed_zero() { define @i32cmp_uge_scalable_zero() { ; CHECK-LABEL: @i32cmp_uge_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp uge zeroinitializer, zeroinitializer ret %res @@ -125,7 +125,7 @@ define <2 x i1> @i32cmp_uge_fixed_one() { define @i32cmp_uge_scalable_one() { ; CHECK-LABEL: @i32cmp_uge_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp uge splat (i32 1), splat (i32 1) ret %res @@ -173,7 +173,7 @@ define <2 x i1> @i32cmp_ule_fixed_zero() { define @i32cmp_ule_scalable_zero() { ; CHECK-LABEL: @i32cmp_ule_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp ule zeroinitializer, zeroinitializer ret %res @@ -189,7 +189,7 @@ define <2 x i1> @i32cmp_ule_fixed_one() { define @i32cmp_ule_scalable_one() { ; CHECK-LABEL: @i32cmp_ule_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp ule splat (i32 1), splat (i32 1) ret %res @@ -237,7 +237,7 @@ define <2 x i1> @i32cmp_sge_fixed_zero() { define @i32cmp_sge_scalable_zero() { ; CHECK-LABEL: @i32cmp_sge_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp sge zeroinitializer, zeroinitializer ret %res @@ -253,7 +253,7 @@ define <2 x i1> @i32cmp_sge_fixed_one() { define @i32cmp_sge_scalable_one() { ; CHECK-LABEL: @i32cmp_sge_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp sge splat (i32 1), splat (i32 1) ret %res @@ -301,7 +301,7 @@ define <2 x i1> @i32cmp_sle_fixed_zero() { define @i32cmp_sle_scalable_zero() { ; CHECK-LABEL: @i32cmp_sle_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp sle zeroinitializer, zeroinitializer ret %res @@ -317,7 +317,7 @@ define <2 x i1> @i32cmp_sle_fixed_one() { define @i32cmp_sle_scalable_one() { ; CHECK-LABEL: @i32cmp_sle_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = icmp sle splat (i32 1), splat (i32 1) ret %res @@ -365,7 +365,7 @@ define <2 x i1> @floatcmp_oeq_fixed_zero() { define @floatcmp_oeq_scalable_zero() { ; CHECK-LABEL: @floatcmp_oeq_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp oeq zeroinitializer, zeroinitializer ret %res @@ -381,7 +381,7 @@ define <2 x i1> @floatcmp_oeq_fixed_one() { define @floatcmp_oeq_scalable_one() { ; CHECK-LABEL: @floatcmp_oeq_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp oeq splat (float 1.0), splat (float 1.0) ret %res @@ -429,7 +429,7 @@ define <2 x i1> @floatcmp_oge_fixed_zero() { define @floatcmp_oge_scalable_zero() { ; CHECK-LABEL: @floatcmp_oge_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp oge zeroinitializer, zeroinitializer ret %res @@ -445,7 +445,7 @@ define <2 x i1> @floatcmp_oge_fixed_one() { define @floatcmp_oge_scalable_one() { ; CHECK-LABEL: @floatcmp_oge_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp oge splat (float 1.0), splat (float 1.0) ret %res @@ -493,7 +493,7 @@ define <2 x i1> @floatcmp_ole_fixed_zero() { define @floatcmp_ole_scalable_zero() { ; CHECK-LABEL: @floatcmp_ole_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp ole zeroinitializer, zeroinitializer ret %res @@ -509,7 +509,7 @@ define <2 x i1> @floatcmp_ole_fixed_one() { define @floatcmp_ole_scalable_one() { ; CHECK-LABEL: @floatcmp_ole_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp ole splat (float 1.0), splat (float 1.0) ret %res @@ -557,7 +557,7 @@ define <2 x i1> @floatcmp_ord_fixed_zero() { define @floatcmp_ord_scalable_zero() { ; CHECK-LABEL: @floatcmp_ord_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp ord zeroinitializer, zeroinitializer ret %res @@ -573,7 +573,7 @@ define <2 x i1> @floatcmp_ord_fixed_one() { define @floatcmp_ord_scalable_one() { ; CHECK-LABEL: @floatcmp_ord_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp ord splat (float 1.0), splat (float 1.0) ret %res @@ -589,7 +589,7 @@ define <2 x i1> @floatcmp_ueq_fixed_zero() { define @floatcmp_ueq_scalable_zero() { ; CHECK-LABEL: @floatcmp_ueq_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp ueq zeroinitializer, zeroinitializer ret %res @@ -605,7 +605,7 @@ define <2 x i1> @floatcmp_ueq_fixed_one() { define @floatcmp_ueq_scalable_one() { ; CHECK-LABEL: @floatcmp_ueq_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp ueq splat (float 1.0), splat (float 1.0) ret %res @@ -653,7 +653,7 @@ define <2 x i1> @floatcmp_uge_fixed_zero() { define @floatcmp_uge_scalable_zero() { ; CHECK-LABEL: @floatcmp_uge_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp uge zeroinitializer, zeroinitializer ret %res @@ -669,7 +669,7 @@ define <2 x i1> @floatcmp_uge_fixed_one() { define @floatcmp_uge_scalable_one() { ; CHECK-LABEL: @floatcmp_uge_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp uge splat (float 1.0), splat (float 1.0) ret %res @@ -717,7 +717,7 @@ define <2 x i1> @floatcmp_ule_fixed_zero() { define @floatcmp_ule_scalable_zero() { ; CHECK-LABEL: @floatcmp_ule_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp ule zeroinitializer, zeroinitializer ret %res @@ -733,7 +733,7 @@ define <2 x i1> @floatcmp_ule_fixed_one() { define @floatcmp_ule_scalable_one() { ; CHECK-LABEL: @floatcmp_ule_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp ule splat (float 1.0), splat (float 1.0) ret %res @@ -813,7 +813,7 @@ define <2 x i1> @floatcmp_true_fixed_zero() { define @floatcmp_true_scalable_zero() { ; CHECK-LABEL: @floatcmp_true_scalable_zero( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp true zeroinitializer, zeroinitializer ret %res @@ -829,7 +829,7 @@ define <2 x i1> @floatcmp_true_fixed_one() { define @floatcmp_true_scalable_one() { ; CHECK-LABEL: @floatcmp_true_scalable_one( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %res = fcmp true splat (float 1.0), splat (float 1.0) ret %res diff --git a/llvm/test/Transforms/InstSimplify/extract-element.ll b/llvm/test/Transforms/InstSimplify/extract-element.ll index 3060586b25a79..7d30805f4fdc7 100644 --- a/llvm/test/Transforms/InstSimplify/extract-element.ll +++ b/llvm/test/Transforms/InstSimplify/extract-element.ll @@ -1,5 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -passes=instsimplify -S | FileCheck %s +; RUN: opt < %s -passes=instsimplify -use-constant-fp-for-fixed-length-splat -use-constant-int-for-fixed-length-splat -S | FileCheck %s ; Weird Types diff --git a/llvm/test/Transforms/InstSimplify/fp-nan.ll b/llvm/test/Transforms/InstSimplify/fp-nan.ll index 22d01ac8c2ad1..fe3a8c68674c5 100644 --- a/llvm/test/Transforms/InstSimplify/fp-nan.ll +++ b/llvm/test/Transforms/InstSimplify/fp-nan.ll @@ -51,7 +51,7 @@ define <2 x float> @fsub_nan_op1_vec(<2 x float> %x) { define @fsub_nan_op1_scalable_vec_0( %x) { ; CHECK-LABEL: @fsub_nan_op1_scalable_vec_0( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, float 0x7FF9000000000000, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (float 0x7FF9000000000000) ; %r = fsub %x, splat (float 0x7FF1000000000000) ret %r @@ -59,7 +59,7 @@ define @fsub_nan_op1_scalable_vec_0( %x define @fsub_nan_op1_scalable_vec_1( %x) { ; CHECK-LABEL: @fsub_nan_op1_scalable_vec_1( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, float 0xFFF9000000000000, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (float 0xFFF9000000000000) ; %r = fsub %x, splat (float 0xFFF1000000000000) ret %r @@ -85,7 +85,7 @@ define <2 x double> @fmul_nan_op0_vec(<2 x double> %x) { define @fmul_nan_op0_scalable_vec_0( %x) { ; CHECK-LABEL: @fmul_nan_op0_scalable_vec_0( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, double 0xFFF8000000000001, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (double 0xFFF8000000000001) ; %r = fmul splat (double 0xFFF0000000000001), %x ret %r @@ -93,7 +93,7 @@ define @fmul_nan_op0_scalable_vec_0( define @fmul_nan_op0_scalable_vec_1( %x) { ; CHECK-LABEL: @fmul_nan_op0_scalable_vec_1( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, double 0xFFF8DEADDEADDEAD, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (double 0xFFF8DEADDEADDEAD) ; %r = fmul splat (double 0xFFF0DEADDEADDEAD), %x ret %r @@ -111,7 +111,7 @@ define <2 x float> @fmul_nan_op1(<2 x float> %x) { define @fmul_nan_op1_scalable_vec( %x) { ; CHECK-LABEL: @fmul_nan_op1_scalable_vec( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, double 0x7FF8000000000000, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (double 0x7FF8000000000000) ; %r = fmul %x, splat (double 0x7FF8000000000000) ret %r @@ -129,7 +129,7 @@ define <2 x double> @fdiv_nan_op0(<2 x double> %x) { define @fdivl_nan_op0_scalable_vec( %x) { ; CHECK-LABEL: @fdivl_nan_op0_scalable_vec( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, double 0xFFF800000000000F, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (double 0xFFF800000000000F) ; %r = fdiv splat (double 0xFFF800000000000F), %x ret %r @@ -147,7 +147,7 @@ define <2 x half> @fdiv_nan_op1(<2 x half> %x) { define @fdiv_nan_op1_scalable_vec( %x) { ; CHECK-LABEL: @fdiv_nan_op1_scalable_vec( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, half 0xH7FFF, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (half 0xH7FFF) ; %r = fdiv %x, splat (half 0xH7FFF) ret %r @@ -220,7 +220,7 @@ define <2 x double> @fneg_nan_2(<2 x double> %x) { define @fneg_nan_2_scalable_vec() { ; CHECK-LABEL: @fneg_nan_2_scalable_vec( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, double 0xFFF9234567890ABC, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (double 0xFFF9234567890ABC) ; %r = fsub splat (double -0.0), splat (double 0xFFF1234567890ABC) ret %r @@ -237,7 +237,7 @@ define <2 x double> @unary_fneg_nan_2(<2 x double> %x) { ; FIXME: This doesn't behave the same way as the fixed-length vectors above define @unary_fneg_nan_2_scalable_vec_0() { ; CHECK-LABEL: @unary_fneg_nan_2_scalable_vec_0( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, double 0x7FF1234567890ABC, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (double 0x7FF1234567890ABC) ; %r = fneg splat (double 0xFFF1234567890ABC) ret %r @@ -246,7 +246,7 @@ define @unary_fneg_nan_2_scalable_vec_0() { ; FIXME: This doesn't behave the same way as the fixed-length vectors above define @unary_fneg_nan_2_scalable_vec_1() { ; CHECK-LABEL: @unary_fneg_nan_2_scalable_vec_1( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, double 0xFFF0000000000001, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (double 0xFFF0000000000001) ; %r = fneg splat (double 0x7FF0000000000001) ret %r diff --git a/llvm/test/Transforms/InstSimplify/gep.ll b/llvm/test/Transforms/InstSimplify/gep.ll index 276707894146e..b23494fc56aa4 100644 --- a/llvm/test/Transforms/InstSimplify/gep.ll +++ b/llvm/test/Transforms/InstSimplify/gep.ll @@ -251,7 +251,7 @@ define <4 x ptr> @vector_idx_mix_scalar_vector() { define @scalable_idx_scalar() { ; CHECK-LABEL: @scalable_idx_scalar( -; CHECK-NEXT: ret getelementptr (i32, zeroinitializer, shufflevector ( insertelement ( poison, i64 1, i64 0), poison, zeroinitializer)) +; CHECK-NEXT: ret getelementptr (i32, zeroinitializer, splat (i64 1)) ; %gep = getelementptr i32, zeroinitializer, i64 1 ret %gep diff --git a/llvm/test/Transforms/InstSimplify/vscale-inseltpoison.ll b/llvm/test/Transforms/InstSimplify/vscale-inseltpoison.ll index bd9650bd2d081..70ca39da95310 100644 --- a/llvm/test/Transforms/InstSimplify/vscale-inseltpoison.ll +++ b/llvm/test/Transforms/InstSimplify/vscale-inseltpoison.ll @@ -61,7 +61,7 @@ define @insertelement_inline_to_ret() { define @insertelement_shufflevector_inline_to_ret() { ; CHECK-LABEL: @insertelement_shufflevector_inline_to_ret( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i32 1, i32 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i32 1) ; %i = insertelement poison, i32 1, i32 0 %i2 = shufflevector %i, poison, zeroinitializer @@ -132,7 +132,7 @@ define i32 @insert_extract_element_same_vec_idx_4() { define @cmp_le_smax_always_true( %x) { ; CHECK-LABEL: @cmp_le_smax_always_true( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %cmp = icmp sle %x, splat (i64 9223372036854775807) ret %cmp @@ -140,7 +140,7 @@ define @cmp_le_smax_always_true( %x) { define @bitcast() { ; CHECK-LABEL: @bitcast( -; CHECK-NEXT: ret bitcast ( shufflevector ( insertelement ( poison, i32 1, i32 0), poison, zeroinitializer) to ) +; CHECK-NEXT: ret bitcast ( splat (i32 1) to ) ; %i1 = insertelement poison, i32 1, i32 0 %i2 = shufflevector %i1, poison, zeroinitializer diff --git a/llvm/test/Transforms/InstSimplify/vscale.ll b/llvm/test/Transforms/InstSimplify/vscale.ll index 768c5f4ba9ea7..47cd88f4d5e4a 100644 --- a/llvm/test/Transforms/InstSimplify/vscale.ll +++ b/llvm/test/Transforms/InstSimplify/vscale.ll @@ -61,7 +61,7 @@ define @insertelement_inline_to_ret() { define @insertelement_shufflevector_inline_to_ret() { ; CHECK-LABEL: @insertelement_shufflevector_inline_to_ret( -; CHECK-NEXT: ret shufflevector ( insertelement ( undef, i32 1, i32 0), undef, zeroinitializer) +; CHECK-NEXT: ret splat (i32 1) ; %i = insertelement undef, i32 1, i32 0 %i2 = shufflevector %i, undef, zeroinitializer @@ -144,7 +144,7 @@ entry: define @cmp_le_smax_always_true( %x) { ; CHECK-LABEL: @cmp_le_smax_always_true( -; CHECK-NEXT: ret shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer) +; CHECK-NEXT: ret splat (i1 true) ; %cmp = icmp sle %x, splat (i64 9223372036854775807) ret %cmp @@ -152,7 +152,7 @@ define @cmp_le_smax_always_true( %x) { define @bitcast() { ; CHECK-LABEL: @bitcast( -; CHECK-NEXT: ret bitcast ( shufflevector ( insertelement ( undef, i32 1, i32 0), undef, zeroinitializer) to ) +; CHECK-NEXT: ret bitcast ( splat (i32 1) to ) ; %i1 = insertelement undef, i32 1, i32 0 %i2 = shufflevector %i1, undef, zeroinitializer diff --git a/llvm/test/Transforms/InterleavedAccess/AArch64/scalable-deinterleave-intrinsics.ll b/llvm/test/Transforms/InterleavedAccess/AArch64/scalable-deinterleave-intrinsics.ll index e5b56eb54f927..436389ba5b991 100644 --- a/llvm/test/Transforms/InterleavedAccess/AArch64/scalable-deinterleave-intrinsics.ll +++ b/llvm/test/Transforms/InterleavedAccess/AArch64/scalable-deinterleave-intrinsics.ll @@ -7,7 +7,7 @@ target triple = "aarch64-linux-gnu" define void @deinterleave_nxi8_factor2(ptr %ptr) #0 { ; CHECK-LABEL: define void @deinterleave_nxi8_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]]) #[[ATTR0:[0-9]+]] { -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv16i8( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv16i8( splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: ret void @@ -22,7 +22,7 @@ define void @deinterleave_nxi8_factor2(ptr %ptr) #0 { define void @deinterleave_nxi16_factor2(ptr %ptr) #0 { ; CHECK-LABEL: define void @deinterleave_nxi16_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv8i16( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv8i16( splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: ret void @@ -37,7 +37,7 @@ define void @deinterleave_nxi16_factor2(ptr %ptr) #0 { define void @deinterleave_nx8xi32_factor2(ptr %ptr) #0 { ; CHECK-LABEL: define void @deinterleave_nx8xi32_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: ret void @@ -52,7 +52,7 @@ define void @deinterleave_nx8xi32_factor2(ptr %ptr) #0 { define void @deinterleave_nxi64_factor2(ptr %ptr) #0 { ; CHECK-LABEL: define void @deinterleave_nxi64_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2i64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2i64( splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: ret void @@ -67,7 +67,7 @@ define void @deinterleave_nxi64_factor2(ptr %ptr) #0 { define void @deinterleave_nxfloat_factor2(ptr %ptr) #0 { ; CHECK-LABEL: define void @deinterleave_nxfloat_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4f32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4f32( splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: ret void @@ -82,7 +82,7 @@ define void @deinterleave_nxfloat_factor2(ptr %ptr) #0 { define void @deinterleave_nxdouble_factor2(ptr %ptr) #0 { ; CHECK-LABEL: define void @deinterleave_nxdouble_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: ret void @@ -97,7 +97,7 @@ define void @deinterleave_nxdouble_factor2(ptr %ptr) #0 { define void @deinterleave_nxptr_factor2(ptr %ptr) #0 { ; CHECK-LABEL: define void @deinterleave_nxptr_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2p0( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2p0( splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: ret void @@ -112,7 +112,7 @@ define void @deinterleave_nxptr_factor2(ptr %ptr) #0 { define void @interleave_nxi8_factor2(ptr %ptr, %l, %r) #0 { ; CHECK-LABEL: define void @interleave_nxi8_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]], [[L:%.*]], [[R:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv16i8( [[L]], [[R]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv16i8( [[L]], [[R]], splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: ret void ; %interleave = tail call @llvm.vector.interleave2.nxv32i8( %l, %r) @@ -123,7 +123,7 @@ define void @interleave_nxi8_factor2(ptr %ptr, %l, %l, %r) #0 { ; CHECK-LABEL: define void @interleave_nxi16_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]], [[L:%.*]], [[R:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv8i16( [[L]], [[R]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv8i16( [[L]], [[R]], splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: ret void ; %interleave = tail call @llvm.vector.interleave2.nxv16i16( %l, %r) @@ -134,7 +134,7 @@ define void @interleave_nxi16_factor2(ptr %ptr, %l, %l, %r) #0 { ; CHECK-LABEL: define void @interleave_nxi32_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]], [[L:%.*]], [[R:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv4i32( [[L]], [[R]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv4i32( [[L]], [[R]], splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: ret void ; %interleave = tail call @llvm.vector.interleave2.nxv8i32( %l, %r) @@ -145,7 +145,7 @@ define void @interleave_nxi32_factor2(ptr %ptr, %l, %l, %r) #0 { ; CHECK-LABEL: define void @interleave_nxi64_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]], [[L:%.*]], [[R:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2i64( [[L]], [[R]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2i64( [[L]], [[R]], splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: ret void ; %interleave = tail call @llvm.vector.interleave2.nxv4i64( %l, %r) @@ -156,7 +156,7 @@ define void @interleave_nxi64_factor2(ptr %ptr, %l, %l, %r) #0 { ; CHECK-LABEL: define void @interleave_nxfloat_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]], [[L:%.*]], [[R:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv4f32( [[L]], [[R]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv4f32( [[L]], [[R]], splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: ret void ; %interleave = tail call @llvm.vector.interleave2.nxv8f32( %l, %r) @@ -167,7 +167,7 @@ define void @interleave_nxfloat_factor2(ptr %ptr, %l, %l, %r) #0 { ; CHECK-LABEL: define void @interleave_nxdouble_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]], [[L:%.*]], [[R:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2f64( [[L]], [[R]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2f64( [[L]], [[R]], splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: ret void ; %interleave = tail call @llvm.vector.interleave2.nxv4f64( %l, %r) @@ -178,7 +178,7 @@ define void @interleave_nxdouble_factor2(ptr %ptr, %l, %l, %r) #0 { ; CHECK-LABEL: define void @interleave_nxptr_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]], [[L:%.*]], [[R:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2p0( [[L]], [[R]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[PTR]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2p0( [[L]], [[R]], splat (i1 true), ptr [[PTR]]) ; CHECK-NEXT: ret void ; %interleave = tail call @llvm.vector.interleave2.nxv4p0( %l, %r) @@ -192,25 +192,25 @@ define void @deinterleave_wide_nxi32_factor2(ptr %ptr) #0 { ; CHECK-LABEL: define void @deinterleave_wide_nxi32_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]]) #[[ATTR0]] { ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr , ptr [[PTR]], i64 0 -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP1]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( splat (i1 true), ptr [[TMP1]]) ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.vector.insert.nxv16i32.nxv4i32( poison, [[TMP2]], i64 0) ; CHECK-NEXT: [[TMP4:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: [[TMP5:%.*]] = call @llvm.vector.insert.nxv16i32.nxv4i32( poison, [[TMP4]], i64 0) ; CHECK-NEXT: [[TMP6:%.*]] = getelementptr , ptr [[PTR]], i64 2 -; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP6]]) +; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( splat (i1 true), ptr [[TMP6]]) ; CHECK-NEXT: [[TMP7:%.*]] = extractvalue { , } [[LDN1]], 0 ; CHECK-NEXT: [[TMP8:%.*]] = call @llvm.vector.insert.nxv16i32.nxv4i32( [[TMP3]], [[TMP7]], i64 4) ; CHECK-NEXT: [[TMP9:%.*]] = extractvalue { , } [[LDN1]], 1 ; CHECK-NEXT: [[TMP10:%.*]] = call @llvm.vector.insert.nxv16i32.nxv4i32( [[TMP5]], [[TMP9]], i64 4) ; CHECK-NEXT: [[TMP11:%.*]] = getelementptr , ptr [[PTR]], i64 4 -; CHECK-NEXT: [[LDN2:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP11]]) +; CHECK-NEXT: [[LDN2:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( splat (i1 true), ptr [[TMP11]]) ; CHECK-NEXT: [[TMP12:%.*]] = extractvalue { , } [[LDN2]], 0 ; CHECK-NEXT: [[TMP13:%.*]] = call @llvm.vector.insert.nxv16i32.nxv4i32( [[TMP8]], [[TMP12]], i64 8) ; CHECK-NEXT: [[TMP14:%.*]] = extractvalue { , } [[LDN2]], 1 ; CHECK-NEXT: [[TMP15:%.*]] = call @llvm.vector.insert.nxv16i32.nxv4i32( [[TMP10]], [[TMP14]], i64 8) ; CHECK-NEXT: [[TMP16:%.*]] = getelementptr , ptr [[PTR]], i64 6 -; CHECK-NEXT: [[LDN3:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP16]]) +; CHECK-NEXT: [[LDN3:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( splat (i1 true), ptr [[TMP16]]) ; CHECK-NEXT: [[TMP17:%.*]] = extractvalue { , } [[LDN3]], 0 ; CHECK-NEXT: [[TMP18:%.*]] = call @llvm.vector.insert.nxv16i32.nxv4i32( [[TMP13]], [[TMP17]], i64 12) ; CHECK-NEXT: [[TMP19:%.*]] = extractvalue { , } [[LDN3]], 1 @@ -228,13 +228,13 @@ define void @deinterleave_wide_nxdouble_factor2(ptr %ptr) #0 { ; CHECK-LABEL: define void @deinterleave_wide_nxdouble_factor2 ; CHECK-SAME: (ptr [[PTR:%.*]]) #[[ATTR0]] { ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr , ptr [[PTR]], i64 0 -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP1]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( splat (i1 true), ptr [[TMP1]]) ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.vector.insert.nxv4f64.nxv2f64( poison, [[TMP2]], i64 0) ; CHECK-NEXT: [[TMP4:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: [[TMP5:%.*]] = call @llvm.vector.insert.nxv4f64.nxv2f64( poison, [[TMP4]], i64 0) ; CHECK-NEXT: [[TMP6:%.*]] = getelementptr , ptr [[PTR]], i64 2 -; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP6]]) +; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( splat (i1 true), ptr [[TMP6]]) ; CHECK-NEXT: [[TMP7:%.*]] = extractvalue { , } [[LDN1]], 0 ; CHECK-NEXT: [[TMP8:%.*]] = call @llvm.vector.insert.nxv4f64.nxv2f64( [[TMP3]], [[TMP7]], i64 2) ; CHECK-NEXT: [[TMP9:%.*]] = extractvalue { , } [[LDN1]], 1 @@ -254,11 +254,11 @@ define void @interleave_wide_nxdouble_factor2(ptr %ptr, %l ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr , ptr [[PTR]], i64 0 ; CHECK-NEXT: [[TMP2:%.*]] = call @llvm.vector.extract.nxv2f64.nxv4f64( [[L]], i64 0) ; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.vector.extract.nxv2f64.nxv4f64( [[R]], i64 0) -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2f64( [[TMP2]], [[TMP3]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP1]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2f64( [[TMP2]], [[TMP3]], splat (i1 true), ptr [[TMP1]]) ; CHECK-NEXT: [[TMP4:%.*]] = getelementptr , ptr [[PTR]], i64 2 ; CHECK-NEXT: [[TMP5:%.*]] = call @llvm.vector.extract.nxv2f64.nxv4f64( [[L]], i64 2) ; CHECK-NEXT: [[TMP6:%.*]] = call @llvm.vector.extract.nxv2f64.nxv4f64( [[R]], i64 2) -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2f64( [[TMP5]], [[TMP6]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP4]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv2f64( [[TMP5]], [[TMP6]], splat (i1 true), ptr [[TMP4]]) ; CHECK-NEXT: ret void ; %interleave = tail call @llvm.vector.interleave2.nxv8f64( %l, %r) diff --git a/llvm/test/Transforms/InterleavedAccess/AArch64/sve-deinterleave4.ll b/llvm/test/Transforms/InterleavedAccess/AArch64/sve-deinterleave4.ll index 06ecff6729881..61a68692ff5b9 100644 --- a/llvm/test/Transforms/InterleavedAccess/AArch64/sve-deinterleave4.ll +++ b/llvm/test/Transforms/InterleavedAccess/AArch64/sve-deinterleave4.ll @@ -5,7 +5,7 @@ define void @deinterleave4(ptr %src) { ; CHECK-LABEL: define void @deinterleave4 ; CHECK-SAME: (ptr [[SRC:%.*]]) #[[ATTR0:[0-9]+]] { -; CHECK-NEXT: [[LDN:%.*]] = call { , , , } @llvm.aarch64.sve.ld4.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[SRC]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , , , } @llvm.aarch64.sve.ld4.sret.nxv4i32( splat (i1 true), ptr [[SRC]]) ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { , , , } [[LDN]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , , , } [[LDN]], 1 ; CHECK-NEXT: [[TMP3:%.*]] = extractvalue { , , , } [[LDN]], 2 @@ -34,7 +34,7 @@ define void @wide_deinterleave4(ptr %src) { ; CHECK-LABEL: define void @wide_deinterleave4 ; CHECK-SAME: (ptr [[SRC:%.*]]) #[[ATTR0]] { ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr , ptr [[SRC]], i64 0 -; CHECK-NEXT: [[LDN:%.*]] = call { , , , } @llvm.aarch64.sve.ld4.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP1]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , , , } @llvm.aarch64.sve.ld4.sret.nxv4i32( splat (i1 true), ptr [[TMP1]]) ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , , , } [[LDN]], 0 ; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.vector.insert.nxv8i32.nxv4i32( poison, [[TMP2]], i64 0) ; CHECK-NEXT: [[TMP4:%.*]] = extractvalue { , , , } [[LDN]], 1 @@ -44,7 +44,7 @@ define void @wide_deinterleave4(ptr %src) { ; CHECK-NEXT: [[TMP8:%.*]] = extractvalue { , , , } [[LDN]], 3 ; CHECK-NEXT: [[TMP9:%.*]] = call @llvm.vector.insert.nxv8i32.nxv4i32( poison, [[TMP8]], i64 0) ; CHECK-NEXT: [[TMP10:%.*]] = getelementptr , ptr [[SRC]], i64 4 -; CHECK-NEXT: [[LDN1:%.*]] = call { , , , } @llvm.aarch64.sve.ld4.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP10]]) +; CHECK-NEXT: [[LDN1:%.*]] = call { , , , } @llvm.aarch64.sve.ld4.sret.nxv4i32( splat (i1 true), ptr [[TMP10]]) ; CHECK-NEXT: [[TMP11:%.*]] = extractvalue { , , , } [[LDN1]], 0 ; CHECK-NEXT: [[TMP12:%.*]] = call @llvm.vector.insert.nxv8i32.nxv4i32( [[TMP3]], [[TMP11]], i64 4) ; CHECK-NEXT: [[TMP13:%.*]] = extractvalue { , , , } [[LDN1]], 1 @@ -75,12 +75,12 @@ define void @wide_deinterleave4(ptr %src) { define void @mix_deinterleave4_deinterleave2(ptr %src) { ; CHECK-LABEL: define void @mix_deinterleave4_deinterleave2 ; CHECK-SAME: (ptr [[SRC:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: [[LDN:%.*]] = call { , , , } @llvm.aarch64.sve.ld4.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[SRC]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , , , } @llvm.aarch64.sve.ld4.sret.nxv4i32( splat (i1 true), ptr [[SRC]]) ; CHECK-NEXT: [[TMP1:%.*]] = extractvalue { , , , } [[LDN]], 0 ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , , , } [[LDN]], 1 ; CHECK-NEXT: [[TMP3:%.*]] = extractvalue { , , , } [[LDN]], 2 ; CHECK-NEXT: [[TMP4:%.*]] = extractvalue { , , , } [[LDN]], 3 -; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[SRC]]) +; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( splat (i1 true), ptr [[SRC]]) ; CHECK-NEXT: [[TMP5:%.*]] = extractvalue { , } [[LDN1]], 0 ; CHECK-NEXT: [[TMP6:%.*]] = extractvalue { , } [[LDN1]], 1 ; CHECK-NEXT: ret void @@ -108,13 +108,13 @@ define void @negative_deinterleave4_test(ptr %src) { ; CHECK-LABEL: define void @negative_deinterleave4_test ; CHECK-SAME: (ptr [[SRC:%.*]]) #[[ATTR0]] { ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr , ptr [[SRC]], i64 0 -; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP1]]) +; CHECK-NEXT: [[LDN:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( splat (i1 true), ptr [[TMP1]]) ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN]], 0 ; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.vector.insert.nxv8i32.nxv4i32( poison, [[TMP2]], i64 0) ; CHECK-NEXT: [[TMP4:%.*]] = extractvalue { , } [[LDN]], 1 ; CHECK-NEXT: [[TMP5:%.*]] = call @llvm.vector.insert.nxv8i32.nxv4i32( poison, [[TMP4]], i64 0) ; CHECK-NEXT: [[TMP6:%.*]] = getelementptr , ptr [[SRC]], i64 2 -; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP6]]) +; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv4i32( splat (i1 true), ptr [[TMP6]]) ; CHECK-NEXT: [[TMP7:%.*]] = extractvalue { , } [[LDN1]], 0 ; CHECK-NEXT: [[TMP8:%.*]] = call @llvm.vector.insert.nxv8i32.nxv4i32( [[TMP3]], [[TMP7]], i64 4) ; CHECK-NEXT: [[TMP9:%.*]] = extractvalue { , } [[LDN1]], 1 diff --git a/llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleave4.ll b/llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleave4.ll index ba9bff093678c..e8d113ae3763d 100644 --- a/llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleave4.ll +++ b/llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleave4.ll @@ -5,7 +5,7 @@ define void @interleave4(ptr %dst, %a, %b, %c, %d) { ; CHECK-LABEL: define void @interleave4 ; CHECK-SAME: (ptr [[DST:%.*]], [[A:%.*]], [[B:%.*]], [[C:%.*]], [[D:%.*]]) #[[ATTR0:[0-9]+]] { -; CHECK-NEXT: call void @llvm.aarch64.sve.st4.nxv4i32( [[A]], [[B]], [[C]], [[D]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[DST]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st4.nxv4i32( [[A]], [[B]], [[C]], [[D]], splat (i1 true), ptr [[DST]]) ; CHECK-NEXT: ret void ; %interleaved.half1 = tail call @llvm.vector.interleave2.nxv8i32( %a, %c) @@ -23,13 +23,13 @@ define void @wide_interleave4(ptr %dst, %a, @llvm.vector.extract.nxv4i32.nxv8i32( [[B]], i64 0) ; CHECK-NEXT: [[TMP4:%.*]] = call @llvm.vector.extract.nxv4i32.nxv8i32( [[C]], i64 0) ; CHECK-NEXT: [[TMP5:%.*]] = call @llvm.vector.extract.nxv4i32.nxv8i32( [[D]], i64 0) -; CHECK-NEXT: call void @llvm.aarch64.sve.st4.nxv4i32( [[TMP2]], [[TMP3]], [[TMP4]], [[TMP5]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP1]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st4.nxv4i32( [[TMP2]], [[TMP3]], [[TMP4]], [[TMP5]], splat (i1 true), ptr [[TMP1]]) ; CHECK-NEXT: [[TMP6:%.*]] = getelementptr , ptr [[DST]], i64 4 ; CHECK-NEXT: [[TMP7:%.*]] = call @llvm.vector.extract.nxv4i32.nxv8i32( [[A]], i64 4) ; CHECK-NEXT: [[TMP8:%.*]] = call @llvm.vector.extract.nxv4i32.nxv8i32( [[B]], i64 4) ; CHECK-NEXT: [[TMP9:%.*]] = call @llvm.vector.extract.nxv4i32.nxv8i32( [[C]], i64 4) ; CHECK-NEXT: [[TMP10:%.*]] = call @llvm.vector.extract.nxv4i32.nxv8i32( [[D]], i64 4) -; CHECK-NEXT: call void @llvm.aarch64.sve.st4.nxv4i32( [[TMP7]], [[TMP8]], [[TMP9]], [[TMP10]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP6]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st4.nxv4i32( [[TMP7]], [[TMP8]], [[TMP9]], [[TMP10]], splat (i1 true), ptr [[TMP6]]) ; CHECK-NEXT: ret void ; %interleaved.half1 = tail call @llvm.vector.interleave2.nxv16i32( %a, %c) @@ -42,8 +42,8 @@ define void @wide_interleave4(ptr %dst, %a, %a, %b, %c, %d) { ; CHECK-LABEL: define void @mix_interleave4_interleave2 ; CHECK-SAME: (ptr [[DST1:%.*]], ptr [[DST2:%.*]], [[A:%.*]], [[B:%.*]], [[C:%.*]], [[D:%.*]]) #[[ATTR0]] { -; CHECK-NEXT: call void @llvm.aarch64.sve.st4.nxv4i32( [[A]], [[B]], [[C]], [[D]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[DST1]]) -; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv4i32( [[A]], [[C]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[DST2]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st4.nxv4i32( [[A]], [[B]], [[C]], [[D]], splat (i1 true), ptr [[DST1]]) +; CHECK-NEXT: call void @llvm.aarch64.sve.st2.nxv4i32( [[A]], [[C]], splat (i1 true), ptr [[DST2]]) ; CHECK-NEXT: ret void ; %interleaved.half1 = tail call @llvm.vector.interleave2.nxv8i32( %a, %c) diff --git a/llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleaved-accesses.ll b/llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleaved-accesses.ll index 8821255a86b2f..0ba812214c948 100644 --- a/llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleaved-accesses.ll +++ b/llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleaved-accesses.ll @@ -595,13 +595,13 @@ define void @deinterleave_nxptr_factor2(ptr %ptr) #2 { ; CHECK-LABEL: define void @deinterleave_nxptr_factor2( ; CHECK-SAME: ptr [[PTR:%.*]]) #[[ATTR2]] { ; CHECK-NEXT: [[TMP1:%.*]] = getelementptr , ptr [[PTR]], i64 0 -; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP1]]) +; CHECK-NEXT: [[LDN1:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( splat (i1 true), ptr [[TMP1]]) ; CHECK-NEXT: [[TMP2:%.*]] = extractvalue { , } [[LDN1]], 0 ; CHECK-NEXT: [[TMP3:%.*]] = call @llvm.vector.insert.nxv4f64.nxv2f64( poison, [[TMP2]], i64 0) ; CHECK-NEXT: [[TMP4:%.*]] = extractvalue { , } [[LDN1]], 1 ; CHECK-NEXT: [[TMP5:%.*]] = call @llvm.vector.insert.nxv4f64.nxv2f64( poison, [[TMP4]], i64 0) ; CHECK-NEXT: [[TMP6:%.*]] = getelementptr , ptr [[PTR]], i64 2 -; CHECK-NEXT: [[LDN2:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), ptr [[TMP6]]) +; CHECK-NEXT: [[LDN2:%.*]] = call { , } @llvm.aarch64.sve.ld2.sret.nxv2f64( splat (i1 true), ptr [[TMP6]]) ; CHECK-NEXT: [[TMP7:%.*]] = extractvalue { , } [[LDN2]], 0 ; CHECK-NEXT: [[TMP8:%.*]] = call @llvm.vector.insert.nxv4f64.nxv2f64( [[TMP3]], [[TMP7]], i64 2) ; CHECK-NEXT: [[TMP9:%.*]] = extractvalue { , } [[LDN2]], 1 diff --git a/llvm/test/Transforms/LICM/hoist-metadata.ll b/llvm/test/Transforms/LICM/hoist-metadata.ll index af4cc314a0599..60b61944b33ae 100644 --- a/llvm/test/Transforms/LICM/hoist-metadata.ll +++ b/llvm/test/Transforms/LICM/hoist-metadata.ll @@ -8,8 +8,8 @@ define void @test_unconditional(i1 %c, ptr dereferenceable(8) align 8 %p) { ; CHECK-LABEL: define void @test_unconditional ; CHECK-SAME: (i1 [[C:%.*]], ptr align 8 dereferenceable(8) [[P:%.*]]) { ; CHECK-NEXT: [[V1:%.*]] = load i32, ptr [[P]], align 4, !range [[RNG0:![0-9]+]] -; CHECK-NEXT: [[V2:%.*]] = load ptr, ptr [[P]], align 8, !nonnull !1, !noundef !1 -; CHECK-NEXT: [[V3:%.*]] = load ptr, ptr [[P]], align 8, !dereferenceable !2, !align !2 +; CHECK-NEXT: [[V2:%.*]] = load ptr, ptr [[P]], align 8, !nonnull [[META1:![0-9]+]], !noundef [[META1]] +; CHECK-NEXT: [[V3:%.*]] = load ptr, ptr [[P]], align 8, !dereferenceable [[META2:![0-9]+]], !align [[META2]] ; CHECK-NEXT: br label [[LOOP:%.*]] ; CHECK: loop: ; CHECK-NEXT: call void @foo(i32 [[V1]], ptr [[V2]], ptr [[V3]]) @@ -36,8 +36,8 @@ define void @test_conditional(i1 %c, i1 %c2, ptr dereferenceable(8) align 8 %p) ; CHECK-LABEL: define void @test_conditional ; CHECK-SAME: (i1 [[C:%.*]], i1 [[C2:%.*]], ptr align 8 dereferenceable(8) [[P:%.*]]) { ; CHECK-NEXT: [[V1:%.*]] = load i32, ptr [[P]], align 4, !range [[RNG0]] -; CHECK-NEXT: [[V2:%.*]] = load ptr, ptr [[P]], align 8, !nonnull !1 -; CHECK-NEXT: [[V3:%.*]] = load ptr, ptr [[P]], align 8, !align !2 +; CHECK-NEXT: [[V2:%.*]] = load ptr, ptr [[P]], align 8, !nonnull [[META1]] +; CHECK-NEXT: [[V3:%.*]] = load ptr, ptr [[P]], align 8, !align [[META2]] ; CHECK-NEXT: br label [[LOOP:%.*]] ; CHECK: loop: ; CHECK-NEXT: br i1 [[C]], label [[IF:%.*]], label [[LATCH:%.*]] @@ -67,10 +67,76 @@ latch: exit: ret void } + +declare i16 @e(i32) + +; FIXME: alias metadata violations are UB, so should not be set on the hoisted +; load, as it may not execute. +define void @noalias_metadata_load_may_not_execute() { +; CHECK-LABEL: define void @noalias_metadata_load_may_not_execute() { +; CHECK-NEXT: entry: +; CHECK-NEXT: [[A:%.*]] = alloca i32, align 16 +; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i32, ptr [[A]] +; CHECK-NEXT: [[GEP_PROMOTED:%.*]] = load i32, ptr [[GEP]], align 4, !tbaa [[TBAA3:![0-9]+]], !noalias [[META7:![0-9]+]] +; CHECK-NEXT: br label [[LOOP_HEADER:%.*]] +; CHECK: loop.header: +; CHECK-NEXT: [[ADD1:%.*]] = phi i32 [ [[GEP_PROMOTED]], [[ENTRY:%.*]] ], [ [[ADD:%.*]], [[LOOP_LATCH:%.*]] ] +; CHECK-NEXT: [[IV:%.*]] = phi i32 [ 0, [[ENTRY]] ], [ [[IV_NEXT:%.*]], [[LOOP_LATCH]] ] +; CHECK-NEXT: [[CALL:%.*]] = call signext i16 @e(i32 [[IV]]) +; CHECK-NEXT: [[C:%.*]] = icmp eq i16 [[CALL]], 0 +; CHECK-NEXT: br i1 [[C]], label [[LOOP_LATCH]], label [[EXIT:%.*]] +; CHECK: loop.latch: +; CHECK-NEXT: [[ADD]] = add i32 [[ADD1]], 1 +; CHECK-NEXT: [[IV_NEXT]] = add i32 [[IV]], 1 +; CHECK-NEXT: [[CMP:%.*]] = icmp ult i32 [[IV]], 100 +; CHECK-NEXT: br i1 [[CMP]], label [[LOOP_HEADER]], label [[EXIT]] +; CHECK: exit: +; CHECK-NEXT: [[ADD2:%.*]] = phi i32 [ [[ADD]], [[LOOP_LATCH]] ], [ [[ADD1]], [[LOOP_HEADER]] ] +; CHECK-NEXT: store i32 [[ADD2]], ptr [[GEP]], align 4, !tbaa [[TBAA3]], !noalias [[META7]] +; CHECK-NEXT: ret void +; +entry: + %a = alloca i32, align 16 + br label %loop.header + +loop.header: + %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop.latch ] + %call = call signext i16 @e(i32 %iv) + %c = icmp eq i16 %call, 0 + br i1 %c, label %loop.latch, label %exit + +loop.latch: + %gep = getelementptr inbounds i32, ptr %a + %l = load i32, ptr %gep, !tbaa !0, !noalias !4 + %add = add i32 %l, 1 + store i32 %add, ptr %gep, align 4, !tbaa !0, !noalias !4 + %iv.next = add i32 %iv, 1 + %cmp = icmp ult i32 %iv, 100 + br i1 %cmp, label %loop.header, label %exit + +exit: + ret void +} + + +!0 = !{!1, !1, i64 0} +!1 = !{!"short", !2, i64 0} +!2 = !{!"omnipotent char", !3, i64 0} +!3 = !{!"Simple C/C++ TBAA"} +!4 = !{!5} +!5 = distinct !{!5, !6} +!6 = distinct !{!6} ;. ; CHECK: attributes #[[ATTR0:[0-9]+]] = { memory(none) } ;. ; CHECK: [[RNG0]] = !{i32 0, i32 10} -; CHECK: [[META1:![0-9]+]] = !{} -; CHECK: [[META2:![0-9]+]] = !{i64 4} +; CHECK: [[META1]] = !{} +; CHECK: [[META2]] = !{i64 4} +; CHECK: [[TBAA3]] = !{[[META4:![0-9]+]], [[META4]], i64 0} +; CHECK: [[META4]] = !{!"short", [[META5:![0-9]+]], i64 0} +; CHECK: [[META5]] = !{!"omnipotent char", [[META6:![0-9]+]], i64 0} +; CHECK: [[META6]] = !{!"Simple C/C++ TBAA"} +; CHECK: [[META7]] = !{[[META8:![0-9]+]]} +; CHECK: [[META8]] = distinct !{[[META8]], [[META9:![0-9]+]]} +; CHECK: [[META9]] = distinct !{[[META9]]} ;. diff --git a/llvm/test/Transforms/LoopIdiom/RISCV/byte-compare-index.ll b/llvm/test/Transforms/LoopIdiom/RISCV/byte-compare-index.ll index 8cf761055bd38..afc28cfda45aa 100644 --- a/llvm/test/Transforms/LoopIdiom/RISCV/byte-compare-index.ll +++ b/llvm/test/Transforms/LoopIdiom/RISCV/byte-compare-index.ll @@ -39,11 +39,11 @@ define i32 @compare_bytes_simple(ptr %a, ptr %b, i32 %len, i32 %n) { ; CHECK-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; CHECK-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 16, i1 true) ; CHECK-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; CHECK-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; CHECK-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; CHECK-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; CHECK: mismatch_vec_loop_inc: @@ -129,11 +129,11 @@ define i32 @compare_bytes_simple(ptr %a, ptr %b, i32 %len, i32 %n) { ; LMUL8-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; LMUL8-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 64, i1 true) ; LMUL8-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; LMUL8-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; LMUL8-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; LMUL8-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; LMUL8: mismatch_vec_loop_inc: @@ -215,11 +215,11 @@ define i32 @compare_bytes_simple(ptr %a, ptr %b, i32 %len, i32 %n) { ; LOOP-DEL-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; LOOP-DEL-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 16, i1 true) ; LOOP-DEL-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; LOOP-DEL-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; LOOP-DEL-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; LOOP-DEL-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LOOP-DEL-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LOOP-DEL-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; LOOP-DEL-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; LOOP-DEL-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; LOOP-DEL: mismatch_vec_loop_inc: @@ -406,11 +406,11 @@ define i32 @compare_bytes_signed_wrap(ptr %a, ptr %b, i32 %len, i32 %n) { ; CHECK-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; CHECK-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 16, i1 true) ; CHECK-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; CHECK-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; CHECK-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; CHECK-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; CHECK: mismatch_vec_loop_inc: @@ -496,11 +496,11 @@ define i32 @compare_bytes_signed_wrap(ptr %a, ptr %b, i32 %len, i32 %n) { ; LMUL8-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; LMUL8-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 64, i1 true) ; LMUL8-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; LMUL8-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; LMUL8-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; LMUL8-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; LMUL8: mismatch_vec_loop_inc: @@ -582,11 +582,11 @@ define i32 @compare_bytes_signed_wrap(ptr %a, ptr %b, i32 %len, i32 %n) { ; LOOP-DEL-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; LOOP-DEL-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 16, i1 true) ; LOOP-DEL-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; LOOP-DEL-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; LOOP-DEL-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; LOOP-DEL-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LOOP-DEL-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LOOP-DEL-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; LOOP-DEL-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; LOOP-DEL-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; LOOP-DEL: mismatch_vec_loop_inc: @@ -794,11 +794,11 @@ define i32 @compare_bytes_simple_end_ne_found(ptr %a, ptr %b, ptr %c, ptr %d, i3 ; CHECK-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; CHECK-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 16, i1 true) ; CHECK-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; CHECK-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; CHECK-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; CHECK-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; CHECK: mismatch_vec_loop_inc: @@ -895,11 +895,11 @@ define i32 @compare_bytes_simple_end_ne_found(ptr %a, ptr %b, ptr %c, ptr %d, i3 ; LMUL8-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; LMUL8-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 64, i1 true) ; LMUL8-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; LMUL8-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; LMUL8-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; LMUL8-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; LMUL8: mismatch_vec_loop_inc: @@ -992,11 +992,11 @@ define i32 @compare_bytes_simple_end_ne_found(ptr %a, ptr %b, ptr %c, ptr %d, i3 ; LOOP-DEL-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; LOOP-DEL-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 16, i1 true) ; LOOP-DEL-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; LOOP-DEL-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; LOOP-DEL-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; LOOP-DEL-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LOOP-DEL-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LOOP-DEL-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; LOOP-DEL-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; LOOP-DEL-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; LOOP-DEL: mismatch_vec_loop_inc: @@ -1245,11 +1245,11 @@ define i32 @compare_bytes_extra_cmp(ptr %a, ptr %b, i32 %len, i32 %n, i32 %x) { ; CHECK-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; CHECK-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 16, i1 true) ; CHECK-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; CHECK-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; CHECK-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; CHECK-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; CHECK: mismatch_vec_loop_inc: @@ -1341,11 +1341,11 @@ define i32 @compare_bytes_extra_cmp(ptr %a, ptr %b, i32 %len, i32 %n, i32 %x) { ; LMUL8-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; LMUL8-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 64, i1 true) ; LMUL8-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; LMUL8-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; LMUL8-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; LMUL8-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; LMUL8: mismatch_vec_loop_inc: @@ -1433,11 +1433,11 @@ define i32 @compare_bytes_extra_cmp(ptr %a, ptr %b, i32 %len, i32 %n, i32 %x) { ; LOOP-DEL-NEXT: [[AVL:%.*]] = sub nuw nsw i64 [[TMP2]], [[MISMATCH_VECTOR_INDEX]] ; LOOP-DEL-NEXT: [[TMP19:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 16, i1 true) ; LOOP-DEL-NEXT: [[TMP20:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[MISMATCH_VECTOR_INDEX]] -; LOOP-DEL-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP20]], splat (i1 true), i32 [[TMP19]]) ; LOOP-DEL-NEXT: [[TMP21:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[MISMATCH_VECTOR_INDEX]] -; LOOP-DEL-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LOOP-DEL-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) -; LOOP-DEL-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP21]], splat (i1 true), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP19]]) +; LOOP-DEL-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP19]]) ; LOOP-DEL-NEXT: [[TMP22:%.*]] = icmp ne i32 [[FIRST]], [[TMP19]] ; LOOP-DEL-NEXT: br i1 [[TMP22]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; LOOP-DEL: mismatch_vec_loop_inc: @@ -1653,11 +1653,11 @@ define void @compare_bytes_cleanup_block(ptr %src1, ptr %src2) { ; CHECK-NEXT: [[AVL:%.*]] = sub nuw nsw i64 0, [[MISMATCH_VECTOR_INDEX]] ; CHECK-NEXT: [[TMP15:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 16, i1 true) ; CHECK-NEXT: [[TMP16:%.*]] = getelementptr i8, ptr [[SRC1]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP16]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP15]]) +; CHECK-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP16]], splat (i1 true), i32 [[TMP15]]) ; CHECK-NEXT: [[TMP17:%.*]] = getelementptr i8, ptr [[SRC2]], i64 [[MISMATCH_VECTOR_INDEX]] -; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP17]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP15]]) -; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP15]]) -; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP15]]) +; CHECK-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv16i8.p0(ptr [[TMP17]], splat (i1 true), i32 [[TMP15]]) +; CHECK-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv16i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP15]]) +; CHECK-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv16i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP15]]) ; CHECK-NEXT: [[TMP18:%.*]] = icmp ne i32 [[FIRST]], [[TMP15]] ; CHECK-NEXT: br i1 [[TMP18]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; CHECK: mismatch_vec_loop_inc: @@ -1742,11 +1742,11 @@ define void @compare_bytes_cleanup_block(ptr %src1, ptr %src2) { ; LMUL8-NEXT: [[AVL:%.*]] = sub nuw nsw i64 0, [[MISMATCH_VECTOR_INDEX]] ; LMUL8-NEXT: [[TMP15:%.*]] = call i32 @llvm.experimental.get.vector.length.i64(i64 [[AVL]], i32 64, i1 true) ; LMUL8-NEXT: [[TMP16:%.*]] = getelementptr i8, ptr [[SRC1]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP16]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP15]]) +; LMUL8-NEXT: [[LHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP16]], splat (i1 true), i32 [[TMP15]]) ; LMUL8-NEXT: [[TMP17:%.*]] = getelementptr i8, ptr [[SRC2]], i64 [[MISMATCH_VECTOR_INDEX]] -; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP17]], shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP15]]) -; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP15]]) -; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, shufflevector ( insertelement ( poison, i1 true, i64 0), poison, zeroinitializer), i32 [[TMP15]]) +; LMUL8-NEXT: [[RHS_LOAD:%.*]] = call @llvm.vp.load.nxv64i8.p0(ptr [[TMP17]], splat (i1 true), i32 [[TMP15]]) +; LMUL8-NEXT: [[MISMATCH_CMP:%.*]] = call @llvm.vp.icmp.nxv64i8( [[LHS_LOAD]], [[RHS_LOAD]], metadata !"ne", splat (i1 true), i32 [[TMP15]]) +; LMUL8-NEXT: [[FIRST:%.*]] = call i32 @llvm.vp.cttz.elts.i32.nxv64i1( [[MISMATCH_CMP]], i1 false, splat (i1 true), i32 [[TMP15]]) ; LMUL8-NEXT: [[TMP18:%.*]] = icmp ne i32 [[FIRST]], [[TMP15]] ; LMUL8-NEXT: br i1 [[TMP18]], label [[MISMATCH_VECTOR_LOOP_FOUND:%.*]], label [[MISMATCH_VECTOR_LOOP_INC]] ; LMUL8: mismatch_vec_loop_inc: diff --git a/llvm/test/Transforms/LoopInterchange/lcssa.ll b/llvm/test/Transforms/LoopInterchange/lcssa.ll index b41eba4ef5617..0a5aefd9e4911 100644 --- a/llvm/test/Transforms/LoopInterchange/lcssa.ll +++ b/llvm/test/Transforms/LoopInterchange/lcssa.ll @@ -180,7 +180,7 @@ for.end16: ; preds = %for.exit ; REMARK: Interchanged ; REMARK-NEXT: lcssa_05 -define void @lcssa_05(ptr %ptr) { +define void @lcssa_05(ptr %ptr, i1 %arg) { entry: br label %outer.header @@ -190,7 +190,7 @@ outer.header: ; preds = %outer.inc, %entry for.body3: ; preds = %bb3, %outer.header %iv.inner = phi i64 [ %iv.inner.next, %bb3 ], [ 1, %outer.header ] - br i1 undef, label %bb2, label %bb3 + br i1 %arg, label %bb2, label %bb3 bb2: ; preds = %for.body3 %arrayidx5 = getelementptr inbounds [100 x [100 x i32]], ptr @A, i64 0, i64 %iv.inner, i64 %iv.outer @@ -225,13 +225,13 @@ for.end16: ; preds = %for.exit ; REMARK: UnsupportedExitPHI ; REMARK-NEXT: lcssa_06 -define void @lcssa_06(ptr %ptr, ptr %ptr1) { +define void @lcssa_06(ptr %ptr, ptr %ptr1, i1 %arg) { entry: br label %outer.header outer.header: ; preds = %outer.inc, %entry %iv.outer = phi i64 [ 1, %entry ], [ %iv.outer.next, %outer.inc ] - br i1 undef, label %for.body3, label %outer.inc + br i1 %arg, label %for.body3, label %outer.inc for.body3: ; preds = %for.body3, %outer.header %iv.inner = phi i64 [ %iv.inner.next, %for.body3 ], [ 1, %outer.header ] @@ -305,13 +305,13 @@ for.end16: ; preds = %for.exit ; is an lcssa phi node outside the loopnest. ; REMARK: Interchanged ; REMARK-NEXT: lcssa_08 -define i64 @lcssa_08(ptr %Arr) { +define i64 @lcssa_08(ptr %Arr, i1 %arg) { entry: br label %for1.header for1.header: ; preds = %for1.inc, %entry %indvars.iv23 = phi i64 [ 0, %entry ], [ %indvars.iv.next24, %for1.inc ] - br i1 undef, label %for2, label %for1.inc + br i1 %arg, label %for2, label %for1.inc for2: ; preds = %for2, %for1.header %indvars.iv = phi i64 [ 0, %for1.header ], [ %indvars.iv.next.3, %for2 ] diff --git a/llvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll b/llvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll index cc787fa55600a..9d2e393937bd5 100644 --- a/llvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll +++ b/llvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll @@ -45,7 +45,7 @@ for.cond1.for.end_crit_edge: ; preds = %for.inc for.inc3: ; preds = %for.cond1.for.end_crit_edge %inc4 = add nsw i32 %inc41, 1 - br i1 undef, label %for.body, label %for.cond.for.end5_crit_edge + br i1 false, label %for.body, label %for.cond.for.end5_crit_edge for.cond.for.end5_crit_edge: ; preds = %for.inc3 ret void @@ -86,7 +86,7 @@ for.cond1.for.end_crit_edge: ; preds = %for.inc for.inc3: ; preds = %for.cond1.for.end_crit_edge %inc4 = add nsw i32 %inc41, 1 - br i1 undef, label %for.body, label %for.cond.for.end5_crit_edge + br i1 false, label %for.body, label %for.cond.for.end5_crit_edge for.cond.for.end5_crit_edge: ; preds = %for.inc3 ret void diff --git a/llvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll b/llvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll index dfa20642b9385..1bf1c8abba7cb 100644 --- a/llvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll +++ b/llvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll @@ -6,7 +6,7 @@ ; In the 2 test cases below, we have a LCSSA PHI in the inner loop exit, which ; is used in the outer loop latch. This is not supported. -define void @test1() { +define void @test1(i1 %arg) { ; CHECK-LABEL: @test1( ; CHECK-NEXT: entry: ; CHECK-NEXT: br label [[OUTER_HEADER:%.*]] @@ -19,12 +19,12 @@ define void @test1() { ; CHECK-NEXT: [[TMP0:%.*]] = load double, ptr [[IDX]], align 8 ; CHECK-NEXT: store double undef, ptr [[IDX]], align 8 ; CHECK-NEXT: [[INNER_IV_NEXT]] = add nuw nsw i64 [[INNER_IV]], 1 -; CHECK-NEXT: br i1 false, label [[INNER]], label [[OUTER_LATCH]] +; CHECK-NEXT: br i1 [[ARG:%.*]], label [[INNER]], label [[OUTER_LATCH]] ; CHECK: outer.latch: ; CHECK-NEXT: [[INC43_LCSSA_WIDE_US:%.*]] = phi i64 [ [[INNER_IV_NEXT]], [[INNER]] ] ; CHECK-NEXT: [[TMP1:%.*]] = trunc i64 [[INC43_LCSSA_WIDE_US]] to i32 ; CHECK-NEXT: [[OUTER_IV_NEXT]] = add nsw i64 [[OUTER_IV]], 1 -; CHECK-NEXT: br i1 false, label [[OUTER_HEADER]], label [[OUTER_EXIT:%.*]] +; CHECK-NEXT: br i1 [[ARG]], label [[OUTER_HEADER]], label [[OUTER_EXIT:%.*]] ; CHECK: outer.exit: ; CHECK-NEXT: ret void ; @@ -41,20 +41,20 @@ inner: ; preds = %for.body28.us, %for.body25. %0 = load double, ptr %idx, align 8 store double undef, ptr %idx, align 8 %inner.iv.next = add nuw nsw i64 %inner.iv, 1 - br i1 undef, label %inner, label %outer.latch + br i1 %arg, label %inner, label %outer.latch outer.latch: ; preds = %inner %inc43.lcssa.wide.us = phi i64 [ %inner.iv.next, %inner ] %1 = trunc i64 %inc43.lcssa.wide.us to i32 %outer.iv.next = add nsw i64 %outer.iv, 1 - br i1 undef, label %outer.header, label %outer.exit + br i1 %arg, label %outer.header, label %outer.exit outer.exit: ; preds = %for.cond26.for.end44_crit_edge.us ret void } ; Same as @test1, but with a dedicated inner loop exit block. -define void @test2() { +define void @test2(i1 %arg) { ; CHECK-LABEL: @test2( ; CHECK-NEXT: entry: ; CHECK-NEXT: br label [[OUTER_HEADER:%.*]] @@ -67,14 +67,14 @@ define void @test2() { ; CHECK-NEXT: [[TMP0:%.*]] = load double, ptr [[IDX]], align 8 ; CHECK-NEXT: store double undef, ptr [[IDX]], align 8 ; CHECK-NEXT: [[INNER_IV_NEXT]] = add nuw nsw i64 [[INNER_IV]], 1 -; CHECK-NEXT: br i1 false, label [[INNER]], label [[INNER_EXIT:%.*]] +; CHECK-NEXT: br i1 [[ARG:%.*]], label [[INNER]], label [[INNER_EXIT:%.*]] ; CHECK: inner.exit: ; CHECK-NEXT: [[INC43_LCSSA_WIDE_US:%.*]] = phi i64 [ [[INNER_IV_NEXT]], [[INNER]] ] ; CHECK-NEXT: br label [[OUTER_LATCH]] ; CHECK: outer.latch: ; CHECK-NEXT: [[TMP1:%.*]] = trunc i64 [[INC43_LCSSA_WIDE_US]] to i32 ; CHECK-NEXT: [[OUTER_IV_NEXT]] = add nsw i64 [[OUTER_IV]], 1 -; CHECK-NEXT: br i1 false, label [[OUTER_HEADER]], label [[OUTER_EXIT:%.*]] +; CHECK-NEXT: br i1 [[ARG]], label [[OUTER_HEADER]], label [[OUTER_EXIT:%.*]] ; CHECK: outer.exit: ; CHECK-NEXT: ret void ; @@ -91,7 +91,7 @@ inner: ; preds = %for.body28.us, %for.body25. %0 = load double, ptr %idx, align 8 store double undef, ptr %idx, align 8 %inner.iv.next = add nuw nsw i64 %inner.iv, 1 - br i1 undef, label %inner, label %inner.exit + br i1 %arg, label %inner, label %inner.exit inner.exit: %inc43.lcssa.wide.us = phi i64 [ %inner.iv.next, %inner ] @@ -100,7 +100,7 @@ inner.exit: outer.latch: ; preds = %inner %1 = trunc i64 %inc43.lcssa.wide.us to i32 %outer.iv.next = add nsw i64 %outer.iv, 1 - br i1 undef, label %outer.header, label %outer.exit + br i1 %arg, label %outer.header, label %outer.exit outer.exit: ; preds = %for.cond26.for.end44_crit_edge.us ret void diff --git a/llvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll b/llvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll index 1fe34b3d04620..a0d0543075ffc 100644 --- a/llvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll +++ b/llvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll @@ -59,7 +59,7 @@ inner.header: ; preds = %for.inc, %for.bo inner.latch: ; preds = %for.body6 %inner.idx.inc = add nsw i64 %inner.idx, 1 - br i1 undef, label %inner.header, label %inner.exit + br i1 false, label %inner.header, label %inner.exit inner.exit: ; preds = %for.inc %outer.v = add nsw i64 %outer.idx, 1 @@ -67,7 +67,7 @@ inner.exit: ; preds = %for.inc outer.latch: ; preds = %for.end %outer.idx.inc = add nsw i64 %outer.idx, 1 - br i1 undef, label %outer.header, label %outer.exit + br i1 false, label %outer.header, label %outer.exit outer.exit: ; preds = %for.inc27 %exit1.lcssa = phi i64 [ %outer.v, %outer.latch ] @@ -133,7 +133,7 @@ inner.header: ; preds = %for.inc, %for.bo inner.latch: ; preds = %for.body6 %inner.idx.inc = add nsw i64 %inner.idx , 1 - br i1 undef, label %inner.header, label %inner.exit + br i1 false, label %inner.header, label %inner.exit inner.exit: ; preds = %for.inc %outer.v = add nsw i64 %outer.idx, 1 @@ -141,7 +141,7 @@ inner.exit: ; preds = %for.inc outer.latch: ; preds = %for.end %outer.idx.inc = add nsw i64 %outer.idx, 1 - br i1 undef, label %outer.header, label %outer.exit + br i1 false, label %outer.header, label %outer.exit outer.exit: ; preds = %for.inc27 %exit1.lcssa = phi i64 [ 0, %entry ], [ %outer.v, %outer.latch ] diff --git a/llvm/test/Transforms/LoopInterchange/pr57148.ll b/llvm/test/Transforms/LoopInterchange/pr57148.ll index f2b8a93a780bd..0d4194762a692 100644 --- a/llvm/test/Transforms/LoopInterchange/pr57148.ll +++ b/llvm/test/Transforms/LoopInterchange/pr57148.ll @@ -152,11 +152,11 @@ vector.body85: ; preds = %vector.body85, %for %1 = getelementptr inbounds [512 x [4 x i32]], ptr @b, i16 0, i16 %0, i16 %j.165 %2 = load i32, ptr %1, align 1 %index.next87 = add nuw i16 %index86, 4 - br i1 undef, label %middle.block80, label %vector.body85 + br i1 true, label %middle.block80, label %vector.body85 middle.block80: ; preds = %vector.body85 %inc66 = add nuw nsw i16 %j.165, 1 - br i1 undef, label %for.inc68, label %for.cond37.preheader + br i1 true, label %for.inc68, label %for.cond37.preheader for.inc68: ; preds = %middle.block80 %inc69 = add nuw nsw i16 %i.166, 1 diff --git a/llvm/test/Transforms/LoopLoadElim/pr-48150.ll b/llvm/test/Transforms/LoopLoadElim/pr-48150.ll index ee0eaa9b542c8..6767f87756750 100644 --- a/llvm/test/Transforms/LoopLoadElim/pr-48150.ll +++ b/llvm/test/Transforms/LoopLoadElim/pr-48150.ll @@ -3,10 +3,10 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:1-p2:32:8:8:32-ni:2" target triple = "x86_64-unknown-linux-gnu" -define void @test() { +define void @test(i1 %arg) { ; CHECK-LABEL: test bb: - br i1 undef, label %bb1, label %bb2 + br i1 %arg, label %bb1, label %bb2 bb1: ; preds = %bb ret void diff --git a/llvm/test/Transforms/LoopLoadElim/pr47457.ll b/llvm/test/Transforms/LoopLoadElim/pr47457.ll index 70b319b563bf4..ddf3ec249fa60 100644 --- a/llvm/test/Transforms/LoopLoadElim/pr47457.ll +++ b/llvm/test/Transforms/LoopLoadElim/pr47457.ll @@ -5,7 +5,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16 target triple = "x86_64-unknown-linux-gnu" ; Make sure it does not crash with assert. -define void @test() { +define void @test(i1 %arg) { ; CHECK-LABEL: test bb: @@ -13,7 +13,7 @@ bb: bb1: ; preds = %bb6, %bb1, %bb %tmp = phi i32 [ undef, %bb ], [ 0, %bb1 ], [ %tmp3, %bb6 ] - br i1 undef, label %bb1, label %bb2 + br i1 %arg, label %bb1, label %bb2 bb2: ; preds = %bb1 %tmp3 = add i32 %tmp, 1 @@ -24,7 +24,7 @@ bb5: ; preds = %bb2 ret void bb6: ; preds = %bb2 - br i1 undef, label %bb7, label %bb1 + br i1 %arg, label %bb7, label %bb1 bb7: ; preds = %bb7, %bb6 %tmp8 = phi i32 [ %tmp15, %bb7 ], [ %tmp3, %bb6 ] diff --git a/llvm/test/Transforms/LoopPredication/predicate-exits.ll b/llvm/test/Transforms/LoopPredication/predicate-exits.ll index 470ae3bdcac02..862b917f8a53d 100644 --- a/llvm/test/Transforms/LoopPredication/predicate-exits.ll +++ b/llvm/test/Transforms/LoopPredication/predicate-exits.ll @@ -1117,7 +1117,7 @@ bb3: ; preds = %bb bb4: ; preds = %bb6, %bb3 %tmp5 = phi i32 [ %tmp7, %bb6 ], [ 0, %bb3 ] - br i1 undef, label %bb10, label %bb6 + br i1 true, label %bb10, label %bb6 bb6: ; preds = %bb4 %tmp7 = add nuw nsw i32 %tmp5, 1 diff --git a/llvm/test/Transforms/LoopRotate/crash.ll b/llvm/test/Transforms/LoopRotate/crash.ll index 8ca5f6c58d515..3a4e813aae28d 100644 --- a/llvm/test/Transforms/LoopRotate/crash.ll +++ b/llvm/test/Transforms/LoopRotate/crash.ll @@ -4,27 +4,27 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 target triple = "x86_64-apple-darwin10.0.0" ; PR8955 - Rotating an outer loop that has a condbr for a latch block. -define void @test1() nounwind ssp { +define void @test1(i1 %arg) nounwind ssp { entry: br label %lbl_283 lbl_283: ; preds = %if.end, %entry - br i1 undef, label %if.else, label %if.then + br i1 %arg, label %if.else, label %if.then if.then: ; preds = %lbl_283 - br i1 undef, label %if.end, label %for.condthread-pre-split + br i1 %arg, label %if.end, label %for.condthread-pre-split for.condthread-pre-split: ; preds = %if.then br label %for.cond for.cond: ; preds = %for.cond, %for.condthread-pre-split - br i1 undef, label %lbl_281, label %for.cond + br i1 %arg, label %lbl_281, label %for.cond lbl_281: ; preds = %if.end, %for.cond br label %if.end if.end: ; preds = %lbl_281, %if.then - br i1 undef, label %lbl_283, label %lbl_281 + br i1 %arg, label %lbl_283, label %lbl_281 if.else: ; preds = %lbl_283 ret void @@ -140,12 +140,12 @@ bb17: ; preds = %bb15 ; PR9523 - Non-canonical loop. -define void @test7(ptr %P) nounwind { +define void @test7(ptr %P, i1 %arg) nounwind { entry: indirectbr ptr %P, [label %"3", label %"5"] "3": ; preds = %"4", %entry - br i1 undef, label %"5", label %"4" + br i1 %arg, label %"5", label %"4" "4": ; preds = %"3" br label %"3" diff --git a/llvm/test/Transforms/LoopRotate/multiple-exits.ll b/llvm/test/Transforms/LoopRotate/multiple-exits.ll index 5832c7613dd14..748700c2589ff 100644 --- a/llvm/test/Transforms/LoopRotate/multiple-exits.ll +++ b/llvm/test/Transforms/LoopRotate/multiple-exits.ll @@ -199,12 +199,12 @@ declare ptr @__cxa_begin_catch(ptr) declare void @__cxa_end_catch() -define void @test4() nounwind uwtable { +define void @test4(i1 %arg) nounwind uwtable { entry: br label %"7" "3": ; preds = %"7" - br i1 undef, label %"31", label %"4" + br i1 %arg, label %"31", label %"4" "4": ; preds = %"3" %. = select i1 undef, float 0x3F50624DE0000000, float undef @@ -217,7 +217,7 @@ entry: br i1 %2, label %"3", label %"8" "8": ; preds = %"7" - br i1 undef, label %"9", label %"31" + br i1 %arg, label %"9", label %"31" "9": ; preds = %"8" br label %"33" @@ -226,7 +226,7 @@ entry: unreachable "31": ; preds = %"8", %"3" - br i1 undef, label %"27", label %"32" + br i1 %arg, label %"27", label %"32" "32": ; preds = %"31" br label %"33" diff --git a/llvm/test/Transforms/LoopRotate/pr22337.ll b/llvm/test/Transforms/LoopRotate/pr22337.ll index 95468e0019bee..6133b86338595 100644 --- a/llvm/test/Transforms/LoopRotate/pr22337.ll +++ b/llvm/test/Transforms/LoopRotate/pr22337.ll @@ -3,17 +3,17 @@ @a = external global i8, align 4 @tmp = global ptr @a -define void @f() { +define void @f(i1 %arg) { ; CHECK-LABEL: define void @f( ; CHECK: getelementptr i8, ptr @a, i32 1 entry: br label %for.preheader for.preheader: - br i1 undef, label %if.then8, label %for.body + br i1 %arg, label %if.then8, label %for.body for.body: - br i1 undef, label %if.end, label %if.then8 + br i1 %arg, label %if.end, label %if.then8 if.end: %arrayidx = getelementptr i8, ptr @a, i32 1 diff --git a/llvm/test/Transforms/LoopRotate/pr33701.ll b/llvm/test/Transforms/LoopRotate/pr33701.ll index 6f30c6f4b0e61..f0421ebc01afe 100644 --- a/llvm/test/Transforms/LoopRotate/pr33701.ll +++ b/llvm/test/Transforms/LoopRotate/pr33701.ll @@ -1,6 +1,6 @@ ; RUN: opt < %s -passes=loop-rotate -verify-dom-info -verify-loop-info -verify-memoryssa -disable-output -define void @func() { +define void @func(i1 %arg) { bb0: br label %bb1 @@ -10,7 +10,7 @@ bb1: ; preds = %bb4, %bb0 br i1 %1, label %bb2, label %bb5 bb2: ; preds = %bb1 - br i1 undef, label %bb6, label %bb4 + br i1 %arg, label %bb6, label %bb4 bb3: ; No predecessors! br label %bb6 diff --git a/llvm/test/Transforms/LoopRotate/pr37205.ll b/llvm/test/Transforms/LoopRotate/pr37205.ll index 06977bee0edb0..2fa2c20568bba 100644 --- a/llvm/test/Transforms/LoopRotate/pr37205.ll +++ b/llvm/test/Transforms/LoopRotate/pr37205.ll @@ -95,7 +95,7 @@ if.then: ; preds = %for.cond br label %for.cond1 for.cond1: ; preds = %for.cond4, %if.then - br i1 undef, label %for.body, label %for.end6 + br i1 false, label %for.body, label %for.end6 for.body: ; preds = %for.cond1 br i1 false, label %if.then3, label %if.end diff --git a/llvm/test/Transforms/LoopRotate/preserve-loop-simplify.ll b/llvm/test/Transforms/LoopRotate/preserve-loop-simplify.ll index 945c6baf2b357..744a576a3bc38 100644 --- a/llvm/test/Transforms/LoopRotate/preserve-loop-simplify.ll +++ b/llvm/test/Transforms/LoopRotate/preserve-loop-simplify.ll @@ -4,7 +4,7 @@ ; structures. We manually validate the CFG with FileCheck because currently we ; can't cause a failure when LoopSimplify fails to be preserved. -define void @PR18643() { +define void @PR18643(i1 %arg) { ; CHECK-LABEL: @PR18643( entry: br label %outer.header @@ -12,7 +12,7 @@ entry: outer.header: ; CHECK: outer.header: - br i1 undef, label %inner.header, label %outer.body + br i1 %arg, label %inner.header, label %outer.body ; CHECK-NEXT: br i1 {{[^,]*}}, label %[[INNER_PREROTATE_PREHEADER:[^,]*]], label %outer.body ; CHECK: [[INNER_PREROTATE_PREHEADER]]: @@ -24,13 +24,13 @@ outer.header: inner.header: ; Now the latch! ; CHECK: inner.header: - br i1 undef, label %return, label %inner.body + br i1 %arg, label %return, label %inner.body ; CHECK-NEXT: br i1 {{[^,]*}}, label %[[INNER_SPLIT_RETURN:[^,]*]], label %inner.body inner.body: ; Now the header! ; CHECK: inner.body: - br i1 undef, label %outer.latch, label %inner.latch + br i1 %arg, label %outer.latch, label %inner.latch ; CHECK-NEXT: br i1 {{[^,]*}}, label %[[INNER_SPLIT_OUTER_LATCH:[^,]*]], label %inner.header inner.latch: diff --git a/llvm/test/Transforms/LoopRotate/preserve-mssa.ll b/llvm/test/Transforms/LoopRotate/preserve-mssa.ll index f8d0ed8b44201..4135c2966f1fd 100644 --- a/llvm/test/Transforms/LoopRotate/preserve-mssa.ll +++ b/llvm/test/Transforms/LoopRotate/preserve-mssa.ll @@ -1,15 +1,15 @@ ; RUN: opt -S -passes=loop-rotate -verify-memoryssa < %s | FileCheck %s ; CHECK-LABEL: @multiedge( -define void @multiedge() { +define void @multiedge(i1 %arg, i32 %arg2) { entry: br label %retry retry: ; preds = %sw.epilog, %entry - br i1 undef, label %cleanup, label %if.end + br i1 %arg, label %cleanup, label %if.end if.end: ; preds = %retry - switch i32 undef, label %sw.epilog [ + switch i32 %arg2, label %sw.epilog [ i32 -3, label %cleanup i32 -5, label %cleanup i32 -16, label %cleanup @@ -24,14 +24,14 @@ cleanup: ; preds = %if.end, %if.end, %i } ; CHECK-LABEL: @read_line( -define internal fastcc i32 @read_line(ptr nocapture %f) unnamed_addr { +define internal fastcc i32 @read_line(ptr nocapture %f, i1 %arg) unnamed_addr { entry: br label %for.cond for.cond: ; preds = %if.end, %entry %call = call ptr @prepbuffer(ptr nonnull undef) %call1 = call ptr @fgets(ptr %call, i32 8192, ptr %f) - br i1 undef, label %if.then, label %if.end + br i1 %arg, label %if.then, label %if.end if.then: ; preds = %for.cond ret i32 undef @@ -47,12 +47,12 @@ declare dso_local i64 @strlen(ptr nocapture) local_unnamed_addr ; CHECK-LABEL: @loop3 -define dso_local fastcc void @loop3() unnamed_addr { +define dso_local fastcc void @loop3(i1 %arg) unnamed_addr { entry: br label %for.cond for.cond: ; preds = %for.body, %entry - br i1 undef, label %for.body, label %for.end81 + br i1 %arg, label %for.body, label %for.end81 for.body: ; preds = %for.cond %.idx122.val = load i32, ptr undef, align 8 @@ -64,12 +64,12 @@ for.end81: ; preds = %for.cond } ; CHECK-LABEL: @loop4 -define dso_local fastcc void @loop4() unnamed_addr { +define dso_local fastcc void @loop4(i1 %arg) unnamed_addr { entry: br label %while.cond while.cond: ; preds = %while.body, %entry - br i1 undef, label %while.end, label %while.body + br i1 %arg, label %while.end, label %while.body while.body: ; preds = %while.cond call fastcc void @cont() @@ -87,7 +87,7 @@ declare dso_local fastcc void @cont() unnamed_addr @glob_array = internal unnamed_addr constant [3 x i32] [i32 1, i32 0, i32 2], align 4 ; Test against failure in MemorySSAUpdater, when rotate clones instructions as Value. ; CHECK-LABEL: @loop5 -define dso_local fastcc void @loop5() unnamed_addr { +define dso_local fastcc void @loop5(i1 %arg) unnamed_addr { entry: br label %for.body @@ -98,7 +98,7 @@ for.body: ; preds = %if.end, %entry %indvar = phi i64 [ %indvar.next, %if.end ], [ 0, %entry ] %array = getelementptr inbounds [3 x i32], ptr @glob_array, i64 0, i64 %indvar %0 = load i32, ptr %array, align 4 - br i1 undef, label %do.cond, label %if.end + br i1 %arg, label %do.cond, label %if.end if.end: ; preds = %for.body store i32 undef, ptr undef, align 4 diff --git a/llvm/test/Transforms/LoopSimplify/2010-07-15-IncorrectDomFrontierUpdate.ll b/llvm/test/Transforms/LoopSimplify/2010-07-15-IncorrectDomFrontierUpdate.ll index 89bf91782b061..f4a639dad369e 100644 --- a/llvm/test/Transforms/LoopSimplify/2010-07-15-IncorrectDomFrontierUpdate.ll +++ b/llvm/test/Transforms/LoopSimplify/2010-07-15-IncorrectDomFrontierUpdate.ll @@ -1,9 +1,9 @@ ; RUN: opt < %s -passes='require,loop-simplify,require' -verify-dom-info -define void @a() nounwind { +define void @a(i1 %arg) nounwind { entry: - br i1 undef, label %bb37, label %bb1.i + br i1 %arg, label %bb37, label %bb1.i bb1.i: ; preds = %bb1.i, %bb %indvar = phi i64 [ %indvar.next, %bb1.i ], [ 0, %entry ] ; [#uses=1] diff --git a/llvm/test/Transforms/LoopSimplify/2010-12-26-PHIInfiniteLoop.ll b/llvm/test/Transforms/LoopSimplify/2010-12-26-PHIInfiniteLoop.ll index b295baf9b01fd..7c1a166f66777 100644 --- a/llvm/test/Transforms/LoopSimplify/2010-12-26-PHIInfiniteLoop.ll +++ b/llvm/test/Transforms/LoopSimplify/2010-12-26-PHIInfiniteLoop.ll @@ -5,19 +5,19 @@ target triple = "x86_64-unknown-freebsd9.0" declare void @foo(i32 %x) -define fastcc void @inm_merge() nounwind { +define fastcc void @inm_merge(i1 %arg) nounwind { entry: br label %for.cond for.cond: ; preds = %while.cond36.i, %entry - br i1 undef, label %do.body, label %for.body + br i1 %arg, label %do.body, label %for.body for.body: ; preds = %for.cond - br i1 undef, label %while.cond36.i, label %if.end44 + br i1 %arg, label %while.cond36.i, label %if.end44 if.end44: ; preds = %for.body %call49 = call fastcc i32 @inm_get_source() - br i1 undef, label %if.end54, label %for.cond64 + br i1 %arg, label %if.end54, label %for.cond64 if.end54: ; preds = %if.end44 br label %while.cond36.i @@ -28,10 +28,10 @@ while.cond36.i: ; preds = %if.end54, %for.body for.cond64: ; preds = %if.end88, %for.cond64, %if.end44 %error.161 = phi i32 [ %error.161, %for.cond64 ], [ %error.161, %if.end88 ], [ %call49, %if.end44 ] call void @foo(i32 %error.161) - br i1 undef, label %for.cond64, label %if.end88 + br i1 %arg, label %for.cond64, label %if.end88 if.end88: ; preds = %for.cond64 - br i1 undef, label %for.cond64, label %if.end98 + br i1 %arg, label %for.cond64, label %if.end98 if.end98: ; preds = %if.end88 unreachable diff --git a/llvm/test/Transforms/LoopSimplify/dup-preds.ll b/llvm/test/Transforms/LoopSimplify/dup-preds.ll index d21cb3a02fe43..c4fa0a5967501 100644 --- a/llvm/test/Transforms/LoopSimplify/dup-preds.ll +++ b/llvm/test/Transforms/LoopSimplify/dup-preds.ll @@ -2,21 +2,21 @@ target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f128:128:128-v128:128:128-n32:64" target triple = "powerpc64le-unknown-linux" -define fastcc void @do_update_md(ptr nocapture readonly %x) #0 { +define fastcc void @do_update_md(ptr nocapture readonly %x, i1 %arg, i16 %arg2) #0 { entry: - br i1 undef, label %if.end365, label %lor.lhs.false134 + br i1 %arg, label %if.end365, label %lor.lhs.false134 lor.lhs.false134: ; preds = %entry - br i1 undef, label %lor.lhs.false138, label %if.end365 + br i1 %arg, label %lor.lhs.false138, label %if.end365 lor.lhs.false138: ; preds = %lor.lhs.false134 - br i1 undef, label %lor.lhs.false142, label %if.end365 + br i1 %arg, label %lor.lhs.false142, label %if.end365 lor.lhs.false142: ; preds = %lor.lhs.false138 - br i1 undef, label %for.body276.lr.ph, label %if.end365 + br i1 %arg, label %for.body276.lr.ph, label %if.end365 for.body276.lr.ph: ; preds = %lor.lhs.false142 - switch i16 undef, label %if.then288 [ + switch i16 %arg2, label %if.then288 [ i16 4, label %for.body344 i16 2, label %for.body344 ] diff --git a/llvm/test/Transforms/LoopSimplify/indirectbr.ll b/llvm/test/Transforms/LoopSimplify/indirectbr.ll index 6454bfbb5b059..8da1f2816ff09 100644 --- a/llvm/test/Transforms/LoopSimplify/indirectbr.ll +++ b/llvm/test/Transforms/LoopSimplify/indirectbr.ll @@ -82,15 +82,15 @@ L1: ret i64 %y } -define void @pr5502() nounwind { +define void @pr5502(ptr %arg, i1 %arg2) nounwind { entry: br label %while.cond while.cond: - br i1 undef, label %while.body, label %while.end + br i1 %arg2, label %while.body, label %while.end while.body: - indirectbr ptr undef, [label %end_opcode, label %end_opcode] + indirectbr ptr %arg, [label %end_opcode, label %end_opcode] end_opcode: br i1 false, label %end_opcode, label %while.cond diff --git a/llvm/test/Transforms/LoopSimplify/notify-scev.ll b/llvm/test/Transforms/LoopSimplify/notify-scev.ll index a3482d133920e..ff8b3870550d3 100644 --- a/llvm/test/Transforms/LoopSimplify/notify-scev.ll +++ b/llvm/test/Transforms/LoopSimplify/notify-scev.ll @@ -17,12 +17,12 @@ target triple = "x86_64-apple-darwin" ; CHECK-LABEL: for.cond127.preheader: ; CHECK-NOT: for.cond127: ; CHECK-LABEL: for.body129: -define void @t() { +define void @t(i1 %arg) { entry: br label %for.body102 for.body102: - br i1 undef, label %for.cond127.preheader, label %for.inc203 + br i1 %arg, label %for.cond127.preheader, label %for.inc203 for.cond127.preheader: br label %for.body129 @@ -34,10 +34,10 @@ for.cond127: for.body129: %uv.013 = phi i32 [ 0, %for.cond127.preheader ], [ %inc191, %for.cond127 ] %idxprom130 = sext i32 %uv.013 to i64 - br i1 undef, label %for.cond135.preheader.lr.ph, label %for.end185 + br i1 %arg, label %for.cond135.preheader.lr.ph, label %for.end185 for.cond135.preheader.lr.ph: - br i1 undef, label %for.cond135.preheader.lr.ph.split.us, label %for.cond135.preheader.lr.ph.split_crit_edge + br i1 %arg, label %for.cond135.preheader.lr.ph.split.us, label %for.cond135.preheader.lr.ph.split_crit_edge for.cond135.preheader.lr.ph.split_crit_edge: br label %for.cond135.preheader.lr.ph.split @@ -51,17 +51,17 @@ for.cond135.preheader.us: for.end178.us: %add184.us = add nsw i32 %block_y.09.us, 4 - br i1 undef, label %for.end185split.us-lcssa.us, label %for.cond132.us + br i1 %arg, label %for.end185split.us-lcssa.us, label %for.cond132.us for.end174.us: - br i1 undef, label %for.cond138.preheader.us, label %for.cond135.for.end178_crit_edge.us + br i1 %arg, label %for.cond138.preheader.us, label %for.cond135.for.end178_crit_edge.us for.inc172.us: - br i1 undef, label %for.cond142.preheader.us, label %for.end174.us + br i1 %arg, label %for.cond142.preheader.us, label %for.end174.us for.body145.us: %arrayidx163.us = getelementptr inbounds %struct.Params, ptr undef, i64 0, i32 0, i64 %idxprom130, i64 %idxprom146.us - br i1 undef, label %for.body145.us, label %for.inc172.us + br i1 %arg, label %for.body145.us, label %for.inc172.us for.cond142.preheader.us: %j.04.us = phi i32 [ %block_y.09.us, %for.cond138.preheader.us ], [ undef, %for.inc172.us ] @@ -72,7 +72,7 @@ for.cond138.preheader.us: br label %for.cond142.preheader.us for.cond132.us: - br i1 undef, label %for.cond135.preheader.us, label %for.cond132.for.end185_crit_edge.us-lcssa.us + br i1 %arg, label %for.cond135.preheader.us, label %for.cond132.for.end185_crit_edge.us-lcssa.us for.cond138.preheader.lr.ph.us: br label %for.cond138.preheader.us diff --git a/llvm/test/Transforms/LoopSimplify/pr28272.ll b/llvm/test/Transforms/LoopSimplify/pr28272.ll index 3650ff18c6a36..cd9de1d472981 100644 --- a/llvm/test/Transforms/LoopSimplify/pr28272.ll +++ b/llvm/test/Transforms/LoopSimplify/pr28272.ll @@ -8,7 +8,7 @@ target triple = "x86_64-unknown-linux-gnu" ; after loop-simplify, we crash on assertion. ; CHECK-LABEL: @foo -define void @foo() { +define void @foo(i1 %arg) { entry: br label %header @@ -37,7 +37,7 @@ bb54: } ; CHECK-LABEL: @foo2 -define void @foo2() { +define void @foo2(i1 %arg) { entry: br label %outer @@ -66,7 +66,7 @@ loop2.if: i32 1, label %bb] loop2.if.true: - br i1 undef, label %loop2, label %bb + br i1 %arg, label %loop2, label %bb loop2.if.false: br label %loop2 @@ -78,29 +78,29 @@ bb: ; When LoopSimplify separates nested loops, it might break LCSSA form: values ; from the original loop might be used in exit blocks of the outer loop. ; CHECK-LABEL: @foo3 -define void @foo3() { +define void @foo3(i1 %arg) { entry: br label %bb1 bb1: - br i1 undef, label %bb2, label %bb1 + br i1 %arg, label %bb2, label %bb1 bb2: %a = phi i32 [ undef, %bb1 ], [ %a, %bb3 ], [ undef, %bb5 ] - br i1 undef, label %bb3, label %bb1 + br i1 %arg, label %bb3, label %bb1 bb3: %b = load ptr, ptr undef - br i1 undef, label %bb2, label %bb4 + br i1 %arg, label %bb2, label %bb4 bb4: - br i1 undef, label %bb5, label %bb6 + br i1 %arg, label %bb5, label %bb6 bb5: - br i1 undef, label %bb2, label %bb4 + br i1 %arg, label %bb2, label %bb4 bb6: - br i1 undef, label %bb_end, label %bb1 + br i1 %arg, label %bb_end, label %bb1 bb_end: %x = getelementptr i32, ptr %b @@ -112,7 +112,7 @@ bb_end: ; original loop (before separating it was a subloop of the original loop, and ; thus didn't require an lcssa phi nodes). ; CHECK-LABEL: @foo4 -define void @foo4() { +define void @foo4(i1 %arg) { bb1: br label %bb2 @@ -126,7 +126,7 @@ bb2.loopexit: ; preds = %bb3 bb2: ; preds = %bb2.loopexit, %bb2, %bb1 %i = phi i32 [ 0, %bb1 ], [ %i, %bb2 ], [ %i.ph, %bb2.loopexit ] %x = load i32, ptr undef, align 8 - br i1 undef, label %bb2, label %bb3.preheader + br i1 %arg, label %bb2, label %bb3.preheader ; CHECK: bb3.preheader: bb3.preheader: ; preds = %bb2 diff --git a/llvm/test/Transforms/LoopSimplify/pr30454.ll b/llvm/test/Transforms/LoopSimplify/pr30454.ll index d32ecfd69cda6..dd1e690d469b7 100644 --- a/llvm/test/Transforms/LoopSimplify/pr30454.ll +++ b/llvm/test/Transforms/LoopSimplify/pr30454.ll @@ -7,18 +7,18 @@ declare i8 @bar() ; Test that we preserve LCSSA form when removing edges from unreachable blocks. ; CHECK-LABEL: @foo -define void @foo() { +define void @foo(i1 %arg) { entry: br label %for.cond for.cond: %x = phi i8 [ undef, %entry ], [ %y, %for.latch ] - br i1 undef, label %for.latch, label %exit + br i1 %arg, label %for.latch, label %exit ; CHECK: unreachable.bb: ; CHECK-NEXT: unreachable unreachable.bb: - br i1 undef, label %exit, label %for.latch + br i1 %arg, label %exit, label %for.latch for.latch: %y = call i8 @bar() diff --git a/llvm/test/Transforms/LoopSimplify/unreachable-loop-pred.ll b/llvm/test/Transforms/LoopSimplify/unreachable-loop-pred.ll index e97c7c29bf57e..5234325b83c1e 100644 --- a/llvm/test/Transforms/LoopSimplify/unreachable-loop-pred.ll +++ b/llvm/test/Transforms/LoopSimplify/unreachable-loop-pred.ll @@ -5,7 +5,7 @@ ; block to the enclosing loop and not get confused by the unreachable ; bogus loop entry. -define void @is_extract_cab() nounwind { +define void @is_extract_cab(i1 %arg) nounwind { entry: br label %header @@ -13,7 +13,7 @@ header: ; preds = %if.end206, %cond.end66, br label %while.body115 while.body115: ; preds = %9, %if.end192, %if.end101 - br i1 undef, label %header, label %while.body115 + br i1 %arg, label %header, label %while.body115 foo: br label %while.body115 diff --git a/llvm/test/Transforms/LoopSimplifyCFG/constant-fold-branch.ll b/llvm/test/Transforms/LoopSimplifyCFG/constant-fold-branch.ll index 021af243b4dd6..1ec212f0bb5ea 100644 --- a/llvm/test/Transforms/LoopSimplifyCFG/constant-fold-branch.ll +++ b/llvm/test/Transforms/LoopSimplifyCFG/constant-fold-branch.ll @@ -2580,12 +2580,12 @@ exit: ret i32 %result } -define void @test_crash_01() { +define void @test_crash_01(i1 %arg, i32 %arg2) { ; CHECK-LABEL: @test_crash_01( ; CHECK-NEXT: bb: ; CHECK-NEXT: br label [[BB1:%.*]] ; CHECK: bb1: -; CHECK-NEXT: br i1 undef, label [[BB17:%.*]], label [[BB2:%.*]] +; CHECK-NEXT: br i1 %arg, label [[BB17:%.*]], label [[BB2:%.*]] ; CHECK: bb2: ; CHECK-NEXT: switch i32 0, label [[BB2_SPLIT:%.*]] [ ; CHECK-NEXT: i32 1, label [[BB19:%.*]] @@ -2593,7 +2593,7 @@ define void @test_crash_01() { ; CHECK: bb2.split: ; CHECK-NEXT: br label [[BB3:%.*]] ; CHECK: bb3: -; CHECK-NEXT: switch i32 undef, label [[BB16:%.*]] [ +; CHECK-NEXT: switch i32 %arg2, label [[BB16:%.*]] [ ; CHECK-NEXT: i32 0, label [[BB15:%.*]] ; CHECK-NEXT: i32 1, label [[BB14:%.*]] ; CHECK-NEXT: i32 2, label [[BB13:%.*]] @@ -2607,7 +2607,7 @@ define void @test_crash_01() { ; CHECK: bb7: ; CHECK-NEXT: unreachable ; CHECK: bb8: -; CHECK-NEXT: switch i32 undef, label [[BB28:%.*]] [ +; CHECK-NEXT: switch i32 %arg2, label [[BB28:%.*]] [ ; CHECK-NEXT: i32 0, label [[BB27:%.*]] ; CHECK-NEXT: i32 1, label [[BB26:%.*]] ; CHECK-NEXT: i32 2, label [[BB23:%.*]] @@ -2663,7 +2663,7 @@ bb: br label %bb1 bb1: ; preds = %bb - br i1 undef, label %bb17, label %bb2 + br i1 %arg, label %bb17, label %bb2 bb2: ; preds = %bb1 br label %bb3 @@ -2678,7 +2678,7 @@ bb4: ; preds = %bb3 ] bb5: ; preds = %bb4 - switch i32 undef, label %bb16 [ + switch i32 %arg2, label %bb16 [ i32 0, label %bb15 i32 1, label %bb14 i32 2, label %bb13 @@ -2697,7 +2697,7 @@ bb7: ; preds = %bb5 unreachable bb8: ; preds = %bb11, %bb5 - switch i32 undef, label %bb28 [ + switch i32 %arg2, label %bb28 [ i32 0, label %bb27 i32 1, label %bb26 i32 2, label %bb23 diff --git a/llvm/test/Transforms/LoopSimplifyCFG/update_parents.ll b/llvm/test/Transforms/LoopSimplifyCFG/update_parents.ll index 7acf76306d6b6..d390f19425f6c 100644 --- a/llvm/test/Transforms/LoopSimplifyCFG/update_parents.ll +++ b/llvm/test/Transforms/LoopSimplifyCFG/update_parents.ll @@ -37,10 +37,10 @@ bb3: ; preds = %bb8, %bb3, %bb2 br i1 false, label %bb4, label %bb3 bb4: ; preds = %bb8, %bb3 - br i1 undef, label %bb1, label %bb6 + br i1 true, label %bb1, label %bb6 bb6: ; preds = %bb4 - br i1 undef, label %bb2, label %bb8 + br i1 false, label %bb2, label %bb8 bb8: ; preds = %bb6 br i1 true, label %bb4, label %bb3 @@ -78,7 +78,7 @@ bb3: br i1 false, label %bb4, label %bb3 bb4: - br i1 undef, label %bb1, label %subloop1 + br i1 %c, label %bb1, label %subloop1 subloop1: br i1 %c, label %subloop2, label %subloop11 @@ -111,7 +111,7 @@ subloop2_latch: br label %subloop2 bb6: - br i1 undef, label %bb2, label %bb8 + br i1 %c, label %bb2, label %bb8 bb8: br i1 true, label %bb4, label %bb3 diff --git a/llvm/test/Transforms/LoopStrengthReduce/2011-10-14-IntPtr.ll b/llvm/test/Transforms/LoopStrengthReduce/2011-10-14-IntPtr.ll index b96067370fa12..770f723fd0ebf 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/2011-10-14-IntPtr.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/2011-10-14-IntPtr.ll @@ -8,16 +8,16 @@ target triple = "x86_64-apple-darwin" ; CHECK-LABEL: @test( ; CHECK: phi ; CHECK-NOT: phi -define void @test(i32 %rowStride) ssp align 2 { +define void @test(i32 %rowStride, i1 %arg) ssp align 2 { entry: - %cond = select i1 undef, i32 %rowStride, i32 4 + %cond = select i1 %arg, i32 %rowStride, i32 4 br label %for.end for.end.critedge: ; preds = %for.end br label %for.end for.end: ; preds = %for.end.critedge, %entry - br i1 undef, label %for.body83, label %for.end.critedge + br i1 %arg, label %for.body83, label %for.end.critedge for.body83: ; preds = %for.body83, %for.end %ptr.0157 = phi ptr [ %add.ptr96, %for.body83 ], [ null, %for.end ] diff --git a/llvm/test/Transforms/LoopStrengthReduce/2011-12-19-PostincQuadratic.ll b/llvm/test/Transforms/LoopStrengthReduce/2011-12-19-PostincQuadratic.ll index 621a4e8797d57..4241bff1a5e61 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/2011-12-19-PostincQuadratic.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/2011-12-19-PostincQuadratic.ll @@ -39,7 +39,7 @@ for.body7: %bf.072 = phi i32 [ %t1, %for.body7 ], [ 0, %for.cond.preheader ] %t1 = add i32 %bf.072, %indvars.iv77 %indvars.iv.next78 = add i32 %indvars.iv77, 1 - br i1 undef, label %for.body43, label %for.body7 + br i1 true, label %for.body43, label %for.body7 for.body43: %bf.459 = phi i32 [ %inc44, %for.body43 ], [ %t1, %for.body7 ] diff --git a/llvm/test/Transforms/LoopStrengthReduce/2013-01-14-ReuseCast.ll b/llvm/test/Transforms/LoopStrengthReduce/2013-01-14-ReuseCast.ll index 3ad588dbc87d8..db40bba62ebcf 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/2013-01-14-ReuseCast.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/2013-01-14-ReuseCast.ll @@ -15,23 +15,23 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3 ; CHECK-NOT: = ptrtoint ptr undef to i64 ; CHECK: .lr.ph ; CHECK: ret void -define void @VerifyDiagnosticConsumerTest() unnamed_addr nounwind uwtable align 2 { +define void @VerifyDiagnosticConsumerTest(i1 %arg) unnamed_addr nounwind uwtable align 2 { bb: %tmp3 = call ptr @getCharData() nounwind %tmp4 = call ptr @getCharData() nounwind %tmp5 = ptrtoint ptr %tmp4 to i64 %tmp6 = ptrtoint ptr %tmp3 to i64 %tmp7 = sub i64 %tmp5, %tmp6 - br i1 undef, label %bb87, label %.preheader + br i1 false, label %bb87, label %.preheader .preheader: ; preds = %bb10, %bb - br i1 undef, label %_ZNK4llvm9StringRef4findEcm.exit42.thread, label %bb10 + br i1 false, label %_ZNK4llvm9StringRef4findEcm.exit42.thread, label %bb10 bb10: ; preds = %.preheader - br i1 undef, label %_ZNK4llvm9StringRef4findEcm.exit42, label %.preheader + br i1 true, label %_ZNK4llvm9StringRef4findEcm.exit42, label %.preheader _ZNK4llvm9StringRef4findEcm.exit42: ; preds = %bb10 - br i1 undef, label %_ZNK4llvm9StringRef4findEcm.exit42.thread, label %.lr.ph + br i1 false, label %_ZNK4llvm9StringRef4findEcm.exit42.thread, label %.lr.ph _ZNK4llvm9StringRef4findEcm.exit42.thread: ; preds = %_ZNK4llvm9StringRef4findEcm.exit42, %.preheader unreachable @@ -48,7 +48,7 @@ _ZNK4llvm9StringRef4findEcm.exit._crit_edge: ; preds = %bb61, %_ZNK4llvm9St bb36: ; preds = %_ZNK4llvm9StringRef4findEcm.exit.loopexit, %.lr.ph %loc.063 = phi i64 [ undef, %.lr.ph ], [ %i.0.i, %_ZNK4llvm9StringRef4findEcm.exit.loopexit ] - switch i8 undef, label %bb57 [ + switch i8 10, label %bb57 [ i8 10, label %bb48 i8 13, label %bb48 ] @@ -73,7 +73,7 @@ bb63: ; preds = %bb61 %tmp64 = getelementptr inbounds i8, ptr %tmp3, i64 %i.0.i %tmp65 = load i8, ptr %tmp64, align 1 %tmp67 = add i64 %i.0.i, 1 - br i1 undef, label %_ZNK4llvm9StringRef4findEcm.exit.loopexit, label %bb61 + br i1 %arg, label %_ZNK4llvm9StringRef4findEcm.exit.loopexit, label %bb61 bb87: ; preds = %bb ret void diff --git a/llvm/test/Transforms/LoopStrengthReduce/AArch64/pr47329.ll b/llvm/test/Transforms/LoopStrengthReduce/AArch64/pr47329.ll index 9c1f91f8b3ed0..45cbdf9265306 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/AArch64/pr47329.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/AArch64/pr47329.ll @@ -4,7 +4,7 @@ target triple = "aarch64-unknown-linux-gnu" @d = internal unnamed_addr global ptr null, align 8 -define dso_local i32 @main() local_unnamed_addr { +define dso_local i32 @main(i1 %arg) local_unnamed_addr { entry: %.pre.pre = load ptr, ptr @d, align 8 br label %for.body9 @@ -12,7 +12,7 @@ entry: for.body9: ; preds = %for.body9, %entry %i = phi ptr [ %.pre.pre, %entry ], [ %incdec.ptr, %for.body9 ] %incdec.ptr = getelementptr inbounds ptr, ptr %i, i64 -1 - br i1 undef, label %for.body9, label %for.inc + br i1 %arg, label %for.body9, label %for.inc for.inc: ; preds = %for.body9 br label %for.body9.118 @@ -20,7 +20,7 @@ for.inc: ; preds = %for.body9 for.body9.1: ; preds = %for.inc.547, %for.body9.1 %i1 = phi ptr [ %incdec.ptr.1, %for.body9.1 ], [ %incdec.ptr.542, %for.inc.547 ] %incdec.ptr.1 = getelementptr inbounds ptr, ptr %i1, i64 -1 - br i1 undef, label %for.body9.1, label %for.inc.1 + br i1 %arg, label %for.body9.1, label %for.inc.1 for.inc.1: ; preds = %for.body9.1 br label %for.body9.1.1 @@ -28,7 +28,7 @@ for.inc.1: ; preds = %for.body9.1 for.body9.2: ; preds = %for.inc.1.5, %for.body9.2 %i2 = phi ptr [ %incdec.ptr.2, %for.body9.2 ], [ %incdec.ptr.1.5, %for.inc.1.5 ] %incdec.ptr.2 = getelementptr inbounds ptr, ptr %i2, i64 -1 - br i1 undef, label %for.body9.2, label %for.inc.2 + br i1 %arg, label %for.body9.2, label %for.inc.2 for.inc.2: ; preds = %for.body9.2 br label %for.body9.2.1 @@ -36,7 +36,7 @@ for.inc.2: ; preds = %for.body9.2 for.body9.3: ; preds = %for.inc.2.5, %for.body9.3 %i3 = phi ptr [ %incdec.ptr.3, %for.body9.3 ], [ %incdec.ptr.2.5, %for.inc.2.5 ] %incdec.ptr.3 = getelementptr inbounds ptr, ptr %i3, i64 -1 - br i1 undef, label %for.body9.3, label %for.inc.3 + br i1 %arg, label %for.body9.3, label %for.inc.3 for.inc.3: ; preds = %for.body9.3 br label %for.body9.3.1 @@ -44,7 +44,7 @@ for.inc.3: ; preds = %for.body9.3 for.body9.4: ; preds = %for.inc.3.5, %for.body9.4 %i4 = phi ptr [ %incdec.ptr.4, %for.body9.4 ], [ %incdec.ptr.3.5, %for.inc.3.5 ] %incdec.ptr.4 = getelementptr inbounds ptr, ptr %i4, i64 -1 - br i1 undef, label %for.body9.4, label %for.inc.4 + br i1 %arg, label %for.body9.4, label %for.inc.4 for.inc.4: ; preds = %for.body9.4 br label %for.body9.4.1 @@ -52,7 +52,7 @@ for.inc.4: ; preds = %for.body9.4 for.body9.5: ; preds = %for.inc.4.5, %for.body9.5 %i5 = phi ptr [ %incdec.ptr.5, %for.body9.5 ], [ %incdec.ptr.4.5, %for.inc.4.5 ] %incdec.ptr.5 = getelementptr inbounds ptr, ptr %i5, i64 -1 - br i1 undef, label %for.body9.5, label %for.inc.5 + br i1 %arg, label %for.body9.5, label %for.inc.5 for.inc.5: ; preds = %for.body9.5 br label %for.body9.5.1 @@ -60,7 +60,7 @@ for.inc.5: ; preds = %for.body9.5 for.body9.5.1: ; preds = %for.body9.5.1, %for.inc.5 %i6 = phi ptr [ %incdec.ptr.5.1, %for.body9.5.1 ], [ %incdec.ptr.5, %for.inc.5 ] %incdec.ptr.5.1 = getelementptr inbounds ptr, ptr %i6, i64 -1 - br i1 undef, label %for.body9.5.1, label %for.inc.5.1 + br i1 %arg, label %for.body9.5.1, label %for.inc.5.1 for.inc.5.1: ; preds = %for.body9.5.1 br label %for.body9.5.2 @@ -68,7 +68,7 @@ for.inc.5.1: ; preds = %for.body9.5.1 for.body9.5.2: ; preds = %for.body9.5.2, %for.inc.5.1 %i7 = phi ptr [ %incdec.ptr.5.2, %for.body9.5.2 ], [ %incdec.ptr.5.1, %for.inc.5.1 ] %incdec.ptr.5.2 = getelementptr inbounds ptr, ptr %i7, i64 -1 - br i1 undef, label %for.body9.5.2, label %for.inc.5.2 + br i1 %arg, label %for.body9.5.2, label %for.inc.5.2 for.inc.5.2: ; preds = %for.body9.5.2 br label %for.body9.5.3 @@ -76,7 +76,7 @@ for.inc.5.2: ; preds = %for.body9.5.2 for.body9.5.3: ; preds = %for.body9.5.3, %for.inc.5.2 %i8 = phi ptr [ %incdec.ptr.5.3, %for.body9.5.3 ], [ %incdec.ptr.5.2, %for.inc.5.2 ] %incdec.ptr.5.3 = getelementptr inbounds ptr, ptr %i8, i64 -1 - br i1 undef, label %for.body9.5.3, label %for.inc.5.3 + br i1 %arg, label %for.body9.5.3, label %for.inc.5.3 for.inc.5.3: ; preds = %for.body9.5.3 br label %for.body9.5.4 @@ -84,7 +84,7 @@ for.inc.5.3: ; preds = %for.body9.5.3 for.body9.5.4: ; preds = %for.body9.5.4, %for.inc.5.3 %i9 = phi ptr [ %incdec.ptr.5.4, %for.body9.5.4 ], [ %incdec.ptr.5.3, %for.inc.5.3 ] %incdec.ptr.5.4 = getelementptr inbounds ptr, ptr %i9, i64 -1 - br i1 undef, label %for.body9.5.4, label %for.inc.5.4 + br i1 %arg, label %for.body9.5.4, label %for.inc.5.4 for.inc.5.4: ; preds = %for.body9.5.4 br label %for.body9.5.5 @@ -97,7 +97,7 @@ for.body9.5.5: ; preds = %for.body9.5.5, %for for.body9.4.1: ; preds = %for.body9.4.1, %for.inc.4 %i13 = phi ptr [ %incdec.ptr.4.1, %for.body9.4.1 ], [ %incdec.ptr.4, %for.inc.4 ] %incdec.ptr.4.1 = getelementptr inbounds ptr, ptr %i13, i64 -1 - br i1 undef, label %for.body9.4.1, label %for.inc.4.1 + br i1 %arg, label %for.body9.4.1, label %for.inc.4.1 for.inc.4.1: ; preds = %for.body9.4.1 br label %for.body9.4.2 @@ -105,7 +105,7 @@ for.inc.4.1: ; preds = %for.body9.4.1 for.body9.4.2: ; preds = %for.body9.4.2, %for.inc.4.1 %i14 = phi ptr [ %incdec.ptr.4.2, %for.body9.4.2 ], [ %incdec.ptr.4.1, %for.inc.4.1 ] %incdec.ptr.4.2 = getelementptr inbounds ptr, ptr %i14, i64 -1 - br i1 undef, label %for.body9.4.2, label %for.inc.4.2 + br i1 %arg, label %for.body9.4.2, label %for.inc.4.2 for.inc.4.2: ; preds = %for.body9.4.2 br label %for.body9.4.3 @@ -113,7 +113,7 @@ for.inc.4.2: ; preds = %for.body9.4.2 for.body9.4.3: ; preds = %for.body9.4.3, %for.inc.4.2 %i15 = phi ptr [ %incdec.ptr.4.3, %for.body9.4.3 ], [ %incdec.ptr.4.2, %for.inc.4.2 ] %incdec.ptr.4.3 = getelementptr inbounds ptr, ptr %i15, i64 -1 - br i1 undef, label %for.body9.4.3, label %for.inc.4.3 + br i1 %arg, label %for.body9.4.3, label %for.inc.4.3 for.inc.4.3: ; preds = %for.body9.4.3 br label %for.body9.4.4 @@ -121,7 +121,7 @@ for.inc.4.3: ; preds = %for.body9.4.3 for.body9.4.4: ; preds = %for.body9.4.4, %for.inc.4.3 %i16 = phi ptr [ %incdec.ptr.4.4, %for.body9.4.4 ], [ %incdec.ptr.4.3, %for.inc.4.3 ] %incdec.ptr.4.4 = getelementptr inbounds ptr, ptr %i16, i64 -1 - br i1 undef, label %for.body9.4.4, label %for.inc.4.4 + br i1 %arg, label %for.body9.4.4, label %for.inc.4.4 for.inc.4.4: ; preds = %for.body9.4.4 br label %for.body9.4.5 @@ -129,7 +129,7 @@ for.inc.4.4: ; preds = %for.body9.4.4 for.body9.4.5: ; preds = %for.body9.4.5, %for.inc.4.4 %i17 = phi ptr [ %incdec.ptr.4.5, %for.body9.4.5 ], [ %incdec.ptr.4.4, %for.inc.4.4 ] %incdec.ptr.4.5 = getelementptr inbounds ptr, ptr %i17, i64 -1 - br i1 undef, label %for.body9.4.5, label %for.inc.4.5 + br i1 %arg, label %for.body9.4.5, label %for.inc.4.5 for.inc.4.5: ; preds = %for.body9.4.5 br label %for.body9.5 @@ -137,7 +137,7 @@ for.inc.4.5: ; preds = %for.body9.4.5 for.body9.3.1: ; preds = %for.body9.3.1, %for.inc.3 %i18 = phi ptr [ %incdec.ptr.3.1, %for.body9.3.1 ], [ %incdec.ptr.3, %for.inc.3 ] %incdec.ptr.3.1 = getelementptr inbounds ptr, ptr %i18, i64 -1 - br i1 undef, label %for.body9.3.1, label %for.inc.3.1 + br i1 %arg, label %for.body9.3.1, label %for.inc.3.1 for.inc.3.1: ; preds = %for.body9.3.1 br label %for.body9.3.2 @@ -145,7 +145,7 @@ for.inc.3.1: ; preds = %for.body9.3.1 for.body9.3.2: ; preds = %for.body9.3.2, %for.inc.3.1 %i19 = phi ptr [ %incdec.ptr.3.2, %for.body9.3.2 ], [ %incdec.ptr.3.1, %for.inc.3.1 ] %incdec.ptr.3.2 = getelementptr inbounds ptr, ptr %i19, i64 -1 - br i1 undef, label %for.body9.3.2, label %for.inc.3.2 + br i1 %arg, label %for.body9.3.2, label %for.inc.3.2 for.inc.3.2: ; preds = %for.body9.3.2 br label %for.body9.3.3 @@ -153,7 +153,7 @@ for.inc.3.2: ; preds = %for.body9.3.2 for.body9.3.3: ; preds = %for.body9.3.3, %for.inc.3.2 %i20 = phi ptr [ %incdec.ptr.3.3, %for.body9.3.3 ], [ %incdec.ptr.3.2, %for.inc.3.2 ] %incdec.ptr.3.3 = getelementptr inbounds ptr, ptr %i20, i64 -1 - br i1 undef, label %for.body9.3.3, label %for.inc.3.3 + br i1 %arg, label %for.body9.3.3, label %for.inc.3.3 for.inc.3.3: ; preds = %for.body9.3.3 br label %for.body9.3.4 @@ -161,7 +161,7 @@ for.inc.3.3: ; preds = %for.body9.3.3 for.body9.3.4: ; preds = %for.body9.3.4, %for.inc.3.3 %i21 = phi ptr [ %incdec.ptr.3.4, %for.body9.3.4 ], [ %incdec.ptr.3.3, %for.inc.3.3 ] %incdec.ptr.3.4 = getelementptr inbounds ptr, ptr %i21, i64 -1 - br i1 undef, label %for.body9.3.4, label %for.inc.3.4 + br i1 %arg, label %for.body9.3.4, label %for.inc.3.4 for.inc.3.4: ; preds = %for.body9.3.4 br label %for.body9.3.5 @@ -169,7 +169,7 @@ for.inc.3.4: ; preds = %for.body9.3.4 for.body9.3.5: ; preds = %for.body9.3.5, %for.inc.3.4 %i22 = phi ptr [ %incdec.ptr.3.5, %for.body9.3.5 ], [ %incdec.ptr.3.4, %for.inc.3.4 ] %incdec.ptr.3.5 = getelementptr inbounds ptr, ptr %i22, i64 -1 - br i1 undef, label %for.body9.3.5, label %for.inc.3.5 + br i1 %arg, label %for.body9.3.5, label %for.inc.3.5 for.inc.3.5: ; preds = %for.body9.3.5 br label %for.body9.4 @@ -177,7 +177,7 @@ for.inc.3.5: ; preds = %for.body9.3.5 for.body9.2.1: ; preds = %for.body9.2.1, %for.inc.2 %i23 = phi ptr [ %incdec.ptr.2.1, %for.body9.2.1 ], [ %incdec.ptr.2, %for.inc.2 ] %incdec.ptr.2.1 = getelementptr inbounds ptr, ptr %i23, i64 -1 - br i1 undef, label %for.body9.2.1, label %for.inc.2.1 + br i1 %arg, label %for.body9.2.1, label %for.inc.2.1 for.inc.2.1: ; preds = %for.body9.2.1 br label %for.body9.2.2 @@ -185,7 +185,7 @@ for.inc.2.1: ; preds = %for.body9.2.1 for.body9.2.2: ; preds = %for.body9.2.2, %for.inc.2.1 %i24 = phi ptr [ %incdec.ptr.2.2, %for.body9.2.2 ], [ %incdec.ptr.2.1, %for.inc.2.1 ] %incdec.ptr.2.2 = getelementptr inbounds ptr, ptr %i24, i64 -1 - br i1 undef, label %for.body9.2.2, label %for.inc.2.2 + br i1 %arg, label %for.body9.2.2, label %for.inc.2.2 for.inc.2.2: ; preds = %for.body9.2.2 br label %for.body9.2.3 @@ -193,7 +193,7 @@ for.inc.2.2: ; preds = %for.body9.2.2 for.body9.2.3: ; preds = %for.body9.2.3, %for.inc.2.2 %i25 = phi ptr [ %incdec.ptr.2.3, %for.body9.2.3 ], [ %incdec.ptr.2.2, %for.inc.2.2 ] %incdec.ptr.2.3 = getelementptr inbounds ptr, ptr %i25, i64 -1 - br i1 undef, label %for.body9.2.3, label %for.inc.2.3 + br i1 %arg, label %for.body9.2.3, label %for.inc.2.3 for.inc.2.3: ; preds = %for.body9.2.3 br label %for.body9.2.4 @@ -201,7 +201,7 @@ for.inc.2.3: ; preds = %for.body9.2.3 for.body9.2.4: ; preds = %for.body9.2.4, %for.inc.2.3 %i26 = phi ptr [ %incdec.ptr.2.4, %for.body9.2.4 ], [ %incdec.ptr.2.3, %for.inc.2.3 ] %incdec.ptr.2.4 = getelementptr inbounds ptr, ptr %i26, i64 -1 - br i1 undef, label %for.body9.2.4, label %for.inc.2.4 + br i1 %arg, label %for.body9.2.4, label %for.inc.2.4 for.inc.2.4: ; preds = %for.body9.2.4 br label %for.body9.2.5 @@ -209,7 +209,7 @@ for.inc.2.4: ; preds = %for.body9.2.4 for.body9.2.5: ; preds = %for.body9.2.5, %for.inc.2.4 %i27 = phi ptr [ %incdec.ptr.2.5, %for.body9.2.5 ], [ %incdec.ptr.2.4, %for.inc.2.4 ] %incdec.ptr.2.5 = getelementptr inbounds ptr, ptr %i27, i64 -1 - br i1 undef, label %for.body9.2.5, label %for.inc.2.5 + br i1 %arg, label %for.body9.2.5, label %for.inc.2.5 for.inc.2.5: ; preds = %for.body9.2.5 br label %for.body9.3 @@ -217,7 +217,7 @@ for.inc.2.5: ; preds = %for.body9.2.5 for.body9.1.1: ; preds = %for.body9.1.1, %for.inc.1 %i28 = phi ptr [ %incdec.ptr.1.1, %for.body9.1.1 ], [ %incdec.ptr.1, %for.inc.1 ] %incdec.ptr.1.1 = getelementptr inbounds ptr, ptr %i28, i64 -1 - br i1 undef, label %for.body9.1.1, label %for.inc.1.1 + br i1 %arg, label %for.body9.1.1, label %for.inc.1.1 for.inc.1.1: ; preds = %for.body9.1.1 br label %for.body9.1.2 @@ -225,7 +225,7 @@ for.inc.1.1: ; preds = %for.body9.1.1 for.body9.1.2: ; preds = %for.body9.1.2, %for.inc.1.1 %i29 = phi ptr [ %incdec.ptr.1.2, %for.body9.1.2 ], [ %incdec.ptr.1.1, %for.inc.1.1 ] %incdec.ptr.1.2 = getelementptr inbounds ptr, ptr %i29, i64 -1 - br i1 undef, label %for.body9.1.2, label %for.inc.1.2 + br i1 %arg, label %for.body9.1.2, label %for.inc.1.2 for.inc.1.2: ; preds = %for.body9.1.2 br label %for.body9.1.3 @@ -233,7 +233,7 @@ for.inc.1.2: ; preds = %for.body9.1.2 for.body9.1.3: ; preds = %for.body9.1.3, %for.inc.1.2 %i30 = phi ptr [ %incdec.ptr.1.3, %for.body9.1.3 ], [ %incdec.ptr.1.2, %for.inc.1.2 ] %incdec.ptr.1.3 = getelementptr inbounds ptr, ptr %i30, i64 -1 - br i1 undef, label %for.body9.1.3, label %for.inc.1.3 + br i1 %arg, label %for.body9.1.3, label %for.inc.1.3 for.inc.1.3: ; preds = %for.body9.1.3 br label %for.body9.1.4 @@ -241,7 +241,7 @@ for.inc.1.3: ; preds = %for.body9.1.3 for.body9.1.4: ; preds = %for.body9.1.4, %for.inc.1.3 %i31 = phi ptr [ %incdec.ptr.1.4, %for.body9.1.4 ], [ %incdec.ptr.1.3, %for.inc.1.3 ] %incdec.ptr.1.4 = getelementptr inbounds ptr, ptr %i31, i64 -1 - br i1 undef, label %for.body9.1.4, label %for.inc.1.4 + br i1 %arg, label %for.body9.1.4, label %for.inc.1.4 for.inc.1.4: ; preds = %for.body9.1.4 br label %for.body9.1.5 @@ -249,7 +249,7 @@ for.inc.1.4: ; preds = %for.body9.1.4 for.body9.1.5: ; preds = %for.body9.1.5, %for.inc.1.4 %i32 = phi ptr [ %incdec.ptr.1.5, %for.body9.1.5 ], [ %incdec.ptr.1.4, %for.inc.1.4 ] %incdec.ptr.1.5 = getelementptr inbounds ptr, ptr %i32, i64 -1 - br i1 undef, label %for.body9.1.5, label %for.inc.1.5 + br i1 %arg, label %for.body9.1.5, label %for.inc.1.5 for.inc.1.5: ; preds = %for.body9.1.5 br label %for.body9.2 @@ -257,7 +257,7 @@ for.inc.1.5: ; preds = %for.body9.1.5 for.body9.118: ; preds = %for.body9.118, %for.inc %i33 = phi ptr [ %incdec.ptr, %for.inc ], [ %incdec.ptr.114, %for.body9.118 ] %incdec.ptr.114 = getelementptr inbounds ptr, ptr %i33, i64 -1 - br i1 undef, label %for.body9.118, label %for.inc.119 + br i1 %arg, label %for.body9.118, label %for.inc.119 for.inc.119: ; preds = %for.body9.118 br label %for.body9.225 @@ -266,7 +266,7 @@ for.body9.225: ; preds = %for.body9.225, %for %i34 = phi ptr [ %incdec.ptr.114, %for.inc.119 ], [ %incdec.ptr.221, %for.body9.225 ] %incdec.ptr.221 = getelementptr inbounds ptr, ptr %i34, i64 -1 %i36 = load i64, ptr %i34, align 8 - br i1 undef, label %for.body9.225, label %for.inc.226 + br i1 %arg, label %for.body9.225, label %for.inc.226 for.inc.226: ; preds = %for.body9.225 br label %for.body9.332 @@ -274,7 +274,7 @@ for.inc.226: ; preds = %for.body9.225 for.body9.332: ; preds = %for.body9.332, %for.inc.226 %i37 = phi ptr [ %incdec.ptr.221, %for.inc.226 ], [ %incdec.ptr.328, %for.body9.332 ] %incdec.ptr.328 = getelementptr inbounds ptr, ptr %i37, i64 -1 - br i1 undef, label %for.body9.332, label %for.inc.333 + br i1 %arg, label %for.body9.332, label %for.inc.333 for.inc.333: ; preds = %for.body9.332 br label %for.body9.439 @@ -282,7 +282,7 @@ for.inc.333: ; preds = %for.body9.332 for.body9.439: ; preds = %for.body9.439, %for.inc.333 %i38 = phi ptr [ %incdec.ptr.328, %for.inc.333 ], [ %incdec.ptr.435, %for.body9.439 ] %incdec.ptr.435 = getelementptr inbounds ptr, ptr %i38, i64 -1 - br i1 undef, label %for.body9.439, label %for.inc.440 + br i1 %arg, label %for.body9.439, label %for.inc.440 for.inc.440: ; preds = %for.body9.439 br label %for.body9.546 @@ -290,7 +290,7 @@ for.inc.440: ; preds = %for.body9.439 for.body9.546: ; preds = %for.body9.546, %for.inc.440 %i39 = phi ptr [ %incdec.ptr.435, %for.inc.440 ], [ %incdec.ptr.542, %for.body9.546 ] %incdec.ptr.542 = getelementptr inbounds ptr, ptr %i39, i64 -1 - br i1 undef, label %for.body9.546, label %for.inc.547 + br i1 %arg, label %for.body9.546, label %for.inc.547 for.inc.547: ; preds = %for.body9.546 br label %for.body9.1 diff --git a/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-invalid-ptr-extend.ll b/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-invalid-ptr-extend.ll index 737a590394e5f..8111eeb6ec71d 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-invalid-ptr-extend.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-invalid-ptr-extend.ll @@ -59,10 +59,10 @@ for.body: br i1 false, label %loopexit, label %for.body } -define protected amdgpu_kernel void @baseregtest(i32 %n, i32 %lda) local_unnamed_addr { +define protected amdgpu_kernel void @baseregtest(i32 %n, i32 %lda, i1 %arg) local_unnamed_addr { ; CHECK-LABEL: @baseregtest( ; CHECK-NEXT: entry: -; CHECK-NEXT: br i1 undef, label [[EXIT:%.*]], label [[IF_END:%.*]] +; CHECK-NEXT: br i1 %arg, label [[EXIT:%.*]], label [[IF_END:%.*]] ; CHECK: if.end: ; CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @foo() ; CHECK-NEXT: [[TMP1:%.*]] = shl i32 [[TMP0]], 3 @@ -86,7 +86,7 @@ define protected amdgpu_kernel void @baseregtest(i32 %n, i32 %lda) local_unnamed ; CHECK-NEXT: ret void ; entry: - br i1 undef, label %exit, label %if.end + br i1 %arg, label %exit, label %if.end if.end: %0 = tail call i32 @foo() diff --git a/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-void-inseltpoison.ll b/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-void-inseltpoison.ll index f92e39d607176..da502b1ffa9de 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-void-inseltpoison.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-void-inseltpoison.ll @@ -3,7 +3,7 @@ @array = external addrspace(4) constant [32 x [800 x i32]], align 4 ; GCN-LABEL: {{^}}test_lsr_voidty: -define amdgpu_kernel void @test_lsr_voidty() { +define amdgpu_kernel void @test_lsr_voidty(i1 %arg) { entry: br label %for.body @@ -32,5 +32,5 @@ for.body.i: ; preds = %for.body.i, %for.body %reorder_shuffle2 = shufflevector <4 x i32> %tmp5, <4 x i32> poison, <4 x i32> %tmp6 = select <4 x i1> undef, <4 x i32> zeroinitializer, <4 x i32> %reorder_shuffle2 %inc14 = add nuw nsw i32 %ij, 4 - br i1 undef, label %for.body, label %for.body.i + br i1 %arg, label %for.body, label %for.body.i } diff --git a/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-void.ll b/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-void.ll index 1069c0f7f9dd0..c363e81cf3c4d 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-void.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/lsr-void.ll @@ -3,7 +3,7 @@ @array = external addrspace(4) constant [32 x [800 x i32]], align 4 ; GCN-LABEL: {{^}}test_lsr_voidty: -define amdgpu_kernel void @test_lsr_voidty() { +define amdgpu_kernel void @test_lsr_voidty(i1 %arg) { entry: br label %for.body @@ -32,5 +32,5 @@ for.body.i: ; preds = %for.body.i, %for.body %reorder_shuffle2 = shufflevector <4 x i32> %tmp5, <4 x i32> undef, <4 x i32> %tmp6 = select <4 x i1> undef, <4 x i32> zeroinitializer, <4 x i32> %reorder_shuffle2 %inc14 = add nuw nsw i32 %ij, 4 - br i1 undef, label %for.body, label %for.body.i + br i1 %arg, label %for.body, label %for.body.i } diff --git a/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/preserve-addrspace-assert.ll b/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/preserve-addrspace-assert.ll index 8f1c95fd4a330..ffb23575879a5 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/preserve-addrspace-assert.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/AMDGPU/preserve-addrspace-assert.ll @@ -48,7 +48,7 @@ bb1: ; preds = %bb17, %bb br label %bb4 bb4: ; preds = %bb1 - br i1 undef, label %bb8, label %bb5 + br i1 false, label %bb8, label %bb5 bb5: ; preds = %bb4 unreachable diff --git a/llvm/test/Transforms/LoopStrengthReduce/ARM/addrec-is-loop-invariant.ll b/llvm/test/Transforms/LoopStrengthReduce/ARM/addrec-is-loop-invariant.ll index 2ddc8af4f5f9f..cf9c1fb49cce7 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/ARM/addrec-is-loop-invariant.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/ARM/addrec-is-loop-invariant.ll @@ -4,14 +4,14 @@ ; not create an Add Reccurence Expression if not all ; its operands are loop invariants. -define void @add_rec_expr() { +define void @add_rec_expr(i1 %arg) { entry: br label %loop0 loop0: %c.0 = phi i32 [ 0, %entry ], [ %inc.0, %loop0 ] %inc.0 = add nuw i32 %c.0, 1 - br i1 undef, label %loop0, label %bb1 + br i1 %arg, label %loop0, label %bb1 bb1: %mul.0 = mul i32 %c.0, %c.0 diff --git a/llvm/test/Transforms/LoopStrengthReduce/Power/incomplete-phi.ll b/llvm/test/Transforms/LoopStrengthReduce/Power/incomplete-phi.ll index 53aac1d9cf7f8..8f7ca70935628 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/Power/incomplete-phi.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/Power/incomplete-phi.ll @@ -58,7 +58,7 @@ bb: bb3: ; preds = %bb18, %bb %i4 = phi i64 [ %i20, %bb18 ], [ 0, %bb ] %i5 = phi i64 [ %i21, %bb18 ], [ 1, %bb ] - br i1 undef, label %bb22, label %bb9 + br i1 true, label %bb22, label %bb9 bb9: ; preds = %bb9, %bb3 %i10 = phi i64 [ 0, %bb3 ], [ %i16, %bb9 ] @@ -70,7 +70,7 @@ bb9: ; preds = %bb9, %bb3 br i1 true, label %bb17, label %bb9 bb17: ; preds = %bb9 - br i1 undef, label %bb18, label %bb22 + br i1 false, label %bb18, label %bb22 bb18: ; preds = %bb17 %i19 = add i64 undef, %i4 diff --git a/llvm/test/Transforms/LoopStrengthReduce/X86/2009-11-10-LSRCrash.ll b/llvm/test/Transforms/LoopStrengthReduce/X86/2009-11-10-LSRCrash.ll index 4032a599e8d94..5098030cc49e8 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/X86/2009-11-10-LSRCrash.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/X86/2009-11-10-LSRCrash.ll @@ -1,35 +1,35 @@ ; RUN: llc < %s -mtriple=i386-apple-darwin11 -define void @_ZN4llvm20SelectionDAGLowering14visitInlineAsmENS_8CallSiteE() nounwind ssp align 2 { +define void @_ZN4llvm20SelectionDAGLowering14visitInlineAsmENS_8CallSiteE(i1 %arg) nounwind ssp align 2 { entry: - br i1 undef, label %bb3.i, label %bb4.i + br i1 %arg, label %bb3.i, label %bb4.i bb3.i: ; preds = %entry unreachable bb4.i: ; preds = %entry - br i1 undef, label %bb.i.i, label %_ZNK4llvm8CallSite14getCalledValueEv.exit + br i1 %arg, label %bb.i.i, label %_ZNK4llvm8CallSite14getCalledValueEv.exit bb.i.i: ; preds = %bb4.i unreachable _ZNK4llvm8CallSite14getCalledValueEv.exit: ; preds = %bb4.i - br i1 undef, label %_ZN4llvm4castINS_9InlineAsmEPNS_5ValueEEENS_10cast_rettyIT_T0_E8ret_typeERKS6_.exit, label %bb6.i + br i1 %arg, label %_ZN4llvm4castINS_9InlineAsmEPNS_5ValueEEENS_10cast_rettyIT_T0_E8ret_typeERKS6_.exit, label %bb6.i bb6.i: ; preds = %_ZNK4llvm8CallSite14getCalledValueEv.exit unreachable _ZN4llvm4castINS_9InlineAsmEPNS_5ValueEEENS_10cast_rettyIT_T0_E8ret_typeERKS6_.exit: ; preds = %_ZNK4llvm8CallSite14getCalledValueEv.exit - br i1 undef, label %_ZL25hasInlineAsmMemConstraintRSt6vectorIN4llvm9InlineAsm14ConstraintInfoESaIS2_EERKNS0_14TargetLoweringE.exit, label %bb.i + br i1 %arg, label %_ZL25hasInlineAsmMemConstraintRSt6vectorIN4llvm9InlineAsm14ConstraintInfoESaIS2_EERKNS0_14TargetLoweringE.exit, label %bb.i bb.i: ; preds = %_ZN4llvm4castINS_9InlineAsmEPNS_5ValueEEENS_10cast_rettyIT_T0_E8ret_typeERKS6_.exit br label %_ZL25hasInlineAsmMemConstraintRSt6vectorIN4llvm9InlineAsm14ConstraintInfoESaIS2_EERKNS0_14TargetLoweringE.exit _ZL25hasInlineAsmMemConstraintRSt6vectorIN4llvm9InlineAsm14ConstraintInfoESaIS2_EERKNS0_14TargetLoweringE.exit: ; preds = %bb.i, %_ZN4llvm4castINS_9InlineAsmEPNS_5ValueEEENS_10cast_rettyIT_T0_E8ret_typeERKS6_.exit - br i1 undef, label %bb50, label %bb27 + br i1 %arg, label %bb50, label %bb27 bb27: ; preds = %_ZL25hasInlineAsmMemConstraintRSt6vectorIN4llvm9InlineAsm14ConstraintInfoESaIS2_EERKNS0_14TargetLoweringE.exit - br i1 undef, label %bb1.i727, label %bb.i.i726 + br i1 %arg, label %bb1.i727, label %bb.i.i726 bb.i.i726: ; preds = %bb27 unreachable @@ -41,7 +41,7 @@ bb50: ; preds = %_ZL25hasInlineAsmMe br label %bb107 bb51: ; preds = %bb107 - br i1 undef, label %bb105, label %bb106 + br i1 %arg, label %bb105, label %bb106 bb105: ; preds = %bb51 unreachable @@ -50,16 +50,16 @@ bb106: ; preds = %bb51 br label %bb107 bb107: ; preds = %bb106, %bb50 - br i1 undef, label %bb108, label %bb51 + br i1 %arg, label %bb108, label %bb51 bb108: ; preds = %bb107 - br i1 undef, label %bb242, label %bb114 + br i1 %arg, label %bb242, label %bb114 bb114: ; preds = %bb108 - br i1 undef, label %bb141, label %bb116 + br i1 %arg, label %bb141, label %bb116 bb116: ; preds = %bb114 - br i1 undef, label %bb120, label %bb121 + br i1 %arg, label %bb120, label %bb121 bb120: ; preds = %bb116 unreachable @@ -68,7 +68,7 @@ bb121: ; preds = %bb116 unreachable bb141: ; preds = %bb114 - br i1 undef, label %bb182, label %bb143 + br i1 %arg, label %bb182, label %bb143 bb143: ; preds = %bb141 br label %bb157 @@ -99,7 +99,7 @@ bb6.i841: ; preds = %bb157 unreachable _ZN4llvm4castINS_14ConstantSDNodeENS_7SDValueEEENS_10cast_rettyIT_T0_E8ret_typeERKS5_.exit: ; preds = %bb157, %bb157 - br i1 undef, label %bb.i.i.i843, label %bb1.i.i.i844 + br i1 %arg, label %bb.i.i.i843, label %bb1.i.i.i844 bb.i.i.i843: ; preds = %_ZN4llvm4castINS_14ConstantSDNodeENS_7SDValueEEENS_10cast_rettyIT_T0_E8ret_typeERKS5_.exit br i1 %0, label %bb158, label %bb144 @@ -108,13 +108,13 @@ bb1.i.i.i844: ; preds = %_ZN4llvm4castINS_14 unreachable bb158: ; preds = %bb.i.i.i843 - br i1 undef, label %bb177, label %bb176 + br i1 %arg, label %bb177, label %bb176 bb176: ; preds = %bb158 unreachable bb177: ; preds = %bb158 - br i1 undef, label %bb179, label %bb178 + br i1 %arg, label %bb179, label %bb178 bb178: ; preds = %bb177 unreachable diff --git a/llvm/test/Transforms/LoopStrengthReduce/X86/2011-07-20-DoubleIV.ll b/llvm/test/Transforms/LoopStrengthReduce/X86/2011-07-20-DoubleIV.ll index 0fc928ca9b288..f41ff1bd76438 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/X86/2011-07-20-DoubleIV.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/X86/2011-07-20-DoubleIV.ll @@ -21,7 +21,7 @@ loop: %i.01 = phi i32 [ -39, %entry ], [ %inc, %loop ] %conv = sitofp i32 %i.01 to double %inc = add nsw i32 %i.01, 1 - br i1 undef, label %loop, label %for.end + br i1 true, label %loop, label %for.end for.end: unreachable @@ -40,7 +40,7 @@ loop: %conv = sitofp i32 %i.01 to double %div = fdiv double %conv, 4.000000e+01 %inc = add nsw i32 %i.01, 1 - br i1 undef, label %loop, label %for.end + br i1 false, label %loop, label %for.end for.end: unreachable diff --git a/llvm/test/Transforms/LoopStrengthReduce/X86/2012-01-13-phielim.ll b/llvm/test/Transforms/LoopStrengthReduce/X86/2012-01-13-phielim.ll index 38f18f68e2db7..f780bee7874cf 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/X86/2012-01-13-phielim.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/X86/2012-01-13-phielim.ll @@ -88,10 +88,10 @@ exit: ; preds = %cond.true29.i, %cond.true.i ; Test phi reuse after LSR that requires SCEVExpander to hoist an ; interesting GEP. ; -define void @test2(i32 %n) nounwind uwtable { +define void @test2(i32 %n, i1 %arg) nounwind uwtable { ; CHECK-LABEL: @test2( ; CHECK-NEXT: entry: -; CHECK-NEXT: br i1 undef, label [[WHILE_END:%.*]], label [[FOR_COND468_PREHEADER:%.*]] +; CHECK-NEXT: br i1 [[ARG:%.*]], label [[WHILE_END:%.*]], label [[FOR_COND468_PREHEADER:%.*]] ; CHECK: for.cond468.preheader: ; CHECK-NEXT: br label [[FOR_COND468:%.*]] ; CHECK: for.cond468: @@ -103,12 +103,12 @@ define void @test2(i32 %n) nounwind uwtable { ; CHECK: for.body471: ; CHECK-NEXT: [[SCEVGEP2:%.*]] = getelementptr i8, ptr [[LSR_IV]], i64 8 ; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[SCEVGEP2]], align 4 -; CHECK-NEXT: br i1 false, label [[IF_THEN477]], label [[FOR_INC498_PREHEADER]] +; CHECK-NEXT: br i1 [[ARG]], label [[IF_THEN477]], label [[FOR_INC498_PREHEADER]] ; CHECK: for.inc498.preheader: ; CHECK-NEXT: br label [[FOR_INC498:%.*]] ; CHECK: if.then477: ; CHECK-NEXT: [[SCEVGEP]] = getelementptr i8, ptr [[LSR_IV]], i64 12 -; CHECK-NEXT: [[LSR_IV_NEXT]] = add nuw nsw i32 [[LSR_IV1]], 1 +; CHECK-NEXT: [[LSR_IV_NEXT]] = add nuw i32 [[LSR_IV1]], 1 ; CHECK-NEXT: br label [[FOR_COND468]] ; CHECK: for.inc498: ; CHECK-NEXT: br label [[FOR_INC498]] @@ -116,7 +116,7 @@ define void @test2(i32 %n) nounwind uwtable { ; CHECK-NEXT: ret void ; entry: - br i1 undef, label %while.end, label %for.cond468 + br i1 %arg, label %while.end, label %for.cond468 for.cond468: ; preds = %if.then477, %entry %indvars.iv1163 = phi i64 [ %indvars.iv.next1164, %if.then477 ], [ 1, %entry ] @@ -129,7 +129,7 @@ for.cond468: ; preds = %if.then477, %entry for.body471: ; preds = %for.cond468 %first = getelementptr inbounds [5000 x %struct.anon.7.91.199.307.415.475.559.643.751.835.943.1003.1111.1219.1351.1375.1399.1435.1471.1483.1519.1531.1651.1771], ptr @tags, i64 0, i64 %indvars.iv1163, i32 1 %1 = load i32, ptr %first, align 4 - br i1 undef, label %if.then477, label %for.inc498 + br i1 %arg, label %if.then477, label %for.inc498 if.then477: ; preds = %for.body471 %last = getelementptr inbounds [5000 x %struct.anon.7.91.199.307.415.475.559.643.751.835.943.1003.1111.1219.1351.1375.1399.1435.1471.1483.1519.1531.1651.1771], ptr @tags, i64 0, i64 %indvars.iv1163, i32 2 @@ -147,21 +147,21 @@ while.end: ; preds = %entry ; Test redundant phi elimination when the deleted phi's increment is ; itself a phi. ; -define fastcc void @test3(ptr nocapture %u) nounwind uwtable ssp { +define fastcc void @test3(ptr nocapture %u, i1 %arg) nounwind uwtable ssp { ; CHECK-LABEL: @test3( ; CHECK-NEXT: entry: -; CHECK-NEXT: br i1 undef, label [[MESHBB1_PREHEADER:%.*]], label [[MESHBB5:%.*]] +; CHECK-NEXT: br i1 [[ARG:%.*]], label [[MESHBB1_PREHEADER:%.*]], label [[MESHBB5:%.*]] ; CHECK: meshBB1.preheader: ; CHECK-NEXT: br label [[MESHBB1:%.*]] ; CHECK: for.inc8.us.i: -; CHECK-NEXT: br i1 true, label [[MESHBB1_LOOPEXIT:%.*]], label [[MESHBB:%.*]] +; CHECK-NEXT: br i1 [[ARG]], label [[MESHBB1_LOOPEXIT:%.*]], label [[MESHBB:%.*]] ; CHECK: for.body3.us.i: ; CHECK-NEXT: [[TMP:%.*]] = phi i32 [ [[LSR_IV_NEXT:%.*]], [[MESHBB]] ], [ [[TMP3:%.*]], [[FOR_BODY3_LR_PH_US_I:%.*]] ] ; CHECK-NEXT: [[SCEVGEP:%.*]] = phi ptr [ [[SCEVGEP1:%.*]], [[MESHBB]] ], [ [[U:%.*]], [[FOR_BODY3_LR_PH_US_I]] ] ; CHECK-NEXT: [[OPQ_SA_CALC12:%.*]] = sub i32 undef, 227 ; CHECK-NEXT: [[MUL_I_US_I:%.*]] = mul nsw i32 0, [[TMP]] ; CHECK-NEXT: [[TMP2:%.*]] = load double, ptr [[SCEVGEP]], align 8 -; CHECK-NEXT: br i1 undef, label [[FOR_INC8_US_I:%.*]], label [[MESHBB]] +; CHECK-NEXT: br i1 [[ARG]], label [[FOR_INC8_US_I:%.*]], label [[MESHBB]] ; CHECK: for.body3.lr.ph.us.i.loopexit: ; CHECK-NEXT: br label [[FOR_BODY3_LR_PH_US_I]] ; CHECK: for.body3.lr.ph.us.i: @@ -179,19 +179,19 @@ define fastcc void @test3(ptr nocapture %u) nounwind uwtable ssp { ; CHECK-NEXT: [[MESHSTACKVARIABLE_PHI:%.*]] = phi i32 [ [[OPQ_SA_CALC12]], [[FOR_BODY3_US_I]] ], [ undef, [[FOR_INC8_US_I]] ] ; CHECK-NEXT: [[SCEVGEP1]] = getelementptr i8, ptr [[SCEVGEP]], i64 8 ; CHECK-NEXT: [[LSR_IV_NEXT]] = add i32 [[TMP]], 1 -; CHECK-NEXT: br i1 true, label [[FOR_BODY3_LR_PH_US_I_LOOPEXIT]], label [[FOR_BODY3_US_I]] +; CHECK-NEXT: br i1 [[ARG]], label [[FOR_BODY3_LR_PH_US_I_LOOPEXIT]], label [[FOR_BODY3_US_I]] ; CHECK: meshBB1.loopexit: ; CHECK-NEXT: br label [[MESHBB1]] ; CHECK: meshBB1: ; CHECK-NEXT: br label [[FOR_BODY3_LR_PH_US_I]] ; CHECK: meshBB5: -; CHECK-NEXT: br i1 undef, label [[EVAL_AT_TIMES_U_EXIT:%.*]], label [[FOR_INC8_US_I2:%.*]] +; CHECK-NEXT: br i1 [[ARG]], label [[EVAL_AT_TIMES_U_EXIT:%.*]], label [[FOR_INC8_US_I2:%.*]] ; entry: - br i1 undef, label %meshBB1, label %meshBB5 + br i1 %arg, label %meshBB1, label %meshBB5 for.inc8.us.i: ; preds = %for.body3.us.i - br i1 undef, label %meshBB1, label %meshBB + br i1 %arg, label %meshBB1, label %meshBB for.body3.us.i: ; preds = %meshBB, %for.body3.lr.ph.us.i %indvars.iv.i.SV.phi = phi i64 [ %indvars.iv.next.i, %meshBB ], [ 0, %for.body3.lr.ph.us.i ] @@ -203,7 +203,7 @@ for.body3.us.i: ; preds = %meshBB, %for.body3. %arrayidx5.us.i = getelementptr inbounds double, ptr %u, i64 %indvars.iv.i.SV.phi %2 = load double, ptr %arrayidx5.us.i, align 8 %indvars.iv.next.i = add i64 %indvars.iv.i.SV.phi, 1 - br i1 undef, label %for.inc8.us.i, label %meshBB + br i1 %arg, label %for.inc8.us.i, label %meshBB for.body3.lr.ph.us.i: ; preds = %meshBB1, %meshBB %indvars.iv8.i.SV.phi26 = phi i64 [ undef, %meshBB1 ], [ %indvars.iv8.i.SV.phi24, %meshBB ] @@ -220,11 +220,11 @@ eval_At_times_u.exit: ; preds = %meshBB5 meshBB: ; preds = %for.body3.us.i, %for.inc8.us.i %indvars.iv8.i.SV.phi24 = phi i64 [ undef, %for.body3.us.i ], [ %3, %for.inc8.us.i ] %meshStackVariable.phi = phi i32 [ %Opq.sa.calc12, %for.body3.us.i ], [ undef, %for.inc8.us.i ] - br i1 undef, label %for.body3.lr.ph.us.i, label %for.body3.us.i + br i1 %arg, label %for.body3.lr.ph.us.i, label %for.body3.us.i meshBB1: ; preds = %for.inc8.us.i, %entry br label %for.body3.lr.ph.us.i meshBB5: ; preds = %entry - br i1 undef, label %eval_At_times_u.exit, label %for.inc8.us.i2 + br i1 %arg, label %eval_At_times_u.exit, label %for.inc8.us.i2 } diff --git a/llvm/test/Transforms/LoopStrengthReduce/X86/no_superflous_induction_vars.ll b/llvm/test/Transforms/LoopStrengthReduce/X86/no_superflous_induction_vars.ll index 8898ea85b2223..6627e4a1a0c1f 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/X86/no_superflous_induction_vars.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/X86/no_superflous_induction_vars.ll @@ -2,7 +2,7 @@ target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" -define void @indvar_expansion(ptr nocapture readonly %rowsptr) { +define void @indvar_expansion(ptr nocapture readonly %rowsptr, i1 %arg) { entry: br label %for.cond @@ -22,7 +22,7 @@ for.cond: br i1 %cmp, label %for.cond, label %for.cond2 for.cond2: - br i1 undef, label %for.cond2, label %for.body14.lr.ph + br i1 %arg, label %for.cond2, label %for.body14.lr.ph for.body14.lr.ph: %sext = shl i64 %indvars.iv44, 32 diff --git a/llvm/test/Transforms/LoopStrengthReduce/X86/pr40514.ll b/llvm/test/Transforms/LoopStrengthReduce/X86/pr40514.ll index a6bff63dfc715..a444e31abbcb9 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/X86/pr40514.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/X86/pr40514.ll @@ -50,7 +50,7 @@ bb10: ; preds = %bb10, %bb %tmp22 = shl i64 %tmp21, 1 %tmp23 = mul i64 %tmp22, %tmp22 %tmp24 = add nuw nsw i64 %tmp11, 1 - br i1 undef, label %bb1, label %bb10 + br i1 true, label %bb1, label %bb10 } diff --git a/llvm/test/Transforms/LoopStrengthReduce/callbr-critical-edge-splitting.ll b/llvm/test/Transforms/LoopStrengthReduce/callbr-critical-edge-splitting.ll index 58f9d7fd02eb5..e7afc96c72d5b 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/callbr-critical-edge-splitting.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/callbr-critical-edge-splitting.ll @@ -69,11 +69,11 @@ cond.true.i: ; preds = %for.cond do.body.i.i.do.body.i.i_crit_edge: ; preds = %do.body.i.i.do.body.i.i_crit_edge, %cond.true.i %pgocount711 = phi i64 [ %0, %do.body.i.i.do.body.i.i_crit_edge ], [ 0, %cond.true.i ] %0 = add nuw nsw i64 %pgocount711, 1 - br i1 undef, label %do.body.i.i.rdrand_int.exit.i_crit_edge, label %do.body.i.i.do.body.i.i_crit_edge + br i1 true, label %do.body.i.i.rdrand_int.exit.i_crit_edge, label %do.body.i.i.do.body.i.i_crit_edge do.body.i.i.rdrand_int.exit.i_crit_edge: ; preds = %do.body.i.i.do.body.i.i_crit_edge %1 = add i64 %0, undef - br i1 undef, label %for.end, label %for.inc + br i1 true, label %for.end, label %for.inc for.inc: ; preds = %do.body.i.i.rdrand_int.exit.i_crit_edge br label %for.cond diff --git a/llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll b/llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll index 4771dd5988a55..9bb3ce88eb37e 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/dominate-assert.ll @@ -4,13 +4,13 @@ declare ptr @_Znwm() declare i32 @__gxx_personality_v0(...) declare void @g() -define void @f() personality ptr @__gxx_personality_v0 { +define void @f(i1 %arg) personality ptr @__gxx_personality_v0 { bb0: br label %bb1 bb1: %v0 = phi i64 [ 0, %bb0 ], [ %v1, %bb1 ] %v1 = add nsw i64 %v0, 1 - br i1 undef, label %bb2, label %bb1 + br i1 %arg, label %bb2, label %bb1 bb2: %v2 = icmp eq i64 %v0, 0 br i1 %v2, label %bb6, label %bb3 @@ -69,34 +69,34 @@ bb7: } ; PR17425 -define void @i() { +define void @i(i1 %arg) { entry: br label %while.cond while.cond: ; preds = %while.cond, %entry %c.0 = phi ptr [ undef, %entry ], [ %incdec.ptr, %while.cond ] %incdec.ptr = getelementptr inbounds i16, ptr %c.0, i64 1 - br i1 undef, label %while.cond1, label %while.cond + br i1 %arg, label %while.cond1, label %while.cond while.cond1: ; preds = %while.cond1, %while.cond %c.1 = phi ptr [ %incdec.ptr5, %while.cond1 ], [ %c.0, %while.cond ] %incdec.ptr5 = getelementptr inbounds i16, ptr %c.1, i64 1 - br i1 undef, label %while.cond7, label %while.cond1 + br i1 %arg, label %while.cond7, label %while.cond1 while.cond7: ; preds = %while.cond7, %while.cond1 %0 = phi ptr [ %incdec.ptr10, %while.cond7 ], [ %c.1, %while.cond1 ] %incdec.ptr10 = getelementptr inbounds i16, ptr %0, i64 1 - br i1 undef, label %while.cond12.preheader, label %while.cond7 + br i1 %arg, label %while.cond12.preheader, label %while.cond7 while.cond12.preheader: ; preds = %while.cond7 - br i1 undef, label %while.end16, label %while.body13.lr.ph + br i1 %arg, label %while.end16, label %while.body13.lr.ph while.body13: ; preds = %if.else, %while.body13.lr.ph %1 = phi ptr [ %2, %while.body13.lr.ph ], [ %incdec.ptr15, %if.else ] - br i1 undef, label %while.cond12.outer.loopexit, label %if.else + br i1 %arg, label %while.cond12.outer.loopexit, label %if.else while.cond12.outer.loopexit: ; preds = %while.body13 - br i1 undef, label %while.end16, label %while.body13.lr.ph + br i1 %arg, label %while.end16, label %while.body13.lr.ph while.body13.lr.ph: ; preds = %while.cond12.outer.loopexit, %while.cond12.preheader %2 = phi ptr [ %1, %while.cond12.outer.loopexit ], [ undef, %while.cond12.preheader ] diff --git a/llvm/test/Transforms/LoopStrengthReduce/funclet.ll b/llvm/test/Transforms/LoopStrengthReduce/funclet.ll index 8ba81e75618c7..da5721a72a906 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/funclet.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/funclet.ll @@ -63,7 +63,7 @@ loop_body: ; preds = %iter, %pad iter: ; preds = %loop_body %tmp101 = getelementptr inbounds i8, ptr %tmp99, i32 1 - br i1 undef, label %unwind_out, label %loop_body + br i1 true, label %unwind_out, label %loop_body unwind_out: ; preds = %iter, %loop_body cleanupret from %cleanuppadi4.i.i.i unwind to caller @@ -130,7 +130,7 @@ loop_body: ; preds = %iter, %pad iter: ; preds = %loop_body %tmp101 = getelementptr inbounds i8, ptr %tmp99, i32 1 - br i1 undef, label %unwind_out, label %loop_body + br i1 true, label %unwind_out, label %loop_body } define void @h() personality ptr @_except_handler3 { @@ -194,7 +194,7 @@ loop_body: ; preds = %iter, %pad iter: ; preds = %loop_body %tmp101 = getelementptr inbounds i8, ptr %tmp99, i32 1 - br i1 undef, label %unwind_out, label %loop_body + br i1 true, label %unwind_out, label %loop_body } define void @i() personality ptr @_except_handler3 { @@ -255,7 +255,7 @@ loop_body: ; preds = %iter, %catchpad iter: ; preds = %loop_body %tmp101 = getelementptr inbounds i8, ptr %tmp99, i32 1 - br i1 undef, label %unwind_out, label %loop_body + br i1 true, label %unwind_out, label %loop_body unwind_out: ; preds = %iter, %loop_body unreachable diff --git a/llvm/test/Transforms/LoopStrengthReduce/hoist-parent-preheader.ll b/llvm/test/Transforms/LoopStrengthReduce/hoist-parent-preheader.ll index c80a6a5a84351..fa8df738bfe0d 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/hoist-parent-preheader.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/hoist-parent-preheader.ll @@ -1,9 +1,9 @@ ; RUN: opt < %s -loop-reduce -verify target triple = "x86_64-apple-darwin10" -define void @myquicksort(ptr %a) nounwind ssp { +define void @myquicksort(ptr %a, i1 %arg) nounwind ssp { entry: - br i1 undef, label %loop1, label %return + br i1 %arg, label %loop1, label %return loop1: ; preds = %bb13.loopexit, %entry %indvar419 = phi i64 [ %indvar.next420, %loop2.exit ], [ 0, %entry ] @@ -25,7 +25,7 @@ loop2.backedge: ; preds = %loop2 loop2.exit: ; preds = %loop2 %indvar.next420 = add i64 %indvar419, 1 - br i1 undef, label %loop1, label %return + br i1 %arg, label %loop1, label %return return: ; preds = %loop2.exit, %entry ret void diff --git a/llvm/test/Transforms/LoopStrengthReduce/ivchain.ll b/llvm/test/Transforms/LoopStrengthReduce/ivchain.ll index 0c1dce52d0876..f1c99386b84f6 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/ivchain.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/ivchain.ll @@ -12,11 +12,11 @@ target datalayout = "n8:16:32:64" %struct = type { ptr, ptr, i16, i64, i16, i16, i16, i64, i64, i16, ptr, i64, i64, i64 } -define i32 @test(ptr %h, i32 %more) nounwind uwtable { +define i32 @test(ptr %h, i32 %more, i1 %arg) nounwind uwtable { ; CHECK-LABEL: define i32 @test -; CHECK-SAME: (ptr [[H:%.*]], i32 [[MORE:%.*]]) #[[ATTR0:[0-9]+]] { +; CHECK-SAME: (ptr [[H:%.*]], i32 [[MORE:%.*]], i1 [[ARG:%.*]]) #[[ATTR0:[0-9]+]] { ; CHECK-NEXT: entry: -; CHECK-NEXT: br i1 undef, label [[LAND_END238:%.*]], label [[RETURN:%.*]] +; CHECK-NEXT: br i1 [[ARG]], label [[LAND_END238:%.*]], label [[RETURN:%.*]] ; CHECK: land.end238: ; CHECK-NEXT: br label [[FOR_BODY:%.*]] ; CHECK: for.body: @@ -38,7 +38,7 @@ define i32 @test(ptr %h, i32 %more) nounwind uwtable { ; CHECK-NEXT: ret i32 1 ; entry: - br i1 undef, label %land.end238, label %return + br i1 %arg, label %land.end238, label %return land.end238: ; preds = %if.end229 br label %for.body diff --git a/llvm/test/Transforms/LoopStrengthReduce/nonintegral.ll b/llvm/test/Transforms/LoopStrengthReduce/nonintegral.ll index 1c29331a9ac38..6c0eb9bb4995d 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/nonintegral.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/nonintegral.ll @@ -46,7 +46,7 @@ top: L86: ; preds = %L86, %top %i.0 = phi i64 [ 0, %top ], [ %tmp, %L86 ] %tmp = add i64 %i.0, 1 - br i1 undef, label %L86, label %if29 + br i1 false, label %L86, label %if29 if29: ; preds = %L86 %tmp1 = shl i64 %tmp, 1 @@ -60,13 +60,13 @@ if31: ; preds = %if38, %if29 L119: ; preds = %L119, %if31 %i5.0 = phi i64 [ %"#temp#1.sroa.0.022", %if31 ], [ %tmp3, %L119 ] %tmp3 = add i64 %i5.0, 1 - br i1 undef, label %L119, label %if38 + br i1 false, label %L119, label %if38 if38: ; preds = %L119 %tmp4 = add i64 %tmp2, %i5.0 %tmp5 = getelementptr i64, ptr addrspace(10) %arg, i64 %tmp4 %tmp6 = load i64, ptr addrspace(10) %tmp5 - br i1 undef, label %done, label %if31 + br i1 true, label %done, label %if31 done: ; preds = %if38 ret void diff --git a/llvm/test/Transforms/LoopStrengthReduce/pr12048.ll b/llvm/test/Transforms/LoopStrengthReduce/pr12048.ll index 6017f8ca5927d..74ab16544a24b 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/pr12048.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/pr12048.ll @@ -1,6 +1,6 @@ ; RUN: opt < %s -loop-reduce -define void @resolve_name() nounwind uwtable ssp { +define void @resolve_name(i1 %arg, i8 %arg2) nounwind uwtable ssp { br label %while.cond40.preheader while.cond132.while.cond.loopexit_crit_edge: br label %while.cond40.preheader @@ -9,7 +9,7 @@ while.cond40.preheader: while.cond40: %indvars.iv194 = phi ptr [ null, %while.cond40.preheader ], [ %scevgep, %while.body51 ] %tmp.1 = phi ptr [ undef, %while.cond40.preheader ], [ %incdec.ptr, %while.body51 ] - switch i8 undef, label %while.body51 [ + switch i8 %arg2, label %while.body51 [ i8 0, label %if.then59 ] while.body51: ; preds = %land.end50 @@ -17,7 +17,7 @@ while.body51: ; preds = %land.end50 %scevgep = getelementptr i8, ptr %indvars.iv194, i64 1 br label %while.cond40 if.then59: ; preds = %while.end - br i1 undef, label %if.then64, label %if.end113 + br i1 %arg, label %if.then64, label %if.end113 if.then64: ; preds = %if.then59 %incdec.ptr88.tmp.2 = select i1 undef, ptr undef, ptr undef br label %if.end113 @@ -33,5 +33,5 @@ while.body139.lr.ph: ; preds = %while.cond132.prehe br label %while.body139 while.body139: ; preds = %while.body139, %while.body139.lr.ph %start_of_var.0177 = phi ptr [ %tmp.1, %while.body139.lr.ph ], [ null, %while.body139 ] - br i1 undef, label %while.cond132.while.cond.loopexit_crit_edge, label %while.body139 + br i1 %arg, label %while.cond132.while.cond.loopexit_crit_edge, label %while.body139 } diff --git a/llvm/test/Transforms/LoopStrengthReduce/pr50765.ll b/llvm/test/Transforms/LoopStrengthReduce/pr50765.ll index 5b4e5ed0679bb..1dae1902152f3 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/pr50765.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/pr50765.ll @@ -5,7 +5,7 @@ target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:1-p2:32:8:8:32-ni:2" target triple = "x86_64-unknown-linux-gnu" -define void @test() { +define void @test(i1 %arg) { ; CHECK-LABEL: test bb: %tmp = load i32, ptr addrspace(3) undef, align 4 @@ -17,7 +17,7 @@ bb1: ; preds = %bb38, %bb %tmp4 = add i32 %tmp3, 1 %tmp5 = call i32 @llvm.smax.i32(i32 %tmp4, i32 74) %tmp6 = add nuw nsw i64 %tmp2, 1 - br i1 undef, label %bb7, label %bb38 + br i1 %arg, label %bb7, label %bb38 bb7: ; preds = %bb1 %tmp8 = trunc i64 %tmp6 to i32 diff --git a/llvm/test/Transforms/LoopStrengthReduce/scaling-factor-incompat-type.ll b/llvm/test/Transforms/LoopStrengthReduce/scaling-factor-incompat-type.ll index 8cf4f8e9c129f..b76f29ad9e651 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/scaling-factor-incompat-type.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/scaling-factor-incompat-type.ll @@ -54,5 +54,5 @@ bb11: ; preds = %bb4 bb13: ; preds = %bb4 %t14 = add nuw nsw i64 %t5, 6 - br i1 undef, label %bb1, label %bb4 + br i1 true, label %bb1, label %bb4 } diff --git a/llvm/test/Transforms/LoopStrengthReduce/scaling_factor_cost_crash.ll b/llvm/test/Transforms/LoopStrengthReduce/scaling_factor_cost_crash.ll index 345606cfcd975..f22a5ef6fcbc4 100644 --- a/llvm/test/Transforms/LoopStrengthReduce/scaling_factor_cost_crash.ll +++ b/llvm/test/Transforms/LoopStrengthReduce/scaling_factor_cost_crash.ll @@ -4,41 +4,41 @@ target triple = "i686-pc-win32" ; Assertion failed: (CurScaleCost >= 0 && "Legal addressing mode has an illegal cost!") ; CHECK-LABEL: @scalingFactorCrash( -define void @scalingFactorCrash() { - br i1 undef, label %1, label %24 +define void @scalingFactorCrash(i1 %arg) { + br i1 %arg, label %1, label %24 ;